diff --git a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml index 8240a56801..0a3eff0e43 100644 --- a/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml +++ b/.github/ISSUE_TEMPLATE/01_battle_engine_bugs.yaml @@ -23,20 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.9.3 (Latest release) + - 1.10.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.9.4 + - 1.9.3 - 1.9.2 - 1.9.1 - 1.9.0 - - 1.8.6 - - 1.8.5 - - 1.8.4 - - 1.8.3 - - 1.8.2 - - 1.8.1 - - 1.8.0 - - pre-1.8.0 + - pre-1.9.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml index 5688f8a7fb..4b8eec3a43 100644 --- a/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml +++ b/.github/ISSUE_TEMPLATE/02_battle_ai_issues.yaml @@ -23,20 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.9.3 (Latest release) + - 1.10.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.9.4 + - 1.9.3 - 1.9.2 - 1.9.1 - 1.9.0 - - 1.8.6 - - 1.8.5 - - 1.8.4 - - 1.8.3 - - 1.8.2 - - 1.8.1 - - 1.8.0 - - pre-1.8.0 + - pre-1.9.0 validations: required: true - type: input diff --git a/.github/ISSUE_TEMPLATE/04_other_errors.yaml b/.github/ISSUE_TEMPLATE/04_other_errors.yaml index add0633d95..54335ca5e4 100644 --- a/.github/ISSUE_TEMPLATE/04_other_errors.yaml +++ b/.github/ISSUE_TEMPLATE/04_other_errors.yaml @@ -23,20 +23,15 @@ body: label: Version description: What version of pokeemerald-expansion are you using as a base? options: - - 1.9.3 (Latest release) + - 1.10.0 (Latest release) - master (default, unreleased bugfixes) - upcoming (Edge) + - 1.9.4 + - 1.9.3 - 1.9.2 - 1.9.1 - 1.9.0 - - 1.8.6 - - 1.8.5 - - 1.8.4 - - 1.8.3 - - 1.8.2 - - 1.8.1 - - 1.8.0 - - pre-1.8.0 + - pre-1.9.0 validations: required: true - type: input diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 7a76b748e5..f083a2a23f 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,5 +1,9 @@ + + + + ## Description @@ -13,13 +17,19 @@ ## **People who collaborated with me in this PR** - + + ## Feature(s) this PR does NOT handle: +## Things to note in the release changelog: + + + + ## **Discord contact info** - + diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index c84110d7dd..449eaa8c38 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -25,7 +25,7 @@ jobs: run: | sudo apt update sudo apt install -y build-essential libpng-dev libelf-dev - # build-essential, git, and libpng-dev are already installed + # build-essential and git are already installed # gcc-arm-none-eabi is only needed for the modern build # as an alternative to dkP @@ -38,5 +38,4 @@ jobs: env: TEST: 1 run: | - make -j${nproc} -O pokeemerald-test.elf make -j${nproc} check diff --git a/.gitignore b/.gitignore index ba80433cf7..5f9172181d 100644 --- a/.gitignore +++ b/.gitignore @@ -38,5 +38,6 @@ prefabs.json *.diff *.sym *.js +/pokeemerald-*.png src/data/map_group_count.h tools/trainerproc/trainerproc diff --git a/CHANGELOG.md b/CHANGELOG.md index bb9fec3e7e..13d6e4f4eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,11 @@ # Pokeemerald-Expansion Changelogs +## 1.10.x +- **[Version 1.10.0](docs/changelogs/1.10.x/1.10.0.md) - ✨ Feature Release** + ## 1.9.x +- **[Version 1.9.4](docs/changelogs/1.9.x/1.9.4.md) - 🧹 Bugfix Release** +- **[Version 1.9.3](docs/changelogs/1.9.x/1.9.3.md) - 🧹 Bugfix Release** - **[Version 1.9.2](docs/changelogs/1.9.x/1.9.2.md) - 🧹 Bugfix Release** - **[Version 1.9.1](docs/changelogs/1.9.x/1.9.1.md) - 🧹 Bugfix Release** - **[Version 1.9.0](docs/changelogs/1.9.x/1.9.0.md) - ✨ Feature Release** diff --git a/INSTALL.md b/INSTALL.md index 094f7b246a..fc1aeb5ba8 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 Expansion**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL). diff --git a/Makefile b/Makefile index 52bfe1e93f..71d2a48af9 100644 --- a/Makefile +++ b/Makefile @@ -1,155 +1,172 @@ -TOOLCHAIN := $(DEVKITARM) -COMPARE ?= 0 +# GBA rom header +TITLE := POKEMON EMER +GAME_CODE := BPEE +MAKER_CODE := 01 +REVISION := 0 +KEEP_TEMPS ?= 0 + +# `File name`.gba +FILE_NAME := pokeemerald +BUILD_DIR := build + +# Compares the ROM to a checksum of the original - only makes sense using when non-modern +COMPARE ?= 0 +# Executes the Test Runner System that checks that all mechanics work as expected +TEST ?= 0 +# Enables -fanalyzer C flag to analyze in depth potential UBs +ANALYZE ?= 0 +# Count unused warnings as errors. Used by RH-Hideout's repo +UNUSED_ERROR ?= 0 +# Adds -Og and -g flags, which optimize the build for debugging and include debug info respectively +DEBUG ?= 0 ifeq (compare,$(MAKECMDGOALS)) COMPARE := 1 endif +ifeq (check,$(MAKECMDGOALS)) + TEST := 1 +endif +ifeq (debug,$(MAKECMDGOALS)) + DEBUG := 1 +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 -ARMCC := $(PREFIX)gcc -PATH_ARMCC := PATH="$(PATH)" $(ARMCC) - -ifeq ($(OS),Windows_NT) -EXE := .exe -else EXE := -endif - -TITLE := POKEMON EMER -GAME_CODE := BPEE -MAKER_CODE := 01 -REVISION := 0 -TEST ?= 0 -ANALYZE ?= 0 -UNUSED_ERROR ?= 0 -DEBUG ?= 0 - -ifeq (check,$(MAKECMDGOALS)) - TEST := 1 -endif - -ifeq (debug,$(MAKECMDGOALS)) - DEBUG := 1 +ifeq ($(OS),Windows_NT) + EXE := .exe endif CPP := $(PREFIX)cpp -ROM_NAME := pokeemerald.gba +ROM_NAME := $(FILE_NAME).gba +OBJ_DIR_NAME := $(BUILD_DIR)/modern +OBJ_DIR_NAME_TEST := $(BUILD_DIR)/modern-test +OBJ_DIR_NAME_DEBUG := $(BUILD_DIR)/modern-debug + ELF_NAME := $(ROM_NAME:.gba=.elf) MAP_NAME := $(ROM_NAME:.gba=.map) -OBJ_DIR_NAME := build/modern +TESTELF = $(ROM_NAME:.gba=-test.elf) +HEADLESSELF = $(ROM_NAME:.gba=-test-headless.elf) -SHELL := bash -o pipefail - -ELF = $(ROM:.gba=.elf) -MAP = $(ROM:.gba=.map) -SYM = $(ROM:.gba=.sym) - -TEST_OBJ_DIR_NAME := build/modern-test -DEBUG_OBJ_DIR_NAME := build/modern-debug - -TESTELF = $(ROM:.gba=-test.elf) -HEADLESSELF = $(ROM:.gba=-test-headless.elf) +# Pick our active variables +ROM := $(ROM_NAME) +ifeq ($(TEST), 0) + OBJ_DIR := $(OBJ_DIR_NAME) +else + OBJ_DIR := $(OBJ_DIR_NAME_TEST) +endif +ifeq ($(DEBUG),1) + OBJ_DIR := $(OBJ_DIR_NAME_DEBUG) +endif +ifeq ($(TESTELF),$(MAKECMDGOALS)) + TEST := 1 +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 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 TEST_SUBDIR = test 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) MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR) TEST_BUILDDIR = $(OBJ_DIR)/$(TEST_SUBDIR) +SHELL := bash -o pipefail + +# Set flags for tools ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=1 -CC1 = $(shell $(PATH_ARMCC) --print-prog-name=cc1) -quiet -override CFLAGS += -mthumb -mthumb-interwork -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init +INCLUDE_DIRS := include +INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %) +INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %) +ifeq ($(DEBUG),1) +O_LEVEL ?= g +else +O_LEVEL ?= 2 +endif +CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST) +ARMCC := $(PREFIX)gcc +PATH_ARMCC := PATH="$(PATH)" $(ARMCC) +CC1 := $(shell $(PATH_ARMCC) --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 -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init ifeq ($(ANALYZE),1) -override CFLAGS += -fanalyzer + override CFLAGS += -fanalyzer endif # Only throw an error for unused elements if its RH-Hideout's repo ifeq ($(UNUSED_ERROR),0) -ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout) -override CFLAGS += -Wno-error=unused-variable -Wno-error=unused-const-variable -Wno-error=unused-parameter -Wno-error=unused-function -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs + ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout) + override CFLAGS += -Wno-error=unused-variable -Wno-error=unused-const-variable -Wno-error=unused-parameter -Wno-error=unused-function -Wno-error=unused-but-set-parameter -Wno-error=unused-but-set-variable -Wno-error=unused-value -Wno-error=unused-local-typedefs + endif endif -endif -ROM := $(ROM_NAME) -OBJ_DIR := $(OBJ_DIR_NAME) LIBPATH := -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_ARMCC) -mthumb -print-file-name=libc.a))" LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall - -ifeq ($(DEBUG),1) -override CFLAGS += -Og -g +# Enable debug info if set +ifeq ($(DINFO),1) + override CFLAGS += -g else -override CFLAGS += -O2 + ifeq ($(DEBUG),1) + override CFLAGS += -g + endif endif -ifeq ($(TESTELF),$(MAKECMDGOALS)) - TEST := 1 +ifeq ($(NOOPT),1) +override CFLAGS := $(filter-out -O1 -Og -O2,$(CFLAGS)) +override CFLAGS += -O0 endif -ifeq ($(TEST),1) -OBJ_DIR := $(TEST_OBJ_DIR_NAME) -endif -ifeq ($(DEBUG),1) -OBJ_DIR := $(DEBUG_OBJ_DIR_NAME) -endif - - -CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST) - -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) -PATCHELF := tools/patchelf/patchelf$(EXE) -ROMTEST ?= $(shell { command -v mgba-rom-test || command -v tools/mgba/mgba-rom-test$(EXE); } 2>/dev/null) -ROMTESTHYDRA := tools/mgba-rom-test-hydra/mgba-rom-test-hydra$(EXE) -TRAINERPROC := tools/trainerproc/trainerproc$(EXE) +# Variable filled out in other make files +AUTO_GEN_TARGETS := +include make_tools.mk +# Tool executables +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) +TRAINERPROC := $(TOOLS_DIR)/trainerproc/trainerproc$(EXE) +PATCHELF := $(TOOLS_DIR)/patchelf/patchelf$(EXE) +ROMTEST ?= $(shell { command -v mgba-rom-test || command -v $(TOOLS_DIR)/mgba/mgba-rom-test$(EXE); } 2>/dev/null) +ROMTESTHYDRA := $(TOOLS_DIR)/mgba-rom-test-hydra/mgba-rom-test-hydra$(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 tools/trainerproc -CHECKTOOLDIRS = tools/patchelf tools/mgba-rom-test-hydra -TOOLBASE = $(TOOLDIRS:tools/%=%) -TOOLS = $(foreach tool,$(TOOLBASE),tools/$(tool)/$(tool)$(EXE)) +SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c MAKEFLAGS += --no-print-directory @@ -160,37 +177,41 @@ MAKEFLAGS += --no-print-directory # 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 tools check-tools mostlyclean clean-tools clean-check-tools $(TOOLDIRS) $(CHECKTOOLDIRS) libagbsyscall agbcc modern tidymodern tidynonmodern check history debug +RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck generated clean-generated $(TESTELF) +.PHONY: all rom agbcc modern compare check debug +.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 agbcc modern check libagbsyscall syms $(TESTELF) debug,$(MAKECMDGOALS))) -$(call infoshell, $(MAKE) -f make_tools.mk) -else -NODEP ?= 1 -endif - -# check if we need to scan dependencies based on the rule -ifeq (,$(MAKECMDGOALS)) - SCAN_DEPS ?= 1 -else - # clean, tidy, tools, check-tools, mostlyclean, clean-tools, clean-check-tools, $(TOOLDIRS), $(CHECKTOOLDIRS), tidymodern, tidynonmodern, tidycheck don't even build the ROM - # libagbsyscall does its own thing - ifeq (,$(filter-out clean tidy tools mostlyclean clean-tools $(TOOLDIRS) clean-check-tools $(CHECKTOOLDIRS) tidymodern tidynonmodern tidycheck 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) +.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. + $(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`. + $(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 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)) @@ -200,10 +221,7 @@ TEST_SRCS := $(foreach src,$(TEST_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(s TEST_OBJS := $(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(TEST_SRCS)) TEST_OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(TEST_OBJS)) -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) @@ -221,243 +239,16 @@ 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) $(dir $(TEST_OBJS)))) $(shell mkdir -p $(SUBDIRS)) -endif -AUTO_GEN_TARGETS := - -all: history rom - -history: - @bash ./check_history.sh - -tools: $(TOOLDIRS) - -check-tools: $(CHECKTOOLDIRS) - -syms: $(SYM) - -$(TOOLDIRS): - @$(MAKE) -C $@ - -$(CHECKTOOLDIRS): - @$(MAKE) -C $@ - -rom: $(ROM) -ifeq ($(COMPARE),1) - @$(SHA1) rom.sha1 -endif - -# For contributors to make sure a change didn't affect the contents of the ROM. +# Pretend rules that are actually flags defer to `make all` +modern: all compare: all - -clean: mostlyclean clean-tools clean-check-tools - -clean-tools: - @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) - -clean-check-tools: - @$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);) - -mostlyclean: tidynonmodern tidymodern tidycheck tidydebug - find sound -iname '*.bin' -exec rm {} + - 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 $(DATA_SRC_SUBDIR)/map_group_count.h - 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: tidymodern tidycheck tidydebug - -tidymodern: - rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME) - rm -rf $(OBJ_DIR_NAME) - -tidycheck: - rm -f $(TESTELF) $(HEADLESSELF) - rm -rf $(TEST_OBJ_DIR_NAME) - -tidydebug: - rm -rf $(DEBUG_OBJ_DIR_NAME) - -include graphics_file_rules.mk -include map_data_rules.mk -include spritesheet_rules.mk -include json_data_rules.mk -include songs.mk - -%.s: ; -%.png: ; -%.pal: ; -%.aif: ; - -%.1bpp: %.png ; $(GFX) $< $@ -%.4bpp: %.png ; $(GFX) $< $@ -%.8bpp: %.png ; $(GFX) $< $@ -%.gbapal: %.pal ; $(GFX) $< $@ -%.gbapal: %.png ; $(GFX) $< $@ -%.lz: % ; $(GFX) $< $@ -%.rl: % ; $(GFX) $< $@ - -$(CRY_SUBDIR)/uncomp_%.bin: $(CRY_SUBDIR)/uncomp_%.aif ; $(AIF) $< $@ -$(CRY_SUBDIR)/%.bin: $(CRY_SUBDIR)/%.aif ; $(AIF) $< $@ --compress -sound/%.bin: sound/%.aif ; $(AIF) $< $@ - -COMPETITIVE_PARTY_SYNTAX := $(shell PATH="$(PATH)"; echo 'COMPETITIVE_PARTY_SYNTAX' | $(CPP) $(CPPFLAGS) -imacros include/global.h | tail -n1) -ifeq ($(COMPETITIVE_PARTY_SYNTAX),1) -%.h: %.party tools ; $(CPP) $(CPPFLAGS) -traditional-cpp - < $< | $(TRAINERPROC) -o $@ -i $< - -endif - -$(C_BUILDDIR)/berry_crush.o: override CFLAGS += -Wno-address-of-packed-member -$(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)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init -# Annoyingly we can't turn this on just for src/data/trainers.h -$(C_BUILDDIR)/data.o: CFLAGS += -fno-show-column -fno-diagnostics-show-caret - -ifeq ($(DINFO),1) -override CFLAGS += -g -endif - -ifeq ($(NOOPT),1) -override CFLAGS := $(filter-out -O1 -Og -O2,$(CFLAGS)) -override CFLAGS += -O0 -endif - -# 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. - -ifeq ($(SCAN_DEPS),1) -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.c -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 $@ - -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 -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) -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 - @echo -e ".text\n\t.align\t2, 0\n" >> $$(C_BUILDDIR)/$3.s - $$(AS) $$(ASFLAGS) -o $$@ $$(C_BUILDDIR)/$3.s -endif -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) -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 $@ - -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/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 $$@ - -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 -endif -endef -$(foreach src, $(GFLIB_SRCS), $(eval $(call GFLIB_DEP,$(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o, $(src)),$(src),$(patsubst $(GFLIB_SUBDIR)/%.c,%, $(src))))) -endif - -ifeq ($(NODEP),1) -$(C_BUILDDIR)/%.o: $(C_SUBDIR)/%.s - $(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 - | $$(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 - -ifeq ($(NODEP),1) -$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s - $(AS) $(ASFLAGS) -o $@ $< -else -define ASM_DEP -$1: $2 $$(shell $(SCANINC) -I include -I "" $2) - $$(AS) $$(ASFLAGS) -o $$@ $$< -endef -$(foreach src, $(ASM_SRCS), $(eval $(call ASM_DEP,$(patsubst $(ASM_SUBDIR)/%.s,$(ASM_BUILDDIR)/%.o, $(src)),$(src)))) -endif - -ifeq ($(NODEP),1) -$(DATA_ASM_BUILDDIR)/%.o: $(DATA_ASM_SUBDIR)/%.s - $(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 -endif - -$(SONG_BUILDDIR)/%.o: $(SONG_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< - -$(OBJ_DIR)/sym_bss.ld: sym_bss.txt - $(RAMSCRGEN) .bss $< ENGLISH > $@ - -$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) - $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ - -$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt - $(RAMSCRGEN) ewram_data $< ENGLISH > $@ - -# NOTE: Depending on event_scripts.o is hacky, but we want to depend on everything event_scripts.s depends on without having to alter scaninc -$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(DATA_ASM_BUILDDIR)/event_scripts.o - python3 tools/learnset_helpers/teachable.py - -# NOTE: Based on C_DEP above, but without NODEP and KEEP_TEMPS handling. -define TEST_DEP -$1: $2 $$(shell $(SCANINC) -I include -I tools/agbcc/include -I gflib $2) - @echo "$$(CC1) -o $$@ $$<" - @$$(CPP) $$(CPPFLAGS) $$< | $$(PREPROC) -i $$< charmap.txt | $$(CC1) $$(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $$(AS) $$(ASFLAGS) -o $$@ - -endef -$(foreach src, $(TEST_SRCS), $(eval $(call TEST_DEP,$(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(src)),$(src),$(patsubst $(TEST_SUBDIR)/%.c,%,$(src))))) - -LD_SCRIPT := ld_script_modern.ld -LD_SCRIPT_DEPS := - -$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS) - cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld - -LDFLAGS = -Map ../../$(MAP) -$(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 - $(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent - -$(ROM): $(ELF) - $(OBJCOPY) -O binary $< $@ - $(FIX) $@ -p --silent - +debug: all # Uncomment the next line, and then comment the 4 lines after it to reenable agbcc. #agbcc: all agbcc: @@ -465,10 +256,6 @@ agbcc: @echo "Search for 'agbcc: all' in Makefile to reenable agbcc." @exit 1 -modern: all - -debug: all - LD_SCRIPT_TEST := ld_script_test.ld $(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS) @@ -491,12 +278,177 @@ check: $(TESTELF) $(PATCHELF) $(HEADLESSELF) gTestRunnerHeadless '\x01' gTestRunnerSkipIsFail "$(TEST_SKIP_IS_FAIL)" $(ROMTESTHYDRA) $(ROMTEST) $(OBJCOPY) $(HEADLESSELF) +# Other rules +rom: $(ROM) +ifeq ($(COMPARE),1) + @$(SHA1) rom.sha1 +endif + +syms: $(SYM) + +clean: tidy clean-tools clean-check-tools clean-generated clean-assets + @$(MAKE) clean -C libagbsyscall + +clean-assets: + rm -f $(MID_SUBDIR)/*.s + 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 $(DATA_SRC_SUBDIR)/map_group_count.h + 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 {} + + +tidy: tidymodern tidycheck tidydebug + +tidymodern: + rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME) + rm -rf $(OBJ_DIR_NAME) + +tidycheck: + rm -f $(TESTELF) $(HEADLESSELF) + rm -rf $(OBJ_DIR_NAME_TEST) + +tidydebug: + rm -rf $(DEBUG_OBJ_DIR_NAME) + +# Other rules +include graphics_file_rules.mk +include map_data_rules.mk +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) + @: # Silence the "Nothing to be done for `generated'" message, which some people were confusing for an error. + + +%.s: ; +%.png: ; +%.pal: ; +%.aif: ; + +%.1bpp: %.png ; $(GFX) $< $@ +%.4bpp: %.png ; $(GFX) $< $@ +%.8bpp: %.png ; $(GFX) $< $@ +%.gbapal: %.pal ; $(GFX) $< $@ +%.gbapal: %.png ; $(GFX) $< $@ +%.lz: % ; $(GFX) $< $@ +%.rl: % ; $(GFX) $< $@ + +clean-generated: + -rm -f $(AUTO_GEN_TARGETS) + +COMPETITIVE_PARTY_SYNTAX := $(shell PATH="$(PATH)"; echo 'COMPETITIVE_PARTY_SYNTAX' | $(CPP) $(CPPFLAGS) -imacros include/gba/defines.h -imacros include/config/general.h | tail -n1) +ifeq ($(COMPETITIVE_PARTY_SYNTAX),1) +%.h: %.party ; $(CPP) $(CPPFLAGS) -traditional-cpp - < $< | $(TRAINERPROC) -o $@ -i $< - +endif + +$(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 +$(C_BUILDDIR)/pokedex_plus_hgss.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init +# Annoyingly we can't turn this on just for src/data/trainers.h +$(C_BUILDDIR)/data.o: CFLAGS += -fno-show-column -fno-diagnostics-show-caret + +# Dependency rules (for the *.c & *.s sources to .o files) +# 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 (Icedude_907: there is soon). + +$(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 $@ - +else + @$(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) +-include $(addprefix $(OBJ_DIR)/,$(C_SRCS:.c=.d)) +endif + +$(TEST_BUILDDIR)/%.o: $(TEST_SUBDIR)/%.c + @echo "$(CC1) -o $@ $<" + @$(CPP) $(CPPFLAGS) $< | $(PREPROC) -i $< charmap.txt | $(CC1) $(CFLAGS) -o - - | cat - <(echo -e ".text\n\t.align\t2, 0") | $(AS) $(ASFLAGS) -o $@ - + +$(TEST_BUILDDIR)/%.d: $(TEST_SUBDIR)/%.c + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $< + +ifneq ($(NODEP),1) +-include $(addprefix $(OBJ_DIR)/,$(TEST_SRCS:.c=.d)) +endif + +$(ASM_BUILDDIR)/%.o: $(ASM_SUBDIR)/%.s + $(AS) $(ASFLAGS) -o $@ $< + +$(ASM_BUILDDIR)/%.d: $(ASM_SUBDIR)/%.s + $(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I "" $< + +ifneq ($(NODEP),1) +-include $(addprefix $(OBJ_DIR)/,$(ASM_SRCS:.s=.d)) +endif + +$(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 + $(RAMSCRGEN) .bss $< ENGLISH > $@ + +$(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt) + $(RAMSCRGEN) COMMON $< ENGLISH -c $(C_BUILDDIR),common_syms > $@ + +$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt + $(RAMSCRGEN) ewram_data $< ENGLISH > $@ + +# NOTE: Depending on event_scripts.o is hacky, but we want to depend on everything event_scripts.s depends on without having to alter scaninc +$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(DATA_ASM_BUILDDIR)/event_scripts.o + python3 $(TOOLS_DIR)/learnset_helpers/teachable.py + +# Linker script +LD_SCRIPT := ld_script_modern.ld +LD_SCRIPT_DEPS := + +# Final rules + libagbsyscall: @$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=1 -################### -### Symbol file ### -################### +# 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" + $(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 + +# 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/README.md b/README.md index 427caafd0a..277dae2be7 100644 --- a/README.md +++ b/README.md @@ -6,12 +6,16 @@ pokeemerald-expansion is a decomp hack base project based off pret's [pokeemerald](https://github.com/pret/pokeemerald) decompilation project. It's recommended that any new projects that plan on using it, to clone this repository instead of pret's vanilla repository, as we regurlarly incorporate pret's documentation changes. This is ***NOT*** a standalone romhack, and as such, most features will be unavailable and/or unbalanced if played as is. +## Using pokeemerald-expansion + If you use pokeemerald-expansion in your hack, please add RHH (Rom Hacking Hideout) to your credits list. Optionally, you can list the version used, so it can help players know what features to expect. You can phrase it as the following: ``` -Based off RHH's pokeemerald-expansion 1.9.3 https://github.com/rh-hideout/pokeemerald-expansion/ +Based off RHH's pokeemerald-expansion 1.10.0 https://github.com/rh-hideout/pokeemerald-expansion/ ``` +Please follow the instructions in `INSTALL.md` to get pokeemerald-expansion set up on your machine. + ## What features are included? - ***IMPORTANT*❗❗ Read through these to learn what features you can toggle**: - [Battle configurations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/config/battle.h) @@ -119,11 +123,6 @@ Based off RHH's pokeemerald-expansion 1.9.3 https://github.com/rh-hideout/pokeem - ***Gen 6+ Exp. Share*** (configurable) - Berserk Gene - Most battle items from Gen 4+ - - Existing item data but missing effects: - - Gimmighoul Coin - - Booster Energy - - Tera Shards - - Tera Orb - ***Feature branches incorporated (with permission):*** - [RHH intro credits](https://github.com/Xhyzi/pokeemerald/tree/rhh-intro-credits) by @Xhyzi. - A small signature from all of us to show the collective effort in the project :) @@ -178,7 +177,7 @@ With this, you'll get the latest version of pokeemerald-expansion, plus a couple - Check your current version. - You can check in the debug menu's `Utilities -> Expansion Version` option. - If the option is not available, you possibly have version 1.6.2 or older. In that case, please check the [changelogs](CHANGELOG.md) to determine your version based on the features available on your repository. -- Once you have your remote set up, run the command `git pull RHH expansion/X.Y.Z`, replacing X, Y and Z with the digits of the respective version you want to update to (eg, to update to 1.9.3, use `git pull RHH expansion/1.9.3`). +- Once you have your remote set up, run the command `git pull RHH expansion/X.Y.Z`, replacing X, Y and Z with the digits of the respective version you want to update to (eg, to update to 1.10.0, use `git pull RHH expansion/1.10.0`). - ***Important:*** If you are several versions behind, we recommend updating one minor version at a time, skipping directly to the latest patch version (eg, 1.5.3 -> 1.6.2 -> 1.7.4 and so on) - Alternatively, you can update to unreleased versions of the expansion. - ***master (stable):*** It contains unreleased **bugfixes** that will come in the next patch version. To merge, use `git pull RHH master`. diff --git a/asm/macros/battle_script.inc b/asm/macros/battle_script.inc index f533853142..c9c95515f0 100644 --- a/asm/macros/battle_script.inc +++ b/asm/macros/battle_script.inc @@ -356,7 +356,7 @@ .byte 0x3a .endm - .macro healthbar_update battler:req + .macro absorbhealthbarupdate battler:req .byte 0x3b .byte \battler .endm @@ -798,9 +798,7 @@ 2: .endm - .macro setmultihitcounter value:req - .byte 0x8d - .byte \value + .macro unused_0x8d .endm .macro initmultihitstring @@ -834,7 +832,7 @@ .byte 0x94 .endm - .macro unused_95 + .macro copybidedmg .byte 0x95 .endm @@ -1104,7 +1102,7 @@ .byte 0xcc .endm - .macro cureifburnedparalysedorpoisoned failInstr:req + .macro curestatuswithmove failInstr:req .byte 0xcd .4byte \failInstr .endm @@ -1232,11 +1230,11 @@ .byte 0xe5 .endm - .macro unused3 + .macro unused_0xE6 .byte 0xe6 .endm - .macro unused4 + .macro unused_0xE7 .byte 0xe7 .endm @@ -1669,6 +1667,11 @@ callnative BS_DamageToQuarterTargetHP .endm + .macro jumpifsleepclause jumpInstr:req + callnative BS_JumpIfSleepClause + .4byte \jumpInstr + .endm + .macro ficklebeamdamagecalculation callnative BS_FickleBeamDamageCalculation .endm @@ -1726,6 +1729,15 @@ .4byte \failInstr .endm + .macro tryhitswitchtarget failInstr:req + callnative BS_TryHitSwitchTarget + .4byte \failInstr + .endm + + .macro setmagiccoattarget + callnative BS_SetMagicCoatTarget + .endm + .macro jumpifcommanderactive jumpInstr:req callnative BS_JumpIfCommanderActive .4byte \jumpInstr @@ -1739,15 +1751,45 @@ callnative BS_WaitFanfare .endm + .macro setbeakblast + callnative BS_SetBeakBlast + .endm + + .macro cantarshotwork failInstr:req + callnative BS_CanTarShotWork + .4byte \failInstr + .endm + + .macro removeterrain + callnative BS_RemoveTerrain + .endm + + .macro setmoveresultflags flags:req + callnative BS_SetMoveResultFlags + .2byte \flags + .endm + + .macro clearmoveresultflags flags:req + callnative BS_ClearMoveResultFlags + .2byte \flags + .endm + + .macro jumpifmoveresultflags flags:req failInstr:req + callnative BS_JumpIfMoveResultFlags + .2byte \flags + .4byte \failInstr + .endm + + .macro jumpifcriticalhit failInstr:req + callnative BS_JumpIfCriticalHit + .4byte \failInstr + .endm + @ various command changed to more readable macros .macro cancelmultiturnmoves battler:req various \battler, VARIOUS_CANCEL_MULTI_TURN_MOVES .endm - .macro setmagiccoattarget battler:req - various \battler, VARIOUS_SET_MAGIC_COAT_TARGET - .endm - .macro getifcantrunfrombattle battler:req various \battler, VARIOUS_IS_RUNNING_IMPOSSIBLE .endm @@ -1965,11 +2007,6 @@ various BS_ATTACKER, VARIOUS_SET_ARG_TO_BATTLE_DAMAGE .endm - .macro tryhitswitchtarget failInstr:req - various BS_ATTACKER, VARIOUS_TRY_HIT_SWITCH_TARGET - .4byte \failInstr - .endm - .macro tryautotomize battler:req, failInstr:req various \battler, VARIOUS_TRY_AUTOTOMIZE .4byte \failInstr @@ -1993,9 +2030,10 @@ .4byte \jumpInstr .endm - .macro trypsychoshift failInstr:req + .macro trypsychoshift failInstr:req sleepClauseFailInstr:req various BS_ATTACKER, VARIOUS_PSYCHO_SHIFT .4byte \failInstr + .4byte \sleepClauseFailInstr .endm .macro curestatus battler:req @@ -2218,10 +2256,6 @@ .4byte \failInstr .endm - .macro removeterrain - various BS_ATTACKER, VARIOUS_REMOVE_TERRAIN - .endm - .macro trytoclearprimalweather various BS_ATTACKER, VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER .endm @@ -2270,11 +2304,6 @@ .4byte \failInstr .endm - .macro cantarshotwork battler:req, failInstr:req - various \battler, VARIOUS_CAN_TAR_SHOT_WORK - .4byte \failInstr - .endm - .macro checkpoltergeist battler:req, failInstr:req various \battler, VARIOUS_CHECK_POLTERGEIST .4byte \failInstr @@ -2316,10 +2345,6 @@ various \battler, VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM .endm - .macro setbeakblast battler:req - various \battler, VARIOUS_SET_BEAK_BLAST - .endm - .macro swapsidestatuses various BS_ATTACKER, VARIOUS_SWAP_SIDE_STATUSES .endm @@ -2400,7 +2425,7 @@ .endm .macro jumpifmovehadnoeffect jumpInstr:req - jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_NO_EFFECT, \jumpInstr + jumpifmoveresultflags MOVE_RESULT_NO_EFFECT, \jumpInstr .endm .macro jumpifside battler:req, side:req, equalJumpInstr:req 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 diff --git a/asm/macros/event.inc b/asm/macros/event.inc index c9c7f25581..717b867f41 100644 --- a/asm/macros/event.inc +++ b/asm/macros/event.inc @@ -2340,3 +2340,95 @@ .macro hideitemdescription callnative ScriptHideItemDescription .endm + + @ Remove all of specified item from the player's bag and return the number of removed items to VAR_RESULT + .macro removeallitem itemId:req + callnative ScrCmd_removeallitem + .2byte \itemId + .endm + + @ Stores the position of the given object in destX and destY. Mode CURRENT_POSITION will take the object's current position. Mode TEMPLATE_POSITION will take the object's template position. + .macro getobjectxy localId:req, posType:req, destX:req, destY:req + callnative ScrCmd_getobjectxy + .2byte \localId + .2byte \posType + .2byte \destX + .2byte \destY + .endm + + .macro getobjecttemplatexy localId:req, posType = TEMPLATE_POSITION, destX:req, destY:req + callnative ScrCmd_getobjectxy + .2byte \localId + .2byte \posType + .2byte \destX + .2byte \destY + .endm + + .macro getobjectcurrentxy localId:req, posType = CURRENT_POSITION, destX:req, destY:req + callnative ScrCmd_getobjectxy + .2byte \localId + .2byte \posType + .2byte \destX + .2byte \destY + .endm + + @ Return TRUE to dest if there is an object at the position x and y. + .macro checkobjectat x:req, y:req, dest = VAR_RESULT + callnative ScrCmd_checkobjectat + .2byte \x + .2byte \y + .2byte \dest + .endm + + @ Returns the state of the Pokedex Seen Flag to VAR_RESULT for the Pokemon with speciesId + .macro getseenmon species:req + callnative Scrcmd_getsetpokedexflag + .2byte \species + .2byte FLAG_GET_SEEN + .endm + + @ Returns the state of the Pokedex Caught Flag to VAR_RESULT for the Pokemon with speciesId + .macro getcaughtmon species:req + callnative Scrcmd_getsetpokedexflag + .2byte \species + .2byte FLAG_GET_CAUGHT + .endm + + @ Sets the Pokedex Seen Flag for the Pokemon with speciesId + .macro setseenmon species:req + callnative Scrcmd_getsetpokedexflag + .2byte \species + .2byte FLAG_SET_SEEN + .endm + + @ Sets the Pokedex Caught Flag for the Pokemon with speciesId + .macro setcaughtmon species:req + callnative Scrcmd_getsetpokedexflag + .2byte \species + .2byte FLAG_SET_CAUGHT + .endm + + @ Check if the Player has speciesId in their party. OPEN_PARTY_SCREEN will have the player select a mon from their party. NO_PARTY_SCREEN will automatically check every mon in the player's party. + .macro checkspecies speciesId:req, mode=NO_PARTY_SCREEN + .if \mode == OPEN_PARTY_SCREEN + special ChoosePartyMon + waitstate + callnative Scrcmd_checkspecies_choose + .2byte \speciesId + .else + callnative Scrcmd_checkspecies + .2byte \speciesId + .endif + .endm + + .macro checkspecies_choose speciesId:req + checkspecies \speciesId, OPEN_PARTY_SCREEN + .endm + + @ Gets the facing direction of a given event object and stores it in the variable dest. + .macro getobjectfacingdirection localId:req, dest:req + callnative Scrcmd_getobjectfacingdirection + .2byte \localId + .2byte \dest + .endm + diff --git a/audio_rules.mk b/audio_rules.mk new file mode 100644 index 0000000000..63a2e21add --- /dev/null +++ b/audio_rules.mk @@ -0,0 +1,49 @@ +# This file contains rules for making assemblies for most music in the game. + +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 cries +$(CRY_BIN_DIR)/uncomp_%.bin: $(CRY_SUBDIR)/uncomp_%.aif + $(AIF) $< $@ + +# 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 +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_CFG_PATH) + $(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 + +$(foreach line,$(shell cat $(MID_CFG_PATH) | sed "s/ /__SPACE__/g"),$(call MID_EXPANSION,$(subst __SPACE__, ,$(line)))) + +# 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) diff --git a/charmap.txt b/charmap.txt index e5a901d6d9..98ad683c81 100644 --- a/charmap.txt +++ b/charmap.txt @@ -370,7 +370,7 @@ B_ATK_NAME_WITH_PREFIX = FD 0F B_DEF_NAME_WITH_PREFIX = FD 10 B_EFF_NAME_WITH_PREFIX = FD 11 @ EFF = short for gEffectBattler @ FD 12 - preiously gActiveBattler with prefix -B_SCR_ACTIVE_NAME_WITH_PREFIX = FD 13 +B_SCR_NAME_WITH_PREFIX = FD 13 B_CURRENT_MOVE = FD 14 B_LAST_MOVE = FD 15 B_LAST_ITEM = FD 16 @@ -411,8 +411,17 @@ B_ATK_TEAM2 = FD 38 B_DEF_NAME = FD 39 B_DEF_TEAM1 = FD 3A B_DEF_TEAM2 = FD 3B +B_DEF_PARTNER_NAME = FD 3C @ FD 3C - preiously gActiveBattler @ FD 3D - preiously gActiveBattler without Illusion Check +B_ATK_NAME_WITH_PREFIX2 = FD 3E +B_DEF_NAME_WITH_PREFIX2 = FD 3F +B_EFF_NAME_WITH_PREFIX2 = FD 40 +B_SCR_NAME_WITH_PREFIX2 = FD 41 +B_TRAINER1_NAME_WITH_CLASS = FD 42 +B_TRAINER2_NAME_WITH_CLASS = FD 43 +B_PARTNER_NAME_WITH_CLASS = FD 44 +B_ATK_TRAINER_NAME_WITH_CLASS = FD 45 @ indicates the end of a town/city name (before " TOWN" or " CITY") NAME_END = FC 00 @@ -457,6 +466,7 @@ FONT_SMALL_NARROW = FC 06 08 FONT_NARROWER = FC 06 0A FONT_SMALL_NARROWER = FC 06 0B FONT_SHORT_NARROW = FC 06 0C +FONT_SHORT_NARROWER = FC 06 0D @ colors diff --git a/data/battle_anim_scripts.s b/data/battle_anim_scripts.s index 98ac1bfda7..80d50710ba 100644 --- a/data/battle_anim_scripts.s +++ b/data/battle_anim_scripts.s @@ -934,6 +934,44 @@ gBattleAnimMove_ToxicSpikes:: end gBattleAnimMove_HeartSwap:: + loadspritegfx ANIM_TAG_RED_HEART + loadspritegfx ANIM_TAG_PINKVIO_ORB + loadspritegfx ANIM_TAG_SPARKLE_2 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 0, 8, RGB(31, 24, 26) + createvisualtask AnimTask_HeartSwap, 3, ANIM_TARGET + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB_WHITE, 12, 3, 1 + loopsewithpan SE_M_TAIL_WHIP, SOUND_PAN_ATTACKER, 10, 8 + delay 16 + createvisualtask AnimTask_HeartSwap, 3, ANIM_ATTACKER + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB_WHITE, 12, 3, 1 + waitforvisualfinish + createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, -15, 0, 0, 0, 32, 60 + createsprite gGrantingStarsSpriteTemplate, ANIM_TARGET, 2, -15, 0, 0, 0, 32, 60 + delay 8 + createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 2, 12, -5, 0, 0, 32, 60 + createsprite gGrantingStarsSpriteTemplate, ANIM_TARGET, 2, 12, -5, 0, 0, 32, 60 + delay 4 + playsewithpan SE_SHINY, SOUND_PAN_ATTACKER + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_ATTACKER, RGB(31, 25, 27), 12, 3, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_ATTACKER, 0 + createvisualtask AnimTask_BlendMonInAndOut, 5, ANIM_TARGET, RGB(31, 25, 27), 12, 3, 1 + createvisualtask AnimTask_ScaleMonAndRestore, 5, -3, -3, 16, ANIM_TARGET, 0 + createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 160, -32 + createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, -256, -40 + createsprite gRedHeartBurstSpriteTemplate, ANIM_TARGET, 3, 128, -16 + createvisualtask AnimTask_BlendBattleAnimPal, 10, F_PAL_BG, 3, 8, 0, RGB(31, 24, 26) + createsprite gRedHeartCharmSpriteTemplate, ANIM_ATTACKER, 3, 0, 20 + playsewithpan SE_M_MORNING_SUN, SOUND_PAN_ATTACKER + delay 15 + createsprite gRedHeartCharmSpriteTemplate, ANIM_ATTACKER, 3, -20, 20 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER + delay 15 + createsprite gRedHeartCharmSpriteTemplate, ANIM_ATTACKER, 3, 20, 20 + playsewithpan SE_M_CHARM, SOUND_PAN_ATTACKER + waitforvisualfinish + clearmonbg ANIM_ATTACKER + clearmonbg ANIM_TARGET + blendoff end gBattleAnimMove_AquaRing:: @@ -3628,7 +3666,7 @@ gBattleAnimMove_DarkVoid:: loopsewithpan SE_M_CONFUSE_RAY, SOUND_PAN_ATTACKER, 5, 2 delay 48 createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -768, 21, 0, 112 @Last is duration - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, -768, 21, 0, 112 @Last is duration + createsprite gSlideMonToOffsetPartnerSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, -768, 21, 0, 112 @Last is duration delay 64 invisible ANIM_TARGET invisible ANIM_DEF_PARTNER @@ -3636,7 +3674,7 @@ gBattleAnimMove_DarkVoid:: createsprite gDarkVoidPurpleStarsTemplate, ANIM_ATTACKER, 2, 0, 0, ANIM_DEF_PARTNER, 0, 32, 60 waitforvisualfinish createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, 16 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0, 16 + createsprite gSlideMonToOriginalPosPartnerSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0, 16 delay 32 call UnsetPsychicBg visible ANIM_TARGET @@ -7672,6 +7710,17 @@ gBattleAnimMove_NobleRoar:: end gBattleAnimMove_IonDeluge:: + loadspritegfx ANIM_TAG_IONS + loopsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER, 10, 12 + createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS_2), 2, 0, 4, RGB_YELLOW + waitforvisualfinish + createvisualtask AnimTask_CreateIons, 2, 0, 3, 120 + createvisualtask AnimTask_CreateIons, 2, 0, 3, 120 + delay 120 + delay 30 + waitforvisualfinish + createvisualtask AnimTask_BlendBattleAnimPal, 10, (F_PAL_BG | F_PAL_BATTLERS_2), 2, 4, 0, RGB_YELLOW + waitforvisualfinish end gBattleAnimMove_ParabolicCharge:: @@ -9231,8 +9280,8 @@ gBattleAnimMove_ThousandArrows:: playsewithpan SE_M_THUNDERBOLT2, SOUND_PAN_ATTACKER waitforvisualfinish delay 0x30 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 0x32 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 0x32 call ThousandArrowsDown call ThousandArrowsDown call ThousandArrowsDown @@ -9432,8 +9481,8 @@ gBattleAnimMove_LandsWrath:: fadetobg BG_FISSURE waitbgfadeout playsewithpan SE_M_EARTHQUAKE, 0x0 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 0x32 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 0x32 createvisualtask AnimTask_PositionFissureBgOnBattler, 5, ANIM_TARGET, 5, -1 waitbgfadein waitforvisualfinish @@ -9600,8 +9649,8 @@ gBattleAnimMove_PrecipiceBlades:: fadetobg 0x15 waitbgfadeout createvisualtask AnimTask_PositionFissureBgOnBattler, 5, ANIM_TARGET, 5, -1 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 0x5 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 0x5 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 0x5 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 0x5 playsewithpan SE_M_EARTHQUAKE, 0x0 createvisualtask AnimTask_IsTargetPlayerSide, 0x2 jumpargeq 0x7, ANIM_TARGET, PrecipiceBladesOpponent @@ -10044,7 +10093,6 @@ gBattleAnimMove_FloralHealing:: loadspritegfx ANIM_TAG_ORBS @circles loadspritegfx ANIM_TAG_PINK_PETAL @pink particles monbg ANIM_ATTACKER - monbg ANIM_TARGET playsewithpan SE_M_DETECT, SOUND_PAN_ATTACKER call CIRCLES_LEAVES call CIRCLES_LEAVES @@ -10052,6 +10100,7 @@ gBattleAnimMove_FloralHealing:: panse SE_M_COMET_PUNCH, SOUND_PAN_ATTACKER, SOUND_PAN_TARGET, 0x2, 0x0 playsewithpan SE_M_TWISTER, 0x0 createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 0x46, 0x1, 0x40 + clearmonbg ANIM_ATTACKER delay 0x2 createsprite gFloralHealingWindLeavesTemplate, ANIM_ATTACKER, 2, 0x3c, 0x0, 0x40 delay 0x2 @@ -10074,6 +10123,7 @@ gBattleAnimMove_FloralHealing:: createsprite gSweetScentPetalSpriteTemplate, ANIM_ATTACKER, 2, 0x55, 0x0, 0x78 delay 0x2 loopsewithpan SE_M_POISON_POWDER, SOUND_PAN_TARGET, 0x12, 0xa + monbg ANIM_TARGET call FloralHealingSpores call FloralHealingSpores call FloralHealingSpores @@ -10084,7 +10134,6 @@ gBattleAnimMove_FloralHealing:: createsprite gGrantingStarsSpriteTemplate, ANIM_ATTACKER, 16, 0xc, 0xfffb, 0x1, 0x0, 0x20, 0x3c, 0x1 waitforvisualfinish clearmonbg ANIM_TARGET - clearmonbg ANIM_ATTACKER end FloralHealingSpores: createsprite gFloralHealingFlowerTemplate, ANIM_ATTACKER, 2, 0x0, 0xffec, 0x55, 0x50, 0x0 @@ -11712,8 +11761,8 @@ gBattleAnimMove_StompingTantrum:: monbg ANIM_TARGET createvisualtask AnimTask_Splash, 2, ANIM_ATTACKER, 3 delay 0x5 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 0x5 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 0x5 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 0x5 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 0x5 createsprite gStompingTantrumRockTemplate, ANIM_ATTACKER, 2, 0x0, 0x0 createsprite gStompingTantrumRockTemplate, ANIM_ATTACKER, 2, 0x0, 0x1 createsprite gStompingTantrumRockTemplate, ANIM_ATTACKER, 2, 0x0, 0x2 @@ -11848,8 +11897,8 @@ gBattleAnimMove_PrismaticLaser:: unloadspritegfx ANIM_TAG_ICE_CHUNK unloadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT delay 0x1E - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 0x32 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 0x32 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 0x32 playsewithpan SE_M_SOLAR_BEAM, SOUND_PAN_ATTACKER call PrismaticLaserRain call PrismaticLaserRain @@ -16121,11 +16170,11 @@ SandsearStormFireSpin: @Credits to Skeli gBattleAnimMove_LunarBlessing:: + loadspritegfx ANIM_TAG_BLUE_STAR loadspritegfx ANIM_TAG_MOON loadspritegfx ANIM_TAG_SPARKLE_2 loadspritegfx ANIM_TAG_GUARD_RING loadspritegfx ANIM_TAG_SMALL_EMBER @Yellow colour for ring - loadspritegfx ANIM_TAG_BLUE_STAR monbg ANIM_ATK_PARTNER setalpha 16, 0 createvisualtask AnimTask_BlendBattleAnimPal, 0xa, F_PAL_BG, 0x1, 0x0, 0x10, 0x0 @@ -16530,8 +16579,8 @@ gBattleAnimMove_GigatonHammer:: delay 18 createvisualtask AnimTask_SquishTarget, 0x2 delay 6 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 call GigatonHammerImpact waitforvisualfinish end @@ -18025,10 +18074,12 @@ PopulationBombContinue: waitforvisualfinish end +gBattleAnimMove_RevivalBlessing:: + goto gBattleAnimMove_LunarBlessing + gBattleAnimMove_TeraBlast:: gBattleAnimMove_OrderUp:: gBattleAnimMove_GlaiveRush:: -gBattleAnimMove_RevivalBlessing:: gBattleAnimMove_SaltCure:: gBattleAnimMove_TripleDive:: gBattleAnimMove_Doodle:: @@ -20231,8 +20282,8 @@ gBattleAnimMove_LowKick:: end gBattleAnimMove_Earthquake:: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 10, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, 0 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -20242,8 +20293,8 @@ gBattleAnimMove_Earthquake:: gBattleAnimMove_Fissure:: loadspritegfx ANIM_TAG_MUD_SAND - createvisualtask AnimTask_HorizontalShake, 3, ANIM_PLAYER_RIGHT, 10, 50 - createvisualtask AnimTask_HorizontalShake, 3, ANIM_TARGET, 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 10, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 10, 50 playsewithpan SE_M_EARTHQUAKE, SOUND_PAN_TARGET delay 8 call FissureDirtPlumeFar @@ -20969,13 +21020,13 @@ gBattleAnimMove_Magnitude:: MagnitudeEnd: end MagnitudeRegular: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 goto MagnitudeEnd MagnitudeIntense: - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 0, 50 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 0, 50 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 0, 50 loopsewithpan SE_M_STRENGTH, SOUND_PAN_TARGET, 8, 10 delay 10 createsprite gComplexPaletteBlendSpriteTemplate, ANIM_ATTACKER, 2, F_PAL_BG, 3, 1, RGB_BLACK, 14, RGB_WHITE, 14 @@ -21448,8 +21499,8 @@ gBattleAnimMove_Eruption:: createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 110, -32, 64, 50, 0 createsprite gEruptionFallingRockSpriteTemplate, ANIM_ATTACKER, 40, 60, -32, 80, 70, 1 delay 22 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 8, 60 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 8, 60 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 8, 60 loopsewithpan SE_M_ROCK_THROW, SOUND_PAN_TARGET, 16, 12 delay 80 createsprite gSimplePaletteBlendSpriteTemplate, ANIM_ATTACKER, 40, F_PAL_BG | F_PAL_BATTLERS, 4, 4, 0, RGB_RED @@ -21479,7 +21530,7 @@ gBattleAnimMove_Imprison:: waitforvisualfinish delay 4 createsprite gRedXSpriteTemplate, ANIM_ATTACKER, 5, ANIM_ATTACKER, 40 - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 1, 10 + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 1, 10 playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER clearmonbg ANIM_DEF_PARTNER call UnsetPsychicBg @@ -28953,8 +29004,8 @@ gBattleAnimMove_BreakneckBlitz:: loadspritegfx ANIM_TAG_CIRCLE_OF_LIGHT loadspritegfx ANIM_TAG_METEOR loadspritegfx ANIM_TAG_FLAT_ROCK - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_RIGHT, 5, 32 @ shake screen - createvisualtask AnimTask_HorizontalShake, 5, ANIM_PLAYER_LEFT, 5, 32 @ shake banks + createvisualtask AnimTask_HorizontalShake, 5, (MAX_BATTLERS_COUNT + 1), 5, 32 @ shake screen + createvisualtask AnimTask_HorizontalShake, 5, MAX_BATTLERS_COUNT, 5, 32 @ shake banks playsewithpan SE_M_EARTHQUAKE, 0x0 monbg ANIM_ATTACKER splitbgprio ANIM_ATTACKER @@ -33476,7 +33527,7 @@ gBattleAnimMove_ClangorousSoulblaze:: delay 0x2 createvisualtask AnimTask_StartSlidingBg, 0x5, 0x0, 0xFFE0, 0x1, 0xffff createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0xfd00, 0xa, 0x0, 0x2a - createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0xfd00, 0xa, 0x0, 0x2a + createsprite gSlideMonToOffsetPartnerSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0xfd00, 0xa, 0x0, 0x2a delay 0x20 createvisualtask AnimTask_StartSlidingBg, 0x5, 0x0, 0x20, 0x1, 0xffff delay 0xC @@ -33668,7 +33719,7 @@ FINISH_SOULBLAZE: call ResetFromWhiteScreen blendoff createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0x0, 0x10 - createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0x0, 0x10 + createsprite gSlideMonToOriginalPosPartnerSpriteTemplate, ANIM_ATTACKER, 2, ANIM_DEF_PARTNER, 0x0, 0x10 waitforvisualfinish end ClangorousSoulblazeEnergySwirl: @@ -34691,7 +34742,7 @@ gBattleAnimMove_GMaxTerror:: gBattleAnimMove_MaxPhantasm:: createvisualtask AnimTask_DynamaxGrowth, 0x5, 0x1, 0x1 waitforvisualfinish - goto gBattleAnimMove_PhantomForce + goto gBattleAnimMove_ShadowBall end gBattleAnimMove_GMaxGravitas:: diff --git a/data/battle_scripts_1.s b/data/battle_scripts_1.s index 05eb64d15a..2c9bd46f52 100644 --- a/data/battle_scripts_1.s +++ b/data/battle_scripts_1.s @@ -26,7 +26,7 @@ BattleScript_DamageToQuarterTargetHP:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE damagetoquartertargethp goto BattleScript_HitFromAtkAnimation @@ -205,7 +205,7 @@ BattleScript_FilletAwayTrySpeed:: printfromtable gStatUpStringIds waitmessage B_WAIT_TIME_LONG BattleScript_FilletAwayEnd:: - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER goto BattleScript_MoveEnd @@ -214,33 +214,31 @@ BattleScript_EffectDoodle:: attackcanceler attackstring ppreduce + trycopyability BS_ATTACKER, BattleScript_ButItFailed attackanimation waitanimation setbyte gBattleCommunication, 0 + goto BattleScript_EffectDoodle_AfterCopy BattleScript_EffectDoodle_CopyAbility: - trycopyability BS_ATTACKER, BattleScript_ButItFailed + trycopyability BS_ATTACKER, BattleScript_MoveEnd +BattleScript_EffectDoodle_AfterCopy: .if B_ABILITY_POP_UP == TRUE - setbyte sFIXED_ABILITY_POPUP, TRUE - showabilitypopup BS_ATTACKER - pause 60 - sethword sABILITY_OVERWRITE, 0 - updateabilitypopup BS_ATTACKER - pause 20 - destroyabilitypopup - pause 40 + copybyte gBattlerAbility, gBattlerAttacker + call BattleScript_AbilityPopUpOverwriteThenNormal .endif + recordability BS_ATTACKER printstring STRINGID_PKMNCOPIEDFOE waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER jumpifbyte CMP_NOT_EQUAL, gBattleCommunication, 0x0, BattleScript_MoveEnd addbyte gBattleCommunication, 1 - jumpifnoally BS_TARGET, BattleScript_MoveEnd + jumpifnoally BS_ATTACKER, BattleScript_MoveEnd setallytonextattacker BattleScript_EffectDoodle_CopyAbility goto BattleScript_MoveEnd BattleScript_EffectGlaiveRush:: call BattleScript_EffectHit_Ret - jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TryFaintMon + jumpifmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_TryFaintMon setglaiverush goto BattleScript_TryFaintMon @@ -436,7 +434,7 @@ BattleScript_EffectCorrosiveGas:: BattleScript_CorrosiveGasFail: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED printstring STRINGID_NOEFFECTONTARGET waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -445,7 +443,7 @@ BattleScript_EffectTakeHeart:: attackcanceler attackstring ppreduce - cureifburnedparalysedorpoisoned BattleScript_CalmMindTryToRaiseStats + curestatuswithmove BattleScript_CalmMindTryToRaiseStats attackanimation waitanimation updatestatusicon BS_ATTACKER @@ -468,6 +466,9 @@ BattleScript_EffectRevivalBlessing:: goto BattleScript_MoveEnd BattleScript_EffectRevivalBlessingSendOut: + getswitchedmondata BS_SCRIPTING + switchindataupdate BS_SCRIPTING + hpthresholds BS_SCRIPTING switchinanim BS_SCRIPTING, FALSE waitstate switchineffects BS_SCRIPTING @@ -669,7 +670,7 @@ BattleScript_EffectCourtChange:: goto BattleScript_MoveEnd BattleScript_BeakBlastSetUp:: - setbeakblast BS_ATTACKER + setbeakblast flushtextbox playanimation BS_ATTACKER, B_ANIM_BEAK_BLAST_SETUP, NULL printstring STRINGID_HEATUPBEAK @@ -716,7 +717,7 @@ BattleScript_SkyDropFlyingType: goto BattleScript_MoveEnd BattleScript_SkyDropChangedTarget: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED resultmessage waitmessage B_WAIT_TIME_LONG makevisible BS_ATTACKER @@ -890,7 +891,7 @@ BattleScript_EffectTarShot:: attackcanceler jumpifsubstituteblocks BattleScript_FailedFromAtkString accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE - cantarshotwork BS_TARGET, BattleScript_FailedFromAtkString + cantarshotwork BattleScript_FailedFromAtkString attackstring ppreduce setstatchanger STAT_SPEED, 1, TRUE @@ -1638,7 +1639,7 @@ BattleScript_EffectPsychoShift:: BattleScript_EffectPsychoShiftCanWork: jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed jumpifsafeguard BattleScript_SafeguardProtected - trypsychoshift BattleScript_ButItFailed + trypsychoshift BattleScript_ButItFailed, BattleScript_SleepClauseBlocked attackanimation waitanimation copybyte gEffectBattler, gBattlerTarget @@ -1796,7 +1797,7 @@ BattleScript_EffectFinalGambit:: ppreduce critcalc typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE dmgtocurrattackerhp adjustdamage attackanimation @@ -1808,13 +1809,13 @@ BattleScript_EffectFinalGambit:: datahpupdate BS_TARGET resultmessage waitmessage B_WAIT_TIME_LONG - dmgtocurrattackerhp - healthbarupdate BS_ATTACKER - datahpupdate BS_ATTACKER setadditionaleffects - tryfaintmon BS_ATTACKER tryfaintmon BS_TARGET jumpifmovehadnoeffect BattleScript_MoveEnd + setatkhptozero + healthbarupdate BS_ATTACKER + datahpupdate BS_ATTACKER + tryfaintmon BS_ATTACKER goto BattleScript_MoveEnd BattleScript_EffectHitSwitchTarget:: @@ -2346,6 +2347,11 @@ BattleScript_EffectSimpleBeam:: setabilitysimple BS_TARGET, BattleScript_ButItFailed attackanimation waitanimation +.if B_ABILITY_POP_UP == TRUE + copybyte gBattlerAbility, gBattlerTarget + call BattleScript_AbilityPopUpOverwriteThenNormal +.endif + recordability BS_TARGET printstring STRINGID_PKMNACQUIREDSIMPLE waitmessage B_WAIT_TIME_LONG trytoclearprimalweather @@ -2378,7 +2384,7 @@ BattleScript_EffectMetalBurst:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE + clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE adjustdamage goto BattleScript_HitFromAtkAnimation @@ -2395,7 +2401,6 @@ BattleScript_EffectHealingWish:: storehealingwish BS_ATTACKER .if B_HEALING_WISH_SWITCH <= GEN_4 openpartyscreen BS_ATTACKER, BattleScript_EffectHealingWishEnd - switchoutabilities BS_ATTACKER waitstate switchhandleorder BS_ATTACKER, 2 returnatktoball @@ -2444,11 +2449,17 @@ BattleScript_EffectWorrySeed:: tryworryseed BattleScript_ButItFailed attackanimation waitanimation +.if B_ABILITY_POP_UP == TRUE + copybyte gBattlerAbility, gBattlerTarget + call BattleScript_AbilityPopUpOverwriteThenNormal +.endif + recordability BS_TARGET printstring STRINGID_PKMNACQUIREDABILITY waitmessage B_WAIT_TIME_LONG trytoclearprimalweather tryrevertweatherform flushtextbox + tryendneutralizinggas BS_TARGET goto BattleScript_MoveEnd BattleScript_EffectPowerSplit:: @@ -2848,7 +2859,7 @@ BattleScript_EffectNaturalGiftEnd: goto BattleScript_MoveEnd BattleScript_MakeMoveMissed:: - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED + setmoveresultflags MOVE_RESULT_MISSED BattleScript_PrintMoveMissed:: attackstring ppreduce @@ -2881,6 +2892,7 @@ BattleScript_EffectSleep:: jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifstatus BS_TARGET, STATUS1_ANY, BattleScript_ButItFailed + jumpifsleepclause BattleScript_SleepClauseBlocked jumpifterrainaffected BS_TARGET, STATUS_FIELD_ELECTRIC_TERRAIN, BattleScript_ElectricTerrainPrevents jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE @@ -2900,14 +2912,14 @@ BattleScript_ElectricTerrainPrevents:: pause B_WAIT_TIME_SHORT printstring STRINGID_ELECTRICTERRAINPREVENTS waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_MistyTerrainPrevents:: pause B_WAIT_TIME_SHORT printstring STRINGID_MISTYTERRAINPREVENTS waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_FlowerVeilProtectsRet:: @@ -2919,7 +2931,7 @@ BattleScript_FlowerVeilProtectsRet:: BattleScript_FlowerVeilProtects: call BattleScript_FlowerVeilProtectsRet - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_SweetVeilProtectsRet:: @@ -2931,7 +2943,7 @@ BattleScript_SweetVeilProtectsRet:: BattleScript_SweetVeilProtects: call BattleScript_SweetVeilProtectsRet - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_AromaVeilProtectsRet:: @@ -2943,7 +2955,7 @@ BattleScript_AromaVeilProtectsRet:: BattleScript_AromaVeilProtects: call BattleScript_AromaVeilProtectsRet - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_PastelVeilProtectsRet:: @@ -2955,7 +2967,7 @@ BattleScript_PastelVeilProtectsRet:: BattleScript_PastelVeilProtects: call BattleScript_PastelVeilProtectsRet - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_AbilityProtectsDoesntAffectRet:: @@ -2967,7 +2979,7 @@ BattleScript_AbilityProtectsDoesntAffectRet:: BattleScript_AbilityProtectsDoesntAffect: call BattleScript_AbilityProtectsDoesntAffectRet - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_InsomniaProtects: @@ -2975,7 +2987,7 @@ BattleScript_InsomniaProtects: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSTAYEDAWAKEUSING waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_AlreadyAsleep:: @@ -2983,47 +2995,35 @@ BattleScript_AlreadyAsleep:: pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNALREADYASLEEP waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_WasntAffected:: pause B_WAIT_TIME_SHORT printstring STRINGID_PKMNWASNTAFFECTED waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_CantMakeAsleep:: pause B_WAIT_TIME_SHORT printfromtable gUproarAwakeStringIds waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd -BattleScript_EffectAbsorb:: - call BattleScript_EffectHit_Ret - jumpifstatus3 BS_ATTACKER, STATUS3_HEAL_BLOCK, BattleScript_AbsorbHealBlock - setdrainedhp - manipulatedamage DMG_BIG_ROOT - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE - jumpifability BS_TARGET, ABILITY_LIQUID_OOZE, BattleScript_AbsorbLiquidOoze - setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB - goto BattleScript_AbsorbUpdateHp -BattleScript_AbsorbLiquidOoze:: +BattleScript_EffectAbsorbLiquidOoze:: call BattleScript_AbilityPopUpTarget - manipulatedamage DMG_CHANGE_SIGN - setbyte cMULTISTRING_CHOOSER, B_MSG_ABSORB_OOZE -BattleScript_AbsorbUpdateHp:: - healthbarupdate BS_ATTACKER + goto BattleScript_EffectAbsorb + +BattleScript_EffectAbsorb:: + absorbhealthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - jumpifmovehadnoeffect BattleScript_AbsorbTryFainting printfromtable gAbsorbDrainStringIds waitmessage B_WAIT_TIME_LONG -BattleScript_AbsorbTryFainting:: tryfaintmon BS_ATTACKER -BattleScript_AbsorbHealBlock:: - tryfaintmon BS_TARGET - goto BattleScript_MoveEnd + bicword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_PASSIVE_DAMAGE + return BattleScript_EffectExplosion:: attackcanceler @@ -3082,7 +3082,7 @@ BattleScript_DreamEaterWorked: healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER jumpifmovehadnoeffect BattleScript_DreamEaterTryFaintEnd - printstring STRINGID_PKMNDREAMEATEN + printstring STRINGID_PKMNENERGYDRAINED waitmessage B_WAIT_TIME_LONG BattleScript_DreamEaterTryFaintEnd: tryfaintmon BS_TARGET @@ -3094,7 +3094,7 @@ BattleScript_EffectMirrorMove:: pause B_WAIT_TIME_LONG trymirrormove ppreduce - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED printstring STRINGID_MIRRORMOVEFAILED waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -3433,7 +3433,7 @@ BattleScript_EffectSuperFang:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE damagetohalftargethp goto BattleScript_HitFromAtkAnimation @@ -3442,7 +3442,7 @@ BattleScript_EffectRecoilIfMiss:: accuracycheck BattleScript_MoveMissedDoDamage, ACC_CURR_MOVE .if B_CRASH_IF_TARGET_IMMUNE >= GEN_4 typecalc - jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveMissedDoDamage + jumpifmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveMissedDoDamage .endif goto BattleScript_HitFromAtkString BattleScript_MoveMissedDoDamage:: @@ -3453,7 +3453,7 @@ BattleScript_MoveMissedDoDamage:: resultmessage waitmessage B_WAIT_TIME_LONG .if B_CRASH_IF_TARGET_IMMUNE < GEN_4 - jumpifhalfword CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd + jumpifmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE, BattleScript_MoveEnd .endif moveendcase MOVEEND_PROTECT_LIKE_EFFECT @ Spiky Shield's damage happens before recoil. jumpifhasnohp BS_ATTACKER, BattleScript_MoveEnd @@ -3468,18 +3468,18 @@ BattleScript_MoveMissedDoDamage:: manipulatedamage DMG_RECOIL_FROM_MISS .endif .if B_CRASH_IF_TARGET_IMMUNE >= GEN_4 - bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE + clearmoveresultflags MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE .else - bichalfword gMoveResultFlags, MOVE_RESULT_MISSED + clearmoveresultflags MOVE_RESULT_MISSED .endif orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER tryfaintmon BS_ATTACKER .if B_CRASH_IF_TARGET_IMMUNE >= GEN_4 - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE .else - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED + setmoveresultflags MOVE_RESULT_MISSED .endif goto BattleScript_MoveEnd @@ -3666,7 +3666,7 @@ BattleScript_EffectParalyze:: jumpifterrainaffected BS_TARGET, STATUS_FIELD_MISTY_TERRAIN, BattleScript_MistyTerrainPrevents accuracycheck BattleScript_ButItFailed, ACC_CURR_MOVE jumpifsafeguard BattleScript_SafeguardProtected - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE attackanimation waitanimation seteffectprimary MOVE_EFFECT_PARALYSIS @@ -3870,26 +3870,39 @@ BattleScript_EffectDoNothing:: attackcanceler attackstring ppreduce - jumpifmove MOVE_HOLD_HANDS, BattleScript_EffectHoldHands attackanimation waitanimation - jumpifmove MOVE_CELEBRATE, BattleScript_EffectCelebrate - jumpifmove MOVE_HAPPY_HOUR, BattleScript_EffectHappyHour incrementgamestat GAME_STAT_USED_SPLASH printstring STRINGID_BUTNOTHINGHAPPENED waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectHoldHands: + +BattleScript_EffectHoldHands:: + attackcanceler + attackstring + ppreduce jumpifsideaffecting BS_TARGET, SIDE_STATUS_CRAFTY_SHIELD, BattleScript_ButItFailed jumpifbyteequal gBattlerTarget, gBattlerAttacker, BattleScript_ButItFailed attackanimation waitanimation goto BattleScript_MoveEnd -BattleScript_EffectCelebrate: + +BattleScript_EffectCelebrate:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation printstring STRINGID_CELEBRATEMESSAGE waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd -BattleScript_EffectHappyHour: + +BattleScript_EffectHappyHour:: + attackcanceler + attackstring + ppreduce + attackanimation + waitanimation seteffectprimary MOVE_EFFECT_HAPPY_HOUR goto BattleScript_MoveEnd @@ -3912,7 +3925,7 @@ BattleScript_EffectLevelDamage:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE dmgtolevel adjustdamage goto BattleScript_HitFromAtkAnimation @@ -3923,7 +3936,7 @@ BattleScript_EffectPsywave:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE psywavedamageeffect adjustdamage goto BattleScript_HitFromAtkAnimation @@ -3935,7 +3948,7 @@ BattleScript_EffectCounter:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE + clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE adjustdamage goto BattleScript_HitFromAtkAnimation @@ -3963,7 +3976,6 @@ BattleScript_EffectPainSplit:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER - copyword gBattleMoveDamage, sPAINSPLIT_HP healthbarupdate BS_TARGET datahpupdate BS_TARGET printstring STRINGID_SHAREDPAIN @@ -4148,6 +4160,7 @@ BattleScript_EffectMinimize:: BattleScript_EffectCurse:: jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_GhostCurse attackcanceler + jumpiftype BS_ATTACKER, TYPE_GHOST, BattleScript_DoGhostCurse attackstring ppreduce jumpifstat BS_ATTACKER, CMP_GREATER_THAN, STAT_SPEED, MIN_STAT_STAGE, BattleScript_CurseTrySpeed @@ -4417,7 +4430,7 @@ BattleScript_EffectFixedDamageArg:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE setargtobattledamage adjustdamage goto BattleScript_HitFromAtkAnimation @@ -4562,7 +4575,7 @@ BattleScript_EffectMirrorCoat:: attackstring ppreduce typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE + clearmoveresultflags MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE adjustdamage goto BattleScript_HitFromAtkAnimation @@ -4618,7 +4631,7 @@ BattleScript_BeatUpLoop:: trydobeatup BattleScript_BeatUpEnd, BattleScript_ButItFailed printstring STRINGID_PKMNATTACK critcalc - jumpifbyte CMP_NOT_EQUAL, gIsCriticalHit, TRUE, BattleScript_BeatUpAttack + jumpifcriticalhit BattleScript_BeatUpAttack manipulatedamage DMG_DOUBLED BattleScript_BeatUpAttack:: adjustdamage @@ -4687,7 +4700,7 @@ BattleScript_FailedFromPpReduce:: ppreduce BattleScript_ButItFailed:: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -4697,7 +4710,7 @@ BattleScript_RestoreAttackerButItFailed: BattleScript_NotAffected:: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -4705,7 +4718,7 @@ BattleScript_NotAffected:: BattleScript_NotAffectedAbilityPopUp:: pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUpTarget - orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE resultmessage waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -4775,7 +4788,6 @@ BattleScript_EffectSpitUp:: attackstring ppreduce accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE - setbyte gIsCriticalHit, FALSE damagecalc adjustdamage stockpiletobasedamage BattleScript_SpitUpFail @@ -4950,7 +4962,7 @@ BattleScript_EffectFollowMe:: attackcanceler attackstring ppreduce - .if B_UPDATED_MOVE_DATA >= GEN_6 + .if B_UPDATED_MOVE_DATA >= GEN_8 jumpifnotbattletype BATTLE_TYPE_DOUBLE, BattleScript_ButItFailed .endif setforcedtarget @@ -5038,15 +5050,10 @@ BattleScript_EffectRolePlay:: attackanimation waitanimation .if B_ABILITY_POP_UP == TRUE - setbyte sFIXED_ABILITY_POPUP, TRUE - showabilitypopup BS_ATTACKER - pause 60 - sethword sABILITY_OVERWRITE, 0 - updateabilitypopup BS_ATTACKER - pause 20 - destroyabilitypopup - pause 40 + copybyte gBattlerAbility, gBattlerAttacker + call BattleScript_AbilityPopUpOverwriteThenNormal .endif + recordability BS_ATTACKER printstring STRINGID_PKMNCOPIEDFOE waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER @@ -5114,7 +5121,7 @@ BattleScript_EffectBrickBreak:: damagecalc adjustdamage jumpifbyte CMP_EQUAL, sB_ANIM_TURN, 0, BattleScript_BrickBreakAnim - bichalfword gMoveResultFlags, MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE + clearmoveresultflags MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE BattleScript_BrickBreakAnim:: attackanimation waitanimation @@ -5147,6 +5154,7 @@ BattleScript_EffectYawn:: jumpifflowerveil BattleScript_FlowerVeilProtects jumpifleafguardprotected BS_TARGET, BattleScript_AbilityProtectsDoesntAffect jumpifshieldsdown BS_TARGET, BattleScript_AbilityProtectsDoesntAffect + jumpifsleepclause BattleScript_SleepClauseBlocked jumpifsubstituteblocks BattleScript_ButItFailed jumpifsafeguard BattleScript_SafeguardProtected accuracycheck BattleScript_ButItFailed, NO_ACC_CALC_CHECK_LOCK_ON @@ -5172,12 +5180,10 @@ BattleScript_EffectEndeavor:: attackstring ppreduce setdamagetohealthdifference BattleScript_ButItFailed - copyword gHpDealt, gBattleMoveDamage accuracycheck BattleScript_MoveMissedPause, ACC_CURR_MOVE typecalc jumpifmovehadnoeffect BattleScript_HitFromAtkAnimation - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE - copyword gBattleMoveDamage, gHpDealt + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE adjustdamage goto BattleScript_HitFromAtkAnimation @@ -5189,12 +5195,17 @@ BattleScript_EffectSkillSwap:: tryswapabilities BattleScript_ButItFailed attackanimation waitanimation + jumpiftargetally BattleScript_EffectSkillSwap_AfterAbilityPopUp .if B_ABILITY_POP_UP == TRUE - call BattleScript_AbilityPopUpTarget - pause 20 copybyte gBattlerAbility, gBattlerAttacker - call BattleScript_AbilityPopUp + call BattleScript_AbilityPopUpOverwriteThenNormal + copybyte gBattlerAbility, gBattlerTarget + copyhword sABILITY_OVERWRITE, gLastUsedAbility + call BattleScript_AbilityPopUpOverwriteThenNormal .endif +BattleScript_EffectSkillSwap_AfterAbilityPopUp: + recordability BS_ATTACKER + recordability BS_TARGET printstring STRINGID_PKMNSWAPPEDABILITIES waitmessage B_WAIT_TIME_LONG .if B_SKILL_SWAP >= GEN_4 @@ -5218,7 +5229,7 @@ BattleScript_EffectRefresh:: attackcanceler attackstring ppreduce - cureifburnedparalysedorpoisoned BattleScript_ButItFailed + curestatuswithmove BattleScript_ButItFailed attackanimation waitanimation printstring STRINGID_PKMNSTATUSNORMAL @@ -5296,7 +5307,7 @@ BattleScript_TickleEnd:: BattleScript_CantLowerMultipleStats:: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED printstring STRINGID_STATSWONTDECREASE2 waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -5380,7 +5391,7 @@ BattleScript_CalmMindEnd:: BattleScript_CantRaiseMultipleStats:: pause B_WAIT_TIME_SHORT - orhalfword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED printstring STRINGID_STATSWONTINCREASE2 waitmessage B_WAIT_TIME_LONG goto BattleScript_MoveEnd @@ -5755,7 +5766,6 @@ BattleScript_PrintFullBox:: BattleScript_ActionSwitch:: hpthresholds2 BS_ATTACKER - saveattacker printstring STRINGID_RETURNMON jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_PursuitSwitchDmgSetMultihit setmultihit 1 @@ -5773,7 +5783,6 @@ BattleScript_DoSwitchOut:: switchoutabilities BS_ATTACKER updatedynamax waitstate - restoreattacker returnatktoball waitstate drawpartystatussummary BS_ATTACKER @@ -5950,7 +5959,7 @@ BattleScript_OverworldWeatherStarts:: end3 BattleScript_OverworldTerrain:: - printfromtable gTerrainStringIds + printfromtable gTerrainStartsStringIds waitmessage B_WAIT_TIME_LONG playanimation BS_BATTLER_0, B_ANIM_RESTORE_BG call BattleScript_ActivateTerrainEffects @@ -6032,33 +6041,32 @@ BattleScript_SafeguardEnds:: waitmessage B_WAIT_TIME_LONG end2 -BattleScript_LeechSeedTurnDrain:: - playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1 - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE - healthbarupdate BS_ATTACKER - datahpupdate BS_ATTACKER - copyword gBattleMoveDamage, gHpDealt - jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze - setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_DRAIN - jumpifstatus3 BS_TARGET, STATUS3_HEAL_BLOCK, BattleScript_LeechSeedHealBlock - manipulatedamage DMG_BIG_ROOT - goto BattleScript_LeechSeedTurnPrintAndUpdateHp -BattleScript_LeechSeedTurnPrintLiquidOoze:: +BattleScript_LeechSeedTurnDrainLiquidOoze:: + call BattleScript_LeechSeedTurnDrain copybyte gBattlerAbility, gBattlerAttacker call BattleScript_AbilityPopUp - setbyte cMULTISTRING_CHOOSER, B_MSG_LEECH_SEED_OOZE -BattleScript_LeechSeedTurnPrintAndUpdateHp:: - orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE + goto BattleScript_LeechSeedTurnDrainGainHp + +BattleScript_LeechSeedTurnDrainHealBlock:: + call BattleScript_LeechSeedTurnDrain + end2 + +BattleScript_LeechSeedTurnDrainRecovery:: + call BattleScript_LeechSeedTurnDrain +BattleScript_LeechSeedTurnDrainGainHp: healthbarupdate BS_TARGET datahpupdate BS_TARGET printfromtable gLeechSeedStringIds waitmessage B_WAIT_TIME_LONG - tryfaintmon BS_ATTACKER tryfaintmon BS_TARGET end2 -BattleScript_LeechSeedHealBlock: - setword gBattleMoveDamage, 0 - goto BattleScript_LeechSeedTurnPrintAndUpdateHp + +BattleScript_LeechSeedTurnDrain: + playanimation BS_ATTACKER, B_ANIM_LEECH_SEED_DRAIN, sB_ANIM_ARG1 + healthbarupdate BS_ATTACKER + datahpupdate BS_ATTACKER + tryfaintmon BS_ATTACKER + return BattleScript_BideStoringEnergy:: printstring STRINGID_PKMNSTORINGENERGY @@ -6072,8 +6080,8 @@ BattleScript_BideAttack:: waitmessage B_WAIT_TIME_LONG accuracycheck BattleScript_MoveMissed, ACC_CURR_MOVE typecalc - bichalfword gMoveResultFlags, MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE - copyword gBattleMoveDamage, sBIDE_DMG + clearmoveresultflags MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE + copybidedmg adjustdamage setbyte sB_ANIM_TURN, 1 attackanimation @@ -6629,14 +6637,14 @@ BattleScript_FutureAttackEnd:: moveendcase MOVEEND_RAGE moveendcase MOVEEND_ABILITIES moveendfromto MOVEEND_ITEM_EFFECTS_ALL, MOVEEND_UPDATE_LAST_MOVES - setbyte gMoveResultFlags, 0 + setmoveresultflags 0 end2 BattleScript_FutureAttackMiss:: pause B_WAIT_TIME_SHORT - sethword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED resultmessage waitmessage B_WAIT_TIME_LONG - sethword gMoveResultFlags, 0 + setmoveresultflags 0 end2 BattleScript_NoMovesLeft:: @@ -6879,29 +6887,38 @@ BattleScript_GrudgeTakesPp:: waitmessage B_WAIT_TIME_LONG return -BattleScript_MagicCoatBounce:: +BattleScript_MagicBounce:: attackstring ppreduce pause B_WAIT_TIME_SHORT - jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0, BattleScript_MagicCoatBounce_Print call BattleScript_AbilityPopUp -BattleScript_MagicCoatBounce_Print: - printfromtable gMagicCoatBounceStringIds + printstring STRINGID_PKMNMOVEBOUNCEDABILITY + waitmessage B_WAIT_TIME_LONG + setmagiccoattarget + orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP + bicword gHitMarker, HITMARKER_NO_ATTACKSTRING + return + +BattleScript_MagicCoat:: + attackstring + ppreduce + pause B_WAIT_TIME_SHORT + setmagiccoattarget + printstring STRINGID_PKMNMOVEBOUNCED waitmessage B_WAIT_TIME_LONG orword gHitMarker, HITMARKER_ATTACKSTRING_PRINTED | HITMARKER_NO_PPDEDUCT | HITMARKER_ALLOW_NO_PP bicword gHitMarker, HITMARKER_NO_ATTACKSTRING - setmagiccoattarget BS_ATTACKER return -BattleScript_MagicCoatBouncePrankster:: +BattleScript_MagicCoatPrankster:: attackstring ppreduce pause B_WAIT_TIME_SHORT - printfromtable gMagicCoatBounceStringIds + printstring STRINGID_PKMNMOVEBOUNCED waitmessage B_WAIT_TIME_LONG printstring STRINGID_ITDOESNTAFFECT waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + setmoveresultflags MOVE_RESULT_NO_EFFECT goto BattleScript_MoveEnd BattleScript_SnatchedMove:: @@ -6950,7 +6967,6 @@ BattleScript_MegaEvolution:: printstring STRINGID_MEGAEVOREACTING BattleScript_MegaEvolutionAfterString: waitmessage B_WAIT_TIME_LONG - setbyte gIsCriticalHit, 0 handlemegaevo BS_SCRIPTING, 0 playanimation BS_SCRIPTING, B_ANIM_MEGA_EVOLUTION waitanimation @@ -6967,33 +6983,22 @@ BattleScript_WishMegaEvolution:: goto BattleScript_MegaEvolutionAfterString BattleScript_PrimalReversion:: - call BattleScript_PrimalReversionRet - end3 - -BattleScript_PrimalReversionRestoreAttacker:: - call BattleScript_PrimalReversionRet - copybyte gBattlerAttacker, sSAVED_BATTLER - end3 - -BattleScript_PrimalReversionRet:: flushtextbox - setbyte gIsCriticalHit, 0 - handleprimalreversion BS_ATTACKER, 0 - handleprimalreversion BS_ATTACKER, 1 - playanimation BS_ATTACKER, B_ANIM_PRIMAL_REVERSION + handleprimalreversion BS_SCRIPTING, 0 + handleprimalreversion BS_SCRIPTING, 1 + playanimation BS_SCRIPTING, B_ANIM_PRIMAL_REVERSION waitanimation - handleprimalreversion BS_ATTACKER, 2 + handleprimalreversion BS_SCRIPTING, 2 printstring STRINGID_PKMNREVERTEDTOPRIMAL waitmessage B_WAIT_TIME_LONG - switchinabilities BS_ATTACKER - return + switchinabilities BS_SCRIPTING + end3 BattleScript_UltraBurst:: flushtextbox trytrainerslidezmovemsg printstring STRINGID_ULTRABURSTREACTING waitmessage B_WAIT_TIME_LONG - setbyte gIsCriticalHit, 0 handleultraburst BS_SCRIPTING, 0 playanimation BS_SCRIPTING, B_ANIM_ULTRA_BURST waitanimation @@ -7300,7 +7305,7 @@ BattleScript_PowderMoveNoEffectPrint: BattleScript_PowderMoveNoEffectWaitMsg: waitmessage B_WAIT_TIME_LONG cancelmultiturnmoves BS_ATTACKER - sethword gMoveResultFlags, MOVE_RESULT_FAILED + setmoveresultflags MOVE_RESULT_FAILED goto BattleScript_MoveEnd BattleScript_MoveUsedFlinched:: @@ -7612,6 +7617,18 @@ BattleScript_AbilityPopUpScripting: sethword sABILITY_OVERWRITE, 0 return +BattleScript_AbilityPopUpOverwriteThenNormal: + setbyte sFIXED_ABILITY_POPUP, TRUE + showabilitypopup BS_ABILITY_BATTLER + pause 60 + sethword sABILITY_OVERWRITE, 0 + updateabilitypopup BS_ABILITY_BATTLER + pause 20 + recordability BS_ABILITY_BATTLER + destroyabilitypopup + pause 40 + return + BattleScript_SpeedBoostActivates:: statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_ALLOW_PTR, BattleScript_SpeedBoostActivatesEnd call BattleScript_AbilityPopUp @@ -8002,9 +8019,12 @@ BattleScript_SupremeOverlordActivates:: BattleScript_CostarActivates:: pause B_WAIT_TIME_SHORT + savetarget + copybyte gBattlerTarget, sBATTLER call BattleScript_AbilityPopUp printstring STRINGID_PKMNCOPIEDSTATCHANGES waitmessage B_WAIT_TIME_LONG + restoretarget end3 BattleScript_ZeroToHeroActivates:: @@ -8217,7 +8237,7 @@ BattleScript_MoveHPDrain:: datahpupdate BS_TARGET printstring STRINGID_PKMNRESTOREDHPUSING waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_MoveStatDrain_PPLoss:: @@ -8249,7 +8269,7 @@ BattleScript_MonMadeMoveUseless:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXMADEYUSELESS waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_FlashFireBoost_PPLoss:: @@ -8328,7 +8348,7 @@ BattleScript_SoundproofProtected:: call BattleScript_AbilityPopUp printstring STRINGID_PKMNSXBLOCKSY waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_DOESNT_AFFECT_FOE + setmoveresultflags MOVE_RESULT_DOESNT_AFFECT_FOE goto BattleScript_MoveEnd BattleScript_IceFaceNullsDamage:: @@ -8377,7 +8397,7 @@ BattleScript_AbilityNoSpecificStatLoss:: printstring STRINGID_PKMNSXPREVENTSYLOSS waitmessage B_WAIT_TIME_LONG setbyte cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY - orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + setmoveresultflags MOVE_RESULT_NO_EFFECT return BattleScript_StickyHoldActivates:: @@ -8402,7 +8422,7 @@ BattleScript_ProteanActivates:: BattleScript_TeraShellDistortingTypeMatchups:: pause B_WAIT_TIME_SHORTEST - call BattleScript_AbilityPopUp + call BattleScript_AbilityPopUpScripting printstring STRINGID_PKMNMADESHELLGLEAM waitmessage B_WAIT_TIME_LONG return @@ -8414,33 +8434,30 @@ BattleScript_CursedBodyActivates:: return BattleScript_MummyActivates:: - call BattleScript_AbilityPopUp +.if B_ABILITY_POP_UP == TRUE + call BattleScript_AbilityPopUpTarget + setbyte sFIXED_ABILITY_POPUP, TRUE + copybyte gBattlerAbility, gBattlerAttacker + copyhword sABILITY_OVERWRITE, gLastUsedAbility + call BattleScript_AbilityPopUpOverwriteThenNormal +.endif + recordability BS_TARGET + recordability BS_ATTACKER printstring STRINGID_ATTACKERACQUIREDABILITY waitmessage B_WAIT_TIME_LONG return BattleScript_WanderingSpiritActivates:: .if B_ABILITY_POP_UP == TRUE - setbyte sFIXED_ABILITY_POPUP, TRUE + copybyte gBattlerAbility, gBattlerTarget sethword sABILITY_OVERWRITE, ABILITY_WANDERING_SPIRIT - showabilitypopup BS_TARGET - pause 60 - sethword sABILITY_OVERWRITE, 0 - updateabilitypopup BS_TARGET - pause 20 - destroyabilitypopup - pause 40 + call BattleScript_AbilityPopUpOverwriteThenNormal copybyte gBattlerAbility, gBattlerAttacker - setbyte sFIXED_ABILITY_POPUP, TRUE copyhword sABILITY_OVERWRITE, gLastUsedAbility - showabilitypopup BS_ATTACKER - pause 60 - sethword sABILITY_OVERWRITE, 0 - updateabilitypopup BS_ATTACKER - pause 20 - destroyabilitypopup - pause 40 + call BattleScript_AbilityPopUpOverwriteThenNormal .endif + recordability BS_TARGET + recordability BS_ATTACKER printstring STRINGID_SWAPPEDABILITIES waitmessage B_WAIT_TIME_LONG switchinabilities BS_ATTACKER @@ -8490,7 +8507,7 @@ BattleScript_WeakArmorActivates:: jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_FELL_EMPTY, BattleScript_WeakArmorActivatesSpeed pause B_WAIT_TIME_SHORTEST printfromtable gStatDownStringIds - bichalfword gMoveResultFlags, MOVE_RESULT_MISSED @ Set by statbuffchange when stat can't be decreased + clearmoveresultflags MOVE_RESULT_MISSED @ Set by statbuffchange when stat can't be decreased waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesSpeed BattleScript_WeakArmorDefAnim: @@ -8509,7 +8526,7 @@ BattleScript_WeakArmorActivatesSpeed: jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, B_MSG_STAT_ROSE_EMPTY, BattleScript_WeakArmorActivatesEnd pause B_WAIT_TIME_SHORTEST printstring STRINGID_TARGETSTATWONTGOHIGHER - bichalfword gMoveResultFlags, MOVE_RESULT_MISSED + clearmoveresultflags MOVE_RESULT_MISSED waitmessage B_WAIT_TIME_LONG goto BattleScript_WeakArmorActivatesEnd BattleScript_WeakArmorSpeedAnim: @@ -8632,31 +8649,31 @@ BattleScript_RockyHelmetActivatesDmg: BattleScript_SpikyShieldEffect:: jumpifabsent BS_ATTACKER, BattleScript_SpikyShieldRet orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT healthbarupdate BS_ATTACKER datahpupdate BS_ATTACKER printstring STRINGID_PKMNHURTSWITH waitmessage B_WAIT_TIME_LONG tryfaintmon BS_ATTACKER - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED + setmoveresultflags MOVE_RESULT_MISSED BattleScript_SpikyShieldRet:: return BattleScript_KingsShieldEffect:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT seteffectsecondary copybyte sBATTLER, gBattlerTarget copybyte gBattlerTarget, gBattlerAttacker copybyte gBattlerAttacker, sBATTLER - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED + setmoveresultflags MOVE_RESULT_MISSED return BattleScript_BanefulBunkerEffect:: orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_STATUS_ABILITY_EFFECT | HITMARKER_PASSIVE_DAMAGE - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT seteffectsecondary - orhalfword gMoveResultFlags, MOVE_RESULT_MISSED + setmoveresultflags MOVE_RESULT_MISSED return BattleScript_CuteCharmActivates:: @@ -8860,18 +8877,12 @@ BattleScript_GemActivates:: return BattleScript_BerryReduceDmg:: - playanimation BS_TARGET, B_ANIM_HELD_ITEM_EFFECT + playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT waitanimation - setlastuseditem BS_TARGET - printstring STRINGID_TARGETATEITEM - waitmessage B_WAIT_TIME_LONG - removeitem BS_TARGET - return - -BattleScript_PrintBerryReduceString:: - waitmessage B_WAIT_TIME_LONG + setlastuseditem BS_SCRIPTING printstring STRINGID_BERRYDMGREDUCES waitmessage B_WAIT_TIME_LONG + removeitem BS_SCRIPTING return BattleScript_BerryCureConfusionEnd2:: @@ -9059,8 +9070,6 @@ BattleScript_BerryConfuseHealEnd2_Anim: orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING - printstring STRINGID_FORXCOMMAYZ - waitmessage B_WAIT_TIME_LONG seteffectprimary MOVE_EFFECT_CONFUSION | MOVE_EFFECT_AFFECTS_USER removeitem BS_SCRIPTING end2 @@ -9077,8 +9086,6 @@ BattleScript_BerryConfuseHealRet_Anim: orword gHitMarker, HITMARKER_IGNORE_BIDE | HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING - printstring STRINGID_FORXCOMMAYZ - waitmessage B_WAIT_TIME_LONG seteffectprimary MOVE_EFFECT_CONFUSION | MOVE_EFFECT_CERTAIN removeitem BS_TARGET return @@ -9624,7 +9631,9 @@ BattleScript_EjectButtonActivates:: removeitem BS_SCRIPTING makeinvisible BS_SCRIPTING openpartyscreen BS_SCRIPTING, BattleScript_EjectButtonEnd + copybyte sSAVED_BATTLER, sBATTLER switchoutabilities BS_SCRIPTING + copybyte sBATTLER, sSAVED_BATTLER waitstate switchhandleorder BS_SCRIPTING 0x2 returntoball BS_SCRIPTING, FALSE @@ -9651,13 +9660,20 @@ BattleScript_EjectPackActivates:: jumpifcantswitch BS_SCRIPTING, BattleScript_EjectButtonEnd goto BattleScript_EjectPackActivate_Ret +BattleScript_EjectPackMissesTiming:: + playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT + printstring STRINGID_EJECTBUTTONACTIVATE + waitmessage B_WAIT_TIME_LONG + removeitem BS_SCRIPTING + return + BattleScript_DarkTypePreventsPrankster:: attackstring ppreduce pause B_WAIT_TIME_SHORT printstring STRINGID_ITDOESNTAFFECT waitmessage B_WAIT_TIME_LONG - orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + setmoveresultflags MOVE_RESULT_NO_EFFECT goto BattleScript_MoveEnd BattleScript_WellBakedBodyActivates:: @@ -9665,7 +9681,7 @@ BattleScript_WellBakedBodyActivates:: ppreduce pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUpTarget - orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + setmoveresultflags MOVE_RESULT_NO_EFFECT modifybattlerstatstage BS_TARGET, STAT_DEF, INCREASE, 1, BattleScript_WellBakedBodyEnd, ANIM_ON BattleScript_WellBakedBodyEnd: goto BattleScript_MoveEnd @@ -9675,7 +9691,7 @@ BattleScript_WindRiderActivatesMoveEnd:: ppreduce pause B_WAIT_TIME_SHORT call BattleScript_AbilityPopUpTarget - orhalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + setmoveresultflags MOVE_RESULT_NO_EFFECT modifybattlerstatstage BS_TARGET, STAT_ATK, INCREASE, 1, BattleScript_WindRiderActivatesMoveEnd_End, ANIM_ON BattleScript_WindRiderActivatesMoveEnd_End: goto BattleScript_MoveEnd @@ -9714,6 +9730,7 @@ BattleScript_PastelVeilEnd: end3 BattleScript_NeutralizingGasExits:: + saveattacker savetarget pause B_WAIT_TIME_SHORT printstring STRINGID_NEUTRALIZINGGASOVER @@ -9723,6 +9740,7 @@ BattleScript_NeutralizingGasExitsLoop: switchinabilities BS_TARGET addbyte gBattlerTarget, 1 jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_NeutralizingGasExitsLoop + restoreattacker restoretarget return @@ -10062,6 +10080,10 @@ BattleScript_BerserkGeneRet_End: end3 BattleScript_BoosterEnergyEnd2:: + call BattleScript_BoosterEnergyRet + end2 + +BattleScript_BoosterEnergyRet:: playanimation BS_SCRIPTING, B_ANIM_HELD_ITEM_EFFECT, sB_ANIM_ARG1 call BattleScript_AbilityPopUpScripting printstring STRINGID_BOOSTERENERGYACTIVATES @@ -10069,7 +10091,7 @@ BattleScript_BoosterEnergyEnd2:: printstring STRINGID_STATWASHEIGHTENED waitmessage B_WAIT_TIME_MED removeitem BS_SCRIPTING - end2 + return BattleScript_EffectSnow:: attackcanceler @@ -10078,3 +10100,16 @@ BattleScript_EffectSnow:: call BattleScript_CheckPrimalWeather setfieldweather ENUM_WEATHER_SNOW goto BattleScript_MoveWeatherChange + +BattleScript_SleepClauseBlocked:: + pause B_WAIT_TIME_SHORT + setmoveresultflags MOVE_RESULT_FAILED + printstring STRINGID_BLOCKEDBYSLEEPCLAUSE + waitmessage B_WAIT_TIME_LONG + goto BattleScript_MoveEnd + +BattleScript_SleepClausePreventsEnd:: + pause B_WAIT_TIME_SHORT + printstring STRINGID_BLOCKEDBYSLEEPCLAUSE + waitmessage B_WAIT_TIME_LONG + end2 diff --git a/data/battle_scripts_2.s b/data/battle_scripts_2.s index b68a570664..aa9f1da369 100644 --- a/data/battle_scripts_2.s +++ b/data/battle_scripts_2.s @@ -48,7 +48,7 @@ BattleScript_UseItemMessage: return BattleScript_ItemRestoreHPRet: - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE healthbarupdate BS_SCRIPTING datahpupdate BS_SCRIPTING @@ -69,7 +69,7 @@ BattleScript_ItemRestoreHPEnd: BattleScript_ItemRestoreHP_Party:: jumpifbyte CMP_EQUAL, gBattleCommunication, TRUE, BattleScript_ItemRestoreHP_SendOutRevivedBattler - bichalfword gMoveResultFlags, MOVE_RESULT_NO_EFFECT + clearmoveresultflags MOVE_RESULT_NO_EFFECT printstring STRINGID_ITEMRESTOREDSPECIESHEALTH waitmessage B_WAIT_TIME_LONG return diff --git a/data/event_scripts.s b/data/event_scripts.s index 1bbb166154..61f969c059 100644 --- a/data/event_scripts.s +++ b/data/event_scripts.s @@ -42,6 +42,7 @@ #include "constants/metatile_labels.h" #include "constants/moves.h" #include "constants/party_menu.h" +#include "constants/pokedex.h" #include "constants/pokemon.h" #include "constants/roulette.h" #include "constants/script_menu.h" @@ -565,8 +566,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/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/data/maps/Route110/map.json b/data/maps/Route110/map.json index 448cd442d0..5db6ad5d2f 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/data/scripts/debug.inc b/data/scripts/debug.inc index 4851c87c40..9da3f529fc 100644 --- a/data/scripts/debug.inc +++ b/data/scripts/debug.inc @@ -447,3 +447,122 @@ Debug_EventScript_EWRAMCounters:: Debug_EventScript_EWRAMCounters_Text:: .string "Follower Steps: {STR_VAR_1}.\n" .string "Fishing Chain: {STR_VAR_2}.$" + +Debug_EventScript_FontTest_Text_1:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Angel Adept Blind Bodice Clique\n" + .string "Coast Dunce Docile Enact Eosin\l" + .string "Furlong Focal Gnome Gondola Human\l" + .string "Hoist Inlet Iodine Justin Jocose\l" + .string "Knoll Koala Linden Loads Milliner\l" + .string "Modal Number Nodule Onset Oddball\l" + .string "Pneumo Poncho Quanta Qophs Rhone\l" + .string "Roman Snout Sodium Tundra Tocsin\l" + .string "Uncle Udder Vulcan Vocal Whale\l" + .string "Woman Xmas Xenon Yunnan Young\l" + .string "Zloty Zodiac.$" + +Debug_EventScript_FontTest_Text_2:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Angel angel adept for the nuance loads\n" + .string "of the arena cocoa and quaalude. Blind\l" + .string "blind bodice for the submit oboe of the\l" + .string "club snob and abbot. Clique clique\l" + .string "coast for the pouch loco of the franc\l" + .string "assoc and accede. Dunce dunce docile\l" + .string "for the loudness mastodon of the\l" + .string "loud statehood and huddle.$" + +Debug_EventScript_FontTest_Text_3:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Enact enact eosin for the quench coed\n" + .string "of the pique canoe and bleep. Furlong\l" + .string "furlong focal for the genuflect\l" + .string "profound of the motif aloof and offers.\l" + .string "Gnome gnome gondola for the impugn\l" + .string "logos of the unplug analog and smuggle.\l" + .string "Human human hoist for the buddhist\l" + .string "alcohol of the riyadh caliph and\l" + .string "bathhouse.$" + +Debug_EventScript_FontTest_Text_4:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Inlet inlet iodine for the quince\n" + .string "champion of the ennui scampi and shiite.\l" + .string "Justin justin jocose for the djibouti\l" + .string "sojourn of the oranj raj and hajjis.\l" + .string "Knoll knoll koala for the banknote\l" + .string "lookout of the dybbuk outlook and\l" + .string "trekked. Linden linden loads for the\l" + .string "ulna monolog of the consul menthol and\l" + .string "shallot.$" + +Debug_EventScript_FontTest_Text_5:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Milliner milliner modal for the alumna\n" + .string "solomon of the album custom and summon.\l" + .string "Number number nodule for the unmade\l" + .string "economic of the shotgun bison and\l" + .string "tunnel. Onset onset oddball for the\l" + .string "abandon podium of the antiquo tempo\l" + .string "and moonlit. Pneumo pneumo poncho for\l" + .string "the dauphin opossum of the holdup\l" + .string "bishop and supplies.$" + +Debug_EventScript_FontTest_Text_6:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Quanta quanta qophs for the inquest\n" + .string "sheqel of the cinq coq and suqqu. Rhone\l" + .string "rhone roman for the burnt porous of the\l" + .string "lemur clamor and carrot. Snout snout\l" + .string "sodium for the ensnare bosom of the\l" + .string "genus pathos and missing. Tundra\l" + .string "tundra tocsin for the nutmeg isotope\l" + .string "of the peasant ingot and ottoman.$" + +Debug_EventScript_FontTest_Text_7:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Uncle uncle udder for the dunes cloud\n" + .string "of the hindu thou and continuum. Vulcan\l" + .string "vulcan vocal for the alluvial ovoid of\l" + .string "the yugoslav chekhov and revved. Whale\l" + .string "whale woman for the meanwhile blowout\l" + .string "of the forepaw meadow and glowworm.\l" + .string "Xmas xmas xenon for the bauxite\l" + .string "doxology of the tableaux equinox and\l" + .string "exxon.$" + +Debug_EventScript_FontTest_Text_8:: + .string "{FONT_SHORT_NARROWER}" @ Edit this to test your font + .string "Yunnan yunnan young for the dynamo\n" + .string "coyote of the obloquy employ and\l" + .string "sayyid. Zloty zloty zodiac for the gizmo\l" + .string "ozone of the franz laissez and buzzing.$" + +Debug_PrintFontTest:: + msgbox Debug_EventScript_FontTest_Text_1, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_2, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_3, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_4, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_5, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_6, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_7, MSGBOX_DEFAULT + msgbox Debug_EventScript_FontTest_Text_8, MSGBOX_DEFAULT + releaseall + end + +Debug_EventScript_FontTest:: + lockall + goto Debug_PrintFontTest +@ goto_if_eq VAR_RESULT, 0, Debug_NoPokemon +@ dynmultipush Debug_EventScript_InflictStatus1_Text_Single, 0 +@ dynmultipush Debug_EventScript_InflictStatus1_Text_PartyWide, 1 +@ dynmultipush Debug_EventScript_InflictStatus1_Text_Close, 2 +@ dynmultistack 0, 0, FALSE, 3 FALSE, 0, NULL +@ switch VAR_RESULT +@ case 0, Debug_EventScript_InflictStatus1_Single +@ case 1, Debug_EventScript_InflictStatus1_Party +@ case 2, Debug_EventScript_InflictStatus1_Close +@Debug_EventScript_InflictStatus1_Close: +@ releaseall +@ end diff --git a/data/scripts/field_move_scripts.inc b/data/scripts/field_move_scripts.inc index 6e2450822c..0a7660b4ce 100644 --- a/data/scripts/field_move_scripts.inc +++ b/data/scripts/field_move_scripts.inc @@ -368,6 +368,23 @@ EventScript_EndSurface:: releaseall end +EventScript_DigCommon: + isfollowerfieldmoveuser VAR_0x8004 + setfieldeffectargument 3, VAR_0x8004 @ skip pose if true + dofieldeffect FLDEFF_USE_DIG + waitstate +EventScript_DigSealedChamber:: @ fallthrough + setflag FLAG_SAFE_FOLLOWER_MOVEMENT + call_if_eq VAR_0x8004, TRUE, EventScript_FollowerFieldMove + callnative DoBrailleDigEffect + releaseall + end + +@ Use Dig from party menu +EventScript_UseDig:: + lockall + goto EventScript_DigCommon + Text_CantDive: .string "The sea is deep here. A POKéMON\n" .string "may be able to go underwater.$" diff --git a/dev_scripts/competitive_defines/rename_subfolders.py b/dev_scripts/competitive_defines/rename_subfolders.py new file mode 100644 index 0000000000..5b818b5f7d --- /dev/null +++ b/dev_scripts/competitive_defines/rename_subfolders.py @@ -0,0 +1,21 @@ +import glob +import re +import json +import os +import subprocess + +def rename_subdirs(rootDir, old, new): + for root, dirs, files in os.walk(rootDir): + for name in files: + originalName = os.path.join(root, name) + if root.endswith(old) and os.path.isfile(originalName): + newName = originalName.replace(old + '/', new + '/') + print(originalName + " -> " + newName) + if (not os.path.isdir(root.replace(old, '') + new)): + os.mkdir(root.replace(old, '') + new) + os.rename(originalName, newName) + +rename_subdirs("graphics/pokemon", '/alolan', "/alola") +rename_subdirs("graphics/pokemon", '/galarian', "/galar") +rename_subdirs("graphics/pokemon", '/hisuian', "/hisui") +rename_subdirs("graphics/pokemon", '/gigantamax', "/gmax") diff --git a/dev_scripts/gba_gfx/delete_files_of_same_name.py b/dev_scripts/gba_gfx/delete_files_of_same_name.py new file mode 100644 index 0000000000..1ff58cb8cf --- /dev/null +++ b/dev_scripts/gba_gfx/delete_files_of_same_name.py @@ -0,0 +1,21 @@ +import glob +import re +import json +import os +import subprocess + +# THIS IS A TEMPORARY SCRIPT MADE TO DELETE FILES WITH THE "footprint.png" NAME +# FROM THE "graphics/pokemon_old" folder, AS MOST OF THEM ALREADY EXISTED IN "graphics/pokemon". +# +# I'M SAVING IT HERE IN CASE IT'S NEEDED SOMEWHERE IN THE FUTURE, THOUGH TWEAKING MIGHT BE NEEDED. +# - AsparagusEduardo + +def rename_files(dir, filename): + for root, dirs, files in os.walk(dir): + for name in files: + if name.endswith(filename): + fullName = os.path.join(root, name) + print(fullName + " deleted.") + os.remove(fullName) + +rename_files("graphics/pokemon_old", 'footprint.png') diff --git a/dev_scripts/gba_gfx/rename_files_of_same_name.py b/dev_scripts/gba_gfx/rename_files_of_same_name.py new file mode 100644 index 0000000000..cbee489de0 --- /dev/null +++ b/dev_scripts/gba_gfx/rename_files_of_same_name.py @@ -0,0 +1,22 @@ +import glob +import re +import json +import os +import subprocess + +def rename_files(dirOld, dirNew, old, new): + for root, dirs, files in os.walk(dirOld): + for name in files: + if name.endswith(old): + originalName = os.path.join(root, name) + newName = originalName.replace(old, new) + newName = newName.replace(dirOld, dirNew) + print(originalName + " -> " + newName) + os.rename(originalName, newName) + +rename_files("graphics/pokemon_old", "graphics/pokemon", 'anim_front.png', "anim_front_gba.png") +rename_files("graphics/pokemon_old", "graphics/pokemon", 'normal.pal', "normal_gba.pal") +rename_files("graphics/pokemon_old", "graphics/pokemon", 'shiny.pal', "shiny_gba.pal") +rename_files("graphics/pokemon_old", "graphics/pokemon", 'back.png', "back_gba.png") +rename_files("graphics/pokemon_old", "graphics/pokemon", 'icon.png', "icon_gba.png") +rename_files("graphics/pokemon_old", "graphics/pokemon", 'footprint.png', "footprint_gba.png") diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md index ac4698fdc3..597534e318 100644 --- a/docs/SUMMARY.md +++ b/docs/SUMMARY.md @@ -18,7 +18,10 @@ - [v1.6.x](tutorials/how_to_new_pokemon_1_6_0.md) - [How to use the Testing System](tutorials/how_to_testing_system.md) - [Changelog](./CHANGELOG.md) + - [1.10.x]() + - [Version 1.10.0](changelogs/1.10.x/1.10.0.md) - [1.9.x]() + - [Version 1.9.4](changelogs/1.9.x/1.9.4.md) - [Version 1.9.3](changelogs/1.9.x/1.9.3.md) - [Version 1.9.2](changelogs/1.9.x/1.9.2.md) - [Version 1.9.1](changelogs/1.9.x/1.9.1.md) @@ -64,3 +67,4 @@ - [Version 0.9.0](changelogs/0.9.x/0.9.0.md) - [Team Procedures]() - [How to make an Expansion version](team_procedures/expansion_versions.md) + - [Scope Guidelines](scope.md) diff --git a/docs/changelogs/1.10.x/1.10.0.md b/docs/changelogs/1.10.x/1.10.0.md new file mode 100644 index 0000000000..9cf2f9b41e --- /dev/null +++ b/docs/changelogs/1.10.x/1.10.0.md @@ -0,0 +1,324 @@ +# Version 1.10.0 + +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.10.0`. +``` + +## 🌋 *REFACTORS* 🌋 +📜 = Uses a migration script. +* Changes Evolution methods to Enums by @AlexOn1ine in [#4977](https://github.com/rh-hideout/pokeemerald-expansion/pull/4977) +* Turn item hold effects into an enum by @Bassoonian in [#5498](https://github.com/rh-hideout/pokeemerald-expansion/pull/5498) +* Change `GET_MOVE_TYPE` to a function by @AlexOn1ine in [#5090](https://github.com/rh-hideout/pokeemerald-expansion/pull/5090) +* Created `COMPOUND_STRING`s for default player names by @fdeblasio in [#5037](https://github.com/rh-hideout/pokeemerald-expansion/pull/5037) +* Removed agbcc by @mrgriffin in [#4994](https://github.com/rh-hideout/pokeemerald-expansion/pull/4994) +* Refactor Frontier Brains by @fdeblasio in [#5027](https://github.com/rh-hideout/pokeemerald-expansion/pull/5027) +* Removed all instances of `gBitTable[x]` by @hedara90 in [#5123](https://github.com/rh-hideout/pokeemerald-expansion/pull/5123) +* Made `BuildColorMaps` redundant by using static tables by @pkmnsnfrn in [#5289](https://github.com/rh-hideout/pokeemerald-expansion/pull/5289) +* Removed `FRONTIER_BRAIN_SPRITES` and updated `TRAINER_SPRITE`, `TRAINER_BACK_SPRITE`, and `TRAINER_CLASS` by @fdeblasio in [#5166](https://github.com/rh-hideout/pokeemerald-expansion/pull/5166) +* Added `ShouldSwitch` result to `AiLogicData` by @Pawkkie and @AlexOn1ine had the idea! in [#5440](https://github.com/rh-hideout/pokeemerald-expansion/pull/5440) +* Switch AI refactor + considers free switches by @Pawkkie in [#5379](https://github.com/rh-hideout/pokeemerald-expansion/pull/5379) +* Refactor `ShouldSwitchIfAllBadMoves` by @Pawkkie in [#5452](https://github.com/rh-hideout/pokeemerald-expansion/pull/5452) +* Updated Wring Out effects to match Eruption effects by @AsparagusEduardo in [#5549](https://github.com/rh-hideout/pokeemerald-expansion/pull/5549) + - Changed Wring Out/Crush Grip/Hard Press to use `power` instead of `argument` to determine its max power, just like how Eruption/Water Spout/Dragon Energy do it. + - Also: + - Renamed `EFFECT_VARY_POWER_BASED_ON_HP` to `EFFECT_POWER_BASED_ON_TARGET_HP` + - Renamed `EFFECT_ERUPTION` to `EFFECT_POWER_BASED_ON_USER_HP` +* Update battle messages to Gen 5+ standards by @kittenchilly in [#3240](https://github.com/rh-hideout/pokeemerald-expansion/pull/3240) +* Should switch refactor to facilitate switch prediction by @Pawkkie in [#5466](https://github.com/rh-hideout/pokeemerald-expansion/pull/5466) +* Unwind `TRAINER_CLASS` macro by @SBird1337 in [#5611](https://github.com/rh-hideout/pokeemerald-expansion/pull/5611) +* Refactors Absorb to use `Moveend` by @AlexOn1ine in [#5670](https://github.com/rh-hideout/pokeemerald-expansion/pull/5670) + * For new absorbing moves an argument should be added in `moves_info.h` +* Changes name of `B_SCR_NAME_WITH_PREFIX` by @AlexOn1ine in [#5675](https://github.com/rh-hideout/pokeemerald-expansion/pull/5675) + +## 🧬 General 🧬 +### Added +* Added performance counter by @hedara90 and @SBird1337 provided the actual code in [#5284](https://github.com/rh-hideout/pokeemerald-expansion/pull/5284) +* Added debug build target by @u8-Salem in [#4817](https://github.com/rh-hideout/pokeemerald-expansion/pull/4817) +* Added `AUTO_SCROLL_TEXT` and `NUM_FRAMES_AUTO_SCROLL_DELAY` by @pkmnsnfrn in [#5054](https://github.com/rh-hideout/pokeemerald-expansion/pull/5054) +* Adds `SAVE_TYPE_ERROR_SCREEN` by @pkmnsnfrn in [#5188](https://github.com/rh-hideout/pokeemerald-expansion/pull/5188) +* Move Relearner and Renaming From Summary Screen by @ravepossum in [#5513](https://github.com/rh-hideout/pokeemerald-expansion/pull/5513) +* Automatic Line Breaks, somewhat even lines by @hedara90 and @AsparagusEduardo in [#5689](https://github.com/rh-hideout/pokeemerald-expansion/pull/5689) + - Automatically insert line breaks into a string with `BreakStringAutomatic`. + - This function does not modify strings with existing line breaks. + - Remove existing line breaks from a string with `StripLineBreaks`. + +### Changed +* Removed agbcc by @mrgriffin in [#4994](https://github.com/rh-hideout/pokeemerald-expansion/pull/4994) +* Removed all instances of `gBitTable[x]` by @hedara90 in [#5123](https://github.com/rh-hideout/pokeemerald-expansion/pull/5123) +* Converted Mechadoll text to `COMPOUND_STRING`s by @fdeblasio in [#5276](https://github.com/rh-hideout/pokeemerald-expansion/pull/5276) +* New terrain bgs by @TheTrueSadfish in [#5162](https://github.com/rh-hideout/pokeemerald-expansion/pull/5162) +* Removed agbcc screenshots from `.gitignore` by @Bassoonian in [#5538](https://github.com/rh-hideout/pokeemerald-expansion/pull/5538) +* Set default battle shadow to Gen3 by @hedara90 in [#5632](https://github.com/rh-hideout/pokeemerald-expansion/pull/5632) + - Note: Trainerslides don't work properly with Gen4 shadows. +* Convert 3 variouses to `callnatives` by @AlexOn1ine in [#5646](https://github.com/rh-hideout/pokeemerald-expansion/pull/5646) + +## 🗺️ Overworld 🗺️ +### Added +* FRLG+ whiteout message by @cawtds in [#4967](https://github.com/rh-hideout/pokeemerald-expansion/pull/4967) +* Dynamic Move Types in Summary Screen/Battle by @Galaxeeh in [#5084](https://github.com/rh-hideout/pokeemerald-expansion/pull/5084) +* Adds `OW_BERRY_IMMORTAL` by @pkmnsnfrn in [#5187](https://github.com/rh-hideout/pokeemerald-expansion/pull/5187) +* (Default Off) Item Description Headers by @ghoulslash in [#4767](https://github.com/rh-hideout/pokeemerald-expansion/pull/4767) +* RTC-based wild encounters by @hjk321 in [#5313](https://github.com/rh-hideout/pokeemerald-expansion/pull/5313) +* Added `MB_X_Y_STAIR_WARP` metatile behaviors by @pkmnsnfrn in [#5278](https://github.com/rh-hideout/pokeemerald-expansion/pull/5278) +* Added Sideways Stairs by @ghoulslash in [#4836](https://github.com/rh-hideout/pokeemerald-expansion/pull/4836) +* Added `OW_UNION_DISABLE_CHECK` and `OW_FLAG_MOVE_UNION_ROOM_CHECK` by @pkmnsnfrn in [#5448](https://github.com/rh-hideout/pokeemerald-expansion/pull/5448) +* Adds new scripting macros to increase developer quality of life by @pkmnsnfrn in [#5177](https://github.com/rh-hideout/pokeemerald-expansion/pull/5177) +* Added more later gen fishing mechanics by @kittenchilly in [#5518](https://github.com/rh-hideout/pokeemerald-expansion/pull/5518) + +### Changed +* Created PokeNav `COMPOUND_STRING`s by @fdeblasio in [#4983](https://github.com/rh-hideout/pokeemerald-expansion/pull/4983) +* Added `I_REPEL_INCLUDE_FAINTED` config and behavior by @kittenchilly in [#5239](https://github.com/rh-hideout/pokeemerald-expansion/pull/5239) +* RTC-based wild encounters follow up by @AlexOn1ine in [#5328](https://github.com/rh-hideout/pokeemerald-expansion/pull/5328) +* Revert rtc based encounters by @AlexOn1ine in [#5331](https://github.com/rh-hideout/pokeemerald-expansion/pull/5331) +* Made BuildColorMaps redundant by using static tables by @pkmnsnfrn in [#5289](https://github.com/rh-hideout/pokeemerald-expansion/pull/5289) +* Added `OW_AUTO_SIGNPOST` and associated metatile behaviors by @pkmnsnfrn in [#5044](https://github.com/rh-hideout/pokeemerald-expansion/pull/5044) +* Added support for overworld sprite gender differences + add all the sprites by @kittenchilly in [#5394](https://github.com/rh-hideout/pokeemerald-expansion/pull/5394) + +### Fixed +* Added some null pointer checks by @tertu-m in [#5130](https://github.com/rh-hideout/pokeemerald-expansion/pull/5130) +* Reset item flags on new game by @ghoulslash in [#5363](https://github.com/rh-hideout/pokeemerald-expansion/pull/5363) +* Follower female fix by @hedara90 in [#5475](https://github.com/rh-hideout/pokeemerald-expansion/pull/5475) + +## 🐉 Pokémon 🐉 +### Added +* Added config to change Vivillon's breeding form by @kittenchilly in [#4813](https://github.com/rh-hideout/pokeemerald-expansion/pull/4813) +* Added back GBA sprites via config by @AsparagusEduardo and @AlexOn1ine for their help with script to migrate data from vanilla to our current `gSpeciesInfo` in [#5206](https://github.com/rh-hideout/pokeemerald-expansion/pull/5206) +* Added config to disable gender differences by @AsparagusEduardo in [#5595](https://github.com/rh-hideout/pokeemerald-expansion/pull/5595) + +### Changed +* Made perfect IV count into a granular setting by @AsparagusEduardo in [#5115](https://github.com/rh-hideout/pokeemerald-expansion/pull/5115) +* Updated species defines by @pkmnsnfrn in [#5075](https://github.com/rh-hideout/pokeemerald-expansion/pull/5075) +* Added support for overworld sprite gender differences + add all the sprites by @kittenchilly in [#5394](https://github.com/rh-hideout/pokeemerald-expansion/pull/5394) +* Renamed folders and symbols to match species defines by @AsparagusEduardo in [#5581](https://github.com/rh-hideout/pokeemerald-expansion/pull/5581) + - Burmy and Wormadam footprints were in a `plant` subfolder. They have been moved to the species root folder + - Paldean Wooper's subfolder was named `wooper_paldean` instead of just `paldean`. This has been corrected. + - Zen Mode Galarian Darmanitan's folder was located in `darmanitan/galarian/zen_mode`. This has been corrected to `darmanitan/galar_zen`, alongside Galarian Standard Mode's `darmanitan/galar_standard`. + - Also updated Ogerpon's folders similarly. + - Renamed `SPECIES_PIKACHU_PARTNER_CAP` to `SPECIES_PIKACHU_PARTNER`. +* Changing `EVO_NONE` from `0xFFFE` to `0` by @GhoulMage in [#5547](https://github.com/rh-hideout/pokeemerald-expansion/pull/5547) + - There could be a case for out of bounds errors if arrays or iterations are happening where you're using + 1 or - 1, as `EVO_FRIENDSHIP` used to be the first index although it started with 1. + +### Fixed +* Follower female fix by @hedara90 in [#5475](https://github.com/rh-hideout/pokeemerald-expansion/pull/5475) +* Fixed some gba sprites by @SubzeroEclipse in [#5607](https://github.com/rh-hideout/pokeemerald-expansion/pull/5607) + +## ⚔️ Battle General ⚔️ +### Added +* FRLG+ whiteout message by @cawtds in [#4967](https://github.com/rh-hideout/pokeemerald-expansion/pull/4967) +* Added B_SHOW_TYPES and cleaned up IsDoubleBattle by @pkmnsnfrn in [#5131](https://github.com/rh-hideout/pokeemerald-expansion/pull/5131) +* EV Caps and EV Items by @Flash1Lucky and @AlexOn1ine in [#5269](https://github.com/rh-hideout/pokeemerald-expansion/pull/5269) +* Added in-battle shadows underneath all enemy battlers by @lhearachel in [#5178](https://github.com/rh-hideout/pokeemerald-expansion/pull/5178) +* Added Gen 1 Crit Chance by @Pawkkie in [#5439](https://github.com/rh-hideout/pokeemerald-expansion/pull/5439) +* Added battle flag that prevents running from wild Pokémon by @SarnPoke in [#5502](https://github.com/rh-hideout/pokeemerald-expansion/pull/5502) + +### Changed +* Refactor Frontier Brains by @fdeblasio in [#5027](https://github.com/rh-hideout/pokeemerald-expansion/pull/5027) +* Removed some hardcoding of move IDs + Gen4/5 Defog by @AsparagusEduardo in [#5156](https://github.com/rh-hideout/pokeemerald-expansion/pull/5156) +* Convert 8 various to `callnatives` by @AsparagusEduardo in [#5172](https://github.com/rh-hideout/pokeemerald-expansion/pull/5172) +* Anger Shell use `saveattacker` by @ghoulslash in [#5409](https://github.com/rh-hideout/pokeemerald-expansion/pull/5409) +* Clean up Unseen Fist Check by @AlexOn1ine in [#5420](https://github.com/rh-hideout/pokeemerald-expansion/pull/5420) +* Updated species defines by @pkmnsnfrn in [#5075](https://github.com/rh-hideout/pokeemerald-expansion/pull/5075) +* Removes Crit Chance preproc by @AlexOn1ine in [#5520](https://github.com/rh-hideout/pokeemerald-expansion/pull/5520) +* Update battle messages to Gen 5+ standards by @kittenchilly in [#3240](https://github.com/rh-hideout/pokeemerald-expansion/pull/3240) +* More post-#3240 cleanup by @kittenchilly in [#5593](https://github.com/rh-hideout/pokeemerald-expansion/pull/5593) +* Unwind `TRAINER_CLASS` macro by @SBird1337 in [#5611](https://github.com/rh-hideout/pokeemerald-expansion/pull/5611) +* Removes redundant Decorate check by @AlexOn1ine in [#5696](https://github.com/rh-hideout/pokeemerald-expansion/pull/5696) +* Changes target bit of Flower Shield by @AlexOn1ine in [#5698](https://github.com/rh-hideout/pokeemerald-expansion/pull/5698) + +### Fixed +* Fixed a sprite issue with `B_SHOW_TYPES` by @pkmnsnfrn in [#5157](https://github.com/rh-hideout/pokeemerald-expansion/pull/5157) +* Dynamic Move Display fixes by @Galaxeeh in [#5251](https://github.com/rh-hideout/pokeemerald-expansion/pull/5251) +* Fixed a display issue with `B_SHOW_TYPES` by @pkmnsnfrn and @iriv24 in [#5201](https://github.com/rh-hideout/pokeemerald-expansion/pull/5201) +* Fixed Gen 3 foreseen and Beat Up damage type by @hedara90 in [#5323](https://github.com/rh-hideout/pokeemerald-expansion/pull/5323) +* Fixes Defog used by the wrong side when there is a Substitue and Screen by @AlexOn1ine in [#5381](https://github.com/rh-hideout/pokeemerald-expansion/pull/5381) +* Fixes Hidden Power dynamic type bug by @AlexOn1ine in [#5463](https://github.com/rh-hideout/pokeemerald-expansion/pull/5463) +* Display the correct shadow size when sending out a new Pokemon by @lhearachel in [#5618](https://github.com/rh-hideout/pokeemerald-expansion/pull/5618) +* Fixed text wrap obtaining the incorrect glyph width by @AsparagusEduardo and @AlexOn1ine for their help verifying that the fix works with one of his custom strings in [#5620](https://github.com/rh-hideout/pokeemerald-expansion/pull/5620) +* Improve line breaks/scrolls by @cawtds in [#5641](https://github.com/rh-hideout/pokeemerald-expansion/pull/5641) +* Fixed Order Up + Tera Stellar breaking each other with Commander by @PhallenTree in [#5667](https://github.com/rh-hideout/pokeemerald-expansion/pull/5667) +* Fixes wrong Id when AI chooses mon to switch in by @AlexOn1ine in [#5684](https://github.com/rh-hideout/pokeemerald-expansion/pull/5684) +* Fixes Absorb regression caused by #5670 by @AlexOn1ine in [#5688](https://github.com/rh-hideout/pokeemerald-expansion/pull/5688) +* Fixes heal blocked leeach seed in tests by @AlexOn1ine in [#5700](https://github.com/rh-hideout/pokeemerald-expansion/pull/5700) +* Trainer class+name expansion fix for Battle Frontier by @hedara90 in [#5699](https://github.com/rh-hideout/pokeemerald-expansion/pull/5699) + +## 🤹 Moves 🤹 +### Changed +* Added Population Bomb animation by @kittenchilly in [#5194](https://github.com/rh-hideout/pokeemerald-expansion/pull/5194) +* Move battle anim arrays to C by @cawtds in [#5306](https://github.com/rh-hideout/pokeemerald-expansion/pull/5306) +* Grass/Water Pledge Swamp Animation + Sea of Fire animation tweak by @SonikkuA-DatH in [#5325](https://github.com/rh-hideout/pokeemerald-expansion/pull/5325) +* New animations for many moves more details in description by @TheTrueSadfish in [#5367](https://github.com/rh-hideout/pokeemerald-expansion/pull/5367) +* Use move effect for some moves instead of ids by @AlexOn1ine in [#5433](https://github.com/rh-hideout/pokeemerald-expansion/pull/5433) +* Adds Commander and Order Up by @AlexOn1ine in [#5246](https://github.com/rh-hideout/pokeemerald-expansion/pull/5246) +* Heart Swap Move Animation by @SonikkuA-DatH in [#5460](https://github.com/rh-hideout/pokeemerald-expansion/pull/5460) +* Update `shed_tail.c` by @Bassoonian in [#5494](https://github.com/rh-hideout/pokeemerald-expansion/pull/5494) +* Added Ion Deluge animation by @kittenchilly in [#5467](https://github.com/rh-hideout/pokeemerald-expansion/pull/5467) +* Updated Wring Out effects to match Eruption effects by @AsparagusEduardo in [#5549](https://github.com/rh-hideout/pokeemerald-expansion/pull/5549) + - Changed Wring Out/Crush Grip/Hard Press to use `power` instead of `argument` to determine its max power, just like how Eruption/Water Spout/Dragon Energy do it. Also: + - Renamed `EFFECT_VARY_POWER_BASED_ON_HP` to `EFFECT_POWER_BASED_ON_TARGET_HP` + - Renamed `EFFECT_ERUPTION` to `EFFECT_POWER_BASED_ON_USER_HP` +* Refactors Absorb to use Moveend by @AlexOn1ine in [#5670](https://github.com/rh-hideout/pokeemerald-expansion/pull/5670) + * For new absorbing moves an argument should be added in `moves_info.h` + +### Fixed +* Dark Void, Clangorous Soulblaze, vortex animation fixes by @TheTrueSadfish in [#5650](https://github.com/rh-hideout/pokeemerald-expansion/pull/5650) + +## 🎭 Abilities 🎭 +### Changed +* Adds Commander and Order Up by @AlexOn1ine in [#5246](https://github.com/rh-hideout/pokeemerald-expansion/pull/5246) + +## 🧶 Items 🧶 +### Added +* Adds `OW_BERRY_IMMORTAL` by @pkmnsnfrn in [#5187](https://github.com/rh-hideout/pokeemerald-expansion/pull/5187) +* Added functionality to Poké Flute and Town Map by @kittenchilly and @LOuroboros basically did the Town Map implementation in [#5405](https://github.com/rh-hideout/pokeemerald-expansion/pull/5405) +* Decouple Poke Ball ids from item ids by @AlexOn1ine in [#5560](https://github.com/rh-hideout/pokeemerald-expansion/pull/5560) + +### Changed +* Consolidated the values of Rotom's moves and added Gen9 base form effect by @fdeblasio in [#5186](https://github.com/rh-hideout/pokeemerald-expansion/pull/5186) +* Added `I_REPEL_INCLUDE_FAINTED` config and behavior by @kittenchilly in [#5239](https://github.com/rh-hideout/pokeemerald-expansion/pull/5239) + +### Fixed +* Replace hardcoded flute check with consumability check by @Bassoonian in [#5508](https://github.com/rh-hideout/pokeemerald-expansion/pull/5508) + +## 🤖 Battle AI 🤖 +### Added +* Adds config to show target of ingame partner by @AlexOn1ine in [#5307](https://github.com/rh-hideout/pokeemerald-expansion/pull/5307) +* Switch AI refactor + considers free switches by @Pawkkie in [#5379](https://github.com/rh-hideout/pokeemerald-expansion/pull/5379) +* New AI flag for marking the two last Pokémon as Ace Pokémon by @GhoulMage in [#5587](https://github.com/rh-hideout/pokeemerald-expansion/pull/5587) + +### Changed +* Chilly Reception AI by @kittenchilly in [#5271](https://github.com/rh-hideout/pokeemerald-expansion/pull/5271) +* Shed Tail AI by @SarnPoke and @AlexOn1ine, @Pawkkie in [#5275](https://github.com/rh-hideout/pokeemerald-expansion/pull/5275) +* More missing AI logic by @kittenchilly in [#5279](https://github.com/rh-hideout/pokeemerald-expansion/pull/5279) +* Adds basic trainer and smart trainer flags by @AlexOn1ine in [#5298](https://github.com/rh-hideout/pokeemerald-expansion/pull/5298) +* `AI_FLAG_SETUP_FIRST_TURN` rename and clarifications by @Pawkkie in [#5310](https://github.com/rh-hideout/pokeemerald-expansion/pull/5310) +* Added Composite AI Flags to Docs by @Pawkkie in [#5349](https://github.com/rh-hideout/pokeemerald-expansion/pull/5349) +* AI frostbite score fixes and improvements by @Pawkkie and @kittenchilly for the suggestion! in [#5362](https://github.com/rh-hideout/pokeemerald-expansion/pull/5362) +* Switch AI `hitsToKO` considers one shot prevention by @Pawkkie in [#5371](https://github.com/rh-hideout/pokeemerald-expansion/pull/5371) +* Adds `CanEndureHit` AI function by @AlexOn1ine in [#5373](https://github.com/rh-hideout/pokeemerald-expansion/pull/5373) +* Switch AI `hitsToKO` considers Disguise by @Pawkkie in [#5375](https://github.com/rh-hideout/pokeemerald-expansion/pull/5375) +* Added `ShouldSwitch` result to `AiLogicData` by @Pawkkie and @AlexOn1ine had the idea! in [#5440](https://github.com/rh-hideout/pokeemerald-expansion/pull/5440) +* Removes duplicate code in AI functions by @AlexOn1ine in [#5457](https://github.com/rh-hideout/pokeemerald-expansion/pull/5457) +* Unify `GetBattlerAbility`/`TerrainAffected` to remove duplicate ai function by @AlexOn1ine in [#5497](https://github.com/rh-hideout/pokeemerald-expansion/pull/5497) +* `ShouldSwitchIfGameStatePrompt` Tests by @Pawkkie in [#5462](https://github.com/rh-hideout/pokeemerald-expansion/pull/5462) +* `AI_FLAG_ACE_POKEMON` takes into account separate trainers by @GhoulMage and @/uvula on Discord noted the weird behaviour. in [#5608](https://github.com/rh-hideout/pokeemerald-expansion/pull/5608) + - Fix for the AI not considering both trainers Ace Pokémons in double battles with `AI_FLAG_ACE_POKEMON`. +* Moves that deal a Fixed amount don't need AI handling by @AlexOn1ine in [#5614](https://github.com/rh-hideout/pokeemerald-expansion/pull/5614) +* Combines `CalculateMoveDamage` arguments into a struct by @AlexOn1ine in [#5570](https://github.com/rh-hideout/pokeemerald-expansion/pull/5570) + +### Fixed +* AI burn score fixes and improvements by @Pawkkie and @iriv24 and @AlexOn1ine in [#5356](https://github.com/rh-hideout/pokeemerald-expansion/pull/5356) +* Improve AI's Skill Swap handling in double battles by @Pawkkie in [#5360](https://github.com/rh-hideout/pokeemerald-expansion/pull/5360) +* Refactor `ShouldSwitchIfAllBadMoves` by @Pawkkie in [#5452](https://github.com/rh-hideout/pokeemerald-expansion/pull/5452) +* Should switch refactor to facilitate switch prediction by @Pawkkie in [#5466](https://github.com/rh-hideout/pokeemerald-expansion/pull/5466) +* Fixes Switch in flag not restoring mons properly with test by @Pawkkie and @iriv24 for finding, @AlexOn1ine for fixing in [#5746](https://github.com/rh-hideout/pokeemerald-expansion/pull/5746) + +## 🧹 Other Cleanup 🧹 +* Removed metadata in AIF files by @SombrAbsol in [#4958](https://github.com/rh-hideout/pokeemerald-expansion/pull/4958) +* Removed `gPaletteDecompressionBuffer` and unused palette functions/vars by @DizzyEggg in [#4841](https://github.com/rh-hideout/pokeemerald-expansion/pull/4841) +* Changes Evolution methods to `enum`s by @AlexOn1ine in [#4977](https://github.com/rh-hideout/pokeemerald-expansion/pull/4977) +* Doesn't compile on some compilers by @AlexOn1ine in [#5099](https://github.com/rh-hideout/pokeemerald-expansion/pull/5099) +* Update `event.inc` to accomodate new `gDecompressionBuffer` name by @Bassoonian in [#5100](https://github.com/rh-hideout/pokeemerald-expansion/pull/5100) +* Created `COMPOUND_STRING`s for default player names by @fdeblasio in [#5037](https://github.com/rh-hideout/pokeemerald-expansion/pull/5037) +* Changed single-use berry blender strings to be `COMPOUND_STRING`s by @fdeblasio in [#4963](https://github.com/rh-hideout/pokeemerald-expansion/pull/4963) +* Made perfect IV count into a granular setting by @AsparagusEduardo in [#5115](https://github.com/rh-hideout/pokeemerald-expansion/pull/5115) +* Dynamic move type clean up by @AlexOn1ine in [#5132](https://github.com/rh-hideout/pokeemerald-expansion/pull/5132) +* Refactor Frontier Brains by @fdeblasio in [#5027](https://github.com/rh-hideout/pokeemerald-expansion/pull/5027) +* Removed some hardcoding of move IDs + Gen4/5 Defog by @AsparagusEduardo in [#5156](https://github.com/rh-hideout/pokeemerald-expansion/pull/5156) +* Teatime animations use `B_WAIT_TIME_LONG` by @AsparagusEduardo in [#5173](https://github.com/rh-hideout/pokeemerald-expansion/pull/5173) +* Created PokeNav `COMPOUND_STRING`s by @fdeblasio in [#4983](https://github.com/rh-hideout/pokeemerald-expansion/pull/4983) +* Removed `gBitTable` usage again by @hedara90 in [#5193](https://github.com/rh-hideout/pokeemerald-expansion/pull/5193) +* Removed support for the original LCG random number generator by @tertu-m in [#5078](https://github.com/rh-hideout/pokeemerald-expansion/pull/5078) +* Deprecate MMBN Names by @pkmnsnfrn in [#5240](https://github.com/rh-hideout/pokeemerald-expansion/pull/5240) +* Convert 8 various to `callnatives` by @AsparagusEduardo in [#5172](https://github.com/rh-hideout/pokeemerald-expansion/pull/5172) +* Converted PC strings to `COMPOUND_STRING`s by @fdeblasio in [#5314](https://github.com/rh-hideout/pokeemerald-expansion/pull/5314) +* Cleaned up duplicate dynamic type functions by @AsparagusEduardo in [#5338](https://github.com/rh-hideout/pokeemerald-expansion/pull/5338) +* Removes redundant `moveTargetType` ai function by @AlexOn1ine in [#5354](https://github.com/rh-hideout/pokeemerald-expansion/pull/5354) +* Made `BuildColorMaps` redundant by using static tables by @pkmnsnfrn in [#5289](https://github.com/rh-hideout/pokeemerald-expansion/pull/5289) +* Some strings were switched by @AlexOn1ine in [#5374](https://github.com/rh-hideout/pokeemerald-expansion/pull/5374) +* Switch AI hitsToKO considers Disguise by @Pawkkie in [#5375](https://github.com/rh-hideout/pokeemerald-expansion/pull/5375) +* Cleaned up a bit of code with `GetBattlerPartyData` by @AlexOn1ine in [#5378](https://github.com/rh-hideout/pokeemerald-expansion/pull/5378) +* Minor Gem check optimazation by @AlexOn1ine in [#5401](https://github.com/rh-hideout/pokeemerald-expansion/pull/5401) +* Simplify HP Logic by @AreaZR in [#5403](https://github.com/rh-hideout/pokeemerald-expansion/pull/5403) +* Anger Shell use `saveattacker` by @ghoulslash in [#5409](https://github.com/rh-hideout/pokeemerald-expansion/pull/5409) +* Converted berry and PokeBlock strings to `COMPOUND_STRING`s by @fdeblasio in [#5324](https://github.com/rh-hideout/pokeemerald-expansion/pull/5324) +* Merge item description branch history by @Bassoonian in [#5419](https://github.com/rh-hideout/pokeemerald-expansion/pull/5419) +* Clean up Unseen Fist Check by @AlexOn1ine in [#5420](https://github.com/rh-hideout/pokeemerald-expansion/pull/5420) +* Merge level_caps and ev_caps into one caps file by @kittenchilly in [#5429](https://github.com/rh-hideout/pokeemerald-expansion/pull/5429) +* Removed trailing whitespace pass 10-2-2024 (Upcoming) by @kittenchilly in [#5456](https://github.com/rh-hideout/pokeemerald-expansion/pull/5456) +* Fixed Commander test name by @Bassoonian in [#5458](https://github.com/rh-hideout/pokeemerald-expansion/pull/5458) +* Updated species defines by @pkmnsnfrn in [#5075](https://github.com/rh-hideout/pokeemerald-expansion/pull/5075) +* Adds padding in `AiLogicData` by @AlexOn1ine in [#5468](https://github.com/rh-hideout/pokeemerald-expansion/pull/5468) +* Simplify `BS_FAINTED_MULTIPLE_1` double battle logic in openpartyscreen by @ghoulslash in [#5435](https://github.com/rh-hideout/pokeemerald-expansion/pull/5435) +* Removes duplicate code in AI functions by @AlexOn1ine in [#5457](https://github.com/rh-hideout/pokeemerald-expansion/pull/5457) +* `ShouldPivot` type cleanup by @Pawkkie in [#5441](https://github.com/rh-hideout/pokeemerald-expansion/pull/5441) +* Turn item hold effects into an enum by @Bassoonian in [#5498](https://github.com/rh-hideout/pokeemerald-expansion/pull/5498) +* Unify `GetBattlerAbility`/`TerrainAffected` to remove duplicate ai function by @AlexOn1ine in [#5497](https://github.com/rh-hideout/pokeemerald-expansion/pull/5497) +* Clean up Shedinja code by @Bassoonian in [#5501](https://github.com/rh-hideout/pokeemerald-expansion/pull/5501) +* Clean up `scrcmd` PR by @Bassoonian in [#5511](https://github.com/rh-hideout/pokeemerald-expansion/pull/5511) +* Removes Crit Chance preproc by @AlexOn1ine in [#5520](https://github.com/rh-hideout/pokeemerald-expansion/pull/5520) +* Removed agbcc screenshots from gitignore by @Bassoonian in [#5538](https://github.com/rh-hideout/pokeemerald-expansion/pull/5538) +* Removed unnecessary `gBattlerAttacker` usage by @AlexOn1ine in [#5554](https://github.com/rh-hideout/pokeemerald-expansion/pull/5554) +* Removed remaining line breaks from #3240 + Prefix wrap fix by @AsparagusEduardo in [#5556](https://github.com/rh-hideout/pokeemerald-expansion/pull/5556) +* More post-#3240 cleanup by @kittenchilly in [#5593](https://github.com/rh-hideout/pokeemerald-expansion/pull/5593) +* Renamed folders and symbols to match species defines by @AsparagusEduardo in [#5581](https://github.com/rh-hideout/pokeemerald-expansion/pull/5581) + - Also: + - Burmy and Wormadam footprints were in a `plant` subfolder. They have been moved to the species root folder + - Paldean Wooper's subfolder was named `wooper_paldean` instead of just `paldean`. This has been corrected. + - Zen Mode Galarian Darmanitan's folder was located in `darmanitan/galarian/zen_mode`. This has been corrected to `darmanitan/galar_zen`, alongside Galarian Standard Mode's `darmanitan/galar_standard`. + - Also updated Ogerpon's folders similarly. + - Renamed `SPECIES_PIKACHU_PARTNER_CAP` to `SPECIES_PIKACHU_PARTNER`. +* Minor `BattleStruct` clean up by @AlexOn1ine in [#5585](https://github.com/rh-hideout/pokeemerald-expansion/pull/5585) +* Fixed a ball update oversight by @Bassoonian in [#5609](https://github.com/rh-hideout/pokeemerald-expansion/pull/5609) +* `AI_FLAG_ACE_POKEMON` takes into account separate trainers by @GhoulMage and @/uvula on Discord noted the weird behaviour in [#5608](https://github.com/rh-hideout/pokeemerald-expansion/pull/5608) + - Fix for the AI not considering both trainers Ace Pokémons in double battles with `AI_FLAG_ACE_POKEMON`. +* Moves that deal a Fixed amount don't need AI handling by @AlexOn1ine in [#5614](https://github.com/rh-hideout/pokeemerald-expansion/pull/5614) +* Combines `CalculateMoveDamage` arguments into a struct by @AlexOn1ine in [#5570](https://github.com/rh-hideout/pokeemerald-expansion/pull/5570) +* Follow up for #5570 by @AlexOn1ine in [#5625](https://github.com/rh-hideout/pokeemerald-expansion/pull/5625) +* `AI_CalcDamage` clean up by @AlexOn1ine in [#5629](https://github.com/rh-hideout/pokeemerald-expansion/pull/5629) +* Convert 3 variouses to `callnatives` by @AlexOn1ine in [#5646](https://github.com/rh-hideout/pokeemerald-expansion/pull/5646) +* Convert `gBattleStringsTable` to `COMPOUND_STRING`s by @AsparagusEduardo in [#5649](https://github.com/rh-hideout/pokeemerald-expansion/pull/5649) +* Added merged placeholder text for trainer name with class by @kittenchilly in [#5622](https://github.com/rh-hideout/pokeemerald-expansion/pull/5622) +* Cleans up Primal Reversion code by @AlexOn1ine in [#5659](https://github.com/rh-hideout/pokeemerald-expansion/pull/5659) +* Critical Hit documentation and distorted match up struct switch by @AlexOn1ine in [#5665](https://github.com/rh-hideout/pokeemerald-expansion/pull/5665) +* Changes name of `B_SCR_NAME_WITH_PREFIX` by @AlexOn1ine in [#5675](https://github.com/rh-hideout/pokeemerald-expansion/pull/5675) +* Removes redundant Decorate check by @AlexOn1ine in [#5696](https://github.com/rh-hideout/pokeemerald-expansion/pull/5696) +* Changes taget bit of Flower Shield by @AlexOn1ine in [#5698](https://github.com/rh-hideout/pokeemerald-expansion/pull/5698) +* Changing `EVO_NONE` from `0xFFFE` to `0` by @GhoulMage in [#5547](https://github.com/rh-hideout/pokeemerald-expansion/pull/5547) + - There could be a case for out of bounds errors if arrays or iterations are happening where you're using + 1 or - 1, as `EVO_FRIENDSHIP` used to be the first index although it started with 1. + +## 🧪 Test Runner 🧪 +### Changed +* Fixed Commander test name by @Bassoonian in [#5458](https://github.com/rh-hideout/pokeemerald-expansion/pull/5458) +* `ShouldSwitchIfGameStatePrompt` Tests by @Pawkkie in [#5462](https://github.com/rh-hideout/pokeemerald-expansion/pull/5462) +* Added various tests, add `RNG_RANDOM_TARGET` by @ghoulslash in [#5438](https://github.com/rh-hideout/pokeemerald-expansion/pull/5438) +* Added Costar Tests, Download Test for Doubles by @ghoulslash in [#5526](https://github.com/rh-hideout/pokeemerald-expansion/pull/5526) +* Updated Wring Out effects to match Eruption effects by @AsparagusEduardo in [#5549](https://github.com/rh-hideout/pokeemerald-expansion/pull/5549) + - Changed Wring Out/Crush Grip/Hard Press to use `power` instead of `argument` to determine its max power, just like how Eruption/Water Spout/Dragon Energy do it. Also: + - Renamed `EFFECT_VARY_POWER_BASED_ON_HP` to `EFFECT_POWER_BASED_ON_TARGET_HP` + - Renamed `EFFECT_ERUPTION` to `EFFECT_POWER_BASED_ON_USER_HP` +* Healer ability tests by @Pawkkie in [#5559](https://github.com/rh-hideout/pokeemerald-expansion/pull/5559) +* Mark all tests as used by @mrgriffin in [#5531](https://github.com/rh-hideout/pokeemerald-expansion/pull/5531) + +### Fixed +* Should switch refactor to facilitate switch prediction by @Pawkkie in [#5466](https://github.com/rh-hideout/pokeemerald-expansion/pull/5466) + +## 📚 Documentation 📚 +* `DoBattleIntro` state documentation by @AsparagusEduardo and @ShinyDragonHunter in [#5231](https://github.com/rh-hideout/pokeemerald-expansion/pull/5231) +* Deprecate MMBN Names by @pkmnsnfrn in [#5240](https://github.com/rh-hideout/pokeemerald-expansion/pull/5240) +* `AI_FLAG_SETUP_FIRST_TURN` Rename and Clarifications by @Pawkkie in [#5310](https://github.com/rh-hideout/pokeemerald-expansion/pull/5310) +* Added Composite AI Flags to Docs by @Pawkkie in [#5349](https://github.com/rh-hideout/pokeemerald-expansion/pull/5349) +* Updated the new pokemon tutorial for 1.10 by @hedara90 in [#5721](https://github.com/rh-hideout/pokeemerald-expansion/pull/5721) + - Some changes compared to previous. + +## New Contributors +* @SombrAbsol made their first contribution in [#4958](https://github.com/rh-hideout/pokeemerald-expansion/pull/4958) +* @Galaxeeh made their first contribution in [#5084](https://github.com/rh-hideout/pokeemerald-expansion/pull/5084) +* @Flash1Lucky made their first contribution in [#5269](https://github.com/rh-hideout/pokeemerald-expansion/pull/5269) +* @GhoulMage made their first contribution in [#5547](https://github.com/rh-hideout/pokeemerald-expansion/pull/5547) + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.9.4...expansion/1.10.0 + + + diff --git a/docs/changelogs/1.9.x/1.9.4.md b/docs/changelogs/1.9.x/1.9.4.md new file mode 100644 index 0000000000..2a41988bd4 --- /dev/null +++ b/docs/changelogs/1.9.x/1.9.4.md @@ -0,0 +1,201 @@ +# Version 1.9.4 + +```md +## How to update +- If you haven't set up a remote, run the command `git remote add RHH https://github.com/rh-hideout/pokeemerald-expansion`. +- Once you have your remote set up, run the command `git pull RHH expansion/1.9.4`. +``` + +## 🌋 IMPORTANT 🌋 +- This update integrates pret's latest Makefile changes, which rearranges the entire file in order to speed up compilation times overall. If you did any changes to it (such as installing Poryscript) and are having issues resolving the conflicts, keep expansion's version of Makefile and reapply your changes afterwards. + +## 🧬 General 🧬 +### Fixed +* Fixed alignment errors in `EWRAM_INIT` and friends when using u8, u16, etc. by @aronson in [#5512](https://github.com/rh-hideout/pokeemerald-expansion/pull/5512) +* Update test LD script to respect 4 byte data section alignment by @aronson in [#5517](https://github.com/rh-hideout/pokeemerald-expansion/pull/5517) +* Fixed Missing `string_util.h` include in `mini_printf.c` by @mrgriffin in [#5572](https://github.com/rh-hideout/pokeemerald-expansion/pull/5572) +* Fixed unnecessary dependency scanning for test build and test rom names by @ravepossum in [#5594](https://github.com/rh-hideout/pokeemerald-expansion/pull/5594) +* Fixed makefile: dependencies for `map_group_count.h` by @SBird1337 in [#5648](https://github.com/rh-hideout/pokeemerald-expansion/pull/5648) + - Fixes an issue that caused the build to fail on updates to `src/debug.c` due to mismatched dependency. + +## 🗺️ Overworld 🗺️ +### Changed +* Followers sprite fixes by @Cafeei in [#5669](https://github.com/rh-hideout/pokeemerald-expansion/pull/5669) +* Follower fixes, Melmetal, Patrat, Woobat by @hedara90 in [#5685](https://github.com/rh-hideout/pokeemerald-expansion/pull/5685) +* Fixed Farfetch'd overworld sprite by @hedara90 in [#5711](https://github.com/rh-hideout/pokeemerald-expansion/pull/5711) + +### Fixed +* Fixed Berry mutations always generating a Persim Berry by @Bassoonian in [#5504](https://github.com/rh-hideout/pokeemerald-expansion/pull/5504) + +## 🐉 Pokémon 🐉 +### Changed +* Changing `EVO_NONE` from `0xFFFE` to `0` by @GhoulMage in [#5547](https://github.com/rh-hideout/pokeemerald-expansion/pull/5547) + - There could be a case for out of bounds errors if arrays or iterations are happening where you're using + 1 or - 1, as `EVO_FRIENDSHIP` used to be the first index although it started with 1. +* PokeCommunity sprites batch (October) by @kittenchilly in [#5655](https://github.com/rh-hideout/pokeemerald-expansion/pull/5655) +* Followers sprite fixes by @Cafeei in [#5669](https://github.com/rh-hideout/pokeemerald-expansion/pull/5669) +* Follower fixes, Melmetal, Patrat, Woobat by @hedara90 in [#5685](https://github.com/rh-hideout/pokeemerald-expansion/pull/5685) +* Fixed Farfetch'd overworld sprite by @hedara90 in [#5711](https://github.com/rh-hideout/pokeemerald-expansion/pull/5711) + +### Fixed +* Fixed `P_FRIENDSHIP_EVO_THRESHOLD` not checking for Gen 8 by @kittenchilly in [#5503](https://github.com/rh-hideout/pokeemerald-expansion/pull/5503) +* Fixed HGSS dex search printing wrong mon after selecting evos by @ravepossum in [#5552](https://github.com/rh-hideout/pokeemerald-expansion/pull/5552) +* Fixed 64px uncompressed followers by @hedara90 in [#5601](https://github.com/rh-hideout/pokeemerald-expansion/pull/5601) +* Deoxys Sprite/Animation Fixes by @SarnPoke in [#5603](https://github.com/rh-hideout/pokeemerald-expansion/pull/5603) +* Fixes Aegislash not reverting back by @AlexOn1ine in [#5734](https://github.com/rh-hideout/pokeemerald-expansion/pull/5734) + +## ⚔️ Battle General ⚔️ +### Changed +* Fixed damage calc modifiers by @AlexOn1ine in [#5604](https://github.com/rh-hideout/pokeemerald-expansion/pull/5604) + +### Fixed +* Fixed Shiny Pokemon not being shiny after transforming with a gimmick by @hedara90 in [#5573](https://github.com/rh-hideout/pokeemerald-expansion/pull/5573) +* Handle showdowns apostrophe the same way as ASCII apostrophe by @cawtds in [#5712](https://github.com/rh-hideout/pokeemerald-expansion/pull/5712) +* Fixes Misty Terrain displaying wrong message by @AlexOn1ine in [#5742](https://github.com/rh-hideout/pokeemerald-expansion/pull/5742) +* Fixes Dynamax dynamic move type by @AlexOn1ine in [#5739](https://github.com/rh-hideout/pokeemerald-expansion/pull/5739) + +## 🤹 Moves 🤹 +### Changed +* Fixed damage calc modifiers by @AlexOn1ine in [#5604](https://github.com/rh-hideout/pokeemerald-expansion/pull/5604) +* Updated ability popups for Skill Swap, Mummy/Lingering Aroma, Worry Seed, Simple Beam, fix Doodle/Role Play bugs by @PhallenTree in [#5493](https://github.com/rh-hideout/pokeemerald-expansion/pull/5493) + +### Fixed +* Fixed Follow Me failing in Single Battles for Gen 6/7 config by @AsparagusEduardo in [#5542](https://github.com/rh-hideout/pokeemerald-expansion/pull/5542) +* Fixed `AnimTask_HorizontalShake` uses for shaking screen in battle anims by @ghoulslash in [#5562](https://github.com/rh-hideout/pokeemerald-expansion/pull/5562) +* Fixed weather genie move anims and Springtide Storm targets by @ravepossum in [#5553](https://github.com/rh-hideout/pokeemerald-expansion/pull/5553) +* Fixes Magic Guard not preventing Salt Cure by @AlexOn1ine in [#5583](https://github.com/rh-hideout/pokeemerald-expansion/pull/5583) +* Fixes Dragon Tail using the effect twice during a Parental Bond attack by @AlexOn1ine in [#5630](https://github.com/rh-hideout/pokeemerald-expansion/pull/5630) +* Fixes Magic Coat message by @AlexOn1ine in [#5645](https://github.com/rh-hideout/pokeemerald-expansion/pull/5645) +* Fixes Take heart by @AlexOn1ine in [#5658](https://github.com/rh-hideout/pokeemerald-expansion/pull/5658) +* Fixed Floral Healing anim by @AlexOn1ine in [#5733](https://github.com/rh-hideout/pokeemerald-expansion/pull/5733) +* Fixes Population Bomb / Triple Kick missing message by @AlexOn1ine in [#5747](https://github.com/rh-hideout/pokeemerald-expansion/pull/5747) +* Changes Max Phantasm move anim script call by @AlexOn1ine in [#5737](https://github.com/rh-hideout/pokeemerald-expansion/pull/5737) +* Fixes Partner targeting and Acupressure/Ally Switch interaction by @AlexOn1ine in [#5446](https://github.com/rh-hideout/pokeemerald-expansion/pull/5446) +* Revival Blessing fixes + Using Lunar Blessing's animation by @ghoulslash in [#5490](https://github.com/rh-hideout/pokeemerald-expansion/pull/5490) +* Fixed curse + Protean interaction by @hedara90 in [#5663](https://github.com/rh-hideout/pokeemerald-expansion/pull/5663) +* Added Minimize interaction to Supercell Slam by @hedara90 in [#5713](https://github.com/rh-hideout/pokeemerald-expansion/pull/5713) + +## 🎭 Abilities 🎭 +### Changed +* Fixed damage calc modifiers by @AlexOn1ine in [#5604](https://github.com/rh-hideout/pokeemerald-expansion/pull/5604) + +### Fixed +* Adds tests and Costar fix from PR #5526 by @AlexOn1ine in [#5529](https://github.com/rh-hideout/pokeemerald-expansion/pull/5529) +* Fixes Red Card / Eject Pack interaction with Emergency Exit by @AlexOn1ine in [#5657](https://github.com/rh-hideout/pokeemerald-expansion/pull/5657) +* Fixed curse + Protean interaction by @hedara90 in [#5663](https://github.com/rh-hideout/pokeemerald-expansion/pull/5663) +* Mimicry updates typing with `RemoveAllTerrains()` by @AERDU in [#5666](https://github.com/rh-hideout/pokeemerald-expansion/pull/5666) +* Updated ability popups for Skill Swap, Mummy/Lingering Aroma, Worry Seed, Simple Beam, fix Doodle/Role Play bugs by @PhallenTree in [#5493](https://github.com/rh-hideout/pokeemerald-expansion/pull/5493) +* Fixed curse + Protean interaction by @hedara90 in [#5663](https://github.com/rh-hideout/pokeemerald-expansion/pull/5663) +* Fixes Ice Face regression by @AlexOn1ine in [#5678](https://github.com/rh-hideout/pokeemerald-expansion/pull/5678) +* Fixes Neutralizing Gas crashes + adds missing interaction, Regenerator small fix by @PhallenTree in [#5694](https://github.com/rh-hideout/pokeemerald-expansion/pull/5694) + +## 🧶 Items 🧶 +### Changed +* Removes duplicate Booster Energy code by @AlexOn1ine in [#5656](https://github.com/rh-hideout/pokeemerald-expansion/pull/5656) + +### Fixed +* Fixes Red Card / Eject Pack interaction with Emergency Exit by @AlexOn1ine in [#5657](https://github.com/rh-hideout/pokeemerald-expansion/pull/5657) +* Fixes Red Card / Eject Pack interaction by @AlexOn1ine in [#5724](https://github.com/rh-hideout/pokeemerald-expansion/pull/5724) +* Fixes gems triggering on confusion damage by @AlexOn1ine in [#5723](https://github.com/rh-hideout/pokeemerald-expansion/pull/5723) +* Fixes Kee Maranga and Enigma Berry by @AlexOn1ine in [#5727](https://github.com/rh-hideout/pokeemerald-expansion/pull/5727) +* Fixes Blunder Policy by @AlexOn1ine in [#5722](https://github.com/rh-hideout/pokeemerald-expansion/pull/5722) +* Fixes Rusted Shield/Sword allowed to be Knocked Off from Zamazenta/Zacian by @iriv24 in [#5750](https://github.com/rh-hideout/pokeemerald-expansion/pull/5750) + +## 🤖 Battle AI 🤖 +### Fixed +* Fixed certain move data being cleared on turn end by @Pawkkie and @AlexOn1ine in [#5488](https://github.com/rh-hideout/pokeemerald-expansion/pull/5488) +* Global is used instead of passed var by @AlexOn1ine in [#5546](https://github.com/rh-hideout/pokeemerald-expansion/pull/5546) +* Fixes `dynamicMoveType` global not being reset during AI calcs by @AlexOn1ine in [#5628](https://github.com/rh-hideout/pokeemerald-expansion/pull/5628) + +## 🧹 Other Cleanup 🧹 +* Remove one redundant call of `SetAiLogicDataForTurn` in `DoBattleIntro` by @AlexOn1ine in [#5491](https://github.com/rh-hideout/pokeemerald-expansion/pull/5491) +* Cleanup extraneous function in `battle_anim.h` by @hedara90 in [#5506](https://github.com/rh-hideout/pokeemerald-expansion/pull/5506) +* Add newline to move relearner string by @Bassoonian in [#5523](https://github.com/rh-hideout/pokeemerald-expansion/pull/5523) +* Fixed 10,000,000 Volt Thunderbolt name by @AsparagusEduardo in [#5533](https://github.com/rh-hideout/pokeemerald-expansion/pull/5533) +* Added constant to expansion inclusive copyright magic number by @pkmnsnfrn in [#5413](https://github.com/rh-hideout/pokeemerald-expansion/pull/5413) +* Centralise AI Tests trainer name by @Bassoonian in [#5532](https://github.com/rh-hideout/pokeemerald-expansion/pull/5532) +* Remove now outdated information from readme by @Bassoonian in [#5548](https://github.com/rh-hideout/pokeemerald-expansion/pull/5548) +* Changing `EVO_NONE` from `0xFFFE` to `0` by @GhoulMage in [#5547](https://github.com/rh-hideout/pokeemerald-expansion/pull/5547) + - There could be a case for out of bounds errors if arrays or iterations are happening where you're using + 1 or - 1, as `EVO_FRIENDSHIP` used to be the first index although it started with 1. +* Shed Skin chance fix by @Pawkkie in [#5558](https://github.com/rh-hideout/pokeemerald-expansion/pull/5558) +* Restore test file dependencies so they're rebuilt properly by @ravepossum in [#5617](https://github.com/rh-hideout/pokeemerald-expansion/pull/5617) +* Improve `SEND_OUT` error message; require Speed for all battlers by @mrgriffin in [#5631](https://github.com/rh-hideout/pokeemerald-expansion/pull/5631) +* Removes duplicate Booster Energy code by @AlexOn1ine in [#5656](https://github.com/rh-hideout/pokeemerald-expansion/pull/5656) +* Wrong assumtion in dauntless_shield.c by @AlexOn1ine in [#5692](https://github.com/rh-hideout/pokeemerald-expansion/pull/5692) + +## 🧪 Test Runner 🧪 +### Added +* Add curious medicine test by @ghoulslash in [#5540](https://github.com/rh-hideout/pokeemerald-expansion/pull/5540) +* Tests: detect task leaks by @mrgriffin in [#5528](https://github.com/rh-hideout/pokeemerald-expansion/pull/5528) + +### Changed +* Add text width tests for move, ability, item, and pokedex descriptions by @kittenchilly in [#5505](https://github.com/rh-hideout/pokeemerald-expansion/pull/5505) +* Centralise AI Tests trainer name by @Bassoonian in [#5532](https://github.com/rh-hideout/pokeemerald-expansion/pull/5532) +* Add basic Steam Engine, Guard Dog Tests by @ghoulslash in [#5569](https://github.com/rh-hideout/pokeemerald-expansion/pull/5569) +* Fixed damage test by @GhoulMage and @mrgriffin for teaching me pokeemerald-expansion tests in [#5574](https://github.com/rh-hideout/pokeemerald-expansion/pull/5574) +* Fallback `memmem` implementation by @mrgriffin in [#5561](https://github.com/rh-hideout/pokeemerald-expansion/pull/5561) +* Hydra: Support `%p` in test summaries by @mrgriffin in [#5626](https://github.com/rh-hideout/pokeemerald-expansion/pull/5626) +* Improve `SEND_OUT` error message; require Speed for all battlers by @mrgriffin in [#5631](https://github.com/rh-hideout/pokeemerald-expansion/pull/5631) +* Check that `PASSES_RANDOMLY` affected a `Random` call by @mrgriffin in [#5635](https://github.com/rh-hideout/pokeemerald-expansion/pull/5635) +* Wrong assumtion in dauntless_shield.c by @AlexOn1ine in [#5692](https://github.com/rh-hideout/pokeemerald-expansion/pull/5692) + +### Fixed +* Update test LD script to respect 4 byte data section alignment by @aronson in [#5517](https://github.com/rh-hideout/pokeemerald-expansion/pull/5517) +* Adds tests and Costar fix from PR #5526 by @AlexOn1ine in [#5529](https://github.com/rh-hideout/pokeemerald-expansion/pull/5529) +* Fixed broken Starting Terrain test by @hedara90 in [#5582](https://github.com/rh-hideout/pokeemerald-expansion/pull/5582) + +## 📚 Documentation 📚 +* Add changelog header in PR template to aid automation by @AsparagusEduardo in [#5539](https://github.com/rh-hideout/pokeemerald-expansion/pull/5539) +* Added compressed OW mon VRAM notice in config file by @AsparagusEduardo in [#5599](https://github.com/rh-hideout/pokeemerald-expansion/pull/5599) +* Update `README.md` to link to `INSTALL.md` by @Pawkkie in [#5720](https://github.com/rh-hideout/pokeemerald-expansion/pull/5720) +* Fixes minor move desc errors by @AlexOn1ine in [#5728](https://github.com/rh-hideout/pokeemerald-expansion/pull/5728) + +## 📦 Branch Synchronisation 📦 +### pret +* 15th of October in [#5527](https://github.com/rh-hideout/pokeemerald-expansion/pull/5527) + * Slight storage system documentation by @luckytyphlosion in [pret#2024](https://github.com/pret/pokeemerald/pull/2024) + * Clean up defines lacking spaces by @Bassoonian in [pret#2025](https://github.com/pret/pokeemerald/pull/2025) + * UB fix in battle_transition.c by @cawtds in [pret#2007](https://github.com/pret/pokeemerald/pull/2007) + * preproc: support arbitrary expressions in enums by @mrgriffin in [pret#2026](https://github.com/pret/pokeemerald/pull/2026) + * [Build System Rewrite] Refactored `Makefile` by @Icedude907 in [pret#1950](https://github.com/pret/pokeemerald/pull/1950) + * Fixed incorrect point macros in contest_ai_script.inc by @NTx86 in [pret#2028](https://github.com/pret/pokeemerald/pull/2028) + * [Build System Rewrite] Massive build speed improvement via scaninc changes by @Icedude907 in [pret#1954](https://github.com/pret/pokeemerald/pull/1954) + * [Build System Rewrite] Improved audio rules by @Icedude907 in [pret#1957](https://github.com/pret/pokeemerald/pull/1957) + * Update INSTALL.md to state that Windows 8 is no longer supported by Microsoft by @luciofstars in [pret#2029](https://github.com/pret/pokeemerald/pull/2029) + * Update pull_request_template.md to include Discord username update by @luciofstars in [pret#2030](https://github.com/pret/pokeemerald/pull/2030) + * remove ScriptContext_Enable from secret_base.h by @DizzyEggg in [pret#2032](https://github.com/pret/pokeemerald/pull/2032) + * Remove gflib by @Kurausukun in [pret#2033](https://github.com/pret/pokeemerald/pull/2033) + * Minor toolchain fixes by @GriffinRichards in [pret#2031](https://github.com/pret/pokeemerald/pull/2031) + * Bugfix for cable car hikerGraphicsIds array by @Scyrous in [pret#2039](https://github.com/pret/pokeemerald/pull/2039) + * Remove explicit symbol sizes in sym_common.txt by @GriffinRichards in [pret#2038](https://github.com/pret/pokeemerald/pull/2038) + * Ignore mGBA screenshots by @Jaizu in [pret#2041](https://github.com/pret/pokeemerald/pull/2041) + * Replaced copyright magic numbers in intro.c with constants by @pkmnsnfrn in [pret#2035](https://github.com/pret/pokeemerald/pull/2035) + * Fixed typo: | should be || in Task_TryFieldPoisonWhiteOut by @AreaZR in [pret#2044](https://github.com/pret/pokeemerald/pull/2044) + * [preproc] support C23 enum underlying type syntax by @mrgriffin in [pret#2043](https://github.com/pret/pokeemerald/pull/2043) + * Fixed deleting files with dependency files by @mid-kid in [pret#2045](https://github.com/pret/pokeemerald/pull/2045) + * Remove unnecessary looping for rule generation and unroll macros by @mid-kid in [pret#2046](https://github.com/pret/pokeemerald/pull/2046) + * Get rid of common syms by @luckytyphlosion in [pret#2040](https://github.com/pret/pokeemerald/pull/2040) + * Bugfix for cable car hikerGraphicsIds array by @Scyrous in [pret#2039](https://github.com/pret/pokeemerald/pull/2039) + * UB fix in battle_transition.c by @cawtds in [pret#2007](https://github.com/pret/pokeemerald/pull/2007) + * Fixed typo: | should be || in Task_TryFieldPoisonWhiteOut by @AreaZR in [pret#2044](https://github.com/pret/pokeemerald/pull/2044) + * Get rid of common syms by @luckytyphlosion in [pret#2040](https://github.com/pret/pokeemerald/pull/2040) + * Fixed incorrect point macros in contest_ai_script.inc by @NTx86 in [pret#2028](https://github.com/pret/pokeemerald/pull/2028) +* 5th of November in [#5644](https://github.com/rh-hideout/pokeemerald-expansion/pull/5644) + * Added define value for bard sound length by @fdeblasio in [pret#2052](https://github.com/pret/pokeemerald/pull/2052) + * Silence 'Nothing to be done for generated' messages by @GriffinRichards in [pret#2059](https://github.com/pret/pokeemerald/pull/2059) + * Lay out emerald version png horizontally by @GriffinRichards in [pret#2062](https://github.com/pret/pokeemerald/pull/2062) +* 29 of November in [#5736](https://github.com/rh-hideout/pokeemerald-expansion/pull/5736) + * Remove usage of gHeap in sSpritePalettes_ContestantsTurnBlinkEffect by @Lactozilla in [pret#2064](https://github.com/pret/pokeemerald/pull/2064) + * BUGFIX: Fix Counter and Mirror Coat checking the wrong category by @surtr-games in [pret#2066](https://github.com/pret/pokeemerald/pull/2066) + * Add TRY_DRAW_SPOT_PIXEL by @GriffinRichards in [pret#2055](https://github.com/pret/pokeemerald/pull/2055) + * Added extra encoded character support by @AsparagusEduardo in [pret#2050](https://github.com/pret/pokeemerald/pull/2050) +### merrp's followers +* Merrp merge (12th of October) by @Bassoonian in [#5514](https://github.com/rh-hideout/pokeemerald-expansion/pull/5514) + - d80190fe105eee12bbf74ae29647ac909084d35c fix: Dig in Sealed Chamber no longer freezes follower. + +## New Contributors +* @AERDU made their first contribution in [#5666](https://github.com/rh-hideout/pokeemerald-expansion/pull/5666) + +**Full Changelog**: https://github.com/rh-hideout/pokeemerald-expansion/compare/expansion/1.9.3...expansion/1.9.4 + + + diff --git a/docs/scope.md b/docs/scope.md new file mode 100644 index 0000000000..1bec4f2db7 --- /dev/null +++ b/docs/scope.md @@ -0,0 +1,54 @@ +# Document Purpose + +This document is a guide for contributors and Senate to decide if a feature is within "scope" for pokeemerald-expansion. If a feature is not in scope, then it should not be merged. Even if an opened PR is within scope, this does not mean it will be merged, as acceptance criteria will often come down to the details of the implementation. + +# Definitions + +* **Showdown Supported (SS)**: A core series game who's metagame can be played on Showdown. + * Notably, this is every [core series game](https://bulbapedia.bulbagarden.net/wiki/Core_series#List_of_core_series_games) except Pokémon Legends: Arceus. +* **Base Expansion Version**: "A .gba file built from an unmodified `master` or `upcoming` branch of `pokeemerald-expansion`. +* **Vanilla Emerald Version**: A .gba file built from an unmodified `master` branch of pret's `pokeemerald`. + +# Guidelines + +A pull request meets the scope criteria if: +* The feature does not belong to a category considered “not in scope” AND +* The feature belongs to a category considered “in scope” + +## In Scope Categories + +1. **SS Species:** Adds Species that have appeared in a Showdown-supported title +2. **SS Moves:** Adds Moves and Move Animations that have appeared in a Showdown-supported title +3. **SS Abilities:** Adds Abilities that have appeared in a Showdown-supported title +4. **SS Items:** Adds Items that have appeared in a Showdown-supported title +5. **SS Gimmicks:** Adds Gimmicks that have appeared in a Showdown-supported title +6. **SS Battle Types:** Adds Special Battle Types that have appeared in a Showdown-supported title +7. **SS Battle Mechanics:** Adds mechanical battle changes that have appeared in a Showdown-supported title +8. **Improve Battle AI:** Improve the Battle AI in a way that allows it to approach the skill and capability of a human competitive player +9. **Base Link Compatibility:** Link compatibility with base +10. **SS Overworld / Menu Updates:** Replicate overworld or menu changes from Showdown-supported Pokémon titles +11. **Speed Up:** Speed up the player experience of features found in base +12. **Compression:** Automatically compress assets +13. **Novel Experience:** Adds a novel experience included in another Showdown Supported title +15. **Helper Features:** Eases the addition or inclusion of any of the aforementioned + +## Not In Scope Categories + +1. **Non-SS Species**: Adds Species that have NOT appeared in a Showdown-supported title +2. **Non-SS Moves**: Adds Moves and Move Animations that have NOT appeared in a Showdown-supported title +3. **Non-SS Abilities**: Adds Abilities that have NOT appeared in a Showdown-supported title +4. **Non-SS Items**: Adds Items that have NOT appeared in a Showdown-supported title +5. **Non-SS Gimmicks**: Adds Gimmicks that have NOT appeared in a Showdown-supported title +6. **Non-SS Battle Types**: Adds Special Battle Types that have NOT appeared in a Showdown-supported title +7. **Duplicate Feature UI**: Adds functionality that duplicates the core functionality of an existing vanilla feature +8. **Vanilla Link Compatibility**: Link compatibility with vanilla + +## Discussion Required Categories + +Pull Requests that fall into this category should be brought up to maintainers, who will discuss and vote as to whether or not the feature is considered in scope. Considerations for acceptance may include invasiveness of implementation, popularity, ease of maintenance, etc. + +1. **Developer Ease of Use:** Lowers barrier of entry for developers to use existing behavior +2. **Fangame Features:** Adds a popular feature from other fangames +3. **Popular Non-SS Features:** Exceptions can be made for uniquely popular or requested features (Drowsy, PLA Legend Plate, etc.) +4. **External Program**: External programs like poryscript, porymoves, etc. + diff --git a/docs/tutorials/ai_flags.md b/docs/tutorials/ai_flags.md index 8559ff36f9..fcad6ed34f 100644 --- a/docs/tutorials/ai_flags.md +++ b/docs/tutorials/ai_flags.md @@ -134,7 +134,10 @@ Affects when the AI chooses to switch. AI will make smarter decisions about when * The current mon loses the 1v1 quickly and has at least ½ HP, or ¼ and Regenerator ## `AI_FLAG_ACE_POKEMON` -Marks the last Pokemon in the party as the Ace Pokemon. It will not be used unless it is the last one remaining, or is forced to be switched in (Roar, U-Turn with 1 mon remaining, etc.) +Marks the last Pokemon in the party as the Ace Pokemon. It will not be used unless it is the last one remaining, or is forced to be switched in (Roar, U-Turn with 1 mon remaining, etc.). If you are challenged by two different trainers at the same time, only the ones with this flag will have Ace Pokémon. For example vs one trainer with `AI_FLAG_ACE_POKEMON`and the other without, there will be a total of 1 Ace Pokémon. + +## `AI_FLAG_DOUBLE_ACE_POKEMON` +Marks the last two Pokémon in the party as Ace Pokémon, with the same behaviour as `AI_FLAG_ACE_POKEMON`. Intented for double battles where you battle one trainer id that represents two trainers, ie Twins, Couples. If you apply this flag to trainers outside of double battles or in cases where two trainers can challenge you at the same time, it has the same behaviour. For example vs two trainers with `AI_FLAG_DOUBLE_ACE_POKEMON` there will be a total of 4 Ace Pokémon. ## `AI_FLAG_OMNISCIENT` AI has full knowledge of player moves, abilities, and hold items, and can use this knowledge when making decisions. @@ -162,3 +165,6 @@ AI always assumes it will roll the lowest possible result when comparing damage ## `AI_FLAG_SEQUENCE_SWITCHING` AI will always switch out after a KO in exactly party order as defined in the trainer data (ie. slot 1, then 2, then 3, etc.). The AI will never switch out mid-battle unless forced to (Roar etc.). If the AI uses a move that requires a switch where it makes a decision about what to send in (U-Turn etc.), it will always switch out into the lowest available party index. + +## `AI_FLAG_WEIGH_ABILITY_PREDICTION` +AI will predict the player's ability based to its aiRating. Without this flag the AI randomly assumes an ability with an even distribution between all possible abilities until one is confirmed. With this flag, it instead guesses proportionally to each ability's aiRating, making it far more likely to guess an ability like Water Absorb than Damp if both are options. diff --git a/docs/tutorials/how_to_new_pokemon_1_10_0.md b/docs/tutorials/how_to_new_pokemon_1_10_0.md new file mode 100644 index 0000000000..f6eaedee99 --- /dev/null +++ b/docs/tutorials/how_to_new_pokemon_1_10_0.md @@ -0,0 +1,1163 @@ + +This is a modified version of [the original tutorial about adding new Pokémon species available in Pokeemerald's wiki](https://github.com/pret/pokeemerald/wiki/How-to-add-a-new-Pokémon-species). + +Despite the persistent rumors about an incredibly strong third form of Mew hiding somewhere, it actually wasn't possible to catch it... OR WAS IT? +In this tutorial, we will add a new Pokémon species to the game. + +## IMPORTANT: This tutorial applies to 1.10.x versions. +- [Version 1.9.x](how_to_new_pokemon_1_9_0.md) +- [Version 1.8.x](how_to_new_pokemon_1_8_0.md) +- [Version 1.7.x](how_to_new_pokemon_1_7_0.md) +- [Version 1.6.x](how_to_new_pokemon_1_6_0.md) + +# Changes compared to vanilla +The main things that the Expansion changes are listed here. +* Still Front Pics *(`gMonStillFrontPic_YourPokemon`)* and by extension `src/anim_mon_front_pics.c` have been removed. +* `src/data/pokemon/cry_ids.h` doesn't exist anymore. +* You have 6 icon palettes available instead of the base 3. +* Most tables that use `SPECIES_x` as indexes have been moved to `gSpeciesInfo`. + +# Content +* [Useful resources](#useful-resources) +* [The Data - Part 1](#the-data---part-1) + * [1. Declare a species constant](#1-Declare-a-species-constant) + * [2. `SpeciesInfo`'s structure](#2-speciesinfos-structure) + * [3. Define its basic species information](#3-define-its-basic-species-information) + * [4. Species Name](#4-species-name) + * [5. Define its cry](#5-define-its-cry) + * [6. Define its Pokédex entry](#6-define-its-pokédex-entry) +* [The Graphics](#the-graphics) + * [1. Edit the sprites](#1-edit-the-sprites) + * [2. Add the sprites to the rom](#2-add-the-sprites-to-the-rom) + * [3. Add the animations to the rom](#3-add-the-animations-to-the-rom) + * [4. Linking graphic information to our Pokémon](#4-linking-graphic-information-to-our-pokémon) +* [The Data - Part 2](#the-data---part-2) + * [1. Species Flags](#1-species-flags) + * [2. Delimit the moveset](#2-delimit-the-moveset) + * [3. Define the Evolutions](#3-define-the-evolutions) + * [4. Make it appear!](#4-make-it-appear) +* [Optional data](#optional-data) + * [1. Form tables](#1-form-tables) + * [2. Form change tables](#2-form-change-tables) + * [3. Gender differences](#3-gender-differences) + * [4. Overworld Data](#4-overworld-data) + +# Useful resources +You can open a sprite debug menu by pressing `Select` in a Pokémon's summary screen outside of battle. + +![mGBA_6WOo1TSlsn](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/0c625cd8-8f89-4bc8-a285-b10a420a8f6d) + + +# The Data - Part 1 + +Our plan is as simple as it is brilliant: clone Mewtwo... and make it even stronger! + +## 1. Declare a species constant + +Our first step towards creating a new digital lifeform is to define its own species constant. + +Edit [include/constants/species.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/species.h): + +```diff + #define SPECIES_NONE 0 + #define SPECIES_BULBASAUR 1 + ... + #define SPECIES_MIMIKYU_BUSTED_TOTEM 1523 + #define SPECIES_MIMIKYU_TOTEM_BUSTED SPECIES_MIMIKYU_BUSTED_TOTEM ++#define SPECIES_MEWTHREE 1524 + +-#define SPECIES_EGG (SPECIES_MIMIKYU_BUSTED_TOTEM + 1) ++#define SPECIES_EGG (SPECIES_MEWTHREE + 1) + + #define NUM_SPECIES SPECIES_EGG +``` +This number is stored in a Pokémon's save structure. These should generally never change, otherwise your saved Pokémon species will change as well. + +We add this at the end so that no existing species change Id and so that we don't have to renumber everything after it. + +Now, let's see how it looks in-game! + +![image](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/dc15b0ba-a4bd-4f4e-9658-2dff73a11f79) + +Hmmm, something's not right... + +Oh, I know! We need to add the rest of the data! Normally, the vanilla game would crash if we try to look up anything about Mewthree in this state, but the expansion defaults all of its data to `SPECIES_NONE`. + +Now, let's see what needs to be done. + +## 2. `SpeciesInfo`'s structure +Now, to better understand Mewthree, we also need to understand Mew. Let's look at its data. +```diff + [SPECIES_MEW] = + { + .baseHP = 100, + .baseAttack = 100, + .baseDefense = 100, + .baseSpeed = 100, + .baseSpAttack = 100, + .baseSpDefense = 100, + .types = MON_TYPES(TYPE_PSYCHIC), + .catchRate = 45, + #if P_UPDATED_EXP_YIELDS >= GEN_8 + .expYield = 300, + #elif P_UPDATED_EXP_YIELDS >= GEN_5 + .expYield = 270, + #else + .expYield = 64, + #endif + .evYield_HP = 3, + .itemCommon = ITEM_LUM_BERRY, + .itemRare = ITEM_LUM_BERRY, + .genderRatio = MON_GENDERLESS, + .eggCycles = 120, + .friendship = 100, + .growthRate = GROWTH_MEDIUM_SLOW, + .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), + .abilities = { ABILITY_SYNCHRONIZE, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PINK, + .speciesName = _("Mew"), + .cryId = CRY_MEW, + .natDexNum = NATIONAL_DEX_MEW, + .categoryName = _("New Species"), + .height = 4, + .weight = 40, + .description = COMPOUND_STRING( + "A Mew is said to possess the genes of all\n" + "Pokémon. It is capable of making itself\n" + "invisible at will, so it entirely avoids\n" + "notice even if it approaches people."), + .pokemonScale = 457, + .pokemonOffset = -2, + .trainerScale = 256, + .trainerOffset = 0, + .frontPic = gMonFrontPic_Mew, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 9, + .frontAnimFrames = sAnims_Mew, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONVEX : ANIM_ZIGZAG_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 11, + .backPic = gMonBackPic_Mew, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, + .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, + .palette = gMonPalette_Mew, + .shinyPalette = gMonShinyPalette_Mew, + .iconSprite = gMonIcon_Mew, + .iconPalIndex = 0, + SHADOW(0, 13, SHADOW_SIZE_S) + FOOTPRINT(Mew) + OVERWORLD( + sPicTable_Mew, + SIZE_32x32, + SHADOW_SIZE_M, + TRACKS_NONE, + gOverworldPalette_Mew, + gShinyOverworldPalette_Mew + ) + .isMythical = TRUE, + .isFrontierBanned = TRUE, + .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, + .levelUpLearnset = sMewLevelUpLearnset, + .teachableLearnset = sMewTeachableLearnset, + }, +``` + +That's a lot of stuff! But don't worry, we'll go through it step by step throughout the tutorial +(and it's miles better than having this same data through 20+ files like it used to be). + +We'll start by adding the self-explanatory data that's also present in pret's vanilla structure: + +## 3. Define its basic species information +Edit [src/data/pokemon/species_info.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/species_info.h): +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + [SPECIES_NONE] = {0}, + ... + + [SPECIES_EGG] = + { + FRONT_PIC(Egg, 24, 24), + .frontPicYOffset = 20, + .backPic = gMonFrontPic_Egg, + .backPicSize = MON_COORDS_SIZE(24, 24), + .backPicYOffset = 20, + .palette = gMonPalette_Egg, + .shinyPalette = gMonPalette_Egg, + ICON(Egg, 1), + }, + ++ [SPECIES_MEWTHREE] = ++ { ++ .baseHP = 106, ++ .baseAttack = 150, ++ .baseDefense = 70, ++ .baseSpeed = 140, ++ .baseSpAttack = 194, ++ .baseSpDefense = 120, ++ .types = MON_TYPES(TYPE_PSYCHIC), ++ .catchRate = 3, ++ .expYield = 255, ++ .evYield_SpAttack = 3, ++ .genderRatio = MON_GENDERLESS, ++ .eggCycles = 120, ++ .friendship = 0, ++ .growthRate = GROWTH_SLOW, ++ .eggGroups = MON_EGG_GROUPS(EGG_GROUP_NO_EGGS_DISCOVERED), ++ .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_NONE }, ++ .bodyColor = BODY_COLOR_PURPLE, ++ }, + }; +``` + +The `.` is the structure reference operator in C to refer to the member object of the structure SpeciesInfo. + +- `baseHP`, `baseAttack`, `baseDefense`, `baseSpeed`, `baseSpAttack` and `baseSpDefense` are the base stats. They can't go higher than 255. +- `types` is using the macro `MON_TYPES` as a helper function for formatting so that only one type has to be input for species with a single type. + - To add a species with 2 types, use the format `MON_TYPES(TYPE_PSYCHIC, TYPE_NORMAL)`. +- `catchRate` is how likely it is to catch a Pokémon, the lower the value, the harder it is to catch. Legendaries generally have a catch rate of 3, so we put that here. +- `expYield` is the base amount of experience that a Pokémon gives when defeated/caught. In vanilla, this value caps at 255, but we've increased it to a maximum of 65535 accomodate later gen's higher experience yields. (The highest official value is Blissey's with 608, so going beyond this point may cause exponential gains that could break the system 😱) + - If you noticed, Mew's had some `#if`s, `#elif`s and `#endif` around it. This is because its yield has changed over time, and we let you choose which ones you want. This is not relevant to our Mewthree however, so we can just put a single `.expYield = 255,` line here. +- `evYield_HP`, `evYield_Attack`, `evYield_Defense`, `evYield_Speed`, `evYield_SpAttack` and `evYield_SpDefense` are how many EVs does the Pokémon give when they're caught. Each of these fields can have a value of 3 at most. Officially, no Pokémon give out more than 3 EVs total, with them being determined by their evolution stage (eg, Pichu, Pikachu and Raichu give 1, 2 and 3 Speed EVs respectively), and they tend to be associated with its higher stats. Since our Mewthree is a Special Attack monster, we'll be consistent and make it give out 3 Special Attack EVs, but you're always free to assign whatever you feel like :) + - Notice that the other `evYield` fields are not there. In C, numbers in a struct default to 0, so if we don't specify them, they'll be 0 all around! Less lines to worry about :D +- `itemCommon` and `itemRare` are used to determine what items is the Pokémon holding when encountering it in the wild. + - 50% for `itemCommon` and 5% for `itemRare` (boosted to 60%/20% when the first mon in the party has Compound Eyes or Super Luck) + - If they're both set as the same item, the item has a 100% chance of appearing. +- `genderRatio` is a fun one. + - There are 4 ways of handling this + - `PERCENT_FEMALE` is what most Pokémon use, where you define how likely it's gonna be female. It supports decimals, so you can put `PERCENT_FEMALE(12.5)` to have a 1 in 8 chance of your mon to be female. + - `MON_MALE` guarantees that all mon of this species will be male (eg. Tauros) + - `MON_FEMALE` guarantees that all mon of this species will be female (eg. Miltank) + - `MON_GENDERLESS` makes your species genderless, unable to breed with anything but Ditto to produce eggs. Most Legendaries are this, so we'll be chosing this as Mewthree's gender ratio. + - When working with evolution lines and don't want their genders to change after evolving, be sure that their gender ratios match their stages and evolution methods. Azurill is the only case where there's a mismatch, causing 1/3 of all Azurill to change from Female to Male. + - You might be wondering why some species have multiple defines for their genders, like `SPECIES_MEOWSTIC_(FE)MALE`. This is because those species have different stats and data from each other, so they're defined internally as different forms with `MON_MALE` and `MON_FEMALE` as gender ratios. If your species evolves depending on its gender and the evolutions have different stats, be sure to apply the correct evolution method! +- `eggCycles` determines how fast an egg of this species will hatch. Doesn't matter much for evolved species or those that can't lay eggs, but we add the field here just in case. +- `friendship` determines the amount of friendship of the mon when you catch it. Most Pokémon use `STANDARD_FRIENDSHIP`, but this creature of chaos does not want to be your friend, starting with 0. +- `growthRate` determines the amounts of experience required to reach each level. Go [here](https://bulbapedia.bulbagarden.net/wiki/Experience) for more info. + - This should be consistent across evolution lines, otherwise levels could change upon evolution. +- `eggGroups` are used for breed compatibility. Most Legendaries and Mythicals have the `EGG_GROUP_NO_EGGS_DISCOVERED` group, and so does our Mewthree. Go [here](https://bulbapedia.bulbagarden.net/wiki/Egg_Group) for more info. + - This is using the helper macro `MON_EGG_GROUPS`. +- `abilities` determines the potential abilites of our species. Notice how I also set the ability to `ABILITY_INSOMNIA`, so our little monster doesn't even need to sleep anymore. You can find the abilities for example here [include/constants/abilities.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/abilities.h). + - When both slot 1 and 2 are defined as not being `ABILITY_NONE`, their starting ability will be decided on a coin flip using their personality. They can later be changed using an Ability Capsule. + - Certain Pokémon such as Zygarde and Rockruff have different forms to add additional abilities. As such, they cannot be changed using an Ability Capsule (though the Zygarde Cube can change Zygarde's ability by changing them to their corresponding form) + - The 3rd slot is for Hidden Abilities. If defined as `ABILITY_NONE`, it will default to Slot 1 (eg. Metapod doesn't have a Hidden Ability, but Caterpie and Butterfree do). Go [here](https://bulbapedia.bulbagarden.net/wiki/Ability#Hidden_Abilities) and [here](https://bulbapedia.bulbagarden.net/wiki/Ability_Patch) for more info. + - If the array is defined as `{ABILITY_1, ABILITY_2}`, the Hidden Ability is set as `ABILITY_NONE`. +- `bodyColor` is used in the Pokédex as a search filter. +- `noFlip` is used in to prevent front sprites from being flipped horizontally and cause weird issues, like Clawitzer's big claw changing sides. + +That's all the basic fields present in vanilla emerald, so now let's take a look at the new fields added by the expansion. + +## 4. Species Name + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .bodyColor = BODY_COLOR_PURPLE, ++ .speciesName = _("Mewthree"), + }, + }; +``` +The `_()` underscore function doesn't really exist - it's a convention borrowed from GNU gettext to let `preproc` know this is text to be converted to the custom encoding used by the Gen 3 Pokemon games. + +## 5. Define its cry + +Time for audio! +We first need to convert an existing audio file to the format supported by the expansion. + +Most formats are supported for conversion, but for simplicity's sake, we're gonna use an mp3 file. + +Now, let's copy the file to the `sound/direct_sound_samples/cries` folder. +Once that's done, let's run the following command: +``` +ffmpeg -i sound/direct_sound_samples/cries/mewthree.mp3 -c:a pcm_s8 -ac 1 -ar 13379 sound/direct_sound_samples/cries/mewthree.aif +``` +This will convert your audio file to .aif, which is what's read by the compiler. + +Let's add the cry to the ROM via [sound/direct_sound_data.inc](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/sound/direct_sound_data.inc). + +```diff +.if P_FAMILY_PECHARUNT == TRUE + .align 2 +Cry_Pecharunt:: + .incbin "sound/direct_sound_samples/cries/pecharunt.bin" +.endif @ P_FAMILY_PECHARUNT + ++ .align 2 ++Cry_Mewthree:: ++ .incbin "sound/direct_sound_samples/cries/mewthree.bin" + +``` + +Then we add the cry ID to [include/constants/cries.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/cries.h): + +```diff +enum { + CRY_NONE, + ... +#if P_FAMILY_TERAPAGOS + CRY_TERAPAGOS, +#endif //P_FAMILY_TERAPAGOS +#if P_FAMILY_PECHARUNT + CRY_PECHARUNT, +#endif //P_FAMILY_PECHARUNT ++ CRY_MEWTHREE, + CRY_COUNT, +}; +``` + +And then link it in [sound/cry_tables.inc](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/sound/cry_tables.inc). `cry_reverse` in particular is for reversed cries used by moves such as Growl. The order of these two tables should match the order of the cry IDs, otherwise they'll be shifted. + +```diff + cry Cry_Terapagos + cry Cry_Pecharunt ++ cry Cry_Mewthree +``` +```diff + cry_reverse Cry_Terapagos + cry_reverse Cry_Pecharunt ++ cry_reverse Cry_Mewthree +``` + +Lastly, we add the cry to our species entry +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .speciesName = _("Mewthree"), ++ .cryId = CRY_MEWTHREE, + }, + }; +``` + +And let's see how it sounds in-game: + +https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/4f7667db-4db9-4bfd-a8dd-ece26f09f327 + +Good! Our monster now has a mighty roar! + +You can now delete the mp3 from the cries folder now once you made sure that the cry sounds like how you want it to. + +## 6. Define its Pokédex entry + +First, we will need to add new index constants for its Pokédex entry. The index constants are divided into the Hoenn Pokédex, which contains all Pokémon native to the Hoenn region, and the National Pokédex containing all known Pokémon, which can be received after entering the hall of fame for the first time. + +Edit [include/constants/pokedex.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/constants/pokedex.h): + +```diff +// National Pokedex order +enum { + NATIONAL_DEX_NONE, + // Kanto + NATIONAL_DEX_BULBASAUR, +... + NATIONAL_DEX_PECHARUNT, ++ NATIONAL_DEX_MEWTHREE, +}; +``` + +```diff + #define KANTO_DEX_COUNT NATIONAL_DEX_MEW + #define JOHTO_DEX_COUNT NATIONAL_DEX_CELEBI + +#if P_GEN_9_POKEMON == TRUE +- #define NATIONAL_DEX_COUNT NATIONAL_DEX_PECHARUNT ++ #define NATIONAL_DEX_COUNT NATIONAL_DEX_MEWTHREE +``` + +Do keep in mind that if you intend to add your new species to the Hoenn Dex, you'll also want to add a `HOENN_DEX` constant for it and give it a `HOENN_TO_NATIONAL` member, like this: + +```diff +// Hoenn Pokedex order +enum { + HOENN_DEX_NONE, + HOENN_DEX_TREECKO, +... + HOENN_DEX_DEOXYS, ++ HOENN_DEX_MEWTHREE, +}; + +- #define HOENN_DEX_COUNT (HOENN_DEX_DEOXYS + 1) ++ #define HOENN_DEX_COUNT (HOENN_DEX_MEWTHREE + 1) +``` + +Edit [src/pokemon.c](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/pokemon.c): + +```diff + const u16 sHoennToNationalOrder[NUM_SPECIES] = // Assigns Hoenn Dex Pokémon (Using National Dex Index) + { + HOENN_TO_NATIONAL(TREECKO), + ... + HOENN_TO_NATIONAL(DEOXYS), ++ HOENN_TO_NATIONAL(MEWTHREE), + }; +``` + +Now we can add the number and entry to our Mewthree: +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .cryId = CRY_MEWTHREE, ++ .natDexNum = NATIONAL_DEX_MEWTHREE, ++ .categoryName = _("New Species"), ++ .height = 15, ++ .weight = 330, ++ .description = COMPOUND_STRING( ++ "The rumors became true.\n" ++ "This is Mew's final form.\n" ++ "Its power level is over 9000.\n" ++ "Has science gone too far?"), ++ .pokemonScale = 256, ++ .pokemonOffset = 0, ++ .trainerScale = 290, ++ .trainerOffset = 2, + }, + }; +``` +![image](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/3759dd4c-8da5-4b1c-9a50-b9e9d0815e7f) + +The values `pokemonScale`, `pokemonOffset`, `trainerScale` and `trainerOffset` are used for the height comparison figure in the Pokédex. + +`height` and `weight` are specified in decimeters and hectograms respectively (which are meters and kilograms multiplied by 10, so 2.5 meters are 25 decimeters). + +In Pokémon Emerald, you can sort the Pokédex by name, height or weight. Apparently, the Pokémon order is hardcoded in the game files and not calculated from their data. Therefore we have to include our new Pokémon species at the right places. While the correct position for the alphabetical order is easy to find, it can become quite tedious for height and weight, so we added comments to the listings in order help out were they should fit. + +Edit [src/data/pokemon/pokedex_orders.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/pokedex_orders.h): + +```diff + const u16 gPokedexOrder_Alphabetical[] = + { + ... + NATIONAL_DEX_MEW, ++ NATIONAL_DEX_MEWTHREE, + NATIONAL_DEX_MEWTWO, + ... + }; + + const u16 gPokedexOrder_Weight[] = + { + ... + // 72.8 lbs / 33.0 kg + //NATIONAL_DEX_MEWTWO_MEGA_Y, + NATIONAL_DEX_ESCAVALIER, + NATIONAL_DEX_FRILLISH, + NATIONAL_DEX_DURANT, + NATIONAL_DEX_CINDERACE, ++ NATIONAL_DEX_MEWTHREE, + //NATIONAL_DEX_PERSIAN_ALOLAN, + NATIONAL_DEX_TOEDSCOOL, + // 73.4 lbs / 33.3 kg + NATIONAL_DEX_DUGTRIO, + ... + }; + + const u16 gPokedexOrder_Height[] = + { + ... + // 4'11" / 1.5m + ... + NATIONAL_DEX_GLIMMORA, + NATIONAL_DEX_WO_CHIEN, + NATIONAL_DEX_IRON_LEAVES, + NATIONAL_DEX_IRON_BOULDER, ++ NATIONAL_DEX_MEWTHREE, + // 5'03" / 1.6m + ... + }; +``` +![mGBA_lUBfmFEKUx](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/3a8b8a17-759b-486b-9831-deb2f494bd71) + + +# The Graphics +We will start by copying the following files for *Mew* (not Mewtwo) and rename it to `mewthree`. +```sh +cp -r graphics/pokemon/mew/. graphics/pokemon/mewthree +``` +We aren't copying Mewtwo's folder because he has those pesky Mega Evolutions that will get in the way of what we're doing, so our sample will need to be pure from the source. + +## 1. Edit the sprites +Let's edit the sprites. Start your favourite image editor (I recommend Aseprite or its free alternative, Libresprite) and change `anim_front.png` and `back.png` to meet your expectations. + +__Make sure that you are using the indexed mode and you have limited yourself to 15 colors!__ + +Put the RGB values of your colors into `normal.pal` between the first and the last color and the RGB values for the shiny version into `shiny.pal`. +Edit `footprint.png` using two colors in indexed mode, black and white. +Finally, edit `icon.png`. +**Note**: the icon will use one of 6 predefined palettes instead of `normal.pal`. +Open an icon sprite and load one of the palettes to find out which palette suits your icon sprite best. + +## 2. Add the sprites to the rom +Sadly, just putting the image files into the graphics folder is not enough. To use the sprites we have to register them, which is kind of tedious. +First, create constants for the file paths. You'll want to add the constants for your species after the constants for the last valid species. + +Edit [src/data/graphics/pokemon.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/graphics/pokemon.h): + +```diff +#if P_FAMILY_PECHARUNT + const u32 gMonFrontPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/front.4bpp.lz"); + const u32 gMonPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/normal.gbapal.lz"); + const u32 gMonBackPic_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/back.4bpp.lz"); + const u32 gMonShinyPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/shiny.gbapal.lz"); + const u8 gMonIcon_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/icon.4bpp"); +#if P_FOOTPRINTS + const u8 gMonFootprint_Pecharunt[] = INCBIN_U8("graphics/pokemon/pecharunt/footprint.1bpp"); +#endif //P_FOOTPRINTS +#if OW_POKEMON_OBJECT_EVENTS + const u32 gObjectEventPic_Pecharunt[] = INCBIN_COMP("graphics/pokemon/pecharunt/overworld.4bpp"); +#if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE + const u32 gOverworldPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_Pecharunt[] = INCBIN_U32("graphics/pokemon/pecharunt/overworld_shiny.gbapal.lz"); +#endif //OW_PKMN_OBJECTS_SHARE_PALETTES +#endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_FAMILY_PECHARUNT + + const u32 gMonFrontPic_Egg[] = INCBIN_U32("graphics/pokemon/egg/anim_front.4bpp.lz"); + const u32 gMonPalette_Egg[] = INCBIN_U32("graphics/pokemon/egg/normal.gbapal.lz"); + const u8 gMonIcon_Egg[] = INCBIN_U8("graphics/pokemon/egg/icon.4bpp"); + ++ const u32 gMonFrontPic_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/anim_front.4bpp.lz"); ++ const u32 gMonBackPic_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/back.4bpp.lz"); ++ const u32 gMonPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/normal.gbapal.lz"); ++ const u32 gMonShinyPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/shiny.gbapal.lz"); ++ const u8 gMonIcon_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/icon.4bpp"); ++ const u8 gMonFootprint_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/footprint.1bpp"); +``` + +Please note that Pecharunt, the Pokémon that should be above your insertion for the time being, reads a `front.png` sprite instead of an `anim_front.png` sprite. This is because currently, Pecharunt lacks a 2nd frame. If the front sprite sheet of your species uses 2 frames, you should use `anim_front`. + +## 3. Add the animations to the rom + +You can define the animation order, in which the sprites will be shown. The first number is the sprite index (so 0 or 1) and the second number is the number of frames the sprite will be visible. + +Edit [src/data/pokemon_graphics/front_pic_anims.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon_graphics/front_pic_anims.h): + +```diff +#if P_FAMILY_PECHARUNT +PLACEHOLDER_ANIM_SINGLE_FRAME(Pecharunt); +#endif //P_FAMILY_PECHARUNT + ++static const union AnimCmd sAnim_Mewthree_1[] = ++{ ++ ANIMCMD_FRAME(1, 30), ++ ANIMCMD_FRAME(0, 20), ++ ANIMCMD_END, ++}; +``` + +```diff +#if P_FAMILY_PECHARUNT +SINGLE_ANIMATION(Pecharunt); +#endif //P_FAMILY_PECHARUNT ++SINGLE_ANIMATION(Mewthree); +SINGLE_ANIMATION(Egg); +``` + +You might be wondering what `PLACEHOLDER_ANIM_SINGLE_FRAME` is. Well, since Pecharun only has 1 frame, we use what's called a preprocessor *macro* to have in a single line what otherwise would've been this in the C file: +```c +static const union AnimCmd sAnim_Pecharunt_1[] = +{ + ANIMCMD_FRAME(0, 1), + ANIMCMD_END, +} +``` +Instead, we can use the already established macro that does the same thing, replacing the value in parenthesis with what we want (in this case, `Pecharunt`): +```c +#define PLACEHOLDER_ANIM_SINGLE_FRAME(name) \ +static const union AnimCmd sAnim_##name##_1[] = \ +{ \ + ANIMCMD_FRAME(0, 1), \ + ANIMCMD_END, \ +} +``` + +## 4. Linking graphic information to our Pokémon +Now that we have all the external data ready, we just need to add it to `gSpeciesInfo` plus the rest of the animation and graphical data that we want to use: + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .pokemonScale = 256, + .pokemonOffset = 0, + .trainerScale = 290, + .trainerOffset = 2, ++ .frontPic = gMonFrontPic_Mewthree, ++ .frontPicSize = MON_COORDS_SIZE(64, 64), ++ .frontPicYOffset = 0, ++ .frontAnimFrames = sAnims_Mewthree, ++ .frontAnimId = ANIM_GROW_VIBRATE, ++ .frontAnimDelay = 15, ++ .enemyMonElevation = 6, ++ .backPic = gMonBackPic_Mewthree, ++ .backPicSize = MON_COORDS_SIZE(64, 64), ++ .backPicYOffset = 0, ++ .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, ++ .palette = gMonPalette_Mewthree, ++ .shinyPalette = gMonShinyPalette_Mewthree, + .iconSprite = gMonIcon_Mewthree, + .iconPalIndex = 2, ++ FOOTPRINT(Mewthree) + }, + }; +``` +Let's explain each of these: +- `frontPic`: + - Used to reference the front sprite, so in this case, we call for `gMonFrontPic_Mewthree`. +- `frontPicSize`: + - The two values (`width` and `height`) are used for defining the non-empty size of the front sprite, which is used in move animations. If you're unsure of the values, you can leave them both as 64. +- `frontPicYOffset`: + - Used to define what Y position the sprite sits at. This is used to set where they'd be "grounded". For the shadow, see `enemyMonElevation`. +- `frontAnimFrames`: + - We link our animation frame animations that we defined earlier here. +- `frontAnimId`: + - Because you are limited to two frames, there are already [predefined front sprite animations](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/pokemon_animation.h), describing translations, rotations, scalings or color changes. +- `frontAnimDelay`: + - Sets a delay in frame count between when the Pokémon appears and when the animation starts. +- `enemyMonElevation`: + - Used to determine the altitude from the ground. Any value above 0 will show a shadow under the Pokémon, to signify that they're floating. +- `backPic`: + - Used to reference the back sprite, so in this case, we call for `gMonBackPic_Mewthree`. +- `backPicSize`: + - The two values (`width` and `height`) are used for defining the non-empty size of the back sprite, which is used in move animations. If you're unsure of the values, you can leave them both as 64. + - **NOTE**: Mew has a tarnary switch here in order to change values depending on if a config option is set for displaying th original Gen 3 sprites. +- `backPicYOffset`: + - Used to define what Y position of the back sprite. When working with the animation debug menu, we recommend aligning the back sprite to the white background, as it was designed to properyly align with the real battle layout. +- `backAnimId`: + - Like `frontAnimId` except for the back sprites and them being a single frame. The IDs listed [here](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/include/pokemon_animation.h) are used to represent 3 different animations that happen based on the the Pokémon's nature. +- `palette`: + - Used to reference the non-shiny palette, so in this case, we call for `gMonPalette_Mewthree`. +- `shinyPalette`: + - Used to reference the shiny palette, so in this case, we call for `gMonShinyPalette_Mewthree`. +- `iconSprite`: + - Used to reference the icon sprite, so in this case, we call for `gMonIcon_Mewthree`. +- `iconPalIndex`: + - Here, you can choose between the six icon palettes; 0, 1, 2, 3, 4 and 5. All of them located in `graphics/pokemon/icon_palettes`. +- `FOOTPRINT` + - We made this single field into a macro so that they can be ignored when `P_FOOTPRINTS` is set to false. It's also why we don't have an "," after calling it like the other macros (we add it as part of the macro itself). + ```c + #if P_FOOTPRINTS + #define FOOTPRINT(sprite) .footprint = gMonFootprint_## sprite, + #else + #define FOOTPRINT(sprite) + #endif + ``` + +# The Data - Part 2 + +We're almost there just a bit left! + +## 1. Species Flags + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .abilities = { ABILITY_INSOMNIA, ABILITY_NONE, ABILITY_NONE }, + .bodyColor = BODY_COLOR_PURPLE, ++ .isLegendary = TRUE, ++ .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, + }, + }; +``` +Each species flag provides properties to the species: +- `isLegendary`: + - Does nothing. +- `isMythical`: + - Is skipped during Pokédex evaluations. + - Unless it also has the `dexForceRequired` flag. + - Cannot obtain Gigantamax factor via `ToggleGigantamaxFactor`. +- `isUltraBeast`: + - Beast Ball's multiplier is set to x5 for this species. + - All other ball multipliers are set to x0.1. +- `isParadox` (previously `isParadoxForm`): + - Makes it so that Booster Energy cannot be knocked off. +- `isTotem`: + - Does nothing. +- `isMegaEvolution`: + - A Mega indicator is added to the battle box indicating that they're Mega Evolved. + - The species doesn't receive affection benefits. + - Required when adding new Mega Evolutions. +- `isPrimalReversion`: + - A Primal Reversion indicator (Alpha or Omega for Kyogre/Groudon respectively) is added to the battle box indicating that they're Primal Reverted. + - Required when adding new Primal Reversions. +- `isUltraBurst`: + - Required when adding new Ultra Burst forms. +- `isGigantamax`: + - Used to determine if Gigantamax forms should have their GMax moves or not. + - Required when adding new Gigantamax forms. +- `isAlolanForm`, `isGalarianForm`, `isHisuianForm`, `isPaldeanForm`: + - In the future, these will be used to determine breeding offspring from different based on their region. +- `cannotBeTraded`: + - This species cannot be traded away (like Black/White Kyurem). +- `perfectIVCount`: + - Guarantees that the number of IVs specified here will be perfect. +- `tmIlliterate`: + - This species will be unable to learn the universal moves. +- `isFrontierBanned`: + - This species will be unable to enter Battle Frontier facilities. Replaces `gFrontierBannedSpecies`. + +## 2. Delimit the moveset + +Let's begin with the moves that can be learned by leveling up. + +Append to [src/data/pokemon/level_up_learnsets/gen_9.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/level_up_learnsets/gen_9.h): +**NOTE**: You can ignore the warning at the top of the file if you're just adding moves to Pokemon. + +```diff +#if P_FAMILY_PECHARUNT +static const struct LevelUpMove sPecharuntLevelUpLearnset[] = { + LEVEL_UP_MOVE( 1, MOVE_SMOG), + LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), + LEVEL_UP_MOVE( 1, MOVE_MEMENTO), + LEVEL_UP_MOVE( 1, MOVE_ASTONISH), + LEVEL_UP_MOVE( 8, MOVE_WITHDRAW), + LEVEL_UP_MOVE(16, MOVE_DESTINY_BOND), + LEVEL_UP_MOVE(24, MOVE_FAKE_TEARS), + LEVEL_UP_MOVE(32, MOVE_PARTING_SHOT), + LEVEL_UP_MOVE(40, MOVE_SHADOW_BALL), + LEVEL_UP_MOVE(48, MOVE_MALIGNANT_CHAIN), + LEVEL_UP_MOVE(56, MOVE_TOXIC), + LEVEL_UP_MOVE(64, MOVE_NASTY_PLOT), + LEVEL_UP_MOVE(72, MOVE_RECOVER), + LEVEL_UP_END +}; +#endif + ++static const struct LevelUpMove sMewthreeLevelUpLearnset[] = { ++ LEVEL_UP_MOVE( 1, MOVE_CONFUSION), ++ LEVEL_UP_MOVE( 1, MOVE_DISABLE), ++ LEVEL_UP_MOVE(11, MOVE_BARRIER), ++ LEVEL_UP_MOVE(22, MOVE_SWIFT), ++ LEVEL_UP_MOVE(33, MOVE_PSYCH_UP), ++ LEVEL_UP_MOVE(44, MOVE_FUTURE_SIGHT), ++ LEVEL_UP_MOVE(55, MOVE_MIST), ++ LEVEL_UP_MOVE(66, MOVE_PSYCHIC), ++ LEVEL_UP_MOVE(77, MOVE_AMNESIA), ++ LEVEL_UP_MOVE(88, MOVE_RECOVER), ++ LEVEL_UP_MOVE(99, MOVE_SAFEGUARD), ++ LEVEL_UP_END ++}; +``` +**NOTE**: If `P_LVL_UP_LEARNSETS` is not set to something equal to `GEN_9`, the file to be edited will change to what's specified. + +Again, we need to register the learnset in `gSpeciesInfo`: + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + .palette = gMonPalette_Mewthree, + .shinyPalette = gMonShinyPalette_Mewthree, + .iconSprite = gMonIcon_Mewthree, + .iconPalIndex = 2, ++ .levelUpLearnset = sMewthreeLevelUpLearnset, + }, + }; +``` + +Next we need to specify which moves can be taught via TM, HM, or Move Tutor. + +Append to [src/data/pokemon/teachable_learnsets.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/teachable_learnsets.h): + +```diff +#if P_FAMILY_PECHARUNT +static const u16 sPecharuntTeachableLearnset[] = { + ... + MOVE_UNAVAILABLE, +}; +#endif //P_FAMILY_PECHARUNT + ++static const u16 sMewthreeTeachableLearnset[] = { ++ MOVE_FOCUS_PUNCH, ++ MOVE_WATER_PULSE, ++ MOVE_CALM_MIND, ++ MOVE_TOXIC, ++ MOVE_HAIL, ++ MOVE_BULK_UP, ++ MOVE_HIDDEN_POWER, ++ MOVE_SUNNY_DAY, ++ MOVE_TAUNT, ++ MOVE_ICE_BEAM, ++ MOVE_BLIZZARD, ++ MOVE_HYPER_BEAM, ++ MOVE_LIGHT_SCREEN, ++ MOVE_PROTECT, ++ MOVE_RAIN_DANCE, ++ MOVE_SAFEGUARD, ++ MOVE_FRUSTRATION, ++ MOVE_SOLAR_BEAM, ++ MOVE_IRON_TAIL, ++ MOVE_THUNDERBOLT, ++ MOVE_THUNDER, ++ MOVE_EARTHQUAKE, ++ MOVE_RETURN, ++ MOVE_PSYCHIC, ++ MOVE_SHADOW_BALL, ++ MOVE_BRICK_BREAK, ++ MOVE_DOUBLE_TEAM, ++ MOVE_REFLECT, ++ MOVE_SHOCK_WAVE, ++ MOVE_FLAMETHROWER, ++ MOVE_SANDSTORM, ++ MOVE_FIRE_BLAST, ++ MOVE_ROCK_TOMB, ++ MOVE_AERIAL_ACE, ++ MOVE_TORMENT, ++ MOVE_FACADE, ++ MOVE_SECRET_POWER, ++ MOVE_REST, ++ MOVE_SKILL_SWAP, ++ MOVE_SNATCH, ++ MOVE_STRENGTH, ++ MOVE_FLASH, ++ MOVE_ROCK_SMASH, ++ MOVE_MEGA_PUNCH, ++ MOVE_MEGA_KICK, ++ MOVE_BODY_SLAM, ++ MOVE_DOUBLE_EDGE, ++ MOVE_COUNTER, ++ MOVE_SEISMIC_TOSS, ++ MOVE_MIMIC, ++ MOVE_METRONOME, ++ MOVE_DREAM_EATER, ++ MOVE_THUNDER_WAVE, ++ MOVE_SUBSTITUTE, ++ MOVE_DYNAMIC_PUNCH, ++ MOVE_PSYCH_UP, ++ MOVE_SNORE, ++ MOVE_ICY_WIND, ++ MOVE_ENDURE, ++ MOVE_MUD_SLAP, ++ MOVE_ICE_PUNCH, ++ MOVE_SWAGGER, ++ MOVE_SLEEP_TALK, ++ MOVE_SWIFT, ++ MOVE_THUNDER_PUNCH, ++ MOVE_FIRE_PUNCH, ++ MOVE_UNAVAILABLE, // This is required to determine where the array ends. ++}; +#endif +``` + +Once more, we need to register the learnset in `gSpeciesInfo`: + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + FOOTPRINT(Mewthree) + .levelUpLearnset = sMewthreeLevelUpLearnset, ++ .teachableLearnset = sMewthreeTeachableLearnset, + }, + }; +``` + +If you want to create a Pokémon which can breed, you will need to edit [src/data/pokemon/egg_moves.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/pokemon/egg_moves.h). + + +## 3. Define the Evolutions + +We want Mewthree to evolve from Mewtwo by reaching level 100. + +Edit `gSpeciesInfo`: + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTWO] = + { + ... + FOOTPRINT(Mewtwo) + .isLegendary = TRUE, + .levelUpLearnset = sMewtwoLevelUpLearnset, + .teachableLearnset = sMewtwoTeachableLearnset, + .formSpeciesIdTable = sMewtwoFormSpeciesIdTable, + .formChangeTable = sMewtwoFormChangeTable, ++ .evolutions = EVOLUTION({EVO_LEVEL, 100, SPECIES_MEWTHREE}), + }, + }; +``` + +## 4. Make it appear! +Now Mewthree really does slumber in the games code - but we won't know until we make him appear somewhere! The legend tells that Mewthree is hiding somewhere in Petalburg Woods... + +Edit [src/data/wild_encounters.json](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/wild_encounters.json): + +```diff + { + "map": "MAP_PETALBURG_WOODS", + "base_label": "gPetalburgWoods", + "land_mons": { + "encounter_rate": 20, + "mons": [ + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_POOCHYENA" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_WURMPLE" + }, + { + "min_level": 5, + "max_level": 5, + "species": "SPECIES_SHROOMISH" + }, + { +- "min_level": 6, +- "max_level": 6, +- "species": "SPECIES_POOCHYENA" ++ "min_level": 5, ++ "max_level": 5, ++ "species": "SPECIES_MEWTHREE" + }, + ... + } +``` + +Congratulations, you have created your own personal pocket monster! You may call yourself a mad scientist now. + +# Optional data + +Now that you now have all the essential pieces to create a base species, there are some aspects that you might want to know if you want to do other stuff with your custom Pokémon. + +## 1. Form tables +Found in `src/data/pokemon/form_species_tables.h`. + +These are introduced to have a reference of what forms correspond to what Species of Pokémon. For example, we have Pikachu's table: +```c +#if P_FAMILY_PIKACHU +static const u16 sPikachuFormSpeciesIdTable[] = { + SPECIES_PIKACHU, + SPECIES_PIKACHU_COSPLAY, + SPECIES_PIKACHU_ROCK_STAR, + SPECIES_PIKACHU_BELLE, + SPECIES_PIKACHU_POP_STAR, + SPECIES_PIKACHU_PH_D, + SPECIES_PIKACHU_LIBRE, + SPECIES_PIKACHU_ORIGINAL_CAP, + SPECIES_PIKACHU_HOENN_CAP, + SPECIES_PIKACHU_SINNOH_CAP, + SPECIES_PIKACHU_UNOVA_CAP, + SPECIES_PIKACHU_KALOS_CAP, + SPECIES_PIKACHU_ALOLA_CAP, + SPECIES_PIKACHU_PARTNER_CAP, + SPECIES_PIKACHU_WORLD_CAP, + FORM_SPECIES_END, +}; +#endif //P_FAMILY_PIKACHU +``` +We register the table each form entry in `gSpeciesInfo`. + +```diff + [SPECIES_PIKACHU] = + { + ... + .teachableLearnset = sPikachuTeachableLearnset, ++ .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + .evolutions = EVOLUTION({EVO_ITEM, ITEM_THUNDER_STONE, SPECIES_RAICHU}, + {EVO_NONE, 0, SPECIES_RAICHU_ALOLAN}), + }, + + [SPECIES_PIKACHU_COSPLAY] = + { + ... + .teachableLearnset = sPikachuTeachableLearnset, ++ .formSpeciesIdTable = sPikachuFormSpeciesIdTable, + }, +``` +...and so on. + +What this allows us to do is to be able to get all forms of a Pokémon in our code by using the `GetSpeciesFormTable` function. + +For example, in the HGSS dex, it lets us browse between the entries of every form available.: + +![image](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/a1a90b79-46a1-4cd6-97d6-ec5d741bfdc8) ![image](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/7cffc6be-0b5c-4074-b689-736a97297843) + +In addition, we have the `GET_BASE_SPECIES_ID` macro, which returns the first entry of the table (or return the species itself if it doesn't have a table registered). With this, you can check if a Pokémon is any form of a species. For example, making it so that the Light Ball affects all Pikachu forms: +```c + case HOLD_EFFECT_LIGHT_BALL: + if (GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species) == SPECIES_PIKACHU && IS_MOVE_SPECIAL(move)) + modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(2.0)); + break; +``` + +## 2. Form change tables +Found in `src/data/pokemon/form_species_tables.h`. + +These tables, unlike the regular form tables, registers how Pokémon can switch between forms. + +```c +#if P_FAMILY_GASTLY +static const struct FormChange sGengarFormChangeTable[] = { + {FORM_CHANGE_BATTLE_MEGA_EVOLUTION_ITEM, SPECIES_GENGAR_MEGA, ITEM_GENGARITE}, + {FORM_CHANGE_BATTLE_GIGANTAMAX, SPECIES_GENGAR_GIGANTAMAX}, + {FORM_CHANGE_TERMINATOR}, +}; +#endif //P_FAMILY_GASTLY +``` +The first value is the type of form change. In the case of Gengar, we have both Mega Evolution and Gigantamax form changes. + +The second value is the target form, to which the Pokémon will change into. + +Values after that are referred as arguments, and needs to be put there depends on the type of form change, detailed in `include/constants/form_change_types.h`. + +## 3. Gender differences +![mGBA_Wq5cbDkNZG](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/45256192-b451-4baa-af06-f57ca16e1e46) + +You may have seen that there's a couple of duplicate fields with a "Female" suffix. +```diff + [SPECIES_FRILLISH] = + { + ... + .frontPic = gMonFrontPic_Frillish, ++ .frontPicFemale = gMonFrontPic_FrillishF, + .frontPicSize = MON_COORDS_SIZE(56, 56), ++ .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .frontPicYOffset = 5, + .frontAnimFrames = sAnims_Frillish, + .frontAnimId = ANIM_RISING_WOBBLE, + .backPic = gMonBackPic_Frillish, ++ .backPicFemale = gMonBackPic_FrillishF, + .backPicSize = MON_COORDS_SIZE(40, 56), ++ .backPicSizeFemale = MON_COORDS_SIZE(40, 56), + .backPicYOffset = 7, + .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, + .palette = gMonPalette_Frillish, ++ .paletteFemale = gMonPalette_FrillishF, + .shinyPalette = gMonShinyPalette_Frillish, ++ .shinyPaletteFemale = gMonShinyPalette_FrillishF, + .iconSprite = gMonIcon_Frillish, ++ .iconSpriteFemale = gMonIcon_FrillishF, + .iconPalIndex = 0, ++ .iconPalIndexFemale = 1, + FOOTPRINT(Frillish) + .levelUpLearnset = sFrillishLevelUpLearnset, + .teachableLearnset = sFrillishTeachableLearnset, + .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_JELLICENT}), + }, +``` +These are used to change the graphics of the Pokémon if they're female. If they're not registered, they default to the male values. + +However, `iconPalIndexFemale` is a special case, where it's *doesn't* read the male icon palette if its `iconSpriteFemale` is set, so if you're setting a female icon, be sure to set their palette index as well. + +## 4. Overworld Data +![mGBA_4iqvhhSltK](https://github.com/rh-hideout/pokeemerald-expansion/assets/2904965/e59238dc-9779-4f26-a9e7-159a32caa3d9) + +If you have `OW_POKEMON_OBJECT_EVENTS` in your hack, you can add Overworld of your new species by following these steps: + +First, since you copied the contents from Mew's folder previously, you should also have copied its overworld sprites. Edit those to your liking, as we have done before, making sure to update the palettes + +Secondly, in [src/data/graphics/pokemon.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/graphics/pokemon.h), add the following: + +```diff + const u8 gMonIcon_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/icon.4bpp"); + const u8 gMonFootprint_Mewthree[] = INCBIN_U8("graphics/pokemon/mewthree/footprint.1bpp"); ++ const u32 gObjectEventPic_Mewthree[] = INCBIN_COMP("graphics/pokemon/mewthree/overworld.4bpp"); ++ const u32 gOverworldPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/overworld_normal.gbapal.lz"); ++ const u32 gShinyOverworldPalette_Mewthree[] = INCBIN_U32("graphics/pokemon/mewthree/overworld_shiny.gbapal.lz"); +``` + +Thirdly, in [spritesheet_rules.mk](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/spritesheet_rules.mk) + +```diff +$(POKEMONGFXDIR)/mewtwo/overworld.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 + ++$(POKEMONGFXDIR)/mewthree/overworld.4bpp: %.4bpp: %.png ++ $(GFX) $< $@ -mwidth 4 -mheight 4 + +$(POKEMONGFXDIR)/mew/overworld.4bpp: %.4bpp: %.png + $(GFX) $< $@ -mwidth 4 -mheight 4 +``` + +Fourthly, in [src/data/object_events/object_event_pic_tables_followers.h](https://github.com/rh-hideout/pokeemerald-expansion/blob/master/src/data/object_events/object_event_pic_tables_followers.h): +```diff +#if P_FAMILY_PECHARUNT +/*static const struct SpriteFrameImage sPicTable_Pecharunt[] = { + overworld_ascending_frames(gObjectEventPic_Pecharunt, 4, 4), +};*/ +#endif //P_FAMILY_PECHARUNT + ++static const struct SpriteFrameImage sPicTable_Mewthree[] = { ++ overworld_ascending_frames(gObjectEventPic_Mewthree, 4, 4), ++}; +``` + +And finally, in `gSpeciesInfo`: + +```diff + const struct SpeciesInfo gSpeciesInfo[] = + { + ... + [SPECIES_MEWTHREE] = + { + ... + FOOTPRINT(Mewthree) ++ OVERWORLD( ++ sPicTable_Mewthree, ++ SIZE_32x32, ++ SHADOW_SIZE_M, ++ TRACKS_FOOT, ++ gOverworldPalette_Mewthree, ++ gShinyOverworldPalette_Mewthree ++ ) + .levelUpLearnset = sMewthreeLevelUpLearnset, + .teachableLearnset = sMewthreeTeachableLearnset, + }, + }; +``` + +### Sprite Size +Depending on your species, you might want to use different sizes for it. For example, certain species known for being big like Steelix use sprites that fit a 64x64 frame instead of 32x32, and as such have `SIZE_64x64` in their data instead of `SIZE_32x32` to accomodate for them. + +Also, in `spritesheet_rules.mk`, `-mwidth` and `-mheight` need to be set to 8 instead of 4 for such cases. + +### Shadows +Gen 4 style shadows are defined by the `SHADOW` macro which takes the following arguments: + - X offset + - Y offset + - Shadow size +You have 4 options for their shadow, between Small, Medium, Large and Extra Large: + - `SHADOW_SIZE_S` + - `SHADOW_SIZE_M` + - `SHADOW_SIZE_L` + - `SHADOW_SIZE_XL_BATTLE_ONLY` +To make the Pokémon have no shadow, use the `NO_SHADOW` macro instead of `SHADOW`. + +### Tracks +You have 4 options for the tracks that your species will leave behind on sand. + - `TRACKS_NONE` + - `TRACKS_FOOT` ![sand_footprints](https://github.com/user-attachments/assets/8b8c34d6-72e9-4b9d-839d-0a5cc1ae1a4c) + - `TRACKS_SLITHER` ![slither_tracks](https://github.com/user-attachments/assets/28219c05-61e0-48b3-9aeb-43f48e4ffdd4) + - `TRACKS_SPOT` ![spot_tracks](https://github.com/user-attachments/assets/f7a24887-c5ca-47f2-8825-01f3df61deca) + - `TRACKS_BUG` ![bug_tracks](https://github.com/user-attachments/assets/8cd1dea4-4123-4af8-a558-992874a6d589) + + ...though technically you can also use `TRACKS_BIKE_TIRE` if you wish to. + +![bike_tire_tracks](https://github.com/user-attachments/assets/ac81d211-85e5-443a-ac54-c2976f1f0b82) diff --git a/docs/tutorials/how_to_testing_system.md b/docs/tutorials/how_to_testing_system.md index 56719458ab..c573dfbbf7 100644 --- a/docs/tutorials/how_to_testing_system.md +++ b/docs/tutorials/how_to_testing_system.md @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Stun Spore inflicts paralysis") TURN { MOVE(player, MOVE_STUN_SPORE); } // 3. } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); // 4 + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); // 4 STATUS_ICON(opponent, paralysis: TRUE); // 4. } } @@ -86,7 +86,7 @@ SINGLE_BATTLE_TEST("Stun Spore does not affect Grass-types") TURN { MOVE(player, MOVE_STUN_SPORE); } // 3. } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); // 4. - MESSAGE("It doesn't affect Foe Oddish…"); // 5. + MESSAGE("It doesn't affect the opposing Oddish…"); // 5. } } ``` @@ -226,7 +226,7 @@ SINGLE_BATTLE_TEST("Paralysis has a 25% chance of skipping the turn") } WHEN { TURN { MOVE(player, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); } } ``` @@ -428,7 +428,7 @@ Spaces in pattern match newlines (\n, \l, and \p) in the message. Often used to check that a battler took its turn but it failed, e.g.: ``` MESSAGE("Wobbuffet used Dream Eater!"); - MESSAGE("Foe Wobbuffet wasn't affected!"); + MESSAGE("The opposing Wobbuffet wasn't affected!"); ``` ### `STATUS_ICON` @@ -452,7 +452,7 @@ Causes the test to fail if the `SCENE` command succeeds before the following com ``` // Our Wobbuffet does not Celebrate before the foe's. NOT MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ``` **NOTE**: If this condition fails, the viewable ROM freezes at the NOT command. **WARNING: `NOT` is an alias of `NONE_OF`, so it behaves surprisingly when applied to multiple commands wrapped in braces.** @@ -467,7 +467,7 @@ Causes the test to fail unless one of the `SCENE` commands succeeds. ``` ONE_OF { MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); } ``` @@ -482,9 +482,9 @@ Causes the test to fail if one of the `SCENE` commands succeeds before the comma // Our Wobbuffet does not move before the foe's. NONE_OF { MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); } - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ``` ### `PLAYER_PARTY` diff --git a/graphics/balls/strange.png b/graphics/balls/strange.png new file mode 100644 index 0000000000..a4d141bead Binary files /dev/null and b/graphics/balls/strange.png differ diff --git a/graphics/battle_anims/sprites/pinkvio_orb.png b/graphics/battle_anims/sprites/pinkvio_orb.png new file mode 100644 index 0000000000..d0d7c92754 Binary files /dev/null and b/graphics/battle_anims/sprites/pinkvio_orb.png differ diff --git a/graphics/fonts/latin_short_narrower.png b/graphics/fonts/latin_short_narrower.png new file mode 100644 index 0000000000..9c79ae474f Binary files /dev/null and b/graphics/fonts/latin_short_narrower.png differ diff --git a/graphics/fonts/latin_small_narrower.png b/graphics/fonts/latin_small_narrower.png index a183bed7cc..d03f1b8ad0 100644 Binary files a/graphics/fonts/latin_small_narrower.png and b/graphics/fonts/latin_small_narrower.png differ diff --git a/graphics/items/icon_palettes/strange_ball.pal b/graphics/items/icon_palettes/strange_ball.pal new file mode 100644 index 0000000000..9e32134d45 --- /dev/null +++ b/graphics/items/icon_palettes/strange_ball.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 180 180 +164 226 197 +238 242 230 +139 170 180 +8 113 115 +0 157 156 +106 222 172 +41 182 189 +90 206 172 +90 182 180 +8 0 0 +65 190 189 +115 194 189 +0 117 131 +0 129 131 +0 12 0 diff --git a/graphics/items/icons/strange_ball.png b/graphics/items/icons/strange_ball.png new file mode 100644 index 0000000000..a794d54abe Binary files /dev/null and b/graphics/items/icons/strange_ball.png differ diff --git a/graphics/pokemon/abra/anim_front_gba.png b/graphics/pokemon/abra/anim_front_gba.png new file mode 100644 index 0000000000..ee466f539a Binary files /dev/null and b/graphics/pokemon/abra/anim_front_gba.png differ diff --git a/graphics/pokemon/abra/back_gba.png b/graphics/pokemon/abra/back_gba.png new file mode 100644 index 0000000000..5035bde913 Binary files /dev/null and b/graphics/pokemon/abra/back_gba.png differ diff --git a/graphics/pokemon/abra/icon_gba.png b/graphics/pokemon/abra/icon_gba.png new file mode 100644 index 0000000000..cf7d3d2f70 Binary files /dev/null and b/graphics/pokemon/abra/icon_gba.png differ diff --git a/graphics/pokemon/abra/normal_gba.pal b/graphics/pokemon/abra/normal_gba.pal new file mode 100644 index 0000000000..b688ea0bc0 --- /dev/null +++ b/graphics/pokemon/abra/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 246 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 180 82 +172 131 41 +148 106 16 +98 49 0 +255 0 255 +255 0 255 +255 255 123 +255 238 41 +213 180 0 +139 98 0 +16 16 16 diff --git a/graphics/pokemon/abra/shiny_gba.pal b/graphics/pokemon/abra/shiny_gba.pal new file mode 100644 index 0000000000..4122603ff4 --- /dev/null +++ b/graphics/pokemon/abra/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 246 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +205 180 180 +172 148 148 +148 115 123 +106 49 123 +255 0 255 +255 0 255 +255 255 222 +255 255 115 +246 180 41 +164 82 0 +16 16 16 diff --git a/graphics/pokemon/absol/anim_front_gba.png b/graphics/pokemon/absol/anim_front_gba.png new file mode 100644 index 0000000000..5b459aef06 Binary files /dev/null and b/graphics/pokemon/absol/anim_front_gba.png differ diff --git a/graphics/pokemon/absol/back_gba.png b/graphics/pokemon/absol/back_gba.png new file mode 100644 index 0000000000..876ba48aa0 Binary files /dev/null and b/graphics/pokemon/absol/back_gba.png differ diff --git a/graphics/pokemon/absol/icon_gba.png b/graphics/pokemon/absol/icon_gba.png new file mode 100644 index 0000000000..3cc5e01b52 Binary files /dev/null and b/graphics/pokemon/absol/icon_gba.png differ diff --git a/graphics/pokemon/absol/normal_gba.pal b/graphics/pokemon/absol/normal_gba.pal new file mode 100644 index 0000000000..9900389176 --- /dev/null +++ b/graphics/pokemon/absol/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 156 180 +255 255 255 +222 222 238 +197 197 213 +148 148 172 +255 123 115 +205 41 32 +123 41 49 +172 172 205 +131 131 172 +90 90 131 +41 57 57 +148 164 164 +115 131 131 +82 98 98 +0 0 0 diff --git a/graphics/pokemon/absol/shiny_gba.pal b/graphics/pokemon/absol/shiny_gba.pal new file mode 100644 index 0000000000..4b86195a7c --- /dev/null +++ b/graphics/pokemon/absol/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 156 180 +255 255 255 +238 222 230 +222 189 213 +197 156 189 +49 180 255 +0 115 189 +123 41 49 +172 172 205 +131 131 172 +90 90 131 +41 57 57 +205 115 98 +172 82 65 +131 41 24 +0 0 0 diff --git a/graphics/pokemon/aerodactyl/anim_front_gba.png b/graphics/pokemon/aerodactyl/anim_front_gba.png new file mode 100644 index 0000000000..4b5ea3378a Binary files /dev/null and b/graphics/pokemon/aerodactyl/anim_front_gba.png differ diff --git a/graphics/pokemon/aerodactyl/back_gba.png b/graphics/pokemon/aerodactyl/back_gba.png new file mode 100644 index 0000000000..8dfa76f574 Binary files /dev/null and b/graphics/pokemon/aerodactyl/back_gba.png differ diff --git a/graphics/pokemon/aerodactyl/icon_gba.png b/graphics/pokemon/aerodactyl/icon_gba.png new file mode 100644 index 0000000000..f90e269b07 Binary files /dev/null and b/graphics/pokemon/aerodactyl/icon_gba.png differ diff --git a/graphics/pokemon/aerodactyl/normal_gba.pal b/graphics/pokemon/aerodactyl/normal_gba.pal new file mode 100644 index 0000000000..45116129cc --- /dev/null +++ b/graphics/pokemon/aerodactyl/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +255 0 255 +255 0 255 +197 139 205 +148 98 180 +115 65 148 +65 16 98 +222 98 98 +139 49 49 +16 16 16 +238 246 255 +205 213 222 +148 172 180 +49 82 90 +255 255 255 diff --git a/graphics/pokemon/aerodactyl/shiny_gba.pal b/graphics/pokemon/aerodactyl/shiny_gba.pal new file mode 100644 index 0000000000..1e2e3f8d70 --- /dev/null +++ b/graphics/pokemon/aerodactyl/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +255 0 255 +255 0 255 +98 148 255 +65 115 230 +16 65 180 +24 24 106 +222 98 98 +139 49 49 +16 16 16 +255 222 255 +238 180 230 +180 123 180 +123 57 131 +255 255 255 diff --git a/graphics/pokemon/aggron/anim_front_gba.png b/graphics/pokemon/aggron/anim_front_gba.png new file mode 100644 index 0000000000..43adabd582 Binary files /dev/null and b/graphics/pokemon/aggron/anim_front_gba.png differ diff --git a/graphics/pokemon/aggron/back_gba.png b/graphics/pokemon/aggron/back_gba.png new file mode 100644 index 0000000000..24ade1ff43 Binary files /dev/null and b/graphics/pokemon/aggron/back_gba.png differ diff --git a/graphics/pokemon/aggron/icon_gba.png b/graphics/pokemon/aggron/icon_gba.png new file mode 100644 index 0000000000..ed7ae52e4b Binary files /dev/null and b/graphics/pokemon/aggron/icon_gba.png differ diff --git a/graphics/pokemon/aggron/normal_gba.pal b/graphics/pokemon/aggron/normal_gba.pal new file mode 100644 index 0000000000..b5711fdada --- /dev/null +++ b/graphics/pokemon/aggron/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +74 74 65 +106 106 106 +139 139 139 +172 172 172 +57 57 65 +123 106 106 +156 139 139 +189 172 172 +222 205 205 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +106 189 255 +0 0 0 diff --git a/graphics/pokemon/aggron/shiny_gba.pal b/graphics/pokemon/aggron/shiny_gba.pal new file mode 100644 index 0000000000..eadb9aa81e --- /dev/null +++ b/graphics/pokemon/aggron/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +32 90 90 +65 123 115 +90 156 148 +148 197 205 +74 41 24 +123 123 90 +156 156 123 +189 189 156 +222 222 197 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +255 123 82 +0 0 0 diff --git a/graphics/pokemon/aipom/anim_front_gba.png b/graphics/pokemon/aipom/anim_front_gba.png new file mode 100644 index 0000000000..1643e37cf0 Binary files /dev/null and b/graphics/pokemon/aipom/anim_front_gba.png differ diff --git a/graphics/pokemon/aipom/back_gba.png b/graphics/pokemon/aipom/back_gba.png new file mode 100644 index 0000000000..7e9594b6f8 Binary files /dev/null and b/graphics/pokemon/aipom/back_gba.png differ diff --git a/graphics/pokemon/aipom/icon_gba.png b/graphics/pokemon/aipom/icon_gba.png new file mode 100644 index 0000000000..d5138f2030 Binary files /dev/null and b/graphics/pokemon/aipom/icon_gba.png differ diff --git a/graphics/pokemon/aipom/normal_gba.pal b/graphics/pokemon/aipom/normal_gba.pal new file mode 100644 index 0000000000..bc79b2a2a4 --- /dev/null +++ b/graphics/pokemon/aipom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 131 255 +180 98 230 +139 57 180 +82 32 106 +255 246 197 +255 238 164 +238 197 90 +197 156 82 +139 106 65 +255 0 255 +213 213 213 +123 123 123 +90 90 90 +0 0 0 diff --git a/graphics/pokemon/aipom/shiny_gba.pal b/graphics/pokemon/aipom/shiny_gba.pal new file mode 100644 index 0000000000..785e324ab9 --- /dev/null +++ b/graphics/pokemon/aipom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 131 164 +230 98 139 +189 57 106 +115 32 65 +255 238 230 +255 222 213 +238 189 180 +222 123 131 +189 82 90 +255 0 255 +213 213 213 +123 123 123 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/alakazam/anim_front_gba.png b/graphics/pokemon/alakazam/anim_front_gba.png new file mode 100644 index 0000000000..3891f3242e Binary files /dev/null and b/graphics/pokemon/alakazam/anim_front_gba.png differ diff --git a/graphics/pokemon/alakazam/back_gba.png b/graphics/pokemon/alakazam/back_gba.png new file mode 100644 index 0000000000..aad3363af2 Binary files /dev/null and b/graphics/pokemon/alakazam/back_gba.png differ diff --git a/graphics/pokemon/alakazam/icon_gba.png b/graphics/pokemon/alakazam/icon_gba.png new file mode 100644 index 0000000000..f15231469e Binary files /dev/null and b/graphics/pokemon/alakazam/icon_gba.png differ diff --git a/graphics/pokemon/alakazam/normal_gba.pal b/graphics/pokemon/alakazam/normal_gba.pal new file mode 100644 index 0000000000..0617af6a52 --- /dev/null +++ b/graphics/pokemon/alakazam/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +180 180 180 +90 90 90 +213 180 82 +172 131 41 +139 98 16 +98 49 0 +255 0 255 +255 0 255 +255 255 123 +255 238 41 +213 180 0 +139 98 0 +16 16 16 diff --git a/graphics/pokemon/alakazam/shiny_gba.pal b/graphics/pokemon/alakazam/shiny_gba.pal new file mode 100644 index 0000000000..083ce68978 --- /dev/null +++ b/graphics/pokemon/alakazam/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +180 180 180 +90 90 90 +230 123 189 +189 82 148 +131 41 106 +82 0 41 +255 0 255 +255 0 255 +255 205 74 +213 172 0 +172 115 0 +123 32 0 +16 16 16 diff --git a/graphics/pokemon/alcremie/gigantamax/back.png b/graphics/pokemon/alcremie/gmax/back.png similarity index 100% rename from graphics/pokemon/alcremie/gigantamax/back.png rename to graphics/pokemon/alcremie/gmax/back.png diff --git a/graphics/pokemon/alcremie/gigantamax/front.png b/graphics/pokemon/alcremie/gmax/front.png similarity index 100% rename from graphics/pokemon/alcremie/gigantamax/front.png rename to graphics/pokemon/alcremie/gmax/front.png diff --git a/graphics/pokemon/alcremie/gigantamax/icon.png b/graphics/pokemon/alcremie/gmax/icon.png similarity index 100% rename from graphics/pokemon/alcremie/gigantamax/icon.png rename to graphics/pokemon/alcremie/gmax/icon.png diff --git a/graphics/pokemon/alcremie/gigantamax/normal.pal b/graphics/pokemon/alcremie/gmax/normal.pal similarity index 100% rename from graphics/pokemon/alcremie/gigantamax/normal.pal rename to graphics/pokemon/alcremie/gmax/normal.pal diff --git a/graphics/pokemon/alcremie/gigantamax/shiny.pal b/graphics/pokemon/alcremie/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/alcremie/gigantamax/shiny.pal rename to graphics/pokemon/alcremie/gmax/shiny.pal diff --git a/graphics/pokemon/altaria/anim_front_gba.png b/graphics/pokemon/altaria/anim_front_gba.png new file mode 100644 index 0000000000..ff00eaa723 Binary files /dev/null and b/graphics/pokemon/altaria/anim_front_gba.png differ diff --git a/graphics/pokemon/altaria/back_gba.png b/graphics/pokemon/altaria/back_gba.png new file mode 100644 index 0000000000..b224676bee Binary files /dev/null and b/graphics/pokemon/altaria/back_gba.png differ diff --git a/graphics/pokemon/altaria/icon_gba.png b/graphics/pokemon/altaria/icon_gba.png new file mode 100644 index 0000000000..300dfec82c Binary files /dev/null and b/graphics/pokemon/altaria/icon_gba.png differ diff --git a/graphics/pokemon/altaria/normal_gba.pal b/graphics/pokemon/altaria/normal_gba.pal new file mode 100644 index 0000000000..d7af0b531e --- /dev/null +++ b/graphics/pokemon/altaria/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 139 +255 255 255 +131 131 148 +197 197 213 +255 164 131 +255 98 65 +131 32 8 +172 213 255 +115 180 238 +98 139 197 +65 106 156 +238 246 255 +222 222 238 +172 180 197 +41 57 90 +0 0 0 diff --git a/graphics/pokemon/altaria/shiny_gba.pal b/graphics/pokemon/altaria/shiny_gba.pal new file mode 100644 index 0000000000..0ebea146ae --- /dev/null +++ b/graphics/pokemon/altaria/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 205 139 +255 255 255 +131 131 148 +197 197 213 +255 164 131 +255 98 65 +131 32 8 +255 238 131 +255 205 98 +222 172 65 +156 106 0 +238 246 255 +222 222 238 +172 180 197 +123 74 0 +0 0 0 diff --git a/graphics/pokemon/ampharos/anim_front_gba.png b/graphics/pokemon/ampharos/anim_front_gba.png new file mode 100644 index 0000000000..cf05584119 Binary files /dev/null and b/graphics/pokemon/ampharos/anim_front_gba.png differ diff --git a/graphics/pokemon/ampharos/back_gba.png b/graphics/pokemon/ampharos/back_gba.png new file mode 100644 index 0000000000..2e7c2399e6 Binary files /dev/null and b/graphics/pokemon/ampharos/back_gba.png differ diff --git a/graphics/pokemon/ampharos/icon_gba.png b/graphics/pokemon/ampharos/icon_gba.png new file mode 100644 index 0000000000..d7a3f9e70a Binary files /dev/null and b/graphics/pokemon/ampharos/icon_gba.png differ diff --git a/graphics/pokemon/ampharos/normal_gba.pal b/graphics/pokemon/ampharos/normal_gba.pal new file mode 100644 index 0000000000..f7fdd3683d --- /dev/null +++ b/graphics/pokemon/ampharos/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 238 74 +255 197 16 +213 148 0 +148 74 0 +255 0 255 +230 230 230 +172 172 172 +98 106 106 +16 16 16 +255 98 0 +197 65 0 +139 32 0 +90 0 0 +255 0 255 diff --git a/graphics/pokemon/ampharos/shiny_gba.pal b/graphics/pokemon/ampharos/shiny_gba.pal new file mode 100644 index 0000000000..f29dc710fc --- /dev/null +++ b/graphics/pokemon/ampharos/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 180 213 +213 148 180 +189 115 156 +139 82 106 +255 0 255 +230 230 230 +172 172 172 +98 106 106 +16 16 16 +131 205 246 +65 106 205 +32 65 156 +49 74 139 +255 0 255 diff --git a/graphics/pokemon/anorith/anim_front_gba.png b/graphics/pokemon/anorith/anim_front_gba.png new file mode 100644 index 0000000000..17d439d83d Binary files /dev/null and b/graphics/pokemon/anorith/anim_front_gba.png differ diff --git a/graphics/pokemon/anorith/back_gba.png b/graphics/pokemon/anorith/back_gba.png new file mode 100644 index 0000000000..0f9c0efc01 Binary files /dev/null and b/graphics/pokemon/anorith/back_gba.png differ diff --git a/graphics/pokemon/anorith/icon_gba.png b/graphics/pokemon/anorith/icon_gba.png new file mode 100644 index 0000000000..936355d617 Binary files /dev/null and b/graphics/pokemon/anorith/icon_gba.png differ diff --git a/graphics/pokemon/anorith/normal_gba.pal b/graphics/pokemon/anorith/normal_gba.pal new file mode 100644 index 0000000000..01bb5c13f7 --- /dev/null +++ b/graphics/pokemon/anorith/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +172 205 172 +139 172 139 +115 139 115 +90 115 90 +246 238 197 +230 205 148 +197 164 98 +148 82 74 +255 123 82 +222 82 32 +222 222 222 +180 180 189 +106 106 123 +0 0 0 diff --git a/graphics/pokemon/anorith/shiny_gba.pal b/graphics/pokemon/anorith/shiny_gba.pal new file mode 100644 index 0000000000..dc1fe03744 --- /dev/null +++ b/graphics/pokemon/anorith/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 172 +230 180 139 +197 148 106 +164 115 74 +246 238 197 +230 205 148 +197 164 98 +131 90 32 +255 82 74 +222 82 32 +222 222 222 +180 180 189 +106 106 123 +41 41 57 diff --git a/graphics/pokemon/appletun/gigantamax/back.png b/graphics/pokemon/appletun/gmax/back.png similarity index 100% rename from graphics/pokemon/appletun/gigantamax/back.png rename to graphics/pokemon/appletun/gmax/back.png diff --git a/graphics/pokemon/appletun/gigantamax/front.png b/graphics/pokemon/appletun/gmax/front.png similarity index 100% rename from graphics/pokemon/appletun/gigantamax/front.png rename to graphics/pokemon/appletun/gmax/front.png diff --git a/graphics/pokemon/appletun/gigantamax/icon.png b/graphics/pokemon/appletun/gmax/icon.png similarity index 100% rename from graphics/pokemon/appletun/gigantamax/icon.png rename to graphics/pokemon/appletun/gmax/icon.png diff --git a/graphics/pokemon/appletun/gigantamax/normal.pal b/graphics/pokemon/appletun/gmax/normal.pal similarity index 100% rename from graphics/pokemon/appletun/gigantamax/normal.pal rename to graphics/pokemon/appletun/gmax/normal.pal diff --git a/graphics/pokemon/appletun/gigantamax/shiny.pal b/graphics/pokemon/appletun/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/appletun/gigantamax/shiny.pal rename to graphics/pokemon/appletun/gmax/shiny.pal diff --git a/graphics/pokemon/araquanid/icon.png b/graphics/pokemon/araquanid/icon.png index fa13eba833..10676126a1 100644 Binary files a/graphics/pokemon/araquanid/icon.png and b/graphics/pokemon/araquanid/icon.png differ diff --git a/graphics/pokemon/arbok/anim_front_gba.png b/graphics/pokemon/arbok/anim_front_gba.png new file mode 100644 index 0000000000..98ca8aab2d Binary files /dev/null and b/graphics/pokemon/arbok/anim_front_gba.png differ diff --git a/graphics/pokemon/arbok/back_gba.png b/graphics/pokemon/arbok/back_gba.png new file mode 100644 index 0000000000..7984d422ea Binary files /dev/null and b/graphics/pokemon/arbok/back_gba.png differ diff --git a/graphics/pokemon/arbok/icon_gba.png b/graphics/pokemon/arbok/icon_gba.png new file mode 100644 index 0000000000..8967d44a6a Binary files /dev/null and b/graphics/pokemon/arbok/icon_gba.png differ diff --git a/graphics/pokemon/arbok/normal_gba.pal b/graphics/pokemon/arbok/normal_gba.pal new file mode 100644 index 0000000000..afd5a0a161 --- /dev/null +++ b/graphics/pokemon/arbok/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 74 +238 222 24 +189 172 16 +255 172 131 +246 115 74 +197 65 24 +156 16 0 +16 16 16 +222 164 197 +189 115 164 +156 74 131 +106 32 90 +255 0 255 +205 205 205 +255 255 255 diff --git a/graphics/pokemon/arbok/shiny_gba.pal b/graphics/pokemon/arbok/shiny_gba.pal new file mode 100644 index 0000000000..6c88ffb429 --- /dev/null +++ b/graphics/pokemon/arbok/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 74 +238 222 24 +189 172 16 +180 197 230 +148 164 197 +106 123 156 +49 65 98 +16 16 16 +222 180 65 +180 139 24 +139 98 24 +98 57 0 +255 0 255 +205 205 205 +255 255 255 diff --git a/graphics/pokemon/arcanine/anim_front_gba.png b/graphics/pokemon/arcanine/anim_front_gba.png new file mode 100644 index 0000000000..d955b812fa Binary files /dev/null and b/graphics/pokemon/arcanine/anim_front_gba.png differ diff --git a/graphics/pokemon/arcanine/back_gba.png b/graphics/pokemon/arcanine/back_gba.png new file mode 100644 index 0000000000..1b0840c8ae Binary files /dev/null and b/graphics/pokemon/arcanine/back_gba.png differ diff --git a/graphics/pokemon/arcanine/hisuian/back.png b/graphics/pokemon/arcanine/hisui/back.png similarity index 100% rename from graphics/pokemon/arcanine/hisuian/back.png rename to graphics/pokemon/arcanine/hisui/back.png diff --git a/graphics/pokemon/arcanine/hisuian/front.png b/graphics/pokemon/arcanine/hisui/front.png similarity index 100% rename from graphics/pokemon/arcanine/hisuian/front.png rename to graphics/pokemon/arcanine/hisui/front.png diff --git a/graphics/pokemon/arcanine/hisuian/icon.png b/graphics/pokemon/arcanine/hisui/icon.png similarity index 100% rename from graphics/pokemon/arcanine/hisuian/icon.png rename to graphics/pokemon/arcanine/hisui/icon.png diff --git a/graphics/pokemon/arcanine/hisuian/normal.pal b/graphics/pokemon/arcanine/hisui/normal.pal similarity index 100% rename from graphics/pokemon/arcanine/hisuian/normal.pal rename to graphics/pokemon/arcanine/hisui/normal.pal diff --git a/graphics/pokemon/arcanine/hisuian/overworld.png b/graphics/pokemon/arcanine/hisui/overworld.png similarity index 100% rename from graphics/pokemon/arcanine/hisuian/overworld.png rename to graphics/pokemon/arcanine/hisui/overworld.png diff --git a/graphics/pokemon/arcanine/hisuian/overworld_normal.pal b/graphics/pokemon/arcanine/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/arcanine/hisuian/overworld_normal.pal rename to graphics/pokemon/arcanine/hisui/overworld_normal.pal diff --git a/graphics/pokemon/arcanine/hisuian/overworld_shiny.pal b/graphics/pokemon/arcanine/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/arcanine/hisuian/overworld_shiny.pal rename to graphics/pokemon/arcanine/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/arcanine/hisuian/shiny.pal b/graphics/pokemon/arcanine/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/arcanine/hisuian/shiny.pal rename to graphics/pokemon/arcanine/hisui/shiny.pal diff --git a/graphics/pokemon/arcanine/icon_gba.png b/graphics/pokemon/arcanine/icon_gba.png new file mode 100644 index 0000000000..3fed9199ac Binary files /dev/null and b/graphics/pokemon/arcanine/icon_gba.png differ diff --git a/graphics/pokemon/arcanine/normal_gba.pal b/graphics/pokemon/arcanine/normal_gba.pal new file mode 100644 index 0000000000..46135bf321 --- /dev/null +++ b/graphics/pokemon/arcanine/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 246 +222 222 213 +90 90 90 +255 98 65 +197 49 32 +82 16 16 +255 246 172 +255 246 148 +246 189 106 +172 98 32 +255 139 82 +238 115 49 +197 82 49 +98 16 0 +16 16 16 diff --git a/graphics/pokemon/arcanine/shiny_gba.pal b/graphics/pokemon/arcanine/shiny_gba.pal new file mode 100644 index 0000000000..99edcb435b --- /dev/null +++ b/graphics/pokemon/arcanine/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 246 +222 222 213 +90 90 90 +255 98 65 +197 49 32 +82 16 16 +255 246 238 +255 238 197 +230 197 156 +148 115 82 +255 230 115 +222 189 74 +180 148 32 +115 82 0 +16 16 16 diff --git a/graphics/pokemon/ariados/anim_front_gba.png b/graphics/pokemon/ariados/anim_front_gba.png new file mode 100644 index 0000000000..9fdd513628 Binary files /dev/null and b/graphics/pokemon/ariados/anim_front_gba.png differ diff --git a/graphics/pokemon/ariados/back_gba.png b/graphics/pokemon/ariados/back_gba.png new file mode 100644 index 0000000000..b677b7222e Binary files /dev/null and b/graphics/pokemon/ariados/back_gba.png differ diff --git a/graphics/pokemon/ariados/icon_gba.png b/graphics/pokemon/ariados/icon_gba.png new file mode 100644 index 0000000000..4284968f26 Binary files /dev/null and b/graphics/pokemon/ariados/icon_gba.png differ diff --git a/graphics/pokemon/ariados/normal_gba.pal b/graphics/pokemon/ariados/normal_gba.pal new file mode 100644 index 0000000000..ccf5f7fe71 --- /dev/null +++ b/graphics/pokemon/ariados/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 172 57 +255 123 41 +205 82 0 +139 32 0 +74 0 0 +255 238 90 +222 180 74 +148 115 49 +189 148 255 +148 90 238 +106 49 172 +189 189 189 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/ariados/shiny_gba.pal b/graphics/pokemon/ariados/shiny_gba.pal new file mode 100644 index 0000000000..c2557b5894 --- /dev/null +++ b/graphics/pokemon/ariados/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 139 189 +205 106 164 +139 65 123 +115 16 82 +82 8 49 +255 238 90 +222 180 74 +148 115 49 +148 213 255 +98 164 230 +32 82 180 +189 189 189 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/armaldo/anim_front_gba.png b/graphics/pokemon/armaldo/anim_front_gba.png new file mode 100644 index 0000000000..8f07191fb7 Binary files /dev/null and b/graphics/pokemon/armaldo/anim_front_gba.png differ diff --git a/graphics/pokemon/armaldo/back_gba.png b/graphics/pokemon/armaldo/back_gba.png new file mode 100644 index 0000000000..23c8c7113e Binary files /dev/null and b/graphics/pokemon/armaldo/back_gba.png differ diff --git a/graphics/pokemon/armaldo/icon_gba.png b/graphics/pokemon/armaldo/icon_gba.png new file mode 100644 index 0000000000..ed3bb65f2b Binary files /dev/null and b/graphics/pokemon/armaldo/icon_gba.png differ diff --git a/graphics/pokemon/armaldo/normal_gba.pal b/graphics/pokemon/armaldo/normal_gba.pal new file mode 100644 index 0000000000..a6fc406b3e --- /dev/null +++ b/graphics/pokemon/armaldo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 189 222 +139 139 189 +115 115 172 +90 90 139 +246 238 197 +255 222 106 +222 180 98 +57 65 82 +255 98 74 +189 57 0 +222 222 222 +180 180 189 +106 106 123 +0 0 0 diff --git a/graphics/pokemon/armaldo/shiny_gba.pal b/graphics/pokemon/armaldo/shiny_gba.pal new file mode 100644 index 0000000000..e6d09d6113 --- /dev/null +++ b/graphics/pokemon/armaldo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 197 189 +213 164 156 +180 131 123 +148 98 90 +246 238 197 +255 222 106 +222 180 98 +115 65 57 +255 98 74 +189 57 0 +222 222 222 +222 98 82 +180 57 41 +0 0 0 diff --git a/graphics/pokemon/aron/anim_front_gba.png b/graphics/pokemon/aron/anim_front_gba.png new file mode 100644 index 0000000000..928d118f0f Binary files /dev/null and b/graphics/pokemon/aron/anim_front_gba.png differ diff --git a/graphics/pokemon/aron/back_gba.png b/graphics/pokemon/aron/back_gba.png new file mode 100644 index 0000000000..330d46c420 Binary files /dev/null and b/graphics/pokemon/aron/back_gba.png differ diff --git a/graphics/pokemon/aron/icon_gba.png b/graphics/pokemon/aron/icon_gba.png new file mode 100644 index 0000000000..5478463741 Binary files /dev/null and b/graphics/pokemon/aron/icon_gba.png differ diff --git a/graphics/pokemon/aron/normal_gba.pal b/graphics/pokemon/aron/normal_gba.pal new file mode 100644 index 0000000000..b5711fdada --- /dev/null +++ b/graphics/pokemon/aron/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +74 74 65 +106 106 106 +139 139 139 +172 172 172 +57 57 65 +123 106 106 +156 139 139 +189 172 172 +222 205 205 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +106 189 255 +0 0 0 diff --git a/graphics/pokemon/aron/shiny_gba.pal b/graphics/pokemon/aron/shiny_gba.pal new file mode 100644 index 0000000000..eadb9aa81e --- /dev/null +++ b/graphics/pokemon/aron/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +32 90 90 +65 123 115 +90 156 148 +148 197 205 +74 41 24 +123 123 90 +156 156 123 +189 189 156 +222 222 197 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +255 123 82 +0 0 0 diff --git a/graphics/pokemon/articuno/anim_front_gba.png b/graphics/pokemon/articuno/anim_front_gba.png new file mode 100644 index 0000000000..3e92cc8b31 Binary files /dev/null and b/graphics/pokemon/articuno/anim_front_gba.png differ diff --git a/graphics/pokemon/articuno/back_gba.png b/graphics/pokemon/articuno/back_gba.png new file mode 100644 index 0000000000..7e06ba84e2 Binary files /dev/null and b/graphics/pokemon/articuno/back_gba.png differ diff --git a/graphics/pokemon/articuno/galarian/back.png b/graphics/pokemon/articuno/galar/back.png similarity index 100% rename from graphics/pokemon/articuno/galarian/back.png rename to graphics/pokemon/articuno/galar/back.png diff --git a/graphics/pokemon/articuno/galarian/front.png b/graphics/pokemon/articuno/galar/front.png similarity index 100% rename from graphics/pokemon/articuno/galarian/front.png rename to graphics/pokemon/articuno/galar/front.png diff --git a/graphics/pokemon/articuno/galarian/icon.png b/graphics/pokemon/articuno/galar/icon.png similarity index 100% rename from graphics/pokemon/articuno/galarian/icon.png rename to graphics/pokemon/articuno/galar/icon.png diff --git a/graphics/pokemon/articuno/galarian/normal.pal b/graphics/pokemon/articuno/galar/normal.pal similarity index 100% rename from graphics/pokemon/articuno/galarian/normal.pal rename to graphics/pokemon/articuno/galar/normal.pal diff --git a/graphics/pokemon/articuno/galarian/overworld.png b/graphics/pokemon/articuno/galar/overworld.png similarity index 100% rename from graphics/pokemon/articuno/galarian/overworld.png rename to graphics/pokemon/articuno/galar/overworld.png diff --git a/graphics/pokemon/articuno/galarian/overworld_normal.pal b/graphics/pokemon/articuno/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/articuno/galarian/overworld_normal.pal rename to graphics/pokemon/articuno/galar/overworld_normal.pal diff --git a/graphics/pokemon/articuno/galarian/overworld_shiny.pal b/graphics/pokemon/articuno/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/articuno/galarian/overworld_shiny.pal rename to graphics/pokemon/articuno/galar/overworld_shiny.pal diff --git a/graphics/pokemon/articuno/galarian/shiny.pal b/graphics/pokemon/articuno/galar/shiny.pal similarity index 100% rename from graphics/pokemon/articuno/galarian/shiny.pal rename to graphics/pokemon/articuno/galar/shiny.pal diff --git a/graphics/pokemon/articuno/icon_gba.png b/graphics/pokemon/articuno/icon_gba.png new file mode 100644 index 0000000000..e2f19f133a Binary files /dev/null and b/graphics/pokemon/articuno/icon_gba.png differ diff --git a/graphics/pokemon/articuno/normal_gba.pal b/graphics/pokemon/articuno/normal_gba.pal new file mode 100644 index 0000000000..4dafc12030 --- /dev/null +++ b/graphics/pokemon/articuno/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +213 238 255 +172 213 255 +139 180 230 +98 148 205 +57 106 164 +65 65 90 +255 0 255 +255 0 255 +139 164 213 +90 115 164 +74 74 106 +189 41 57 +230 98 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/articuno/shiny_gba.pal b/graphics/pokemon/articuno/shiny_gba.pal new file mode 100644 index 0000000000..bb1ccfa81c --- /dev/null +++ b/graphics/pokemon/articuno/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +238 246 255 +205 230 255 +156 189 246 +98 131 238 +57 74 148 +255 0 255 +255 0 255 +139 164 213 +90 115 164 +74 74 106 +189 41 57 +230 98 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/audino/overworld.png b/graphics/pokemon/audino/overworld.png index 27fdc5f6b7..082abdd270 100644 Binary files a/graphics/pokemon/audino/overworld.png and b/graphics/pokemon/audino/overworld.png differ diff --git a/graphics/pokemon/avalugg/hisuian/back.png b/graphics/pokemon/avalugg/hisui/back.png similarity index 100% rename from graphics/pokemon/avalugg/hisuian/back.png rename to graphics/pokemon/avalugg/hisui/back.png diff --git a/graphics/pokemon/avalugg/hisuian/front.png b/graphics/pokemon/avalugg/hisui/front.png similarity index 100% rename from graphics/pokemon/avalugg/hisuian/front.png rename to graphics/pokemon/avalugg/hisui/front.png diff --git a/graphics/pokemon/avalugg/hisuian/icon.png b/graphics/pokemon/avalugg/hisui/icon.png similarity index 100% rename from graphics/pokemon/avalugg/hisuian/icon.png rename to graphics/pokemon/avalugg/hisui/icon.png diff --git a/graphics/pokemon/avalugg/hisuian/normal.pal b/graphics/pokemon/avalugg/hisui/normal.pal similarity index 100% rename from graphics/pokemon/avalugg/hisuian/normal.pal rename to graphics/pokemon/avalugg/hisui/normal.pal diff --git a/graphics/pokemon/avalugg/hisuian/overworld.png b/graphics/pokemon/avalugg/hisui/overworld.png similarity index 100% rename from graphics/pokemon/avalugg/hisuian/overworld.png rename to graphics/pokemon/avalugg/hisui/overworld.png diff --git a/graphics/pokemon/avalugg/hisuian/overworld_normal.pal b/graphics/pokemon/avalugg/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/avalugg/hisuian/overworld_normal.pal rename to graphics/pokemon/avalugg/hisui/overworld_normal.pal diff --git a/graphics/pokemon/avalugg/hisuian/overworld_shiny.pal b/graphics/pokemon/avalugg/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/avalugg/hisuian/overworld_shiny.pal rename to graphics/pokemon/avalugg/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/avalugg/hisuian/shiny.pal b/graphics/pokemon/avalugg/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/avalugg/hisuian/shiny.pal rename to graphics/pokemon/avalugg/hisui/shiny.pal diff --git a/graphics/pokemon/azumarill/anim_front_gba.png b/graphics/pokemon/azumarill/anim_front_gba.png new file mode 100644 index 0000000000..9097edc43c Binary files /dev/null and b/graphics/pokemon/azumarill/anim_front_gba.png differ diff --git a/graphics/pokemon/azumarill/back_gba.png b/graphics/pokemon/azumarill/back_gba.png new file mode 100644 index 0000000000..ca59011c64 Binary files /dev/null and b/graphics/pokemon/azumarill/back_gba.png differ diff --git a/graphics/pokemon/azumarill/icon_gba.png b/graphics/pokemon/azumarill/icon_gba.png new file mode 100644 index 0000000000..f41d53d2cf Binary files /dev/null and b/graphics/pokemon/azumarill/icon_gba.png differ diff --git a/graphics/pokemon/azumarill/normal_gba.pal b/graphics/pokemon/azumarill/normal_gba.pal new file mode 100644 index 0000000000..429d3feccd --- /dev/null +++ b/graphics/pokemon/azumarill/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 205 205 +156 156 156 +106 106 106 +16 16 16 +131 205 255 +90 172 230 +49 131 197 +74 74 131 +255 0 255 +255 0 255 +230 82 0 +197 41 0 +123 0 0 +255 0 255 diff --git a/graphics/pokemon/azumarill/shiny_gba.pal b/graphics/pokemon/azumarill/shiny_gba.pal new file mode 100644 index 0000000000..5f185cecb0 --- /dev/null +++ b/graphics/pokemon/azumarill/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 205 205 +156 156 156 +106 106 106 +16 16 16 +255 238 82 +255 213 57 +213 172 24 +131 90 41 +255 0 255 +255 0 255 +238 74 65 +197 24 57 +123 0 0 +255 0 255 diff --git a/graphics/pokemon/azurill/anim_front_gba.png b/graphics/pokemon/azurill/anim_front_gba.png new file mode 100644 index 0000000000..212454b4e9 Binary files /dev/null and b/graphics/pokemon/azurill/anim_front_gba.png differ diff --git a/graphics/pokemon/azurill/back_gba.png b/graphics/pokemon/azurill/back_gba.png new file mode 100644 index 0000000000..cf10bded41 Binary files /dev/null and b/graphics/pokemon/azurill/back_gba.png differ diff --git a/graphics/pokemon/azurill/icon_gba.png b/graphics/pokemon/azurill/icon_gba.png new file mode 100644 index 0000000000..b69acc7fda Binary files /dev/null and b/graphics/pokemon/azurill/icon_gba.png differ diff --git a/graphics/pokemon/azurill/normal_gba.pal b/graphics/pokemon/azurill/normal_gba.pal new file mode 100644 index 0000000000..44214498f4 --- /dev/null +++ b/graphics/pokemon/azurill/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +49 65 90 +106 148 255 +74 115 255 +156 189 255 +123 123 148 +238 123 115 +189 74 65 +57 90 189 +222 98 90 +222 238 255 +90 131 246 +57 90 148 +255 255 255 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/azurill/shiny_gba.pal b/graphics/pokemon/azurill/shiny_gba.pal new file mode 100644 index 0000000000..bbc8d2f29b --- /dev/null +++ b/graphics/pokemon/azurill/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 189 255 +32 106 82 +148 230 148 +90 180 123 +205 255 172 +255 0 255 +222 98 49 +180 65 49 +65 156 98 +222 98 90 +222 238 255 +123 205 131 +255 0 255 +255 255 255 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/bagon/anim_front_gba.png b/graphics/pokemon/bagon/anim_front_gba.png new file mode 100644 index 0000000000..dfcae12bbd Binary files /dev/null and b/graphics/pokemon/bagon/anim_front_gba.png differ diff --git a/graphics/pokemon/bagon/back_gba.png b/graphics/pokemon/bagon/back_gba.png new file mode 100644 index 0000000000..0a058d768e Binary files /dev/null and b/graphics/pokemon/bagon/back_gba.png differ diff --git a/graphics/pokemon/bagon/icon_gba.png b/graphics/pokemon/bagon/icon_gba.png new file mode 100644 index 0000000000..cc3af423f3 Binary files /dev/null and b/graphics/pokemon/bagon/icon_gba.png differ diff --git a/graphics/pokemon/bagon/normal_gba.pal b/graphics/pokemon/bagon/normal_gba.pal new file mode 100644 index 0000000000..c71cdb94b7 --- /dev/null +++ b/graphics/pokemon/bagon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 98 +74 74 98 +123 115 148 +123 123 222 +172 172 255 +197 131 98 +255 148 98 +255 148 98 +131 148 148 +172 164 189 +222 213 238 +255 255 255 +0 0 0 +0 0 0 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/bagon/shiny_gba.pal b/graphics/pokemon/bagon/shiny_gba.pal new file mode 100644 index 0000000000..6cd8ce5ea6 --- /dev/null +++ b/graphics/pokemon/bagon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 98 +16 98 32 +98 156 106 +98 197 98 +148 230 148 +197 131 98 +255 148 98 +255 148 98 +131 148 148 +172 164 189 +222 213 238 +255 255 255 +0 0 0 +0 0 0 +255 255 255 +41 41 41 diff --git a/graphics/pokemon/baltoy/anim_front_gba.png b/graphics/pokemon/baltoy/anim_front_gba.png new file mode 100644 index 0000000000..94e7fc2c7e Binary files /dev/null and b/graphics/pokemon/baltoy/anim_front_gba.png differ diff --git a/graphics/pokemon/baltoy/back_gba.png b/graphics/pokemon/baltoy/back_gba.png new file mode 100644 index 0000000000..a8d124481c Binary files /dev/null and b/graphics/pokemon/baltoy/back_gba.png differ diff --git a/graphics/pokemon/baltoy/icon_gba.png b/graphics/pokemon/baltoy/icon_gba.png new file mode 100644 index 0000000000..4ec3f35e97 Binary files /dev/null and b/graphics/pokemon/baltoy/icon_gba.png differ diff --git a/graphics/pokemon/baltoy/normal_gba.pal b/graphics/pokemon/baltoy/normal_gba.pal new file mode 100644 index 0000000000..3356572671 --- /dev/null +++ b/graphics/pokemon/baltoy/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +98 82 82 +131 131 98 +255 255 255 +156 164 65 +197 197 98 +230 230 172 +222 65 98 +246 148 82 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 255 0 diff --git a/graphics/pokemon/baltoy/shiny_gba.pal b/graphics/pokemon/baltoy/shiny_gba.pal new file mode 100644 index 0000000000..39cfa55ad1 --- /dev/null +++ b/graphics/pokemon/baltoy/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +98 82 82 +131 131 98 +255 255 255 +205 180 57 +246 222 98 +230 230 172 +90 172 106 +115 189 172 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 255 0 diff --git a/graphics/pokemon/banette/anim_front_gba.png b/graphics/pokemon/banette/anim_front_gba.png new file mode 100644 index 0000000000..7d10d2c50f Binary files /dev/null and b/graphics/pokemon/banette/anim_front_gba.png differ diff --git a/graphics/pokemon/banette/back_gba.png b/graphics/pokemon/banette/back_gba.png new file mode 100644 index 0000000000..3ea5f30af9 Binary files /dev/null and b/graphics/pokemon/banette/back_gba.png differ diff --git a/graphics/pokemon/banette/icon_gba.png b/graphics/pokemon/banette/icon_gba.png new file mode 100644 index 0000000000..3b5cbaed14 Binary files /dev/null and b/graphics/pokemon/banette/icon_gba.png differ diff --git a/graphics/pokemon/banette/normal_gba.pal b/graphics/pokemon/banette/normal_gba.pal new file mode 100644 index 0000000000..cebcb7757b --- /dev/null +++ b/graphics/pokemon/banette/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 230 213 +255 255 255 +255 255 49 +230 164 24 +255 189 49 +230 49 49 +222 123 49 +189 90 16 +131 65 41 +255 255 49 +255 255 49 +189 189 205 +148 148 172 +115 115 139 +74 74 98 +0 0 0 diff --git a/graphics/pokemon/banette/shiny_gba.pal b/graphics/pokemon/banette/shiny_gba.pal new file mode 100644 index 0000000000..b6df68803c --- /dev/null +++ b/graphics/pokemon/banette/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 230 213 +255 255 255 +255 255 49 +230 164 24 +255 189 49 +230 49 49 +222 123 49 +189 90 16 +131 65 41 +255 255 49 +255 255 49 +189 205 238 +139 172 205 +90 148 172 +32 82 123 +0 0 0 diff --git a/graphics/pokemon/barboach/anim_front_gba.png b/graphics/pokemon/barboach/anim_front_gba.png new file mode 100644 index 0000000000..c8dfda78e3 Binary files /dev/null and b/graphics/pokemon/barboach/anim_front_gba.png differ diff --git a/graphics/pokemon/barboach/back_gba.png b/graphics/pokemon/barboach/back_gba.png new file mode 100644 index 0000000000..4fa892c533 Binary files /dev/null and b/graphics/pokemon/barboach/back_gba.png differ diff --git a/graphics/pokemon/barboach/icon_gba.png b/graphics/pokemon/barboach/icon_gba.png new file mode 100644 index 0000000000..ad874daaca Binary files /dev/null and b/graphics/pokemon/barboach/icon_gba.png differ diff --git a/graphics/pokemon/barboach/normal_gba.pal b/graphics/pokemon/barboach/normal_gba.pal new file mode 100644 index 0000000000..20167a5573 --- /dev/null +++ b/graphics/pokemon/barboach/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 156 90 +57 65 82 +115 115 131 +164 164 172 +189 189 197 +213 213 222 +238 246 246 +0 0 0 +197 222 238 +255 189 41 +74 90 156 +90 106 180 +90 115 205 +139 164 222 +164 197 255 +255 255 255 diff --git a/graphics/pokemon/barboach/shiny_gba.pal b/graphics/pokemon/barboach/shiny_gba.pal new file mode 100644 index 0000000000..e29a020995 --- /dev/null +++ b/graphics/pokemon/barboach/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 156 90 +57 65 82 +115 115 131 +164 164 172 +189 189 197 +213 213 222 +238 246 246 +0 0 0 +255 246 123 +255 189 41 +131 82 0 +164 115 0 +197 148 24 +230 180 57 +255 213 90 +255 255 255 diff --git a/graphics/pokemon/basculegion/female/back.png b/graphics/pokemon/basculegion/f/back.png similarity index 100% rename from graphics/pokemon/basculegion/female/back.png rename to graphics/pokemon/basculegion/f/back.png diff --git a/graphics/pokemon/basculegion/female/front.png b/graphics/pokemon/basculegion/f/front.png similarity index 100% rename from graphics/pokemon/basculegion/female/front.png rename to graphics/pokemon/basculegion/f/front.png diff --git a/graphics/pokemon/basculegion/female/icon.png b/graphics/pokemon/basculegion/f/icon.png similarity index 100% rename from graphics/pokemon/basculegion/female/icon.png rename to graphics/pokemon/basculegion/f/icon.png diff --git a/graphics/pokemon/basculegion/female/normal.pal b/graphics/pokemon/basculegion/f/normal.pal similarity index 100% rename from graphics/pokemon/basculegion/female/normal.pal rename to graphics/pokemon/basculegion/f/normal.pal diff --git a/graphics/pokemon/basculegion/female/overworld.png b/graphics/pokemon/basculegion/f/overworld.png similarity index 100% rename from graphics/pokemon/basculegion/female/overworld.png rename to graphics/pokemon/basculegion/f/overworld.png diff --git a/graphics/pokemon/basculegion/female/overworld_normal.pal b/graphics/pokemon/basculegion/f/overworld_normal.pal similarity index 100% rename from graphics/pokemon/basculegion/female/overworld_normal.pal rename to graphics/pokemon/basculegion/f/overworld_normal.pal diff --git a/graphics/pokemon/basculegion/female/overworld_shiny.pal b/graphics/pokemon/basculegion/f/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/basculegion/female/overworld_shiny.pal rename to graphics/pokemon/basculegion/f/overworld_shiny.pal diff --git a/graphics/pokemon/basculegion/female/shiny.pal b/graphics/pokemon/basculegion/f/shiny.pal similarity index 100% rename from graphics/pokemon/basculegion/female/shiny.pal rename to graphics/pokemon/basculegion/f/shiny.pal diff --git a/graphics/pokemon/basculin/hisuian/overworld.png b/graphics/pokemon/basculin/hisui/overworld.png similarity index 100% rename from graphics/pokemon/basculin/hisuian/overworld.png rename to graphics/pokemon/basculin/hisui/overworld.png diff --git a/graphics/pokemon/basculin/hisuian/overworld_normal.pal b/graphics/pokemon/basculin/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/basculin/hisuian/overworld_normal.pal rename to graphics/pokemon/basculin/hisui/overworld_normal.pal diff --git a/graphics/pokemon/bayleef/anim_front_gba.png b/graphics/pokemon/bayleef/anim_front_gba.png new file mode 100644 index 0000000000..aa3606d431 Binary files /dev/null and b/graphics/pokemon/bayleef/anim_front_gba.png differ diff --git a/graphics/pokemon/bayleef/back_gba.png b/graphics/pokemon/bayleef/back_gba.png new file mode 100644 index 0000000000..63ba17c5ef Binary files /dev/null and b/graphics/pokemon/bayleef/back_gba.png differ diff --git a/graphics/pokemon/bayleef/icon_gba.png b/graphics/pokemon/bayleef/icon_gba.png new file mode 100644 index 0000000000..47d2774d6f Binary files /dev/null and b/graphics/pokemon/bayleef/icon_gba.png differ diff --git a/graphics/pokemon/bayleef/normal_gba.pal b/graphics/pokemon/bayleef/normal_gba.pal new file mode 100644 index 0000000000..9fce320093 --- /dev/null +++ b/graphics/pokemon/bayleef/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 172 +246 238 106 +222 189 41 +164 131 24 +106 82 0 +106 197 49 +74 164 16 +49 123 8 +16 82 16 +197 197 197 +98 98 98 +16 16 16 +213 139 82 +172 49 0 diff --git a/graphics/pokemon/bayleef/shiny_gba.pal b/graphics/pokemon/bayleef/shiny_gba.pal new file mode 100644 index 0000000000..573c02e75c --- /dev/null +++ b/graphics/pokemon/bayleef/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 238 197 +255 213 180 +230 156 123 +189 98 65 +123 74 57 +230 189 49 +189 148 24 +123 98 8 +82 65 16 +197 197 197 +98 98 98 +16 16 16 +222 156 115 +172 57 57 diff --git a/graphics/pokemon/beautifly/anim_front_gba.png b/graphics/pokemon/beautifly/anim_front_gba.png new file mode 100644 index 0000000000..7c1cffea85 Binary files /dev/null and b/graphics/pokemon/beautifly/anim_front_gba.png differ diff --git a/graphics/pokemon/beautifly/back_gba.png b/graphics/pokemon/beautifly/back_gba.png new file mode 100644 index 0000000000..1eca6edc97 Binary files /dev/null and b/graphics/pokemon/beautifly/back_gba.png differ diff --git a/graphics/pokemon/beautifly/icon_gba.png b/graphics/pokemon/beautifly/icon_gba.png new file mode 100644 index 0000000000..346c5c9068 Binary files /dev/null and b/graphics/pokemon/beautifly/icon_gba.png differ diff --git a/graphics/pokemon/beautifly/normal_gba.pal b/graphics/pokemon/beautifly/normal_gba.pal new file mode 100644 index 0000000000..65a02145f4 --- /dev/null +++ b/graphics/pokemon/beautifly/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 246 +90 90 82 +139 139 123 +255 255 255 +172 172 106 +230 222 115 +255 255 49 +255 255 197 +156 156 115 +197 197 115 +238 238 180 +255 255 238 +0 0 0 +255 148 41 +156 131 255 +24 24 0 diff --git a/graphics/pokemon/beautifly/shiny_gba.pal b/graphics/pokemon/beautifly/shiny_gba.pal new file mode 100644 index 0000000000..9f04181876 --- /dev/null +++ b/graphics/pokemon/beautifly/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 246 +90 24 65 +156 65 131 +255 255 255 +172 148 106 +246 238 148 +255 255 213 +255 255 197 +197 156 115 +230 197 115 +255 238 180 +255 255 238 +0 0 0 +255 148 41 +156 131 255 +24 24 0 diff --git a/graphics/pokemon/beedrill/anim_front_gba.png b/graphics/pokemon/beedrill/anim_front_gba.png new file mode 100644 index 0000000000..169d148123 Binary files /dev/null and b/graphics/pokemon/beedrill/anim_front_gba.png differ diff --git a/graphics/pokemon/beedrill/back_gba.png b/graphics/pokemon/beedrill/back_gba.png new file mode 100644 index 0000000000..166c399e5f Binary files /dev/null and b/graphics/pokemon/beedrill/back_gba.png differ diff --git a/graphics/pokemon/beedrill/icon_gba.png b/graphics/pokemon/beedrill/icon_gba.png new file mode 100644 index 0000000000..d5e6471ab7 Binary files /dev/null and b/graphics/pokemon/beedrill/icon_gba.png differ diff --git a/graphics/pokemon/beedrill/normal_gba.pal b/graphics/pokemon/beedrill/normal_gba.pal new file mode 100644 index 0000000000..24c875141b --- /dev/null +++ b/graphics/pokemon/beedrill/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 246 164 +255 205 74 +238 164 49 +139 82 0 +238 230 255 +222 205 246 +189 172 197 +164 148 172 +255 148 106 +213 24 49 +156 0 8 +98 98 98 +24 24 24 +255 0 255 diff --git a/graphics/pokemon/beedrill/shiny_gba.pal b/graphics/pokemon/beedrill/shiny_gba.pal new file mode 100644 index 0000000000..f35f264deb --- /dev/null +++ b/graphics/pokemon/beedrill/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 246 106 +189 205 65 +148 164 24 +74 90 0 +238 230 255 +222 205 246 +189 172 197 +164 148 172 +90 139 222 +49 98 180 +0 0 115 +98 98 98 +24 24 24 +255 0 255 diff --git a/graphics/pokemon/beldum/anim_front_gba.png b/graphics/pokemon/beldum/anim_front_gba.png new file mode 100644 index 0000000000..85d936d3e7 Binary files /dev/null and b/graphics/pokemon/beldum/anim_front_gba.png differ diff --git a/graphics/pokemon/beldum/back_gba.png b/graphics/pokemon/beldum/back_gba.png new file mode 100644 index 0000000000..7a2cab4650 Binary files /dev/null and b/graphics/pokemon/beldum/back_gba.png differ diff --git a/graphics/pokemon/beldum/icon_gba.png b/graphics/pokemon/beldum/icon_gba.png new file mode 100644 index 0000000000..346a0469d4 Binary files /dev/null and b/graphics/pokemon/beldum/icon_gba.png differ diff --git a/graphics/pokemon/beldum/normal_gba.pal b/graphics/pokemon/beldum/normal_gba.pal new file mode 100644 index 0000000000..41b48bc089 --- /dev/null +++ b/graphics/pokemon/beldum/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +205 205 205 +172 172 172 +148 139 148 +115 106 115 +222 222 222 +131 74 74 +255 106 106 +213 74 82 +131 205 255 +255 255 255 +90 164 255 +74 131 213 +57 98 180 +49 57 115 +16 16 16 diff --git a/graphics/pokemon/beldum/shiny_gba.pal b/graphics/pokemon/beldum/shiny_gba.pal new file mode 100644 index 0000000000..8fc3bc4be8 --- /dev/null +++ b/graphics/pokemon/beldum/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 172 82 +205 139 49 +172 106 16 +139 74 0 +255 205 115 +156 65 65 +255 106 106 +255 74 82 +238 238 246 +255 255 255 +213 213 222 +164 164 172 +115 106 115 +82 74 82 +16 16 16 diff --git a/graphics/pokemon/bellossom/anim_front_gba.png b/graphics/pokemon/bellossom/anim_front_gba.png new file mode 100644 index 0000000000..1549e692b0 Binary files /dev/null and b/graphics/pokemon/bellossom/anim_front_gba.png differ diff --git a/graphics/pokemon/bellossom/back_gba.png b/graphics/pokemon/bellossom/back_gba.png new file mode 100644 index 0000000000..2bd8b176ef Binary files /dev/null and b/graphics/pokemon/bellossom/back_gba.png differ diff --git a/graphics/pokemon/bellossom/icon_gba.png b/graphics/pokemon/bellossom/icon_gba.png new file mode 100644 index 0000000000..443d7a98cc Binary files /dev/null and b/graphics/pokemon/bellossom/icon_gba.png differ diff --git a/graphics/pokemon/bellossom/normal_gba.pal b/graphics/pokemon/bellossom/normal_gba.pal new file mode 100644 index 0000000000..7b0591a623 --- /dev/null +++ b/graphics/pokemon/bellossom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +156 213 74 +115 172 49 +82 98 41 +230 230 106 +180 180 57 +131 131 24 +82 197 49 +57 139 0 +16 90 16 +246 106 0 +213 32 0 +131 0 0 +164 164 164 +16 16 16 diff --git a/graphics/pokemon/bellossom/shiny_gba.pal b/graphics/pokemon/bellossom/shiny_gba.pal new file mode 100644 index 0000000000..1f10af6fb9 --- /dev/null +++ b/graphics/pokemon/bellossom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 156 255 +189 123 230 +123 65 180 +213 246 90 +164 197 41 +98 139 8 +90 205 131 +49 148 98 +32 82 74 +255 131 172 +205 49 106 +148 24 82 +164 164 164 +16 16 16 diff --git a/graphics/pokemon/bellsprout/anim_front_gba.png b/graphics/pokemon/bellsprout/anim_front_gba.png new file mode 100644 index 0000000000..3fb2689a26 Binary files /dev/null and b/graphics/pokemon/bellsprout/anim_front_gba.png differ diff --git a/graphics/pokemon/bellsprout/back_gba.png b/graphics/pokemon/bellsprout/back_gba.png new file mode 100644 index 0000000000..e2a336696c Binary files /dev/null and b/graphics/pokemon/bellsprout/back_gba.png differ diff --git a/graphics/pokemon/bellsprout/icon_gba.png b/graphics/pokemon/bellsprout/icon_gba.png new file mode 100644 index 0000000000..f67c94eecc Binary files /dev/null and b/graphics/pokemon/bellsprout/icon_gba.png differ diff --git a/graphics/pokemon/bellsprout/normal_gba.pal b/graphics/pokemon/bellsprout/normal_gba.pal new file mode 100644 index 0000000000..88ab002306 --- /dev/null +++ b/graphics/pokemon/bellsprout/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +82 98 41 +255 164 115 +238 115 65 +189 65 32 +255 230 156 +255 197 90 +197 148 41 +189 255 115 +156 213 74 +115 172 49 +205 156 41 +156 115 32 +106 65 0 +16 16 16 diff --git a/graphics/pokemon/bellsprout/shiny_gba.pal b/graphics/pokemon/bellsprout/shiny_gba.pal new file mode 100644 index 0000000000..6a813078f1 --- /dev/null +++ b/graphics/pokemon/bellsprout/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +82 98 41 +222 189 189 +180 148 148 +139 106 106 +255 246 98 +222 205 57 +180 164 16 +246 213 82 +205 172 41 +164 131 0 +205 156 41 +156 115 32 +106 65 0 +16 16 16 diff --git a/graphics/pokemon/bewear/icon.png b/graphics/pokemon/bewear/icon.png index 5ceb073fbc..30cc966723 100644 Binary files a/graphics/pokemon/bewear/icon.png and b/graphics/pokemon/bewear/icon.png differ diff --git a/graphics/pokemon/blacephalon/icon.png b/graphics/pokemon/blacephalon/icon.png index bb1f9cdc31..c3fad2f3ef 100644 Binary files a/graphics/pokemon/blacephalon/icon.png and b/graphics/pokemon/blacephalon/icon.png differ diff --git a/graphics/pokemon/blastoise/anim_front_gba.png b/graphics/pokemon/blastoise/anim_front_gba.png new file mode 100644 index 0000000000..68b8bd7dda Binary files /dev/null and b/graphics/pokemon/blastoise/anim_front_gba.png differ diff --git a/graphics/pokemon/blastoise/back_gba.png b/graphics/pokemon/blastoise/back_gba.png new file mode 100644 index 0000000000..abb14e5658 Binary files /dev/null and b/graphics/pokemon/blastoise/back_gba.png differ diff --git a/graphics/pokemon/blastoise/gigantamax/back.png b/graphics/pokemon/blastoise/gmax/back.png similarity index 100% rename from graphics/pokemon/blastoise/gigantamax/back.png rename to graphics/pokemon/blastoise/gmax/back.png diff --git a/graphics/pokemon/blastoise/gigantamax/front.png b/graphics/pokemon/blastoise/gmax/front.png similarity index 100% rename from graphics/pokemon/blastoise/gigantamax/front.png rename to graphics/pokemon/blastoise/gmax/front.png diff --git a/graphics/pokemon/blastoise/gigantamax/icon.png b/graphics/pokemon/blastoise/gmax/icon.png similarity index 100% rename from graphics/pokemon/blastoise/gigantamax/icon.png rename to graphics/pokemon/blastoise/gmax/icon.png diff --git a/graphics/pokemon/blastoise/gigantamax/normal.pal b/graphics/pokemon/blastoise/gmax/normal.pal similarity index 100% rename from graphics/pokemon/blastoise/gigantamax/normal.pal rename to graphics/pokemon/blastoise/gmax/normal.pal diff --git a/graphics/pokemon/blastoise/gigantamax/shiny.pal b/graphics/pokemon/blastoise/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/blastoise/gigantamax/shiny.pal rename to graphics/pokemon/blastoise/gmax/shiny.pal diff --git a/graphics/pokemon/blastoise/icon_gba.png b/graphics/pokemon/blastoise/icon_gba.png new file mode 100644 index 0000000000..253d4f8da3 Binary files /dev/null and b/graphics/pokemon/blastoise/icon_gba.png differ diff --git a/graphics/pokemon/blastoise/normal_gba.pal b/graphics/pokemon/blastoise/normal_gba.pal new file mode 100644 index 0000000000..632bbc021a --- /dev/null +++ b/graphics/pokemon/blastoise/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 205 205 +148 164 164 +106 74 57 +172 98 32 +238 172 90 +255 213 106 +230 172 90 +189 139 57 +156 106 74 +131 213 255 +106 172 230 +65 131 197 +74 74 131 +16 16 16 diff --git a/graphics/pokemon/blastoise/shiny_gba.pal b/graphics/pokemon/blastoise/shiny_gba.pal new file mode 100644 index 0000000000..d0547a7065 --- /dev/null +++ b/graphics/pokemon/blastoise/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 205 205 +148 164 164 +32 65 32 +172 98 32 +238 172 90 +255 213 106 +115 139 41 +82 106 8 +41 65 8 +230 230 246 +197 197 246 +139 139 189 +57 57 106 +16 16 16 diff --git a/graphics/pokemon/blaziken/anim_front_gba.png b/graphics/pokemon/blaziken/anim_front_gba.png new file mode 100644 index 0000000000..8639d034cd Binary files /dev/null and b/graphics/pokemon/blaziken/anim_front_gba.png differ diff --git a/graphics/pokemon/blaziken/back_gba.png b/graphics/pokemon/blaziken/back_gba.png new file mode 100644 index 0000000000..cf89544c15 Binary files /dev/null and b/graphics/pokemon/blaziken/back_gba.png differ diff --git a/graphics/pokemon/blaziken/icon_gba.png b/graphics/pokemon/blaziken/icon_gba.png new file mode 100644 index 0000000000..6197cce23c Binary files /dev/null and b/graphics/pokemon/blaziken/icon_gba.png differ diff --git a/graphics/pokemon/blaziken/normal_gba.pal b/graphics/pokemon/blaziken/normal_gba.pal new file mode 100644 index 0000000000..64aaed794a --- /dev/null +++ b/graphics/pokemon/blaziken/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +255 246 246 +205 180 180 +172 148 148 +148 115 123 +255 123 82 +222 98 49 +180 65 49 +74 41 65 +238 213 172 +205 180 156 +148 123 90 +255 230 156 +255 213 106 +230 172 90 +0 0 0 diff --git a/graphics/pokemon/blaziken/shiny_gba.pal b/graphics/pokemon/blaziken/shiny_gba.pal new file mode 100644 index 0000000000..fea29cce8f --- /dev/null +++ b/graphics/pokemon/blaziken/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +255 246 246 +205 180 180 +172 148 148 +148 115 123 +197 82 49 +131 49 32 +106 24 8 +74 0 0 +238 230 222 +222 213 205 +180 65 49 +255 255 255 +255 180 82 +222 123 49 +0 0 0 diff --git a/graphics/pokemon/blissey/anim_front_gba.png b/graphics/pokemon/blissey/anim_front_gba.png new file mode 100644 index 0000000000..5692e36b2e Binary files /dev/null and b/graphics/pokemon/blissey/anim_front_gba.png differ diff --git a/graphics/pokemon/blissey/back_gba.png b/graphics/pokemon/blissey/back_gba.png new file mode 100644 index 0000000000..9823bd9947 Binary files /dev/null and b/graphics/pokemon/blissey/back_gba.png differ diff --git a/graphics/pokemon/blissey/icon_gba.png b/graphics/pokemon/blissey/icon_gba.png new file mode 100644 index 0000000000..44af9704cb Binary files /dev/null and b/graphics/pokemon/blissey/icon_gba.png differ diff --git a/graphics/pokemon/blissey/normal_gba.pal b/graphics/pokemon/blissey/normal_gba.pal new file mode 100644 index 0000000000..edeacbdaa2 --- /dev/null +++ b/graphics/pokemon/blissey/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 222 222 +180 180 180 +106 106 106 +0 255 0 +255 213 222 +255 172 197 +238 123 156 +213 74 98 +189 32 49 +0 255 0 +0 255 0 +213 74 98 +172 16 32 +16 16 16 diff --git a/graphics/pokemon/blissey/shiny_gba.pal b/graphics/pokemon/blissey/shiny_gba.pal new file mode 100644 index 0000000000..d6d75db9e2 --- /dev/null +++ b/graphics/pokemon/blissey/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 238 255 +180 197 222 +90 106 131 +0 255 0 +255 238 246 +255 213 230 +246 172 197 +222 115 139 +180 74 82 +0 255 0 +238 123 156 +222 90 98 +172 49 65 +16 16 16 diff --git a/graphics/pokemon/boldore/overworld.png b/graphics/pokemon/boldore/overworld.png index 013a09dcf3..e4c4cb5b11 100644 Binary files a/graphics/pokemon/boldore/overworld.png and b/graphics/pokemon/boldore/overworld.png differ diff --git a/graphics/pokemon/bounsweet/icon.png b/graphics/pokemon/bounsweet/icon.png index 80df38b9ad..5fa805deb0 100644 Binary files a/graphics/pokemon/bounsweet/icon.png and b/graphics/pokemon/bounsweet/icon.png differ diff --git a/graphics/pokemon/braviary/hisuian/back.png b/graphics/pokemon/braviary/hisui/back.png similarity index 100% rename from graphics/pokemon/braviary/hisuian/back.png rename to graphics/pokemon/braviary/hisui/back.png diff --git a/graphics/pokemon/braviary/hisuian/front.png b/graphics/pokemon/braviary/hisui/front.png similarity index 100% rename from graphics/pokemon/braviary/hisuian/front.png rename to graphics/pokemon/braviary/hisui/front.png diff --git a/graphics/pokemon/braviary/hisuian/icon.png b/graphics/pokemon/braviary/hisui/icon.png similarity index 100% rename from graphics/pokemon/braviary/hisuian/icon.png rename to graphics/pokemon/braviary/hisui/icon.png diff --git a/graphics/pokemon/braviary/hisuian/normal.pal b/graphics/pokemon/braviary/hisui/normal.pal similarity index 100% rename from graphics/pokemon/braviary/hisuian/normal.pal rename to graphics/pokemon/braviary/hisui/normal.pal diff --git a/graphics/pokemon/braviary/hisuian/overworld.png b/graphics/pokemon/braviary/hisui/overworld.png similarity index 100% rename from graphics/pokemon/braviary/hisuian/overworld.png rename to graphics/pokemon/braviary/hisui/overworld.png diff --git a/graphics/pokemon/braviary/hisuian/overworld_normal.pal b/graphics/pokemon/braviary/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/braviary/hisuian/overworld_normal.pal rename to graphics/pokemon/braviary/hisui/overworld_normal.pal diff --git a/graphics/pokemon/braviary/hisuian/overworld_shiny.pal b/graphics/pokemon/braviary/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/braviary/hisuian/overworld_shiny.pal rename to graphics/pokemon/braviary/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/braviary/hisuian/shiny.pal b/graphics/pokemon/braviary/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/braviary/hisuian/shiny.pal rename to graphics/pokemon/braviary/hisui/shiny.pal diff --git a/graphics/pokemon/breloom/anim_front_gba.png b/graphics/pokemon/breloom/anim_front_gba.png new file mode 100644 index 0000000000..e4d7aab2f3 Binary files /dev/null and b/graphics/pokemon/breloom/anim_front_gba.png differ diff --git a/graphics/pokemon/breloom/back_gba.png b/graphics/pokemon/breloom/back_gba.png new file mode 100644 index 0000000000..85df080409 Binary files /dev/null and b/graphics/pokemon/breloom/back_gba.png differ diff --git a/graphics/pokemon/breloom/icon_gba.png b/graphics/pokemon/breloom/icon_gba.png new file mode 100644 index 0000000000..314873a27e Binary files /dev/null and b/graphics/pokemon/breloom/icon_gba.png differ diff --git a/graphics/pokemon/breloom/normal_gba.pal b/graphics/pokemon/breloom/normal_gba.pal new file mode 100644 index 0000000000..f01f5d9479 --- /dev/null +++ b/graphics/pokemon/breloom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +255 255 255 +255 238 156 +246 213 123 +213 172 106 +82 24 16 +98 74 57 +57 82 24 +164 131 82 +172 213 98 +148 189 74 +115 148 49 +238 123 74 +172 49 16 +0 0 0 +222 74 41 diff --git a/graphics/pokemon/breloom/shiny_gba.pal b/graphics/pokemon/breloom/shiny_gba.pal new file mode 100644 index 0000000000..ad89e65f27 --- /dev/null +++ b/graphics/pokemon/breloom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 139 +255 255 255 +255 238 180 +255 230 148 +230 189 106 +82 24 16 +98 74 57 +57 82 24 +189 148 82 +255 115 74 +222 98 49 +180 65 49 +255 222 139 +238 139 49 +0 0 0 +255 180 90 diff --git a/graphics/pokemon/brionne/icon.png b/graphics/pokemon/brionne/icon.png index da33e8ee07..88cf5d01b4 100644 Binary files a/graphics/pokemon/brionne/icon.png and b/graphics/pokemon/brionne/icon.png differ diff --git a/graphics/pokemon/bruxish/icon.png b/graphics/pokemon/bruxish/icon.png index 00d049a5c6..eab625140e 100644 Binary files a/graphics/pokemon/bruxish/icon.png and b/graphics/pokemon/bruxish/icon.png differ diff --git a/graphics/pokemon/bulbasaur/anim_front_gba.png b/graphics/pokemon/bulbasaur/anim_front_gba.png new file mode 100644 index 0000000000..bb5fb3d23a Binary files /dev/null and b/graphics/pokemon/bulbasaur/anim_front_gba.png differ diff --git a/graphics/pokemon/bulbasaur/back_gba.png b/graphics/pokemon/bulbasaur/back_gba.png new file mode 100644 index 0000000000..f97806b58e Binary files /dev/null and b/graphics/pokemon/bulbasaur/back_gba.png differ diff --git a/graphics/pokemon/bulbasaur/icon.png b/graphics/pokemon/bulbasaur/icon.png index 7738836b9c..d8f508ee86 100644 Binary files a/graphics/pokemon/bulbasaur/icon.png and b/graphics/pokemon/bulbasaur/icon.png differ diff --git a/graphics/pokemon/bulbasaur/icon_gba.png b/graphics/pokemon/bulbasaur/icon_gba.png new file mode 100644 index 0000000000..8d6fe17254 Binary files /dev/null and b/graphics/pokemon/bulbasaur/icon_gba.png differ diff --git a/graphics/pokemon/bulbasaur/normal_gba.pal b/graphics/pokemon/bulbasaur/normal_gba.pal new file mode 100644 index 0000000000..5147bd9747 --- /dev/null +++ b/graphics/pokemon/bulbasaur/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +131 238 197 +98 213 164 +57 148 123 +24 74 74 +255 106 98 +222 74 65 +189 41 32 +205 205 205 +16 16 16 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +255 0 255 diff --git a/graphics/pokemon/bulbasaur/shiny_gba.pal b/graphics/pokemon/bulbasaur/shiny_gba.pal new file mode 100644 index 0000000000..86a5358318 --- /dev/null +++ b/graphics/pokemon/bulbasaur/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 255 41 +164 230 0 +106 172 0 +24 90 0 +255 106 98 +222 74 65 +189 41 32 +205 205 205 +16 16 16 +57 197 90 +16 156 49 +0 115 8 +0 57 0 +255 0 255 diff --git a/graphics/pokemon/burmy/plant/footprint.png b/graphics/pokemon/burmy/footprint.png similarity index 100% rename from graphics/pokemon/burmy/plant/footprint.png rename to graphics/pokemon/burmy/footprint.png diff --git a/graphics/pokemon/burmy/sandy_cloak/anim_front.png b/graphics/pokemon/burmy/sandy/anim_front.png similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/anim_front.png rename to graphics/pokemon/burmy/sandy/anim_front.png diff --git a/graphics/pokemon/burmy/sandy_cloak/back.png b/graphics/pokemon/burmy/sandy/back.png similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/back.png rename to graphics/pokemon/burmy/sandy/back.png diff --git a/graphics/pokemon/burmy/sandy_cloak/icon.png b/graphics/pokemon/burmy/sandy/icon.png similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/icon.png rename to graphics/pokemon/burmy/sandy/icon.png diff --git a/graphics/pokemon/burmy/sandy_cloak/normal.pal b/graphics/pokemon/burmy/sandy/normal.pal similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/normal.pal rename to graphics/pokemon/burmy/sandy/normal.pal diff --git a/graphics/pokemon/burmy/sandy_cloak/overworld.png b/graphics/pokemon/burmy/sandy/overworld.png similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/overworld.png rename to graphics/pokemon/burmy/sandy/overworld.png diff --git a/graphics/pokemon/burmy/sandy_cloak/overworld_normal.pal b/graphics/pokemon/burmy/sandy/overworld_normal.pal similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/overworld_normal.pal rename to graphics/pokemon/burmy/sandy/overworld_normal.pal diff --git a/graphics/pokemon/burmy/sandy_cloak/overworld_shiny.pal b/graphics/pokemon/burmy/sandy/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/overworld_shiny.pal rename to graphics/pokemon/burmy/sandy/overworld_shiny.pal diff --git a/graphics/pokemon/burmy/sandy_cloak/shiny.pal b/graphics/pokemon/burmy/sandy/shiny.pal similarity index 100% rename from graphics/pokemon/burmy/sandy_cloak/shiny.pal rename to graphics/pokemon/burmy/sandy/shiny.pal diff --git a/graphics/pokemon/burmy/trash_cloak/anim_front.png b/graphics/pokemon/burmy/trash/anim_front.png similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/anim_front.png rename to graphics/pokemon/burmy/trash/anim_front.png diff --git a/graphics/pokemon/burmy/trash_cloak/back.png b/graphics/pokemon/burmy/trash/back.png similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/back.png rename to graphics/pokemon/burmy/trash/back.png diff --git a/graphics/pokemon/burmy/trash_cloak/icon.png b/graphics/pokemon/burmy/trash/icon.png similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/icon.png rename to graphics/pokemon/burmy/trash/icon.png diff --git a/graphics/pokemon/burmy/trash_cloak/normal.pal b/graphics/pokemon/burmy/trash/normal.pal similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/normal.pal rename to graphics/pokemon/burmy/trash/normal.pal diff --git a/graphics/pokemon/burmy/trash_cloak/overworld.png b/graphics/pokemon/burmy/trash/overworld.png similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/overworld.png rename to graphics/pokemon/burmy/trash/overworld.png diff --git a/graphics/pokemon/burmy/trash_cloak/overworld_normal.pal b/graphics/pokemon/burmy/trash/overworld_normal.pal similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/overworld_normal.pal rename to graphics/pokemon/burmy/trash/overworld_normal.pal diff --git a/graphics/pokemon/burmy/trash_cloak/overworld_shiny.pal b/graphics/pokemon/burmy/trash/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/overworld_shiny.pal rename to graphics/pokemon/burmy/trash/overworld_shiny.pal diff --git a/graphics/pokemon/burmy/trash_cloak/shiny.pal b/graphics/pokemon/burmy/trash/shiny.pal similarity index 100% rename from graphics/pokemon/burmy/trash_cloak/shiny.pal rename to graphics/pokemon/burmy/trash/shiny.pal diff --git a/graphics/pokemon/butterfree/anim_front_gba.png b/graphics/pokemon/butterfree/anim_front_gba.png new file mode 100644 index 0000000000..1626e11c0b Binary files /dev/null and b/graphics/pokemon/butterfree/anim_front_gba.png differ diff --git a/graphics/pokemon/butterfree/back_gba.png b/graphics/pokemon/butterfree/back_gba.png new file mode 100644 index 0000000000..6887ed815e Binary files /dev/null and b/graphics/pokemon/butterfree/back_gba.png differ diff --git a/graphics/pokemon/butterfree/gigantamax/back.png b/graphics/pokemon/butterfree/gmax/back.png similarity index 100% rename from graphics/pokemon/butterfree/gigantamax/back.png rename to graphics/pokemon/butterfree/gmax/back.png diff --git a/graphics/pokemon/butterfree/gigantamax/front.png b/graphics/pokemon/butterfree/gmax/front.png similarity index 100% rename from graphics/pokemon/butterfree/gigantamax/front.png rename to graphics/pokemon/butterfree/gmax/front.png diff --git a/graphics/pokemon/butterfree/gigantamax/icon.png b/graphics/pokemon/butterfree/gmax/icon.png similarity index 100% rename from graphics/pokemon/butterfree/gigantamax/icon.png rename to graphics/pokemon/butterfree/gmax/icon.png diff --git a/graphics/pokemon/butterfree/gigantamax/normal.pal b/graphics/pokemon/butterfree/gmax/normal.pal similarity index 100% rename from graphics/pokemon/butterfree/gigantamax/normal.pal rename to graphics/pokemon/butterfree/gmax/normal.pal diff --git a/graphics/pokemon/butterfree/gigantamax/shiny.pal b/graphics/pokemon/butterfree/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/butterfree/gigantamax/shiny.pal rename to graphics/pokemon/butterfree/gmax/shiny.pal diff --git a/graphics/pokemon/butterfree/icon_gba.png b/graphics/pokemon/butterfree/icon_gba.png new file mode 100644 index 0000000000..11c4a379fa Binary files /dev/null and b/graphics/pokemon/butterfree/icon_gba.png differ diff --git a/graphics/pokemon/butterfree/normal_gba.pal b/graphics/pokemon/butterfree/normal_gba.pal new file mode 100644 index 0000000000..a59d4a5d50 --- /dev/null +++ b/graphics/pokemon/butterfree/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 164 123 +255 255 255 +16 16 16 +255 0 255 +180 180 197 +123 123 156 +82 82 115 +65 65 90 +255 197 106 +255 123 82 +213 90 41 +148 32 16 +230 230 230 +197 197 197 +156 205 197 +90 180 139 diff --git a/graphics/pokemon/butterfree/shiny_gba.pal b/graphics/pokemon/butterfree/shiny_gba.pal new file mode 100644 index 0000000000..da1e689909 --- /dev/null +++ b/graphics/pokemon/butterfree/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +16 16 16 +255 0 255 +189 189 205 +123 123 156 +90 90 123 +65 65 90 +164 255 98 +123 222 57 +82 180 16 +16 98 0 +255 197 205 +255 115 123 +255 189 197 +255 139 148 diff --git a/graphics/pokemon/buzzwole/icon.png b/graphics/pokemon/buzzwole/icon.png index 72e3270dac..c1126c081d 100644 Binary files a/graphics/pokemon/buzzwole/icon.png and b/graphics/pokemon/buzzwole/icon.png differ diff --git a/graphics/pokemon/cacnea/anim_front_gba.png b/graphics/pokemon/cacnea/anim_front_gba.png new file mode 100644 index 0000000000..ac3158742e Binary files /dev/null and b/graphics/pokemon/cacnea/anim_front_gba.png differ diff --git a/graphics/pokemon/cacnea/back_gba.png b/graphics/pokemon/cacnea/back_gba.png new file mode 100644 index 0000000000..dbc804775b Binary files /dev/null and b/graphics/pokemon/cacnea/back_gba.png differ diff --git a/graphics/pokemon/cacnea/icon_gba.png b/graphics/pokemon/cacnea/icon_gba.png new file mode 100644 index 0000000000..367f07668e Binary files /dev/null and b/graphics/pokemon/cacnea/icon_gba.png differ diff --git a/graphics/pokemon/cacnea/normal_gba.pal b/graphics/pokemon/cacnea/normal_gba.pal new file mode 100644 index 0000000000..2bfc05a1e1 --- /dev/null +++ b/graphics/pokemon/cacnea/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 172 98 +205 238 115 +172 205 98 +139 172 82 +106 139 65 +230 255 156 +123 205 106 +74 156 57 +65 115 41 +131 131 131 +49 82 41 +255 238 255 +255 213 74 +189 156 65 +255 238 148 +16 16 16 diff --git a/graphics/pokemon/cacnea/shiny_gba.pal b/graphics/pokemon/cacnea/shiny_gba.pal new file mode 100644 index 0000000000..67e730f614 --- /dev/null +++ b/graphics/pokemon/cacnea/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 172 98 +238 189 90 +205 156 57 +172 123 24 +139 90 0 +255 222 123 +205 106 57 +172 74 24 +139 41 0 +131 131 131 +74 24 0 +255 238 255 +255 213 74 +189 156 65 +255 238 148 +16 16 16 diff --git a/graphics/pokemon/cacturne/anim_front_gba.png b/graphics/pokemon/cacturne/anim_front_gba.png new file mode 100644 index 0000000000..2ee1646e8e Binary files /dev/null and b/graphics/pokemon/cacturne/anim_front_gba.png differ diff --git a/graphics/pokemon/cacturne/back_gba.png b/graphics/pokemon/cacturne/back_gba.png new file mode 100644 index 0000000000..9a67227d04 Binary files /dev/null and b/graphics/pokemon/cacturne/back_gba.png differ diff --git a/graphics/pokemon/cacturne/icon_gba.png b/graphics/pokemon/cacturne/icon_gba.png new file mode 100644 index 0000000000..948bea2d89 Binary files /dev/null and b/graphics/pokemon/cacturne/icon_gba.png differ diff --git a/graphics/pokemon/cacturne/normal_gba.pal b/graphics/pokemon/cacturne/normal_gba.pal new file mode 100644 index 0000000000..cd82816416 --- /dev/null +++ b/graphics/pokemon/cacturne/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 172 98 +180 213 115 +156 189 98 +131 164 82 +106 139 65 +98 197 106 +82 172 98 +65 164 90 +49 131 74 +98 115 74 +57 82 41 +205 238 115 +255 230 74 +139 115 115 +82 82 90 +16 16 16 diff --git a/graphics/pokemon/cacturne/shiny_gba.pal b/graphics/pokemon/cacturne/shiny_gba.pal new file mode 100644 index 0000000000..11914015b9 --- /dev/null +++ b/graphics/pokemon/cacturne/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 172 98 +238 189 90 +205 156 57 +172 123 24 +139 90 0 +205 106 57 +172 74 24 +139 41 0 +106 8 0 +106 57 0 +74 24 0 +255 222 123 +255 230 74 +139 115 115 +82 82 90 +16 16 16 diff --git a/graphics/pokemon/calyrex/ice_rider/back.png b/graphics/pokemon/calyrex/ice/back.png similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/back.png rename to graphics/pokemon/calyrex/ice/back.png diff --git a/graphics/pokemon/calyrex/ice_rider/front.png b/graphics/pokemon/calyrex/ice/front.png similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/front.png rename to graphics/pokemon/calyrex/ice/front.png diff --git a/graphics/pokemon/calyrex/ice_rider/icon.png b/graphics/pokemon/calyrex/ice/icon.png similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/icon.png rename to graphics/pokemon/calyrex/ice/icon.png diff --git a/graphics/pokemon/calyrex/ice_rider/normal.pal b/graphics/pokemon/calyrex/ice/normal.pal similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/normal.pal rename to graphics/pokemon/calyrex/ice/normal.pal diff --git a/graphics/pokemon/calyrex/ice_rider/overworld.png b/graphics/pokemon/calyrex/ice/overworld.png similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/overworld.png rename to graphics/pokemon/calyrex/ice/overworld.png diff --git a/graphics/pokemon/calyrex/ice_rider/overworld_normal.pal b/graphics/pokemon/calyrex/ice/overworld_normal.pal similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/overworld_normal.pal rename to graphics/pokemon/calyrex/ice/overworld_normal.pal diff --git a/graphics/pokemon/calyrex/ice_rider/overworld_shiny.pal b/graphics/pokemon/calyrex/ice/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/overworld_shiny.pal rename to graphics/pokemon/calyrex/ice/overworld_shiny.pal diff --git a/graphics/pokemon/calyrex/ice_rider/shiny.pal b/graphics/pokemon/calyrex/ice/shiny.pal similarity index 100% rename from graphics/pokemon/calyrex/ice_rider/shiny.pal rename to graphics/pokemon/calyrex/ice/shiny.pal diff --git a/graphics/pokemon/calyrex/shadow_rider/back.png b/graphics/pokemon/calyrex/shadow/back.png similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/back.png rename to graphics/pokemon/calyrex/shadow/back.png diff --git a/graphics/pokemon/calyrex/shadow_rider/front.png b/graphics/pokemon/calyrex/shadow/front.png similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/front.png rename to graphics/pokemon/calyrex/shadow/front.png diff --git a/graphics/pokemon/calyrex/shadow_rider/icon.png b/graphics/pokemon/calyrex/shadow/icon.png similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/icon.png rename to graphics/pokemon/calyrex/shadow/icon.png diff --git a/graphics/pokemon/calyrex/shadow_rider/normal.pal b/graphics/pokemon/calyrex/shadow/normal.pal similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/normal.pal rename to graphics/pokemon/calyrex/shadow/normal.pal diff --git a/graphics/pokemon/calyrex/shadow_rider/overworld.png b/graphics/pokemon/calyrex/shadow/overworld.png similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/overworld.png rename to graphics/pokemon/calyrex/shadow/overworld.png diff --git a/graphics/pokemon/calyrex/shadow_rider/overworld_normal.pal b/graphics/pokemon/calyrex/shadow/overworld_normal.pal similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/overworld_normal.pal rename to graphics/pokemon/calyrex/shadow/overworld_normal.pal diff --git a/graphics/pokemon/calyrex/shadow_rider/overworld_shiny.pal b/graphics/pokemon/calyrex/shadow/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/overworld_shiny.pal rename to graphics/pokemon/calyrex/shadow/overworld_shiny.pal diff --git a/graphics/pokemon/calyrex/shadow_rider/shiny.pal b/graphics/pokemon/calyrex/shadow/shiny.pal similarity index 100% rename from graphics/pokemon/calyrex/shadow_rider/shiny.pal rename to graphics/pokemon/calyrex/shadow/shiny.pal diff --git a/graphics/pokemon/camerupt/anim_front_gba.png b/graphics/pokemon/camerupt/anim_front_gba.png new file mode 100644 index 0000000000..b63d901ba5 Binary files /dev/null and b/graphics/pokemon/camerupt/anim_front_gba.png differ diff --git a/graphics/pokemon/camerupt/back_gba.png b/graphics/pokemon/camerupt/back_gba.png new file mode 100644 index 0000000000..3b17447551 Binary files /dev/null and b/graphics/pokemon/camerupt/back_gba.png differ diff --git a/graphics/pokemon/camerupt/icon_gba.png b/graphics/pokemon/camerupt/icon_gba.png new file mode 100644 index 0000000000..372fc7ce0a Binary files /dev/null and b/graphics/pokemon/camerupt/icon_gba.png differ diff --git a/graphics/pokemon/camerupt/normal_gba.pal b/graphics/pokemon/camerupt/normal_gba.pal new file mode 100644 index 0000000000..bd1096ff62 --- /dev/null +++ b/graphics/pokemon/camerupt/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 106 156 +24 24 24 +82 49 24 +189 82 41 +230 106 24 +238 172 74 +74 74 139 +131 131 189 +189 180 189 +0 0 0 +189 123 106 +238 238 205 +213 213 131 +172 172 90 +74 74 32 +255 255 255 diff --git a/graphics/pokemon/camerupt/shiny_gba.pal b/graphics/pokemon/camerupt/shiny_gba.pal new file mode 100644 index 0000000000..c402d68ddd --- /dev/null +++ b/graphics/pokemon/camerupt/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +106 106 156 +41 41 24 +41 41 57 +57 65 82 +115 106 123 +148 139 156 +222 172 74 +255 246 115 +222 213 222 +0 0 0 +197 139 57 +255 255 255 +238 189 156 +197 148 115 +115 74 49 +255 255 255 diff --git a/graphics/pokemon/carvanha/anim_front_gba.png b/graphics/pokemon/carvanha/anim_front_gba.png new file mode 100644 index 0000000000..ec2df0cf93 Binary files /dev/null and b/graphics/pokemon/carvanha/anim_front_gba.png differ diff --git a/graphics/pokemon/carvanha/back_gba.png b/graphics/pokemon/carvanha/back_gba.png new file mode 100644 index 0000000000..cef8c25ddd Binary files /dev/null and b/graphics/pokemon/carvanha/back_gba.png differ diff --git a/graphics/pokemon/carvanha/icon_gba.png b/graphics/pokemon/carvanha/icon_gba.png new file mode 100644 index 0000000000..6b0d48a8a9 Binary files /dev/null and b/graphics/pokemon/carvanha/icon_gba.png differ diff --git a/graphics/pokemon/carvanha/normal_gba.pal b/graphics/pokemon/carvanha/normal_gba.pal new file mode 100644 index 0000000000..fbe24d28b6 --- /dev/null +++ b/graphics/pokemon/carvanha/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 131 213 +41 41 90 +172 197 255 +98 74 57 +49 74 156 +65 123 189 +98 164 222 +189 57 57 +246 57 57 +255 131 131 +205 148 41 +238 189 41 +255 205 82 +123 57 57 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/carvanha/shiny_gba.pal b/graphics/pokemon/carvanha/shiny_gba.pal new file mode 100644 index 0000000000..0e0cb92681 --- /dev/null +++ b/graphics/pokemon/carvanha/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 131 213 +41 41 90 +172 197 255 +98 74 57 +123 156 24 +156 189 57 +189 222 90 +49 148 131 +82 180 164 +115 213 197 +205 148 41 +238 189 41 +255 205 82 +0 98 82 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/cascoon/anim_front_gba.png b/graphics/pokemon/cascoon/anim_front_gba.png new file mode 100644 index 0000000000..19080ba2c9 Binary files /dev/null and b/graphics/pokemon/cascoon/anim_front_gba.png differ diff --git a/graphics/pokemon/cascoon/back_gba.png b/graphics/pokemon/cascoon/back_gba.png new file mode 100644 index 0000000000..fb6bc2955f Binary files /dev/null and b/graphics/pokemon/cascoon/back_gba.png differ diff --git a/graphics/pokemon/cascoon/icon_gba.png b/graphics/pokemon/cascoon/icon_gba.png new file mode 100644 index 0000000000..4d49506c09 Binary files /dev/null and b/graphics/pokemon/cascoon/icon_gba.png differ diff --git a/graphics/pokemon/cascoon/normal_gba.pal b/graphics/pokemon/cascoon/normal_gba.pal new file mode 100644 index 0000000000..05dceb9317 --- /dev/null +++ b/graphics/pokemon/cascoon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 197 +106 98 115 +139 139 148 +172 172 180 +0 0 0 +172 156 189 +222 180 230 +238 213 230 +238 230 255 +115 0 0 +246 197 0 +189 49 0 +148 148 0 +246 255 197 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/cascoon/shiny_gba.pal b/graphics/pokemon/cascoon/shiny_gba.pal new file mode 100644 index 0000000000..e8b230ed1a --- /dev/null +++ b/graphics/pokemon/cascoon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 197 +49 98 16 +82 148 24 +115 180 57 +0 0 0 +139 205 74 +172 230 98 +213 255 148 +238 255 172 +115 0 0 +246 197 0 +189 49 0 +148 148 0 +246 255 197 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/caterpie/anim_front_gba.png b/graphics/pokemon/caterpie/anim_front_gba.png new file mode 100644 index 0000000000..602b7e30f5 Binary files /dev/null and b/graphics/pokemon/caterpie/anim_front_gba.png differ diff --git a/graphics/pokemon/caterpie/back_gba.png b/graphics/pokemon/caterpie/back_gba.png new file mode 100644 index 0000000000..801748d1c3 Binary files /dev/null and b/graphics/pokemon/caterpie/back_gba.png differ diff --git a/graphics/pokemon/caterpie/icon_gba.png b/graphics/pokemon/caterpie/icon_gba.png new file mode 100644 index 0000000000..be20669c3c Binary files /dev/null and b/graphics/pokemon/caterpie/icon_gba.png differ diff --git a/graphics/pokemon/caterpie/normal_gba.pal b/graphics/pokemon/caterpie/normal_gba.pal new file mode 100644 index 0000000000..c672687ac6 --- /dev/null +++ b/graphics/pokemon/caterpie/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 197 98 +238 238 123 +213 205 98 +255 172 115 +238 123 49 +197 65 65 +123 98 57 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +255 0 255 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/caterpie/shiny_gba.pal b/graphics/pokemon/caterpie/shiny_gba.pal new file mode 100644 index 0000000000..4b797001e3 --- /dev/null +++ b/graphics/pokemon/caterpie/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 197 98 +255 230 156 +255 213 106 +230 172 90 +255 32 57 +148 0 24 +148 98 24 +255 255 123 +255 246 32 +255 189 0 +148 82 16 +255 0 255 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/celebi/anim_front_gba.png b/graphics/pokemon/celebi/anim_front_gba.png new file mode 100644 index 0000000000..e4b6a9d619 Binary files /dev/null and b/graphics/pokemon/celebi/anim_front_gba.png differ diff --git a/graphics/pokemon/celebi/back_gba.png b/graphics/pokemon/celebi/back_gba.png new file mode 100644 index 0000000000..c43e455dc1 Binary files /dev/null and b/graphics/pokemon/celebi/back_gba.png differ diff --git a/graphics/pokemon/celebi/icon_gba.png b/graphics/pokemon/celebi/icon_gba.png new file mode 100644 index 0000000000..245d580f74 Binary files /dev/null and b/graphics/pokemon/celebi/icon_gba.png differ diff --git a/graphics/pokemon/celebi/normal_gba.pal b/graphics/pokemon/celebi/normal_gba.pal new file mode 100644 index 0000000000..aed1b3ec2c --- /dev/null +++ b/graphics/pokemon/celebi/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 255 213 +197 238 164 +123 213 115 +65 189 65 +32 139 32 +255 255 255 +172 238 255 +115 189 230 +57 139 205 +0 98 180 +255 0 255 +180 180 189 +106 115 131 +16 16 16 diff --git a/graphics/pokemon/celebi/shiny_gba.pal b/graphics/pokemon/celebi/shiny_gba.pal new file mode 100644 index 0000000000..b90d6ed435 --- /dev/null +++ b/graphics/pokemon/celebi/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 230 +255 238 230 +255 205 197 +238 164 156 +222 106 131 +172 57 65 +255 255 255 +189 222 238 +106 213 90 +74 180 65 +41 148 41 +222 32 222 +180 180 189 +106 115 131 +49 49 49 diff --git a/graphics/pokemon/celesteela/icon.png b/graphics/pokemon/celesteela/icon.png index 854c36851a..7722e43dac 100644 Binary files a/graphics/pokemon/celesteela/icon.png and b/graphics/pokemon/celesteela/icon.png differ diff --git a/graphics/pokemon/centiskorch/gigantamax/back.png b/graphics/pokemon/centiskorch/gmax/back.png similarity index 100% rename from graphics/pokemon/centiskorch/gigantamax/back.png rename to graphics/pokemon/centiskorch/gmax/back.png diff --git a/graphics/pokemon/centiskorch/gigantamax/front.png b/graphics/pokemon/centiskorch/gmax/front.png similarity index 100% rename from graphics/pokemon/centiskorch/gigantamax/front.png rename to graphics/pokemon/centiskorch/gmax/front.png diff --git a/graphics/pokemon/centiskorch/gigantamax/icon.png b/graphics/pokemon/centiskorch/gmax/icon.png similarity index 100% rename from graphics/pokemon/centiskorch/gigantamax/icon.png rename to graphics/pokemon/centiskorch/gmax/icon.png diff --git a/graphics/pokemon/centiskorch/gigantamax/normal.pal b/graphics/pokemon/centiskorch/gmax/normal.pal similarity index 100% rename from graphics/pokemon/centiskorch/gigantamax/normal.pal rename to graphics/pokemon/centiskorch/gmax/normal.pal diff --git a/graphics/pokemon/centiskorch/gigantamax/shiny.pal b/graphics/pokemon/centiskorch/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/centiskorch/gigantamax/shiny.pal rename to graphics/pokemon/centiskorch/gmax/shiny.pal diff --git a/graphics/pokemon/chansey/anim_front_gba.png b/graphics/pokemon/chansey/anim_front_gba.png new file mode 100644 index 0000000000..1fa9b268d1 Binary files /dev/null and b/graphics/pokemon/chansey/anim_front_gba.png differ diff --git a/graphics/pokemon/chansey/back_gba.png b/graphics/pokemon/chansey/back_gba.png new file mode 100644 index 0000000000..db61e1c116 Binary files /dev/null and b/graphics/pokemon/chansey/back_gba.png differ diff --git a/graphics/pokemon/chansey/icon_gba.png b/graphics/pokemon/chansey/icon_gba.png new file mode 100644 index 0000000000..4083185b03 Binary files /dev/null and b/graphics/pokemon/chansey/icon_gba.png differ diff --git a/graphics/pokemon/chansey/normal_gba.pal b/graphics/pokemon/chansey/normal_gba.pal new file mode 100644 index 0000000000..556aaa5e1d --- /dev/null +++ b/graphics/pokemon/chansey/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +246 238 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 172 172 +255 131 90 +238 90 49 +255 222 222 +255 213 213 +255 172 172 +246 115 115 +180 65 49 diff --git a/graphics/pokemon/chansey/shiny_gba.pal b/graphics/pokemon/chansey/shiny_gba.pal new file mode 100644 index 0000000000..e8107f8d5a --- /dev/null +++ b/graphics/pokemon/chansey/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +246 238 164 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +180 238 106 +148 213 82 +106 189 49 +255 255 230 +255 238 205 +246 205 139 +230 172 98 +123 90 16 diff --git a/graphics/pokemon/charizard/anim_front_gba.png b/graphics/pokemon/charizard/anim_front_gba.png new file mode 100644 index 0000000000..b3ed323382 Binary files /dev/null and b/graphics/pokemon/charizard/anim_front_gba.png differ diff --git a/graphics/pokemon/charizard/back_gba.png b/graphics/pokemon/charizard/back_gba.png new file mode 100644 index 0000000000..22cf6b0432 Binary files /dev/null and b/graphics/pokemon/charizard/back_gba.png differ diff --git a/graphics/pokemon/charizard/gigantamax/back.png b/graphics/pokemon/charizard/gmax/back.png similarity index 100% rename from graphics/pokemon/charizard/gigantamax/back.png rename to graphics/pokemon/charizard/gmax/back.png diff --git a/graphics/pokemon/charizard/gigantamax/front.png b/graphics/pokemon/charizard/gmax/front.png similarity index 100% rename from graphics/pokemon/charizard/gigantamax/front.png rename to graphics/pokemon/charizard/gmax/front.png diff --git a/graphics/pokemon/charizard/gigantamax/icon.png b/graphics/pokemon/charizard/gmax/icon.png similarity index 100% rename from graphics/pokemon/charizard/gigantamax/icon.png rename to graphics/pokemon/charizard/gmax/icon.png diff --git a/graphics/pokemon/charizard/gigantamax/normal.pal b/graphics/pokemon/charizard/gmax/normal.pal similarity index 100% rename from graphics/pokemon/charizard/gigantamax/normal.pal rename to graphics/pokemon/charizard/gmax/normal.pal diff --git a/graphics/pokemon/charizard/gigantamax/shiny.pal b/graphics/pokemon/charizard/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/charizard/gigantamax/shiny.pal rename to graphics/pokemon/charizard/gmax/shiny.pal diff --git a/graphics/pokemon/charizard/icon_gba.png b/graphics/pokemon/charizard/icon_gba.png new file mode 100644 index 0000000000..9c8140887b Binary files /dev/null and b/graphics/pokemon/charizard/icon_gba.png differ diff --git a/graphics/pokemon/charizard/normal_gba.pal b/graphics/pokemon/charizard/normal_gba.pal new file mode 100644 index 0000000000..154a0f0c55 --- /dev/null +++ b/graphics/pokemon/charizard/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +238 82 65 +197 49 32 +41 172 189 +32 123 148 +24 65 106 +255 230 156 +255 213 106 +255 164 90 +16 16 16 +255 197 98 +255 148 65 +222 98 32 +148 49 0 +213 213 213 +255 255 255 diff --git a/graphics/pokemon/charizard/shiny_gba.pal b/graphics/pokemon/charizard/shiny_gba.pal new file mode 100644 index 0000000000..0704ae619e --- /dev/null +++ b/graphics/pokemon/charizard/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +238 82 65 +197 49 32 +222 98 106 +189 65 74 +156 32 41 +238 238 156 +222 213 131 +205 189 106 +16 16 16 +131 156 156 +98 123 123 +65 90 90 +32 57 57 +213 213 213 +255 255 255 diff --git a/graphics/pokemon/charjabug/icon.png b/graphics/pokemon/charjabug/icon.png index eb2f9206e9..6743ab6818 100644 Binary files a/graphics/pokemon/charjabug/icon.png and b/graphics/pokemon/charjabug/icon.png differ diff --git a/graphics/pokemon/charmander/anim_front_gba.png b/graphics/pokemon/charmander/anim_front_gba.png new file mode 100644 index 0000000000..b4f1a3c737 Binary files /dev/null and b/graphics/pokemon/charmander/anim_front_gba.png differ diff --git a/graphics/pokemon/charmander/back_gba.png b/graphics/pokemon/charmander/back_gba.png new file mode 100644 index 0000000000..9e3eb944ed Binary files /dev/null and b/graphics/pokemon/charmander/back_gba.png differ diff --git a/graphics/pokemon/charmander/icon_gba.png b/graphics/pokemon/charmander/icon_gba.png new file mode 100644 index 0000000000..c3fa4fde47 Binary files /dev/null and b/graphics/pokemon/charmander/icon_gba.png differ diff --git a/graphics/pokemon/charmander/normal_gba.pal b/graphics/pokemon/charmander/normal_gba.pal new file mode 100644 index 0000000000..1e542aa488 --- /dev/null +++ b/graphics/pokemon/charmander/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +180 180 180 +255 255 255 +255 230 156 +255 213 106 +230 172 90 +213 65 8 +246 148 8 +255 197 98 +255 148 65 +222 82 32 +148 49 0 +24 74 49 +65 164 123 +148 205 222 diff --git a/graphics/pokemon/charmander/shiny_gba.pal b/graphics/pokemon/charmander/shiny_gba.pal new file mode 100644 index 0000000000..3b5bff449f --- /dev/null +++ b/graphics/pokemon/charmander/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +180 180 180 +255 255 255 +255 255 180 +255 230 148 +246 197 115 +213 65 8 +246 148 8 +255 246 90 +255 213 49 +222 172 8 +148 32 16 +24 74 49 +65 164 123 +148 205 222 diff --git a/graphics/pokemon/charmeleon/anim_front_gba.png b/graphics/pokemon/charmeleon/anim_front_gba.png new file mode 100644 index 0000000000..909f4f394e Binary files /dev/null and b/graphics/pokemon/charmeleon/anim_front_gba.png differ diff --git a/graphics/pokemon/charmeleon/back_gba.png b/graphics/pokemon/charmeleon/back_gba.png new file mode 100644 index 0000000000..d2fb0c7769 Binary files /dev/null and b/graphics/pokemon/charmeleon/back_gba.png differ diff --git a/graphics/pokemon/charmeleon/icon_gba.png b/graphics/pokemon/charmeleon/icon_gba.png new file mode 100644 index 0000000000..0f1550d0c9 Binary files /dev/null and b/graphics/pokemon/charmeleon/icon_gba.png differ diff --git a/graphics/pokemon/charmeleon/normal_gba.pal b/graphics/pokemon/charmeleon/normal_gba.pal new file mode 100644 index 0000000000..400b49d5c0 --- /dev/null +++ b/graphics/pokemon/charmeleon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +106 106 106 +255 0 255 +255 230 156 +255 213 106 +230 172 90 +213 65 8 +246 148 8 +255 0 255 +255 180 98 +255 106 74 +213 74 32 +148 32 16 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/charmeleon/shiny_gba.pal b/graphics/pokemon/charmeleon/shiny_gba.pal new file mode 100644 index 0000000000..7b7b96e79c --- /dev/null +++ b/graphics/pokemon/charmeleon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +106 106 106 +255 0 255 +255 230 156 +255 213 106 +230 172 90 +222 82 57 +246 148 106 +255 0 255 +255 238 164 +255 222 65 +238 164 16 +164 41 8 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/chikorita/anim_front_gba.png b/graphics/pokemon/chikorita/anim_front_gba.png new file mode 100644 index 0000000000..fcc5174d2a Binary files /dev/null and b/graphics/pokemon/chikorita/anim_front_gba.png differ diff --git a/graphics/pokemon/chikorita/back_gba.png b/graphics/pokemon/chikorita/back_gba.png new file mode 100644 index 0000000000..18c3569bfa Binary files /dev/null and b/graphics/pokemon/chikorita/back_gba.png differ diff --git a/graphics/pokemon/chikorita/icon_gba.png b/graphics/pokemon/chikorita/icon_gba.png new file mode 100644 index 0000000000..f9bc40d0e2 Binary files /dev/null and b/graphics/pokemon/chikorita/icon_gba.png differ diff --git a/graphics/pokemon/chikorita/normal_gba.pal b/graphics/pokemon/chikorita/normal_gba.pal new file mode 100644 index 0000000000..9bca4c3ebe --- /dev/null +++ b/graphics/pokemon/chikorita/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 255 131 +205 238 98 +156 197 8 +74 115 0 +98 172 74 +57 131 41 +0 90 0 +0 57 0 +205 205 205 +156 156 156 +98 98 98 +16 16 16 +213 131 82 +148 0 0 diff --git a/graphics/pokemon/chikorita/shiny_gba.pal b/graphics/pokemon/chikorita/shiny_gba.pal new file mode 100644 index 0000000000..d7ecae6fb4 --- /dev/null +++ b/graphics/pokemon/chikorita/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 148 +246 238 90 +205 197 57 +131 106 16 +246 189 106 +213 156 74 +164 98 24 +90 65 41 +205 205 205 +156 156 156 +156 131 74 +16 16 16 +222 156 115 +172 57 57 diff --git a/graphics/pokemon/chimecho/anim_front_gba.png b/graphics/pokemon/chimecho/anim_front_gba.png new file mode 100644 index 0000000000..26acbd0a06 Binary files /dev/null and b/graphics/pokemon/chimecho/anim_front_gba.png differ diff --git a/graphics/pokemon/chimecho/back_gba.png b/graphics/pokemon/chimecho/back_gba.png new file mode 100644 index 0000000000..7a3fedacba Binary files /dev/null and b/graphics/pokemon/chimecho/back_gba.png differ diff --git a/graphics/pokemon/chimecho/icon_gba.png b/graphics/pokemon/chimecho/icon_gba.png new file mode 100644 index 0000000000..11b2d93b26 Binary files /dev/null and b/graphics/pokemon/chimecho/icon_gba.png differ diff --git a/graphics/pokemon/chimecho/normal_gba.pal b/graphics/pokemon/chimecho/normal_gba.pal new file mode 100644 index 0000000000..9dd34b7c4f --- /dev/null +++ b/graphics/pokemon/chimecho/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +0 0 0 +255 123 148 +156 197 230 +197 230 255 +115 148 180 +255 255 255 +164 164 164 +255 230 148 +255 213 90 +65 74 106 +197 74 98 +123 41 65 +246 90 115 +246 189 90 +172 115 74 diff --git a/graphics/pokemon/chimecho/shiny_gba.pal b/graphics/pokemon/chimecho/shiny_gba.pal new file mode 100644 index 0000000000..44983802b3 --- /dev/null +++ b/graphics/pokemon/chimecho/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +0 0 0 +255 189 90 +148 230 148 +205 255 172 +98 189 98 +255 255 255 +164 164 164 +255 230 148 +255 213 90 +49 123 74 +197 106 24 +148 74 0 +255 148 24 +246 189 90 +172 115 74 diff --git a/graphics/pokemon/chinchou/anim_front_gba.png b/graphics/pokemon/chinchou/anim_front_gba.png new file mode 100644 index 0000000000..a573e69856 Binary files /dev/null and b/graphics/pokemon/chinchou/anim_front_gba.png differ diff --git a/graphics/pokemon/chinchou/back_gba.png b/graphics/pokemon/chinchou/back_gba.png new file mode 100644 index 0000000000..a3b11b2dc5 Binary files /dev/null and b/graphics/pokemon/chinchou/back_gba.png differ diff --git a/graphics/pokemon/chinchou/icon_gba.png b/graphics/pokemon/chinchou/icon_gba.png new file mode 100644 index 0000000000..1b585204b9 Binary files /dev/null and b/graphics/pokemon/chinchou/icon_gba.png differ diff --git a/graphics/pokemon/chinchou/normal_gba.pal b/graphics/pokemon/chinchou/normal_gba.pal new file mode 100644 index 0000000000..fc382ddbb3 --- /dev/null +++ b/graphics/pokemon/chinchou/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 230 255 +164 205 255 +139 156 255 +98 123 213 +65 90 172 +0 57 115 +255 246 172 +255 222 123 +213 180 90 +180 139 57 +106 57 0 +139 98 24 +164 0 0 +16 16 16 diff --git a/graphics/pokemon/chinchou/shiny_gba.pal b/graphics/pokemon/chinchou/shiny_gba.pal new file mode 100644 index 0000000000..babb781788 --- /dev/null +++ b/graphics/pokemon/chinchou/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +148 238 255 +123 222 255 +82 180 255 +41 139 222 +8 90 180 +24 57 131 +213 255 115 +164 246 65 +123 205 74 +90 172 49 +57 139 24 +32 82 24 +148 57 0 +16 16 16 diff --git a/graphics/pokemon/cinderace/gigantamax/icon.png b/graphics/pokemon/cinderace/gigantamax/icon.png deleted file mode 100644 index 3d1f1e4237..0000000000 Binary files a/graphics/pokemon/cinderace/gigantamax/icon.png and /dev/null differ diff --git a/graphics/pokemon/cinderace/gigantamax/back.png b/graphics/pokemon/cinderace/gmax/back.png similarity index 100% rename from graphics/pokemon/cinderace/gigantamax/back.png rename to graphics/pokemon/cinderace/gmax/back.png diff --git a/graphics/pokemon/cinderace/gigantamax/front.png b/graphics/pokemon/cinderace/gmax/front.png similarity index 100% rename from graphics/pokemon/cinderace/gigantamax/front.png rename to graphics/pokemon/cinderace/gmax/front.png diff --git a/graphics/pokemon/cinderace/gmax/icon.png b/graphics/pokemon/cinderace/gmax/icon.png new file mode 100644 index 0000000000..791801bb65 Binary files /dev/null and b/graphics/pokemon/cinderace/gmax/icon.png differ diff --git a/graphics/pokemon/cinderace/gigantamax/normal.pal b/graphics/pokemon/cinderace/gmax/normal.pal similarity index 100% rename from graphics/pokemon/cinderace/gigantamax/normal.pal rename to graphics/pokemon/cinderace/gmax/normal.pal diff --git a/graphics/pokemon/cinderace/gigantamax/shiny.pal b/graphics/pokemon/cinderace/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/cinderace/gigantamax/shiny.pal rename to graphics/pokemon/cinderace/gmax/shiny.pal diff --git a/graphics/pokemon/clamperl/anim_front_gba.png b/graphics/pokemon/clamperl/anim_front_gba.png new file mode 100644 index 0000000000..21e547219d Binary files /dev/null and b/graphics/pokemon/clamperl/anim_front_gba.png differ diff --git a/graphics/pokemon/clamperl/back_gba.png b/graphics/pokemon/clamperl/back_gba.png new file mode 100644 index 0000000000..5b1324473c Binary files /dev/null and b/graphics/pokemon/clamperl/back_gba.png differ diff --git a/graphics/pokemon/clamperl/icon_gba.png b/graphics/pokemon/clamperl/icon_gba.png new file mode 100644 index 0000000000..fabcd96416 Binary files /dev/null and b/graphics/pokemon/clamperl/icon_gba.png differ diff --git a/graphics/pokemon/clamperl/normal_gba.pal b/graphics/pokemon/clamperl/normal_gba.pal new file mode 100644 index 0000000000..84d7303992 --- /dev/null +++ b/graphics/pokemon/clamperl/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 246 156 +255 255 255 +205 213 213 +139 164 148 +197 213 246 +139 189 205 +74 139 131 +41 65 131 +98 139 246 +49 90 205 +0 41 82 +123 189 255 +0 0 0 +255 123 213 +213 115 131 +115 74 90 diff --git a/graphics/pokemon/clamperl/shiny_gba.pal b/graphics/pokemon/clamperl/shiny_gba.pal new file mode 100644 index 0000000000..d479da971c --- /dev/null +++ b/graphics/pokemon/clamperl/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 246 156 +255 255 255 +205 213 213 +139 164 148 +197 213 246 +139 189 205 +74 139 131 +41 65 131 +197 65 180 +148 8 123 +0 41 82 +222 131 205 +0 0 0 +255 230 156 +230 172 90 +115 74 90 diff --git a/graphics/pokemon/claydol/anim_front_gba.png b/graphics/pokemon/claydol/anim_front_gba.png new file mode 100644 index 0000000000..034ff32628 Binary files /dev/null and b/graphics/pokemon/claydol/anim_front_gba.png differ diff --git a/graphics/pokemon/claydol/back_gba.png b/graphics/pokemon/claydol/back_gba.png new file mode 100644 index 0000000000..9fdd6e0c21 Binary files /dev/null and b/graphics/pokemon/claydol/back_gba.png differ diff --git a/graphics/pokemon/claydol/icon_gba.png b/graphics/pokemon/claydol/icon_gba.png new file mode 100644 index 0000000000..3f3f04ead9 Binary files /dev/null and b/graphics/pokemon/claydol/icon_gba.png differ diff --git a/graphics/pokemon/claydol/normal_gba.pal b/graphics/pokemon/claydol/normal_gba.pal new file mode 100644 index 0000000000..cd7f876c53 --- /dev/null +++ b/graphics/pokemon/claydol/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +82 82 41 +106 106 65 +148 156 123 +98 98 24 +156 148 189 +197 197 213 +255 255 255 +255 197 164 +246 123 90 +172 90 0 +255 213 115 +180 164 123 +255 255 255 +255 255 255 +106 255 106 diff --git a/graphics/pokemon/claydol/shiny_gba.pal b/graphics/pokemon/claydol/shiny_gba.pal new file mode 100644 index 0000000000..e4203b19b4 --- /dev/null +++ b/graphics/pokemon/claydol/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +82 82 41 +106 106 65 +148 156 123 +98 98 24 +156 148 189 +197 197 213 +255 255 255 +246 238 90 +246 205 57 +197 156 16 +255 213 115 +180 164 123 +255 255 255 +255 255 255 +106 255 106 diff --git a/graphics/pokemon/clefable/anim_front_gba.png b/graphics/pokemon/clefable/anim_front_gba.png new file mode 100644 index 0000000000..ee7af0d1bb Binary files /dev/null and b/graphics/pokemon/clefable/anim_front_gba.png differ diff --git a/graphics/pokemon/clefable/back_gba.png b/graphics/pokemon/clefable/back_gba.png new file mode 100644 index 0000000000..42592b8d7b Binary files /dev/null and b/graphics/pokemon/clefable/back_gba.png differ diff --git a/graphics/pokemon/clefable/icon_gba.png b/graphics/pokemon/clefable/icon_gba.png new file mode 100644 index 0000000000..4078e28549 Binary files /dev/null and b/graphics/pokemon/clefable/icon_gba.png differ diff --git a/graphics/pokemon/clefable/normal_gba.pal b/graphics/pokemon/clefable/normal_gba.pal new file mode 100644 index 0000000000..0befc3d13c --- /dev/null +++ b/graphics/pokemon/clefable/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +197 197 197 +148 148 148 +255 0 255 +255 197 164 +255 156 131 +255 106 90 +180 57 41 +16 16 16 +255 106 41 +222 32 16 +139 115 74 +115 90 49 +90 65 24 +255 0 255 diff --git a/graphics/pokemon/clefable/shiny_gba.pal b/graphics/pokemon/clefable/shiny_gba.pal new file mode 100644 index 0000000000..d89afdc817 --- /dev/null +++ b/graphics/pokemon/clefable/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +197 197 197 +148 148 148 +255 0 255 +255 230 255 +255 189 213 +255 148 172 +148 41 65 +16 16 16 +255 106 41 +222 32 16 +123 222 90 +82 180 49 +41 139 8 +255 0 255 diff --git a/graphics/pokemon/clefairy/anim_front_gba.png b/graphics/pokemon/clefairy/anim_front_gba.png new file mode 100644 index 0000000000..6334140223 Binary files /dev/null and b/graphics/pokemon/clefairy/anim_front_gba.png differ diff --git a/graphics/pokemon/clefairy/back_gba.png b/graphics/pokemon/clefairy/back_gba.png new file mode 100644 index 0000000000..6720a78652 Binary files /dev/null and b/graphics/pokemon/clefairy/back_gba.png differ diff --git a/graphics/pokemon/clefairy/icon_gba.png b/graphics/pokemon/clefairy/icon_gba.png new file mode 100644 index 0000000000..7895bb93c4 Binary files /dev/null and b/graphics/pokemon/clefairy/icon_gba.png differ diff --git a/graphics/pokemon/clefairy/normal_gba.pal b/graphics/pokemon/clefairy/normal_gba.pal new file mode 100644 index 0000000000..7a7bcf171a --- /dev/null +++ b/graphics/pokemon/clefairy/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +197 197 197 +148 148 148 +238 90 74 +180 57 41 +205 131 82 +172 98 49 +156 82 32 +115 41 8 +255 0 255 +255 197 164 +255 156 131 +230 131 123 +156 90 82 +16 16 16 diff --git a/graphics/pokemon/clefairy/shiny_gba.pal b/graphics/pokemon/clefairy/shiny_gba.pal new file mode 100644 index 0000000000..7cb5d7bfcb --- /dev/null +++ b/graphics/pokemon/clefairy/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +197 197 197 +148 148 148 +255 57 41 +222 32 16 +123 222 90 +82 180 49 +41 139 8 +0 98 0 +255 0 255 +255 230 255 +255 189 213 +255 148 172 +148 41 65 +16 16 16 diff --git a/graphics/pokemon/cleffa/anim_front_gba.png b/graphics/pokemon/cleffa/anim_front_gba.png new file mode 100644 index 0000000000..19256d0786 Binary files /dev/null and b/graphics/pokemon/cleffa/anim_front_gba.png differ diff --git a/graphics/pokemon/cleffa/back_gba.png b/graphics/pokemon/cleffa/back_gba.png new file mode 100644 index 0000000000..b110614e1b Binary files /dev/null and b/graphics/pokemon/cleffa/back_gba.png differ diff --git a/graphics/pokemon/cleffa/icon_gba.png b/graphics/pokemon/cleffa/icon_gba.png new file mode 100644 index 0000000000..e866394f00 Binary files /dev/null and b/graphics/pokemon/cleffa/icon_gba.png differ diff --git a/graphics/pokemon/cleffa/normal_gba.pal b/graphics/pokemon/cleffa/normal_gba.pal new file mode 100644 index 0000000000..757446357d --- /dev/null +++ b/graphics/pokemon/cleffa/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 205 156 +255 164 131 +222 115 65 +197 74 0 +98 49 32 +213 164 41 +164 106 0 +123 74 0 +90 49 0 +255 0 255 +205 0 0 +156 0 0 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/cleffa/shiny_gba.pal b/graphics/pokemon/cleffa/shiny_gba.pal new file mode 100644 index 0000000000..1af070d660 --- /dev/null +++ b/graphics/pokemon/cleffa/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 222 222 +255 189 197 +238 123 148 +180 82 82 +32 98 0 +123 222 90 +82 180 49 +41 139 8 +0 98 0 +255 0 255 +205 0 0 +156 0 0 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/cloyster/anim_front_gba.png b/graphics/pokemon/cloyster/anim_front_gba.png new file mode 100644 index 0000000000..e6331a1267 Binary files /dev/null and b/graphics/pokemon/cloyster/anim_front_gba.png differ diff --git a/graphics/pokemon/cloyster/back_gba.png b/graphics/pokemon/cloyster/back_gba.png new file mode 100644 index 0000000000..fa69b7b59c Binary files /dev/null and b/graphics/pokemon/cloyster/back_gba.png differ diff --git a/graphics/pokemon/cloyster/icon_gba.png b/graphics/pokemon/cloyster/icon_gba.png new file mode 100644 index 0000000000..71ca401c40 Binary files /dev/null and b/graphics/pokemon/cloyster/icon_gba.png differ diff --git a/graphics/pokemon/cloyster/normal_gba.pal b/graphics/pokemon/cloyster/normal_gba.pal new file mode 100644 index 0000000000..a53db8d442 --- /dev/null +++ b/graphics/pokemon/cloyster/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +222 180 238 +172 123 189 +123 82 131 +74 32 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 197 197 +148 148 148 +98 98 98 +65 65 65 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/cloyster/shiny_gba.pal b/graphics/pokemon/cloyster/shiny_gba.pal new file mode 100644 index 0000000000..8a0d5bd4b4 --- /dev/null +++ b/graphics/pokemon/cloyster/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +115 164 213 +74 123 172 +32 82 131 +0 41 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 197 197 +148 148 148 +98 98 98 +65 65 65 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/coalossal/gigantamax/back.png b/graphics/pokemon/coalossal/gmax/back.png similarity index 100% rename from graphics/pokemon/coalossal/gigantamax/back.png rename to graphics/pokemon/coalossal/gmax/back.png diff --git a/graphics/pokemon/coalossal/gigantamax/front.png b/graphics/pokemon/coalossal/gmax/front.png similarity index 100% rename from graphics/pokemon/coalossal/gigantamax/front.png rename to graphics/pokemon/coalossal/gmax/front.png diff --git a/graphics/pokemon/coalossal/gigantamax/icon.png b/graphics/pokemon/coalossal/gmax/icon.png similarity index 100% rename from graphics/pokemon/coalossal/gigantamax/icon.png rename to graphics/pokemon/coalossal/gmax/icon.png diff --git a/graphics/pokemon/coalossal/gigantamax/normal.pal b/graphics/pokemon/coalossal/gmax/normal.pal similarity index 100% rename from graphics/pokemon/coalossal/gigantamax/normal.pal rename to graphics/pokemon/coalossal/gmax/normal.pal diff --git a/graphics/pokemon/coalossal/gigantamax/shiny.pal b/graphics/pokemon/coalossal/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/coalossal/gigantamax/shiny.pal rename to graphics/pokemon/coalossal/gmax/shiny.pal diff --git a/graphics/pokemon/combusken/anim_front_gba.png b/graphics/pokemon/combusken/anim_front_gba.png new file mode 100644 index 0000000000..ffa1748b3a Binary files /dev/null and b/graphics/pokemon/combusken/anim_front_gba.png differ diff --git a/graphics/pokemon/combusken/back_gba.png b/graphics/pokemon/combusken/back_gba.png new file mode 100644 index 0000000000..6c6d094dda Binary files /dev/null and b/graphics/pokemon/combusken/back_gba.png differ diff --git a/graphics/pokemon/combusken/icon_gba.png b/graphics/pokemon/combusken/icon_gba.png new file mode 100644 index 0000000000..3cdd0f5c1a Binary files /dev/null and b/graphics/pokemon/combusken/icon_gba.png differ diff --git a/graphics/pokemon/combusken/normal_gba.pal b/graphics/pokemon/combusken/normal_gba.pal new file mode 100644 index 0000000000..7327dbecee --- /dev/null +++ b/graphics/pokemon/combusken/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 222 156 +213 189 148 +180 148 123 +156 123 57 +255 213 98 +246 180 82 +197 148 57 +123 106 90 +139 57 49 +255 255 255 +255 164 57 +255 106 57 +213 90 57 +90 57 49 +16 16 16 diff --git a/graphics/pokemon/combusken/shiny_gba.pal b/graphics/pokemon/combusken/shiny_gba.pal new file mode 100644 index 0000000000..6fbb74b08a --- /dev/null +++ b/graphics/pokemon/combusken/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 255 255 +222 180 131 +172 123 90 +123 90 74 +255 238 172 +255 213 98 +238 156 49 +123 106 90 +106 41 32 +255 255 255 +230 106 49 +197 74 49 +139 57 49 +90 57 49 +16 16 16 diff --git a/graphics/pokemon/comfey/icon.png b/graphics/pokemon/comfey/icon.png index 916ac5c188..10d1a3fe5a 100644 Binary files a/graphics/pokemon/comfey/icon.png and b/graphics/pokemon/comfey/icon.png differ diff --git a/graphics/pokemon/copperajah/gigantamax/back.png b/graphics/pokemon/copperajah/gmax/back.png similarity index 100% rename from graphics/pokemon/copperajah/gigantamax/back.png rename to graphics/pokemon/copperajah/gmax/back.png diff --git a/graphics/pokemon/copperajah/gigantamax/front.png b/graphics/pokemon/copperajah/gmax/front.png similarity index 100% rename from graphics/pokemon/copperajah/gigantamax/front.png rename to graphics/pokemon/copperajah/gmax/front.png diff --git a/graphics/pokemon/copperajah/gigantamax/icon.png b/graphics/pokemon/copperajah/gmax/icon.png similarity index 100% rename from graphics/pokemon/copperajah/gigantamax/icon.png rename to graphics/pokemon/copperajah/gmax/icon.png diff --git a/graphics/pokemon/copperajah/gigantamax/normal.pal b/graphics/pokemon/copperajah/gmax/normal.pal similarity index 100% rename from graphics/pokemon/copperajah/gigantamax/normal.pal rename to graphics/pokemon/copperajah/gmax/normal.pal diff --git a/graphics/pokemon/copperajah/gigantamax/shiny.pal b/graphics/pokemon/copperajah/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/copperajah/gigantamax/shiny.pal rename to graphics/pokemon/copperajah/gmax/shiny.pal diff --git a/graphics/pokemon/corphish/anim_front_gba.png b/graphics/pokemon/corphish/anim_front_gba.png new file mode 100644 index 0000000000..8e8ac3d23b Binary files /dev/null and b/graphics/pokemon/corphish/anim_front_gba.png differ diff --git a/graphics/pokemon/corphish/back_gba.png b/graphics/pokemon/corphish/back_gba.png new file mode 100644 index 0000000000..01d6037784 Binary files /dev/null and b/graphics/pokemon/corphish/back_gba.png differ diff --git a/graphics/pokemon/corphish/icon_gba.png b/graphics/pokemon/corphish/icon_gba.png new file mode 100644 index 0000000000..f14b262d2b Binary files /dev/null and b/graphics/pokemon/corphish/icon_gba.png differ diff --git a/graphics/pokemon/corphish/normal_gba.pal b/graphics/pokemon/corphish/normal_gba.pal new file mode 100644 index 0000000000..0fd4ea3304 --- /dev/null +++ b/graphics/pokemon/corphish/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 123 16 +213 90 8 +172 82 8 +98 65 49 +246 238 197 +230 205 148 +205 172 106 +148 115 65 +255 213 90 +238 180 65 +255 197 65 +205 205 205 +131 131 131 +0 0 0 diff --git a/graphics/pokemon/corphish/shiny_gba.pal b/graphics/pokemon/corphish/shiny_gba.pal new file mode 100644 index 0000000000..a3eb45805d --- /dev/null +++ b/graphics/pokemon/corphish/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 148 148 +213 106 106 +180 74 74 +139 41 41 +255 255 238 +255 222 148 +255 189 90 +213 148 65 +255 213 90 +255 205 205 +255 197 197 +205 205 205 +131 131 131 +0 0 0 diff --git a/graphics/pokemon/corsola/anim_front_gba.png b/graphics/pokemon/corsola/anim_front_gba.png new file mode 100644 index 0000000000..c37d0e054a Binary files /dev/null and b/graphics/pokemon/corsola/anim_front_gba.png differ diff --git a/graphics/pokemon/corsola/back_gba.png b/graphics/pokemon/corsola/back_gba.png new file mode 100644 index 0000000000..d15f330fc1 Binary files /dev/null and b/graphics/pokemon/corsola/back_gba.png differ diff --git a/graphics/pokemon/corsola/galarian/back.png b/graphics/pokemon/corsola/galar/back.png similarity index 100% rename from graphics/pokemon/corsola/galarian/back.png rename to graphics/pokemon/corsola/galar/back.png diff --git a/graphics/pokemon/corsola/galarian/front.png b/graphics/pokemon/corsola/galar/front.png similarity index 100% rename from graphics/pokemon/corsola/galarian/front.png rename to graphics/pokemon/corsola/galar/front.png diff --git a/graphics/pokemon/corsola/galarian/icon.png b/graphics/pokemon/corsola/galar/icon.png similarity index 100% rename from graphics/pokemon/corsola/galarian/icon.png rename to graphics/pokemon/corsola/galar/icon.png diff --git a/graphics/pokemon/corsola/galarian/normal.pal b/graphics/pokemon/corsola/galar/normal.pal similarity index 100% rename from graphics/pokemon/corsola/galarian/normal.pal rename to graphics/pokemon/corsola/galar/normal.pal diff --git a/graphics/pokemon/corsola/galarian/overworld.png b/graphics/pokemon/corsola/galar/overworld.png similarity index 100% rename from graphics/pokemon/corsola/galarian/overworld.png rename to graphics/pokemon/corsola/galar/overworld.png diff --git a/graphics/pokemon/corsola/galarian/overworld_normal.pal b/graphics/pokemon/corsola/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/corsola/galarian/overworld_normal.pal rename to graphics/pokemon/corsola/galar/overworld_normal.pal diff --git a/graphics/pokemon/corsola/galarian/overworld_shiny.pal b/graphics/pokemon/corsola/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/corsola/galarian/overworld_shiny.pal rename to graphics/pokemon/corsola/galar/overworld_shiny.pal diff --git a/graphics/pokemon/corsola/galarian/shiny.pal b/graphics/pokemon/corsola/galar/shiny.pal similarity index 100% rename from graphics/pokemon/corsola/galarian/shiny.pal rename to graphics/pokemon/corsola/galar/shiny.pal diff --git a/graphics/pokemon/corsola/icon_gba.png b/graphics/pokemon/corsola/icon_gba.png new file mode 100644 index 0000000000..dd2d2e82ec Binary files /dev/null and b/graphics/pokemon/corsola/icon_gba.png differ diff --git a/graphics/pokemon/corsola/normal_gba.pal b/graphics/pokemon/corsola/normal_gba.pal new file mode 100644 index 0000000000..95c7616fe4 --- /dev/null +++ b/graphics/pokemon/corsola/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 222 222 +172 172 172 +131 131 139 +90 90 98 +255 213 222 +255 172 197 +230 106 139 +189 57 90 +139 16 16 +255 0 255 +255 0 255 +255 0 255 +189 57 90 +16 16 16 diff --git a/graphics/pokemon/corsola/shiny_gba.pal b/graphics/pokemon/corsola/shiny_gba.pal new file mode 100644 index 0000000000..13daa4e263 --- /dev/null +++ b/graphics/pokemon/corsola/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 230 255 +164 189 222 +123 148 189 +74 98 156 +156 238 255 +123 205 255 +74 156 230 +41 106 197 +8 65 148 +255 0 255 +255 0 255 +255 0 255 +238 98 98 +16 16 16 diff --git a/graphics/pokemon/corviknight/gigantamax/back.png b/graphics/pokemon/corviknight/gmax/back.png similarity index 100% rename from graphics/pokemon/corviknight/gigantamax/back.png rename to graphics/pokemon/corviknight/gmax/back.png diff --git a/graphics/pokemon/corviknight/gigantamax/front.png b/graphics/pokemon/corviknight/gmax/front.png similarity index 100% rename from graphics/pokemon/corviknight/gigantamax/front.png rename to graphics/pokemon/corviknight/gmax/front.png diff --git a/graphics/pokemon/corviknight/gigantamax/icon.png b/graphics/pokemon/corviknight/gmax/icon.png similarity index 100% rename from graphics/pokemon/corviknight/gigantamax/icon.png rename to graphics/pokemon/corviknight/gmax/icon.png diff --git a/graphics/pokemon/corviknight/gigantamax/normal.pal b/graphics/pokemon/corviknight/gmax/normal.pal similarity index 100% rename from graphics/pokemon/corviknight/gigantamax/normal.pal rename to graphics/pokemon/corviknight/gmax/normal.pal diff --git a/graphics/pokemon/corviknight/gigantamax/shiny.pal b/graphics/pokemon/corviknight/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/corviknight/gigantamax/shiny.pal rename to graphics/pokemon/corviknight/gmax/shiny.pal diff --git a/graphics/pokemon/cosmoem/icon.png b/graphics/pokemon/cosmoem/icon.png index ab4c13b8f2..c461bdadaf 100644 Binary files a/graphics/pokemon/cosmoem/icon.png and b/graphics/pokemon/cosmoem/icon.png differ diff --git a/graphics/pokemon/cosmog/icon.png b/graphics/pokemon/cosmog/icon.png index 6057034a9a..a74b399d12 100644 Binary files a/graphics/pokemon/cosmog/icon.png and b/graphics/pokemon/cosmog/icon.png differ diff --git a/graphics/pokemon/cottonee/overworld.png b/graphics/pokemon/cottonee/overworld.png index 15aec04067..55a0d48bad 100644 Binary files a/graphics/pokemon/cottonee/overworld.png and b/graphics/pokemon/cottonee/overworld.png differ diff --git a/graphics/pokemon/cottonee/overworld_normal.pal b/graphics/pokemon/cottonee/overworld_normal.pal index 76222db0ce..2af87bcf9f 100644 --- a/graphics/pokemon/cottonee/overworld_normal.pal +++ b/graphics/pokemon/cottonee/overworld_normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 110 110 110 -204 227 209 -208 241 229 -164 207 173 +198 212 159 +222 230 197 +165 173 132 64 128 16 92 224 48 74 176 49 47 46 47 -198 196 235 -137 162 175 +165 173 132 +123 132 107 238 238 247 137 117 107 -230 77 40 +230 132 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/cottonee/overworld_shiny.pal b/graphics/pokemon/cottonee/overworld_shiny.pal index bb3d8c85c8..d530eb0894 100644 --- a/graphics/pokemon/cottonee/overworld_shiny.pal +++ b/graphics/pokemon/cottonee/overworld_shiny.pal @@ -11,9 +11,9 @@ JASC-PAL 192 96 40 47 46 47 192 176 136 -137 162 175 +112 96 40 248 248 248 -137 117 107 -230 77 40 +138 106 91 +112 184 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/crabominable/icon.png b/graphics/pokemon/crabominable/icon.png index e3f32d5046..c3ae3235b6 100644 Binary files a/graphics/pokemon/crabominable/icon.png and b/graphics/pokemon/crabominable/icon.png differ diff --git a/graphics/pokemon/crabrawler/icon.png b/graphics/pokemon/crabrawler/icon.png index d28b81b6b6..47b3b34512 100644 Binary files a/graphics/pokemon/crabrawler/icon.png and b/graphics/pokemon/crabrawler/icon.png differ diff --git a/graphics/pokemon/cradily/anim_front_gba.png b/graphics/pokemon/cradily/anim_front_gba.png new file mode 100644 index 0000000000..b38c51c8ee Binary files /dev/null and b/graphics/pokemon/cradily/anim_front_gba.png differ diff --git a/graphics/pokemon/cradily/back_gba.png b/graphics/pokemon/cradily/back_gba.png new file mode 100644 index 0000000000..338c7f0ba8 Binary files /dev/null and b/graphics/pokemon/cradily/back_gba.png differ diff --git a/graphics/pokemon/cradily/icon_gba.png b/graphics/pokemon/cradily/icon_gba.png new file mode 100644 index 0000000000..ea57b45f10 Binary files /dev/null and b/graphics/pokemon/cradily/icon_gba.png differ diff --git a/graphics/pokemon/cradily/normal_gba.pal b/graphics/pokemon/cradily/normal_gba.pal new file mode 100644 index 0000000000..9167eb8795 --- /dev/null +++ b/graphics/pokemon/cradily/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +148 230 123 +115 180 106 +82 131 90 +57 90 74 +255 213 172 +255 172 115 +246 106 32 +255 246 123 +255 222 41 +230 172 0 +213 213 213 +172 172 180 +180 82 74 +0 0 0 diff --git a/graphics/pokemon/cradily/shiny_gba.pal b/graphics/pokemon/cradily/shiny_gba.pal new file mode 100644 index 0000000000..32a3b9e8ff --- /dev/null +++ b/graphics/pokemon/cradily/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 180 189 +222 123 156 +189 90 123 +139 65 65 +255 213 172 +255 172 115 +246 106 32 +255 246 156 +255 230 41 +230 172 0 +213 213 213 +172 172 180 +180 82 74 +0 0 0 diff --git a/graphics/pokemon/crawdaunt/anim_front_gba.png b/graphics/pokemon/crawdaunt/anim_front_gba.png new file mode 100644 index 0000000000..f150b6d157 Binary files /dev/null and b/graphics/pokemon/crawdaunt/anim_front_gba.png differ diff --git a/graphics/pokemon/crawdaunt/back_gba.png b/graphics/pokemon/crawdaunt/back_gba.png new file mode 100644 index 0000000000..f96f2c4884 Binary files /dev/null and b/graphics/pokemon/crawdaunt/back_gba.png differ diff --git a/graphics/pokemon/crawdaunt/icon_gba.png b/graphics/pokemon/crawdaunt/icon_gba.png new file mode 100644 index 0000000000..605482d253 Binary files /dev/null and b/graphics/pokemon/crawdaunt/icon_gba.png differ diff --git a/graphics/pokemon/crawdaunt/normal_gba.pal b/graphics/pokemon/crawdaunt/normal_gba.pal new file mode 100644 index 0000000000..7fe04e329d --- /dev/null +++ b/graphics/pokemon/crawdaunt/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 106 0 +189 65 0 +139 57 32 +246 238 197 +230 205 148 +197 164 98 +148 115 65 +255 230 90 +246 172 49 +82 156 246 +65 115 172 +197 197 230 +24 65 106 +0 0 0 diff --git a/graphics/pokemon/crawdaunt/shiny_gba.pal b/graphics/pokemon/crawdaunt/shiny_gba.pal new file mode 100644 index 0000000000..21b58b2a04 --- /dev/null +++ b/graphics/pokemon/crawdaunt/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 148 0 +205 106 0 +156 74 32 +238 238 238 +222 222 222 +180 189 180 +131 139 131 +255 238 139 +246 197 41 +222 156 238 +164 90 189 +222 156 238 +123 65 139 +0 0 0 diff --git a/graphics/pokemon/crobat/anim_front_gba.png b/graphics/pokemon/crobat/anim_front_gba.png new file mode 100644 index 0000000000..1843423b76 Binary files /dev/null and b/graphics/pokemon/crobat/anim_front_gba.png differ diff --git a/graphics/pokemon/crobat/back_gba.png b/graphics/pokemon/crobat/back_gba.png new file mode 100644 index 0000000000..d14ecec7b6 Binary files /dev/null and b/graphics/pokemon/crobat/back_gba.png differ diff --git a/graphics/pokemon/crobat/icon_gba.png b/graphics/pokemon/crobat/icon_gba.png new file mode 100644 index 0000000000..817951dd0c Binary files /dev/null and b/graphics/pokemon/crobat/icon_gba.png differ diff --git a/graphics/pokemon/crobat/normal_gba.pal b/graphics/pokemon/crobat/normal_gba.pal new file mode 100644 index 0000000000..9c466e9e82 --- /dev/null +++ b/graphics/pokemon/crobat/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 139 246 +197 90 205 +156 57 180 +115 24 148 +255 0 255 +255 0 255 +74 156 189 +32 106 148 +16 74 115 +255 213 0 +213 148 0 +164 164 164 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/crobat/shiny_gba.pal b/graphics/pokemon/crobat/shiny_gba.pal new file mode 100644 index 0000000000..8f22fd4b05 --- /dev/null +++ b/graphics/pokemon/crobat/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 238 +246 180 197 +222 131 148 +164 74 106 +255 0 255 +255 0 255 +139 189 32 +74 139 0 +41 82 0 +255 213 0 +213 148 0 +164 164 164 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/croconaw/anim_front_gba.png b/graphics/pokemon/croconaw/anim_front_gba.png new file mode 100644 index 0000000000..e7d23841b1 Binary files /dev/null and b/graphics/pokemon/croconaw/anim_front_gba.png differ diff --git a/graphics/pokemon/croconaw/back_gba.png b/graphics/pokemon/croconaw/back_gba.png new file mode 100644 index 0000000000..991be60bc8 Binary files /dev/null and b/graphics/pokemon/croconaw/back_gba.png differ diff --git a/graphics/pokemon/croconaw/icon_gba.png b/graphics/pokemon/croconaw/icon_gba.png new file mode 100644 index 0000000000..6f57e56561 Binary files /dev/null and b/graphics/pokemon/croconaw/icon_gba.png differ diff --git a/graphics/pokemon/croconaw/normal_gba.pal b/graphics/pokemon/croconaw/normal_gba.pal new file mode 100644 index 0000000000..2e64441a47 --- /dev/null +++ b/graphics/pokemon/croconaw/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +131 205 255 +90 172 230 +49 131 197 +74 74 131 +230 65 32 +123 0 0 +255 172 90 +255 90 32 +205 41 24 +123 0 0 +255 230 98 +230 180 82 +156 115 8 +16 16 16 diff --git a/graphics/pokemon/croconaw/shiny_gba.pal b/graphics/pokemon/croconaw/shiny_gba.pal new file mode 100644 index 0000000000..847f2ed29c --- /dev/null +++ b/graphics/pokemon/croconaw/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +164 246 222 +115 213 205 +74 164 180 +49 106 139 +230 65 32 +123 0 0 +98 180 230 +57 98 197 +49 90 156 +32 65 106 +255 230 98 +230 180 82 +156 115 8 +16 16 16 diff --git a/graphics/pokemon/cubone/anim_front_gba.png b/graphics/pokemon/cubone/anim_front_gba.png new file mode 100644 index 0000000000..42fd8be2cf Binary files /dev/null and b/graphics/pokemon/cubone/anim_front_gba.png differ diff --git a/graphics/pokemon/cubone/back_gba.png b/graphics/pokemon/cubone/back_gba.png new file mode 100644 index 0000000000..a7b879b40d Binary files /dev/null and b/graphics/pokemon/cubone/back_gba.png differ diff --git a/graphics/pokemon/cubone/icon_gba.png b/graphics/pokemon/cubone/icon_gba.png new file mode 100644 index 0000000000..679d8e7e55 Binary files /dev/null and b/graphics/pokemon/cubone/icon_gba.png differ diff --git a/graphics/pokemon/cubone/normal_gba.pal b/graphics/pokemon/cubone/normal_gba.pal new file mode 100644 index 0000000000..faaeef75c7 --- /dev/null +++ b/graphics/pokemon/cubone/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +222 189 106 +197 156 74 +148 106 49 +106 49 16 +230 230 213 +197 197 172 +139 139 106 +90 90 49 +255 222 180 +246 197 148 +230 148 82 +255 0 255 +255 0 255 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/cubone/shiny_gba.pal b/graphics/pokemon/cubone/shiny_gba.pal new file mode 100644 index 0000000000..51b6bc8ba8 --- /dev/null +++ b/graphics/pokemon/cubone/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +172 180 115 +131 131 74 +74 82 24 +49 57 0 +230 230 213 +197 197 172 +139 139 106 +90 90 49 +255 238 197 +238 213 148 +205 164 90 +255 0 255 +255 0 255 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/cutiefly/icon.png b/graphics/pokemon/cutiefly/icon.png index 5e25a942da..25af39c74c 100644 Binary files a/graphics/pokemon/cutiefly/icon.png and b/graphics/pokemon/cutiefly/icon.png differ diff --git a/graphics/pokemon/cyndaquil/anim_front_gba.png b/graphics/pokemon/cyndaquil/anim_front_gba.png new file mode 100644 index 0000000000..3974d5b40a Binary files /dev/null and b/graphics/pokemon/cyndaquil/anim_front_gba.png differ diff --git a/graphics/pokemon/cyndaquil/back_gba.png b/graphics/pokemon/cyndaquil/back_gba.png new file mode 100644 index 0000000000..cfc64164e1 Binary files /dev/null and b/graphics/pokemon/cyndaquil/back_gba.png differ diff --git a/graphics/pokemon/cyndaquil/icon_gba.png b/graphics/pokemon/cyndaquil/icon_gba.png new file mode 100644 index 0000000000..5f174dcf17 Binary files /dev/null and b/graphics/pokemon/cyndaquil/icon_gba.png differ diff --git a/graphics/pokemon/cyndaquil/normal_gba.pal b/graphics/pokemon/cyndaquil/normal_gba.pal new file mode 100644 index 0000000000..46fb06347b --- /dev/null +++ b/graphics/pokemon/cyndaquil/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +98 131 189 +65 82 139 +41 65 98 +24 41 82 +255 238 164 +230 205 106 +180 156 82 +139 98 32 +255 222 0 +255 156 0 +255 98 0 +238 0 0 +139 139 139 +16 16 16 diff --git a/graphics/pokemon/cyndaquil/shiny_gba.pal b/graphics/pokemon/cyndaquil/shiny_gba.pal new file mode 100644 index 0000000000..14e35dbc51 --- /dev/null +++ b/graphics/pokemon/cyndaquil/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 156 106 +189 98 65 +139 65 57 +98 57 41 +255 230 115 +222 197 82 +172 139 49 +139 82 24 +255 222 0 +255 156 0 +255 98 0 +238 0 0 +139 139 139 +16 16 16 diff --git a/graphics/pokemon/darmanitan/galarian/back.png b/graphics/pokemon/darmanitan/galar_standard/back.png similarity index 100% rename from graphics/pokemon/darmanitan/galarian/back.png rename to graphics/pokemon/darmanitan/galar_standard/back.png diff --git a/graphics/pokemon/darmanitan/galarian/front.png b/graphics/pokemon/darmanitan/galar_standard/front.png similarity index 100% rename from graphics/pokemon/darmanitan/galarian/front.png rename to graphics/pokemon/darmanitan/galar_standard/front.png diff --git a/graphics/pokemon/darmanitan/galarian/icon.png b/graphics/pokemon/darmanitan/galar_standard/icon.png similarity index 100% rename from graphics/pokemon/darmanitan/galarian/icon.png rename to graphics/pokemon/darmanitan/galar_standard/icon.png diff --git a/graphics/pokemon/darmanitan/galarian/normal.pal b/graphics/pokemon/darmanitan/galar_standard/normal.pal similarity index 100% rename from graphics/pokemon/darmanitan/galarian/normal.pal rename to graphics/pokemon/darmanitan/galar_standard/normal.pal diff --git a/graphics/pokemon/darmanitan/galarian/overworld.png b/graphics/pokemon/darmanitan/galar_standard/overworld.png similarity index 100% rename from graphics/pokemon/darmanitan/galarian/overworld.png rename to graphics/pokemon/darmanitan/galar_standard/overworld.png diff --git a/graphics/pokemon/darmanitan/galarian/overworld_normal.pal b/graphics/pokemon/darmanitan/galar_standard/overworld_normal.pal similarity index 100% rename from graphics/pokemon/darmanitan/galarian/overworld_normal.pal rename to graphics/pokemon/darmanitan/galar_standard/overworld_normal.pal diff --git a/graphics/pokemon/darmanitan/galarian/overworld_shiny.pal b/graphics/pokemon/darmanitan/galar_standard/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/darmanitan/galarian/overworld_shiny.pal rename to graphics/pokemon/darmanitan/galar_standard/overworld_shiny.pal diff --git a/graphics/pokemon/darmanitan/galarian/shiny.pal b/graphics/pokemon/darmanitan/galar_standard/shiny.pal similarity index 100% rename from graphics/pokemon/darmanitan/galarian/shiny.pal rename to graphics/pokemon/darmanitan/galar_standard/shiny.pal diff --git a/graphics/pokemon/darmanitan/zen_mode/galarian/back.png b/graphics/pokemon/darmanitan/galar_zen/back.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/galarian/back.png rename to graphics/pokemon/darmanitan/galar_zen/back.png diff --git a/graphics/pokemon/darmanitan/zen_mode/galarian/front.png b/graphics/pokemon/darmanitan/galar_zen/front.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/galarian/front.png rename to graphics/pokemon/darmanitan/galar_zen/front.png diff --git a/graphics/pokemon/darmanitan/zen_mode/galarian/icon.png b/graphics/pokemon/darmanitan/galar_zen/icon.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/galarian/icon.png rename to graphics/pokemon/darmanitan/galar_zen/icon.png diff --git a/graphics/pokemon/darmanitan/zen_mode/galarian/normal.pal b/graphics/pokemon/darmanitan/galar_zen/normal.pal similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/galarian/normal.pal rename to graphics/pokemon/darmanitan/galar_zen/normal.pal diff --git a/graphics/pokemon/darmanitan/zen_mode/galarian/shiny.pal b/graphics/pokemon/darmanitan/galar_zen/shiny.pal similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/galarian/shiny.pal rename to graphics/pokemon/darmanitan/galar_zen/shiny.pal diff --git a/graphics/pokemon/darmanitan/zen_mode/anim_front.png b/graphics/pokemon/darmanitan/zen/anim_front.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/anim_front.png rename to graphics/pokemon/darmanitan/zen/anim_front.png diff --git a/graphics/pokemon/darmanitan/zen_mode/back.png b/graphics/pokemon/darmanitan/zen/back.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/back.png rename to graphics/pokemon/darmanitan/zen/back.png diff --git a/graphics/pokemon/darmanitan/zen_mode/icon.png b/graphics/pokemon/darmanitan/zen/icon.png similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/icon.png rename to graphics/pokemon/darmanitan/zen/icon.png diff --git a/graphics/pokemon/darmanitan/zen_mode/normal.pal b/graphics/pokemon/darmanitan/zen/normal.pal similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/normal.pal rename to graphics/pokemon/darmanitan/zen/normal.pal diff --git a/graphics/pokemon/darmanitan/zen_mode/shiny.pal b/graphics/pokemon/darmanitan/zen/shiny.pal similarity index 100% rename from graphics/pokemon/darmanitan/zen_mode/shiny.pal rename to graphics/pokemon/darmanitan/zen/shiny.pal diff --git a/graphics/pokemon/dartrix/icon.png b/graphics/pokemon/dartrix/icon.png index 39fb8fddd0..bd378938d3 100644 Binary files a/graphics/pokemon/dartrix/icon.png and b/graphics/pokemon/dartrix/icon.png differ diff --git a/graphics/pokemon/darumaka/galarian/back.png b/graphics/pokemon/darumaka/galar/back.png similarity index 100% rename from graphics/pokemon/darumaka/galarian/back.png rename to graphics/pokemon/darumaka/galar/back.png diff --git a/graphics/pokemon/darumaka/galarian/front.png b/graphics/pokemon/darumaka/galar/front.png similarity index 100% rename from graphics/pokemon/darumaka/galarian/front.png rename to graphics/pokemon/darumaka/galar/front.png diff --git a/graphics/pokemon/darumaka/galarian/icon.png b/graphics/pokemon/darumaka/galar/icon.png similarity index 100% rename from graphics/pokemon/darumaka/galarian/icon.png rename to graphics/pokemon/darumaka/galar/icon.png diff --git a/graphics/pokemon/darumaka/galarian/normal.pal b/graphics/pokemon/darumaka/galar/normal.pal similarity index 100% rename from graphics/pokemon/darumaka/galarian/normal.pal rename to graphics/pokemon/darumaka/galar/normal.pal diff --git a/graphics/pokemon/darumaka/galarian/overworld.png b/graphics/pokemon/darumaka/galar/overworld.png similarity index 100% rename from graphics/pokemon/darumaka/galarian/overworld.png rename to graphics/pokemon/darumaka/galar/overworld.png diff --git a/graphics/pokemon/darumaka/galarian/overworld_normal.pal b/graphics/pokemon/darumaka/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/darumaka/galarian/overworld_normal.pal rename to graphics/pokemon/darumaka/galar/overworld_normal.pal diff --git a/graphics/pokemon/darumaka/galarian/overworld_shiny.pal b/graphics/pokemon/darumaka/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/darumaka/galarian/overworld_shiny.pal rename to graphics/pokemon/darumaka/galar/overworld_shiny.pal diff --git a/graphics/pokemon/darumaka/galarian/shiny.pal b/graphics/pokemon/darumaka/galar/shiny.pal similarity index 100% rename from graphics/pokemon/darumaka/galarian/shiny.pal rename to graphics/pokemon/darumaka/galar/shiny.pal diff --git a/graphics/pokemon/decidueye/hisuian/back.png b/graphics/pokemon/decidueye/hisui/back.png similarity index 100% rename from graphics/pokemon/decidueye/hisuian/back.png rename to graphics/pokemon/decidueye/hisui/back.png diff --git a/graphics/pokemon/decidueye/hisuian/front.png b/graphics/pokemon/decidueye/hisui/front.png similarity index 100% rename from graphics/pokemon/decidueye/hisuian/front.png rename to graphics/pokemon/decidueye/hisui/front.png diff --git a/graphics/pokemon/decidueye/hisuian/icon.png b/graphics/pokemon/decidueye/hisui/icon.png similarity index 100% rename from graphics/pokemon/decidueye/hisuian/icon.png rename to graphics/pokemon/decidueye/hisui/icon.png diff --git a/graphics/pokemon/decidueye/hisuian/normal.pal b/graphics/pokemon/decidueye/hisui/normal.pal similarity index 100% rename from graphics/pokemon/decidueye/hisuian/normal.pal rename to graphics/pokemon/decidueye/hisui/normal.pal diff --git a/graphics/pokemon/decidueye/hisuian/overworld.png b/graphics/pokemon/decidueye/hisui/overworld.png similarity index 100% rename from graphics/pokemon/decidueye/hisuian/overworld.png rename to graphics/pokemon/decidueye/hisui/overworld.png diff --git a/graphics/pokemon/decidueye/hisuian/overworld_normal.pal b/graphics/pokemon/decidueye/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/decidueye/hisuian/overworld_normal.pal rename to graphics/pokemon/decidueye/hisui/overworld_normal.pal diff --git a/graphics/pokemon/decidueye/hisuian/overworld_shiny.pal b/graphics/pokemon/decidueye/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/decidueye/hisuian/overworld_shiny.pal rename to graphics/pokemon/decidueye/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/decidueye/hisuian/shiny.pal b/graphics/pokemon/decidueye/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/decidueye/hisuian/shiny.pal rename to graphics/pokemon/decidueye/hisui/shiny.pal diff --git a/graphics/pokemon/decidueye/icon.png b/graphics/pokemon/decidueye/icon.png index 6078f20b83..8cb628c31f 100644 Binary files a/graphics/pokemon/decidueye/icon.png and b/graphics/pokemon/decidueye/icon.png differ diff --git a/graphics/pokemon/delcatty/anim_front_gba.png b/graphics/pokemon/delcatty/anim_front_gba.png new file mode 100644 index 0000000000..ca4bad007c Binary files /dev/null and b/graphics/pokemon/delcatty/anim_front_gba.png differ diff --git a/graphics/pokemon/delcatty/back_gba.png b/graphics/pokemon/delcatty/back_gba.png new file mode 100644 index 0000000000..38bcfd5a74 Binary files /dev/null and b/graphics/pokemon/delcatty/back_gba.png differ diff --git a/graphics/pokemon/delcatty/icon_gba.png b/graphics/pokemon/delcatty/icon_gba.png new file mode 100644 index 0000000000..b5d874a880 Binary files /dev/null and b/graphics/pokemon/delcatty/icon_gba.png differ diff --git a/graphics/pokemon/delcatty/normal_gba.pal b/graphics/pokemon/delcatty/normal_gba.pal new file mode 100644 index 0000000000..7d7d44e120 --- /dev/null +++ b/graphics/pokemon/delcatty/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 205 139 +255 255 255 +255 255 156 +255 222 98 +255 189 65 +222 156 65 +115 74 82 +246 180 197 +189 131 90 +106 74 156 +74 41 123 +0 0 0 +222 148 164 +197 123 139 +164 90 106 +131 57 74 diff --git a/graphics/pokemon/delcatty/shiny_gba.pal b/graphics/pokemon/delcatty/shiny_gba.pal new file mode 100644 index 0000000000..caf7d7be8b --- /dev/null +++ b/graphics/pokemon/delcatty/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 205 139 +255 255 255 +255 255 189 +255 255 156 +255 222 98 +246 172 65 +139 82 65 +255 180 98 +205 123 57 +139 106 172 +98 65 156 +0 0 0 +255 123 82 +238 82 49 +189 65 32 +164 49 32 diff --git a/graphics/pokemon/delibird/anim_front_gba.png b/graphics/pokemon/delibird/anim_front_gba.png new file mode 100644 index 0000000000..43ba20e194 Binary files /dev/null and b/graphics/pokemon/delibird/anim_front_gba.png differ diff --git a/graphics/pokemon/delibird/back_gba.png b/graphics/pokemon/delibird/back_gba.png new file mode 100644 index 0000000000..b4dccb1191 Binary files /dev/null and b/graphics/pokemon/delibird/back_gba.png differ diff --git a/graphics/pokemon/delibird/icon_gba.png b/graphics/pokemon/delibird/icon_gba.png new file mode 100644 index 0000000000..438f808631 Binary files /dev/null and b/graphics/pokemon/delibird/icon_gba.png differ diff --git a/graphics/pokemon/delibird/normal_gba.pal b/graphics/pokemon/delibird/normal_gba.pal new file mode 100644 index 0000000000..a975e93d3e --- /dev/null +++ b/graphics/pokemon/delibird/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 189 106 +255 115 16 +213 65 0 +148 49 0 +255 0 255 +255 246 139 +255 205 65 +205 139 41 +123 65 0 +90 90 90 +213 213 213 +172 172 180 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/delibird/shiny_gba.pal b/graphics/pokemon/delibird/shiny_gba.pal new file mode 100644 index 0000000000..f94267729b --- /dev/null +++ b/graphics/pokemon/delibird/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 131 197 +205 90 164 +148 65 115 +90 41 82 +255 0 255 +255 246 139 +255 205 65 +205 139 41 +123 65 0 +139 123 82 +238 238 197 +213 205 139 +148 139 90 +49 49 49 diff --git a/graphics/pokemon/deoxys/anim_front.png b/graphics/pokemon/deoxys/anim_front.png index d2f3e99381..fc782931d1 100644 Binary files a/graphics/pokemon/deoxys/anim_front.png and b/graphics/pokemon/deoxys/anim_front.png differ diff --git a/graphics/pokemon/deoxys/anim_front_gba.png b/graphics/pokemon/deoxys/anim_front_gba.png new file mode 100644 index 0000000000..dc7faf9151 Binary files /dev/null and b/graphics/pokemon/deoxys/anim_front_gba.png differ diff --git a/graphics/pokemon/deoxys/attack/anim_front.png b/graphics/pokemon/deoxys/attack/anim_front.png index 0b43a9fe11..566e80eafd 100644 Binary files a/graphics/pokemon/deoxys/attack/anim_front.png and b/graphics/pokemon/deoxys/attack/anim_front.png differ diff --git a/graphics/pokemon/deoxys/attack/normal.pal b/graphics/pokemon/deoxys/attack/normal.pal index 246d4784a2..52ddbb8fc6 100644 --- a/graphics/pokemon/deoxys/attack/normal.pal +++ b/graphics/pokemon/deoxys/attack/normal.pal @@ -3,8 +3,8 @@ JASC-PAL 16 248 160 176 96 56 56 -248 112 72 -184 104 104 +255 115 74 +204 65 65 24 24 24 104 200 224 80 144 176 diff --git a/graphics/pokemon/deoxys/back_gba.png b/graphics/pokemon/deoxys/back_gba.png new file mode 100644 index 0000000000..d8ba065fde Binary files /dev/null and b/graphics/pokemon/deoxys/back_gba.png differ diff --git a/graphics/pokemon/deoxys/defense/anim_front.png b/graphics/pokemon/deoxys/defense/anim_front.png index 2ee6e0c527..ce3cdad39c 100644 Binary files a/graphics/pokemon/deoxys/defense/anim_front.png and b/graphics/pokemon/deoxys/defense/anim_front.png differ diff --git a/graphics/pokemon/deoxys/defense/normal.pal b/graphics/pokemon/deoxys/defense/normal.pal index 8b37f5111e..4beda86136 100644 --- a/graphics/pokemon/deoxys/defense/normal.pal +++ b/graphics/pokemon/deoxys/defense/normal.pal @@ -3,9 +3,9 @@ JASC-PAL 16 248 160 176 96 56 56 -192 104 104 -248 112 72 -96 64 48 +204 65 65 +255 115 74 +68 28 89 240 176 144 104 200 224 80 144 176 diff --git a/graphics/pokemon/deoxys/defense/shiny.pal b/graphics/pokemon/deoxys/defense/shiny.pal index c1f34410a4..3f285246c6 100644 --- a/graphics/pokemon/deoxys/defense/shiny.pal +++ b/graphics/pokemon/deoxys/defense/shiny.pal @@ -5,7 +5,7 @@ JASC-PAL 112 96 16 168 168 56 248 232 64 -96 64 48 +49 29 82 248 248 216 112 208 168 72 160 112 diff --git a/graphics/pokemon/deoxys/icon_gba.png b/graphics/pokemon/deoxys/icon_gba.png new file mode 100644 index 0000000000..18735fc722 Binary files /dev/null and b/graphics/pokemon/deoxys/icon_gba.png differ diff --git a/graphics/pokemon/deoxys/normal.pal b/graphics/pokemon/deoxys/normal.pal index 59124c56a9..e11c277719 100644 --- a/graphics/pokemon/deoxys/normal.pal +++ b/graphics/pokemon/deoxys/normal.pal @@ -2,12 +2,12 @@ JASC-PAL 0100 16 248 160 176 -184 104 104 +204 65 65 248 176 144 -248 112 72 +255 115 74 96 56 56 104 200 224 -88 56 48 +68 28 89 56 80 96 80 144 176 152 96 176 diff --git a/graphics/pokemon/deoxys/normal_gba.pal b/graphics/pokemon/deoxys/normal_gba.pal new file mode 100644 index 0000000000..90fcff114b --- /dev/null +++ b/graphics/pokemon/deoxys/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 255 +115 74 49 +213 106 106 +255 131 74 +255 172 131 +115 213 172 +131 164 156 +57 98 90 +82 74 65 +156 156 131 +139 8 205 +222 106 230 +123 115 82 +197 197 213 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/deoxys/shiny.pal b/graphics/pokemon/deoxys/shiny.pal index 5bbc6b683a..621aac6d42 100644 --- a/graphics/pokemon/deoxys/shiny.pal +++ b/graphics/pokemon/deoxys/shiny.pal @@ -7,7 +7,7 @@ JASC-PAL 248 232 64 112 96 16 112 208 168 -112 96 16 +51 27 101 56 96 88 72 160 112 96 120 192 diff --git a/graphics/pokemon/deoxys/shiny_gba.pal b/graphics/pokemon/deoxys/shiny_gba.pal new file mode 100644 index 0000000000..74b8fc7775 --- /dev/null +++ b/graphics/pokemon/deoxys/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 255 +106 90 24 +197 189 65 +255 222 57 +255 246 139 +115 213 172 +82 172 123 +57 98 90 +82 74 65 +156 156 131 +106 8 156 +0 98 230 +115 115 106 +197 197 213 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/deoxys/speed/anim_front.png b/graphics/pokemon/deoxys/speed/anim_front.png index 947052f81d..1f2063bddf 100644 Binary files a/graphics/pokemon/deoxys/speed/anim_front.png and b/graphics/pokemon/deoxys/speed/anim_front.png differ diff --git a/graphics/pokemon/deoxys/speed/normal.pal b/graphics/pokemon/deoxys/speed/normal.pal index dad052e1da..ea1073a0ee 100644 --- a/graphics/pokemon/deoxys/speed/normal.pal +++ b/graphics/pokemon/deoxys/speed/normal.pal @@ -6,9 +6,9 @@ JASC-PAL 80 144 176 104 200 224 96 56 56 -248 112 72 +255 115 74 24 24 24 -192 104 104 +204 65 65 192 192 208 152 96 176 248 248 248 diff --git a/graphics/pokemon/dewgong/anim_front_gba.png b/graphics/pokemon/dewgong/anim_front_gba.png new file mode 100644 index 0000000000..035275cc0f Binary files /dev/null and b/graphics/pokemon/dewgong/anim_front_gba.png differ diff --git a/graphics/pokemon/dewgong/back_gba.png b/graphics/pokemon/dewgong/back_gba.png new file mode 100644 index 0000000000..ba6c297ea4 Binary files /dev/null and b/graphics/pokemon/dewgong/back_gba.png differ diff --git a/graphics/pokemon/dewgong/icon_gba.png b/graphics/pokemon/dewgong/icon_gba.png new file mode 100644 index 0000000000..ea227df7c5 Binary files /dev/null and b/graphics/pokemon/dewgong/icon_gba.png differ diff --git a/graphics/pokemon/dewgong/normal_gba.pal b/graphics/pokemon/dewgong/normal_gba.pal new file mode 100644 index 0000000000..d3440f5a3b --- /dev/null +++ b/graphics/pokemon/dewgong/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +230 230 246 +197 205 238 +156 164 189 +65 82 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 205 205 +131 123 123 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/dewgong/shiny_gba.pal b/graphics/pokemon/dewgong/shiny_gba.pal new file mode 100644 index 0000000000..02a02aa66a --- /dev/null +++ b/graphics/pokemon/dewgong/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +238 238 213 +213 205 189 +180 172 156 +139 131 115 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 205 205 +131 123 123 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/dewpider/icon.png b/graphics/pokemon/dewpider/icon.png index bcf5707d32..2cc98e2a36 100644 Binary files a/graphics/pokemon/dewpider/icon.png and b/graphics/pokemon/dewpider/icon.png differ diff --git a/graphics/pokemon/dhelmise/icon.png b/graphics/pokemon/dhelmise/icon.png index 07b0c4d180..fd7e83627f 100644 Binary files a/graphics/pokemon/dhelmise/icon.png and b/graphics/pokemon/dhelmise/icon.png differ diff --git a/graphics/pokemon/diglett/alolan/back.png b/graphics/pokemon/diglett/alola/back.png similarity index 100% rename from graphics/pokemon/diglett/alolan/back.png rename to graphics/pokemon/diglett/alola/back.png diff --git a/graphics/pokemon/diglett/alolan/front.png b/graphics/pokemon/diglett/alola/front.png similarity index 100% rename from graphics/pokemon/diglett/alolan/front.png rename to graphics/pokemon/diglett/alola/front.png diff --git a/graphics/pokemon/diglett/alola/icon.png b/graphics/pokemon/diglett/alola/icon.png new file mode 100644 index 0000000000..ccde6cb2a3 Binary files /dev/null and b/graphics/pokemon/diglett/alola/icon.png differ diff --git a/graphics/pokemon/diglett/alolan/normal.pal b/graphics/pokemon/diglett/alola/normal.pal similarity index 100% rename from graphics/pokemon/diglett/alolan/normal.pal rename to graphics/pokemon/diglett/alola/normal.pal diff --git a/graphics/pokemon/diglett/alolan/overworld.png b/graphics/pokemon/diglett/alola/overworld.png similarity index 100% rename from graphics/pokemon/diglett/alolan/overworld.png rename to graphics/pokemon/diglett/alola/overworld.png diff --git a/graphics/pokemon/diglett/alolan/overworld_normal.pal b/graphics/pokemon/diglett/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/diglett/alolan/overworld_normal.pal rename to graphics/pokemon/diglett/alola/overworld_normal.pal diff --git a/graphics/pokemon/diglett/alolan/overworld_shiny.pal b/graphics/pokemon/diglett/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/diglett/alolan/overworld_shiny.pal rename to graphics/pokemon/diglett/alola/overworld_shiny.pal diff --git a/graphics/pokemon/diglett/alolan/shiny.pal b/graphics/pokemon/diglett/alola/shiny.pal similarity index 100% rename from graphics/pokemon/diglett/alolan/shiny.pal rename to graphics/pokemon/diglett/alola/shiny.pal diff --git a/graphics/pokemon/diglett/alolan/icon.png b/graphics/pokemon/diglett/alolan/icon.png deleted file mode 100644 index 1b575078a3..0000000000 Binary files a/graphics/pokemon/diglett/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/diglett/anim_front_gba.png b/graphics/pokemon/diglett/anim_front_gba.png new file mode 100644 index 0000000000..f06decaa8e Binary files /dev/null and b/graphics/pokemon/diglett/anim_front_gba.png differ diff --git a/graphics/pokemon/diglett/back_gba.png b/graphics/pokemon/diglett/back_gba.png new file mode 100644 index 0000000000..7f0b0863b6 Binary files /dev/null and b/graphics/pokemon/diglett/back_gba.png differ diff --git a/graphics/pokemon/diglett/icon_gba.png b/graphics/pokemon/diglett/icon_gba.png new file mode 100644 index 0000000000..43db9f62d3 Binary files /dev/null and b/graphics/pokemon/diglett/icon_gba.png differ diff --git a/graphics/pokemon/diglett/normal_gba.pal b/graphics/pokemon/diglett/normal_gba.pal new file mode 100644 index 0000000000..431b7e0f05 --- /dev/null +++ b/graphics/pokemon/diglett/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 205 197 +255 106 90 +246 65 49 +230 230 180 +180 172 115 +131 123 74 +90 82 32 +123 123 123 +16 16 16 +230 164 98 +197 123 65 +164 90 32 +106 32 0 +255 0 255 diff --git a/graphics/pokemon/diglett/shiny_gba.pal b/graphics/pokemon/diglett/shiny_gba.pal new file mode 100644 index 0000000000..c7c26b7e51 --- /dev/null +++ b/graphics/pokemon/diglett/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +123 156 197 +82 115 156 +41 74 115 +230 230 180 +180 172 115 +131 123 74 +90 82 32 +123 123 123 +16 16 16 +230 164 98 +197 123 65 +164 90 32 +106 32 0 +255 0 255 diff --git a/graphics/pokemon/ditto/anim_front_gba.png b/graphics/pokemon/ditto/anim_front_gba.png new file mode 100644 index 0000000000..4a8120ace6 Binary files /dev/null and b/graphics/pokemon/ditto/anim_front_gba.png differ diff --git a/graphics/pokemon/ditto/back_gba.png b/graphics/pokemon/ditto/back_gba.png new file mode 100644 index 0000000000..0026354236 Binary files /dev/null and b/graphics/pokemon/ditto/back_gba.png differ diff --git a/graphics/pokemon/ditto/icon_gba.png b/graphics/pokemon/ditto/icon_gba.png new file mode 100644 index 0000000000..e6328feb5a Binary files /dev/null and b/graphics/pokemon/ditto/icon_gba.png differ diff --git a/graphics/pokemon/ditto/normal_gba.pal b/graphics/pokemon/ditto/normal_gba.pal new file mode 100644 index 0000000000..262742c15a --- /dev/null +++ b/graphics/pokemon/ditto/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +0 255 255 +0 255 255 +0 255 255 +0 255 255 +246 197 238 +238 156 213 +213 115 164 +180 82 131 +115 41 90 +0 255 255 +0 255 255 +0 255 255 +0 255 255 +49 49 49 +255 255 255 diff --git a/graphics/pokemon/ditto/shiny_gba.pal b/graphics/pokemon/ditto/shiny_gba.pal new file mode 100644 index 0000000000..9879583123 --- /dev/null +++ b/graphics/pokemon/ditto/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +0 255 255 +0 255 255 +0 255 255 +0 255 255 +139 230 255 +106 205 246 +74 164 230 +32 123 197 +24 74 139 +0 255 255 +0 255 255 +0 255 255 +0 255 255 +49 49 49 +255 255 255 diff --git a/graphics/pokemon/dodrio/anim_front_gba.png b/graphics/pokemon/dodrio/anim_front_gba.png new file mode 100644 index 0000000000..96cead2d15 Binary files /dev/null and b/graphics/pokemon/dodrio/anim_front_gba.png differ diff --git a/graphics/pokemon/dodrio/back_gba.png b/graphics/pokemon/dodrio/back_gba.png new file mode 100644 index 0000000000..090c189e4b Binary files /dev/null and b/graphics/pokemon/dodrio/back_gba.png differ diff --git a/graphics/pokemon/dodrio/icon_gba.png b/graphics/pokemon/dodrio/icon_gba.png new file mode 100644 index 0000000000..3d462999e5 Binary files /dev/null and b/graphics/pokemon/dodrio/icon_gba.png differ diff --git a/graphics/pokemon/dodrio/normal_gba.pal b/graphics/pokemon/dodrio/normal_gba.pal new file mode 100644 index 0000000000..445bd3377c --- /dev/null +++ b/graphics/pokemon/dodrio/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +238 197 115 +205 156 82 +164 123 74 +106 82 57 +238 222 172 +180 164 123 +98 90 65 +255 213 230 +246 131 164 +180 65 65 +213 205 205 +131 131 131 +65 65 65 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/dodrio/shiny_gba.pal b/graphics/pokemon/dodrio/shiny_gba.pal new file mode 100644 index 0000000000..e7c27940f8 --- /dev/null +++ b/graphics/pokemon/dodrio/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +197 205 74 +156 164 32 +115 123 0 +74 82 0 +255 246 139 +238 189 82 +123 90 0 +255 213 230 +246 131 164 +180 65 65 +213 205 205 +131 131 131 +65 65 65 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/doduo/anim_front_gba.png b/graphics/pokemon/doduo/anim_front_gba.png new file mode 100644 index 0000000000..7c05769965 Binary files /dev/null and b/graphics/pokemon/doduo/anim_front_gba.png differ diff --git a/graphics/pokemon/doduo/back_gba.png b/graphics/pokemon/doduo/back_gba.png new file mode 100644 index 0000000000..4589eff607 Binary files /dev/null and b/graphics/pokemon/doduo/back_gba.png differ diff --git a/graphics/pokemon/doduo/icon_gba.png b/graphics/pokemon/doduo/icon_gba.png new file mode 100644 index 0000000000..540834591e Binary files /dev/null and b/graphics/pokemon/doduo/icon_gba.png differ diff --git a/graphics/pokemon/doduo/normal_gba.pal b/graphics/pokemon/doduo/normal_gba.pal new file mode 100644 index 0000000000..d3213543ab --- /dev/null +++ b/graphics/pokemon/doduo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 205 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 172 115 +189 139 82 +148 106 74 +90 65 32 +238 222 172 +189 172 123 +115 106 49 +255 0 255 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/doduo/shiny_gba.pal b/graphics/pokemon/doduo/shiny_gba.pal new file mode 100644 index 0000000000..fa2c1c8fb9 --- /dev/null +++ b/graphics/pokemon/doduo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 205 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 205 74 +156 164 32 +115 123 0 +74 82 0 +255 246 164 +230 205 123 +131 106 24 +255 0 255 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/donphan/anim_front_gba.png b/graphics/pokemon/donphan/anim_front_gba.png new file mode 100644 index 0000000000..23181fc634 Binary files /dev/null and b/graphics/pokemon/donphan/anim_front_gba.png differ diff --git a/graphics/pokemon/donphan/back_gba.png b/graphics/pokemon/donphan/back_gba.png new file mode 100644 index 0000000000..d50d467ee6 Binary files /dev/null and b/graphics/pokemon/donphan/back_gba.png differ diff --git a/graphics/pokemon/donphan/icon_gba.png b/graphics/pokemon/donphan/icon_gba.png new file mode 100644 index 0000000000..09000b166d Binary files /dev/null and b/graphics/pokemon/donphan/icon_gba.png differ diff --git a/graphics/pokemon/donphan/normal_gba.pal b/graphics/pokemon/donphan/normal_gba.pal new file mode 100644 index 0000000000..4e0393757e --- /dev/null +++ b/graphics/pokemon/donphan/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 205 +255 255 255 +164 197 197 +123 156 156 +82 115 115 +49 82 82 +230 222 213 +213 205 205 +172 164 164 +131 123 123 +197 123 90 +148 57 41 +222 222 222 +189 189 189 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/donphan/shiny_gba.pal b/graphics/pokemon/donphan/shiny_gba.pal new file mode 100644 index 0000000000..55a6da0085 --- /dev/null +++ b/graphics/pokemon/donphan/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 205 +255 255 255 +246 189 106 +213 148 82 +156 82 57 +106 74 49 +222 222 180 +205 205 156 +156 156 115 +115 115 82 +197 123 90 +148 57 41 +222 222 222 +189 189 189 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/dragonair/anim_front_gba.png b/graphics/pokemon/dragonair/anim_front_gba.png new file mode 100644 index 0000000000..3a41bef766 Binary files /dev/null and b/graphics/pokemon/dragonair/anim_front_gba.png differ diff --git a/graphics/pokemon/dragonair/back_gba.png b/graphics/pokemon/dragonair/back_gba.png new file mode 100644 index 0000000000..ee3cf04d14 Binary files /dev/null and b/graphics/pokemon/dragonair/back_gba.png differ diff --git a/graphics/pokemon/dragonair/icon_gba.png b/graphics/pokemon/dragonair/icon_gba.png new file mode 100644 index 0000000000..f4b870a2ad Binary files /dev/null and b/graphics/pokemon/dragonair/icon_gba.png differ diff --git a/graphics/pokemon/dragonair/normal_gba.pal b/graphics/pokemon/dragonair/normal_gba.pal new file mode 100644 index 0000000000..4297fb8e9e --- /dev/null +++ b/graphics/pokemon/dragonair/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 230 +180 180 197 +106 106 123 +123 197 246 +82 131 205 +32 65 139 +24 49 90 +16 16 16 +123 49 123 +148 205 246 +82 164 213 +49 123 172 +24 65 106 +255 0 255 diff --git a/graphics/pokemon/dragonair/shiny_gba.pal b/graphics/pokemon/dragonair/shiny_gba.pal new file mode 100644 index 0000000000..da7b6d02ee --- /dev/null +++ b/graphics/pokemon/dragonair/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 230 +180 180 197 +106 106 123 +255 246 164 +255 222 82 +213 139 16 +131 82 41 +16 16 16 +123 49 123 +238 156 230 +205 115 197 +156 65 156 +90 57 98 +255 0 255 diff --git a/graphics/pokemon/dragonite/anim_front_gba.png b/graphics/pokemon/dragonite/anim_front_gba.png new file mode 100644 index 0000000000..188c9ee595 Binary files /dev/null and b/graphics/pokemon/dragonite/anim_front_gba.png differ diff --git a/graphics/pokemon/dragonite/back_gba.png b/graphics/pokemon/dragonite/back_gba.png new file mode 100644 index 0000000000..7107f90cff Binary files /dev/null and b/graphics/pokemon/dragonite/back_gba.png differ diff --git a/graphics/pokemon/dragonite/icon_gba.png b/graphics/pokemon/dragonite/icon_gba.png new file mode 100644 index 0000000000..efcbd8f11f Binary files /dev/null and b/graphics/pokemon/dragonite/icon_gba.png differ diff --git a/graphics/pokemon/dragonite/normal_gba.pal b/graphics/pokemon/dragonite/normal_gba.pal new file mode 100644 index 0000000000..80f21c5c02 --- /dev/null +++ b/graphics/pokemon/dragonite/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 0 255 +255 238 148 +246 213 115 +205 172 82 +106 90 57 +123 197 197 +82 164 164 +49 115 106 +255 246 205 +213 213 164 +156 156 106 +213 213 222 +115 115 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/dragonite/shiny_gba.pal b/graphics/pokemon/dragonite/shiny_gba.pal new file mode 100644 index 0000000000..4e04571b1c --- /dev/null +++ b/graphics/pokemon/dragonite/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 0 255 +156 180 123 +123 156 98 +90 106 65 +49 57 49 +222 156 213 +180 115 180 +115 74 123 +255 246 205 +213 213 164 +156 156 106 +213 213 222 +115 115 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/drampa/icon.png b/graphics/pokemon/drampa/icon.png index 5550dcb742..59428b634e 100644 Binary files a/graphics/pokemon/drampa/icon.png and b/graphics/pokemon/drampa/icon.png differ diff --git a/graphics/pokemon/dratini/anim_front_gba.png b/graphics/pokemon/dratini/anim_front_gba.png new file mode 100644 index 0000000000..b80476eeed Binary files /dev/null and b/graphics/pokemon/dratini/anim_front_gba.png differ diff --git a/graphics/pokemon/dratini/back_gba.png b/graphics/pokemon/dratini/back_gba.png new file mode 100644 index 0000000000..f87eb13cba Binary files /dev/null and b/graphics/pokemon/dratini/back_gba.png differ diff --git a/graphics/pokemon/dratini/icon_gba.png b/graphics/pokemon/dratini/icon_gba.png new file mode 100644 index 0000000000..c26efee602 Binary files /dev/null and b/graphics/pokemon/dratini/icon_gba.png differ diff --git a/graphics/pokemon/dratini/normal_gba.pal b/graphics/pokemon/dratini/normal_gba.pal new file mode 100644 index 0000000000..97c442e6d8 --- /dev/null +++ b/graphics/pokemon/dratini/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +238 238 197 +197 197 156 +123 123 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +139 16 180 +197 164 230 +164 131 197 +115 82 148 +57 24 90 +16 16 16 diff --git a/graphics/pokemon/dratini/shiny_gba.pal b/graphics/pokemon/dratini/shiny_gba.pal new file mode 100644 index 0000000000..b2e5cc7817 --- /dev/null +++ b/graphics/pokemon/dratini/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +238 238 197 +197 197 156 +123 123 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +139 16 180 +238 148 197 +205 106 164 +164 65 131 +123 32 90 +16 16 16 diff --git a/graphics/pokemon/drednaw/gigantamax/back.png b/graphics/pokemon/drednaw/gmax/back.png similarity index 100% rename from graphics/pokemon/drednaw/gigantamax/back.png rename to graphics/pokemon/drednaw/gmax/back.png diff --git a/graphics/pokemon/drednaw/gigantamax/front.png b/graphics/pokemon/drednaw/gmax/front.png similarity index 100% rename from graphics/pokemon/drednaw/gigantamax/front.png rename to graphics/pokemon/drednaw/gmax/front.png diff --git a/graphics/pokemon/drednaw/gigantamax/icon.png b/graphics/pokemon/drednaw/gmax/icon.png similarity index 100% rename from graphics/pokemon/drednaw/gigantamax/icon.png rename to graphics/pokemon/drednaw/gmax/icon.png diff --git a/graphics/pokemon/drednaw/gigantamax/normal.pal b/graphics/pokemon/drednaw/gmax/normal.pal similarity index 100% rename from graphics/pokemon/drednaw/gigantamax/normal.pal rename to graphics/pokemon/drednaw/gmax/normal.pal diff --git a/graphics/pokemon/drednaw/gigantamax/shiny.pal b/graphics/pokemon/drednaw/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/drednaw/gigantamax/shiny.pal rename to graphics/pokemon/drednaw/gmax/shiny.pal diff --git a/graphics/pokemon/drilbur/overworld.png b/graphics/pokemon/drilbur/overworld.png index 9d1c7ddcf8..981e575fc1 100644 Binary files a/graphics/pokemon/drilbur/overworld.png and b/graphics/pokemon/drilbur/overworld.png differ diff --git a/graphics/pokemon/drilbur/overworld_normal.pal b/graphics/pokemon/drilbur/overworld_normal.pal index 34ab39137a..9d33ec6250 100644 --- a/graphics/pokemon/drilbur/overworld_normal.pal +++ b/graphics/pokemon/drilbur/overworld_normal.pal @@ -5,7 +5,7 @@ JASC-PAL 40 40 40 40 40 40 11 11 11 -55 55 55 +43 43 43 55 55 55 87 87 87 0 0 0 diff --git a/graphics/pokemon/drowzee/anim_front_gba.png b/graphics/pokemon/drowzee/anim_front_gba.png new file mode 100644 index 0000000000..2e74d279cc Binary files /dev/null and b/graphics/pokemon/drowzee/anim_front_gba.png differ diff --git a/graphics/pokemon/drowzee/back_gba.png b/graphics/pokemon/drowzee/back_gba.png new file mode 100644 index 0000000000..b631058781 Binary files /dev/null and b/graphics/pokemon/drowzee/back_gba.png differ diff --git a/graphics/pokemon/drowzee/icon_gba.png b/graphics/pokemon/drowzee/icon_gba.png new file mode 100644 index 0000000000..39b84c871d Binary files /dev/null and b/graphics/pokemon/drowzee/icon_gba.png differ diff --git a/graphics/pokemon/drowzee/normal_gba.pal b/graphics/pokemon/drowzee/normal_gba.pal new file mode 100644 index 0000000000..2fc73cae96 --- /dev/null +++ b/graphics/pokemon/drowzee/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 205 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +189 139 82 +148 106 65 +106 74 32 +74 41 0 +255 246 65 +255 222 65 +222 189 16 +148 106 0 +16 16 16 diff --git a/graphics/pokemon/drowzee/shiny_gba.pal b/graphics/pokemon/drowzee/shiny_gba.pal new file mode 100644 index 0000000000..f192e20d0b --- /dev/null +++ b/graphics/pokemon/drowzee/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 205 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +189 98 106 +148 57 65 +106 16 24 +65 0 8 +255 230 246 +230 189 205 +189 148 164 +123 82 98 +16 16 16 diff --git a/graphics/pokemon/dugtrio/alolan/back.png b/graphics/pokemon/dugtrio/alola/back.png similarity index 100% rename from graphics/pokemon/dugtrio/alolan/back.png rename to graphics/pokemon/dugtrio/alola/back.png diff --git a/graphics/pokemon/dugtrio/alolan/front.png b/graphics/pokemon/dugtrio/alola/front.png similarity index 100% rename from graphics/pokemon/dugtrio/alolan/front.png rename to graphics/pokemon/dugtrio/alola/front.png diff --git a/graphics/pokemon/dugtrio/alola/icon.png b/graphics/pokemon/dugtrio/alola/icon.png new file mode 100644 index 0000000000..3b10a41c6b Binary files /dev/null and b/graphics/pokemon/dugtrio/alola/icon.png differ diff --git a/graphics/pokemon/dugtrio/alolan/normal.pal b/graphics/pokemon/dugtrio/alola/normal.pal similarity index 100% rename from graphics/pokemon/dugtrio/alolan/normal.pal rename to graphics/pokemon/dugtrio/alola/normal.pal diff --git a/graphics/pokemon/dugtrio/alolan/overworld.png b/graphics/pokemon/dugtrio/alola/overworld.png similarity index 100% rename from graphics/pokemon/dugtrio/alolan/overworld.png rename to graphics/pokemon/dugtrio/alola/overworld.png diff --git a/graphics/pokemon/dugtrio/alolan/overworld_normal.pal b/graphics/pokemon/dugtrio/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/dugtrio/alolan/overworld_normal.pal rename to graphics/pokemon/dugtrio/alola/overworld_normal.pal diff --git a/graphics/pokemon/dugtrio/alolan/overworld_shiny.pal b/graphics/pokemon/dugtrio/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/dugtrio/alolan/overworld_shiny.pal rename to graphics/pokemon/dugtrio/alola/overworld_shiny.pal diff --git a/graphics/pokemon/dugtrio/alolan/shiny.pal b/graphics/pokemon/dugtrio/alola/shiny.pal similarity index 100% rename from graphics/pokemon/dugtrio/alolan/shiny.pal rename to graphics/pokemon/dugtrio/alola/shiny.pal diff --git a/graphics/pokemon/dugtrio/alolan/icon.png b/graphics/pokemon/dugtrio/alolan/icon.png deleted file mode 100644 index 2a409cb8d0..0000000000 Binary files a/graphics/pokemon/dugtrio/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/dugtrio/anim_front_gba.png b/graphics/pokemon/dugtrio/anim_front_gba.png new file mode 100644 index 0000000000..81f462cc6f Binary files /dev/null and b/graphics/pokemon/dugtrio/anim_front_gba.png differ diff --git a/graphics/pokemon/dugtrio/back_gba.png b/graphics/pokemon/dugtrio/back_gba.png new file mode 100644 index 0000000000..84fd0b6307 Binary files /dev/null and b/graphics/pokemon/dugtrio/back_gba.png differ diff --git a/graphics/pokemon/dugtrio/icon_gba.png b/graphics/pokemon/dugtrio/icon_gba.png new file mode 100644 index 0000000000..a837c7f6f3 Binary files /dev/null and b/graphics/pokemon/dugtrio/icon_gba.png differ diff --git a/graphics/pokemon/dugtrio/normal_gba.pal b/graphics/pokemon/dugtrio/normal_gba.pal new file mode 100644 index 0000000000..78691ac04b --- /dev/null +++ b/graphics/pokemon/dugtrio/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 205 197 +255 106 90 +246 65 49 +230 230 180 +180 172 115 +131 123 74 +90 82 32 +123 123 123 +16 16 16 +230 164 98 +197 123 65 +164 90 32 +106 32 0 +255 0 255 diff --git a/graphics/pokemon/dugtrio/shiny_gba.pal b/graphics/pokemon/dugtrio/shiny_gba.pal new file mode 100644 index 0000000000..77345a714f --- /dev/null +++ b/graphics/pokemon/dugtrio/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +123 156 197 +82 115 156 +41 74 115 +230 230 180 +180 172 115 +131 123 74 +90 82 32 +123 123 123 +16 16 16 +230 164 98 +197 123 65 +164 90 32 +106 32 0 +255 0 255 diff --git a/graphics/pokemon/dunsparce/anim_front_gba.png b/graphics/pokemon/dunsparce/anim_front_gba.png new file mode 100644 index 0000000000..527b51c931 Binary files /dev/null and b/graphics/pokemon/dunsparce/anim_front_gba.png differ diff --git a/graphics/pokemon/dunsparce/back_gba.png b/graphics/pokemon/dunsparce/back_gba.png new file mode 100644 index 0000000000..05f700ea72 Binary files /dev/null and b/graphics/pokemon/dunsparce/back_gba.png differ diff --git a/graphics/pokemon/dunsparce/icon_gba.png b/graphics/pokemon/dunsparce/icon_gba.png new file mode 100644 index 0000000000..d2896e72bb Binary files /dev/null and b/graphics/pokemon/dunsparce/icon_gba.png differ diff --git a/graphics/pokemon/dunsparce/normal_gba.pal b/graphics/pokemon/dunsparce/normal_gba.pal new file mode 100644 index 0000000000..e0440cdc1e --- /dev/null +++ b/graphics/pokemon/dunsparce/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +32 82 139 +74 172 189 +131 205 213 +189 222 230 +90 90 90 +139 139 139 +197 205 213 +106 90 41 +189 139 32 +222 189 57 +230 230 131 +246 246 197 +255 255 255 diff --git a/graphics/pokemon/dunsparce/shiny_gba.pal b/graphics/pokemon/dunsparce/shiny_gba.pal new file mode 100644 index 0000000000..425dc8b36b --- /dev/null +++ b/graphics/pokemon/dunsparce/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +164 65 74 +222 106 123 +238 164 164 +238 213 197 +90 90 90 +139 139 139 +238 213 197 +106 90 41 +189 139 32 +222 189 57 +230 230 131 +246 246 197 +255 255 255 diff --git a/graphics/pokemon/duraludon/gigantamax/back.png b/graphics/pokemon/duraludon/gmax/back.png similarity index 100% rename from graphics/pokemon/duraludon/gigantamax/back.png rename to graphics/pokemon/duraludon/gmax/back.png diff --git a/graphics/pokemon/duraludon/gigantamax/front.png b/graphics/pokemon/duraludon/gmax/front.png similarity index 100% rename from graphics/pokemon/duraludon/gigantamax/front.png rename to graphics/pokemon/duraludon/gmax/front.png diff --git a/graphics/pokemon/duraludon/gigantamax/icon.png b/graphics/pokemon/duraludon/gmax/icon.png similarity index 100% rename from graphics/pokemon/duraludon/gigantamax/icon.png rename to graphics/pokemon/duraludon/gmax/icon.png diff --git a/graphics/pokemon/duraludon/gigantamax/normal.pal b/graphics/pokemon/duraludon/gmax/normal.pal similarity index 100% rename from graphics/pokemon/duraludon/gigantamax/normal.pal rename to graphics/pokemon/duraludon/gmax/normal.pal diff --git a/graphics/pokemon/duraludon/gigantamax/shiny.pal b/graphics/pokemon/duraludon/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/duraludon/gigantamax/shiny.pal rename to graphics/pokemon/duraludon/gmax/shiny.pal diff --git a/graphics/pokemon/dusclops/anim_front_gba.png b/graphics/pokemon/dusclops/anim_front_gba.png new file mode 100644 index 0000000000..c567f17036 Binary files /dev/null and b/graphics/pokemon/dusclops/anim_front_gba.png differ diff --git a/graphics/pokemon/dusclops/back_gba.png b/graphics/pokemon/dusclops/back_gba.png new file mode 100644 index 0000000000..9362e84213 Binary files /dev/null and b/graphics/pokemon/dusclops/back_gba.png differ diff --git a/graphics/pokemon/dusclops/icon_gba.png b/graphics/pokemon/dusclops/icon_gba.png new file mode 100644 index 0000000000..6ebc957dad Binary files /dev/null and b/graphics/pokemon/dusclops/icon_gba.png differ diff --git a/graphics/pokemon/dusclops/normal_gba.pal b/graphics/pokemon/dusclops/normal_gba.pal new file mode 100644 index 0000000000..f82d7f82eb --- /dev/null +++ b/graphics/pokemon/dusclops/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +82 57 49 +90 90 106 +255 255 255 +106 98 90 +139 139 115 +180 180 164 +148 131 123 +213 197 180 +172 172 148 +0 0 0 +0 0 0 +0 0 0 +255 255 0 +255 0 0 +24 24 24 diff --git a/graphics/pokemon/dusclops/shiny_gba.pal b/graphics/pokemon/dusclops/shiny_gba.pal new file mode 100644 index 0000000000..f07d7112f6 --- /dev/null +++ b/graphics/pokemon/dusclops/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +90 65 57 +139 32 0 +255 255 255 +156 41 16 +189 74 49 +222 106 82 +148 131 123 +213 197 180 +172 172 148 +0 0 0 +0 0 0 +0 0 0 +255 255 0 +255 0 0 +24 24 24 diff --git a/graphics/pokemon/duskull/anim_front_gba.png b/graphics/pokemon/duskull/anim_front_gba.png new file mode 100644 index 0000000000..46c83d72f3 Binary files /dev/null and b/graphics/pokemon/duskull/anim_front_gba.png differ diff --git a/graphics/pokemon/duskull/back_gba.png b/graphics/pokemon/duskull/back_gba.png new file mode 100644 index 0000000000..52a5c867d9 Binary files /dev/null and b/graphics/pokemon/duskull/back_gba.png differ diff --git a/graphics/pokemon/duskull/icon_gba.png b/graphics/pokemon/duskull/icon_gba.png new file mode 100644 index 0000000000..22710a79f3 Binary files /dev/null and b/graphics/pokemon/duskull/icon_gba.png differ diff --git a/graphics/pokemon/duskull/normal_gba.pal b/graphics/pokemon/duskull/normal_gba.pal new file mode 100644 index 0000000000..aa1fb6ba41 --- /dev/null +++ b/graphics/pokemon/duskull/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 164 172 +57 57 49 +106 106 90 +139 139 123 +180 180 148 +238 230 189 +222 213 172 +255 255 230 +74 65 65 +172 164 123 +255 164 172 +90 90 82 +0 0 0 +139 74 90 +238 82 24 +255 255 255 diff --git a/graphics/pokemon/duskull/shiny_gba.pal b/graphics/pokemon/duskull/shiny_gba.pal new file mode 100644 index 0000000000..2ec13fb1db --- /dev/null +++ b/graphics/pokemon/duskull/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 164 172 +90 0 0 +156 41 16 +189 74 49 +222 106 82 +238 230 189 +222 213 172 +255 255 230 +74 65 65 +172 164 123 +255 164 172 +123 8 0 +0 0 0 +139 74 90 +238 82 24 +255 255 255 diff --git a/graphics/pokemon/dustox/anim_front_gba.png b/graphics/pokemon/dustox/anim_front_gba.png new file mode 100644 index 0000000000..b2b1924a9f Binary files /dev/null and b/graphics/pokemon/dustox/anim_front_gba.png differ diff --git a/graphics/pokemon/dustox/back_gba.png b/graphics/pokemon/dustox/back_gba.png new file mode 100644 index 0000000000..759b98ea2a Binary files /dev/null and b/graphics/pokemon/dustox/back_gba.png differ diff --git a/graphics/pokemon/dustox/icon_gba.png b/graphics/pokemon/dustox/icon_gba.png new file mode 100644 index 0000000000..2f0d140017 Binary files /dev/null and b/graphics/pokemon/dustox/icon_gba.png differ diff --git a/graphics/pokemon/dustox/normal_gba.pal b/graphics/pokemon/dustox/normal_gba.pal new file mode 100644 index 0000000000..262b7d1ba0 --- /dev/null +++ b/graphics/pokemon/dustox/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 255 +90 74 74 +131 148 131 +156 180 156 +0 0 0 +180 106 148 +213 148 197 +230 197 213 +180 213 115 +197 255 148 +189 148 82 +238 238 49 +205 197 49 +246 82 49 +197 82 49 +24 24 24 diff --git a/graphics/pokemon/dustox/shiny_gba.pal b/graphics/pokemon/dustox/shiny_gba.pal new file mode 100644 index 0000000000..c1c43725b9 --- /dev/null +++ b/graphics/pokemon/dustox/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 255 +90 74 74 +148 98 65 +172 123 90 +0 0 0 +180 106 148 +213 148 197 +230 197 213 +230 172 90 +255 230 156 +189 148 82 +238 238 49 +205 197 49 +246 82 49 +197 82 49 +24 24 24 diff --git a/graphics/pokemon/eevee/anim_front_gba.png b/graphics/pokemon/eevee/anim_front_gba.png new file mode 100644 index 0000000000..04fd9b5068 Binary files /dev/null and b/graphics/pokemon/eevee/anim_front_gba.png differ diff --git a/graphics/pokemon/eevee/back_gba.png b/graphics/pokemon/eevee/back_gba.png new file mode 100644 index 0000000000..79bd1129c6 Binary files /dev/null and b/graphics/pokemon/eevee/back_gba.png differ diff --git a/graphics/pokemon/eevee/gigantamax/back.png b/graphics/pokemon/eevee/gmax/back.png similarity index 100% rename from graphics/pokemon/eevee/gigantamax/back.png rename to graphics/pokemon/eevee/gmax/back.png diff --git a/graphics/pokemon/eevee/gigantamax/front.png b/graphics/pokemon/eevee/gmax/front.png similarity index 100% rename from graphics/pokemon/eevee/gigantamax/front.png rename to graphics/pokemon/eevee/gmax/front.png diff --git a/graphics/pokemon/eevee/gigantamax/icon.png b/graphics/pokemon/eevee/gmax/icon.png similarity index 100% rename from graphics/pokemon/eevee/gigantamax/icon.png rename to graphics/pokemon/eevee/gmax/icon.png diff --git a/graphics/pokemon/eevee/gigantamax/normal.pal b/graphics/pokemon/eevee/gmax/normal.pal similarity index 100% rename from graphics/pokemon/eevee/gigantamax/normal.pal rename to graphics/pokemon/eevee/gmax/normal.pal diff --git a/graphics/pokemon/eevee/gigantamax/shiny.pal b/graphics/pokemon/eevee/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/eevee/gigantamax/shiny.pal rename to graphics/pokemon/eevee/gmax/shiny.pal diff --git a/graphics/pokemon/eevee/icon_gba.png b/graphics/pokemon/eevee/icon_gba.png new file mode 100644 index 0000000000..13b90c2e2d Binary files /dev/null and b/graphics/pokemon/eevee/icon_gba.png differ diff --git a/graphics/pokemon/eevee/normal_gba.pal b/graphics/pokemon/eevee/normal_gba.pal new file mode 100644 index 0000000000..266f9f1742 --- /dev/null +++ b/graphics/pokemon/eevee/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +238 230 197 +222 213 164 +197 180 115 +131 115 74 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +230 180 115 +197 148 82 +164 123 49 +98 82 41 +255 0 255 diff --git a/graphics/pokemon/eevee/shiny_gba.pal b/graphics/pokemon/eevee/shiny_gba.pal new file mode 100644 index 0000000000..7f9f3c7b8d --- /dev/null +++ b/graphics/pokemon/eevee/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +246 255 255 +222 230 246 +172 180 213 +106 123 148 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +238 238 213 +222 222 205 +172 172 172 +82 82 82 +255 0 255 diff --git a/graphics/pokemon/egg/anim_front_gba.png b/graphics/pokemon/egg/anim_front_gba.png new file mode 100644 index 0000000000..5451b34a22 Binary files /dev/null and b/graphics/pokemon/egg/anim_front_gba.png differ diff --git a/graphics/pokemon/egg/icon_gba.png b/graphics/pokemon/egg/icon_gba.png new file mode 100644 index 0000000000..8f6ca5dde3 Binary files /dev/null and b/graphics/pokemon/egg/icon_gba.png differ diff --git a/graphics/pokemon/egg/normal_gba.pal b/graphics/pokemon/egg/normal_gba.pal new file mode 100644 index 0000000000..cadeacee04 --- /dev/null +++ b/graphics/pokemon/egg/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 255 148 +65 74 74 +148 156 156 +246 246 213 +238 230 164 +205 197 131 +123 205 74 +106 148 82 +230 0 0 +230 0 0 +230 0 0 +230 0 0 +230 0 0 +230 0 0 +230 0 0 +131 230 230 diff --git a/graphics/pokemon/ekans/anim_front_gba.png b/graphics/pokemon/ekans/anim_front_gba.png new file mode 100644 index 0000000000..22d3fe19c2 Binary files /dev/null and b/graphics/pokemon/ekans/anim_front_gba.png differ diff --git a/graphics/pokemon/ekans/back_gba.png b/graphics/pokemon/ekans/back_gba.png new file mode 100644 index 0000000000..e72a7a9edd Binary files /dev/null and b/graphics/pokemon/ekans/back_gba.png differ diff --git a/graphics/pokemon/ekans/icon_gba.png b/graphics/pokemon/ekans/icon_gba.png new file mode 100644 index 0000000000..3c81efd691 Binary files /dev/null and b/graphics/pokemon/ekans/icon_gba.png differ diff --git a/graphics/pokemon/ekans/normal_gba.pal b/graphics/pokemon/ekans/normal_gba.pal new file mode 100644 index 0000000000..55289888c9 --- /dev/null +++ b/graphics/pokemon/ekans/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 189 +255 255 255 +246 115 74 +197 65 24 +156 16 0 +255 0 255 +255 230 156 +255 213 106 +230 172 90 +131 82 16 +255 0 255 +16 16 16 +222 164 197 +189 115 164 +156 74 131 +106 32 90 diff --git a/graphics/pokemon/ekans/shiny_gba.pal b/graphics/pokemon/ekans/shiny_gba.pal new file mode 100644 index 0000000000..5298644301 --- /dev/null +++ b/graphics/pokemon/ekans/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 189 +255 255 255 +246 115 74 +197 65 24 +156 16 0 +255 0 255 +255 230 156 +255 213 106 +230 172 90 +131 82 16 +255 0 255 +16 16 16 +213 197 98 +172 156 57 +131 115 16 +90 74 0 diff --git a/graphics/pokemon/electabuzz/anim_front_gba.png b/graphics/pokemon/electabuzz/anim_front_gba.png new file mode 100644 index 0000000000..7edefd6059 Binary files /dev/null and b/graphics/pokemon/electabuzz/anim_front_gba.png differ diff --git a/graphics/pokemon/electabuzz/back_gba.png b/graphics/pokemon/electabuzz/back_gba.png new file mode 100644 index 0000000000..8d84c2cb63 Binary files /dev/null and b/graphics/pokemon/electabuzz/back_gba.png differ diff --git a/graphics/pokemon/electabuzz/icon_gba.png b/graphics/pokemon/electabuzz/icon_gba.png new file mode 100644 index 0000000000..4c9babe2a9 Binary files /dev/null and b/graphics/pokemon/electabuzz/icon_gba.png differ diff --git a/graphics/pokemon/electabuzz/normal_gba.pal b/graphics/pokemon/electabuzz/normal_gba.pal new file mode 100644 index 0000000000..1a18eb70d8 --- /dev/null +++ b/graphics/pokemon/electabuzz/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +115 115 115 +16 16 16 +255 0 255 +255 0 255 +255 172 123 +255 82 32 +189 49 8 +255 0 255 +255 255 213 +255 230 156 +255 213 106 +230 164 82 +164 82 0 diff --git a/graphics/pokemon/electabuzz/shiny_gba.pal b/graphics/pokemon/electabuzz/shiny_gba.pal new file mode 100644 index 0000000000..df9fa23e84 --- /dev/null +++ b/graphics/pokemon/electabuzz/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +115 115 115 +16 16 16 +255 0 255 +255 0 255 +255 172 123 +255 82 32 +189 49 8 +255 0 255 +255 230 148 +255 205 41 +238 131 0 +205 98 0 +164 41 0 diff --git a/graphics/pokemon/electrike/anim_front_gba.png b/graphics/pokemon/electrike/anim_front_gba.png new file mode 100644 index 0000000000..396dd670bf Binary files /dev/null and b/graphics/pokemon/electrike/anim_front_gba.png differ diff --git a/graphics/pokemon/electrike/back_gba.png b/graphics/pokemon/electrike/back_gba.png new file mode 100644 index 0000000000..c6e9e83e53 Binary files /dev/null and b/graphics/pokemon/electrike/back_gba.png differ diff --git a/graphics/pokemon/electrike/icon_gba.png b/graphics/pokemon/electrike/icon_gba.png new file mode 100644 index 0000000000..ebef61c499 Binary files /dev/null and b/graphics/pokemon/electrike/icon_gba.png differ diff --git a/graphics/pokemon/electrike/normal_gba.pal b/graphics/pokemon/electrike/normal_gba.pal new file mode 100644 index 0000000000..5ee96cb845 --- /dev/null +++ b/graphics/pokemon/electrike/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 246 +65 82 65 +82 139 90 +106 180 123 +156 222 131 +255 238 32 +213 213 24 +172 197 65 +148 49 57 +213 57 49 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +197 205 222 +24 24 24 diff --git a/graphics/pokemon/electrike/shiny_gba.pal b/graphics/pokemon/electrike/shiny_gba.pal new file mode 100644 index 0000000000..c7f51a2b13 --- /dev/null +++ b/graphics/pokemon/electrike/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 246 +74 74 131 +49 123 189 +90 156 213 +123 197 255 +255 238 32 +197 213 98 +172 197 65 +148 49 57 +213 57 49 +0 0 0 +0 0 0 +0 0 0 +255 255 255 +197 205 222 +24 24 24 diff --git a/graphics/pokemon/electrode/anim_front_gba.png b/graphics/pokemon/electrode/anim_front_gba.png new file mode 100644 index 0000000000..57c95efa16 Binary files /dev/null and b/graphics/pokemon/electrode/anim_front_gba.png differ diff --git a/graphics/pokemon/electrode/back_gba.png b/graphics/pokemon/electrode/back_gba.png new file mode 100644 index 0000000000..74ca458d39 Binary files /dev/null and b/graphics/pokemon/electrode/back_gba.png differ diff --git a/graphics/pokemon/electrode/hisuian/back.png b/graphics/pokemon/electrode/hisui/back.png similarity index 100% rename from graphics/pokemon/electrode/hisuian/back.png rename to graphics/pokemon/electrode/hisui/back.png diff --git a/graphics/pokemon/electrode/hisuian/front.png b/graphics/pokemon/electrode/hisui/front.png similarity index 100% rename from graphics/pokemon/electrode/hisuian/front.png rename to graphics/pokemon/electrode/hisui/front.png diff --git a/graphics/pokemon/electrode/hisuian/icon.png b/graphics/pokemon/electrode/hisui/icon.png similarity index 100% rename from graphics/pokemon/electrode/hisuian/icon.png rename to graphics/pokemon/electrode/hisui/icon.png diff --git a/graphics/pokemon/electrode/hisuian/normal.pal b/graphics/pokemon/electrode/hisui/normal.pal similarity index 100% rename from graphics/pokemon/electrode/hisuian/normal.pal rename to graphics/pokemon/electrode/hisui/normal.pal diff --git a/graphics/pokemon/electrode/hisuian/overworld.png b/graphics/pokemon/electrode/hisui/overworld.png similarity index 100% rename from graphics/pokemon/electrode/hisuian/overworld.png rename to graphics/pokemon/electrode/hisui/overworld.png diff --git a/graphics/pokemon/electrode/hisuian/overworld_normal.pal b/graphics/pokemon/electrode/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/electrode/hisuian/overworld_normal.pal rename to graphics/pokemon/electrode/hisui/overworld_normal.pal diff --git a/graphics/pokemon/electrode/hisuian/overworld_shiny.pal b/graphics/pokemon/electrode/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/electrode/hisuian/overworld_shiny.pal rename to graphics/pokemon/electrode/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/electrode/hisuian/shiny.pal b/graphics/pokemon/electrode/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/electrode/hisuian/shiny.pal rename to graphics/pokemon/electrode/hisui/shiny.pal diff --git a/graphics/pokemon/electrode/icon_gba.png b/graphics/pokemon/electrode/icon_gba.png new file mode 100644 index 0000000000..e46c57974f Binary files /dev/null and b/graphics/pokemon/electrode/icon_gba.png differ diff --git a/graphics/pokemon/electrode/normal_gba.pal b/graphics/pokemon/electrode/normal_gba.pal new file mode 100644 index 0000000000..1848bf7167 --- /dev/null +++ b/graphics/pokemon/electrode/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 189 230 +255 255 255 +238 238 238 +205 205 205 +164 156 156 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 180 156 +255 123 74 +230 65 0 +180 49 0 +131 16 16 +16 16 16 diff --git a/graphics/pokemon/electrode/shiny_gba.pal b/graphics/pokemon/electrode/shiny_gba.pal new file mode 100644 index 0000000000..d651b064fe --- /dev/null +++ b/graphics/pokemon/electrode/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +238 238 238 +222 222 230 +180 172 172 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +115 197 255 +74 156 213 +32 115 172 +32 74 131 +32 32 90 +16 16 16 diff --git a/graphics/pokemon/elekid/anim_front_gba.png b/graphics/pokemon/elekid/anim_front_gba.png new file mode 100644 index 0000000000..7f3091f523 Binary files /dev/null and b/graphics/pokemon/elekid/anim_front_gba.png differ diff --git a/graphics/pokemon/elekid/back_gba.png b/graphics/pokemon/elekid/back_gba.png new file mode 100644 index 0000000000..0d8d9428ab Binary files /dev/null and b/graphics/pokemon/elekid/back_gba.png differ diff --git a/graphics/pokemon/elekid/icon_gba.png b/graphics/pokemon/elekid/icon_gba.png new file mode 100644 index 0000000000..d80ce6f0d8 Binary files /dev/null and b/graphics/pokemon/elekid/icon_gba.png differ diff --git a/graphics/pokemon/elekid/normal_gba.pal b/graphics/pokemon/elekid/normal_gba.pal new file mode 100644 index 0000000000..522f7de84a --- /dev/null +++ b/graphics/pokemon/elekid/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 205 172 +255 255 255 +255 230 156 +246 197 74 +230 172 0 +180 106 0 +123 82 0 +246 148 16 +156 49 0 +115 16 0 +255 0 255 +205 205 205 +164 164 164 +106 106 106 +49 49 65 +16 16 16 diff --git a/graphics/pokemon/elekid/shiny_gba.pal b/graphics/pokemon/elekid/shiny_gba.pal new file mode 100644 index 0000000000..59ff6b2cf7 --- /dev/null +++ b/graphics/pokemon/elekid/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 230 82 +238 205 65 +189 156 24 +148 115 0 +123 82 0 +246 148 16 +156 49 0 +115 16 0 +255 0 255 +205 205 205 +164 164 164 +115 98 49 +57 49 32 +16 16 16 diff --git a/graphics/pokemon/emboar/overworld.png b/graphics/pokemon/emboar/overworld.png index 06e17288d7..e647d062c3 100644 Binary files a/graphics/pokemon/emboar/overworld.png and b/graphics/pokemon/emboar/overworld.png differ diff --git a/graphics/pokemon/emboar/overworld_normal.pal b/graphics/pokemon/emboar/overworld_normal.pal index e9f672d506..e507a90ca9 100644 --- a/graphics/pokemon/emboar/overworld_normal.pal +++ b/graphics/pokemon/emboar/overworld_normal.pal @@ -6,14 +6,14 @@ JASC-PAL 5 5 5 48 48 48 111 40 1 -216 85 36 -188 82 31 +224 88 25 +184 80 32 119 19 12 -215 195 196 +240 240 240 230 49 41 -237 172 8 -180 139 32 +232 184 8 +176 136 32 123 90 8 -0 0 0 -0 0 0 +160 56 48 +64 64 64 0 0 0 diff --git a/graphics/pokemon/emboar/overworld_shiny.pal b/graphics/pokemon/emboar/overworld_shiny.pal index 1c5459473d..8fa173f591 100644 --- a/graphics/pokemon/emboar/overworld_shiny.pal +++ b/graphics/pokemon/emboar/overworld_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -41 41 41 +32 32 32 5 5 5 -41 41 41 +48 48 48 117 70 5 229 130 31 -41 41 41 -41 41 41 -229 130 31 +168 96 40 +49 53 92 +240 240 240 128 152 224 151 195 221 128 152 224 -117 70 5 -0 0 0 -0 0 0 +64 72 144 +96 112 184 +61 61 61 0 0 0 diff --git a/graphics/pokemon/entei/anim_front_gba.png b/graphics/pokemon/entei/anim_front_gba.png new file mode 100644 index 0000000000..297d253b1d Binary files /dev/null and b/graphics/pokemon/entei/anim_front_gba.png differ diff --git a/graphics/pokemon/entei/back_gba.png b/graphics/pokemon/entei/back_gba.png new file mode 100644 index 0000000000..902b4461a2 Binary files /dev/null and b/graphics/pokemon/entei/back_gba.png differ diff --git a/graphics/pokemon/entei/icon_gba.png b/graphics/pokemon/entei/icon_gba.png new file mode 100644 index 0000000000..4d2353a20c Binary files /dev/null and b/graphics/pokemon/entei/icon_gba.png differ diff --git a/graphics/pokemon/entei/normal_gba.pal b/graphics/pokemon/entei/normal_gba.pal new file mode 100644 index 0000000000..27cad95eaa --- /dev/null +++ b/graphics/pokemon/entei/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 189 98 +180 148 74 +131 98 32 +82 57 0 +255 123 41 +230 41 0 +156 0 0 +255 230 148 +255 205 0 +213 148 0 +213 213 213 +172 172 172 +98 98 98 +16 16 16 diff --git a/graphics/pokemon/entei/shiny_gba.pal b/graphics/pokemon/entei/shiny_gba.pal new file mode 100644 index 0000000000..e3f22acddd --- /dev/null +++ b/graphics/pokemon/entei/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 164 115 +213 123 82 +156 74 49 +115 49 41 +164 172 189 +115 123 139 +65 65 74 +255 213 172 +255 205 0 +213 148 0 +213 213 213 +172 172 172 +98 98 98 +16 16 16 diff --git a/graphics/pokemon/espeon/anim_front_gba.png b/graphics/pokemon/espeon/anim_front_gba.png new file mode 100644 index 0000000000..95ff75a0cd Binary files /dev/null and b/graphics/pokemon/espeon/anim_front_gba.png differ diff --git a/graphics/pokemon/espeon/back_gba.png b/graphics/pokemon/espeon/back_gba.png new file mode 100644 index 0000000000..c3e5d96ded Binary files /dev/null and b/graphics/pokemon/espeon/back_gba.png differ diff --git a/graphics/pokemon/espeon/icon_gba.png b/graphics/pokemon/espeon/icon_gba.png new file mode 100644 index 0000000000..bc63aa3f2c Binary files /dev/null and b/graphics/pokemon/espeon/icon_gba.png differ diff --git a/graphics/pokemon/espeon/normal_gba.pal b/graphics/pokemon/espeon/normal_gba.pal new file mode 100644 index 0000000000..b001102c1b --- /dev/null +++ b/graphics/pokemon/espeon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +131 57 65 +213 57 65 +49 49 49 +82 57 106 +123 82 180 +180 115 230 +213 172 230 +238 222 238 +16 16 16 +0 24 148 +255 255 255 diff --git a/graphics/pokemon/espeon/shiny_gba.pal b/graphics/pokemon/espeon/shiny_gba.pal new file mode 100644 index 0000000000..22222e2c7c --- /dev/null +++ b/graphics/pokemon/espeon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +131 90 0 +255 164 65 +49 49 49 +41 98 41 +74 156 65 +106 205 74 +164 230 90 +213 255 156 +16 16 16 +82 41 90 +255 255 255 diff --git a/graphics/pokemon/exeggcute/anim_front_gba.png b/graphics/pokemon/exeggcute/anim_front_gba.png new file mode 100644 index 0000000000..ca0b6df22d Binary files /dev/null and b/graphics/pokemon/exeggcute/anim_front_gba.png differ diff --git a/graphics/pokemon/exeggcute/back_gba.png b/graphics/pokemon/exeggcute/back_gba.png new file mode 100644 index 0000000000..e340cd0361 Binary files /dev/null and b/graphics/pokemon/exeggcute/back_gba.png differ diff --git a/graphics/pokemon/exeggcute/icon_gba.png b/graphics/pokemon/exeggcute/icon_gba.png new file mode 100644 index 0000000000..5d0306610c Binary files /dev/null and b/graphics/pokemon/exeggcute/icon_gba.png differ diff --git a/graphics/pokemon/exeggcute/normal_gba.pal b/graphics/pokemon/exeggcute/normal_gba.pal new file mode 100644 index 0000000000..04f5ede317 --- /dev/null +++ b/graphics/pokemon/exeggcute/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +255 205 74 +230 156 0 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 238 197 +255 213 172 +255 180 139 +230 106 82 +148 49 16 diff --git a/graphics/pokemon/exeggcute/shiny_gba.pal b/graphics/pokemon/exeggcute/shiny_gba.pal new file mode 100644 index 0000000000..4b18e5857f --- /dev/null +++ b/graphics/pokemon/exeggcute/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +255 205 74 +230 156 0 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 255 189 +255 255 98 +255 213 57 +255 172 16 +131 49 0 diff --git a/graphics/pokemon/exeggutor/alolan/anim_front.png b/graphics/pokemon/exeggutor/alola/anim_front.png similarity index 100% rename from graphics/pokemon/exeggutor/alolan/anim_front.png rename to graphics/pokemon/exeggutor/alola/anim_front.png diff --git a/graphics/pokemon/exeggutor/alolan/back.png b/graphics/pokemon/exeggutor/alola/back.png similarity index 100% rename from graphics/pokemon/exeggutor/alolan/back.png rename to graphics/pokemon/exeggutor/alola/back.png diff --git a/graphics/pokemon/exeggutor/alola/icon.png b/graphics/pokemon/exeggutor/alola/icon.png new file mode 100644 index 0000000000..49b788b715 Binary files /dev/null and b/graphics/pokemon/exeggutor/alola/icon.png differ diff --git a/graphics/pokemon/exeggutor/alolan/normal.pal b/graphics/pokemon/exeggutor/alola/normal.pal similarity index 100% rename from graphics/pokemon/exeggutor/alolan/normal.pal rename to graphics/pokemon/exeggutor/alola/normal.pal diff --git a/graphics/pokemon/exeggutor/alolan/overworld.png b/graphics/pokemon/exeggutor/alola/overworld.png similarity index 100% rename from graphics/pokemon/exeggutor/alolan/overworld.png rename to graphics/pokemon/exeggutor/alola/overworld.png diff --git a/graphics/pokemon/exeggutor/alolan/overworld_normal.pal b/graphics/pokemon/exeggutor/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/exeggutor/alolan/overworld_normal.pal rename to graphics/pokemon/exeggutor/alola/overworld_normal.pal diff --git a/graphics/pokemon/exeggutor/alolan/overworld_shiny.pal b/graphics/pokemon/exeggutor/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/exeggutor/alolan/overworld_shiny.pal rename to graphics/pokemon/exeggutor/alola/overworld_shiny.pal diff --git a/graphics/pokemon/exeggutor/alolan/shiny.pal b/graphics/pokemon/exeggutor/alola/shiny.pal similarity index 100% rename from graphics/pokemon/exeggutor/alolan/shiny.pal rename to graphics/pokemon/exeggutor/alola/shiny.pal diff --git a/graphics/pokemon/exeggutor/alolan/icon.png b/graphics/pokemon/exeggutor/alolan/icon.png deleted file mode 100644 index 723d0a4ead..0000000000 Binary files a/graphics/pokemon/exeggutor/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/exeggutor/anim_front_gba.png b/graphics/pokemon/exeggutor/anim_front_gba.png new file mode 100644 index 0000000000..f4100b755d Binary files /dev/null and b/graphics/pokemon/exeggutor/anim_front_gba.png differ diff --git a/graphics/pokemon/exeggutor/back_gba.png b/graphics/pokemon/exeggutor/back_gba.png new file mode 100644 index 0000000000..ff28c85550 Binary files /dev/null and b/graphics/pokemon/exeggutor/back_gba.png differ diff --git a/graphics/pokemon/exeggutor/icon_gba.png b/graphics/pokemon/exeggutor/icon_gba.png new file mode 100644 index 0000000000..610c65a3d3 Binary files /dev/null and b/graphics/pokemon/exeggutor/icon_gba.png differ diff --git a/graphics/pokemon/exeggutor/normal_gba.pal b/graphics/pokemon/exeggutor/normal_gba.pal new file mode 100644 index 0000000000..6c375af6dd --- /dev/null +++ b/graphics/pokemon/exeggutor/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 238 164 +255 222 106 +230 172 90 +164 106 32 +180 156 74 +139 115 65 +98 65 16 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +222 222 222 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/exeggutor/shiny_gba.pal b/graphics/pokemon/exeggutor/shiny_gba.pal new file mode 100644 index 0000000000..c06646a6c5 --- /dev/null +++ b/graphics/pokemon/exeggutor/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 238 164 +255 222 106 +230 172 90 +164 106 32 +222 189 82 +180 148 32 +106 82 0 +255 189 123 +222 148 82 +180 106 41 +115 41 0 +222 222 222 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/exploud/anim_front_gba.png b/graphics/pokemon/exploud/anim_front_gba.png new file mode 100644 index 0000000000..8cf38b83ec Binary files /dev/null and b/graphics/pokemon/exploud/anim_front_gba.png differ diff --git a/graphics/pokemon/exploud/back_gba.png b/graphics/pokemon/exploud/back_gba.png new file mode 100644 index 0000000000..37132bf48c Binary files /dev/null and b/graphics/pokemon/exploud/back_gba.png differ diff --git a/graphics/pokemon/exploud/icon_gba.png b/graphics/pokemon/exploud/icon_gba.png new file mode 100644 index 0000000000..04ed7f13de Binary files /dev/null and b/graphics/pokemon/exploud/icon_gba.png differ diff --git a/graphics/pokemon/exploud/normal_gba.pal b/graphics/pokemon/exploud/normal_gba.pal new file mode 100644 index 0000000000..074305af3b --- /dev/null +++ b/graphics/pokemon/exploud/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 189 238 +164 156 222 +123 115 180 +82 74 139 +255 222 90 +222 180 74 +156 115 24 +255 115 82 +213 74 49 +156 57 24 +106 49 24 +213 222 255 +131 131 131 +0 0 0 diff --git a/graphics/pokemon/exploud/shiny_gba.pal b/graphics/pokemon/exploud/shiny_gba.pal new file mode 100644 index 0000000000..cfde98dc20 --- /dev/null +++ b/graphics/pokemon/exploud/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 172 189 +189 156 164 +139 106 123 +115 82 90 +255 238 172 +246 197 82 +238 172 24 +255 139 82 +213 82 49 +164 49 24 +115 74 0 +222 197 222 +131 131 131 +57 49 74 diff --git a/graphics/pokemon/farfetchd/anim_front_gba.png b/graphics/pokemon/farfetchd/anim_front_gba.png new file mode 100644 index 0000000000..23176939b6 Binary files /dev/null and b/graphics/pokemon/farfetchd/anim_front_gba.png differ diff --git a/graphics/pokemon/farfetchd/back_gba.png b/graphics/pokemon/farfetchd/back_gba.png new file mode 100644 index 0000000000..7f981b3897 Binary files /dev/null and b/graphics/pokemon/farfetchd/back_gba.png differ diff --git a/graphics/pokemon/farfetchd/galarian/back.png b/graphics/pokemon/farfetchd/galar/back.png similarity index 100% rename from graphics/pokemon/farfetchd/galarian/back.png rename to graphics/pokemon/farfetchd/galar/back.png diff --git a/graphics/pokemon/farfetchd/galarian/front.png b/graphics/pokemon/farfetchd/galar/front.png similarity index 100% rename from graphics/pokemon/farfetchd/galarian/front.png rename to graphics/pokemon/farfetchd/galar/front.png diff --git a/graphics/pokemon/farfetchd/galarian/icon.png b/graphics/pokemon/farfetchd/galar/icon.png similarity index 100% rename from graphics/pokemon/farfetchd/galarian/icon.png rename to graphics/pokemon/farfetchd/galar/icon.png diff --git a/graphics/pokemon/farfetchd/galarian/normal.pal b/graphics/pokemon/farfetchd/galar/normal.pal similarity index 100% rename from graphics/pokemon/farfetchd/galarian/normal.pal rename to graphics/pokemon/farfetchd/galar/normal.pal diff --git a/graphics/pokemon/farfetchd/galarian/overworld.png b/graphics/pokemon/farfetchd/galar/overworld.png similarity index 100% rename from graphics/pokemon/farfetchd/galarian/overworld.png rename to graphics/pokemon/farfetchd/galar/overworld.png diff --git a/graphics/pokemon/farfetchd/galarian/overworld_normal.pal b/graphics/pokemon/farfetchd/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/farfetchd/galarian/overworld_normal.pal rename to graphics/pokemon/farfetchd/galar/overworld_normal.pal diff --git a/graphics/pokemon/farfetchd/galarian/overworld_shiny.pal b/graphics/pokemon/farfetchd/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/farfetchd/galarian/overworld_shiny.pal rename to graphics/pokemon/farfetchd/galar/overworld_shiny.pal diff --git a/graphics/pokemon/farfetchd/galarian/shiny.pal b/graphics/pokemon/farfetchd/galar/shiny.pal similarity index 100% rename from graphics/pokemon/farfetchd/galarian/shiny.pal rename to graphics/pokemon/farfetchd/galar/shiny.pal diff --git a/graphics/pokemon/farfetchd/icon_gba.png b/graphics/pokemon/farfetchd/icon_gba.png new file mode 100644 index 0000000000..cb3cd931bd Binary files /dev/null and b/graphics/pokemon/farfetchd/icon_gba.png differ diff --git a/graphics/pokemon/farfetchd/normal_gba.pal b/graphics/pokemon/farfetchd/normal_gba.pal new file mode 100644 index 0000000000..397d1195ce --- /dev/null +++ b/graphics/pokemon/farfetchd/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +230 230 164 +197 197 131 +255 230 106 +230 172 90 +189 106 41 +205 255 139 +65 222 65 +0 156 32 +230 197 123 +180 148 82 +131 98 32 +98 65 0 +16 16 16 diff --git a/graphics/pokemon/farfetchd/overworld.png b/graphics/pokemon/farfetchd/overworld.png index 46aec09764..63d29215b7 100644 Binary files a/graphics/pokemon/farfetchd/overworld.png and b/graphics/pokemon/farfetchd/overworld.png differ diff --git a/graphics/pokemon/farfetchd/shiny_gba.pal b/graphics/pokemon/farfetchd/shiny_gba.pal new file mode 100644 index 0000000000..5537612ce1 --- /dev/null +++ b/graphics/pokemon/farfetchd/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +230 230 164 +197 197 131 +255 230 106 +230 172 90 +189 106 41 +205 255 139 +139 189 57 +98 148 16 +246 189 180 +213 148 139 +172 106 98 +131 65 57 +16 16 16 diff --git a/graphics/pokemon/fearow/anim_front_gba.png b/graphics/pokemon/fearow/anim_front_gba.png new file mode 100644 index 0000000000..42bc44fd35 Binary files /dev/null and b/graphics/pokemon/fearow/anim_front_gba.png differ diff --git a/graphics/pokemon/fearow/back_gba.png b/graphics/pokemon/fearow/back_gba.png new file mode 100644 index 0000000000..ae54db9a73 Binary files /dev/null and b/graphics/pokemon/fearow/back_gba.png differ diff --git a/graphics/pokemon/fearow/icon_gba.png b/graphics/pokemon/fearow/icon_gba.png new file mode 100644 index 0000000000..9a3be93930 Binary files /dev/null and b/graphics/pokemon/fearow/icon_gba.png differ diff --git a/graphics/pokemon/fearow/normal_gba.pal b/graphics/pokemon/fearow/normal_gba.pal new file mode 100644 index 0000000000..6b73e3639e --- /dev/null +++ b/graphics/pokemon/fearow/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +222 205 164 +197 180 139 +98 82 49 +16 16 16 +255 131 115 +246 82 65 +205 32 16 +255 205 123 +246 180 90 +213 156 57 +172 115 16 +123 65 0 +246 180 90 +255 255 255 diff --git a/graphics/pokemon/fearow/shiny_gba.pal b/graphics/pokemon/fearow/shiny_gba.pal new file mode 100644 index 0000000000..686e65a9c9 --- /dev/null +++ b/graphics/pokemon/fearow/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +222 205 164 +197 180 139 +98 82 49 +16 16 16 +255 205 74 +255 164 0 +197 123 0 +255 246 131 +255 230 90 +213 197 49 +180 164 8 +115 98 0 +246 180 90 +255 255 255 diff --git a/graphics/pokemon/feebas/anim_front_gba.png b/graphics/pokemon/feebas/anim_front_gba.png new file mode 100644 index 0000000000..9afa332dc1 Binary files /dev/null and b/graphics/pokemon/feebas/anim_front_gba.png differ diff --git a/graphics/pokemon/feebas/back_gba.png b/graphics/pokemon/feebas/back_gba.png new file mode 100644 index 0000000000..3eabd60214 Binary files /dev/null and b/graphics/pokemon/feebas/back_gba.png differ diff --git a/graphics/pokemon/feebas/icon_gba.png b/graphics/pokemon/feebas/icon_gba.png new file mode 100644 index 0000000000..19e08797ac Binary files /dev/null and b/graphics/pokemon/feebas/icon_gba.png differ diff --git a/graphics/pokemon/feebas/normal_gba.pal b/graphics/pokemon/feebas/normal_gba.pal new file mode 100644 index 0000000000..c66deb1e04 --- /dev/null +++ b/graphics/pokemon/feebas/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 148 98 +90 74 57 +180 164 115 +213 213 131 +238 238 156 +115 164 41 +164 205 98 +148 131 82 +180 106 106 +230 123 98 +82 82 115 +164 172 197 +205 222 255 +230 222 230 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/feebas/shiny_gba.pal b/graphics/pokemon/feebas/shiny_gba.pal new file mode 100644 index 0000000000..6d85b28667 --- /dev/null +++ b/graphics/pokemon/feebas/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 148 98 +98 65 74 +172 139 148 +205 172 180 +238 205 213 +115 164 41 +164 205 98 +139 106 115 +180 106 106 +230 123 98 +82 82 115 +164 172 197 +205 222 255 +230 222 230 +255 255 255 +41 41 41 diff --git a/graphics/pokemon/feraligatr/anim_front_gba.png b/graphics/pokemon/feraligatr/anim_front_gba.png new file mode 100644 index 0000000000..17228a8530 Binary files /dev/null and b/graphics/pokemon/feraligatr/anim_front_gba.png differ diff --git a/graphics/pokemon/feraligatr/back_gba.png b/graphics/pokemon/feraligatr/back_gba.png new file mode 100644 index 0000000000..d996dd8ce0 Binary files /dev/null and b/graphics/pokemon/feraligatr/back_gba.png differ diff --git a/graphics/pokemon/feraligatr/icon_gba.png b/graphics/pokemon/feraligatr/icon_gba.png new file mode 100644 index 0000000000..fe3f4fca6e Binary files /dev/null and b/graphics/pokemon/feraligatr/icon_gba.png differ diff --git a/graphics/pokemon/feraligatr/normal_gba.pal b/graphics/pokemon/feraligatr/normal_gba.pal new file mode 100644 index 0000000000..7fc0a9eb89 --- /dev/null +++ b/graphics/pokemon/feraligatr/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +131 205 255 +90 172 230 +49 131 197 +74 74 131 +197 197 197 +255 172 90 +255 90 32 +205 41 24 +123 0 0 +255 255 156 +255 213 82 +205 172 65 +156 115 8 +16 16 16 diff --git a/graphics/pokemon/feraligatr/shiny_gba.pal b/graphics/pokemon/feraligatr/shiny_gba.pal new file mode 100644 index 0000000000..81c5ebc2a2 --- /dev/null +++ b/graphics/pokemon/feraligatr/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +115 238 222 +82 205 197 +74 156 164 +41 98 123 +197 197 197 +106 156 246 +49 98 213 +41 65 156 +0 49 90 +255 255 156 +246 222 115 +213 180 74 +156 115 8 +16 16 16 diff --git a/graphics/pokemon/fezandipiti/back.png b/graphics/pokemon/fezandipiti/back.png index 4583405047..4ca4925481 100644 Binary files a/graphics/pokemon/fezandipiti/back.png and b/graphics/pokemon/fezandipiti/back.png differ diff --git a/graphics/pokemon/fezandipiti/front.png b/graphics/pokemon/fezandipiti/front.png index fc841ec395..1ff68f5004 100644 Binary files a/graphics/pokemon/fezandipiti/front.png and b/graphics/pokemon/fezandipiti/front.png differ diff --git a/graphics/pokemon/fezandipiti/normal.pal b/graphics/pokemon/fezandipiti/normal.pal index ac9c005324..a34688fc3f 100644 --- a/graphics/pokemon/fezandipiti/normal.pal +++ b/graphics/pokemon/fezandipiti/normal.pal @@ -1,18 +1,19 @@ JASC-PAL 0100 -15 -152 208 160 -167 135 48 -118 61 41 -238 204 45 +16 +153 211 165 26 29 28 -78 73 71 45 45 45 -146 57 119 -202 103 162 -90 33 73 -192 78 22 -254 254 254 -164 175 176 -16 16 16 69 37 29 +118 61 41 +90 33 73 +78 73 71 +192 78 22 +146 57 119 +167 135 48 +238 204 45 +202 103 162 +179 177 162 +16 16 16 +254 254 254 +0 0 0 diff --git a/graphics/pokemon/fezandipiti/shiny.pal b/graphics/pokemon/fezandipiti/shiny.pal index 673473f5c0..b8f4918787 100644 --- a/graphics/pokemon/fezandipiti/shiny.pal +++ b/graphics/pokemon/fezandipiti/shiny.pal @@ -1,18 +1,19 @@ JASC-PAL 0100 -15 -152 208 160 -167 135 48 -118 61 41 -238 204 45 +16 +153 211 165 26 29 28 -59 63 133 -36 40 99 -146 57 119 -202 103 162 -90 33 73 -192 78 22 -254 254 254 -164 175 176 -16 16 16 +51 48 101 69 37 29 +118 61 41 +90 33 73 +71 61 199 +192 78 22 +146 57 119 +167 135 48 +238 204 45 +202 103 162 +179 177 162 +16 16 16 +254 254 254 +0 0 0 diff --git a/graphics/pokemon/flaaffy/anim_front_gba.png b/graphics/pokemon/flaaffy/anim_front_gba.png new file mode 100644 index 0000000000..11d7dd68b7 Binary files /dev/null and b/graphics/pokemon/flaaffy/anim_front_gba.png differ diff --git a/graphics/pokemon/flaaffy/back_gba.png b/graphics/pokemon/flaaffy/back_gba.png new file mode 100644 index 0000000000..e0ac771bf4 Binary files /dev/null and b/graphics/pokemon/flaaffy/back_gba.png differ diff --git a/graphics/pokemon/flaaffy/icon_gba.png b/graphics/pokemon/flaaffy/icon_gba.png new file mode 100644 index 0000000000..719ed69a31 Binary files /dev/null and b/graphics/pokemon/flaaffy/icon_gba.png differ diff --git a/graphics/pokemon/flaaffy/normal_gba.pal b/graphics/pokemon/flaaffy/normal_gba.pal new file mode 100644 index 0000000000..4efbb5bda7 --- /dev/null +++ b/graphics/pokemon/flaaffy/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 205 222 +156 156 180 +115 115 139 +74 74 74 +255 197 164 +255 148 123 +238 90 65 +205 57 24 +172 0 0 +131 197 255 +82 131 197 +41 65 139 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/flaaffy/shiny_gba.pal b/graphics/pokemon/flaaffy/shiny_gba.pal new file mode 100644 index 0000000000..b99745d84f --- /dev/null +++ b/graphics/pokemon/flaaffy/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 222 205 +189 180 148 +148 131 82 +106 82 49 +255 222 238 +255 197 213 +230 139 156 +180 98 106 +148 65 74 +98 230 16 +49 180 0 +32 106 0 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/flabebe/blue_flower/icon.png b/graphics/pokemon/flabebe/blue/icon.png similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/icon.png rename to graphics/pokemon/flabebe/blue/icon.png diff --git a/graphics/pokemon/flabebe/blue_flower/normal.pal b/graphics/pokemon/flabebe/blue/normal.pal similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/normal.pal rename to graphics/pokemon/flabebe/blue/normal.pal diff --git a/graphics/pokemon/flabebe/blue_flower/overworld.png b/graphics/pokemon/flabebe/blue/overworld.png similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/overworld.png rename to graphics/pokemon/flabebe/blue/overworld.png diff --git a/graphics/pokemon/flabebe/blue_flower/overworld_normal.pal b/graphics/pokemon/flabebe/blue/overworld_normal.pal similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/overworld_normal.pal rename to graphics/pokemon/flabebe/blue/overworld_normal.pal diff --git a/graphics/pokemon/flabebe/blue_flower/overworld_shiny.pal b/graphics/pokemon/flabebe/blue/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/overworld_shiny.pal rename to graphics/pokemon/flabebe/blue/overworld_shiny.pal diff --git a/graphics/pokemon/flabebe/blue_flower/shiny.pal b/graphics/pokemon/flabebe/blue/shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/blue_flower/shiny.pal rename to graphics/pokemon/flabebe/blue/shiny.pal diff --git a/graphics/pokemon/flabebe/orange_flower/icon.png b/graphics/pokemon/flabebe/orange/icon.png similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/icon.png rename to graphics/pokemon/flabebe/orange/icon.png diff --git a/graphics/pokemon/flabebe/orange_flower/normal.pal b/graphics/pokemon/flabebe/orange/normal.pal similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/normal.pal rename to graphics/pokemon/flabebe/orange/normal.pal diff --git a/graphics/pokemon/flabebe/orange_flower/overworld.png b/graphics/pokemon/flabebe/orange/overworld.png similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/overworld.png rename to graphics/pokemon/flabebe/orange/overworld.png diff --git a/graphics/pokemon/flabebe/orange_flower/overworld_normal.pal b/graphics/pokemon/flabebe/orange/overworld_normal.pal similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/overworld_normal.pal rename to graphics/pokemon/flabebe/orange/overworld_normal.pal diff --git a/graphics/pokemon/flabebe/orange_flower/overworld_shiny.pal b/graphics/pokemon/flabebe/orange/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/overworld_shiny.pal rename to graphics/pokemon/flabebe/orange/overworld_shiny.pal diff --git a/graphics/pokemon/flabebe/orange_flower/shiny.pal b/graphics/pokemon/flabebe/orange/shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/orange_flower/shiny.pal rename to graphics/pokemon/flabebe/orange/shiny.pal diff --git a/graphics/pokemon/flabebe/white_flower/icon.png b/graphics/pokemon/flabebe/white/icon.png similarity index 100% rename from graphics/pokemon/flabebe/white_flower/icon.png rename to graphics/pokemon/flabebe/white/icon.png diff --git a/graphics/pokemon/flabebe/white_flower/normal.pal b/graphics/pokemon/flabebe/white/normal.pal similarity index 100% rename from graphics/pokemon/flabebe/white_flower/normal.pal rename to graphics/pokemon/flabebe/white/normal.pal diff --git a/graphics/pokemon/flabebe/white_flower/overworld.png b/graphics/pokemon/flabebe/white/overworld.png similarity index 100% rename from graphics/pokemon/flabebe/white_flower/overworld.png rename to graphics/pokemon/flabebe/white/overworld.png diff --git a/graphics/pokemon/flabebe/white_flower/overworld_normal.pal b/graphics/pokemon/flabebe/white/overworld_normal.pal similarity index 100% rename from graphics/pokemon/flabebe/white_flower/overworld_normal.pal rename to graphics/pokemon/flabebe/white/overworld_normal.pal diff --git a/graphics/pokemon/flabebe/white_flower/overworld_shiny.pal b/graphics/pokemon/flabebe/white/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/white_flower/overworld_shiny.pal rename to graphics/pokemon/flabebe/white/overworld_shiny.pal diff --git a/graphics/pokemon/flabebe/white_flower/shiny.pal b/graphics/pokemon/flabebe/white/shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/white_flower/shiny.pal rename to graphics/pokemon/flabebe/white/shiny.pal diff --git a/graphics/pokemon/flabebe/yellow_flower/icon.png b/graphics/pokemon/flabebe/yellow/icon.png similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/icon.png rename to graphics/pokemon/flabebe/yellow/icon.png diff --git a/graphics/pokemon/flabebe/yellow_flower/normal.pal b/graphics/pokemon/flabebe/yellow/normal.pal similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/normal.pal rename to graphics/pokemon/flabebe/yellow/normal.pal diff --git a/graphics/pokemon/flabebe/yellow_flower/overworld.png b/graphics/pokemon/flabebe/yellow/overworld.png similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/overworld.png rename to graphics/pokemon/flabebe/yellow/overworld.png diff --git a/graphics/pokemon/flabebe/yellow_flower/overworld_normal.pal b/graphics/pokemon/flabebe/yellow/overworld_normal.pal similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/overworld_normal.pal rename to graphics/pokemon/flabebe/yellow/overworld_normal.pal diff --git a/graphics/pokemon/flabebe/yellow_flower/overworld_shiny.pal b/graphics/pokemon/flabebe/yellow/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/overworld_shiny.pal rename to graphics/pokemon/flabebe/yellow/overworld_shiny.pal diff --git a/graphics/pokemon/flabebe/yellow_flower/shiny.pal b/graphics/pokemon/flabebe/yellow/shiny.pal similarity index 100% rename from graphics/pokemon/flabebe/yellow_flower/shiny.pal rename to graphics/pokemon/flabebe/yellow/shiny.pal diff --git a/graphics/pokemon/flapple/gigantamax/back.png b/graphics/pokemon/flapple/gmax/back.png similarity index 100% rename from graphics/pokemon/flapple/gigantamax/back.png rename to graphics/pokemon/flapple/gmax/back.png diff --git a/graphics/pokemon/flapple/gigantamax/front.png b/graphics/pokemon/flapple/gmax/front.png similarity index 100% rename from graphics/pokemon/flapple/gigantamax/front.png rename to graphics/pokemon/flapple/gmax/front.png diff --git a/graphics/pokemon/flapple/gigantamax/icon.png b/graphics/pokemon/flapple/gmax/icon.png similarity index 100% rename from graphics/pokemon/flapple/gigantamax/icon.png rename to graphics/pokemon/flapple/gmax/icon.png diff --git a/graphics/pokemon/flapple/gigantamax/normal.pal b/graphics/pokemon/flapple/gmax/normal.pal similarity index 100% rename from graphics/pokemon/flapple/gigantamax/normal.pal rename to graphics/pokemon/flapple/gmax/normal.pal diff --git a/graphics/pokemon/flapple/gigantamax/shiny.pal b/graphics/pokemon/flapple/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/flapple/gigantamax/shiny.pal rename to graphics/pokemon/flapple/gmax/shiny.pal diff --git a/graphics/pokemon/flareon/anim_front_gba.png b/graphics/pokemon/flareon/anim_front_gba.png new file mode 100644 index 0000000000..5d8850930d Binary files /dev/null and b/graphics/pokemon/flareon/anim_front_gba.png differ diff --git a/graphics/pokemon/flareon/back_gba.png b/graphics/pokemon/flareon/back_gba.png new file mode 100644 index 0000000000..c1efa1306c Binary files /dev/null and b/graphics/pokemon/flareon/back_gba.png differ diff --git a/graphics/pokemon/flareon/icon_gba.png b/graphics/pokemon/flareon/icon_gba.png new file mode 100644 index 0000000000..317aa61d0f Binary files /dev/null and b/graphics/pokemon/flareon/icon_gba.png differ diff --git a/graphics/pokemon/flareon/normal_gba.pal b/graphics/pokemon/flareon/normal_gba.pal new file mode 100644 index 0000000000..b617df86b4 --- /dev/null +++ b/graphics/pokemon/flareon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +255 255 197 +255 255 57 +238 205 8 +164 106 0 +255 0 255 +255 0 255 +255 0 255 +115 115 123 +16 16 16 +255 0 255 +255 180 41 +255 139 0 +213 98 0 +131 32 32 diff --git a/graphics/pokemon/flareon/shiny_gba.pal b/graphics/pokemon/flareon/shiny_gba.pal new file mode 100644 index 0000000000..60c1b337c0 --- /dev/null +++ b/graphics/pokemon/flareon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +255 255 197 +255 255 57 +238 205 8 +164 106 0 +255 0 255 +255 0 255 +255 0 255 +115 115 123 +16 16 16 +255 0 255 +246 189 65 +222 164 41 +172 115 8 +98 57 24 diff --git a/graphics/pokemon/floette/blue_flower/icon.png b/graphics/pokemon/floette/blue/icon.png similarity index 100% rename from graphics/pokemon/floette/blue_flower/icon.png rename to graphics/pokemon/floette/blue/icon.png diff --git a/graphics/pokemon/floette/blue_flower/normal.pal b/graphics/pokemon/floette/blue/normal.pal similarity index 100% rename from graphics/pokemon/floette/blue_flower/normal.pal rename to graphics/pokemon/floette/blue/normal.pal diff --git a/graphics/pokemon/floette/blue_flower/overworld.png b/graphics/pokemon/floette/blue/overworld.png similarity index 100% rename from graphics/pokemon/floette/blue_flower/overworld.png rename to graphics/pokemon/floette/blue/overworld.png diff --git a/graphics/pokemon/floette/blue_flower/overworld_normal.pal b/graphics/pokemon/floette/blue/overworld_normal.pal similarity index 100% rename from graphics/pokemon/floette/blue_flower/overworld_normal.pal rename to graphics/pokemon/floette/blue/overworld_normal.pal diff --git a/graphics/pokemon/floette/blue_flower/overworld_shiny.pal b/graphics/pokemon/floette/blue/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/floette/blue_flower/overworld_shiny.pal rename to graphics/pokemon/floette/blue/overworld_shiny.pal diff --git a/graphics/pokemon/floette/blue_flower/shiny.pal b/graphics/pokemon/floette/blue/shiny.pal similarity index 100% rename from graphics/pokemon/floette/blue_flower/shiny.pal rename to graphics/pokemon/floette/blue/shiny.pal diff --git a/graphics/pokemon/floette/eternal_flower/anim_front.png b/graphics/pokemon/floette/eternal/anim_front.png similarity index 100% rename from graphics/pokemon/floette/eternal_flower/anim_front.png rename to graphics/pokemon/floette/eternal/anim_front.png diff --git a/graphics/pokemon/floette/eternal_flower/back.png b/graphics/pokemon/floette/eternal/back.png similarity index 100% rename from graphics/pokemon/floette/eternal_flower/back.png rename to graphics/pokemon/floette/eternal/back.png diff --git a/graphics/pokemon/floette/eternal/icon.png b/graphics/pokemon/floette/eternal/icon.png new file mode 100644 index 0000000000..4874a7720e Binary files /dev/null and b/graphics/pokemon/floette/eternal/icon.png differ diff --git a/graphics/pokemon/floette/eternal_flower/normal.pal b/graphics/pokemon/floette/eternal/normal.pal similarity index 100% rename from graphics/pokemon/floette/eternal_flower/normal.pal rename to graphics/pokemon/floette/eternal/normal.pal diff --git a/graphics/pokemon/floette/eternal_flower/overworld.png b/graphics/pokemon/floette/eternal/overworld.png similarity index 100% rename from graphics/pokemon/floette/eternal_flower/overworld.png rename to graphics/pokemon/floette/eternal/overworld.png diff --git a/graphics/pokemon/floette/eternal_flower/overworld_normal.pal b/graphics/pokemon/floette/eternal/overworld_normal.pal similarity index 100% rename from graphics/pokemon/floette/eternal_flower/overworld_normal.pal rename to graphics/pokemon/floette/eternal/overworld_normal.pal diff --git a/graphics/pokemon/floette/eternal_flower/overworld_shiny.pal b/graphics/pokemon/floette/eternal/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/floette/eternal_flower/overworld_shiny.pal rename to graphics/pokemon/floette/eternal/overworld_shiny.pal diff --git a/graphics/pokemon/floette/eternal_flower/shiny.pal b/graphics/pokemon/floette/eternal/shiny.pal similarity index 100% rename from graphics/pokemon/floette/eternal_flower/shiny.pal rename to graphics/pokemon/floette/eternal/shiny.pal diff --git a/graphics/pokemon/floette/eternal_flower/icon.png b/graphics/pokemon/floette/eternal_flower/icon.png deleted file mode 100644 index 32f7face1f..0000000000 Binary files a/graphics/pokemon/floette/eternal_flower/icon.png and /dev/null differ diff --git a/graphics/pokemon/floette/orange_flower/icon.png b/graphics/pokemon/floette/orange/icon.png similarity index 100% rename from graphics/pokemon/floette/orange_flower/icon.png rename to graphics/pokemon/floette/orange/icon.png diff --git a/graphics/pokemon/floette/orange_flower/normal.pal b/graphics/pokemon/floette/orange/normal.pal similarity index 100% rename from graphics/pokemon/floette/orange_flower/normal.pal rename to graphics/pokemon/floette/orange/normal.pal diff --git a/graphics/pokemon/floette/orange_flower/overworld.png b/graphics/pokemon/floette/orange/overworld.png similarity index 100% rename from graphics/pokemon/floette/orange_flower/overworld.png rename to graphics/pokemon/floette/orange/overworld.png diff --git a/graphics/pokemon/floette/orange_flower/overworld_normal.pal b/graphics/pokemon/floette/orange/overworld_normal.pal similarity index 100% rename from graphics/pokemon/floette/orange_flower/overworld_normal.pal rename to graphics/pokemon/floette/orange/overworld_normal.pal diff --git a/graphics/pokemon/floette/orange_flower/overworld_shiny.pal b/graphics/pokemon/floette/orange/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/floette/orange_flower/overworld_shiny.pal rename to graphics/pokemon/floette/orange/overworld_shiny.pal diff --git a/graphics/pokemon/floette/orange_flower/shiny.pal b/graphics/pokemon/floette/orange/shiny.pal similarity index 100% rename from graphics/pokemon/floette/orange_flower/shiny.pal rename to graphics/pokemon/floette/orange/shiny.pal diff --git a/graphics/pokemon/floette/white_flower/icon.png b/graphics/pokemon/floette/white/icon.png similarity index 100% rename from graphics/pokemon/floette/white_flower/icon.png rename to graphics/pokemon/floette/white/icon.png diff --git a/graphics/pokemon/floette/white_flower/normal.pal b/graphics/pokemon/floette/white/normal.pal similarity index 100% rename from graphics/pokemon/floette/white_flower/normal.pal rename to graphics/pokemon/floette/white/normal.pal diff --git a/graphics/pokemon/floette/white_flower/overworld.png b/graphics/pokemon/floette/white/overworld.png similarity index 100% rename from graphics/pokemon/floette/white_flower/overworld.png rename to graphics/pokemon/floette/white/overworld.png diff --git a/graphics/pokemon/floette/white_flower/overworld_normal.pal b/graphics/pokemon/floette/white/overworld_normal.pal similarity index 100% rename from graphics/pokemon/floette/white_flower/overworld_normal.pal rename to graphics/pokemon/floette/white/overworld_normal.pal diff --git a/graphics/pokemon/floette/white_flower/overworld_shiny.pal b/graphics/pokemon/floette/white/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/floette/white_flower/overworld_shiny.pal rename to graphics/pokemon/floette/white/overworld_shiny.pal diff --git a/graphics/pokemon/floette/white_flower/shiny.pal b/graphics/pokemon/floette/white/shiny.pal similarity index 100% rename from graphics/pokemon/floette/white_flower/shiny.pal rename to graphics/pokemon/floette/white/shiny.pal diff --git a/graphics/pokemon/floette/yellow_flower/icon.png b/graphics/pokemon/floette/yellow/icon.png similarity index 100% rename from graphics/pokemon/floette/yellow_flower/icon.png rename to graphics/pokemon/floette/yellow/icon.png diff --git a/graphics/pokemon/floette/yellow_flower/normal.pal b/graphics/pokemon/floette/yellow/normal.pal similarity index 100% rename from graphics/pokemon/floette/yellow_flower/normal.pal rename to graphics/pokemon/floette/yellow/normal.pal diff --git a/graphics/pokemon/floette/yellow_flower/overworld.png b/graphics/pokemon/floette/yellow/overworld.png similarity index 100% rename from graphics/pokemon/floette/yellow_flower/overworld.png rename to graphics/pokemon/floette/yellow/overworld.png diff --git a/graphics/pokemon/floette/yellow_flower/overworld_normal.pal b/graphics/pokemon/floette/yellow/overworld_normal.pal similarity index 100% rename from graphics/pokemon/floette/yellow_flower/overworld_normal.pal rename to graphics/pokemon/floette/yellow/overworld_normal.pal diff --git a/graphics/pokemon/floette/yellow_flower/overworld_shiny.pal b/graphics/pokemon/floette/yellow/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/floette/yellow_flower/overworld_shiny.pal rename to graphics/pokemon/floette/yellow/overworld_shiny.pal diff --git a/graphics/pokemon/floette/yellow_flower/shiny.pal b/graphics/pokemon/floette/yellow/shiny.pal similarity index 100% rename from graphics/pokemon/floette/yellow_flower/shiny.pal rename to graphics/pokemon/floette/yellow/shiny.pal diff --git a/graphics/pokemon/florges/blue_flower/icon.png b/graphics/pokemon/florges/blue/icon.png similarity index 100% rename from graphics/pokemon/florges/blue_flower/icon.png rename to graphics/pokemon/florges/blue/icon.png diff --git a/graphics/pokemon/florges/blue_flower/normal.pal b/graphics/pokemon/florges/blue/normal.pal similarity index 100% rename from graphics/pokemon/florges/blue_flower/normal.pal rename to graphics/pokemon/florges/blue/normal.pal diff --git a/graphics/pokemon/florges/blue_flower/overworld.png b/graphics/pokemon/florges/blue/overworld.png similarity index 100% rename from graphics/pokemon/florges/blue_flower/overworld.png rename to graphics/pokemon/florges/blue/overworld.png diff --git a/graphics/pokemon/florges/blue_flower/overworld_normal.pal b/graphics/pokemon/florges/blue/overworld_normal.pal similarity index 100% rename from graphics/pokemon/florges/blue_flower/overworld_normal.pal rename to graphics/pokemon/florges/blue/overworld_normal.pal diff --git a/graphics/pokemon/florges/blue_flower/overworld_shiny.pal b/graphics/pokemon/florges/blue/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/florges/blue_flower/overworld_shiny.pal rename to graphics/pokemon/florges/blue/overworld_shiny.pal diff --git a/graphics/pokemon/florges/blue_flower/shiny.pal b/graphics/pokemon/florges/blue/shiny.pal similarity index 100% rename from graphics/pokemon/florges/blue_flower/shiny.pal rename to graphics/pokemon/florges/blue/shiny.pal diff --git a/graphics/pokemon/florges/orange_flower/icon.png b/graphics/pokemon/florges/orange/icon.png similarity index 100% rename from graphics/pokemon/florges/orange_flower/icon.png rename to graphics/pokemon/florges/orange/icon.png diff --git a/graphics/pokemon/florges/orange_flower/normal.pal b/graphics/pokemon/florges/orange/normal.pal similarity index 100% rename from graphics/pokemon/florges/orange_flower/normal.pal rename to graphics/pokemon/florges/orange/normal.pal diff --git a/graphics/pokemon/florges/orange_flower/overworld.png b/graphics/pokemon/florges/orange/overworld.png similarity index 100% rename from graphics/pokemon/florges/orange_flower/overworld.png rename to graphics/pokemon/florges/orange/overworld.png diff --git a/graphics/pokemon/florges/orange_flower/overworld_normal.pal b/graphics/pokemon/florges/orange/overworld_normal.pal similarity index 100% rename from graphics/pokemon/florges/orange_flower/overworld_normal.pal rename to graphics/pokemon/florges/orange/overworld_normal.pal diff --git a/graphics/pokemon/florges/orange_flower/overworld_shiny.pal b/graphics/pokemon/florges/orange/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/florges/orange_flower/overworld_shiny.pal rename to graphics/pokemon/florges/orange/overworld_shiny.pal diff --git a/graphics/pokemon/florges/orange_flower/shiny.pal b/graphics/pokemon/florges/orange/shiny.pal similarity index 100% rename from graphics/pokemon/florges/orange_flower/shiny.pal rename to graphics/pokemon/florges/orange/shiny.pal diff --git a/graphics/pokemon/florges/white_flower/icon.png b/graphics/pokemon/florges/white/icon.png similarity index 100% rename from graphics/pokemon/florges/white_flower/icon.png rename to graphics/pokemon/florges/white/icon.png diff --git a/graphics/pokemon/florges/white_flower/normal.pal b/graphics/pokemon/florges/white/normal.pal similarity index 100% rename from graphics/pokemon/florges/white_flower/normal.pal rename to graphics/pokemon/florges/white/normal.pal diff --git a/graphics/pokemon/florges/white_flower/overworld.png b/graphics/pokemon/florges/white/overworld.png similarity index 100% rename from graphics/pokemon/florges/white_flower/overworld.png rename to graphics/pokemon/florges/white/overworld.png diff --git a/graphics/pokemon/florges/white_flower/overworld_normal.pal b/graphics/pokemon/florges/white/overworld_normal.pal similarity index 100% rename from graphics/pokemon/florges/white_flower/overworld_normal.pal rename to graphics/pokemon/florges/white/overworld_normal.pal diff --git a/graphics/pokemon/florges/white_flower/overworld_shiny.pal b/graphics/pokemon/florges/white/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/florges/white_flower/overworld_shiny.pal rename to graphics/pokemon/florges/white/overworld_shiny.pal diff --git a/graphics/pokemon/florges/white_flower/shiny.pal b/graphics/pokemon/florges/white/shiny.pal similarity index 100% rename from graphics/pokemon/florges/white_flower/shiny.pal rename to graphics/pokemon/florges/white/shiny.pal diff --git a/graphics/pokemon/florges/yellow_flower/icon.png b/graphics/pokemon/florges/yellow/icon.png similarity index 100% rename from graphics/pokemon/florges/yellow_flower/icon.png rename to graphics/pokemon/florges/yellow/icon.png diff --git a/graphics/pokemon/florges/yellow_flower/normal.pal b/graphics/pokemon/florges/yellow/normal.pal similarity index 100% rename from graphics/pokemon/florges/yellow_flower/normal.pal rename to graphics/pokemon/florges/yellow/normal.pal diff --git a/graphics/pokemon/florges/yellow_flower/overworld.png b/graphics/pokemon/florges/yellow/overworld.png similarity index 100% rename from graphics/pokemon/florges/yellow_flower/overworld.png rename to graphics/pokemon/florges/yellow/overworld.png diff --git a/graphics/pokemon/florges/yellow_flower/overworld_normal.pal b/graphics/pokemon/florges/yellow/overworld_normal.pal similarity index 100% rename from graphics/pokemon/florges/yellow_flower/overworld_normal.pal rename to graphics/pokemon/florges/yellow/overworld_normal.pal diff --git a/graphics/pokemon/florges/yellow_flower/overworld_shiny.pal b/graphics/pokemon/florges/yellow/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/florges/yellow_flower/overworld_shiny.pal rename to graphics/pokemon/florges/yellow/overworld_shiny.pal diff --git a/graphics/pokemon/florges/yellow_flower/shiny.pal b/graphics/pokemon/florges/yellow/shiny.pal similarity index 100% rename from graphics/pokemon/florges/yellow_flower/shiny.pal rename to graphics/pokemon/florges/yellow/shiny.pal diff --git a/graphics/pokemon/flygon/anim_front_gba.png b/graphics/pokemon/flygon/anim_front_gba.png new file mode 100644 index 0000000000..d7b750f751 Binary files /dev/null and b/graphics/pokemon/flygon/anim_front_gba.png differ diff --git a/graphics/pokemon/flygon/back_gba.png b/graphics/pokemon/flygon/back_gba.png new file mode 100644 index 0000000000..576cff1c5b Binary files /dev/null and b/graphics/pokemon/flygon/back_gba.png differ diff --git a/graphics/pokemon/flygon/icon_gba.png b/graphics/pokemon/flygon/icon_gba.png new file mode 100644 index 0000000000..f033c9a880 Binary files /dev/null and b/graphics/pokemon/flygon/icon_gba.png differ diff --git a/graphics/pokemon/flygon/normal_gba.pal b/graphics/pokemon/flygon/normal_gba.pal new file mode 100644 index 0000000000..33888cd1ab --- /dev/null +++ b/graphics/pokemon/flygon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +74 106 24 +156 49 49 +123 156 65 +49 90 90 +213 255 131 +172 222 115 +156 189 98 +148 213 156 +106 164 115 +90 131 90 +255 180 180 +230 115 115 +205 49 49 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/flygon/shiny_gba.pal b/graphics/pokemon/flygon/shiny_gba.pal new file mode 100644 index 0000000000..772834b389 --- /dev/null +++ b/graphics/pokemon/flygon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +74 106 24 +139 82 0 +123 156 65 +8 90 139 +213 255 131 +172 222 115 +156 189 98 +106 189 238 +74 156 205 +41 123 172 +255 197 82 +222 164 49 +189 131 16 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/fomantis/icon.png b/graphics/pokemon/fomantis/icon.png index 2604f517d2..d26f29932c 100644 Binary files a/graphics/pokemon/fomantis/icon.png and b/graphics/pokemon/fomantis/icon.png differ diff --git a/graphics/pokemon/forretress/anim_front_gba.png b/graphics/pokemon/forretress/anim_front_gba.png new file mode 100644 index 0000000000..59cca7fb4a Binary files /dev/null and b/graphics/pokemon/forretress/anim_front_gba.png differ diff --git a/graphics/pokemon/forretress/back_gba.png b/graphics/pokemon/forretress/back_gba.png new file mode 100644 index 0000000000..5761be1379 Binary files /dev/null and b/graphics/pokemon/forretress/back_gba.png differ diff --git a/graphics/pokemon/forretress/icon_gba.png b/graphics/pokemon/forretress/icon_gba.png new file mode 100644 index 0000000000..056683bec5 Binary files /dev/null and b/graphics/pokemon/forretress/icon_gba.png differ diff --git a/graphics/pokemon/forretress/normal_gba.pal b/graphics/pokemon/forretress/normal_gba.pal new file mode 100644 index 0000000000..285c562915 --- /dev/null +++ b/graphics/pokemon/forretress/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +98 41 90 +172 74 139 +197 131 189 +230 180 230 +246 222 238 +255 0 255 +255 0 255 +131 16 49 +189 41 65 +246 98 115 +255 189 205 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/forretress/shiny_gba.pal b/graphics/pokemon/forretress/shiny_gba.pal new file mode 100644 index 0000000000..7b894a11a1 --- /dev/null +++ b/graphics/pokemon/forretress/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +115 82 49 +180 156 74 +222 197 106 +246 230 139 +255 246 156 +255 0 255 +255 0 255 +82 65 32 +106 74 49 +180 139 65 +222 197 98 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/furfrou/dandy_trim/icon.png b/graphics/pokemon/furfrou/dandy_trim/icon.png index a54f4fa4a4..4903feef71 100644 Binary files a/graphics/pokemon/furfrou/dandy_trim/icon.png and b/graphics/pokemon/furfrou/dandy_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/debutante_trim/icon.png b/graphics/pokemon/furfrou/debutante_trim/icon.png index 02a350fb2e..57c08949a3 100644 Binary files a/graphics/pokemon/furfrou/debutante_trim/icon.png and b/graphics/pokemon/furfrou/debutante_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/diamond_trim/icon.png b/graphics/pokemon/furfrou/diamond_trim/icon.png index 2acd3220d3..815332baf3 100644 Binary files a/graphics/pokemon/furfrou/diamond_trim/icon.png and b/graphics/pokemon/furfrou/diamond_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/heart_trim/icon.png b/graphics/pokemon/furfrou/heart_trim/icon.png index e065e47667..d779ea9c2c 100644 Binary files a/graphics/pokemon/furfrou/heart_trim/icon.png and b/graphics/pokemon/furfrou/heart_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/kabuki_trim/icon.png b/graphics/pokemon/furfrou/kabuki_trim/icon.png index b3cad982e8..6b3527207d 100644 Binary files a/graphics/pokemon/furfrou/kabuki_trim/icon.png and b/graphics/pokemon/furfrou/kabuki_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/la_reine_trim/icon.png b/graphics/pokemon/furfrou/la_reine_trim/icon.png index 15aeb37e1b..6e9384aaf6 100644 Binary files a/graphics/pokemon/furfrou/la_reine_trim/icon.png and b/graphics/pokemon/furfrou/la_reine_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/matron_trim/icon.png b/graphics/pokemon/furfrou/matron_trim/icon.png index 88384830e8..098b909623 100644 Binary files a/graphics/pokemon/furfrou/matron_trim/icon.png and b/graphics/pokemon/furfrou/matron_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/pharaoh_trim/icon.png b/graphics/pokemon/furfrou/pharaoh_trim/icon.png index cecb8f1655..ec2f4c1df0 100644 Binary files a/graphics/pokemon/furfrou/pharaoh_trim/icon.png and b/graphics/pokemon/furfrou/pharaoh_trim/icon.png differ diff --git a/graphics/pokemon/furfrou/star_trim/icon.png b/graphics/pokemon/furfrou/star_trim/icon.png index acb3a5ed6c..551c32addf 100644 Binary files a/graphics/pokemon/furfrou/star_trim/icon.png and b/graphics/pokemon/furfrou/star_trim/icon.png differ diff --git a/graphics/pokemon/furret/anim_front_gba.png b/graphics/pokemon/furret/anim_front_gba.png new file mode 100644 index 0000000000..2a0e35ee10 Binary files /dev/null and b/graphics/pokemon/furret/anim_front_gba.png differ diff --git a/graphics/pokemon/furret/back_gba.png b/graphics/pokemon/furret/back_gba.png new file mode 100644 index 0000000000..0dd2873af8 Binary files /dev/null and b/graphics/pokemon/furret/back_gba.png differ diff --git a/graphics/pokemon/furret/icon_gba.png b/graphics/pokemon/furret/icon_gba.png new file mode 100644 index 0000000000..6974ee9f3c Binary files /dev/null and b/graphics/pokemon/furret/icon_gba.png differ diff --git a/graphics/pokemon/furret/normal_gba.pal b/graphics/pokemon/furret/normal_gba.pal new file mode 100644 index 0000000000..5996436bee --- /dev/null +++ b/graphics/pokemon/furret/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 255 197 +255 238 148 +230 197 74 +197 156 65 +172 131 41 +156 98 74 +123 65 57 +74 24 24 +197 49 24 +156 0 0 +255 148 98 +115 115 115 +65 65 65 +32 32 41 diff --git a/graphics/pokemon/furret/shiny_gba.pal b/graphics/pokemon/furret/shiny_gba.pal new file mode 100644 index 0000000000..24ebc5bd63 --- /dev/null +++ b/graphics/pokemon/furret/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 246 230 +255 230 222 +222 189 172 +230 98 139 +148 123 90 +197 65 115 +164 32 90 +131 0 65 +197 49 24 +156 0 0 +255 148 98 +115 115 115 +65 65 65 +32 32 41 diff --git a/graphics/pokemon/garbodor/gigantamax/back.png b/graphics/pokemon/garbodor/gmax/back.png similarity index 100% rename from graphics/pokemon/garbodor/gigantamax/back.png rename to graphics/pokemon/garbodor/gmax/back.png diff --git a/graphics/pokemon/garbodor/gigantamax/front.png b/graphics/pokemon/garbodor/gmax/front.png similarity index 100% rename from graphics/pokemon/garbodor/gigantamax/front.png rename to graphics/pokemon/garbodor/gmax/front.png diff --git a/graphics/pokemon/garbodor/gigantamax/icon.png b/graphics/pokemon/garbodor/gmax/icon.png similarity index 100% rename from graphics/pokemon/garbodor/gigantamax/icon.png rename to graphics/pokemon/garbodor/gmax/icon.png diff --git a/graphics/pokemon/garbodor/gigantamax/normal.pal b/graphics/pokemon/garbodor/gmax/normal.pal similarity index 100% rename from graphics/pokemon/garbodor/gigantamax/normal.pal rename to graphics/pokemon/garbodor/gmax/normal.pal diff --git a/graphics/pokemon/garbodor/gigantamax/shiny.pal b/graphics/pokemon/garbodor/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/garbodor/gigantamax/shiny.pal rename to graphics/pokemon/garbodor/gmax/shiny.pal diff --git a/graphics/pokemon/gardevoir/anim_front_gba.png b/graphics/pokemon/gardevoir/anim_front_gba.png new file mode 100644 index 0000000000..88067c8c07 Binary files /dev/null and b/graphics/pokemon/gardevoir/anim_front_gba.png differ diff --git a/graphics/pokemon/gardevoir/back_gba.png b/graphics/pokemon/gardevoir/back_gba.png new file mode 100644 index 0000000000..9f975a82cd Binary files /dev/null and b/graphics/pokemon/gardevoir/back_gba.png differ diff --git a/graphics/pokemon/gardevoir/icon_gba.png b/graphics/pokemon/gardevoir/icon_gba.png new file mode 100644 index 0000000000..958ea7f625 Binary files /dev/null and b/graphics/pokemon/gardevoir/icon_gba.png differ diff --git a/graphics/pokemon/gardevoir/normal_gba.pal b/graphics/pokemon/gardevoir/normal_gba.pal new file mode 100644 index 0000000000..1e513ae876 --- /dev/null +++ b/graphics/pokemon/gardevoir/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +197 205 222 +164 180 205 +131 148 180 +123 82 82 +115 41 57 +255 156 131 +230 82 57 +131 205 255 +255 255 255 +205 255 172 +148 230 148 +115 189 115 +49 123 74 +16 16 16 diff --git a/graphics/pokemon/gardevoir/shiny_gba.pal b/graphics/pokemon/gardevoir/shiny_gba.pal new file mode 100644 index 0000000000..b588f6eea0 --- /dev/null +++ b/graphics/pokemon/gardevoir/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +213 189 222 +180 164 205 +156 131 180 +123 82 82 +115 41 57 +255 197 90 +230 131 32 +131 205 255 +197 238 246 +189 230 255 +123 197 238 +82 172 213 +32 115 123 +16 16 16 diff --git a/graphics/pokemon/gastly/anim_front_gba.png b/graphics/pokemon/gastly/anim_front_gba.png new file mode 100644 index 0000000000..935ff437d0 Binary files /dev/null and b/graphics/pokemon/gastly/anim_front_gba.png differ diff --git a/graphics/pokemon/gastly/back_gba.png b/graphics/pokemon/gastly/back_gba.png new file mode 100644 index 0000000000..3ff1badde4 Binary files /dev/null and b/graphics/pokemon/gastly/back_gba.png differ diff --git a/graphics/pokemon/gastly/icon_gba.png b/graphics/pokemon/gastly/icon_gba.png new file mode 100644 index 0000000000..6a33a8ab55 Binary files /dev/null and b/graphics/pokemon/gastly/icon_gba.png differ diff --git a/graphics/pokemon/gastly/normal_gba.pal b/graphics/pokemon/gastly/normal_gba.pal new file mode 100644 index 0000000000..6098ec1956 --- /dev/null +++ b/graphics/pokemon/gastly/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +222 222 222 +222 82 57 +180 41 16 +255 0 255 +189 148 180 +139 98 131 +115 74 106 +82 49 90 +213 172 205 +189 148 180 +139 98 131 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/gastly/shiny_gba.pal b/graphics/pokemon/gastly/shiny_gba.pal new file mode 100644 index 0000000000..350cb8abf9 --- /dev/null +++ b/graphics/pokemon/gastly/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +255 255 255 +222 222 222 +222 82 57 +180 41 16 +255 0 255 +172 131 230 +148 115 197 +90 57 148 +82 41 98 +156 222 255 +115 180 213 +74 139 172 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/gastrodon/east_sea/anim_front.png b/graphics/pokemon/gastrodon/east/anim_front.png similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/anim_front.png rename to graphics/pokemon/gastrodon/east/anim_front.png diff --git a/graphics/pokemon/gastrodon/east_sea/back.png b/graphics/pokemon/gastrodon/east/back.png similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/back.png rename to graphics/pokemon/gastrodon/east/back.png diff --git a/graphics/pokemon/gastrodon/east_sea/icon.png b/graphics/pokemon/gastrodon/east/icon.png similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/icon.png rename to graphics/pokemon/gastrodon/east/icon.png diff --git a/graphics/pokemon/gastrodon/east_sea/normal.pal b/graphics/pokemon/gastrodon/east/normal.pal similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/normal.pal rename to graphics/pokemon/gastrodon/east/normal.pal diff --git a/graphics/pokemon/gastrodon/east_sea/overworld.png b/graphics/pokemon/gastrodon/east/overworld.png similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/overworld.png rename to graphics/pokemon/gastrodon/east/overworld.png diff --git a/graphics/pokemon/gastrodon/east_sea/overworld_normal.pal b/graphics/pokemon/gastrodon/east/overworld_normal.pal similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/overworld_normal.pal rename to graphics/pokemon/gastrodon/east/overworld_normal.pal diff --git a/graphics/pokemon/gastrodon/east_sea/overworld_shiny.pal b/graphics/pokemon/gastrodon/east/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/overworld_shiny.pal rename to graphics/pokemon/gastrodon/east/overworld_shiny.pal diff --git a/graphics/pokemon/gastrodon/east_sea/shiny.pal b/graphics/pokemon/gastrodon/east/shiny.pal similarity index 100% rename from graphics/pokemon/gastrodon/east_sea/shiny.pal rename to graphics/pokemon/gastrodon/east/shiny.pal diff --git a/graphics/pokemon/gengar/anim_front_gba.png b/graphics/pokemon/gengar/anim_front_gba.png new file mode 100644 index 0000000000..8f0cb89132 Binary files /dev/null and b/graphics/pokemon/gengar/anim_front_gba.png differ diff --git a/graphics/pokemon/gengar/back_gba.png b/graphics/pokemon/gengar/back_gba.png new file mode 100644 index 0000000000..1132f45239 Binary files /dev/null and b/graphics/pokemon/gengar/back_gba.png differ diff --git a/graphics/pokemon/gengar/gigantamax/back.png b/graphics/pokemon/gengar/gmax/back.png similarity index 100% rename from graphics/pokemon/gengar/gigantamax/back.png rename to graphics/pokemon/gengar/gmax/back.png diff --git a/graphics/pokemon/gengar/gigantamax/front.png b/graphics/pokemon/gengar/gmax/front.png similarity index 100% rename from graphics/pokemon/gengar/gigantamax/front.png rename to graphics/pokemon/gengar/gmax/front.png diff --git a/graphics/pokemon/gengar/gigantamax/icon.png b/graphics/pokemon/gengar/gmax/icon.png similarity index 100% rename from graphics/pokemon/gengar/gigantamax/icon.png rename to graphics/pokemon/gengar/gmax/icon.png diff --git a/graphics/pokemon/gengar/gigantamax/normal.pal b/graphics/pokemon/gengar/gmax/normal.pal similarity index 100% rename from graphics/pokemon/gengar/gigantamax/normal.pal rename to graphics/pokemon/gengar/gmax/normal.pal diff --git a/graphics/pokemon/gengar/gigantamax/shiny.pal b/graphics/pokemon/gengar/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/gengar/gigantamax/shiny.pal rename to graphics/pokemon/gengar/gmax/shiny.pal diff --git a/graphics/pokemon/gengar/icon_gba.png b/graphics/pokemon/gengar/icon_gba.png new file mode 100644 index 0000000000..bbc3d758dc Binary files /dev/null and b/graphics/pokemon/gengar/icon_gba.png differ diff --git a/graphics/pokemon/gengar/normal_gba.pal b/graphics/pokemon/gengar/normal_gba.pal new file mode 100644 index 0000000000..595c479095 --- /dev/null +++ b/graphics/pokemon/gengar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 222 222 +123 123 123 +255 180 123 +238 98 74 +205 57 32 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 131 180 +172 98 148 +131 65 123 +74 41 74 +16 16 16 diff --git a/graphics/pokemon/gengar/shiny_gba.pal b/graphics/pokemon/gengar/shiny_gba.pal new file mode 100644 index 0000000000..d3f61f7d5a --- /dev/null +++ b/graphics/pokemon/gengar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 222 222 +123 123 123 +255 172 213 +238 131 172 +197 90 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +164 164 189 +123 123 148 +82 82 106 +41 41 65 +16 16 16 diff --git a/graphics/pokemon/geodude/alolan/back.png b/graphics/pokemon/geodude/alola/back.png similarity index 100% rename from graphics/pokemon/geodude/alolan/back.png rename to graphics/pokemon/geodude/alola/back.png diff --git a/graphics/pokemon/geodude/alolan/front.png b/graphics/pokemon/geodude/alola/front.png similarity index 100% rename from graphics/pokemon/geodude/alolan/front.png rename to graphics/pokemon/geodude/alola/front.png diff --git a/graphics/pokemon/geodude/alola/icon.png b/graphics/pokemon/geodude/alola/icon.png new file mode 100644 index 0000000000..6a4cbd5158 Binary files /dev/null and b/graphics/pokemon/geodude/alola/icon.png differ diff --git a/graphics/pokemon/geodude/alolan/normal.pal b/graphics/pokemon/geodude/alola/normal.pal similarity index 100% rename from graphics/pokemon/geodude/alolan/normal.pal rename to graphics/pokemon/geodude/alola/normal.pal diff --git a/graphics/pokemon/geodude/alolan/overworld.png b/graphics/pokemon/geodude/alola/overworld.png similarity index 100% rename from graphics/pokemon/geodude/alolan/overworld.png rename to graphics/pokemon/geodude/alola/overworld.png diff --git a/graphics/pokemon/geodude/alolan/overworld_normal.pal b/graphics/pokemon/geodude/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/geodude/alolan/overworld_normal.pal rename to graphics/pokemon/geodude/alola/overworld_normal.pal diff --git a/graphics/pokemon/geodude/alolan/overworld_shiny.pal b/graphics/pokemon/geodude/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/geodude/alolan/overworld_shiny.pal rename to graphics/pokemon/geodude/alola/overworld_shiny.pal diff --git a/graphics/pokemon/geodude/alolan/shiny.pal b/graphics/pokemon/geodude/alola/shiny.pal similarity index 100% rename from graphics/pokemon/geodude/alolan/shiny.pal rename to graphics/pokemon/geodude/alola/shiny.pal diff --git a/graphics/pokemon/geodude/alolan/icon.png b/graphics/pokemon/geodude/alolan/icon.png deleted file mode 100644 index 1a5f969971..0000000000 Binary files a/graphics/pokemon/geodude/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/geodude/anim_front_gba.png b/graphics/pokemon/geodude/anim_front_gba.png new file mode 100644 index 0000000000..941f279f31 Binary files /dev/null and b/graphics/pokemon/geodude/anim_front_gba.png differ diff --git a/graphics/pokemon/geodude/back_gba.png b/graphics/pokemon/geodude/back_gba.png new file mode 100644 index 0000000000..29a4e3f3dc Binary files /dev/null and b/graphics/pokemon/geodude/back_gba.png differ diff --git a/graphics/pokemon/geodude/icon_gba.png b/graphics/pokemon/geodude/icon_gba.png new file mode 100644 index 0000000000..da39c60f01 Binary files /dev/null and b/graphics/pokemon/geodude/icon_gba.png differ diff --git a/graphics/pokemon/geodude/normal_gba.pal b/graphics/pokemon/geodude/normal_gba.pal new file mode 100644 index 0000000000..0bb2d6afd7 --- /dev/null +++ b/graphics/pokemon/geodude/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +205 205 205 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +205 213 131 +172 180 98 +115 123 49 +65 74 16 +16 16 16 diff --git a/graphics/pokemon/geodude/shiny_gba.pal b/graphics/pokemon/geodude/shiny_gba.pal new file mode 100644 index 0000000000..d980620679 --- /dev/null +++ b/graphics/pokemon/geodude/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +205 205 205 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 205 65 +205 164 24 +164 123 0 +106 65 0 +16 16 16 diff --git a/graphics/pokemon/gigalith/overworld.png b/graphics/pokemon/gigalith/overworld.png index 8e5b2b7b35..d84932ecea 100644 Binary files a/graphics/pokemon/gigalith/overworld.png and b/graphics/pokemon/gigalith/overworld.png differ diff --git a/graphics/pokemon/girafarig/anim_front_gba.png b/graphics/pokemon/girafarig/anim_front_gba.png new file mode 100644 index 0000000000..fded8246b6 Binary files /dev/null and b/graphics/pokemon/girafarig/anim_front_gba.png differ diff --git a/graphics/pokemon/girafarig/back_gba.png b/graphics/pokemon/girafarig/back_gba.png new file mode 100644 index 0000000000..8d86e1f79c Binary files /dev/null and b/graphics/pokemon/girafarig/back_gba.png differ diff --git a/graphics/pokemon/girafarig/icon_gba.png b/graphics/pokemon/girafarig/icon_gba.png new file mode 100644 index 0000000000..c8b79b132d Binary files /dev/null and b/graphics/pokemon/girafarig/icon_gba.png differ diff --git a/graphics/pokemon/girafarig/normal_gba.pal b/graphics/pokemon/girafarig/normal_gba.pal new file mode 100644 index 0000000000..03e09de810 --- /dev/null +++ b/graphics/pokemon/girafarig/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +65 49 32 +90 82 57 +123 106 57 +164 148 82 +213 205 139 +189 139 16 +238 180 49 +255 222 65 +255 246 123 +16 16 16 +238 106 115 +255 172 189 +180 213 230 +255 0 255 diff --git a/graphics/pokemon/girafarig/shiny_gba.pal b/graphics/pokemon/girafarig/shiny_gba.pal new file mode 100644 index 0000000000..d720557a79 --- /dev/null +++ b/graphics/pokemon/girafarig/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +65 49 32 +90 65 41 +123 90 49 +156 123 65 +205 172 106 +189 139 16 +230 156 41 +246 197 57 +255 230 82 +16 16 16 +82 164 230 +164 213 255 +180 213 230 +255 0 255 diff --git a/graphics/pokemon/glalie/anim_front_gba.png b/graphics/pokemon/glalie/anim_front_gba.png new file mode 100644 index 0000000000..3363961d79 Binary files /dev/null and b/graphics/pokemon/glalie/anim_front_gba.png differ diff --git a/graphics/pokemon/glalie/back_gba.png b/graphics/pokemon/glalie/back_gba.png new file mode 100644 index 0000000000..9c73ee9b22 Binary files /dev/null and b/graphics/pokemon/glalie/back_gba.png differ diff --git a/graphics/pokemon/glalie/icon_gba.png b/graphics/pokemon/glalie/icon_gba.png new file mode 100644 index 0000000000..0fc66c9007 Binary files /dev/null and b/graphics/pokemon/glalie/icon_gba.png differ diff --git a/graphics/pokemon/glalie/normal_gba.pal b/graphics/pokemon/glalie/normal_gba.pal new file mode 100644 index 0000000000..aeadcf7824 --- /dev/null +++ b/graphics/pokemon/glalie/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 230 246 +205 205 222 +164 164 189 +123 123 148 +82 82 106 +164 205 255 +123 164 230 +74 139 197 +255 0 255 +205 205 213 +164 164 172 +123 123 131 +82 82 90 +41 41 57 diff --git a/graphics/pokemon/glalie/shiny_gba.pal b/graphics/pokemon/glalie/shiny_gba.pal new file mode 100644 index 0000000000..c45ff937f0 --- /dev/null +++ b/graphics/pokemon/glalie/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 246 255 +213 230 238 +180 197 205 +148 164 172 +74 98 106 +255 148 90 +230 74 65 +205 8 41 +255 0 255 +205 205 213 +164 164 172 +123 123 131 +82 82 90 +0 0 0 diff --git a/graphics/pokemon/gligar/anim_front_gba.png b/graphics/pokemon/gligar/anim_front_gba.png new file mode 100644 index 0000000000..c5ce592ebd Binary files /dev/null and b/graphics/pokemon/gligar/anim_front_gba.png differ diff --git a/graphics/pokemon/gligar/back_gba.png b/graphics/pokemon/gligar/back_gba.png new file mode 100644 index 0000000000..8179867e9c Binary files /dev/null and b/graphics/pokemon/gligar/back_gba.png differ diff --git a/graphics/pokemon/gligar/icon_gba.png b/graphics/pokemon/gligar/icon_gba.png new file mode 100644 index 0000000000..baa8414a75 Binary files /dev/null and b/graphics/pokemon/gligar/icon_gba.png differ diff --git a/graphics/pokemon/gligar/normal_gba.pal b/graphics/pokemon/gligar/normal_gba.pal new file mode 100644 index 0000000000..2f5ba76457 --- /dev/null +++ b/graphics/pokemon/gligar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +90 90 90 +148 148 148 +90 65 123 +115 90 164 +180 131 213 +222 189 255 +246 222 255 +24 49 115 +16 90 148 +74 139 189 +98 197 238 +213 90 57 +255 148 106 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/gligar/shiny_gba.pal b/graphics/pokemon/gligar/shiny_gba.pal new file mode 100644 index 0000000000..9b1d7d3086 --- /dev/null +++ b/graphics/pokemon/gligar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +90 90 90 +148 148 148 +57 65 123 +82 98 172 +131 156 213 +180 197 255 +222 238 246 +24 49 98 +32 65 139 +65 90 180 +82 156 222 +213 90 57 +255 148 106 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/gloom/anim_front_gba.png b/graphics/pokemon/gloom/anim_front_gba.png new file mode 100644 index 0000000000..07f85cfb8a Binary files /dev/null and b/graphics/pokemon/gloom/anim_front_gba.png differ diff --git a/graphics/pokemon/gloom/back_gba.png b/graphics/pokemon/gloom/back_gba.png new file mode 100644 index 0000000000..ec65e869e7 Binary files /dev/null and b/graphics/pokemon/gloom/back_gba.png differ diff --git a/graphics/pokemon/gloom/icon_gba.png b/graphics/pokemon/gloom/icon_gba.png new file mode 100644 index 0000000000..99c487dd29 Binary files /dev/null and b/graphics/pokemon/gloom/icon_gba.png differ diff --git a/graphics/pokemon/gloom/normal_gba.pal b/graphics/pokemon/gloom/normal_gba.pal new file mode 100644 index 0000000000..7b08612490 --- /dev/null +++ b/graphics/pokemon/gloom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +246 246 246 +255 197 82 +255 115 0 +238 74 0 +156 49 0 +213 213 213 +213 164 98 +164 115 49 +131 82 16 +98 49 0 +148 180 197 +115 148 164 +74 106 123 +16 49 90 +16 16 16 diff --git a/graphics/pokemon/gloom/shiny_gba.pal b/graphics/pokemon/gloom/shiny_gba.pal new file mode 100644 index 0000000000..c5e9139803 --- /dev/null +++ b/graphics/pokemon/gloom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +246 246 246 +255 213 131 +255 172 90 +213 131 49 +156 49 0 +213 213 213 +238 180 98 +197 139 57 +156 98 16 +115 57 16 +180 189 131 +139 148 90 +98 106 49 +57 65 8 +16 16 16 diff --git a/graphics/pokemon/golbat/anim_front_gba.png b/graphics/pokemon/golbat/anim_front_gba.png new file mode 100644 index 0000000000..c7ba99936a Binary files /dev/null and b/graphics/pokemon/golbat/anim_front_gba.png differ diff --git a/graphics/pokemon/golbat/back_gba.png b/graphics/pokemon/golbat/back_gba.png new file mode 100644 index 0000000000..caa196036c Binary files /dev/null and b/graphics/pokemon/golbat/back_gba.png differ diff --git a/graphics/pokemon/golbat/icon_gba.png b/graphics/pokemon/golbat/icon_gba.png new file mode 100644 index 0000000000..25b3f6821f Binary files /dev/null and b/graphics/pokemon/golbat/icon_gba.png differ diff --git a/graphics/pokemon/golbat/normal_gba.pal b/graphics/pokemon/golbat/normal_gba.pal new file mode 100644 index 0000000000..424bccef8c --- /dev/null +++ b/graphics/pokemon/golbat/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +213 213 213 +98 98 98 +0 0 0 +205 197 255 +172 164 238 +123 115 205 +49 49 139 +205 106 180 +172 74 148 +139 41 115 +106 8 82 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/golbat/shiny_gba.pal b/graphics/pokemon/golbat/shiny_gba.pal new file mode 100644 index 0000000000..7255f93b72 --- /dev/null +++ b/graphics/pokemon/golbat/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +213 213 213 +98 98 98 +0 0 0 +164 189 57 +123 148 0 +82 106 0 +41 65 0 +255 180 172 +238 139 131 +197 98 90 +139 41 32 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/goldeen/anim_front_gba.png b/graphics/pokemon/goldeen/anim_front_gba.png new file mode 100644 index 0000000000..3755717306 Binary files /dev/null and b/graphics/pokemon/goldeen/anim_front_gba.png differ diff --git a/graphics/pokemon/goldeen/back_gba.png b/graphics/pokemon/goldeen/back_gba.png new file mode 100644 index 0000000000..8ac7cb7bcb Binary files /dev/null and b/graphics/pokemon/goldeen/back_gba.png differ diff --git a/graphics/pokemon/goldeen/icon_gba.png b/graphics/pokemon/goldeen/icon_gba.png new file mode 100644 index 0000000000..9dc3bff809 Binary files /dev/null and b/graphics/pokemon/goldeen/icon_gba.png differ diff --git a/graphics/pokemon/goldeen/normal_gba.pal b/graphics/pokemon/goldeen/normal_gba.pal new file mode 100644 index 0000000000..d88f149325 --- /dev/null +++ b/graphics/pokemon/goldeen/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +222 222 230 +189 189 197 +139 139 148 +98 98 106 +255 197 123 +238 123 65 +213 65 16 +180 49 0 +131 16 0 +238 123 65 +213 65 16 +65 172 164 +0 106 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/goldeen/shiny_gba.pal b/graphics/pokemon/goldeen/shiny_gba.pal new file mode 100644 index 0000000000..d2a8815232 --- /dev/null +++ b/graphics/pokemon/goldeen/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +222 222 230 +189 189 197 +139 139 148 +98 98 106 +255 222 24 +255 156 8 +213 115 0 +172 74 0 +131 32 0 +255 180 139 +213 139 98 +65 172 164 +0 106 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/golduck/anim_front_gba.png b/graphics/pokemon/golduck/anim_front_gba.png new file mode 100644 index 0000000000..87b2327ce6 Binary files /dev/null and b/graphics/pokemon/golduck/anim_front_gba.png differ diff --git a/graphics/pokemon/golduck/back_gba.png b/graphics/pokemon/golduck/back_gba.png new file mode 100644 index 0000000000..1422a73ae1 Binary files /dev/null and b/graphics/pokemon/golduck/back_gba.png differ diff --git a/graphics/pokemon/golduck/icon_gba.png b/graphics/pokemon/golduck/icon_gba.png new file mode 100644 index 0000000000..c0c9228345 Binary files /dev/null and b/graphics/pokemon/golduck/icon_gba.png differ diff --git a/graphics/pokemon/golduck/normal_gba.pal b/graphics/pokemon/golduck/normal_gba.pal new file mode 100644 index 0000000000..f6dc8cce14 --- /dev/null +++ b/graphics/pokemon/golduck/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +255 255 255 +197 197 197 +255 172 172 +222 24 24 +139 0 0 +255 255 164 +213 213 106 +164 164 57 +115 115 16 +255 0 255 +172 222 255 +148 180 213 +90 123 172 +49 82 106 +16 16 16 diff --git a/graphics/pokemon/golduck/shiny_gba.pal b/graphics/pokemon/golduck/shiny_gba.pal new file mode 100644 index 0000000000..2d563d7020 --- /dev/null +++ b/graphics/pokemon/golduck/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +255 255 255 +197 197 197 +238 49 74 +222 24 24 +139 0 0 +255 189 197 +255 148 156 +189 98 106 +139 49 57 +255 0 255 +115 205 255 +74 164 230 +32 123 189 +0 49 106 +16 16 16 diff --git a/graphics/pokemon/golem/alolan/back.png b/graphics/pokemon/golem/alola/back.png similarity index 100% rename from graphics/pokemon/golem/alolan/back.png rename to graphics/pokemon/golem/alola/back.png diff --git a/graphics/pokemon/golem/alolan/front.png b/graphics/pokemon/golem/alola/front.png similarity index 100% rename from graphics/pokemon/golem/alolan/front.png rename to graphics/pokemon/golem/alola/front.png diff --git a/graphics/pokemon/golem/alola/icon.png b/graphics/pokemon/golem/alola/icon.png new file mode 100644 index 0000000000..ccaa2714e8 Binary files /dev/null and b/graphics/pokemon/golem/alola/icon.png differ diff --git a/graphics/pokemon/golem/alolan/normal.pal b/graphics/pokemon/golem/alola/normal.pal similarity index 100% rename from graphics/pokemon/golem/alolan/normal.pal rename to graphics/pokemon/golem/alola/normal.pal diff --git a/graphics/pokemon/golem/alolan/overworld.png b/graphics/pokemon/golem/alola/overworld.png similarity index 100% rename from graphics/pokemon/golem/alolan/overworld.png rename to graphics/pokemon/golem/alola/overworld.png diff --git a/graphics/pokemon/golem/alolan/overworld_normal.pal b/graphics/pokemon/golem/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/golem/alolan/overworld_normal.pal rename to graphics/pokemon/golem/alola/overworld_normal.pal diff --git a/graphics/pokemon/golem/alolan/overworld_shiny.pal b/graphics/pokemon/golem/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/golem/alolan/overworld_shiny.pal rename to graphics/pokemon/golem/alola/overworld_shiny.pal diff --git a/graphics/pokemon/golem/alolan/shiny.pal b/graphics/pokemon/golem/alola/shiny.pal similarity index 100% rename from graphics/pokemon/golem/alolan/shiny.pal rename to graphics/pokemon/golem/alola/shiny.pal diff --git a/graphics/pokemon/golem/alolan/icon.png b/graphics/pokemon/golem/alolan/icon.png deleted file mode 100644 index e796f88842..0000000000 Binary files a/graphics/pokemon/golem/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/golem/anim_front_gba.png b/graphics/pokemon/golem/anim_front_gba.png new file mode 100644 index 0000000000..48e7128d67 Binary files /dev/null and b/graphics/pokemon/golem/anim_front_gba.png differ diff --git a/graphics/pokemon/golem/back_gba.png b/graphics/pokemon/golem/back_gba.png new file mode 100644 index 0000000000..fb27ae43f1 Binary files /dev/null and b/graphics/pokemon/golem/back_gba.png differ diff --git a/graphics/pokemon/golem/footprint_gba.png b/graphics/pokemon/golem/footprint_gba.png new file mode 100644 index 0000000000..c9f6144429 Binary files /dev/null and b/graphics/pokemon/golem/footprint_gba.png differ diff --git a/graphics/pokemon/golem/icon_gba.png b/graphics/pokemon/golem/icon_gba.png new file mode 100644 index 0000000000..480f8c0bbc Binary files /dev/null and b/graphics/pokemon/golem/icon_gba.png differ diff --git a/graphics/pokemon/golem/normal_gba.pal b/graphics/pokemon/golem/normal_gba.pal new file mode 100644 index 0000000000..bb55b42d93 --- /dev/null +++ b/graphics/pokemon/golem/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 255 255 +205 205 205 +180 0 0 +255 82 82 +180 189 98 +139 148 65 +98 106 32 +74 82 16 +246 222 123 +213 180 90 +156 139 57 +90 74 16 +255 0 255 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/golem/shiny_gba.pal b/graphics/pokemon/golem/shiny_gba.pal new file mode 100644 index 0000000000..41b80863c2 --- /dev/null +++ b/graphics/pokemon/golem/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +205 205 205 +180 0 0 +255 82 82 +213 148 82 +172 106 41 +131 65 0 +98 32 0 +255 213 180 +230 172 139 +189 131 98 +131 74 41 +255 0 255 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/golisopod/icon.png b/graphics/pokemon/golisopod/icon.png index 37ee080495..7ebe16a529 100644 Binary files a/graphics/pokemon/golisopod/icon.png and b/graphics/pokemon/golisopod/icon.png differ diff --git a/graphics/pokemon/goodra/hisuian/back.png b/graphics/pokemon/goodra/hisui/back.png similarity index 100% rename from graphics/pokemon/goodra/hisuian/back.png rename to graphics/pokemon/goodra/hisui/back.png diff --git a/graphics/pokemon/goodra/hisuian/front.png b/graphics/pokemon/goodra/hisui/front.png similarity index 100% rename from graphics/pokemon/goodra/hisuian/front.png rename to graphics/pokemon/goodra/hisui/front.png diff --git a/graphics/pokemon/goodra/hisuian/icon.png b/graphics/pokemon/goodra/hisui/icon.png similarity index 100% rename from graphics/pokemon/goodra/hisuian/icon.png rename to graphics/pokemon/goodra/hisui/icon.png diff --git a/graphics/pokemon/goodra/hisuian/normal.pal b/graphics/pokemon/goodra/hisui/normal.pal similarity index 100% rename from graphics/pokemon/goodra/hisuian/normal.pal rename to graphics/pokemon/goodra/hisui/normal.pal diff --git a/graphics/pokemon/goodra/hisuian/overworld.png b/graphics/pokemon/goodra/hisui/overworld.png similarity index 100% rename from graphics/pokemon/goodra/hisuian/overworld.png rename to graphics/pokemon/goodra/hisui/overworld.png diff --git a/graphics/pokemon/goodra/hisuian/overworld_normal.pal b/graphics/pokemon/goodra/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/goodra/hisuian/overworld_normal.pal rename to graphics/pokemon/goodra/hisui/overworld_normal.pal diff --git a/graphics/pokemon/goodra/hisuian/overworld_shiny.pal b/graphics/pokemon/goodra/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/goodra/hisuian/overworld_shiny.pal rename to graphics/pokemon/goodra/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/goodra/hisuian/shiny.pal b/graphics/pokemon/goodra/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/goodra/hisuian/shiny.pal rename to graphics/pokemon/goodra/hisui/shiny.pal diff --git a/graphics/pokemon/gorebyss/anim_front_gba.png b/graphics/pokemon/gorebyss/anim_front_gba.png new file mode 100644 index 0000000000..d3dd2fd48d Binary files /dev/null and b/graphics/pokemon/gorebyss/anim_front_gba.png differ diff --git a/graphics/pokemon/gorebyss/back_gba.png b/graphics/pokemon/gorebyss/back_gba.png new file mode 100644 index 0000000000..aaf24366bb Binary files /dev/null and b/graphics/pokemon/gorebyss/back_gba.png differ diff --git a/graphics/pokemon/gorebyss/icon_gba.png b/graphics/pokemon/gorebyss/icon_gba.png new file mode 100644 index 0000000000..7dc8bc476a Binary files /dev/null and b/graphics/pokemon/gorebyss/icon_gba.png differ diff --git a/graphics/pokemon/gorebyss/normal_gba.pal b/graphics/pokemon/gorebyss/normal_gba.pal new file mode 100644 index 0000000000..432c0eccc1 --- /dev/null +++ b/graphics/pokemon/gorebyss/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +230 222 213 +205 189 172 +255 205 205 +246 172 189 +238 131 172 +213 98 148 +148 74 90 +131 90 131 +98 57 106 +123 106 98 +0 0 0 +205 115 255 +172 106 213 +148 90 172 diff --git a/graphics/pokemon/gorebyss/shiny_gba.pal b/graphics/pokemon/gorebyss/shiny_gba.pal new file mode 100644 index 0000000000..6933750055 --- /dev/null +++ b/graphics/pokemon/gorebyss/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +230 222 213 +205 189 172 +255 246 180 +255 222 98 +246 189 74 +213 156 41 +148 106 32 +131 90 131 +98 57 106 +123 106 98 +0 0 0 +205 115 255 +172 106 213 +148 90 172 diff --git a/graphics/pokemon/granbull/anim_front_gba.png b/graphics/pokemon/granbull/anim_front_gba.png new file mode 100644 index 0000000000..e077f8b070 Binary files /dev/null and b/graphics/pokemon/granbull/anim_front_gba.png differ diff --git a/graphics/pokemon/granbull/back_gba.png b/graphics/pokemon/granbull/back_gba.png new file mode 100644 index 0000000000..2ac044da63 Binary files /dev/null and b/graphics/pokemon/granbull/back_gba.png differ diff --git a/graphics/pokemon/granbull/icon_gba.png b/graphics/pokemon/granbull/icon_gba.png new file mode 100644 index 0000000000..89beb7a8c1 Binary files /dev/null and b/graphics/pokemon/granbull/icon_gba.png differ diff --git a/graphics/pokemon/granbull/normal_gba.pal b/graphics/pokemon/granbull/normal_gba.pal new file mode 100644 index 0000000000..b83b14d169 --- /dev/null +++ b/graphics/pokemon/granbull/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +90 57 82 +156 98 148 +213 115 213 +230 156 238 +238 189 255 +255 0 255 +131 57 0 +230 197 131 +16 16 16 +49 57 65 +82 90 90 +164 164 156 +255 255 255 diff --git a/graphics/pokemon/granbull/shiny_gba.pal b/graphics/pokemon/granbull/shiny_gba.pal new file mode 100644 index 0000000000..a8dfec7289 --- /dev/null +++ b/graphics/pokemon/granbull/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +98 82 65 +148 115 90 +205 172 131 +230 205 172 +246 222 189 +255 0 255 +90 82 0 +205 189 106 +16 16 16 +49 57 65 +82 90 90 +164 164 156 +255 255 255 diff --git a/graphics/pokemon/graveler/alolan/back.png b/graphics/pokemon/graveler/alola/back.png similarity index 100% rename from graphics/pokemon/graveler/alolan/back.png rename to graphics/pokemon/graveler/alola/back.png diff --git a/graphics/pokemon/graveler/alolan/front.png b/graphics/pokemon/graveler/alola/front.png similarity index 100% rename from graphics/pokemon/graveler/alolan/front.png rename to graphics/pokemon/graveler/alola/front.png diff --git a/graphics/pokemon/graveler/alola/icon.png b/graphics/pokemon/graveler/alola/icon.png new file mode 100644 index 0000000000..da15318b96 Binary files /dev/null and b/graphics/pokemon/graveler/alola/icon.png differ diff --git a/graphics/pokemon/graveler/alolan/normal.pal b/graphics/pokemon/graveler/alola/normal.pal similarity index 100% rename from graphics/pokemon/graveler/alolan/normal.pal rename to graphics/pokemon/graveler/alola/normal.pal diff --git a/graphics/pokemon/graveler/alolan/overworld.png b/graphics/pokemon/graveler/alola/overworld.png similarity index 100% rename from graphics/pokemon/graveler/alolan/overworld.png rename to graphics/pokemon/graveler/alola/overworld.png diff --git a/graphics/pokemon/graveler/alolan/overworld_normal.pal b/graphics/pokemon/graveler/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/graveler/alolan/overworld_normal.pal rename to graphics/pokemon/graveler/alola/overworld_normal.pal diff --git a/graphics/pokemon/graveler/alolan/overworld_shiny.pal b/graphics/pokemon/graveler/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/graveler/alolan/overworld_shiny.pal rename to graphics/pokemon/graveler/alola/overworld_shiny.pal diff --git a/graphics/pokemon/graveler/alolan/shiny.pal b/graphics/pokemon/graveler/alola/shiny.pal similarity index 100% rename from graphics/pokemon/graveler/alolan/shiny.pal rename to graphics/pokemon/graveler/alola/shiny.pal diff --git a/graphics/pokemon/graveler/alolan/icon.png b/graphics/pokemon/graveler/alolan/icon.png deleted file mode 100644 index c0a7557ca0..0000000000 Binary files a/graphics/pokemon/graveler/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/graveler/anim_front_gba.png b/graphics/pokemon/graveler/anim_front_gba.png new file mode 100644 index 0000000000..09b913061c Binary files /dev/null and b/graphics/pokemon/graveler/anim_front_gba.png differ diff --git a/graphics/pokemon/graveler/back_gba.png b/graphics/pokemon/graveler/back_gba.png new file mode 100644 index 0000000000..79e87cee9d Binary files /dev/null and b/graphics/pokemon/graveler/back_gba.png differ diff --git a/graphics/pokemon/graveler/icon_gba.png b/graphics/pokemon/graveler/icon_gba.png new file mode 100644 index 0000000000..84e81dc104 Binary files /dev/null and b/graphics/pokemon/graveler/icon_gba.png differ diff --git a/graphics/pokemon/graveler/normal_gba.pal b/graphics/pokemon/graveler/normal_gba.pal new file mode 100644 index 0000000000..b176f12689 --- /dev/null +++ b/graphics/pokemon/graveler/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +205 205 205 +148 148 148 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +205 213 131 +172 180 98 +123 131 49 +82 74 16 diff --git a/graphics/pokemon/graveler/shiny_gba.pal b/graphics/pokemon/graveler/shiny_gba.pal new file mode 100644 index 0000000000..3b61619d9d --- /dev/null +++ b/graphics/pokemon/graveler/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +205 205 205 +148 148 148 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +205 148 41 +164 106 0 +123 65 0 +82 24 0 diff --git a/graphics/pokemon/greninja/ash/icon.png b/graphics/pokemon/greninja/ash/icon.png index df9595619f..dc10f4b59b 100644 Binary files a/graphics/pokemon/greninja/ash/icon.png and b/graphics/pokemon/greninja/ash/icon.png differ diff --git a/graphics/pokemon/grimer/alolan/back.png b/graphics/pokemon/grimer/alola/back.png similarity index 100% rename from graphics/pokemon/grimer/alolan/back.png rename to graphics/pokemon/grimer/alola/back.png diff --git a/graphics/pokemon/grimer/alolan/front.png b/graphics/pokemon/grimer/alola/front.png similarity index 100% rename from graphics/pokemon/grimer/alolan/front.png rename to graphics/pokemon/grimer/alola/front.png diff --git a/graphics/pokemon/grimer/alola/icon.png b/graphics/pokemon/grimer/alola/icon.png new file mode 100644 index 0000000000..38ba79b2dc Binary files /dev/null and b/graphics/pokemon/grimer/alola/icon.png differ diff --git a/graphics/pokemon/grimer/alolan/normal.pal b/graphics/pokemon/grimer/alola/normal.pal similarity index 100% rename from graphics/pokemon/grimer/alolan/normal.pal rename to graphics/pokemon/grimer/alola/normal.pal diff --git a/graphics/pokemon/grimer/alolan/overworld.png b/graphics/pokemon/grimer/alola/overworld.png similarity index 100% rename from graphics/pokemon/grimer/alolan/overworld.png rename to graphics/pokemon/grimer/alola/overworld.png diff --git a/graphics/pokemon/grimer/alolan/overworld_normal.pal b/graphics/pokemon/grimer/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/grimer/alolan/overworld_normal.pal rename to graphics/pokemon/grimer/alola/overworld_normal.pal diff --git a/graphics/pokemon/grimer/alolan/overworld_shiny.pal b/graphics/pokemon/grimer/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/grimer/alolan/overworld_shiny.pal rename to graphics/pokemon/grimer/alola/overworld_shiny.pal diff --git a/graphics/pokemon/grimer/alolan/shiny.pal b/graphics/pokemon/grimer/alola/shiny.pal similarity index 100% rename from graphics/pokemon/grimer/alolan/shiny.pal rename to graphics/pokemon/grimer/alola/shiny.pal diff --git a/graphics/pokemon/grimer/alolan/icon.png b/graphics/pokemon/grimer/alolan/icon.png deleted file mode 100644 index 09d83cb95e..0000000000 Binary files a/graphics/pokemon/grimer/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/grimer/anim_front_gba.png b/graphics/pokemon/grimer/anim_front_gba.png new file mode 100644 index 0000000000..9305e2d975 Binary files /dev/null and b/graphics/pokemon/grimer/anim_front_gba.png differ diff --git a/graphics/pokemon/grimer/back_gba.png b/graphics/pokemon/grimer/back_gba.png new file mode 100644 index 0000000000..593a1ab549 Binary files /dev/null and b/graphics/pokemon/grimer/back_gba.png differ diff --git a/graphics/pokemon/grimer/icon_gba.png b/graphics/pokemon/grimer/icon_gba.png new file mode 100644 index 0000000000..c814df542f Binary files /dev/null and b/graphics/pokemon/grimer/icon_gba.png differ diff --git a/graphics/pokemon/grimer/normal_gba.pal b/graphics/pokemon/grimer/normal_gba.pal new file mode 100644 index 0000000000..6a1087bcf1 --- /dev/null +++ b/graphics/pokemon/grimer/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +230 189 222 +197 156 180 +148 90 156 +90 49 115 +238 222 238 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/grimer/shiny_gba.pal b/graphics/pokemon/grimer/shiny_gba.pal new file mode 100644 index 0000000000..6c9a6b4156 --- /dev/null +++ b/graphics/pokemon/grimer/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +222 255 180 +180 213 139 +139 172 98 +82 115 41 +238 222 238 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/grimmsnarl/gigantamax/back.png b/graphics/pokemon/grimmsnarl/gmax/back.png similarity index 100% rename from graphics/pokemon/grimmsnarl/gigantamax/back.png rename to graphics/pokemon/grimmsnarl/gmax/back.png diff --git a/graphics/pokemon/grimmsnarl/gigantamax/front.png b/graphics/pokemon/grimmsnarl/gmax/front.png similarity index 100% rename from graphics/pokemon/grimmsnarl/gigantamax/front.png rename to graphics/pokemon/grimmsnarl/gmax/front.png diff --git a/graphics/pokemon/grimmsnarl/gigantamax/icon.png b/graphics/pokemon/grimmsnarl/gmax/icon.png similarity index 100% rename from graphics/pokemon/grimmsnarl/gigantamax/icon.png rename to graphics/pokemon/grimmsnarl/gmax/icon.png diff --git a/graphics/pokemon/grimmsnarl/gigantamax/normal.pal b/graphics/pokemon/grimmsnarl/gmax/normal.pal similarity index 100% rename from graphics/pokemon/grimmsnarl/gigantamax/normal.pal rename to graphics/pokemon/grimmsnarl/gmax/normal.pal diff --git a/graphics/pokemon/grimmsnarl/gigantamax/shiny.pal b/graphics/pokemon/grimmsnarl/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/grimmsnarl/gigantamax/shiny.pal rename to graphics/pokemon/grimmsnarl/gmax/shiny.pal diff --git a/graphics/pokemon/groudon/anim_front_gba.png b/graphics/pokemon/groudon/anim_front_gba.png new file mode 100644 index 0000000000..815808a927 Binary files /dev/null and b/graphics/pokemon/groudon/anim_front_gba.png differ diff --git a/graphics/pokemon/groudon/back_gba.png b/graphics/pokemon/groudon/back_gba.png new file mode 100644 index 0000000000..e2b711932f Binary files /dev/null and b/graphics/pokemon/groudon/back_gba.png differ diff --git a/graphics/pokemon/groudon/icon_gba.png b/graphics/pokemon/groudon/icon_gba.png new file mode 100644 index 0000000000..2b8707bb87 Binary files /dev/null and b/graphics/pokemon/groudon/icon_gba.png differ diff --git a/graphics/pokemon/groudon/normal_gba.pal b/graphics/pokemon/groudon/normal_gba.pal new file mode 100644 index 0000000000..24c99e510e --- /dev/null +++ b/graphics/pokemon/groudon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +205 57 74 +172 148 164 +156 123 139 +123 90 98 +255 123 131 +123 32 41 +255 32 41 +172 41 57 +255 205 49 +197 197 205 +255 255 255 +255 189 189 +156 106 49 +57 57 57 +16 16 16 diff --git a/graphics/pokemon/groudon/shiny_gba.pal b/graphics/pokemon/groudon/shiny_gba.pal new file mode 100644 index 0000000000..6c0a16585d --- /dev/null +++ b/graphics/pokemon/groudon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +131 131 8 +172 148 164 +156 123 139 +123 90 98 +230 230 106 +98 98 0 +197 197 74 +164 164 41 +255 205 49 +197 197 205 +255 255 255 +255 255 139 +156 106 49 +57 57 57 +16 16 16 diff --git a/graphics/pokemon/grovyle/anim_front_gba.png b/graphics/pokemon/grovyle/anim_front_gba.png new file mode 100644 index 0000000000..daee3d1beb Binary files /dev/null and b/graphics/pokemon/grovyle/anim_front_gba.png differ diff --git a/graphics/pokemon/grovyle/back_gba.png b/graphics/pokemon/grovyle/back_gba.png new file mode 100644 index 0000000000..1ffed7b904 Binary files /dev/null and b/graphics/pokemon/grovyle/back_gba.png differ diff --git a/graphics/pokemon/grovyle/icon_gba.png b/graphics/pokemon/grovyle/icon_gba.png new file mode 100644 index 0000000000..bed04dc98a Binary files /dev/null and b/graphics/pokemon/grovyle/icon_gba.png differ diff --git a/graphics/pokemon/grovyle/normal_gba.pal b/graphics/pokemon/grovyle/normal_gba.pal new file mode 100644 index 0000000000..a1e6181fc4 --- /dev/null +++ b/graphics/pokemon/grovyle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 148 131 +16 82 74 +90 180 106 +139 230 148 +189 255 180 +57 131 65 +131 41 49 +230 65 41 +255 115 82 +255 222 82 +57 131 148 +189 65 65 +213 139 82 +82 164 189 +0 0 0 +255 238 255 diff --git a/graphics/pokemon/grovyle/shiny_gba.pal b/graphics/pokemon/grovyle/shiny_gba.pal new file mode 100644 index 0000000000..c61afa4a33 --- /dev/null +++ b/graphics/pokemon/grovyle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 148 131 +148 74 49 +74 164 148 +148 205 213 +180 230 238 +65 123 115 +205 156 123 +238 189 156 +255 238 197 +255 222 82 +213 82 57 +180 131 98 +213 139 82 +255 106 82 +0 0 0 +255 238 255 diff --git a/graphics/pokemon/growlithe/anim_front_gba.png b/graphics/pokemon/growlithe/anim_front_gba.png new file mode 100644 index 0000000000..ee7564cb9f Binary files /dev/null and b/graphics/pokemon/growlithe/anim_front_gba.png differ diff --git a/graphics/pokemon/growlithe/back_gba.png b/graphics/pokemon/growlithe/back_gba.png new file mode 100644 index 0000000000..2b89351a32 Binary files /dev/null and b/graphics/pokemon/growlithe/back_gba.png differ diff --git a/graphics/pokemon/growlithe/hisuian/back.png b/graphics/pokemon/growlithe/hisui/back.png similarity index 100% rename from graphics/pokemon/growlithe/hisuian/back.png rename to graphics/pokemon/growlithe/hisui/back.png diff --git a/graphics/pokemon/growlithe/hisuian/front.png b/graphics/pokemon/growlithe/hisui/front.png similarity index 100% rename from graphics/pokemon/growlithe/hisuian/front.png rename to graphics/pokemon/growlithe/hisui/front.png diff --git a/graphics/pokemon/growlithe/hisuian/icon.png b/graphics/pokemon/growlithe/hisui/icon.png similarity index 100% rename from graphics/pokemon/growlithe/hisuian/icon.png rename to graphics/pokemon/growlithe/hisui/icon.png diff --git a/graphics/pokemon/growlithe/hisuian/normal.pal b/graphics/pokemon/growlithe/hisui/normal.pal similarity index 100% rename from graphics/pokemon/growlithe/hisuian/normal.pal rename to graphics/pokemon/growlithe/hisui/normal.pal diff --git a/graphics/pokemon/growlithe/hisuian/overworld.png b/graphics/pokemon/growlithe/hisui/overworld.png similarity index 100% rename from graphics/pokemon/growlithe/hisuian/overworld.png rename to graphics/pokemon/growlithe/hisui/overworld.png diff --git a/graphics/pokemon/growlithe/hisuian/overworld_normal.pal b/graphics/pokemon/growlithe/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/growlithe/hisuian/overworld_normal.pal rename to graphics/pokemon/growlithe/hisui/overworld_normal.pal diff --git a/graphics/pokemon/growlithe/hisuian/overworld_shiny.pal b/graphics/pokemon/growlithe/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/growlithe/hisuian/overworld_shiny.pal rename to graphics/pokemon/growlithe/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/growlithe/hisuian/shiny.pal b/graphics/pokemon/growlithe/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/growlithe/hisuian/shiny.pal rename to graphics/pokemon/growlithe/hisui/shiny.pal diff --git a/graphics/pokemon/growlithe/icon_gba.png b/graphics/pokemon/growlithe/icon_gba.png new file mode 100644 index 0000000000..8870c8b4f0 Binary files /dev/null and b/graphics/pokemon/growlithe/icon_gba.png differ diff --git a/graphics/pokemon/growlithe/normal_gba.pal b/graphics/pokemon/growlithe/normal_gba.pal new file mode 100644 index 0000000000..0c7054eae4 --- /dev/null +++ b/graphics/pokemon/growlithe/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 246 +222 222 213 +82 82 82 +255 0 255 +255 0 255 +255 0 255 +255 246 180 +230 213 148 +180 164 106 +115 98 32 +255 197 82 +238 164 65 +197 123 16 +148 49 0 +16 16 16 diff --git a/graphics/pokemon/growlithe/shiny_gba.pal b/graphics/pokemon/growlithe/shiny_gba.pal new file mode 100644 index 0000000000..0604c9c256 --- /dev/null +++ b/graphics/pokemon/growlithe/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 246 +222 222 213 +82 82 82 +255 0 255 +255 0 255 +255 0 255 +255 246 180 +230 213 148 +180 164 106 +115 98 32 +255 238 82 +230 197 41 +189 156 0 +123 90 0 +16 16 16 diff --git a/graphics/pokemon/grubbin/icon.png b/graphics/pokemon/grubbin/icon.png index 96071bf8fb..4ff57b87c5 100644 Binary files a/graphics/pokemon/grubbin/icon.png and b/graphics/pokemon/grubbin/icon.png differ diff --git a/graphics/pokemon/grumpig/anim_front_gba.png b/graphics/pokemon/grumpig/anim_front_gba.png new file mode 100644 index 0000000000..1d128a6520 Binary files /dev/null and b/graphics/pokemon/grumpig/anim_front_gba.png differ diff --git a/graphics/pokemon/grumpig/back_gba.png b/graphics/pokemon/grumpig/back_gba.png new file mode 100644 index 0000000000..08d476c291 Binary files /dev/null and b/graphics/pokemon/grumpig/back_gba.png differ diff --git a/graphics/pokemon/grumpig/icon_gba.png b/graphics/pokemon/grumpig/icon_gba.png new file mode 100644 index 0000000000..fb3cac59d9 Binary files /dev/null and b/graphics/pokemon/grumpig/icon_gba.png differ diff --git a/graphics/pokemon/grumpig/normal_gba.pal b/graphics/pokemon/grumpig/normal_gba.pal new file mode 100644 index 0000000000..c49601f910 --- /dev/null +++ b/graphics/pokemon/grumpig/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +148 148 148 +123 123 123 +98 98 98 +74 74 74 +255 180 213 +238 139 172 +213 106 131 +230 172 238 +205 139 213 +180 115 189 +123 82 139 +156 74 98 +246 205 255 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/grumpig/shiny_gba.pal b/graphics/pokemon/grumpig/shiny_gba.pal new file mode 100644 index 0000000000..b9c88ae3da --- /dev/null +++ b/graphics/pokemon/grumpig/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +172 172 172 +131 131 131 +82 82 82 +57 57 57 +255 180 213 +238 139 172 +213 106 131 +246 222 106 +213 189 65 +189 164 41 +131 123 0 +156 74 98 +255 238 172 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/gulpin/anim_front_gba.png b/graphics/pokemon/gulpin/anim_front_gba.png new file mode 100644 index 0000000000..8381bfdc76 Binary files /dev/null and b/graphics/pokemon/gulpin/anim_front_gba.png differ diff --git a/graphics/pokemon/gulpin/back_gba.png b/graphics/pokemon/gulpin/back_gba.png new file mode 100644 index 0000000000..928f291d1d Binary files /dev/null and b/graphics/pokemon/gulpin/back_gba.png differ diff --git a/graphics/pokemon/gulpin/icon_gba.png b/graphics/pokemon/gulpin/icon_gba.png new file mode 100644 index 0000000000..53eed645f8 Binary files /dev/null and b/graphics/pokemon/gulpin/icon_gba.png differ diff --git a/graphics/pokemon/gulpin/normal_gba.pal b/graphics/pokemon/gulpin/normal_gba.pal new file mode 100644 index 0000000000..588be1e4a7 --- /dev/null +++ b/graphics/pokemon/gulpin/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 189 131 +74 106 57 +131 164 115 +164 222 148 +197 238 180 +156 189 139 +65 65 65 +106 106 106 +156 156 156 +172 148 74 +205 172 16 +246 222 90 +255 238 164 +255 148 123 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/gulpin/shiny_gba.pal b/graphics/pokemon/gulpin/shiny_gba.pal new file mode 100644 index 0000000000..83373f072c --- /dev/null +++ b/graphics/pokemon/gulpin/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 189 131 +74 106 57 +98 123 164 +131 180 238 +156 213 255 +98 148 197 +65 65 65 +106 106 106 +156 156 156 +164 49 32 +180 65 49 +222 98 49 +255 139 82 +255 148 123 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/gumshoos/icon.png b/graphics/pokemon/gumshoos/icon.png index ac2bd83928..6421d338e4 100644 Binary files a/graphics/pokemon/gumshoos/icon.png and b/graphics/pokemon/gumshoos/icon.png differ diff --git a/graphics/pokemon/guzzlord/icon.png b/graphics/pokemon/guzzlord/icon.png index 25e862d788..94ef70d8a2 100644 Binary files a/graphics/pokemon/guzzlord/icon.png and b/graphics/pokemon/guzzlord/icon.png differ diff --git a/graphics/pokemon/gyarados/anim_front_gba.png b/graphics/pokemon/gyarados/anim_front_gba.png new file mode 100644 index 0000000000..7b1864f1b5 Binary files /dev/null and b/graphics/pokemon/gyarados/anim_front_gba.png differ diff --git a/graphics/pokemon/gyarados/back_gba.png b/graphics/pokemon/gyarados/back_gba.png new file mode 100644 index 0000000000..8240fa3cc5 Binary files /dev/null and b/graphics/pokemon/gyarados/back_gba.png differ diff --git a/graphics/pokemon/gyarados/icon_gba.png b/graphics/pokemon/gyarados/icon_gba.png new file mode 100644 index 0000000000..13e611d090 Binary files /dev/null and b/graphics/pokemon/gyarados/icon_gba.png differ diff --git a/graphics/pokemon/gyarados/normal_gba.pal b/graphics/pokemon/gyarados/normal_gba.pal new file mode 100644 index 0000000000..63b325d5b3 --- /dev/null +++ b/graphics/pokemon/gyarados/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +222 230 246 +172 180 197 +106 123 148 +180 205 255 +131 164 230 +98 131 164 +65 65 106 +255 255 148 +205 205 131 +106 106 90 +213 139 98 +205 49 49 +148 32 0 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/gyarados/shiny_gba.pal b/graphics/pokemon/gyarados/shiny_gba.pal new file mode 100644 index 0000000000..a8afe9dcdd --- /dev/null +++ b/graphics/pokemon/gyarados/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +222 230 246 +172 180 197 +106 123 148 +255 189 172 +255 115 115 +213 74 115 +123 41 65 +255 255 148 +205 205 131 +106 106 90 +255 98 57 +205 49 49 +148 32 0 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/hakamo_o/icon.png b/graphics/pokemon/hakamo_o/icon.png index 4836770537..90986aa3d6 100644 Binary files a/graphics/pokemon/hakamo_o/icon.png and b/graphics/pokemon/hakamo_o/icon.png differ diff --git a/graphics/pokemon/hariyama/anim_front_gba.png b/graphics/pokemon/hariyama/anim_front_gba.png new file mode 100644 index 0000000000..d71ec4704e Binary files /dev/null and b/graphics/pokemon/hariyama/anim_front_gba.png differ diff --git a/graphics/pokemon/hariyama/back_gba.png b/graphics/pokemon/hariyama/back_gba.png new file mode 100644 index 0000000000..09eba4b523 Binary files /dev/null and b/graphics/pokemon/hariyama/back_gba.png differ diff --git a/graphics/pokemon/hariyama/icon_gba.png b/graphics/pokemon/hariyama/icon_gba.png new file mode 100644 index 0000000000..b16b049071 Binary files /dev/null and b/graphics/pokemon/hariyama/icon_gba.png differ diff --git a/graphics/pokemon/hariyama/normal_gba.pal b/graphics/pokemon/hariyama/normal_gba.pal new file mode 100644 index 0000000000..99b5902d94 --- /dev/null +++ b/graphics/pokemon/hariyama/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 164 115 +246 230 197 +230 213 164 +197 172 115 +139 106 82 +238 164 106 +213 131 90 +172 98 65 +131 74 49 +98 98 148 +49 49 98 +246 213 115 +238 189 82 +205 156 65 +24 24 24 +255 255 255 diff --git a/graphics/pokemon/hariyama/shiny_gba.pal b/graphics/pokemon/hariyama/shiny_gba.pal new file mode 100644 index 0000000000..14281f8125 --- /dev/null +++ b/graphics/pokemon/hariyama/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 164 115 +255 238 172 +246 205 131 +246 189 82 +205 139 57 +222 189 197 +189 156 164 +156 106 131 +115 82 90 +98 98 148 +49 49 98 +255 90 74 +205 82 65 +156 82 65 +24 24 24 +255 255 255 diff --git a/graphics/pokemon/hatterene/gigantamax/back.png b/graphics/pokemon/hatterene/gmax/back.png similarity index 100% rename from graphics/pokemon/hatterene/gigantamax/back.png rename to graphics/pokemon/hatterene/gmax/back.png diff --git a/graphics/pokemon/hatterene/gigantamax/front.png b/graphics/pokemon/hatterene/gmax/front.png similarity index 100% rename from graphics/pokemon/hatterene/gigantamax/front.png rename to graphics/pokemon/hatterene/gmax/front.png diff --git a/graphics/pokemon/hatterene/gigantamax/icon.png b/graphics/pokemon/hatterene/gmax/icon.png similarity index 100% rename from graphics/pokemon/hatterene/gigantamax/icon.png rename to graphics/pokemon/hatterene/gmax/icon.png diff --git a/graphics/pokemon/hatterene/gigantamax/normal.pal b/graphics/pokemon/hatterene/gmax/normal.pal similarity index 100% rename from graphics/pokemon/hatterene/gigantamax/normal.pal rename to graphics/pokemon/hatterene/gmax/normal.pal diff --git a/graphics/pokemon/hatterene/gigantamax/shiny.pal b/graphics/pokemon/hatterene/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/hatterene/gigantamax/shiny.pal rename to graphics/pokemon/hatterene/gmax/shiny.pal diff --git a/graphics/pokemon/haunter/anim_front_gba.png b/graphics/pokemon/haunter/anim_front_gba.png new file mode 100644 index 0000000000..a41b867fd4 Binary files /dev/null and b/graphics/pokemon/haunter/anim_front_gba.png differ diff --git a/graphics/pokemon/haunter/back_gba.png b/graphics/pokemon/haunter/back_gba.png new file mode 100644 index 0000000000..4b4585904b Binary files /dev/null and b/graphics/pokemon/haunter/back_gba.png differ diff --git a/graphics/pokemon/haunter/icon_gba.png b/graphics/pokemon/haunter/icon_gba.png new file mode 100644 index 0000000000..aac3e15f80 Binary files /dev/null and b/graphics/pokemon/haunter/icon_gba.png differ diff --git a/graphics/pokemon/haunter/normal_gba.pal b/graphics/pokemon/haunter/normal_gba.pal new file mode 100644 index 0000000000..1f3ceb070f --- /dev/null +++ b/graphics/pokemon/haunter/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +213 164 222 +197 131 205 +131 90 164 +82 49 98 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 49 49 +180 24 24 +106 0 0 +213 213 213 +115 115 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/haunter/shiny_gba.pal b/graphics/pokemon/haunter/shiny_gba.pal new file mode 100644 index 0000000000..d6cab25889 --- /dev/null +++ b/graphics/pokemon/haunter/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +213 164 222 +197 131 205 +131 90 164 +82 49 98 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +74 156 197 +32 115 156 +0 65 106 +213 213 213 +115 115 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/heracross/anim_front_gba.png b/graphics/pokemon/heracross/anim_front_gba.png new file mode 100644 index 0000000000..96af2d24f6 Binary files /dev/null and b/graphics/pokemon/heracross/anim_front_gba.png differ diff --git a/graphics/pokemon/heracross/back_gba.png b/graphics/pokemon/heracross/back_gba.png new file mode 100644 index 0000000000..df82021792 Binary files /dev/null and b/graphics/pokemon/heracross/back_gba.png differ diff --git a/graphics/pokemon/heracross/icon_gba.png b/graphics/pokemon/heracross/icon_gba.png new file mode 100644 index 0000000000..994fbe33fc Binary files /dev/null and b/graphics/pokemon/heracross/icon_gba.png differ diff --git a/graphics/pokemon/heracross/normal_gba.pal b/graphics/pokemon/heracross/normal_gba.pal new file mode 100644 index 0000000000..06fe289a5c --- /dev/null +++ b/graphics/pokemon/heracross/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +156 180 255 +123 139 222 +98 106 180 +49 57 98 +255 0 255 +255 255 139 +255 222 90 +197 164 41 +139 106 0 +255 0 255 +213 213 213 +156 156 156 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/heracross/shiny_gba.pal b/graphics/pokemon/heracross/shiny_gba.pal new file mode 100644 index 0000000000..c85ace38b9 --- /dev/null +++ b/graphics/pokemon/heracross/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 156 213 +205 123 189 +164 82 156 +98 57 98 +255 0 255 +255 255 139 +255 222 90 +197 164 41 +139 106 0 +255 0 255 +213 213 213 +156 156 156 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/herdier/overworld.png b/graphics/pokemon/herdier/overworld.png index 51e2a2207b..de47a0ba7f 100644 Binary files a/graphics/pokemon/herdier/overworld.png and b/graphics/pokemon/herdier/overworld.png differ diff --git a/graphics/pokemon/herdier/overworld_shiny.pal b/graphics/pokemon/herdier/overworld_shiny.pal index 4713003a78..0d9a690928 100644 --- a/graphics/pokemon/herdier/overworld_shiny.pal +++ b/graphics/pokemon/herdier/overworld_shiny.pal @@ -2,7 +2,7 @@ JASC-PAL 0100 16 152 208 160 -54 54 78 +56 56 56 0 0 0 64 64 64 96 72 24 diff --git a/graphics/pokemon/hitmonchan/anim_front_gba.png b/graphics/pokemon/hitmonchan/anim_front_gba.png new file mode 100644 index 0000000000..a08e0a0da9 Binary files /dev/null and b/graphics/pokemon/hitmonchan/anim_front_gba.png differ diff --git a/graphics/pokemon/hitmonchan/back_gba.png b/graphics/pokemon/hitmonchan/back_gba.png new file mode 100644 index 0000000000..8d94230719 Binary files /dev/null and b/graphics/pokemon/hitmonchan/back_gba.png differ diff --git a/graphics/pokemon/hitmonchan/icon_gba.png b/graphics/pokemon/hitmonchan/icon_gba.png new file mode 100644 index 0000000000..a657a6d746 Binary files /dev/null and b/graphics/pokemon/hitmonchan/icon_gba.png differ diff --git a/graphics/pokemon/hitmonchan/normal_gba.pal b/graphics/pokemon/hitmonchan/normal_gba.pal new file mode 100644 index 0000000000..77c20d85ad --- /dev/null +++ b/graphics/pokemon/hitmonchan/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 205 222 +197 180 197 +164 148 164 +115 98 115 +255 148 90 +230 98 57 +189 49 16 +139 32 0 +255 0 255 +238 213 156 +205 180 123 +164 139 82 +106 82 16 +16 16 16 diff --git a/graphics/pokemon/hitmonchan/shiny_gba.pal b/graphics/pokemon/hitmonchan/shiny_gba.pal new file mode 100644 index 0000000000..2e4a28f0c8 --- /dev/null +++ b/graphics/pokemon/hitmonchan/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 205 222 +197 180 197 +164 148 164 +115 98 115 +90 148 213 +49 106 172 +8 65 131 +0 24 90 +255 0 255 +238 230 139 +197 189 98 +156 148 57 +98 90 0 +16 16 16 diff --git a/graphics/pokemon/hitmonlee/anim_front_gba.png b/graphics/pokemon/hitmonlee/anim_front_gba.png new file mode 100644 index 0000000000..46d29bd4af Binary files /dev/null and b/graphics/pokemon/hitmonlee/anim_front_gba.png differ diff --git a/graphics/pokemon/hitmonlee/back_gba.png b/graphics/pokemon/hitmonlee/back_gba.png new file mode 100644 index 0000000000..9aa095a6ab Binary files /dev/null and b/graphics/pokemon/hitmonlee/back_gba.png differ diff --git a/graphics/pokemon/hitmonlee/icon_gba.png b/graphics/pokemon/hitmonlee/icon_gba.png new file mode 100644 index 0000000000..b45c936868 Binary files /dev/null and b/graphics/pokemon/hitmonlee/icon_gba.png differ diff --git a/graphics/pokemon/hitmonlee/normal_gba.pal b/graphics/pokemon/hitmonlee/normal_gba.pal new file mode 100644 index 0000000000..e70409a90a --- /dev/null +++ b/graphics/pokemon/hitmonlee/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +238 197 164 +205 164 131 +164 123 90 +131 90 57 +106 57 24 +255 0 255 +255 0 255 +213 205 205 +180 164 164 +115 98 98 +238 255 148 +197 205 115 +115 123 32 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/hitmonlee/shiny_gba.pal b/graphics/pokemon/hitmonlee/shiny_gba.pal new file mode 100644 index 0000000000..74e6c64524 --- /dev/null +++ b/graphics/pokemon/hitmonlee/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +172 180 74 +131 139 32 +90 98 0 +49 57 0 +32 41 0 +255 0 255 +255 0 255 +189 164 139 +148 123 98 +106 82 57 +238 255 148 +197 205 115 +115 123 32 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/hitmontop/anim_front_gba.png b/graphics/pokemon/hitmontop/anim_front_gba.png new file mode 100644 index 0000000000..69365ac625 Binary files /dev/null and b/graphics/pokemon/hitmontop/anim_front_gba.png differ diff --git a/graphics/pokemon/hitmontop/back_gba.png b/graphics/pokemon/hitmontop/back_gba.png new file mode 100644 index 0000000000..09d16414cb Binary files /dev/null and b/graphics/pokemon/hitmontop/back_gba.png differ diff --git a/graphics/pokemon/hitmontop/icon_gba.png b/graphics/pokemon/hitmontop/icon_gba.png new file mode 100644 index 0000000000..c5b8ee564d Binary files /dev/null and b/graphics/pokemon/hitmontop/icon_gba.png differ diff --git a/graphics/pokemon/hitmontop/normal_gba.pal b/graphics/pokemon/hitmontop/normal_gba.pal new file mode 100644 index 0000000000..b49c96760e --- /dev/null +++ b/graphics/pokemon/hitmontop/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 238 156 +230 205 123 +189 164 82 +131 98 16 +255 0 255 +139 213 255 +98 172 238 +74 131 205 +82 90 148 +255 0 255 +205 205 205 +148 148 156 +98 98 106 +16 16 16 diff --git a/graphics/pokemon/hitmontop/shiny_gba.pal b/graphics/pokemon/hitmontop/shiny_gba.pal new file mode 100644 index 0000000000..8c6bbd31fd --- /dev/null +++ b/graphics/pokemon/hitmontop/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 246 205 +230 222 180 +180 172 148 +131 90 65 +255 0 255 +246 148 222 +205 106 189 +172 74 164 +115 49 123 +255 0 255 +205 205 205 +148 148 156 +98 98 106 +16 16 16 diff --git a/graphics/pokemon/ho_oh/anim_front_gba.png b/graphics/pokemon/ho_oh/anim_front_gba.png new file mode 100644 index 0000000000..5b60f009a3 Binary files /dev/null and b/graphics/pokemon/ho_oh/anim_front_gba.png differ diff --git a/graphics/pokemon/ho_oh/back_gba.png b/graphics/pokemon/ho_oh/back_gba.png new file mode 100644 index 0000000000..9acbdf0cc1 Binary files /dev/null and b/graphics/pokemon/ho_oh/back_gba.png differ diff --git a/graphics/pokemon/ho_oh/icon_gba.png b/graphics/pokemon/ho_oh/icon_gba.png new file mode 100644 index 0000000000..4cd5ed871f Binary files /dev/null and b/graphics/pokemon/ho_oh/icon_gba.png differ diff --git a/graphics/pokemon/ho_oh/normal_gba.pal b/graphics/pokemon/ho_oh/normal_gba.pal new file mode 100644 index 0000000000..f4b5835418 --- /dev/null +++ b/graphics/pokemon/ho_oh/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 164 +255 255 255 +255 172 0 +255 90 0 +205 65 0 +156 16 0 +255 238 131 +255 230 0 +230 172 0 +164 106 0 +156 246 172 +65 213 82 +16 148 16 +197 197 197 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/ho_oh/shiny_gba.pal b/graphics/pokemon/ho_oh/shiny_gba.pal new file mode 100644 index 0000000000..2c14ff9e4b --- /dev/null +++ b/graphics/pokemon/ho_oh/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 164 +255 255 255 +255 230 57 +255 172 24 +205 123 24 +148 74 49 +238 238 238 +222 222 222 +180 180 189 +123 123 139 +255 172 0 +255 74 0 +156 41 24 +213 213 222 +123 106 65 +16 16 16 diff --git a/graphics/pokemon/hoothoot/anim_front_gba.png b/graphics/pokemon/hoothoot/anim_front_gba.png new file mode 100644 index 0000000000..c2abe14644 Binary files /dev/null and b/graphics/pokemon/hoothoot/anim_front_gba.png differ diff --git a/graphics/pokemon/hoothoot/back_gba.png b/graphics/pokemon/hoothoot/back_gba.png new file mode 100644 index 0000000000..2ab2253bd9 Binary files /dev/null and b/graphics/pokemon/hoothoot/back_gba.png differ diff --git a/graphics/pokemon/hoothoot/icon_gba.png b/graphics/pokemon/hoothoot/icon_gba.png new file mode 100644 index 0000000000..c25065113a Binary files /dev/null and b/graphics/pokemon/hoothoot/icon_gba.png differ diff --git a/graphics/pokemon/hoothoot/normal_gba.pal b/graphics/pokemon/hoothoot/normal_gba.pal new file mode 100644 index 0000000000..f1a3ee54ef --- /dev/null +++ b/graphics/pokemon/hoothoot/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 255 189 +230 246 164 +222 213 90 +205 189 41 +172 156 32 +148 131 24 +123 106 16 +90 74 0 +255 230 172 +255 180 106 +230 123 41 +123 123 123 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/hoothoot/shiny_gba.pal b/graphics/pokemon/hoothoot/shiny_gba.pal new file mode 100644 index 0000000000..3b951e004e --- /dev/null +++ b/graphics/pokemon/hoothoot/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 189 +238 238 106 +255 238 115 +246 222 57 +230 189 49 +213 148 41 +197 131 32 +139 82 32 +255 230 172 +255 180 106 +230 123 41 +123 123 123 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/hoppip/anim_front_gba.png b/graphics/pokemon/hoppip/anim_front_gba.png new file mode 100644 index 0000000000..1295bbc84b Binary files /dev/null and b/graphics/pokemon/hoppip/anim_front_gba.png differ diff --git a/graphics/pokemon/hoppip/back_gba.png b/graphics/pokemon/hoppip/back_gba.png new file mode 100644 index 0000000000..a5d0429096 Binary files /dev/null and b/graphics/pokemon/hoppip/back_gba.png differ diff --git a/graphics/pokemon/hoppip/icon_gba.png b/graphics/pokemon/hoppip/icon_gba.png new file mode 100644 index 0000000000..0692f69d7b Binary files /dev/null and b/graphics/pokemon/hoppip/icon_gba.png differ diff --git a/graphics/pokemon/hoppip/normal_gba.pal b/graphics/pokemon/hoppip/normal_gba.pal new file mode 100644 index 0000000000..5784941176 --- /dev/null +++ b/graphics/pokemon/hoppip/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 156 115 +255 98 82 +213 65 16 +164 16 0 +255 0 255 +131 230 57 +98 205 57 +65 164 32 +32 98 16 +255 0 255 +255 255 82 +246 197 0 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/hoppip/shiny_gba.pal b/graphics/pokemon/hoppip/shiny_gba.pal new file mode 100644 index 0000000000..c70c55c999 --- /dev/null +++ b/graphics/pokemon/hoppip/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +148 205 32 +106 180 8 +90 139 41 +57 90 16 +255 0 255 +189 246 57 +131 222 57 +82 172 24 +32 98 16 +255 0 255 +255 255 82 +246 197 0 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/horsea/anim_front_gba.png b/graphics/pokemon/horsea/anim_front_gba.png new file mode 100644 index 0000000000..24f4d0116b Binary files /dev/null and b/graphics/pokemon/horsea/anim_front_gba.png differ diff --git a/graphics/pokemon/horsea/back_gba.png b/graphics/pokemon/horsea/back_gba.png new file mode 100644 index 0000000000..bd6cb3d2b3 Binary files /dev/null and b/graphics/pokemon/horsea/back_gba.png differ diff --git a/graphics/pokemon/horsea/icon_gba.png b/graphics/pokemon/horsea/icon_gba.png new file mode 100644 index 0000000000..d57901f511 Binary files /dev/null and b/graphics/pokemon/horsea/icon_gba.png differ diff --git a/graphics/pokemon/horsea/normal_gba.pal b/graphics/pokemon/horsea/normal_gba.pal new file mode 100644 index 0000000000..a14e2b4c53 --- /dev/null +++ b/graphics/pokemon/horsea/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 0 255 +255 0 255 +255 0 255 +156 131 74 +189 222 255 +164 197 238 +106 148 180 +57 82 98 +255 255 172 +222 197 74 +255 115 115 +197 41 41 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/horsea/shiny_gba.pal b/graphics/pokemon/horsea/shiny_gba.pal new file mode 100644 index 0000000000..f163c929a1 --- /dev/null +++ b/graphics/pokemon/horsea/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 0 255 +255 0 255 +255 0 255 +156 131 74 +115 205 213 +74 164 172 +32 123 131 +16 74 82 +255 197 222 +255 156 180 +255 115 115 +197 41 41 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/houndoom/anim_front_gba.png b/graphics/pokemon/houndoom/anim_front_gba.png new file mode 100644 index 0000000000..adebd878b0 Binary files /dev/null and b/graphics/pokemon/houndoom/anim_front_gba.png differ diff --git a/graphics/pokemon/houndoom/back_gba.png b/graphics/pokemon/houndoom/back_gba.png new file mode 100644 index 0000000000..6aae855c6a Binary files /dev/null and b/graphics/pokemon/houndoom/back_gba.png differ diff --git a/graphics/pokemon/houndoom/icon_gba.png b/graphics/pokemon/houndoom/icon_gba.png new file mode 100644 index 0000000000..8ca4aec3cf Binary files /dev/null and b/graphics/pokemon/houndoom/icon_gba.png differ diff --git a/graphics/pokemon/houndoom/normal_gba.pal b/graphics/pokemon/houndoom/normal_gba.pal new file mode 100644 index 0000000000..676369d076 --- /dev/null +++ b/graphics/pokemon/houndoom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +139 123 123 +82 74 74 +57 49 49 +41 32 32 +255 213 139 +238 164 82 +189 123 57 +148 82 24 +255 106 49 +180 49 8 +255 0 255 +255 0 255 +180 164 164 +16 16 16 diff --git a/graphics/pokemon/houndoom/shiny_gba.pal b/graphics/pokemon/houndoom/shiny_gba.pal new file mode 100644 index 0000000000..7e7aa56bf7 --- /dev/null +++ b/graphics/pokemon/houndoom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +123 156 230 +74 98 180 +49 65 139 +65 74 90 +255 230 197 +213 172 148 +172 131 90 +123 82 65 +255 106 49 +180 49 8 +255 0 255 +255 0 255 +222 197 213 +16 16 16 diff --git a/graphics/pokemon/houndour/anim_front_gba.png b/graphics/pokemon/houndour/anim_front_gba.png new file mode 100644 index 0000000000..0574797844 Binary files /dev/null and b/graphics/pokemon/houndour/anim_front_gba.png differ diff --git a/graphics/pokemon/houndour/back_gba.png b/graphics/pokemon/houndour/back_gba.png new file mode 100644 index 0000000000..64e1049542 Binary files /dev/null and b/graphics/pokemon/houndour/back_gba.png differ diff --git a/graphics/pokemon/houndour/icon_gba.png b/graphics/pokemon/houndour/icon_gba.png new file mode 100644 index 0000000000..1d397d9bf0 Binary files /dev/null and b/graphics/pokemon/houndour/icon_gba.png differ diff --git a/graphics/pokemon/houndour/normal_gba.pal b/graphics/pokemon/houndour/normal_gba.pal new file mode 100644 index 0000000000..676369d076 --- /dev/null +++ b/graphics/pokemon/houndour/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +139 123 123 +82 74 74 +57 49 49 +41 32 32 +255 213 139 +238 164 82 +189 123 57 +148 82 24 +255 106 49 +180 49 8 +255 0 255 +255 0 255 +180 164 164 +16 16 16 diff --git a/graphics/pokemon/houndour/shiny_gba.pal b/graphics/pokemon/houndour/shiny_gba.pal new file mode 100644 index 0000000000..4197f8de7e --- /dev/null +++ b/graphics/pokemon/houndour/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +123 164 197 +82 123 164 +57 82 115 +49 65 82 +255 230 197 +213 172 148 +172 131 90 +123 82 65 +255 106 49 +180 49 8 +255 0 255 +255 0 255 +222 189 197 +16 16 16 diff --git a/graphics/pokemon/huntail/anim_front_gba.png b/graphics/pokemon/huntail/anim_front_gba.png new file mode 100644 index 0000000000..6963d99c84 Binary files /dev/null and b/graphics/pokemon/huntail/anim_front_gba.png differ diff --git a/graphics/pokemon/huntail/back_gba.png b/graphics/pokemon/huntail/back_gba.png new file mode 100644 index 0000000000..23ccaac12a Binary files /dev/null and b/graphics/pokemon/huntail/back_gba.png differ diff --git a/graphics/pokemon/huntail/icon_gba.png b/graphics/pokemon/huntail/icon_gba.png new file mode 100644 index 0000000000..b70fca87e6 Binary files /dev/null and b/graphics/pokemon/huntail/icon_gba.png differ diff --git a/graphics/pokemon/huntail/normal_gba.pal b/graphics/pokemon/huntail/normal_gba.pal new file mode 100644 index 0000000000..192061e018 --- /dev/null +++ b/graphics/pokemon/huntail/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 106 189 +255 255 255 +238 180 98 +222 148 0 +156 106 65 +180 238 238 +156 222 246 +123 197 222 +74 156 180 +49 98 123 +0 0 0 +255 131 148 +205 115 148 +148 57 90 +213 197 213 +164 131 148 diff --git a/graphics/pokemon/huntail/shiny_gba.pal b/graphics/pokemon/huntail/shiny_gba.pal new file mode 100644 index 0000000000..713c54adff --- /dev/null +++ b/graphics/pokemon/huntail/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 106 189 +255 255 255 +255 222 115 +230 156 0 +164 115 65 +172 255 172 +148 230 148 +115 197 115 +57 148 82 +32 106 57 +0 0 0 +255 131 148 +205 115 148 +148 57 90 +213 197 213 +164 131 148 diff --git a/graphics/pokemon/hypno/anim_front_gba.png b/graphics/pokemon/hypno/anim_front_gba.png new file mode 100644 index 0000000000..e3cd338ed8 Binary files /dev/null and b/graphics/pokemon/hypno/anim_front_gba.png differ diff --git a/graphics/pokemon/hypno/back_gba.png b/graphics/pokemon/hypno/back_gba.png new file mode 100644 index 0000000000..12aec4f4d3 Binary files /dev/null and b/graphics/pokemon/hypno/back_gba.png differ diff --git a/graphics/pokemon/hypno/icon_gba.png b/graphics/pokemon/hypno/icon_gba.png new file mode 100644 index 0000000000..4015f23867 Binary files /dev/null and b/graphics/pokemon/hypno/icon_gba.png differ diff --git a/graphics/pokemon/hypno/normal_gba.pal b/graphics/pokemon/hypno/normal_gba.pal new file mode 100644 index 0000000000..96218054ee --- /dev/null +++ b/graphics/pokemon/hypno/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 238 156 +255 222 98 +205 180 106 +123 98 49 +255 0 255 +213 213 222 +115 106 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +156 156 156 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/hypno/shiny_gba.pal b/graphics/pokemon/hypno/shiny_gba.pal new file mode 100644 index 0000000000..af2643bd9a --- /dev/null +++ b/graphics/pokemon/hypno/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 180 213 +238 139 172 +197 98 131 +123 24 57 +255 0 255 +213 213 222 +115 106 131 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +156 156 156 +98 98 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/igglybuff/anim_front_gba.png b/graphics/pokemon/igglybuff/anim_front_gba.png new file mode 100644 index 0000000000..0947bca661 Binary files /dev/null and b/graphics/pokemon/igglybuff/anim_front_gba.png differ diff --git a/graphics/pokemon/igglybuff/back_gba.png b/graphics/pokemon/igglybuff/back_gba.png new file mode 100644 index 0000000000..efc417ab58 Binary files /dev/null and b/graphics/pokemon/igglybuff/back_gba.png differ diff --git a/graphics/pokemon/igglybuff/icon_gba.png b/graphics/pokemon/igglybuff/icon_gba.png new file mode 100644 index 0000000000..55d1a9eb1a Binary files /dev/null and b/graphics/pokemon/igglybuff/icon_gba.png differ diff --git a/graphics/pokemon/igglybuff/normal_gba.pal b/graphics/pokemon/igglybuff/normal_gba.pal new file mode 100644 index 0000000000..9b5beb0791 --- /dev/null +++ b/graphics/pokemon/igglybuff/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 205 156 +255 148 115 +222 115 65 +197 74 0 +148 32 16 +255 230 180 +255 0 255 +205 0 0 +156 0 0 +205 0 0 +156 0 0 +98 0 0 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/igglybuff/shiny_gba.pal b/graphics/pokemon/igglybuff/shiny_gba.pal new file mode 100644 index 0000000000..fd1f6fbf8b --- /dev/null +++ b/graphics/pokemon/igglybuff/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 238 +246 172 197 +222 115 139 +180 57 90 +156 24 49 +255 238 238 +255 0 255 +205 0 0 +156 0 0 +90 197 24 +74 172 24 +41 82 0 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/illumise/anim_front_gba.png b/graphics/pokemon/illumise/anim_front_gba.png new file mode 100644 index 0000000000..0d20f3357a Binary files /dev/null and b/graphics/pokemon/illumise/anim_front_gba.png differ diff --git a/graphics/pokemon/illumise/back_gba.png b/graphics/pokemon/illumise/back_gba.png new file mode 100644 index 0000000000..a06de56a1b Binary files /dev/null and b/graphics/pokemon/illumise/back_gba.png differ diff --git a/graphics/pokemon/illumise/icon_gba.png b/graphics/pokemon/illumise/icon_gba.png new file mode 100644 index 0000000000..ac812de379 Binary files /dev/null and b/graphics/pokemon/illumise/icon_gba.png differ diff --git a/graphics/pokemon/illumise/normal_gba.pal b/graphics/pokemon/illumise/normal_gba.pal new file mode 100644 index 0000000000..63c55bbc03 --- /dev/null +++ b/graphics/pokemon/illumise/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +0 90 213 +123 123 123 +74 74 74 +0 0 0 +205 139 222 +180 98 205 +139 82 156 +49 41 49 +255 230 115 +230 180 74 +156 131 82 +172 197 238 +139 172 205 +90 106 139 +255 255 255 diff --git a/graphics/pokemon/illumise/shiny_gba.pal b/graphics/pokemon/illumise/shiny_gba.pal new file mode 100644 index 0000000000..78bdbdc220 --- /dev/null +++ b/graphics/pokemon/illumise/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +0 90 213 +123 123 123 +74 74 74 +0 0 0 +255 230 115 +230 180 74 +189 139 82 +49 41 49 +255 148 82 +222 90 32 +164 49 32 +131 205 255 +90 172 230 +32 115 189 +255 255 255 diff --git a/graphics/pokemon/incineroar/icon.png b/graphics/pokemon/incineroar/icon.png index 020c549ecb..a824082421 100644 Binary files a/graphics/pokemon/incineroar/icon.png and b/graphics/pokemon/incineroar/icon.png differ diff --git a/graphics/pokemon/indeedee/female/back.png b/graphics/pokemon/indeedee/f/back.png similarity index 100% rename from graphics/pokemon/indeedee/female/back.png rename to graphics/pokemon/indeedee/f/back.png diff --git a/graphics/pokemon/indeedee/female/front.png b/graphics/pokemon/indeedee/f/front.png similarity index 100% rename from graphics/pokemon/indeedee/female/front.png rename to graphics/pokemon/indeedee/f/front.png diff --git a/graphics/pokemon/indeedee/female/icon.png b/graphics/pokemon/indeedee/f/icon.png similarity index 100% rename from graphics/pokemon/indeedee/female/icon.png rename to graphics/pokemon/indeedee/f/icon.png diff --git a/graphics/pokemon/indeedee/female/normal.pal b/graphics/pokemon/indeedee/f/normal.pal similarity index 100% rename from graphics/pokemon/indeedee/female/normal.pal rename to graphics/pokemon/indeedee/f/normal.pal diff --git a/graphics/pokemon/indeedee/female/overworld.png b/graphics/pokemon/indeedee/f/overworld.png similarity index 100% rename from graphics/pokemon/indeedee/female/overworld.png rename to graphics/pokemon/indeedee/f/overworld.png diff --git a/graphics/pokemon/indeedee/female/overworld_normal.pal b/graphics/pokemon/indeedee/f/overworld_normal.pal similarity index 100% rename from graphics/pokemon/indeedee/female/overworld_normal.pal rename to graphics/pokemon/indeedee/f/overworld_normal.pal diff --git a/graphics/pokemon/indeedee/female/overworld_shiny.pal b/graphics/pokemon/indeedee/f/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/indeedee/female/overworld_shiny.pal rename to graphics/pokemon/indeedee/f/overworld_shiny.pal diff --git a/graphics/pokemon/indeedee/female/shiny.pal b/graphics/pokemon/indeedee/f/shiny.pal similarity index 100% rename from graphics/pokemon/indeedee/female/shiny.pal rename to graphics/pokemon/indeedee/f/shiny.pal diff --git a/graphics/pokemon/inteleon/gigantamax/icon.png b/graphics/pokemon/inteleon/gigantamax/icon.png deleted file mode 100644 index a27bf3f1c8..0000000000 Binary files a/graphics/pokemon/inteleon/gigantamax/icon.png and /dev/null differ diff --git a/graphics/pokemon/inteleon/gigantamax/back.png b/graphics/pokemon/inteleon/gmax/back.png similarity index 100% rename from graphics/pokemon/inteleon/gigantamax/back.png rename to graphics/pokemon/inteleon/gmax/back.png diff --git a/graphics/pokemon/inteleon/gigantamax/front.png b/graphics/pokemon/inteleon/gmax/front.png similarity index 100% rename from graphics/pokemon/inteleon/gigantamax/front.png rename to graphics/pokemon/inteleon/gmax/front.png diff --git a/graphics/pokemon/inteleon/gmax/icon.png b/graphics/pokemon/inteleon/gmax/icon.png new file mode 100644 index 0000000000..334ce15440 Binary files /dev/null and b/graphics/pokemon/inteleon/gmax/icon.png differ diff --git a/graphics/pokemon/inteleon/gigantamax/normal.pal b/graphics/pokemon/inteleon/gmax/normal.pal similarity index 100% rename from graphics/pokemon/inteleon/gigantamax/normal.pal rename to graphics/pokemon/inteleon/gmax/normal.pal diff --git a/graphics/pokemon/inteleon/gigantamax/shiny.pal b/graphics/pokemon/inteleon/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/inteleon/gigantamax/shiny.pal rename to graphics/pokemon/inteleon/gmax/shiny.pal diff --git a/graphics/pokemon/ivysaur/anim_front_gba.png b/graphics/pokemon/ivysaur/anim_front_gba.png new file mode 100644 index 0000000000..1e8d0f04ef Binary files /dev/null and b/graphics/pokemon/ivysaur/anim_front_gba.png differ diff --git a/graphics/pokemon/ivysaur/back_gba.png b/graphics/pokemon/ivysaur/back_gba.png new file mode 100644 index 0000000000..d977bc3144 Binary files /dev/null and b/graphics/pokemon/ivysaur/back_gba.png differ diff --git a/graphics/pokemon/ivysaur/icon_gba.png b/graphics/pokemon/ivysaur/icon_gba.png new file mode 100644 index 0000000000..2f16275066 Binary files /dev/null and b/graphics/pokemon/ivysaur/icon_gba.png differ diff --git a/graphics/pokemon/ivysaur/normal_gba.pal b/graphics/pokemon/ivysaur/normal_gba.pal new file mode 100644 index 0000000000..5d4c59bbd8 --- /dev/null +++ b/graphics/pokemon/ivysaur/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +74 139 32 +255 189 180 +255 123 123 +213 65 90 +131 238 197 +90 205 148 +131 230 90 +106 180 32 +32 148 90 +16 16 16 +16 82 32 +197 115 57 +139 90 57 +123 49 41 diff --git a/graphics/pokemon/ivysaur/shiny_gba.pal b/graphics/pokemon/ivysaur/shiny_gba.pal new file mode 100644 index 0000000000..964be9785d --- /dev/null +++ b/graphics/pokemon/ivysaur/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +90 139 49 +255 255 82 +255 222 8 +222 180 0 +205 255 90 +164 213 49 +123 222 32 +82 180 0 +123 172 8 +16 16 16 +90 98 24 +180 82 8 +148 49 8 +115 16 8 diff --git a/graphics/pokemon/jangmo_o/icon.png b/graphics/pokemon/jangmo_o/icon.png index 0a8a2c2d03..bbc7db2945 100644 Binary files a/graphics/pokemon/jangmo_o/icon.png and b/graphics/pokemon/jangmo_o/icon.png differ diff --git a/graphics/pokemon/jigglypuff/anim_front_gba.png b/graphics/pokemon/jigglypuff/anim_front_gba.png new file mode 100644 index 0000000000..98981352b9 Binary files /dev/null and b/graphics/pokemon/jigglypuff/anim_front_gba.png differ diff --git a/graphics/pokemon/jigglypuff/back_gba.png b/graphics/pokemon/jigglypuff/back_gba.png new file mode 100644 index 0000000000..8055a79b02 Binary files /dev/null and b/graphics/pokemon/jigglypuff/back_gba.png differ diff --git a/graphics/pokemon/jigglypuff/icon_gba.png b/graphics/pokemon/jigglypuff/icon_gba.png new file mode 100644 index 0000000000..4c5a33cb83 Binary files /dev/null and b/graphics/pokemon/jigglypuff/icon_gba.png differ diff --git a/graphics/pokemon/jigglypuff/normal_gba.pal b/graphics/pokemon/jigglypuff/normal_gba.pal new file mode 100644 index 0000000000..f7f6154c1f --- /dev/null +++ b/graphics/pokemon/jigglypuff/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +205 189 255 +148 131 255 +115 98 222 +65 49 156 +156 106 32 +115 65 24 +230 230 230 +164 49 0 +213 57 49 +16 16 16 +255 205 197 +255 172 164 +230 115 98 +164 49 16 diff --git a/graphics/pokemon/jigglypuff/shiny_gba.pal b/graphics/pokemon/jigglypuff/shiny_gba.pal new file mode 100644 index 0000000000..bea601916e --- /dev/null +++ b/graphics/pokemon/jigglypuff/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +222 255 164 +180 238 123 +139 197 82 +82 131 16 +156 106 32 +115 65 24 +230 230 230 +164 49 0 +213 57 49 +16 16 16 +246 238 246 +246 197 246 +205 156 205 +115 65 115 diff --git a/graphics/pokemon/jirachi/anim_front_gba.png b/graphics/pokemon/jirachi/anim_front_gba.png new file mode 100644 index 0000000000..b414a28cb3 Binary files /dev/null and b/graphics/pokemon/jirachi/anim_front_gba.png differ diff --git a/graphics/pokemon/jirachi/back_gba.png b/graphics/pokemon/jirachi/back_gba.png new file mode 100644 index 0000000000..4fa283e0dc Binary files /dev/null and b/graphics/pokemon/jirachi/back_gba.png differ diff --git a/graphics/pokemon/jirachi/icon_gba.png b/graphics/pokemon/jirachi/icon_gba.png new file mode 100644 index 0000000000..15df4559b5 Binary files /dev/null and b/graphics/pokemon/jirachi/icon_gba.png differ diff --git a/graphics/pokemon/jirachi/normal_gba.pal b/graphics/pokemon/jirachi/normal_gba.pal new file mode 100644 index 0000000000..ba0b7a6b11 --- /dev/null +++ b/graphics/pokemon/jirachi/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +205 213 222 +156 164 172 +41 65 115 +230 238 246 +82 115 255 +131 164 255 +106 115 115 +197 0 0 +238 82 82 +180 139 49 +230 197 82 +255 230 90 +255 246 148 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/jirachi/shiny_gba.pal b/graphics/pokemon/jirachi/shiny_gba.pal new file mode 100644 index 0000000000..219b9ac57f --- /dev/null +++ b/graphics/pokemon/jirachi/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 180 164 +156 164 172 +41 65 115 +255 230 230 +230 74 49 +255 123 106 +123 98 90 +197 0 0 +238 82 82 +180 139 49 +230 197 82 +255 230 90 +255 246 148 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/jolteon/anim_front_gba.png b/graphics/pokemon/jolteon/anim_front_gba.png new file mode 100644 index 0000000000..ff0edda9f3 Binary files /dev/null and b/graphics/pokemon/jolteon/anim_front_gba.png differ diff --git a/graphics/pokemon/jolteon/back_gba.png b/graphics/pokemon/jolteon/back_gba.png new file mode 100644 index 0000000000..19dc00a7cb Binary files /dev/null and b/graphics/pokemon/jolteon/back_gba.png differ diff --git a/graphics/pokemon/jolteon/icon_gba.png b/graphics/pokemon/jolteon/icon_gba.png new file mode 100644 index 0000000000..b98fd78b27 Binary files /dev/null and b/graphics/pokemon/jolteon/icon_gba.png differ diff --git a/graphics/pokemon/jolteon/normal_gba.pal b/graphics/pokemon/jolteon/normal_gba.pal new file mode 100644 index 0000000000..87daf4781f --- /dev/null +++ b/graphics/pokemon/jolteon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 131 +255 222 49 +213 189 49 +156 139 57 +106 82 32 +255 0 255 +189 49 49 +106 0 0 +255 0 255 +255 0 255 +222 222 230 +139 148 164 +98 98 98 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/jolteon/shiny_gba.pal b/graphics/pokemon/jolteon/shiny_gba.pal new file mode 100644 index 0000000000..ece1425c3c --- /dev/null +++ b/graphics/pokemon/jolteon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +222 255 131 +197 238 32 +156 197 0 +123 164 0 +74 115 0 +255 0 255 +189 49 49 +106 0 0 +255 0 255 +255 0 255 +222 222 230 +139 148 164 +98 98 98 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/jumpluff/anim_front_gba.png b/graphics/pokemon/jumpluff/anim_front_gba.png new file mode 100644 index 0000000000..dd79c45e3b Binary files /dev/null and b/graphics/pokemon/jumpluff/anim_front_gba.png differ diff --git a/graphics/pokemon/jumpluff/back_gba.png b/graphics/pokemon/jumpluff/back_gba.png new file mode 100644 index 0000000000..1f822f8502 Binary files /dev/null and b/graphics/pokemon/jumpluff/back_gba.png differ diff --git a/graphics/pokemon/jumpluff/icon_gba.png b/graphics/pokemon/jumpluff/icon_gba.png new file mode 100644 index 0000000000..bf0cb64ded Binary files /dev/null and b/graphics/pokemon/jumpluff/icon_gba.png differ diff --git a/graphics/pokemon/jumpluff/normal_gba.pal b/graphics/pokemon/jumpluff/normal_gba.pal new file mode 100644 index 0000000000..4221849766 --- /dev/null +++ b/graphics/pokemon/jumpluff/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +98 65 8 +123 164 255 +90 131 213 +65 106 197 +57 82 148 +16 16 16 +255 255 222 +246 238 180 +238 222 148 +205 189 115 +156 139 82 +255 139 41 +213 65 0 +65 230 57 +49 156 49 diff --git a/graphics/pokemon/jumpluff/shiny_gba.pal b/graphics/pokemon/jumpluff/shiny_gba.pal new file mode 100644 index 0000000000..4885690b66 --- /dev/null +++ b/graphics/pokemon/jumpluff/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +115 57 98 +255 205 172 +246 164 164 +222 123 156 +164 74 106 +16 16 16 +255 238 246 +246 213 238 +222 172 213 +205 139 172 +164 98 164 +255 139 41 +213 65 0 +65 230 57 +49 156 49 diff --git a/graphics/pokemon/jynx/anim_front_gba.png b/graphics/pokemon/jynx/anim_front_gba.png new file mode 100644 index 0000000000..db5d0d4c76 Binary files /dev/null and b/graphics/pokemon/jynx/anim_front_gba.png differ diff --git a/graphics/pokemon/jynx/back_gba.png b/graphics/pokemon/jynx/back_gba.png new file mode 100644 index 0000000000..5bb72fb10c Binary files /dev/null and b/graphics/pokemon/jynx/back_gba.png differ diff --git a/graphics/pokemon/jynx/icon_gba.png b/graphics/pokemon/jynx/icon_gba.png new file mode 100644 index 0000000000..431b6bf194 Binary files /dev/null and b/graphics/pokemon/jynx/icon_gba.png differ diff --git a/graphics/pokemon/jynx/normal_gba.pal b/graphics/pokemon/jynx/normal_gba.pal new file mode 100644 index 0000000000..ac1da75970 --- /dev/null +++ b/graphics/pokemon/jynx/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +213 213 213 +98 98 115 +213 139 238 +172 106 197 +148 74 172 +255 197 148 +238 123 82 +197 65 24 +115 16 0 +255 246 172 +255 222 106 +213 156 49 +131 65 0 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/jynx/shiny_gba.pal b/graphics/pokemon/jynx/shiny_gba.pal new file mode 100644 index 0000000000..b6838c13da --- /dev/null +++ b/graphics/pokemon/jynx/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +213 213 213 +98 98 115 +213 139 238 +172 106 197 +148 74 172 +255 172 230 +255 131 189 +213 90 148 +148 24 82 +255 230 222 +213 189 180 +172 148 139 +115 90 82 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/kabuto/anim_front_gba.png b/graphics/pokemon/kabuto/anim_front_gba.png new file mode 100644 index 0000000000..101560ce66 Binary files /dev/null and b/graphics/pokemon/kabuto/anim_front_gba.png differ diff --git a/graphics/pokemon/kabuto/back_gba.png b/graphics/pokemon/kabuto/back_gba.png new file mode 100644 index 0000000000..9664ead41a Binary files /dev/null and b/graphics/pokemon/kabuto/back_gba.png differ diff --git a/graphics/pokemon/kabuto/icon_gba.png b/graphics/pokemon/kabuto/icon_gba.png new file mode 100644 index 0000000000..c0a1407228 Binary files /dev/null and b/graphics/pokemon/kabuto/icon_gba.png differ diff --git a/graphics/pokemon/kabuto/normal_gba.pal b/graphics/pokemon/kabuto/normal_gba.pal new file mode 100644 index 0000000000..285bae0400 --- /dev/null +++ b/graphics/pokemon/kabuto/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +180 180 180 +255 172 164 +238 74 65 +255 0 255 +255 255 139 +255 213 49 +238 180 32 +164 106 0 +255 0 255 +213 164 65 +189 139 41 +156 106 8 +115 65 16 +16 16 16 diff --git a/graphics/pokemon/kabuto/shiny_gba.pal b/graphics/pokemon/kabuto/shiny_gba.pal new file mode 100644 index 0000000000..8e3eaad12f --- /dev/null +++ b/graphics/pokemon/kabuto/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +180 180 180 +255 172 164 +238 74 65 +255 0 255 +255 255 139 +255 213 49 +238 180 32 +164 106 0 +255 0 255 +180 230 74 +156 205 57 +115 164 32 +82 123 16 +16 16 16 diff --git a/graphics/pokemon/kabutops/anim_front_gba.png b/graphics/pokemon/kabutops/anim_front_gba.png new file mode 100644 index 0000000000..b1e26e8841 Binary files /dev/null and b/graphics/pokemon/kabutops/anim_front_gba.png differ diff --git a/graphics/pokemon/kabutops/back_gba.png b/graphics/pokemon/kabutops/back_gba.png new file mode 100644 index 0000000000..e1aab4de24 Binary files /dev/null and b/graphics/pokemon/kabutops/back_gba.png differ diff --git a/graphics/pokemon/kabutops/icon_gba.png b/graphics/pokemon/kabutops/icon_gba.png new file mode 100644 index 0000000000..1c23836e52 Binary files /dev/null and b/graphics/pokemon/kabutops/icon_gba.png differ diff --git a/graphics/pokemon/kabutops/normal_gba.pal b/graphics/pokemon/kabutops/normal_gba.pal new file mode 100644 index 0000000000..09a61f8e64 --- /dev/null +++ b/graphics/pokemon/kabutops/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 222 213 +189 189 180 +156 156 148 +106 106 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 230 172 +222 197 139 +180 156 98 +106 90 32 +16 16 16 diff --git a/graphics/pokemon/kabutops/shiny_gba.pal b/graphics/pokemon/kabutops/shiny_gba.pal new file mode 100644 index 0000000000..9217ab55db --- /dev/null +++ b/graphics/pokemon/kabutops/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +222 222 213 +189 189 180 +156 156 148 +106 106 106 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +222 255 90 +189 222 74 +148 180 41 +82 115 0 +16 16 16 diff --git a/graphics/pokemon/kadabra/anim_front_gba.png b/graphics/pokemon/kadabra/anim_front_gba.png new file mode 100644 index 0000000000..cabd2589f5 Binary files /dev/null and b/graphics/pokemon/kadabra/anim_front_gba.png differ diff --git a/graphics/pokemon/kadabra/back_gba.png b/graphics/pokemon/kadabra/back_gba.png new file mode 100644 index 0000000000..703f4afcc9 Binary files /dev/null and b/graphics/pokemon/kadabra/back_gba.png differ diff --git a/graphics/pokemon/kadabra/icon_gba.png b/graphics/pokemon/kadabra/icon_gba.png new file mode 100644 index 0000000000..8653f75241 Binary files /dev/null and b/graphics/pokemon/kadabra/icon_gba.png differ diff --git a/graphics/pokemon/kadabra/normal_gba.pal b/graphics/pokemon/kadabra/normal_gba.pal new file mode 100644 index 0000000000..0e561d4e6f --- /dev/null +++ b/graphics/pokemon/kadabra/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +90 90 90 +246 139 139 +246 65 49 +213 180 82 +172 131 41 +139 98 16 +98 49 0 +222 222 222 +180 180 180 +255 255 123 +255 238 41 +213 180 0 +139 98 0 +16 16 16 diff --git a/graphics/pokemon/kadabra/shiny_gba.pal b/graphics/pokemon/kadabra/shiny_gba.pal new file mode 100644 index 0000000000..e722cc8faa --- /dev/null +++ b/graphics/pokemon/kadabra/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +90 90 90 +246 139 139 +246 65 49 +222 180 180 +180 139 139 +139 98 98 +90 49 49 +222 222 222 +180 180 180 +255 255 164 +255 238 123 +230 197 82 +123 98 0 +16 16 16 diff --git a/graphics/pokemon/kakuna/anim_front_gba.png b/graphics/pokemon/kakuna/anim_front_gba.png new file mode 100644 index 0000000000..5b7914f46f Binary files /dev/null and b/graphics/pokemon/kakuna/anim_front_gba.png differ diff --git a/graphics/pokemon/kakuna/back_gba.png b/graphics/pokemon/kakuna/back_gba.png new file mode 100644 index 0000000000..2f5455238f Binary files /dev/null and b/graphics/pokemon/kakuna/back_gba.png differ diff --git a/graphics/pokemon/kakuna/icon_gba.png b/graphics/pokemon/kakuna/icon_gba.png new file mode 100644 index 0000000000..1c857d4429 Binary files /dev/null and b/graphics/pokemon/kakuna/icon_gba.png differ diff --git a/graphics/pokemon/kakuna/normal_gba.pal b/graphics/pokemon/kakuna/normal_gba.pal new file mode 100644 index 0000000000..b14a689689 --- /dev/null +++ b/graphics/pokemon/kakuna/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 230 156 +255 213 106 +230 172 90 +180 123 0 +139 90 0 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +57 57 57 +16 16 16 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/kakuna/shiny_gba.pal b/graphics/pokemon/kakuna/shiny_gba.pal new file mode 100644 index 0000000000..0a45b029a3 --- /dev/null +++ b/graphics/pokemon/kakuna/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 238 90 +197 230 49 +156 189 8 +115 148 0 +74 106 0 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +57 57 57 +16 16 16 +255 0 255 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/kangaskhan/anim_front_gba.png b/graphics/pokemon/kangaskhan/anim_front_gba.png new file mode 100644 index 0000000000..ec534bcb69 Binary files /dev/null and b/graphics/pokemon/kangaskhan/anim_front_gba.png differ diff --git a/graphics/pokemon/kangaskhan/back_gba.png b/graphics/pokemon/kangaskhan/back_gba.png new file mode 100644 index 0000000000..babb41fce6 Binary files /dev/null and b/graphics/pokemon/kangaskhan/back_gba.png differ diff --git a/graphics/pokemon/kangaskhan/icon_gba.png b/graphics/pokemon/kangaskhan/icon_gba.png new file mode 100644 index 0000000000..177a688cd1 Binary files /dev/null and b/graphics/pokemon/kangaskhan/icon_gba.png differ diff --git a/graphics/pokemon/kangaskhan/normal_gba.pal b/graphics/pokemon/kangaskhan/normal_gba.pal new file mode 100644 index 0000000000..2dca5ca1ae --- /dev/null +++ b/graphics/pokemon/kangaskhan/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +255 255 148 +238 205 106 +189 24 24 +16 16 16 +222 180 213 +148 106 139 +164 172 123 +139 148 98 +106 106 82 +213 189 131 +189 164 106 +156 123 65 +82 65 16 diff --git a/graphics/pokemon/kangaskhan/shiny_gba.pal b/graphics/pokemon/kangaskhan/shiny_gba.pal new file mode 100644 index 0000000000..3580f7e9d1 --- /dev/null +++ b/graphics/pokemon/kangaskhan/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +255 255 148 +238 205 106 +189 24 24 +16 16 16 +238 205 180 +189 156 139 +139 156 82 +98 115 41 +57 74 0 +255 246 205 +213 205 164 +172 164 123 +98 90 49 diff --git a/graphics/pokemon/kartana/icon.png b/graphics/pokemon/kartana/icon.png index 7d0b82499e..bdf3ec3a51 100644 Binary files a/graphics/pokemon/kartana/icon.png and b/graphics/pokemon/kartana/icon.png differ diff --git a/graphics/pokemon/kecleon/anim_front_gba.png b/graphics/pokemon/kecleon/anim_front_gba.png new file mode 100644 index 0000000000..33d577e3e3 Binary files /dev/null and b/graphics/pokemon/kecleon/anim_front_gba.png differ diff --git a/graphics/pokemon/kecleon/back_gba.png b/graphics/pokemon/kecleon/back_gba.png new file mode 100644 index 0000000000..1baeeb58a3 Binary files /dev/null and b/graphics/pokemon/kecleon/back_gba.png differ diff --git a/graphics/pokemon/kecleon/icon_gba.png b/graphics/pokemon/kecleon/icon_gba.png new file mode 100644 index 0000000000..98b108fd93 Binary files /dev/null and b/graphics/pokemon/kecleon/icon_gba.png differ diff --git a/graphics/pokemon/kecleon/normal_gba.pal b/graphics/pokemon/kecleon/normal_gba.pal new file mode 100644 index 0000000000..36d6be7d7a --- /dev/null +++ b/graphics/pokemon/kecleon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 255 255 +65 98 65 +82 139 90 +98 180 131 +123 213 139 +164 238 156 +255 255 255 +139 74 57 +189 90 65 +238 106 74 +197 172 74 +222 197 90 +246 238 123 +139 123 90 +172 197 123 +0 0 0 diff --git a/graphics/pokemon/kecleon/shiny_gba.pal b/graphics/pokemon/kecleon/shiny_gba.pal new file mode 100644 index 0000000000..e056b670f8 --- /dev/null +++ b/graphics/pokemon/kecleon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 255 255 +65 98 65 +82 139 90 +98 180 131 +123 213 139 +164 238 156 +255 255 255 +49 131 197 +90 172 230 +123 197 255 +238 156 74 +255 180 74 +255 255 180 +139 123 90 +172 197 123 +0 0 0 diff --git a/graphics/pokemon/kingdra/anim_front_gba.png b/graphics/pokemon/kingdra/anim_front_gba.png new file mode 100644 index 0000000000..b51448e0a1 Binary files /dev/null and b/graphics/pokemon/kingdra/anim_front_gba.png differ diff --git a/graphics/pokemon/kingdra/back_gba.png b/graphics/pokemon/kingdra/back_gba.png new file mode 100644 index 0000000000..3e6ec7789a Binary files /dev/null and b/graphics/pokemon/kingdra/back_gba.png differ diff --git a/graphics/pokemon/kingdra/icon_gba.png b/graphics/pokemon/kingdra/icon_gba.png new file mode 100644 index 0000000000..c0fb5484af Binary files /dev/null and b/graphics/pokemon/kingdra/icon_gba.png differ diff --git a/graphics/pokemon/kingdra/normal_gba.pal b/graphics/pokemon/kingdra/normal_gba.pal new file mode 100644 index 0000000000..9dcb7ab851 --- /dev/null +++ b/graphics/pokemon/kingdra/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 222 246 +156 189 246 +74 156 189 +74 74 131 +255 0 255 +246 106 82 +189 57 49 +255 255 156 +246 230 74 +230 172 57 +172 106 0 +213 213 213 +123 123 123 +16 16 16 diff --git a/graphics/pokemon/kingdra/shiny_gba.pal b/graphics/pokemon/kingdra/shiny_gba.pal new file mode 100644 index 0000000000..c458692836 --- /dev/null +++ b/graphics/pokemon/kingdra/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 197 238 +213 172 230 +156 115 180 +106 65 123 +255 0 255 +131 205 24 +82 156 24 +255 255 156 +246 230 74 +230 172 57 +172 106 0 +213 213 213 +123 123 123 +16 16 16 diff --git a/graphics/pokemon/kingler/anim_front_gba.png b/graphics/pokemon/kingler/anim_front_gba.png new file mode 100644 index 0000000000..fbcafec039 Binary files /dev/null and b/graphics/pokemon/kingler/anim_front_gba.png differ diff --git a/graphics/pokemon/kingler/back_gba.png b/graphics/pokemon/kingler/back_gba.png new file mode 100644 index 0000000000..11338630f3 Binary files /dev/null and b/graphics/pokemon/kingler/back_gba.png differ diff --git a/graphics/pokemon/kingler/gigantamax/back.png b/graphics/pokemon/kingler/gmax/back.png similarity index 100% rename from graphics/pokemon/kingler/gigantamax/back.png rename to graphics/pokemon/kingler/gmax/back.png diff --git a/graphics/pokemon/kingler/gigantamax/front.png b/graphics/pokemon/kingler/gmax/front.png similarity index 100% rename from graphics/pokemon/kingler/gigantamax/front.png rename to graphics/pokemon/kingler/gmax/front.png diff --git a/graphics/pokemon/kingler/gigantamax/icon.png b/graphics/pokemon/kingler/gmax/icon.png similarity index 100% rename from graphics/pokemon/kingler/gigantamax/icon.png rename to graphics/pokemon/kingler/gmax/icon.png diff --git a/graphics/pokemon/kingler/gigantamax/normal.pal b/graphics/pokemon/kingler/gmax/normal.pal similarity index 100% rename from graphics/pokemon/kingler/gigantamax/normal.pal rename to graphics/pokemon/kingler/gmax/normal.pal diff --git a/graphics/pokemon/kingler/gigantamax/shiny.pal b/graphics/pokemon/kingler/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/kingler/gigantamax/shiny.pal rename to graphics/pokemon/kingler/gmax/shiny.pal diff --git a/graphics/pokemon/kingler/icon_gba.png b/graphics/pokemon/kingler/icon_gba.png new file mode 100644 index 0000000000..dbf1af284c Binary files /dev/null and b/graphics/pokemon/kingler/icon_gba.png differ diff --git a/graphics/pokemon/kingler/normal_gba.pal b/graphics/pokemon/kingler/normal_gba.pal new file mode 100644 index 0000000000..15450f55cf --- /dev/null +++ b/graphics/pokemon/kingler/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +246 197 139 +238 139 74 +197 106 57 +131 65 24 +246 238 164 +222 197 106 +164 139 65 +115 82 16 +255 16 255 +255 16 255 +255 16 255 +255 16 255 +222 222 246 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/kingler/shiny_gba.pal b/graphics/pokemon/kingler/shiny_gba.pal new file mode 100644 index 0000000000..a472da1258 --- /dev/null +++ b/graphics/pokemon/kingler/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +180 189 123 +139 148 82 +98 106 41 +57 65 41 +246 238 164 +197 189 32 +156 148 0 +115 106 0 +255 16 255 +255 16 255 +255 16 255 +255 16 255 +222 222 246 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/kirlia/anim_front_gba.png b/graphics/pokemon/kirlia/anim_front_gba.png new file mode 100644 index 0000000000..eb8560d98c Binary files /dev/null and b/graphics/pokemon/kirlia/anim_front_gba.png differ diff --git a/graphics/pokemon/kirlia/back_gba.png b/graphics/pokemon/kirlia/back_gba.png new file mode 100644 index 0000000000..5820cd0688 Binary files /dev/null and b/graphics/pokemon/kirlia/back_gba.png differ diff --git a/graphics/pokemon/kirlia/icon_gba.png b/graphics/pokemon/kirlia/icon_gba.png new file mode 100644 index 0000000000..b99dfee257 Binary files /dev/null and b/graphics/pokemon/kirlia/icon_gba.png differ diff --git a/graphics/pokemon/kirlia/normal_gba.pal b/graphics/pokemon/kirlia/normal_gba.pal new file mode 100644 index 0000000000..91b428af2d --- /dev/null +++ b/graphics/pokemon/kirlia/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +197 205 222 +164 180 205 +131 148 180 +123 82 82 +115 41 57 +255 156 131 +230 82 57 +106 123 148 +255 255 255 +205 255 172 +148 230 148 +115 189 115 +49 123 74 +16 16 16 diff --git a/graphics/pokemon/kirlia/shiny_gba.pal b/graphics/pokemon/kirlia/shiny_gba.pal new file mode 100644 index 0000000000..ff944e5516 --- /dev/null +++ b/graphics/pokemon/kirlia/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +213 189 222 +180 164 205 +156 131 180 +123 82 82 +115 41 57 +255 197 90 +230 131 32 +106 123 148 +197 238 246 +189 230 255 +123 197 238 +82 172 213 +32 115 123 +16 16 16 diff --git a/graphics/pokemon/koffing/anim_front_gba.png b/graphics/pokemon/koffing/anim_front_gba.png new file mode 100644 index 0000000000..430dcfdfb4 Binary files /dev/null and b/graphics/pokemon/koffing/anim_front_gba.png differ diff --git a/graphics/pokemon/koffing/back_gba.png b/graphics/pokemon/koffing/back_gba.png new file mode 100644 index 0000000000..a76b27fae6 Binary files /dev/null and b/graphics/pokemon/koffing/back_gba.png differ diff --git a/graphics/pokemon/koffing/icon_gba.png b/graphics/pokemon/koffing/icon_gba.png new file mode 100644 index 0000000000..683df2b859 Binary files /dev/null and b/graphics/pokemon/koffing/icon_gba.png differ diff --git a/graphics/pokemon/koffing/normal_gba.pal b/graphics/pokemon/koffing/normal_gba.pal new file mode 100644 index 0000000000..7b248a340b --- /dev/null +++ b/graphics/pokemon/koffing/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +246 238 148 +213 205 106 +255 98 74 +213 57 32 +255 0 255 +255 0 255 +238 213 106 +197 180 41 +222 156 213 +189 123 180 +148 82 139 +90 41 82 +16 16 16 diff --git a/graphics/pokemon/koffing/shiny_gba.pal b/graphics/pokemon/koffing/shiny_gba.pal new file mode 100644 index 0000000000..bcea2e929e --- /dev/null +++ b/graphics/pokemon/koffing/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +246 238 148 +213 205 106 +255 98 74 +213 57 32 +255 0 255 +255 0 255 +180 106 164 +139 65 123 +189 230 230 +148 189 189 +106 148 148 +41 82 82 +16 16 16 diff --git a/graphics/pokemon/komala/icon.png b/graphics/pokemon/komala/icon.png index 6935e996ce..96af23fe18 100644 Binary files a/graphics/pokemon/komala/icon.png and b/graphics/pokemon/komala/icon.png differ diff --git a/graphics/pokemon/kommo_o/icon.png b/graphics/pokemon/kommo_o/icon.png index 3acaf53292..2a0ba757f8 100644 Binary files a/graphics/pokemon/kommo_o/icon.png and b/graphics/pokemon/kommo_o/icon.png differ diff --git a/graphics/pokemon/krabby/anim_front_gba.png b/graphics/pokemon/krabby/anim_front_gba.png new file mode 100644 index 0000000000..b7f5b3b770 Binary files /dev/null and b/graphics/pokemon/krabby/anim_front_gba.png differ diff --git a/graphics/pokemon/krabby/back_gba.png b/graphics/pokemon/krabby/back_gba.png new file mode 100644 index 0000000000..d0501e77af Binary files /dev/null and b/graphics/pokemon/krabby/back_gba.png differ diff --git a/graphics/pokemon/krabby/icon_gba.png b/graphics/pokemon/krabby/icon_gba.png new file mode 100644 index 0000000000..f9fdaa6d5f Binary files /dev/null and b/graphics/pokemon/krabby/icon_gba.png differ diff --git a/graphics/pokemon/krabby/normal_gba.pal b/graphics/pokemon/krabby/normal_gba.pal new file mode 100644 index 0000000000..2255b2970a --- /dev/null +++ b/graphics/pokemon/krabby/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +255 255 255 +222 222 222 +255 0 255 +246 238 164 +222 197 106 +164 139 65 +115 82 16 +255 0 255 +255 0 255 +255 0 255 +255 164 98 +246 123 57 +222 98 32 +180 49 16 +16 16 16 diff --git a/graphics/pokemon/krabby/shiny_gba.pal b/graphics/pokemon/krabby/shiny_gba.pal new file mode 100644 index 0000000000..d1318f36c4 --- /dev/null +++ b/graphics/pokemon/krabby/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +255 255 255 +222 222 222 +255 0 255 +255 246 205 +222 205 164 +180 164 123 +115 98 57 +255 0 255 +255 0 255 +255 0 255 +255 222 74 +213 180 32 +172 139 0 +131 98 0 +16 16 16 diff --git a/graphics/pokemon/kyogre/anim_front_gba.png b/graphics/pokemon/kyogre/anim_front_gba.png new file mode 100644 index 0000000000..780f87052b Binary files /dev/null and b/graphics/pokemon/kyogre/anim_front_gba.png differ diff --git a/graphics/pokemon/kyogre/back_gba.png b/graphics/pokemon/kyogre/back_gba.png new file mode 100644 index 0000000000..d0c4f55c11 Binary files /dev/null and b/graphics/pokemon/kyogre/back_gba.png differ diff --git a/graphics/pokemon/kyogre/icon_gba.png b/graphics/pokemon/kyogre/icon_gba.png new file mode 100644 index 0000000000..544ed9daf9 Binary files /dev/null and b/graphics/pokemon/kyogre/icon_gba.png differ diff --git a/graphics/pokemon/kyogre/normal_gba.pal b/graphics/pokemon/kyogre/normal_gba.pal new file mode 100644 index 0000000000..d598595cb6 --- /dev/null +++ b/graphics/pokemon/kyogre/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 205 49 +205 189 205 +156 139 148 +90 82 106 +41 82 148 +115 41 57 +255 8 16 +189 32 41 +131 205 255 +222 222 222 +90 164 255 +74 131 213 +57 98 180 +49 57 115 +16 16 16 diff --git a/graphics/pokemon/kyogre/shiny_gba.pal b/graphics/pokemon/kyogre/shiny_gba.pal new file mode 100644 index 0000000000..392162401a --- /dev/null +++ b/graphics/pokemon/kyogre/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 205 49 +222 205 222 +156 139 148 +90 82 106 +164 24 156 +115 41 57 +255 8 16 +189 32 41 +255 156 255 +246 246 246 +255 123 255 +230 90 222 +197 57 189 +131 0 123 +16 16 16 diff --git a/graphics/pokemon/lairon/anim_front_gba.png b/graphics/pokemon/lairon/anim_front_gba.png new file mode 100644 index 0000000000..744680a2b7 Binary files /dev/null and b/graphics/pokemon/lairon/anim_front_gba.png differ diff --git a/graphics/pokemon/lairon/back_gba.png b/graphics/pokemon/lairon/back_gba.png new file mode 100644 index 0000000000..552c013561 Binary files /dev/null and b/graphics/pokemon/lairon/back_gba.png differ diff --git a/graphics/pokemon/lairon/icon_gba.png b/graphics/pokemon/lairon/icon_gba.png new file mode 100644 index 0000000000..6d450b08da Binary files /dev/null and b/graphics/pokemon/lairon/icon_gba.png differ diff --git a/graphics/pokemon/lairon/normal_gba.pal b/graphics/pokemon/lairon/normal_gba.pal new file mode 100644 index 0000000000..b5711fdada --- /dev/null +++ b/graphics/pokemon/lairon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +74 74 65 +106 106 106 +139 139 139 +172 172 172 +57 57 65 +123 106 106 +156 139 139 +189 172 172 +222 205 205 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +106 189 255 +0 0 0 diff --git a/graphics/pokemon/lairon/shiny_gba.pal b/graphics/pokemon/lairon/shiny_gba.pal new file mode 100644 index 0000000000..eadb9aa81e --- /dev/null +++ b/graphics/pokemon/lairon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 172 156 +32 90 90 +65 123 115 +90 156 148 +148 197 205 +74 41 24 +123 123 90 +156 156 123 +189 189 156 +222 222 197 +255 255 255 +172 57 74 +222 106 106 +255 131 131 +255 123 82 +0 0 0 diff --git a/graphics/pokemon/lanturn/anim_front_gba.png b/graphics/pokemon/lanturn/anim_front_gba.png new file mode 100644 index 0000000000..8d74b75fc0 Binary files /dev/null and b/graphics/pokemon/lanturn/anim_front_gba.png differ diff --git a/graphics/pokemon/lanturn/back_gba.png b/graphics/pokemon/lanturn/back_gba.png new file mode 100644 index 0000000000..1b9543d639 Binary files /dev/null and b/graphics/pokemon/lanturn/back_gba.png differ diff --git a/graphics/pokemon/lanturn/icon_gba.png b/graphics/pokemon/lanturn/icon_gba.png new file mode 100644 index 0000000000..d2b3d43480 Binary files /dev/null and b/graphics/pokemon/lanturn/icon_gba.png differ diff --git a/graphics/pokemon/lanturn/normal_gba.pal b/graphics/pokemon/lanturn/normal_gba.pal new file mode 100644 index 0000000000..7baa22c6e6 --- /dev/null +++ b/graphics/pokemon/lanturn/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +172 172 172 +164 205 255 +139 172 255 +98 139 230 +57 106 205 +0 82 139 +255 238 123 +255 230 82 +213 180 90 +180 139 57 +131 82 8 +16 16 16 +255 115 0 +180 0 0 diff --git a/graphics/pokemon/lanturn/shiny_gba.pal b/graphics/pokemon/lanturn/shiny_gba.pal new file mode 100644 index 0000000000..70360c0296 --- /dev/null +++ b/graphics/pokemon/lanturn/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +172 172 172 +230 156 255 +205 131 246 +164 98 222 +131 65 197 +106 41 139 +255 255 106 +238 238 65 +180 180 41 +139 139 8 +90 90 8 +16 16 16 +255 115 0 +205 49 0 diff --git a/graphics/pokemon/lapras/anim_front_gba.png b/graphics/pokemon/lapras/anim_front_gba.png new file mode 100644 index 0000000000..1124f14aa3 Binary files /dev/null and b/graphics/pokemon/lapras/anim_front_gba.png differ diff --git a/graphics/pokemon/lapras/back_gba.png b/graphics/pokemon/lapras/back_gba.png new file mode 100644 index 0000000000..3b5a18f17c Binary files /dev/null and b/graphics/pokemon/lapras/back_gba.png differ diff --git a/graphics/pokemon/lapras/gigantamax/back.png b/graphics/pokemon/lapras/gmax/back.png similarity index 100% rename from graphics/pokemon/lapras/gigantamax/back.png rename to graphics/pokemon/lapras/gmax/back.png diff --git a/graphics/pokemon/lapras/gigantamax/front.png b/graphics/pokemon/lapras/gmax/front.png similarity index 100% rename from graphics/pokemon/lapras/gigantamax/front.png rename to graphics/pokemon/lapras/gmax/front.png diff --git a/graphics/pokemon/lapras/gigantamax/icon.png b/graphics/pokemon/lapras/gmax/icon.png similarity index 100% rename from graphics/pokemon/lapras/gigantamax/icon.png rename to graphics/pokemon/lapras/gmax/icon.png diff --git a/graphics/pokemon/lapras/gigantamax/normal.pal b/graphics/pokemon/lapras/gmax/normal.pal similarity index 100% rename from graphics/pokemon/lapras/gigantamax/normal.pal rename to graphics/pokemon/lapras/gmax/normal.pal diff --git a/graphics/pokemon/lapras/gigantamax/shiny.pal b/graphics/pokemon/lapras/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/lapras/gigantamax/shiny.pal rename to graphics/pokemon/lapras/gmax/shiny.pal diff --git a/graphics/pokemon/lapras/icon_gba.png b/graphics/pokemon/lapras/icon_gba.png new file mode 100644 index 0000000000..fa8035adac Binary files /dev/null and b/graphics/pokemon/lapras/icon_gba.png differ diff --git a/graphics/pokemon/lapras/normal_gba.pal b/graphics/pokemon/lapras/normal_gba.pal new file mode 100644 index 0000000000..0426c24deb --- /dev/null +++ b/graphics/pokemon/lapras/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +230 90 41 +164 0 0 +255 238 148 +230 197 106 +131 106 49 +238 222 213 +213 197 189 +164 148 139 +98 82 90 +197 222 246 +156 189 230 +115 148 205 +57 82 115 +41 41 41 diff --git a/graphics/pokemon/lapras/shiny_gba.pal b/graphics/pokemon/lapras/shiny_gba.pal new file mode 100644 index 0000000000..5090527aa2 --- /dev/null +++ b/graphics/pokemon/lapras/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +230 90 41 +164 0 0 +238 205 213 +222 172 180 +139 82 106 +238 222 213 +213 197 189 +164 148 139 +98 82 90 +205 189 246 +172 156 230 +131 98 189 +82 65 139 +41 41 41 diff --git a/graphics/pokemon/larvitar/anim_front_gba.png b/graphics/pokemon/larvitar/anim_front_gba.png new file mode 100644 index 0000000000..4aa28027b7 Binary files /dev/null and b/graphics/pokemon/larvitar/anim_front_gba.png differ diff --git a/graphics/pokemon/larvitar/back_gba.png b/graphics/pokemon/larvitar/back_gba.png new file mode 100644 index 0000000000..1c28da425f Binary files /dev/null and b/graphics/pokemon/larvitar/back_gba.png differ diff --git a/graphics/pokemon/larvitar/icon_gba.png b/graphics/pokemon/larvitar/icon_gba.png new file mode 100644 index 0000000000..85a5504c34 Binary files /dev/null and b/graphics/pokemon/larvitar/icon_gba.png differ diff --git a/graphics/pokemon/larvitar/normal_gba.pal b/graphics/pokemon/larvitar/normal_gba.pal new file mode 100644 index 0000000000..3bcc1f1335 --- /dev/null +++ b/graphics/pokemon/larvitar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +197 238 197 +180 222 180 +123 172 123 +74 98 74 +255 0 255 +255 164 90 +238 82 41 +189 57 32 +106 32 0 +255 0 255 +255 0 255 +197 197 197 +98 98 98 +16 16 16 diff --git a/graphics/pokemon/larvitar/shiny_gba.pal b/graphics/pokemon/larvitar/shiny_gba.pal new file mode 100644 index 0000000000..aa6a59c365 --- /dev/null +++ b/graphics/pokemon/larvitar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 246 82 +205 222 74 +156 172 41 +90 115 0 +255 0 255 +230 156 172 +189 98 131 +148 57 98 +90 41 65 +255 0 255 +255 0 255 +197 197 197 +98 98 98 +16 16 16 diff --git a/graphics/pokemon/latias/anim_front_gba.png b/graphics/pokemon/latias/anim_front_gba.png new file mode 100644 index 0000000000..63f4a1d1f7 Binary files /dev/null and b/graphics/pokemon/latias/anim_front_gba.png differ diff --git a/graphics/pokemon/latias/back_gba.png b/graphics/pokemon/latias/back_gba.png new file mode 100644 index 0000000000..a4286579b9 Binary files /dev/null and b/graphics/pokemon/latias/back_gba.png differ diff --git a/graphics/pokemon/latias/icon_gba.png b/graphics/pokemon/latias/icon_gba.png new file mode 100644 index 0000000000..1727c0af63 Binary files /dev/null and b/graphics/pokemon/latias/icon_gba.png differ diff --git a/graphics/pokemon/latias/normal_gba.pal b/graphics/pokemon/latias/normal_gba.pal new file mode 100644 index 0000000000..6f831271fd --- /dev/null +++ b/graphics/pokemon/latias/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 238 255 +213 213 238 +172 164 205 +123 115 148 +255 205 90 +205 164 74 +115 172 238 +90 106 180 +255 164 115 +255 255 255 +255 106 106 +222 90 90 +205 74 82 +139 49 65 +16 16 16 diff --git a/graphics/pokemon/latias/shiny_gba.pal b/graphics/pokemon/latias/shiny_gba.pal new file mode 100644 index 0000000000..a701dc933b --- /dev/null +++ b/graphics/pokemon/latias/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 238 255 +213 213 238 +172 164 205 +123 115 148 +131 246 65 +49 123 24 +115 189 255 +90 139 180 +255 255 90 +255 255 255 +255 205 41 +238 172 0 +238 131 0 +189 57 0 +16 16 16 diff --git a/graphics/pokemon/latios/anim_front_gba.png b/graphics/pokemon/latios/anim_front_gba.png new file mode 100644 index 0000000000..330bf8e4cb Binary files /dev/null and b/graphics/pokemon/latios/anim_front_gba.png differ diff --git a/graphics/pokemon/latios/back_gba.png b/graphics/pokemon/latios/back_gba.png new file mode 100644 index 0000000000..0f2b7f5d6e Binary files /dev/null and b/graphics/pokemon/latios/back_gba.png differ diff --git a/graphics/pokemon/latios/icon_gba.png b/graphics/pokemon/latios/icon_gba.png new file mode 100644 index 0000000000..10a23ad470 Binary files /dev/null and b/graphics/pokemon/latios/icon_gba.png differ diff --git a/graphics/pokemon/latios/normal_gba.pal b/graphics/pokemon/latios/normal_gba.pal new file mode 100644 index 0000000000..6a3d8beade --- /dev/null +++ b/graphics/pokemon/latios/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +205 205 205 +172 172 172 +148 139 148 +115 106 115 +222 222 222 +131 74 74 +255 106 106 +213 74 82 +156 205 255 +255 255 255 +90 164 255 +74 131 213 +57 98 180 +49 57 115 +16 16 16 diff --git a/graphics/pokemon/latios/shiny_gba.pal b/graphics/pokemon/latios/shiny_gba.pal new file mode 100644 index 0000000000..2b539fd9cc --- /dev/null +++ b/graphics/pokemon/latios/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +246 246 246 +213 213 213 +180 172 172 +148 139 148 +246 246 246 +180 82 0 +230 123 41 +255 164 65 +189 255 255 +255 255 255 +172 238 222 +74 205 164 +32 164 123 +0 98 65 +16 16 16 diff --git a/graphics/pokemon/ledian/anim_front_gba.png b/graphics/pokemon/ledian/anim_front_gba.png new file mode 100644 index 0000000000..91ac5a9f53 Binary files /dev/null and b/graphics/pokemon/ledian/anim_front_gba.png differ diff --git a/graphics/pokemon/ledian/back_gba.png b/graphics/pokemon/ledian/back_gba.png new file mode 100644 index 0000000000..577fd2d717 Binary files /dev/null and b/graphics/pokemon/ledian/back_gba.png differ diff --git a/graphics/pokemon/ledian/icon_gba.png b/graphics/pokemon/ledian/icon_gba.png new file mode 100644 index 0000000000..b82ef1306b Binary files /dev/null and b/graphics/pokemon/ledian/icon_gba.png differ diff --git a/graphics/pokemon/ledian/normal_gba.pal b/graphics/pokemon/ledian/normal_gba.pal new file mode 100644 index 0000000000..dc9acc426f --- /dev/null +++ b/graphics/pokemon/ledian/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 197 131 +255 90 32 +197 57 16 +131 49 16 +255 255 189 +246 230 115 +205 180 57 +164 123 0 +0 74 164 +0 24 115 +213 213 213 +180 180 180 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/ledian/shiny_gba.pal b/graphics/pokemon/ledian/shiny_gba.pal new file mode 100644 index 0000000000..472f0974dc --- /dev/null +++ b/graphics/pokemon/ledian/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 222 41 +255 164 0 +205 123 0 +131 74 16 +255 255 205 +246 238 131 +205 189 74 +164 131 16 +0 74 164 +0 24 115 +213 213 213 +180 180 180 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/ledyba/anim_front_gba.png b/graphics/pokemon/ledyba/anim_front_gba.png new file mode 100644 index 0000000000..e58a15d752 Binary files /dev/null and b/graphics/pokemon/ledyba/anim_front_gba.png differ diff --git a/graphics/pokemon/ledyba/back_gba.png b/graphics/pokemon/ledyba/back_gba.png new file mode 100644 index 0000000000..6a84f405dd Binary files /dev/null and b/graphics/pokemon/ledyba/back_gba.png differ diff --git a/graphics/pokemon/ledyba/icon_gba.png b/graphics/pokemon/ledyba/icon_gba.png new file mode 100644 index 0000000000..f417e2d74e Binary files /dev/null and b/graphics/pokemon/ledyba/icon_gba.png differ diff --git a/graphics/pokemon/ledyba/normal_gba.pal b/graphics/pokemon/ledyba/normal_gba.pal new file mode 100644 index 0000000000..2cc003adf0 --- /dev/null +++ b/graphics/pokemon/ledyba/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 156 49 +238 82 24 +180 65 41 +123 49 24 +255 255 189 +246 230 115 +205 180 57 +164 123 0 +0 74 164 +0 24 115 +205 205 205 +180 180 180 +115 115 115 +16 16 16 diff --git a/graphics/pokemon/ledyba/shiny_gba.pal b/graphics/pokemon/ledyba/shiny_gba.pal new file mode 100644 index 0000000000..472f0974dc --- /dev/null +++ b/graphics/pokemon/ledyba/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 222 41 +255 164 0 +205 123 0 +131 74 16 +255 255 205 +246 238 131 +205 189 74 +164 131 16 +0 74 164 +0 24 115 +213 213 213 +180 180 180 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/lickitung/anim_front_gba.png b/graphics/pokemon/lickitung/anim_front_gba.png new file mode 100644 index 0000000000..c3dcbfd1a6 Binary files /dev/null and b/graphics/pokemon/lickitung/anim_front_gba.png differ diff --git a/graphics/pokemon/lickitung/back_gba.png b/graphics/pokemon/lickitung/back_gba.png new file mode 100644 index 0000000000..adf354eb3f Binary files /dev/null and b/graphics/pokemon/lickitung/back_gba.png differ diff --git a/graphics/pokemon/lickitung/icon_gba.png b/graphics/pokemon/lickitung/icon_gba.png new file mode 100644 index 0000000000..5b7804afa5 Binary files /dev/null and b/graphics/pokemon/lickitung/icon_gba.png differ diff --git a/graphics/pokemon/lickitung/normal_gba.pal b/graphics/pokemon/lickitung/normal_gba.pal new file mode 100644 index 0000000000..602ac2724f --- /dev/null +++ b/graphics/pokemon/lickitung/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +255 255 164 +230 213 115 +131 123 32 +255 164 148 +255 131 82 +230 74 24 +197 32 16 +255 0 255 +255 205 180 +255 164 131 +238 106 82 +205 82 49 +148 16 0 +16 16 16 diff --git a/graphics/pokemon/lickitung/shiny_gba.pal b/graphics/pokemon/lickitung/shiny_gba.pal new file mode 100644 index 0000000000..d739ad9c1b --- /dev/null +++ b/graphics/pokemon/lickitung/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +255 255 164 +230 213 115 +131 123 32 +255 164 172 +255 123 131 +213 82 90 +172 41 49 +255 0 255 +255 255 148 +246 222 106 +205 180 65 +172 139 24 +131 90 0 +16 16 16 diff --git a/graphics/pokemon/liepard/overworld.png b/graphics/pokemon/liepard/overworld.png index eb6611bf84..804cdb39d6 100644 Binary files a/graphics/pokemon/liepard/overworld.png and b/graphics/pokemon/liepard/overworld.png differ diff --git a/graphics/pokemon/lileep/anim_front_gba.png b/graphics/pokemon/lileep/anim_front_gba.png new file mode 100644 index 0000000000..a656d6fa63 Binary files /dev/null and b/graphics/pokemon/lileep/anim_front_gba.png differ diff --git a/graphics/pokemon/lileep/back_gba.png b/graphics/pokemon/lileep/back_gba.png new file mode 100644 index 0000000000..7536020910 Binary files /dev/null and b/graphics/pokemon/lileep/back_gba.png differ diff --git a/graphics/pokemon/lileep/icon_gba.png b/graphics/pokemon/lileep/icon_gba.png new file mode 100644 index 0000000000..b875a53a73 Binary files /dev/null and b/graphics/pokemon/lileep/icon_gba.png differ diff --git a/graphics/pokemon/lileep/normal_gba.pal b/graphics/pokemon/lileep/normal_gba.pal new file mode 100644 index 0000000000..a739bf847b --- /dev/null +++ b/graphics/pokemon/lileep/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 213 139 +230 164 222 +180 115 172 +139 65 123 +98 24 74 +255 172 106 +238 123 57 +189 98 16 +255 246 123 +255 222 41 +230 172 0 +213 213 213 +172 172 180 +115 115 115 +0 0 0 diff --git a/graphics/pokemon/lileep/shiny_gba.pal b/graphics/pokemon/lileep/shiny_gba.pal new file mode 100644 index 0000000000..6402a8688c --- /dev/null +++ b/graphics/pokemon/lileep/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 213 139 +148 238 205 +115 205 172 +82 172 139 +32 123 90 +255 172 106 +238 123 57 +189 98 16 +255 246 123 +255 222 41 +230 172 0 +213 213 213 +172 172 180 +115 115 115 +41 41 57 diff --git a/graphics/pokemon/lilligant/hisuian/back.png b/graphics/pokemon/lilligant/hisui/back.png similarity index 100% rename from graphics/pokemon/lilligant/hisuian/back.png rename to graphics/pokemon/lilligant/hisui/back.png diff --git a/graphics/pokemon/lilligant/hisuian/front.png b/graphics/pokemon/lilligant/hisui/front.png similarity index 100% rename from graphics/pokemon/lilligant/hisuian/front.png rename to graphics/pokemon/lilligant/hisui/front.png diff --git a/graphics/pokemon/lilligant/hisuian/icon.png b/graphics/pokemon/lilligant/hisui/icon.png similarity index 100% rename from graphics/pokemon/lilligant/hisuian/icon.png rename to graphics/pokemon/lilligant/hisui/icon.png diff --git a/graphics/pokemon/lilligant/hisuian/normal.pal b/graphics/pokemon/lilligant/hisui/normal.pal similarity index 100% rename from graphics/pokemon/lilligant/hisuian/normal.pal rename to graphics/pokemon/lilligant/hisui/normal.pal diff --git a/graphics/pokemon/lilligant/hisuian/overworld.png b/graphics/pokemon/lilligant/hisui/overworld.png similarity index 100% rename from graphics/pokemon/lilligant/hisuian/overworld.png rename to graphics/pokemon/lilligant/hisui/overworld.png diff --git a/graphics/pokemon/lilligant/hisuian/overworld_normal.pal b/graphics/pokemon/lilligant/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/lilligant/hisuian/overworld_normal.pal rename to graphics/pokemon/lilligant/hisui/overworld_normal.pal diff --git a/graphics/pokemon/lilligant/hisuian/overworld_shiny.pal b/graphics/pokemon/lilligant/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/lilligant/hisuian/overworld_shiny.pal rename to graphics/pokemon/lilligant/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/lilligant/hisuian/shiny.pal b/graphics/pokemon/lilligant/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/lilligant/hisuian/shiny.pal rename to graphics/pokemon/lilligant/hisui/shiny.pal diff --git a/graphics/pokemon/linoone/anim_front_gba.png b/graphics/pokemon/linoone/anim_front_gba.png new file mode 100644 index 0000000000..e95180de06 Binary files /dev/null and b/graphics/pokemon/linoone/anim_front_gba.png differ diff --git a/graphics/pokemon/linoone/back_gba.png b/graphics/pokemon/linoone/back_gba.png new file mode 100644 index 0000000000..9fc8fad388 Binary files /dev/null and b/graphics/pokemon/linoone/back_gba.png differ diff --git a/graphics/pokemon/linoone/galarian/back.png b/graphics/pokemon/linoone/galar/back.png similarity index 100% rename from graphics/pokemon/linoone/galarian/back.png rename to graphics/pokemon/linoone/galar/back.png diff --git a/graphics/pokemon/linoone/galarian/front.png b/graphics/pokemon/linoone/galar/front.png similarity index 100% rename from graphics/pokemon/linoone/galarian/front.png rename to graphics/pokemon/linoone/galar/front.png diff --git a/graphics/pokemon/linoone/galarian/icon.png b/graphics/pokemon/linoone/galar/icon.png similarity index 100% rename from graphics/pokemon/linoone/galarian/icon.png rename to graphics/pokemon/linoone/galar/icon.png diff --git a/graphics/pokemon/linoone/galarian/normal.pal b/graphics/pokemon/linoone/galar/normal.pal similarity index 100% rename from graphics/pokemon/linoone/galarian/normal.pal rename to graphics/pokemon/linoone/galar/normal.pal diff --git a/graphics/pokemon/linoone/galarian/overworld.png b/graphics/pokemon/linoone/galar/overworld.png similarity index 100% rename from graphics/pokemon/linoone/galarian/overworld.png rename to graphics/pokemon/linoone/galar/overworld.png diff --git a/graphics/pokemon/linoone/galarian/overworld_normal.pal b/graphics/pokemon/linoone/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/linoone/galarian/overworld_normal.pal rename to graphics/pokemon/linoone/galar/overworld_normal.pal diff --git a/graphics/pokemon/linoone/galarian/overworld_shiny.pal b/graphics/pokemon/linoone/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/linoone/galarian/overworld_shiny.pal rename to graphics/pokemon/linoone/galar/overworld_shiny.pal diff --git a/graphics/pokemon/linoone/galarian/shiny.pal b/graphics/pokemon/linoone/galar/shiny.pal similarity index 100% rename from graphics/pokemon/linoone/galarian/shiny.pal rename to graphics/pokemon/linoone/galar/shiny.pal diff --git a/graphics/pokemon/linoone/icon_gba.png b/graphics/pokemon/linoone/icon_gba.png new file mode 100644 index 0000000000..bf0ea0caca Binary files /dev/null and b/graphics/pokemon/linoone/icon_gba.png differ diff --git a/graphics/pokemon/linoone/normal_gba.pal b/graphics/pokemon/linoone/normal_gba.pal new file mode 100644 index 0000000000..368b6ac6f3 --- /dev/null +++ b/graphics/pokemon/linoone/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 172 115 +65 57 32 +139 98 65 +172 139 115 +205 172 139 +230 213 197 +0 0 0 +131 115 90 +197 180 148 +222 213 180 +255 246 246 +57 82 131 +123 139 222 +255 172 180 +255 197 205 +255 238 255 diff --git a/graphics/pokemon/linoone/shiny_gba.pal b/graphics/pokemon/linoone/shiny_gba.pal new file mode 100644 index 0000000000..7988bb21cd --- /dev/null +++ b/graphics/pokemon/linoone/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 172 115 +65 57 32 +197 98 65 +222 131 74 +238 164 74 +255 238 197 +0 0 0 +131 115 90 +197 180 148 +222 213 180 +255 246 246 +189 139 49 +255 205 106 +255 172 180 +255 197 205 +255 238 255 diff --git a/graphics/pokemon/litten/icon.png b/graphics/pokemon/litten/icon.png index 5602732b43..7867b32c69 100644 Binary files a/graphics/pokemon/litten/icon.png and b/graphics/pokemon/litten/icon.png differ diff --git a/graphics/pokemon/lombre/anim_front_gba.png b/graphics/pokemon/lombre/anim_front_gba.png new file mode 100644 index 0000000000..d1aa1e3517 Binary files /dev/null and b/graphics/pokemon/lombre/anim_front_gba.png differ diff --git a/graphics/pokemon/lombre/back_gba.png b/graphics/pokemon/lombre/back_gba.png new file mode 100644 index 0000000000..c87b4bcf37 Binary files /dev/null and b/graphics/pokemon/lombre/back_gba.png differ diff --git a/graphics/pokemon/lombre/icon_gba.png b/graphics/pokemon/lombre/icon_gba.png new file mode 100644 index 0000000000..b3e661cca8 Binary files /dev/null and b/graphics/pokemon/lombre/icon_gba.png differ diff --git a/graphics/pokemon/lombre/normal_gba.pal b/graphics/pokemon/lombre/normal_gba.pal new file mode 100644 index 0000000000..69f944a222 --- /dev/null +++ b/graphics/pokemon/lombre/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +98 106 65 +90 148 106 +148 74 57 +131 197 148 +189 230 180 +222 255 197 +205 74 49 +131 148 65 +139 180 49 +172 213 57 +255 115 65 +205 246 82 +255 255 255 +197 197 205 +255 8 57 diff --git a/graphics/pokemon/lombre/shiny_gba.pal b/graphics/pokemon/lombre/shiny_gba.pal new file mode 100644 index 0000000000..d4458373af --- /dev/null +++ b/graphics/pokemon/lombre/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 205 +98 106 65 +90 148 106 +172 90 41 +172 213 57 +205 246 82 +222 255 197 +213 106 57 +65 131 139 +90 156 164 +106 172 180 +255 172 90 +148 197 205 +255 255 255 +197 197 205 +255 8 57 diff --git a/graphics/pokemon/lotad/anim_front_gba.png b/graphics/pokemon/lotad/anim_front_gba.png new file mode 100644 index 0000000000..b2eabc2128 Binary files /dev/null and b/graphics/pokemon/lotad/anim_front_gba.png differ diff --git a/graphics/pokemon/lotad/back_gba.png b/graphics/pokemon/lotad/back_gba.png new file mode 100644 index 0000000000..d8ca7648d7 Binary files /dev/null and b/graphics/pokemon/lotad/back_gba.png differ diff --git a/graphics/pokemon/lotad/icon_gba.png b/graphics/pokemon/lotad/icon_gba.png new file mode 100644 index 0000000000..74e37ceed5 Binary files /dev/null and b/graphics/pokemon/lotad/icon_gba.png differ diff --git a/graphics/pokemon/lotad/normal_gba.pal b/graphics/pokemon/lotad/normal_gba.pal new file mode 100644 index 0000000000..efb988ea0e --- /dev/null +++ b/graphics/pokemon/lotad/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 213 74 +213 172 57 +139 115 49 +49 65 90 +123 213 74 +98 189 49 +74 172 41 +74 139 41 +49 74 32 +172 255 123 +148 180 222 +82 139 205 +49 115 148 +255 255 255 +16 16 16 diff --git a/graphics/pokemon/lotad/shiny_gba.pal b/graphics/pokemon/lotad/shiny_gba.pal new file mode 100644 index 0000000000..36f2715909 --- /dev/null +++ b/graphics/pokemon/lotad/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 213 74 +213 172 57 +139 115 49 +49 65 90 +148 197 205 +106 172 180 +90 156 164 +65 131 139 +24 82 98 +172 255 123 +213 139 156 +180 106 123 +148 74 90 +255 255 255 +16 16 16 diff --git a/graphics/pokemon/loudred/anim_front_gba.png b/graphics/pokemon/loudred/anim_front_gba.png new file mode 100644 index 0000000000..13fe39e53a Binary files /dev/null and b/graphics/pokemon/loudred/anim_front_gba.png differ diff --git a/graphics/pokemon/loudred/back_gba.png b/graphics/pokemon/loudred/back_gba.png new file mode 100644 index 0000000000..cb3d5d8161 Binary files /dev/null and b/graphics/pokemon/loudred/back_gba.png differ diff --git a/graphics/pokemon/loudred/icon_gba.png b/graphics/pokemon/loudred/icon_gba.png new file mode 100644 index 0000000000..cbb1859f8f Binary files /dev/null and b/graphics/pokemon/loudred/icon_gba.png differ diff --git a/graphics/pokemon/loudred/normal_gba.pal b/graphics/pokemon/loudred/normal_gba.pal new file mode 100644 index 0000000000..27c8ed1e79 --- /dev/null +++ b/graphics/pokemon/loudred/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +164 156 222 +123 115 180 +90 82 139 +57 57 106 +255 222 90 +213 164 24 +156 115 24 +255 115 82 +213 74 49 +156 57 24 +106 49 24 +205 205 205 +115 115 115 +0 0 0 diff --git a/graphics/pokemon/loudred/shiny_gba.pal b/graphics/pokemon/loudred/shiny_gba.pal new file mode 100644 index 0000000000..b905b269c6 --- /dev/null +++ b/graphics/pokemon/loudred/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 180 197 +189 131 164 +156 90 139 +131 65 106 +255 246 131 +255 197 49 +213 131 16 +255 115 82 +197 65 49 +156 41 24 +123 57 0 +238 205 213 +115 115 115 +49 49 65 diff --git a/graphics/pokemon/ludicolo/anim_front_gba.png b/graphics/pokemon/ludicolo/anim_front_gba.png new file mode 100644 index 0000000000..f649bebcb3 Binary files /dev/null and b/graphics/pokemon/ludicolo/anim_front_gba.png differ diff --git a/graphics/pokemon/ludicolo/back_gba.png b/graphics/pokemon/ludicolo/back_gba.png new file mode 100644 index 0000000000..2bdc96c392 Binary files /dev/null and b/graphics/pokemon/ludicolo/back_gba.png differ diff --git a/graphics/pokemon/ludicolo/footprint_gba.png b/graphics/pokemon/ludicolo/footprint_gba.png new file mode 100644 index 0000000000..e5aa759abc Binary files /dev/null and b/graphics/pokemon/ludicolo/footprint_gba.png differ diff --git a/graphics/pokemon/ludicolo/icon_gba.png b/graphics/pokemon/ludicolo/icon_gba.png new file mode 100644 index 0000000000..47490411b6 Binary files /dev/null and b/graphics/pokemon/ludicolo/icon_gba.png differ diff --git a/graphics/pokemon/ludicolo/normal_gba.pal b/graphics/pokemon/ludicolo/normal_gba.pal new file mode 100644 index 0000000000..6184143948 --- /dev/null +++ b/graphics/pokemon/ludicolo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 148 197 +74 106 74 +106 139 90 +156 197 98 +164 238 90 +205 255 139 +246 246 148 +213 213 123 +180 180 115 +255 255 255 +205 205 222 +197 131 115 +246 164 98 +139 106 82 +213 180 74 +41 41 41 diff --git a/graphics/pokemon/ludicolo/shiny_gba.pal b/graphics/pokemon/ludicolo/shiny_gba.pal new file mode 100644 index 0000000000..442eda95ee --- /dev/null +++ b/graphics/pokemon/ludicolo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 148 197 +49 115 106 +82 139 131 +90 156 148 +148 197 205 +164 222 222 +255 230 156 +255 213 106 +230 172 90 +255 255 255 +205 205 222 +197 131 115 +246 164 98 +164 106 82 +213 180 74 +41 41 41 diff --git a/graphics/pokemon/lugia/anim_front_gba.png b/graphics/pokemon/lugia/anim_front_gba.png new file mode 100644 index 0000000000..930d817329 Binary files /dev/null and b/graphics/pokemon/lugia/anim_front_gba.png differ diff --git a/graphics/pokemon/lugia/back_gba.png b/graphics/pokemon/lugia/back_gba.png new file mode 100644 index 0000000000..ece7def85c Binary files /dev/null and b/graphics/pokemon/lugia/back_gba.png differ diff --git a/graphics/pokemon/lugia/icon_gba.png b/graphics/pokemon/lugia/icon_gba.png new file mode 100644 index 0000000000..5e581ee193 Binary files /dev/null and b/graphics/pokemon/lugia/icon_gba.png differ diff --git a/graphics/pokemon/lugia/normal_gba.pal b/graphics/pokemon/lugia/normal_gba.pal new file mode 100644 index 0000000000..483157770a --- /dev/null +++ b/graphics/pokemon/lugia/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 197 +255 255 255 +222 222 230 +189 189 197 +156 156 180 +98 98 98 +123 164 246 +90 115 255 +0 98 189 +0 65 131 +238 90 0 +156 65 0 +156 156 180 +98 98 98 +16 16 16 +16 16 16 diff --git a/graphics/pokemon/lugia/shiny_gba.pal b/graphics/pokemon/lugia/shiny_gba.pal new file mode 100644 index 0000000000..42db26696e --- /dev/null +++ b/graphics/pokemon/lugia/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 197 +255 255 255 +213 230 255 +172 197 230 +131 156 197 +74 90 139 +255 139 172 +246 106 148 +205 74 123 +106 65 82 +238 90 0 +156 65 0 +246 139 139 +222 90 98 +148 32 41 +16 16 16 diff --git a/graphics/pokemon/lunala/icon.png b/graphics/pokemon/lunala/icon.png index 036b9b3719..55002ed924 100644 Binary files a/graphics/pokemon/lunala/icon.png and b/graphics/pokemon/lunala/icon.png differ diff --git a/graphics/pokemon/lunatone/anim_front_gba.png b/graphics/pokemon/lunatone/anim_front_gba.png new file mode 100644 index 0000000000..75b483b423 Binary files /dev/null and b/graphics/pokemon/lunatone/anim_front_gba.png differ diff --git a/graphics/pokemon/lunatone/back_gba.png b/graphics/pokemon/lunatone/back_gba.png new file mode 100644 index 0000000000..3f2247f8ea Binary files /dev/null and b/graphics/pokemon/lunatone/back_gba.png differ diff --git a/graphics/pokemon/lunatone/icon_gba.png b/graphics/pokemon/lunatone/icon_gba.png new file mode 100644 index 0000000000..27a42ae412 Binary files /dev/null and b/graphics/pokemon/lunatone/icon_gba.png differ diff --git a/graphics/pokemon/lunatone/normal_gba.pal b/graphics/pokemon/lunatone/normal_gba.pal new file mode 100644 index 0000000000..9a0a5885f9 --- /dev/null +++ b/graphics/pokemon/lunatone/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 238 164 +230 213 148 +213 197 131 +197 172 123 +172 156 106 +156 131 98 +139 115 82 +123 98 74 +98 74 57 +82 57 41 +238 90 90 +213 74 82 +189 57 74 +164 49 74 +16 16 16 diff --git a/graphics/pokemon/lunatone/shiny_gba.pal b/graphics/pokemon/lunatone/shiny_gba.pal new file mode 100644 index 0000000000..e0f5eb3082 --- /dev/null +++ b/graphics/pokemon/lunatone/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 238 164 +230 213 148 +213 197 131 +197 172 123 +172 156 106 +156 131 98 +139 115 82 +123 98 74 +98 74 57 +82 57 41 +98 148 255 +65 115 222 +32 82 189 +0 49 156 +16 16 16 diff --git a/graphics/pokemon/lurantis/icon.png b/graphics/pokemon/lurantis/icon.png index 893f651b03..f77d4e1e48 100644 Binary files a/graphics/pokemon/lurantis/icon.png and b/graphics/pokemon/lurantis/icon.png differ diff --git a/graphics/pokemon/luvdisc/anim_front_gba.png b/graphics/pokemon/luvdisc/anim_front_gba.png new file mode 100644 index 0000000000..bdd3e2f440 Binary files /dev/null and b/graphics/pokemon/luvdisc/anim_front_gba.png differ diff --git a/graphics/pokemon/luvdisc/back_gba.png b/graphics/pokemon/luvdisc/back_gba.png new file mode 100644 index 0000000000..04895aa259 Binary files /dev/null and b/graphics/pokemon/luvdisc/back_gba.png differ diff --git a/graphics/pokemon/luvdisc/icon_gba.png b/graphics/pokemon/luvdisc/icon_gba.png new file mode 100644 index 0000000000..980b734924 Binary files /dev/null and b/graphics/pokemon/luvdisc/icon_gba.png differ diff --git a/graphics/pokemon/luvdisc/normal_gba.pal b/graphics/pokemon/luvdisc/normal_gba.pal new file mode 100644 index 0000000000..c443e06337 --- /dev/null +++ b/graphics/pokemon/luvdisc/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 205 148 +115 57 49 +164 106 82 +255 255 255 +222 205 230 +230 156 131 +205 148 148 +255 164 123 +246 213 148 +90 98 189 +90 98 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/luvdisc/shiny_gba.pal b/graphics/pokemon/luvdisc/shiny_gba.pal new file mode 100644 index 0000000000..b1df53235b --- /dev/null +++ b/graphics/pokemon/luvdisc/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 205 148 +115 57 49 +164 106 82 +255 255 255 +222 205 230 +246 197 49 +246 172 16 +255 230 82 +255 255 131 +90 98 189 +90 98 139 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/lycanroc/dusk/icon.png b/graphics/pokemon/lycanroc/dusk/icon.png index 65d8394f4e..7b860c14ce 100644 Binary files a/graphics/pokemon/lycanroc/dusk/icon.png and b/graphics/pokemon/lycanroc/dusk/icon.png differ diff --git a/graphics/pokemon/lycanroc/icon.png b/graphics/pokemon/lycanroc/icon.png index 8ae4313374..50a6a2e9d8 100644 Binary files a/graphics/pokemon/lycanroc/icon.png and b/graphics/pokemon/lycanroc/icon.png differ diff --git a/graphics/pokemon/lycanroc/midnight/icon.png b/graphics/pokemon/lycanroc/midnight/icon.png index f6b98c949d..33bdba204e 100644 Binary files a/graphics/pokemon/lycanroc/midnight/icon.png and b/graphics/pokemon/lycanroc/midnight/icon.png differ diff --git a/graphics/pokemon/machamp/anim_front_gba.png b/graphics/pokemon/machamp/anim_front_gba.png new file mode 100644 index 0000000000..bf4b640c88 Binary files /dev/null and b/graphics/pokemon/machamp/anim_front_gba.png differ diff --git a/graphics/pokemon/machamp/back_gba.png b/graphics/pokemon/machamp/back_gba.png new file mode 100644 index 0000000000..98f6f961ba Binary files /dev/null and b/graphics/pokemon/machamp/back_gba.png differ diff --git a/graphics/pokemon/machamp/gigantamax/back.png b/graphics/pokemon/machamp/gmax/back.png similarity index 100% rename from graphics/pokemon/machamp/gigantamax/back.png rename to graphics/pokemon/machamp/gmax/back.png diff --git a/graphics/pokemon/machamp/gigantamax/front.png b/graphics/pokemon/machamp/gmax/front.png similarity index 100% rename from graphics/pokemon/machamp/gigantamax/front.png rename to graphics/pokemon/machamp/gmax/front.png diff --git a/graphics/pokemon/machamp/gigantamax/icon.png b/graphics/pokemon/machamp/gmax/icon.png similarity index 100% rename from graphics/pokemon/machamp/gigantamax/icon.png rename to graphics/pokemon/machamp/gmax/icon.png diff --git a/graphics/pokemon/machamp/gigantamax/normal.pal b/graphics/pokemon/machamp/gmax/normal.pal similarity index 100% rename from graphics/pokemon/machamp/gigantamax/normal.pal rename to graphics/pokemon/machamp/gmax/normal.pal diff --git a/graphics/pokemon/machamp/gigantamax/shiny.pal b/graphics/pokemon/machamp/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/machamp/gigantamax/shiny.pal rename to graphics/pokemon/machamp/gmax/shiny.pal diff --git a/graphics/pokemon/machamp/icon_gba.png b/graphics/pokemon/machamp/icon_gba.png new file mode 100644 index 0000000000..f803845ab9 Binary files /dev/null and b/graphics/pokemon/machamp/icon_gba.png differ diff --git a/graphics/pokemon/machamp/normal_gba.pal b/graphics/pokemon/machamp/normal_gba.pal new file mode 100644 index 0000000000..b3c4a313bc --- /dev/null +++ b/graphics/pokemon/machamp/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +115 98 0 +255 57 57 +156 0 0 +82 82 82 +255 0 255 +213 213 213 +205 246 213 +172 213 180 +98 164 98 +49 90 65 +16 16 16 diff --git a/graphics/pokemon/machamp/shiny_gba.pal b/graphics/pokemon/machamp/shiny_gba.pal new file mode 100644 index 0000000000..6e7cc549c2 --- /dev/null +++ b/graphics/pokemon/machamp/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +115 98 0 +255 57 57 +156 0 0 +82 82 82 +255 0 255 +213 213 213 +180 197 131 +139 156 90 +98 115 49 +57 74 8 +16 16 16 diff --git a/graphics/pokemon/machoke/anim_front_gba.png b/graphics/pokemon/machoke/anim_front_gba.png new file mode 100644 index 0000000000..45744a8713 Binary files /dev/null and b/graphics/pokemon/machoke/anim_front_gba.png differ diff --git a/graphics/pokemon/machoke/back_gba.png b/graphics/pokemon/machoke/back_gba.png new file mode 100644 index 0000000000..b3c84c77cd Binary files /dev/null and b/graphics/pokemon/machoke/back_gba.png differ diff --git a/graphics/pokemon/machoke/icon_gba.png b/graphics/pokemon/machoke/icon_gba.png new file mode 100644 index 0000000000..97d3a6bf0f Binary files /dev/null and b/graphics/pokemon/machoke/icon_gba.png differ diff --git a/graphics/pokemon/machoke/normal_gba.pal b/graphics/pokemon/machoke/normal_gba.pal new file mode 100644 index 0000000000..f07156ff09 --- /dev/null +++ b/graphics/pokemon/machoke/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +115 98 0 +255 0 255 +255 57 57 +197 0 0 +156 0 0 +213 213 213 +222 205 255 +189 172 222 +148 123 180 +90 65 123 +16 16 16 diff --git a/graphics/pokemon/machoke/shiny_gba.pal b/graphics/pokemon/machoke/shiny_gba.pal new file mode 100644 index 0000000000..5d5cb321ba --- /dev/null +++ b/graphics/pokemon/machoke/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +115 98 0 +255 0 255 +115 156 222 +74 115 180 +16 57 123 +222 230 172 +180 189 131 +139 148 90 +98 106 49 +57 65 8 +16 16 16 diff --git a/graphics/pokemon/machop/anim_front_gba.png b/graphics/pokemon/machop/anim_front_gba.png new file mode 100644 index 0000000000..91e4301149 Binary files /dev/null and b/graphics/pokemon/machop/anim_front_gba.png differ diff --git a/graphics/pokemon/machop/back_gba.png b/graphics/pokemon/machop/back_gba.png new file mode 100644 index 0000000000..6b0dda04ca Binary files /dev/null and b/graphics/pokemon/machop/back_gba.png differ diff --git a/graphics/pokemon/machop/icon_gba.png b/graphics/pokemon/machop/icon_gba.png new file mode 100644 index 0000000000..53773ea8c4 Binary files /dev/null and b/graphics/pokemon/machop/icon_gba.png differ diff --git a/graphics/pokemon/machop/normal_gba.pal b/graphics/pokemon/machop/normal_gba.pal new file mode 100644 index 0000000000..0232ea1d02 --- /dev/null +++ b/graphics/pokemon/machop/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +98 106 16 +255 0 255 +255 57 57 +197 0 0 +156 0 0 +213 213 213 +189 230 197 +156 197 164 +115 156 123 +32 82 49 +16 16 16 diff --git a/graphics/pokemon/machop/shiny_gba.pal b/graphics/pokemon/machop/shiny_gba.pal new file mode 100644 index 0000000000..2ceeb3c568 --- /dev/null +++ b/graphics/pokemon/machop/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +238 246 115 +197 205 74 +164 172 41 +98 106 16 +255 0 255 +255 57 57 +197 0 0 +156 0 0 +255 246 189 +222 205 148 +180 164 106 +139 123 65 +98 82 24 +16 16 16 diff --git a/graphics/pokemon/magby/anim_front_gba.png b/graphics/pokemon/magby/anim_front_gba.png new file mode 100644 index 0000000000..fa7c91f0b8 Binary files /dev/null and b/graphics/pokemon/magby/anim_front_gba.png differ diff --git a/graphics/pokemon/magby/back_gba.png b/graphics/pokemon/magby/back_gba.png new file mode 100644 index 0000000000..f05f62283e Binary files /dev/null and b/graphics/pokemon/magby/back_gba.png differ diff --git a/graphics/pokemon/magby/icon_gba.png b/graphics/pokemon/magby/icon_gba.png new file mode 100644 index 0000000000..574274003b Binary files /dev/null and b/graphics/pokemon/magby/icon_gba.png differ diff --git a/graphics/pokemon/magby/normal_gba.pal b/graphics/pokemon/magby/normal_gba.pal new file mode 100644 index 0000000000..42daceeb8d --- /dev/null +++ b/graphics/pokemon/magby/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 197 131 +255 123 98 +213 82 57 +148 49 32 +255 0 255 +255 255 180 +246 213 57 +213 172 0 +172 131 0 +255 0 255 +255 0 255 +197 197 197 +115 115 123 +16 16 16 diff --git a/graphics/pokemon/magby/shiny_gba.pal b/graphics/pokemon/magby/shiny_gba.pal new file mode 100644 index 0000000000..97a19115c4 --- /dev/null +++ b/graphics/pokemon/magby/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 246 115 +255 213 41 +230 131 49 +148 65 32 +255 0 255 +255 255 238 +255 246 148 +238 205 90 +197 123 65 +255 0 255 +255 0 255 +197 197 197 +115 115 123 +16 16 16 diff --git a/graphics/pokemon/magcargo/anim_front_gba.png b/graphics/pokemon/magcargo/anim_front_gba.png new file mode 100644 index 0000000000..5c2ddcddd1 Binary files /dev/null and b/graphics/pokemon/magcargo/anim_front_gba.png differ diff --git a/graphics/pokemon/magcargo/back_gba.png b/graphics/pokemon/magcargo/back_gba.png new file mode 100644 index 0000000000..8d2221f0db Binary files /dev/null and b/graphics/pokemon/magcargo/back_gba.png differ diff --git a/graphics/pokemon/magcargo/icon_gba.png b/graphics/pokemon/magcargo/icon_gba.png new file mode 100644 index 0000000000..46cbb8cb58 Binary files /dev/null and b/graphics/pokemon/magcargo/icon_gba.png differ diff --git a/graphics/pokemon/magcargo/normal_gba.pal b/graphics/pokemon/magcargo/normal_gba.pal new file mode 100644 index 0000000000..71f6dce5bf --- /dev/null +++ b/graphics/pokemon/magcargo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 189 106 +255 131 74 +222 90 32 +148 32 0 +255 213 115 +255 238 156 +255 213 115 +255 197 0 +164 106 90 +172 172 172 +131 131 131 +98 98 98 +65 65 65 +16 16 16 diff --git a/graphics/pokemon/magcargo/shiny_gba.pal b/graphics/pokemon/magcargo/shiny_gba.pal new file mode 100644 index 0000000000..ff0c9dd40f --- /dev/null +++ b/graphics/pokemon/magcargo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 180 238 +205 148 197 +172 98 172 +106 65 139 +255 180 238 +255 230 255 +255 180 238 +255 180 238 +139 74 106 +213 98 74 +156 82 57 +106 49 41 +74 41 16 +16 16 16 diff --git a/graphics/pokemon/magearna/icon.png b/graphics/pokemon/magearna/icon.png index cfb4c06647..6a421d6ada 100644 Binary files a/graphics/pokemon/magearna/icon.png and b/graphics/pokemon/magearna/icon.png differ diff --git a/graphics/pokemon/magearna/original_color/icon.png b/graphics/pokemon/magearna/original_color/icon.png index 5e97b3ccb3..0f1b1e9052 100644 Binary files a/graphics/pokemon/magearna/original_color/icon.png and b/graphics/pokemon/magearna/original_color/icon.png differ diff --git a/graphics/pokemon/magikarp/anim_front_gba.png b/graphics/pokemon/magikarp/anim_front_gba.png new file mode 100644 index 0000000000..4b4f31f72b Binary files /dev/null and b/graphics/pokemon/magikarp/anim_front_gba.png differ diff --git a/graphics/pokemon/magikarp/back_gba.png b/graphics/pokemon/magikarp/back_gba.png new file mode 100644 index 0000000000..66e874bb96 Binary files /dev/null and b/graphics/pokemon/magikarp/back_gba.png differ diff --git a/graphics/pokemon/magikarp/icon_gba.png b/graphics/pokemon/magikarp/icon_gba.png new file mode 100644 index 0000000000..0048845825 Binary files /dev/null and b/graphics/pokemon/magikarp/icon_gba.png differ diff --git a/graphics/pokemon/magikarp/normal_gba.pal b/graphics/pokemon/magikarp/normal_gba.pal new file mode 100644 index 0000000000..14b625cb9f --- /dev/null +++ b/graphics/pokemon/magikarp/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 230 +172 172 189 +115 115 139 +16 16 16 +238 255 131 +222 197 90 +131 106 16 +255 180 148 +255 123 90 +222 24 0 +255 172 115 +255 106 32 +222 24 0 +148 16 0 diff --git a/graphics/pokemon/magikarp/shiny_gba.pal b/graphics/pokemon/magikarp/shiny_gba.pal new file mode 100644 index 0000000000..d6eec780af --- /dev/null +++ b/graphics/pokemon/magikarp/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 230 +172 172 189 +115 115 139 +16 16 16 +238 255 131 +222 197 90 +131 106 16 +255 255 172 +255 230 49 +246 189 82 +255 255 98 +255 222 32 +230 164 41 +156 82 41 diff --git a/graphics/pokemon/magmar/anim_front_gba.png b/graphics/pokemon/magmar/anim_front_gba.png new file mode 100644 index 0000000000..3562bda299 Binary files /dev/null and b/graphics/pokemon/magmar/anim_front_gba.png differ diff --git a/graphics/pokemon/magmar/back_gba.png b/graphics/pokemon/magmar/back_gba.png new file mode 100644 index 0000000000..6aba734383 Binary files /dev/null and b/graphics/pokemon/magmar/back_gba.png differ diff --git a/graphics/pokemon/magmar/icon_gba.png b/graphics/pokemon/magmar/icon_gba.png new file mode 100644 index 0000000000..af5ece4f7b Binary files /dev/null and b/graphics/pokemon/magmar/icon_gba.png differ diff --git a/graphics/pokemon/magmar/normal_gba.pal b/graphics/pokemon/magmar/normal_gba.pal new file mode 100644 index 0000000000..d94c6d7603 --- /dev/null +++ b/graphics/pokemon/magmar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +106 106 106 +41 41 41 +255 0 255 +255 0 255 +255 246 106 +255 213 0 +222 164 32 +156 90 16 +255 164 65 +255 115 16 +238 49 0 +164 16 0 +255 0 255 diff --git a/graphics/pokemon/magmar/shiny_gba.pal b/graphics/pokemon/magmar/shiny_gba.pal new file mode 100644 index 0000000000..f4da957cb6 --- /dev/null +++ b/graphics/pokemon/magmar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +106 106 106 +41 41 41 +255 0 255 +255 0 255 +255 238 255 +255 197 213 +205 156 172 +123 74 90 +255 164 172 +238 123 131 +213 82 90 +164 41 49 +255 0 255 diff --git a/graphics/pokemon/magnemite/anim_front_gba.png b/graphics/pokemon/magnemite/anim_front_gba.png new file mode 100644 index 0000000000..60081cacb8 Binary files /dev/null and b/graphics/pokemon/magnemite/anim_front_gba.png differ diff --git a/graphics/pokemon/magnemite/back_gba.png b/graphics/pokemon/magnemite/back_gba.png new file mode 100644 index 0000000000..c1769ec513 Binary files /dev/null and b/graphics/pokemon/magnemite/back_gba.png differ diff --git a/graphics/pokemon/magnemite/icon_gba.png b/graphics/pokemon/magnemite/icon_gba.png new file mode 100644 index 0000000000..ba9561d21c Binary files /dev/null and b/graphics/pokemon/magnemite/icon_gba.png differ diff --git a/graphics/pokemon/magnemite/normal_gba.pal b/graphics/pokemon/magnemite/normal_gba.pal new file mode 100644 index 0000000000..4ece43e6e4 --- /dev/null +++ b/graphics/pokemon/magnemite/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +255 139 74 +238 24 0 +82 205 246 +41 131 172 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +213 246 222 +180 213 189 +148 189 156 +90 131 98 +16 16 16 diff --git a/graphics/pokemon/magnemite/shiny_gba.pal b/graphics/pokemon/magnemite/shiny_gba.pal new file mode 100644 index 0000000000..50bb00b888 --- /dev/null +++ b/graphics/pokemon/magnemite/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +82 74 74 +57 49 49 +82 74 74 +57 49 49 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +238 238 189 +197 197 148 +156 156 106 +115 115 65 +16 16 16 diff --git a/graphics/pokemon/magneton/anim_front_gba.png b/graphics/pokemon/magneton/anim_front_gba.png new file mode 100644 index 0000000000..40e95aaf4a Binary files /dev/null and b/graphics/pokemon/magneton/anim_front_gba.png differ diff --git a/graphics/pokemon/magneton/back_gba.png b/graphics/pokemon/magneton/back_gba.png new file mode 100644 index 0000000000..5fc357dfc9 Binary files /dev/null and b/graphics/pokemon/magneton/back_gba.png differ diff --git a/graphics/pokemon/magneton/icon_gba.png b/graphics/pokemon/magneton/icon_gba.png new file mode 100644 index 0000000000..91a25f3ce3 Binary files /dev/null and b/graphics/pokemon/magneton/icon_gba.png differ diff --git a/graphics/pokemon/magneton/normal_gba.pal b/graphics/pokemon/magneton/normal_gba.pal new file mode 100644 index 0000000000..4ece43e6e4 --- /dev/null +++ b/graphics/pokemon/magneton/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +255 139 74 +238 24 0 +82 205 246 +41 131 172 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +213 246 222 +180 213 189 +148 189 156 +90 131 98 +16 16 16 diff --git a/graphics/pokemon/magneton/shiny_gba.pal b/graphics/pokemon/magneton/shiny_gba.pal new file mode 100644 index 0000000000..1777fbd2aa --- /dev/null +++ b/graphics/pokemon/magneton/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 213 213 +106 98 98 +57 49 49 +106 98 98 +57 49 49 +180 180 180 +139 139 139 +82 74 74 +57 49 49 +255 246 230 +238 222 197 +197 180 156 +156 139 115 +16 16 16 diff --git a/graphics/pokemon/makuhita/anim_front_gba.png b/graphics/pokemon/makuhita/anim_front_gba.png new file mode 100644 index 0000000000..fae14eb6ae Binary files /dev/null and b/graphics/pokemon/makuhita/anim_front_gba.png differ diff --git a/graphics/pokemon/makuhita/back_gba.png b/graphics/pokemon/makuhita/back_gba.png new file mode 100644 index 0000000000..45423f822e Binary files /dev/null and b/graphics/pokemon/makuhita/back_gba.png differ diff --git a/graphics/pokemon/makuhita/icon_gba.png b/graphics/pokemon/makuhita/icon_gba.png new file mode 100644 index 0000000000..d64f2c4181 Binary files /dev/null and b/graphics/pokemon/makuhita/icon_gba.png differ diff --git a/graphics/pokemon/makuhita/normal_gba.pal b/graphics/pokemon/makuhita/normal_gba.pal new file mode 100644 index 0000000000..7fc578bb11 --- /dev/null +++ b/graphics/pokemon/makuhita/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +156 156 164 +131 131 148 +90 90 115 +49 57 90 +255 213 82 +238 189 49 +205 156 82 +255 90 74 +205 82 65 +156 82 65 +0 0 0 +255 230 123 +123 90 57 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/makuhita/shiny_gba.pal b/graphics/pokemon/makuhita/shiny_gba.pal new file mode 100644 index 0000000000..2f3aa75fc8 --- /dev/null +++ b/graphics/pokemon/makuhita/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +255 90 74 +205 82 65 +156 82 65 +123 49 32 +255 230 156 +255 205 98 +230 164 82 +255 90 74 +205 82 65 +156 82 65 +0 0 0 +255 246 189 +123 90 57 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/manectric/anim_front_gba.png b/graphics/pokemon/manectric/anim_front_gba.png new file mode 100644 index 0000000000..e91cf88500 Binary files /dev/null and b/graphics/pokemon/manectric/anim_front_gba.png differ diff --git a/graphics/pokemon/manectric/back_gba.png b/graphics/pokemon/manectric/back_gba.png new file mode 100644 index 0000000000..9373757a05 Binary files /dev/null and b/graphics/pokemon/manectric/back_gba.png differ diff --git a/graphics/pokemon/manectric/icon_gba.png b/graphics/pokemon/manectric/icon_gba.png new file mode 100644 index 0000000000..0b8fe933d3 Binary files /dev/null and b/graphics/pokemon/manectric/icon_gba.png differ diff --git a/graphics/pokemon/manectric/normal_gba.pal b/graphics/pokemon/manectric/normal_gba.pal new file mode 100644 index 0000000000..0067c876b1 --- /dev/null +++ b/graphics/pokemon/manectric/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +57 65 74 +82 90 131 +115 131 197 +139 172 238 +255 255 74 +222 230 106 +180 197 106 +139 123 65 +172 32 16 +238 82 106 +0 0 0 +0 0 0 +255 255 255 +197 197 230 +24 24 24 diff --git a/graphics/pokemon/manectric/shiny_gba.pal b/graphics/pokemon/manectric/shiny_gba.pal new file mode 100644 index 0000000000..db1f6ea185 --- /dev/null +++ b/graphics/pokemon/manectric/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +41 41 57 +57 65 82 +115 106 123 +148 139 156 +255 222 131 +230 197 98 +197 156 90 +164 123 57 +82 106 197 +238 82 106 +0 0 0 +0 0 0 +255 255 255 +197 197 230 +24 24 24 diff --git a/graphics/pokemon/mankey/anim_front_gba.png b/graphics/pokemon/mankey/anim_front_gba.png new file mode 100644 index 0000000000..b630920f65 Binary files /dev/null and b/graphics/pokemon/mankey/anim_front_gba.png differ diff --git a/graphics/pokemon/mankey/back_gba.png b/graphics/pokemon/mankey/back_gba.png new file mode 100644 index 0000000000..8b0751a9e6 Binary files /dev/null and b/graphics/pokemon/mankey/back_gba.png differ diff --git a/graphics/pokemon/mankey/icon_gba.png b/graphics/pokemon/mankey/icon_gba.png new file mode 100644 index 0000000000..3692211263 Binary files /dev/null and b/graphics/pokemon/mankey/icon_gba.png differ diff --git a/graphics/pokemon/mankey/normal_gba.pal b/graphics/pokemon/mankey/normal_gba.pal new file mode 100644 index 0000000000..bc405617a0 --- /dev/null +++ b/graphics/pokemon/mankey/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +255 230 189 +238 180 139 +230 139 98 +189 74 49 +16 16 16 +255 213 131 +222 172 74 +180 131 32 +115 65 0 +246 238 164 +238 213 131 +197 172 82 +139 106 16 diff --git a/graphics/pokemon/mankey/shiny_gba.pal b/graphics/pokemon/mankey/shiny_gba.pal new file mode 100644 index 0000000000..55703c37b0 --- /dev/null +++ b/graphics/pokemon/mankey/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +255 230 189 +238 180 139 +230 139 98 +189 74 49 +16 16 16 +238 197 139 +197 156 98 +156 115 57 +98 57 0 +213 230 148 +180 197 115 +139 156 74 +82 98 16 diff --git a/graphics/pokemon/mantine/anim_front_gba.png b/graphics/pokemon/mantine/anim_front_gba.png new file mode 100644 index 0000000000..d310da6e57 Binary files /dev/null and b/graphics/pokemon/mantine/anim_front_gba.png differ diff --git a/graphics/pokemon/mantine/back_gba.png b/graphics/pokemon/mantine/back_gba.png new file mode 100644 index 0000000000..186e90e1e2 Binary files /dev/null and b/graphics/pokemon/mantine/back_gba.png differ diff --git a/graphics/pokemon/mantine/icon_gba.png b/graphics/pokemon/mantine/icon_gba.png new file mode 100644 index 0000000000..cf0bb22236 Binary files /dev/null and b/graphics/pokemon/mantine/icon_gba.png differ diff --git a/graphics/pokemon/mantine/normal_gba.pal b/graphics/pokemon/mantine/normal_gba.pal new file mode 100644 index 0000000000..36e0777c41 --- /dev/null +++ b/graphics/pokemon/mantine/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +148 164 213 +90 106 139 +41 65 98 +24 41 74 +255 0 255 +205 230 255 +180 205 255 +156 164 197 +246 230 246 +230 205 230 +213 189 205 +164 148 164 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/mantine/shiny_gba.pal b/graphics/pokemon/mantine/shiny_gba.pal new file mode 100644 index 0000000000..5427dc275c --- /dev/null +++ b/graphics/pokemon/mantine/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +164 205 238 +123 156 238 +74 98 197 +16 49 148 +255 0 255 +205 230 255 +180 205 255 +156 189 213 +230 246 255 +205 230 255 +172 205 238 +139 164 205 +74 82 115 +16 16 16 diff --git a/graphics/pokemon/mareanie/icon.png b/graphics/pokemon/mareanie/icon.png index 7b7dc44fb2..7464483cfe 100644 Binary files a/graphics/pokemon/mareanie/icon.png and b/graphics/pokemon/mareanie/icon.png differ diff --git a/graphics/pokemon/mareep/anim_front_gba.png b/graphics/pokemon/mareep/anim_front_gba.png new file mode 100644 index 0000000000..9435ca8299 Binary files /dev/null and b/graphics/pokemon/mareep/anim_front_gba.png differ diff --git a/graphics/pokemon/mareep/back_gba.png b/graphics/pokemon/mareep/back_gba.png new file mode 100644 index 0000000000..601d13c8da Binary files /dev/null and b/graphics/pokemon/mareep/back_gba.png differ diff --git a/graphics/pokemon/mareep/icon_gba.png b/graphics/pokemon/mareep/icon_gba.png new file mode 100644 index 0000000000..2bd5335b65 Binary files /dev/null and b/graphics/pokemon/mareep/icon_gba.png differ diff --git a/graphics/pokemon/mareep/normal_gba.pal b/graphics/pokemon/mareep/normal_gba.pal new file mode 100644 index 0000000000..bd24bfe72b --- /dev/null +++ b/graphics/pokemon/mareep/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 238 131 +230 197 98 +197 148 41 +139 90 24 +74 180 230 +32 148 189 +0 74 148 +0 32 106 +255 222 0 +230 172 0 +180 123 0 +164 164 164 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/mareep/shiny_gba.pal b/graphics/pokemon/mareep/shiny_gba.pal new file mode 100644 index 0000000000..587f7493ff --- /dev/null +++ b/graphics/pokemon/mareep/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 205 +238 148 180 +222 90 131 +172 65 90 +74 180 230 +32 148 189 +0 74 148 +0 32 106 +255 222 0 +230 172 0 +180 123 0 +164 164 164 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/marill/anim_front_gba.png b/graphics/pokemon/marill/anim_front_gba.png new file mode 100644 index 0000000000..51e0a14443 Binary files /dev/null and b/graphics/pokemon/marill/anim_front_gba.png differ diff --git a/graphics/pokemon/marill/back_gba.png b/graphics/pokemon/marill/back_gba.png new file mode 100644 index 0000000000..49bc29d97e Binary files /dev/null and b/graphics/pokemon/marill/back_gba.png differ diff --git a/graphics/pokemon/marill/icon_gba.png b/graphics/pokemon/marill/icon_gba.png new file mode 100644 index 0000000000..d91f9da86a Binary files /dev/null and b/graphics/pokemon/marill/icon_gba.png differ diff --git a/graphics/pokemon/marill/normal_gba.pal b/graphics/pokemon/marill/normal_gba.pal new file mode 100644 index 0000000000..77ed6b4b6b --- /dev/null +++ b/graphics/pokemon/marill/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 230 222 +156 156 156 +98 98 98 +16 16 16 +156 189 255 +106 148 255 +74 115 255 +49 65 90 +57 90 189 +255 0 255 +246 131 0 +213 74 0 +148 24 0 +255 0 255 diff --git a/graphics/pokemon/marill/shiny_gba.pal b/graphics/pokemon/marill/shiny_gba.pal new file mode 100644 index 0000000000..7bd492c65a --- /dev/null +++ b/graphics/pokemon/marill/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 230 222 +156 156 156 +98 98 98 +16 16 16 +156 255 156 +123 230 131 +90 205 106 +49 123 65 +49 164 74 +255 0 255 +255 115 148 +213 74 115 +164 41 57 +255 0 255 diff --git a/graphics/pokemon/marowak/alolan/back.png b/graphics/pokemon/marowak/alola/back.png similarity index 100% rename from graphics/pokemon/marowak/alolan/back.png rename to graphics/pokemon/marowak/alola/back.png diff --git a/graphics/pokemon/marowak/alolan/front.png b/graphics/pokemon/marowak/alola/front.png similarity index 100% rename from graphics/pokemon/marowak/alolan/front.png rename to graphics/pokemon/marowak/alola/front.png diff --git a/graphics/pokemon/marowak/alola/icon.png b/graphics/pokemon/marowak/alola/icon.png new file mode 100644 index 0000000000..d434c92fb7 Binary files /dev/null and b/graphics/pokemon/marowak/alola/icon.png differ diff --git a/graphics/pokemon/marowak/alolan/normal.pal b/graphics/pokemon/marowak/alola/normal.pal similarity index 100% rename from graphics/pokemon/marowak/alolan/normal.pal rename to graphics/pokemon/marowak/alola/normal.pal diff --git a/graphics/pokemon/marowak/alolan/overworld.png b/graphics/pokemon/marowak/alola/overworld.png similarity index 100% rename from graphics/pokemon/marowak/alolan/overworld.png rename to graphics/pokemon/marowak/alola/overworld.png diff --git a/graphics/pokemon/marowak/alolan/overworld_normal.pal b/graphics/pokemon/marowak/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/marowak/alolan/overworld_normal.pal rename to graphics/pokemon/marowak/alola/overworld_normal.pal diff --git a/graphics/pokemon/marowak/alolan/overworld_shiny.pal b/graphics/pokemon/marowak/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/marowak/alolan/overworld_shiny.pal rename to graphics/pokemon/marowak/alola/overworld_shiny.pal diff --git a/graphics/pokemon/marowak/alolan/shiny.pal b/graphics/pokemon/marowak/alola/shiny.pal similarity index 100% rename from graphics/pokemon/marowak/alolan/shiny.pal rename to graphics/pokemon/marowak/alola/shiny.pal diff --git a/graphics/pokemon/marowak/alolan/icon.png b/graphics/pokemon/marowak/alolan/icon.png deleted file mode 100644 index 3ea2a868c3..0000000000 Binary files a/graphics/pokemon/marowak/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/marowak/anim_front_gba.png b/graphics/pokemon/marowak/anim_front_gba.png new file mode 100644 index 0000000000..8d15403c8e Binary files /dev/null and b/graphics/pokemon/marowak/anim_front_gba.png differ diff --git a/graphics/pokemon/marowak/back_gba.png b/graphics/pokemon/marowak/back_gba.png new file mode 100644 index 0000000000..8510885d59 Binary files /dev/null and b/graphics/pokemon/marowak/back_gba.png differ diff --git a/graphics/pokemon/marowak/icon_gba.png b/graphics/pokemon/marowak/icon_gba.png new file mode 100644 index 0000000000..7efbb17797 Binary files /dev/null and b/graphics/pokemon/marowak/icon_gba.png differ diff --git a/graphics/pokemon/marowak/normal_gba.pal b/graphics/pokemon/marowak/normal_gba.pal new file mode 100644 index 0000000000..7a70bffe35 --- /dev/null +++ b/graphics/pokemon/marowak/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +230 230 213 +197 197 172 +139 139 106 +82 82 57 +16 16 16 +197 57 16 +255 222 180 +246 197 148 +230 148 82 +189 115 57 +222 189 106 +197 156 74 +148 106 49 +106 49 16 diff --git a/graphics/pokemon/marowak/shiny_gba.pal b/graphics/pokemon/marowak/shiny_gba.pal new file mode 100644 index 0000000000..569ccc0820 --- /dev/null +++ b/graphics/pokemon/marowak/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +230 230 213 +197 197 172 +139 139 106 +82 82 57 +16 16 16 +197 57 16 +255 222 180 +246 197 148 +230 148 82 +189 115 57 +213 222 139 +172 180 98 +131 139 57 +65 74 0 diff --git a/graphics/pokemon/marshadow/icon.png b/graphics/pokemon/marshadow/icon.png index e7fb5674d3..b8d05ba299 100644 Binary files a/graphics/pokemon/marshadow/icon.png and b/graphics/pokemon/marshadow/icon.png differ diff --git a/graphics/pokemon/marshtomp/anim_front_gba.png b/graphics/pokemon/marshtomp/anim_front_gba.png new file mode 100644 index 0000000000..d06bc373e9 Binary files /dev/null and b/graphics/pokemon/marshtomp/anim_front_gba.png differ diff --git a/graphics/pokemon/marshtomp/back_gba.png b/graphics/pokemon/marshtomp/back_gba.png new file mode 100644 index 0000000000..6c530aaee8 Binary files /dev/null and b/graphics/pokemon/marshtomp/back_gba.png differ diff --git a/graphics/pokemon/marshtomp/icon_gba.png b/graphics/pokemon/marshtomp/icon_gba.png new file mode 100644 index 0000000000..170e828512 Binary files /dev/null and b/graphics/pokemon/marshtomp/icon_gba.png differ diff --git a/graphics/pokemon/marshtomp/normal_gba.pal b/graphics/pokemon/marshtomp/normal_gba.pal new file mode 100644 index 0000000000..b21cb52db2 --- /dev/null +++ b/graphics/pokemon/marshtomp/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +222 222 255 +197 197 238 +172 172 213 +131 131 156 +255 164 82 +246 123 57 +205 98 32 +164 123 90 +255 255 255 +172 238 238 +148 213 213 +106 189 189 +98 148 156 +90 90 115 +16 16 16 diff --git a/graphics/pokemon/marshtomp/shiny_gba.pal b/graphics/pokemon/marshtomp/shiny_gba.pal new file mode 100644 index 0000000000..f47e2751df --- /dev/null +++ b/graphics/pokemon/marshtomp/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 238 255 +213 213 238 +189 189 213 +148 148 156 +255 230 156 +255 180 65 +205 131 24 +164 123 90 +255 255 255 +246 205 246 +230 172 246 +205 123 230 +156 106 172 +106 49 123 +16 16 16 diff --git a/graphics/pokemon/maschiff/back.png b/graphics/pokemon/maschiff/back.png index 6a6a45eb46..4891b2371a 100644 Binary files a/graphics/pokemon/maschiff/back.png and b/graphics/pokemon/maschiff/back.png differ diff --git a/graphics/pokemon/maschiff/front.png b/graphics/pokemon/maschiff/front.png index 05f724ec6d..c06b23028e 100644 Binary files a/graphics/pokemon/maschiff/front.png and b/graphics/pokemon/maschiff/front.png differ diff --git a/graphics/pokemon/maschiff/normal.pal b/graphics/pokemon/maschiff/normal.pal index 3c397173c3..7de2cd0927 100644 --- a/graphics/pokemon/maschiff/normal.pal +++ b/graphics/pokemon/maschiff/normal.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -255 255 255 -255 193 11 -180 178 180 -238 113 24 -255 157 90 -213 141 8 -106 36 32 -98 97 98 -213 117 106 -90 64 82 -172 85 74 -8 12 8 -65 44 57 -238 170 148 -164 97 49 +153 211 165 +36 30 33 +57 45 53 +71 37 41 +86 67 79 +121 117 100 +141 86 46 +199 121 35 +251 111 49 +129 67 75 +195 115 113 +253 201 67 +16 16 16 +253 242 223 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/maschiff/shiny.pal b/graphics/pokemon/maschiff/shiny.pal index 23f5bf0a74..cb13ff86a9 100644 --- a/graphics/pokemon/maschiff/shiny.pal +++ b/graphics/pokemon/maschiff/shiny.pal @@ -1,19 +1,19 @@ JASC-PAL 0100 16 -156 210 164 -255 255 255 -120 98 112 -180 178 180 -238 113 24 -255 157 90 -81 65 73 -92 77 102 -98 97 98 -173 157 191 -90 64 82 -129 114 142 -8 12 8 -65 44 57 -201 195 216 -63 47 59 +153 211 165 +36 30 33 +57 45 53 +62 55 70 +86 67 79 +121 117 100 +63 50 58 +87 70 82 +251 111 49 +102 92 114 +171 139 201 +119 96 110 +16 16 16 +253 242 223 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/masquerain/anim_front_gba.png b/graphics/pokemon/masquerain/anim_front_gba.png new file mode 100644 index 0000000000..7853b70e80 Binary files /dev/null and b/graphics/pokemon/masquerain/anim_front_gba.png differ diff --git a/graphics/pokemon/masquerain/back_gba.png b/graphics/pokemon/masquerain/back_gba.png new file mode 100644 index 0000000000..0092c2ca65 Binary files /dev/null and b/graphics/pokemon/masquerain/back_gba.png differ diff --git a/graphics/pokemon/masquerain/icon_gba.png b/graphics/pokemon/masquerain/icon_gba.png new file mode 100644 index 0000000000..5487241e2c Binary files /dev/null and b/graphics/pokemon/masquerain/icon_gba.png differ diff --git a/graphics/pokemon/masquerain/normal_gba.pal b/graphics/pokemon/masquerain/normal_gba.pal new file mode 100644 index 0000000000..54690d35b8 --- /dev/null +++ b/graphics/pokemon/masquerain/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +65 65 90 +148 164 197 +180 205 238 +197 238 238 +106 74 32 +205 139 49 +255 156 74 +222 222 205 +255 255 255 +90 16 8 +131 65 32 +172 16 8 +222 57 32 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/masquerain/shiny_gba.pal b/graphics/pokemon/masquerain/shiny_gba.pal new file mode 100644 index 0000000000..09ed3ccf59 --- /dev/null +++ b/graphics/pokemon/masquerain/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +49 123 74 +98 180 98 +148 230 148 +205 255 172 +82 74 32 +106 106 49 +164 148 115 +222 222 41 +255 255 41 +90 16 8 +131 65 32 +172 16 8 +222 57 32 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/mawile/anim_front_gba.png b/graphics/pokemon/mawile/anim_front_gba.png new file mode 100644 index 0000000000..5626120869 Binary files /dev/null and b/graphics/pokemon/mawile/anim_front_gba.png differ diff --git a/graphics/pokemon/mawile/back_gba.png b/graphics/pokemon/mawile/back_gba.png new file mode 100644 index 0000000000..5bbf44ca9c Binary files /dev/null and b/graphics/pokemon/mawile/back_gba.png differ diff --git a/graphics/pokemon/mawile/footprint_gba.png b/graphics/pokemon/mawile/footprint_gba.png new file mode 100644 index 0000000000..8eeae6a81e Binary files /dev/null and b/graphics/pokemon/mawile/footprint_gba.png differ diff --git a/graphics/pokemon/mawile/icon_gba.png b/graphics/pokemon/mawile/icon_gba.png new file mode 100644 index 0000000000..cf7363277c Binary files /dev/null and b/graphics/pokemon/mawile/icon_gba.png differ diff --git a/graphics/pokemon/mawile/normal_gba.pal b/graphics/pokemon/mawile/normal_gba.pal new file mode 100644 index 0000000000..ebb40809c5 --- /dev/null +++ b/graphics/pokemon/mawile/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +205 205 205 +213 131 172 +189 98 139 +156 74 106 +0 0 0 +255 222 139 +255 197 90 +213 156 74 +156 123 57 +0 0 0 +197 197 197 +164 164 164 +131 131 131 +82 82 82 diff --git a/graphics/pokemon/mawile/shiny_gba.pal b/graphics/pokemon/mawile/shiny_gba.pal new file mode 100644 index 0000000000..ceadfc93ea --- /dev/null +++ b/graphics/pokemon/mawile/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +205 205 205 +255 123 82 +222 98 49 +180 65 49 +0 0 0 +255 222 139 +255 197 90 +213 156 74 +156 123 57 +0 0 0 +238 156 197 +205 123 164 +164 90 131 +131 49 90 diff --git a/graphics/pokemon/medicham/anim_front_gba.png b/graphics/pokemon/medicham/anim_front_gba.png new file mode 100644 index 0000000000..7dc0762c41 Binary files /dev/null and b/graphics/pokemon/medicham/anim_front_gba.png differ diff --git a/graphics/pokemon/medicham/back_gba.png b/graphics/pokemon/medicham/back_gba.png new file mode 100644 index 0000000000..f4f58839b4 Binary files /dev/null and b/graphics/pokemon/medicham/back_gba.png differ diff --git a/graphics/pokemon/medicham/icon_gba.png b/graphics/pokemon/medicham/icon_gba.png new file mode 100644 index 0000000000..ed287fb28a Binary files /dev/null and b/graphics/pokemon/medicham/icon_gba.png differ diff --git a/graphics/pokemon/medicham/normal_gba.pal b/graphics/pokemon/medicham/normal_gba.pal new file mode 100644 index 0000000000..ffc38ab86e --- /dev/null +++ b/graphics/pokemon/medicham/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 213 139 +255 255 255 +255 156 148 +230 123 123 +205 90 82 +123 82 74 +0 0 0 +164 139 106 +164 164 164 +131 131 131 +255 230 131 +255 205 90 +238 238 213 +213 213 197 +189 189 172 +139 139 123 diff --git a/graphics/pokemon/medicham/shiny_gba.pal b/graphics/pokemon/medicham/shiny_gba.pal new file mode 100644 index 0000000000..9a1d82aa73 --- /dev/null +++ b/graphics/pokemon/medicham/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 213 139 +255 255 255 +139 189 246 +98 148 205 +74 115 172 +74 90 115 +0 0 0 +164 139 106 +164 164 164 +131 131 131 +255 230 131 +255 205 90 +238 205 164 +230 172 139 +205 148 115 +123 90 74 diff --git a/graphics/pokemon/meditite/anim_front_gba.png b/graphics/pokemon/meditite/anim_front_gba.png new file mode 100644 index 0000000000..cd9516ad2d Binary files /dev/null and b/graphics/pokemon/meditite/anim_front_gba.png differ diff --git a/graphics/pokemon/meditite/back_gba.png b/graphics/pokemon/meditite/back_gba.png new file mode 100644 index 0000000000..8c00d8f6d4 Binary files /dev/null and b/graphics/pokemon/meditite/back_gba.png differ diff --git a/graphics/pokemon/meditite/icon_gba.png b/graphics/pokemon/meditite/icon_gba.png new file mode 100644 index 0000000000..05a02f0777 Binary files /dev/null and b/graphics/pokemon/meditite/icon_gba.png differ diff --git a/graphics/pokemon/meditite/normal_gba.pal b/graphics/pokemon/meditite/normal_gba.pal new file mode 100644 index 0000000000..a60729a6ad --- /dev/null +++ b/graphics/pokemon/meditite/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 189 139 +255 255 255 +238 230 230 +205 197 197 +148 123 123 +255 131 106 +230 90 57 +180 65 49 +180 57 90 +115 41 65 +0 0 0 +197 222 255 +139 189 246 +98 148 205 +74 115 172 +74 90 115 diff --git a/graphics/pokemon/meditite/shiny_gba.pal b/graphics/pokemon/meditite/shiny_gba.pal new file mode 100644 index 0000000000..de7c38f5ab --- /dev/null +++ b/graphics/pokemon/meditite/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 189 139 +255 255 255 +246 230 238 +213 189 205 +164 115 123 +255 131 106 +255 139 57 +180 65 49 +180 57 90 +115 41 65 +0 0 0 +255 131 106 +230 90 57 +180 65 49 +180 57 90 +115 41 65 diff --git a/graphics/pokemon/meganium/anim_front_gba.png b/graphics/pokemon/meganium/anim_front_gba.png new file mode 100644 index 0000000000..9317b389ac Binary files /dev/null and b/graphics/pokemon/meganium/anim_front_gba.png differ diff --git a/graphics/pokemon/meganium/back_gba.png b/graphics/pokemon/meganium/back_gba.png new file mode 100644 index 0000000000..be01710af5 Binary files /dev/null and b/graphics/pokemon/meganium/back_gba.png differ diff --git a/graphics/pokemon/meganium/icon_gba.png b/graphics/pokemon/meganium/icon_gba.png new file mode 100644 index 0000000000..ce45922724 Binary files /dev/null and b/graphics/pokemon/meganium/icon_gba.png differ diff --git a/graphics/pokemon/meganium/normal_gba.pal b/graphics/pokemon/meganium/normal_gba.pal new file mode 100644 index 0000000000..6a4bca91cc --- /dev/null +++ b/graphics/pokemon/meganium/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +189 255 123 +156 230 82 +106 189 49 +32 139 16 +98 74 0 +246 164 156 +255 57 90 +205 32 57 +123 16 57 +205 205 205 +106 106 106 +16 16 16 +255 222 32 +230 172 0 diff --git a/graphics/pokemon/meganium/shiny_gba.pal b/graphics/pokemon/meganium/shiny_gba.pal new file mode 100644 index 0000000000..0b03b419d1 --- /dev/null +++ b/graphics/pokemon/meganium/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 98 +246 230 41 +213 197 16 +131 115 8 +74 57 0 +255 180 65 +255 123 16 +205 74 0 +139 74 0 +205 205 205 +106 106 106 +16 16 16 +255 222 32 +230 172 0 diff --git a/graphics/pokemon/melmetal/gigantamax/back.png b/graphics/pokemon/melmetal/gmax/back.png similarity index 100% rename from graphics/pokemon/melmetal/gigantamax/back.png rename to graphics/pokemon/melmetal/gmax/back.png diff --git a/graphics/pokemon/melmetal/gigantamax/front.png b/graphics/pokemon/melmetal/gmax/front.png similarity index 100% rename from graphics/pokemon/melmetal/gigantamax/front.png rename to graphics/pokemon/melmetal/gmax/front.png diff --git a/graphics/pokemon/melmetal/gigantamax/icon.png b/graphics/pokemon/melmetal/gmax/icon.png similarity index 100% rename from graphics/pokemon/melmetal/gigantamax/icon.png rename to graphics/pokemon/melmetal/gmax/icon.png diff --git a/graphics/pokemon/melmetal/gigantamax/normal.pal b/graphics/pokemon/melmetal/gmax/normal.pal similarity index 100% rename from graphics/pokemon/melmetal/gigantamax/normal.pal rename to graphics/pokemon/melmetal/gmax/normal.pal diff --git a/graphics/pokemon/melmetal/gigantamax/shiny.pal b/graphics/pokemon/melmetal/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/melmetal/gigantamax/shiny.pal rename to graphics/pokemon/melmetal/gmax/shiny.pal diff --git a/graphics/pokemon/melmetal/icon.png b/graphics/pokemon/melmetal/icon.png index fa70c6b6b5..20382c2d80 100644 Binary files a/graphics/pokemon/melmetal/icon.png and b/graphics/pokemon/melmetal/icon.png differ diff --git a/graphics/pokemon/melmetal/overworld.png b/graphics/pokemon/melmetal/overworld.png index 4be020a5c6..e8097644ad 100644 Binary files a/graphics/pokemon/melmetal/overworld.png and b/graphics/pokemon/melmetal/overworld.png differ diff --git a/graphics/pokemon/melmetal/overworld_normal.pal b/graphics/pokemon/melmetal/overworld_normal.pal index 28e4593192..d9b329362b 100644 --- a/graphics/pokemon/melmetal/overworld_normal.pal +++ b/graphics/pokemon/melmetal/overworld_normal.pal @@ -1,7 +1,7 @@ JASC-PAL 0100 16 -255 255 255 +120 255 255 254 235 185 220 220 218 235 192 100 @@ -16,4 +16,4 @@ JASC-PAL 64 64 64 45 43 43 8 8 8 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/melmetal/overworld_shiny.pal b/graphics/pokemon/melmetal/overworld_shiny.pal index 6d1c75c9bb..4f5321a062 100644 --- a/graphics/pokemon/melmetal/overworld_shiny.pal +++ b/graphics/pokemon/melmetal/overworld_shiny.pal @@ -16,4 +16,4 @@ JASC-PAL 64 64 64 45 43 43 8 8 8 -0 0 0 +255 255 255 diff --git a/graphics/pokemon/meltan/icon.png b/graphics/pokemon/meltan/icon.png index 17fb4f96bd..51da112566 100644 Binary files a/graphics/pokemon/meltan/icon.png and b/graphics/pokemon/meltan/icon.png differ diff --git a/graphics/pokemon/meowstic/female/anim_front.png b/graphics/pokemon/meowstic/f/anim_front.png similarity index 100% rename from graphics/pokemon/meowstic/female/anim_front.png rename to graphics/pokemon/meowstic/f/anim_front.png diff --git a/graphics/pokemon/meowstic/female/back.png b/graphics/pokemon/meowstic/f/back.png similarity index 100% rename from graphics/pokemon/meowstic/female/back.png rename to graphics/pokemon/meowstic/f/back.png diff --git a/graphics/pokemon/meowstic/female/icon.png b/graphics/pokemon/meowstic/f/icon.png similarity index 100% rename from graphics/pokemon/meowstic/female/icon.png rename to graphics/pokemon/meowstic/f/icon.png diff --git a/graphics/pokemon/meowstic/female/normal.pal b/graphics/pokemon/meowstic/f/normal.pal similarity index 100% rename from graphics/pokemon/meowstic/female/normal.pal rename to graphics/pokemon/meowstic/f/normal.pal diff --git a/graphics/pokemon/meowstic/female/overworld.png b/graphics/pokemon/meowstic/f/overworld.png similarity index 100% rename from graphics/pokemon/meowstic/female/overworld.png rename to graphics/pokemon/meowstic/f/overworld.png diff --git a/graphics/pokemon/meowstic/female/overworld_normal.pal b/graphics/pokemon/meowstic/f/overworld_normal.pal similarity index 100% rename from graphics/pokemon/meowstic/female/overworld_normal.pal rename to graphics/pokemon/meowstic/f/overworld_normal.pal diff --git a/graphics/pokemon/meowstic/female/overworld_shiny.pal b/graphics/pokemon/meowstic/f/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/meowstic/female/overworld_shiny.pal rename to graphics/pokemon/meowstic/f/overworld_shiny.pal diff --git a/graphics/pokemon/meowstic/female/shiny.pal b/graphics/pokemon/meowstic/f/shiny.pal similarity index 100% rename from graphics/pokemon/meowstic/female/shiny.pal rename to graphics/pokemon/meowstic/f/shiny.pal diff --git a/graphics/pokemon/meowth/alolan/back.png b/graphics/pokemon/meowth/alola/back.png similarity index 100% rename from graphics/pokemon/meowth/alolan/back.png rename to graphics/pokemon/meowth/alola/back.png diff --git a/graphics/pokemon/meowth/alolan/front.png b/graphics/pokemon/meowth/alola/front.png similarity index 100% rename from graphics/pokemon/meowth/alolan/front.png rename to graphics/pokemon/meowth/alola/front.png diff --git a/graphics/pokemon/meowth/alola/icon.png b/graphics/pokemon/meowth/alola/icon.png new file mode 100644 index 0000000000..f2b5d00cbe Binary files /dev/null and b/graphics/pokemon/meowth/alola/icon.png differ diff --git a/graphics/pokemon/meowth/alolan/normal.pal b/graphics/pokemon/meowth/alola/normal.pal similarity index 100% rename from graphics/pokemon/meowth/alolan/normal.pal rename to graphics/pokemon/meowth/alola/normal.pal diff --git a/graphics/pokemon/meowth/alolan/overworld.png b/graphics/pokemon/meowth/alola/overworld.png similarity index 100% rename from graphics/pokemon/meowth/alolan/overworld.png rename to graphics/pokemon/meowth/alola/overworld.png diff --git a/graphics/pokemon/meowth/alolan/overworld_normal.pal b/graphics/pokemon/meowth/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/meowth/alolan/overworld_normal.pal rename to graphics/pokemon/meowth/alola/overworld_normal.pal diff --git a/graphics/pokemon/meowth/alolan/overworld_shiny.pal b/graphics/pokemon/meowth/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/meowth/alolan/overworld_shiny.pal rename to graphics/pokemon/meowth/alola/overworld_shiny.pal diff --git a/graphics/pokemon/meowth/alolan/shiny.pal b/graphics/pokemon/meowth/alola/shiny.pal similarity index 100% rename from graphics/pokemon/meowth/alolan/shiny.pal rename to graphics/pokemon/meowth/alola/shiny.pal diff --git a/graphics/pokemon/meowth/alolan/icon.png b/graphics/pokemon/meowth/alolan/icon.png deleted file mode 100644 index d4b80eb6b4..0000000000 Binary files a/graphics/pokemon/meowth/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/meowth/anim_front_gba.png b/graphics/pokemon/meowth/anim_front_gba.png new file mode 100644 index 0000000000..ab750326a0 Binary files /dev/null and b/graphics/pokemon/meowth/anim_front_gba.png differ diff --git a/graphics/pokemon/meowth/back_gba.png b/graphics/pokemon/meowth/back_gba.png new file mode 100644 index 0000000000..d87e7aa145 Binary files /dev/null and b/graphics/pokemon/meowth/back_gba.png differ diff --git a/graphics/pokemon/meowth/galarian/back.png b/graphics/pokemon/meowth/galar/back.png similarity index 100% rename from graphics/pokemon/meowth/galarian/back.png rename to graphics/pokemon/meowth/galar/back.png diff --git a/graphics/pokemon/meowth/galarian/front.png b/graphics/pokemon/meowth/galar/front.png similarity index 100% rename from graphics/pokemon/meowth/galarian/front.png rename to graphics/pokemon/meowth/galar/front.png diff --git a/graphics/pokemon/meowth/galarian/icon.png b/graphics/pokemon/meowth/galar/icon.png similarity index 100% rename from graphics/pokemon/meowth/galarian/icon.png rename to graphics/pokemon/meowth/galar/icon.png diff --git a/graphics/pokemon/meowth/galarian/normal.pal b/graphics/pokemon/meowth/galar/normal.pal similarity index 100% rename from graphics/pokemon/meowth/galarian/normal.pal rename to graphics/pokemon/meowth/galar/normal.pal diff --git a/graphics/pokemon/meowth/galarian/overworld.png b/graphics/pokemon/meowth/galar/overworld.png similarity index 100% rename from graphics/pokemon/meowth/galarian/overworld.png rename to graphics/pokemon/meowth/galar/overworld.png diff --git a/graphics/pokemon/meowth/galarian/overworld_normal.pal b/graphics/pokemon/meowth/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/meowth/galarian/overworld_normal.pal rename to graphics/pokemon/meowth/galar/overworld_normal.pal diff --git a/graphics/pokemon/meowth/galarian/overworld_shiny.pal b/graphics/pokemon/meowth/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/meowth/galarian/overworld_shiny.pal rename to graphics/pokemon/meowth/galar/overworld_shiny.pal diff --git a/graphics/pokemon/meowth/galarian/shiny.pal b/graphics/pokemon/meowth/galar/shiny.pal similarity index 100% rename from graphics/pokemon/meowth/galarian/shiny.pal rename to graphics/pokemon/meowth/galar/shiny.pal diff --git a/graphics/pokemon/meowth/gigantamax/back.png b/graphics/pokemon/meowth/gmax/back.png similarity index 100% rename from graphics/pokemon/meowth/gigantamax/back.png rename to graphics/pokemon/meowth/gmax/back.png diff --git a/graphics/pokemon/meowth/gigantamax/front.png b/graphics/pokemon/meowth/gmax/front.png similarity index 100% rename from graphics/pokemon/meowth/gigantamax/front.png rename to graphics/pokemon/meowth/gmax/front.png diff --git a/graphics/pokemon/meowth/gigantamax/icon.png b/graphics/pokemon/meowth/gmax/icon.png similarity index 100% rename from graphics/pokemon/meowth/gigantamax/icon.png rename to graphics/pokemon/meowth/gmax/icon.png diff --git a/graphics/pokemon/meowth/gigantamax/normal.pal b/graphics/pokemon/meowth/gmax/normal.pal similarity index 100% rename from graphics/pokemon/meowth/gigantamax/normal.pal rename to graphics/pokemon/meowth/gmax/normal.pal diff --git a/graphics/pokemon/meowth/gigantamax/shiny.pal b/graphics/pokemon/meowth/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/meowth/gigantamax/shiny.pal rename to graphics/pokemon/meowth/gmax/shiny.pal diff --git a/graphics/pokemon/meowth/icon_gba.png b/graphics/pokemon/meowth/icon_gba.png new file mode 100644 index 0000000000..146c69093e Binary files /dev/null and b/graphics/pokemon/meowth/icon_gba.png differ diff --git a/graphics/pokemon/meowth/normal_gba.pal b/graphics/pokemon/meowth/normal_gba.pal new file mode 100644 index 0000000000..034249ad53 --- /dev/null +++ b/graphics/pokemon/meowth/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 148 +255 213 0 +205 164 0 +255 115 82 +213 90 57 +16 16 16 +230 230 230 +238 156 49 +205 123 16 +148 65 0 +255 255 180 +255 230 131 +230 180 65 +156 106 0 diff --git a/graphics/pokemon/meowth/shiny_gba.pal b/graphics/pokemon/meowth/shiny_gba.pal new file mode 100644 index 0000000000..68f386ca69 --- /dev/null +++ b/graphics/pokemon/meowth/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 148 +255 213 0 +205 164 0 +255 115 82 +213 90 57 +16 16 16 +230 230 230 +255 123 139 +222 82 98 +139 41 57 +255 238 148 +255 197 106 +213 156 65 +131 74 0 diff --git a/graphics/pokemon/metagross/anim_front_gba.png b/graphics/pokemon/metagross/anim_front_gba.png new file mode 100644 index 0000000000..def46cfa3e Binary files /dev/null and b/graphics/pokemon/metagross/anim_front_gba.png differ diff --git a/graphics/pokemon/metagross/back_gba.png b/graphics/pokemon/metagross/back_gba.png new file mode 100644 index 0000000000..2097f945d6 Binary files /dev/null and b/graphics/pokemon/metagross/back_gba.png differ diff --git a/graphics/pokemon/metagross/icon_gba.png b/graphics/pokemon/metagross/icon_gba.png new file mode 100644 index 0000000000..e9cf14ab16 Binary files /dev/null and b/graphics/pokemon/metagross/icon_gba.png differ diff --git a/graphics/pokemon/metagross/normal_gba.pal b/graphics/pokemon/metagross/normal_gba.pal new file mode 100644 index 0000000000..265dadb67b --- /dev/null +++ b/graphics/pokemon/metagross/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +205 205 205 +172 172 172 +148 139 148 +115 106 115 +222 222 222 +131 74 74 +255 106 106 +213 74 82 +131 205 255 +197 222 255 +90 164 255 +74 131 213 +57 98 180 +49 57 115 +16 16 16 diff --git a/graphics/pokemon/metagross/shiny_gba.pal b/graphics/pokemon/metagross/shiny_gba.pal new file mode 100644 index 0000000000..4ff89d816e --- /dev/null +++ b/graphics/pokemon/metagross/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 172 82 +205 139 49 +172 106 16 +139 74 0 +255 205 115 +131 74 74 +255 106 106 +213 74 82 +238 238 246 +255 255 255 +213 213 222 +172 172 180 +139 131 139 +98 90 98 +16 16 16 diff --git a/graphics/pokemon/metang/anim_front_gba.png b/graphics/pokemon/metang/anim_front_gba.png new file mode 100644 index 0000000000..c1d71aa9ba Binary files /dev/null and b/graphics/pokemon/metang/anim_front_gba.png differ diff --git a/graphics/pokemon/metang/back_gba.png b/graphics/pokemon/metang/back_gba.png new file mode 100644 index 0000000000..2ba18eb3dd Binary files /dev/null and b/graphics/pokemon/metang/back_gba.png differ diff --git a/graphics/pokemon/metang/icon_gba.png b/graphics/pokemon/metang/icon_gba.png new file mode 100644 index 0000000000..cc095e9354 Binary files /dev/null and b/graphics/pokemon/metang/icon_gba.png differ diff --git a/graphics/pokemon/metang/normal_gba.pal b/graphics/pokemon/metang/normal_gba.pal new file mode 100644 index 0000000000..41b48bc089 --- /dev/null +++ b/graphics/pokemon/metang/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +205 205 205 +172 172 172 +148 139 148 +115 106 115 +222 222 222 +131 74 74 +255 106 106 +213 74 82 +131 205 255 +255 255 255 +90 164 255 +74 131 213 +57 98 180 +49 57 115 +16 16 16 diff --git a/graphics/pokemon/metang/shiny_gba.pal b/graphics/pokemon/metang/shiny_gba.pal new file mode 100644 index 0000000000..56c14cd756 --- /dev/null +++ b/graphics/pokemon/metang/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +238 172 82 +205 139 49 +172 106 16 +139 74 0 +255 205 115 +156 65 65 +255 106 106 +255 74 82 +238 238 246 +255 255 255 +213 213 222 +172 172 180 +123 115 123 +82 74 82 +16 16 16 diff --git a/graphics/pokemon/metapod/anim_front_gba.png b/graphics/pokemon/metapod/anim_front_gba.png new file mode 100644 index 0000000000..89843520da Binary files /dev/null and b/graphics/pokemon/metapod/anim_front_gba.png differ diff --git a/graphics/pokemon/metapod/back_gba.png b/graphics/pokemon/metapod/back_gba.png new file mode 100644 index 0000000000..42b80d17cc Binary files /dev/null and b/graphics/pokemon/metapod/back_gba.png differ diff --git a/graphics/pokemon/metapod/icon_gba.png b/graphics/pokemon/metapod/icon_gba.png new file mode 100644 index 0000000000..2316b24081 Binary files /dev/null and b/graphics/pokemon/metapod/icon_gba.png differ diff --git a/graphics/pokemon/metapod/normal_gba.pal b/graphics/pokemon/metapod/normal_gba.pal new file mode 100644 index 0000000000..7475228890 --- /dev/null +++ b/graphics/pokemon/metapod/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 197 197 +16 16 16 +255 255 255 +255 255 255 +255 255 255 +255 255 255 diff --git a/graphics/pokemon/metapod/shiny_gba.pal b/graphics/pokemon/metapod/shiny_gba.pal new file mode 100644 index 0000000000..149d03c64e --- /dev/null +++ b/graphics/pokemon/metapod/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 180 139 +255 148 106 +238 98 57 +123 57 24 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +197 197 197 +16 16 16 +255 255 255 +255 255 255 +255 255 255 +255 255 255 diff --git a/graphics/pokemon/mew/anim_front_gba.png b/graphics/pokemon/mew/anim_front_gba.png new file mode 100644 index 0000000000..fc6dacbfdf Binary files /dev/null and b/graphics/pokemon/mew/anim_front_gba.png differ diff --git a/graphics/pokemon/mew/back_gba.png b/graphics/pokemon/mew/back_gba.png new file mode 100644 index 0000000000..d73526245e Binary files /dev/null and b/graphics/pokemon/mew/back_gba.png differ diff --git a/graphics/pokemon/mew/icon_gba.png b/graphics/pokemon/mew/icon_gba.png new file mode 100644 index 0000000000..cffd1dacc9 Binary files /dev/null and b/graphics/pokemon/mew/icon_gba.png differ diff --git a/graphics/pokemon/mew/normal_gba.pal b/graphics/pokemon/mew/normal_gba.pal new file mode 100644 index 0000000000..d9a50cdeca --- /dev/null +++ b/graphics/pokemon/mew/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +213 213 213 +24 90 164 +74 148 213 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 213 230 +255 197 205 +255 131 123 +213 74 82 +180 32 49 +41 41 41 diff --git a/graphics/pokemon/mew/shiny_gba.pal b/graphics/pokemon/mew/shiny_gba.pal new file mode 100644 index 0000000000..0bf72b2d86 --- /dev/null +++ b/graphics/pokemon/mew/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +213 213 213 +24 90 164 +74 148 213 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +238 255 255 +197 238 255 +139 197 246 +82 123 205 +74 90 180 +41 41 41 diff --git a/graphics/pokemon/mewtwo/anim_front_gba.png b/graphics/pokemon/mewtwo/anim_front_gba.png new file mode 100644 index 0000000000..e3ef74e032 Binary files /dev/null and b/graphics/pokemon/mewtwo/anim_front_gba.png differ diff --git a/graphics/pokemon/mewtwo/back_gba.png b/graphics/pokemon/mewtwo/back_gba.png new file mode 100644 index 0000000000..e466856e50 Binary files /dev/null and b/graphics/pokemon/mewtwo/back_gba.png differ diff --git a/graphics/pokemon/mewtwo/icon_gba.png b/graphics/pokemon/mewtwo/icon_gba.png new file mode 100644 index 0000000000..65f2aeec2b Binary files /dev/null and b/graphics/pokemon/mewtwo/icon_gba.png differ diff --git a/graphics/pokemon/mewtwo/normal_gba.pal b/graphics/pokemon/mewtwo/normal_gba.pal new file mode 100644 index 0000000000..4afd3567ec --- /dev/null +++ b/graphics/pokemon/mewtwo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 213 213 +230 230 246 +189 189 213 +139 139 180 +82 82 106 +230 180 255 +180 131 213 +139 90 172 +115 49 148 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/mewtwo/shiny_gba.pal b/graphics/pokemon/mewtwo/shiny_gba.pal new file mode 100644 index 0000000000..c65c6c83e7 --- /dev/null +++ b/graphics/pokemon/mewtwo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 213 213 +230 230 230 +180 180 180 +148 148 148 +74 74 57 +189 238 90 +148 205 65 +90 148 32 +65 90 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/mightyena/anim_front_gba.png b/graphics/pokemon/mightyena/anim_front_gba.png new file mode 100644 index 0000000000..494b7b23aa Binary files /dev/null and b/graphics/pokemon/mightyena/anim_front_gba.png differ diff --git a/graphics/pokemon/mightyena/back_gba.png b/graphics/pokemon/mightyena/back_gba.png new file mode 100644 index 0000000000..1885625904 Binary files /dev/null and b/graphics/pokemon/mightyena/back_gba.png differ diff --git a/graphics/pokemon/mightyena/icon_gba.png b/graphics/pokemon/mightyena/icon_gba.png new file mode 100644 index 0000000000..3f9e61763e Binary files /dev/null and b/graphics/pokemon/mightyena/icon_gba.png differ diff --git a/graphics/pokemon/mightyena/normal_gba.pal b/graphics/pokemon/mightyena/normal_gba.pal new file mode 100644 index 0000000000..42cdc8fc1a --- /dev/null +++ b/graphics/pokemon/mightyena/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +57 164 164 +0 0 0 +0 0 0 +172 172 180 +148 139 156 +74 82 106 +49 49 65 +32 32 41 +222 230 238 +197 205 213 +255 197 90 +172 123 90 +222 57 57 +164 16 16 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/mightyena/shiny_gba.pal b/graphics/pokemon/mightyena/shiny_gba.pal new file mode 100644 index 0000000000..7881952af1 --- /dev/null +++ b/graphics/pokemon/mightyena/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +57 164 164 +0 0 0 +0 0 0 +255 205 106 +213 172 74 +164 123 82 +131 90 57 +98 57 16 +255 238 172 +255 222 123 +255 255 255 +172 123 90 +74 98 172 +49 57 115 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/milotic/anim_front_gba.png b/graphics/pokemon/milotic/anim_front_gba.png new file mode 100644 index 0000000000..a80ed6f94d Binary files /dev/null and b/graphics/pokemon/milotic/anim_front_gba.png differ diff --git a/graphics/pokemon/milotic/back_gba.png b/graphics/pokemon/milotic/back_gba.png new file mode 100644 index 0000000000..5d91dfb635 Binary files /dev/null and b/graphics/pokemon/milotic/back_gba.png differ diff --git a/graphics/pokemon/milotic/icon_gba.png b/graphics/pokemon/milotic/icon_gba.png new file mode 100644 index 0000000000..c1aa2ec8ad Binary files /dev/null and b/graphics/pokemon/milotic/icon_gba.png differ diff --git a/graphics/pokemon/milotic/normal_gba.pal b/graphics/pokemon/milotic/normal_gba.pal new file mode 100644 index 0000000000..df5cab01a0 --- /dev/null +++ b/graphics/pokemon/milotic/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 148 +115 57 49 +164 106 82 +222 189 156 +255 213 180 +255 230 213 +148 172 197 +139 197 255 +213 98 65 +238 131 90 +180 82 65 +230 131 139 +255 164 131 +106 98 123 +246 246 238 +0 0 0 diff --git a/graphics/pokemon/milotic/shiny_gba.pal b/graphics/pokemon/milotic/shiny_gba.pal new file mode 100644 index 0000000000..8a57b80b20 --- /dev/null +++ b/graphics/pokemon/milotic/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 148 +115 57 49 +164 106 82 +222 189 156 +255 213 180 +255 238 222 +222 197 0 +255 230 32 +148 156 205 +180 189 238 +90 98 148 +230 131 139 +255 164 131 +106 98 123 +246 246 238 +0 0 0 diff --git a/graphics/pokemon/miltank/anim_front_gba.png b/graphics/pokemon/miltank/anim_front_gba.png new file mode 100644 index 0000000000..f702f11436 Binary files /dev/null and b/graphics/pokemon/miltank/anim_front_gba.png differ diff --git a/graphics/pokemon/miltank/back_gba.png b/graphics/pokemon/miltank/back_gba.png new file mode 100644 index 0000000000..0cf5b21e68 Binary files /dev/null and b/graphics/pokemon/miltank/back_gba.png differ diff --git a/graphics/pokemon/miltank/icon_gba.png b/graphics/pokemon/miltank/icon_gba.png new file mode 100644 index 0000000000..ade9cad90b Binary files /dev/null and b/graphics/pokemon/miltank/icon_gba.png differ diff --git a/graphics/pokemon/miltank/normal_gba.pal b/graphics/pokemon/miltank/normal_gba.pal new file mode 100644 index 0000000000..105c672833 --- /dev/null +++ b/graphics/pokemon/miltank/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 222 +255 172 164 +213 123 115 +139 74 74 +255 230 156 +238 197 123 +197 156 82 +148 106 32 +0 82 255 +164 164 164 +90 90 90 +49 49 49 +24 24 32 +180 57 98 diff --git a/graphics/pokemon/miltank/shiny_gba.pal b/graphics/pokemon/miltank/shiny_gba.pal new file mode 100644 index 0000000000..7dcb6f2ee1 --- /dev/null +++ b/graphics/pokemon/miltank/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 246 238 +230 238 238 +156 172 189 +90 98 131 +255 255 255 +222 213 197 +172 156 115 +139 106 74 +0 82 255 +213 74 49 +139 57 32 +90 24 16 +41 24 24 +238 106 115 diff --git a/graphics/pokemon/mimikyu/busted/icon.png b/graphics/pokemon/mimikyu/busted/icon.png index 46bc430059..58272ef8fe 100644 Binary files a/graphics/pokemon/mimikyu/busted/icon.png and b/graphics/pokemon/mimikyu/busted/icon.png differ diff --git a/graphics/pokemon/mimikyu/icon.png b/graphics/pokemon/mimikyu/icon.png index 89c587683a..73d110ca70 100644 Binary files a/graphics/pokemon/mimikyu/icon.png and b/graphics/pokemon/mimikyu/icon.png differ diff --git a/graphics/pokemon/minior/core/blue/icon.png b/graphics/pokemon/minior/core/blue/icon.png index 85ee891517..60f670a1a8 100644 Binary files a/graphics/pokemon/minior/core/blue/icon.png and b/graphics/pokemon/minior/core/blue/icon.png differ diff --git a/graphics/pokemon/minior/core/green/icon.png b/graphics/pokemon/minior/core/green/icon.png index f724e86aeb..cf24afb332 100644 Binary files a/graphics/pokemon/minior/core/green/icon.png and b/graphics/pokemon/minior/core/green/icon.png differ diff --git a/graphics/pokemon/minior/core/indigo/icon.png b/graphics/pokemon/minior/core/indigo/icon.png index 4f2e531ced..17a625ccd9 100644 Binary files a/graphics/pokemon/minior/core/indigo/icon.png and b/graphics/pokemon/minior/core/indigo/icon.png differ diff --git a/graphics/pokemon/minior/core/orange/icon.png b/graphics/pokemon/minior/core/orange/icon.png index 40509d6b51..7418f1ec53 100644 Binary files a/graphics/pokemon/minior/core/orange/icon.png and b/graphics/pokemon/minior/core/orange/icon.png differ diff --git a/graphics/pokemon/minior/core/red/icon.png b/graphics/pokemon/minior/core/red/icon.png index 486dcdebd1..3d3880d7c3 100644 Binary files a/graphics/pokemon/minior/core/red/icon.png and b/graphics/pokemon/minior/core/red/icon.png differ diff --git a/graphics/pokemon/minior/core/violet/icon.png b/graphics/pokemon/minior/core/violet/icon.png index 4392bdf3b9..afa5589627 100644 Binary files a/graphics/pokemon/minior/core/violet/icon.png and b/graphics/pokemon/minior/core/violet/icon.png differ diff --git a/graphics/pokemon/minior/core/yellow/icon.png b/graphics/pokemon/minior/core/yellow/icon.png index f7dfb73362..ae71fd9a24 100644 Binary files a/graphics/pokemon/minior/core/yellow/icon.png and b/graphics/pokemon/minior/core/yellow/icon.png differ diff --git a/graphics/pokemon/minun/anim_front_gba.png b/graphics/pokemon/minun/anim_front_gba.png new file mode 100644 index 0000000000..3cd9688ba4 Binary files /dev/null and b/graphics/pokemon/minun/anim_front_gba.png differ diff --git a/graphics/pokemon/minun/back_gba.png b/graphics/pokemon/minun/back_gba.png new file mode 100644 index 0000000000..7c1377d59b Binary files /dev/null and b/graphics/pokemon/minun/back_gba.png differ diff --git a/graphics/pokemon/minun/icon_gba.png b/graphics/pokemon/minun/icon_gba.png new file mode 100644 index 0000000000..1aacd776a2 Binary files /dev/null and b/graphics/pokemon/minun/icon_gba.png differ diff --git a/graphics/pokemon/minun/normal_gba.pal b/graphics/pokemon/minun/normal_gba.pal new file mode 100644 index 0000000000..3ed8a19eea --- /dev/null +++ b/graphics/pokemon/minun/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 246 222 +255 238 197 +238 213 131 +189 172 131 +123 115 82 +98 156 255 +90 123 230 +49 90 131 +238 82 57 +41 49 65 +98 98 115 +65 65 98 +148 148 148 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/minun/shiny_gba.pal b/graphics/pokemon/minun/shiny_gba.pal new file mode 100644 index 0000000000..db9c935349 --- /dev/null +++ b/graphics/pokemon/minun/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 246 222 +255 238 164 +255 213 106 +205 148 82 +139 82 16 +148 197 205 +82 139 131 +49 115 106 +238 82 57 +41 49 65 +98 98 115 +65 65 98 +148 148 148 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/misdreavus/anim_front_gba.png b/graphics/pokemon/misdreavus/anim_front_gba.png new file mode 100644 index 0000000000..bd669637bb Binary files /dev/null and b/graphics/pokemon/misdreavus/anim_front_gba.png differ diff --git a/graphics/pokemon/misdreavus/back_gba.png b/graphics/pokemon/misdreavus/back_gba.png new file mode 100644 index 0000000000..44b44a3ffd Binary files /dev/null and b/graphics/pokemon/misdreavus/back_gba.png differ diff --git a/graphics/pokemon/misdreavus/icon_gba.png b/graphics/pokemon/misdreavus/icon_gba.png new file mode 100644 index 0000000000..bbe121b910 Binary files /dev/null and b/graphics/pokemon/misdreavus/icon_gba.png differ diff --git a/graphics/pokemon/misdreavus/normal_gba.pal b/graphics/pokemon/misdreavus/normal_gba.pal new file mode 100644 index 0000000000..c57ab5ea74 --- /dev/null +++ b/graphics/pokemon/misdreavus/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +16 16 16 +41 74 65 +74 106 115 +115 156 148 +148 189 180 +255 0 246 +255 246 82 +172 16 74 +238 90 148 +255 213 197 +123 32 0 +189 32 24 +255 90 41 +255 148 189 +255 255 255 diff --git a/graphics/pokemon/misdreavus/shiny_gba.pal b/graphics/pokemon/misdreavus/shiny_gba.pal new file mode 100644 index 0000000000..8814515be2 --- /dev/null +++ b/graphics/pokemon/misdreavus/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +16 16 16 +98 82 16 +156 139 49 +213 197 98 +246 230 123 +255 0 255 +255 246 82 +82 65 32 +230 189 65 +255 230 106 +123 41 8 +172 57 24 +255 90 41 +255 197 49 +255 255 255 diff --git a/graphics/pokemon/moltres/anim_front_gba.png b/graphics/pokemon/moltres/anim_front_gba.png new file mode 100644 index 0000000000..2f49fe6a7a Binary files /dev/null and b/graphics/pokemon/moltres/anim_front_gba.png differ diff --git a/graphics/pokemon/moltres/back_gba.png b/graphics/pokemon/moltres/back_gba.png new file mode 100644 index 0000000000..11ed8ced86 Binary files /dev/null and b/graphics/pokemon/moltres/back_gba.png differ diff --git a/graphics/pokemon/moltres/galarian/back.png b/graphics/pokemon/moltres/galar/back.png similarity index 100% rename from graphics/pokemon/moltres/galarian/back.png rename to graphics/pokemon/moltres/galar/back.png diff --git a/graphics/pokemon/moltres/galarian/front.png b/graphics/pokemon/moltres/galar/front.png similarity index 100% rename from graphics/pokemon/moltres/galarian/front.png rename to graphics/pokemon/moltres/galar/front.png diff --git a/graphics/pokemon/moltres/galarian/icon.png b/graphics/pokemon/moltres/galar/icon.png similarity index 100% rename from graphics/pokemon/moltres/galarian/icon.png rename to graphics/pokemon/moltres/galar/icon.png diff --git a/graphics/pokemon/moltres/galarian/normal.pal b/graphics/pokemon/moltres/galar/normal.pal similarity index 100% rename from graphics/pokemon/moltres/galarian/normal.pal rename to graphics/pokemon/moltres/galar/normal.pal diff --git a/graphics/pokemon/moltres/galarian/overworld.png b/graphics/pokemon/moltres/galar/overworld.png similarity index 100% rename from graphics/pokemon/moltres/galarian/overworld.png rename to graphics/pokemon/moltres/galar/overworld.png diff --git a/graphics/pokemon/moltres/galarian/overworld_normal.pal b/graphics/pokemon/moltres/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/moltres/galarian/overworld_normal.pal rename to graphics/pokemon/moltres/galar/overworld_normal.pal diff --git a/graphics/pokemon/moltres/galarian/overworld_shiny.pal b/graphics/pokemon/moltres/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/moltres/galarian/overworld_shiny.pal rename to graphics/pokemon/moltres/galar/overworld_shiny.pal diff --git a/graphics/pokemon/moltres/galarian/shiny.pal b/graphics/pokemon/moltres/galar/shiny.pal similarity index 100% rename from graphics/pokemon/moltres/galarian/shiny.pal rename to graphics/pokemon/moltres/galar/shiny.pal diff --git a/graphics/pokemon/moltres/icon_gba.png b/graphics/pokemon/moltres/icon_gba.png new file mode 100644 index 0000000000..e15d2164ab Binary files /dev/null and b/graphics/pokemon/moltres/icon_gba.png differ diff --git a/graphics/pokemon/moltres/normal_gba.pal b/graphics/pokemon/moltres/normal_gba.pal new file mode 100644 index 0000000000..b27f7cdac9 --- /dev/null +++ b/graphics/pokemon/moltres/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 222 +180 0 0 +255 213 156 +255 148 74 +255 98 0 +238 0 0 +238 172 74 +205 123 32 +131 49 0 +255 246 65 +255 222 16 +255 172 0 +189 82 0 +16 16 16 diff --git a/graphics/pokemon/moltres/shiny_gba.pal b/graphics/pokemon/moltres/shiny_gba.pal new file mode 100644 index 0000000000..b289551aaa --- /dev/null +++ b/graphics/pokemon/moltres/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 222 +180 0 0 +255 213 156 +255 148 74 +255 98 0 +189 49 41 +255 115 90 +205 49 32 +164 16 32 +255 222 205 +255 172 164 +230 115 106 +172 57 57 +16 16 16 diff --git a/graphics/pokemon/morelull/icon.png b/graphics/pokemon/morelull/icon.png index 221ebe5457..1c50141e10 100644 Binary files a/graphics/pokemon/morelull/icon.png and b/graphics/pokemon/morelull/icon.png differ diff --git a/graphics/pokemon/mr_mime/anim_front_gba.png b/graphics/pokemon/mr_mime/anim_front_gba.png new file mode 100644 index 0000000000..710145fef4 Binary files /dev/null and b/graphics/pokemon/mr_mime/anim_front_gba.png differ diff --git a/graphics/pokemon/mr_mime/back_gba.png b/graphics/pokemon/mr_mime/back_gba.png new file mode 100644 index 0000000000..129fbb4e2c Binary files /dev/null and b/graphics/pokemon/mr_mime/back_gba.png differ diff --git a/graphics/pokemon/mr_mime/galarian/back.png b/graphics/pokemon/mr_mime/galar/back.png similarity index 100% rename from graphics/pokemon/mr_mime/galarian/back.png rename to graphics/pokemon/mr_mime/galar/back.png diff --git a/graphics/pokemon/mr_mime/galarian/front.png b/graphics/pokemon/mr_mime/galar/front.png similarity index 100% rename from graphics/pokemon/mr_mime/galarian/front.png rename to graphics/pokemon/mr_mime/galar/front.png diff --git a/graphics/pokemon/mr_mime/galarian/icon.png b/graphics/pokemon/mr_mime/galar/icon.png similarity index 100% rename from graphics/pokemon/mr_mime/galarian/icon.png rename to graphics/pokemon/mr_mime/galar/icon.png diff --git a/graphics/pokemon/mr_mime/galarian/normal.pal b/graphics/pokemon/mr_mime/galar/normal.pal similarity index 100% rename from graphics/pokemon/mr_mime/galarian/normal.pal rename to graphics/pokemon/mr_mime/galar/normal.pal diff --git a/graphics/pokemon/mr_mime/galarian/overworld.png b/graphics/pokemon/mr_mime/galar/overworld.png similarity index 100% rename from graphics/pokemon/mr_mime/galarian/overworld.png rename to graphics/pokemon/mr_mime/galar/overworld.png diff --git a/graphics/pokemon/mr_mime/galarian/overworld_normal.pal b/graphics/pokemon/mr_mime/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/mr_mime/galarian/overworld_normal.pal rename to graphics/pokemon/mr_mime/galar/overworld_normal.pal diff --git a/graphics/pokemon/mr_mime/galarian/overworld_shiny.pal b/graphics/pokemon/mr_mime/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/mr_mime/galarian/overworld_shiny.pal rename to graphics/pokemon/mr_mime/galar/overworld_shiny.pal diff --git a/graphics/pokemon/mr_mime/galarian/shiny.pal b/graphics/pokemon/mr_mime/galar/shiny.pal similarity index 100% rename from graphics/pokemon/mr_mime/galarian/shiny.pal rename to graphics/pokemon/mr_mime/galar/shiny.pal diff --git a/graphics/pokemon/mr_mime/icon_gba.png b/graphics/pokemon/mr_mime/icon_gba.png new file mode 100644 index 0000000000..b1e3b2bfb5 Binary files /dev/null and b/graphics/pokemon/mr_mime/icon_gba.png differ diff --git a/graphics/pokemon/mr_mime/normal_gba.pal b/graphics/pokemon/mr_mime/normal_gba.pal new file mode 100644 index 0000000000..269bf45edf --- /dev/null +++ b/graphics/pokemon/mr_mime/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +205 213 222 +156 164 172 +90 98 115 +49 57 74 +238 172 164 +230 98 74 +189 74 57 +131 49 49 +255 238 238 +255 205 205 +238 172 164 +139 90 82 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/mr_mime/shiny_gba.pal b/graphics/pokemon/mr_mime/shiny_gba.pal new file mode 100644 index 0000000000..c20f8dbf4a --- /dev/null +++ b/graphics/pokemon/mr_mime/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +205 213 222 +156 164 172 +90 98 115 +49 57 74 +180 230 82 +139 189 41 +98 148 0 +41 90 0 +255 238 238 +255 205 205 +230 172 172 +139 90 82 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/mudbray/icon.png b/graphics/pokemon/mudbray/icon.png index 0447096ecb..92094f19ef 100644 Binary files a/graphics/pokemon/mudbray/icon.png and b/graphics/pokemon/mudbray/icon.png differ diff --git a/graphics/pokemon/mudkip/anim_front_gba.png b/graphics/pokemon/mudkip/anim_front_gba.png new file mode 100644 index 0000000000..712f3ce5a8 Binary files /dev/null and b/graphics/pokemon/mudkip/anim_front_gba.png differ diff --git a/graphics/pokemon/mudkip/back_gba.png b/graphics/pokemon/mudkip/back_gba.png new file mode 100644 index 0000000000..1b1282d42b Binary files /dev/null and b/graphics/pokemon/mudkip/back_gba.png differ diff --git a/graphics/pokemon/mudkip/icon_gba.png b/graphics/pokemon/mudkip/icon_gba.png new file mode 100644 index 0000000000..5a657aa916 Binary files /dev/null and b/graphics/pokemon/mudkip/icon_gba.png differ diff --git a/graphics/pokemon/mudkip/normal_gba.pal b/graphics/pokemon/mudkip/normal_gba.pal new file mode 100644 index 0000000000..bc3cc1b65f --- /dev/null +++ b/graphics/pokemon/mudkip/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +180 189 246 +156 172 222 +139 156 180 +123 115 123 +255 180 82 +246 156 65 +205 131 65 +164 123 90 +197 205 255 +255 255 255 +123 197 255 +90 172 230 +49 131 197 +74 74 131 +16 16 16 diff --git a/graphics/pokemon/mudkip/shiny_gba.pal b/graphics/pokemon/mudkip/shiny_gba.pal new file mode 100644 index 0000000000..ef5447b60f --- /dev/null +++ b/graphics/pokemon/mudkip/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 238 156 +255 205 106 +230 172 90 +213 156 74 +255 180 82 +246 156 65 +205 131 65 +164 123 90 +255 246 197 +255 255 255 +222 156 238 +197 115 222 +139 82 156 +106 49 123 +16 16 16 diff --git a/graphics/pokemon/mudsdale/icon.png b/graphics/pokemon/mudsdale/icon.png index 3146346ead..8b2f118fbf 100644 Binary files a/graphics/pokemon/mudsdale/icon.png and b/graphics/pokemon/mudsdale/icon.png differ diff --git a/graphics/pokemon/muk/alolan/back.png b/graphics/pokemon/muk/alola/back.png similarity index 100% rename from graphics/pokemon/muk/alolan/back.png rename to graphics/pokemon/muk/alola/back.png diff --git a/graphics/pokemon/muk/alolan/front.png b/graphics/pokemon/muk/alola/front.png similarity index 100% rename from graphics/pokemon/muk/alolan/front.png rename to graphics/pokemon/muk/alola/front.png diff --git a/graphics/pokemon/muk/alola/icon.png b/graphics/pokemon/muk/alola/icon.png new file mode 100644 index 0000000000..676a7999ee Binary files /dev/null and b/graphics/pokemon/muk/alola/icon.png differ diff --git a/graphics/pokemon/muk/alolan/normal.pal b/graphics/pokemon/muk/alola/normal.pal similarity index 100% rename from graphics/pokemon/muk/alolan/normal.pal rename to graphics/pokemon/muk/alola/normal.pal diff --git a/graphics/pokemon/muk/alolan/overworld.png b/graphics/pokemon/muk/alola/overworld.png similarity index 100% rename from graphics/pokemon/muk/alolan/overworld.png rename to graphics/pokemon/muk/alola/overworld.png diff --git a/graphics/pokemon/muk/alolan/overworld_normal.pal b/graphics/pokemon/muk/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/muk/alolan/overworld_normal.pal rename to graphics/pokemon/muk/alola/overworld_normal.pal diff --git a/graphics/pokemon/muk/alolan/overworld_shiny.pal b/graphics/pokemon/muk/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/muk/alolan/overworld_shiny.pal rename to graphics/pokemon/muk/alola/overworld_shiny.pal diff --git a/graphics/pokemon/muk/alolan/shiny.pal b/graphics/pokemon/muk/alola/shiny.pal similarity index 100% rename from graphics/pokemon/muk/alolan/shiny.pal rename to graphics/pokemon/muk/alola/shiny.pal diff --git a/graphics/pokemon/muk/alolan/icon.png b/graphics/pokemon/muk/alolan/icon.png deleted file mode 100644 index d598fd7283..0000000000 Binary files a/graphics/pokemon/muk/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/muk/anim_front_gba.png b/graphics/pokemon/muk/anim_front_gba.png new file mode 100644 index 0000000000..3ac15d0d0f Binary files /dev/null and b/graphics/pokemon/muk/anim_front_gba.png differ diff --git a/graphics/pokemon/muk/back_gba.png b/graphics/pokemon/muk/back_gba.png new file mode 100644 index 0000000000..f91c8ca5e6 Binary files /dev/null and b/graphics/pokemon/muk/back_gba.png differ diff --git a/graphics/pokemon/muk/icon_gba.png b/graphics/pokemon/muk/icon_gba.png new file mode 100644 index 0000000000..6d8d09350d Binary files /dev/null and b/graphics/pokemon/muk/icon_gba.png differ diff --git a/graphics/pokemon/muk/normal_gba.pal b/graphics/pokemon/muk/normal_gba.pal new file mode 100644 index 0000000000..3a7db5d6ce --- /dev/null +++ b/graphics/pokemon/muk/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +238 222 238 +230 189 222 +197 156 180 +148 90 156 +90 49 115 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/muk/shiny_gba.pal b/graphics/pokemon/muk/shiny_gba.pal new file mode 100644 index 0000000000..98e3228785 --- /dev/null +++ b/graphics/pokemon/muk/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +238 222 238 +180 230 148 +139 189 106 +98 148 65 +57 106 24 +213 213 222 +172 180 189 +131 139 156 +65 74 90 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/munna/overworld.png b/graphics/pokemon/munna/overworld.png index 9dc2032145..605379190d 100644 Binary files a/graphics/pokemon/munna/overworld.png and b/graphics/pokemon/munna/overworld.png differ diff --git a/graphics/pokemon/munna/overworld_shiny.pal b/graphics/pokemon/munna/overworld_shiny.pal index 04fb73d163..8765308655 100644 --- a/graphics/pokemon/munna/overworld_shiny.pal +++ b/graphics/pokemon/munna/overworld_shiny.pal @@ -10,7 +10,7 @@ JASC-PAL 248 248 248 24 40 16 238 238 247 -208 24 80 +168 56 136 240 136 208 144 40 112 145 83 106 diff --git a/graphics/pokemon/murkrow/anim_front_gba.png b/graphics/pokemon/murkrow/anim_front_gba.png new file mode 100644 index 0000000000..85282ee7ed Binary files /dev/null and b/graphics/pokemon/murkrow/anim_front_gba.png differ diff --git a/graphics/pokemon/murkrow/back_gba.png b/graphics/pokemon/murkrow/back_gba.png new file mode 100644 index 0000000000..3007b76434 Binary files /dev/null and b/graphics/pokemon/murkrow/back_gba.png differ diff --git a/graphics/pokemon/murkrow/icon_gba.png b/graphics/pokemon/murkrow/icon_gba.png new file mode 100644 index 0000000000..eac91aa18a Binary files /dev/null and b/graphics/pokemon/murkrow/icon_gba.png differ diff --git a/graphics/pokemon/murkrow/normal_gba.pal b/graphics/pokemon/murkrow/normal_gba.pal new file mode 100644 index 0000000000..1d8b5f991f --- /dev/null +++ b/graphics/pokemon/murkrow/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 172 139 +238 57 65 +172 16 32 +41 65 65 +57 82 82 +82 106 106 +139 164 164 +255 0 255 +106 74 16 +156 123 32 +213 180 41 +255 255 82 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/murkrow/shiny_gba.pal b/graphics/pokemon/murkrow/shiny_gba.pal new file mode 100644 index 0000000000..4524256e43 --- /dev/null +++ b/graphics/pokemon/murkrow/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 172 139 +238 57 65 +172 16 32 +98 41 90 +156 57 139 +197 90 164 +238 131 197 +255 0 255 +106 74 16 +156 123 32 +213 180 41 +255 255 82 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/musharna/overworld.png b/graphics/pokemon/musharna/overworld.png index aef3207b7e..081e4187e5 100644 Binary files a/graphics/pokemon/musharna/overworld.png and b/graphics/pokemon/musharna/overworld.png differ diff --git a/graphics/pokemon/musharna/overworld_normal.pal b/graphics/pokemon/musharna/overworld_normal.pal index f1b11dd773..cfcbd413f1 100644 --- a/graphics/pokemon/musharna/overworld_normal.pal +++ b/graphics/pokemon/musharna/overworld_normal.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -109 75 80 -145 83 106 +122 77 104 +145 74 100 225 112 161 -175 112 140 -97 66 145 +168 80 112 +83 62 115 42 47 74 -140 137 175 -134 96 184 +144 120 216 +104 96 160 252 188 219 -247 207 182 -207 150 111 +248 192 200 +200 152 144 0 0 0 160 175 128 -0 0 0 +152 88 96 0 0 0 diff --git a/graphics/pokemon/musharna/overworld_shiny.pal b/graphics/pokemon/musharna/overworld_shiny.pal index 6b5ab82193..01c9460d4a 100644 --- a/graphics/pokemon/musharna/overworld_shiny.pal +++ b/graphics/pokemon/musharna/overworld_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -109 75 80 -112 56 128 +88 72 128 +92 52 128 152 112 200 -175 112 140 +119 87 158 48 72 96 42 47 74 80 152 192 -64 120 192 +72 112 144 152 208 160 248 176 192 208 128 152 0 0 0 152 208 160 -0 0 0 +136 88 104 0 0 0 diff --git a/graphics/pokemon/naganadel/icon.png b/graphics/pokemon/naganadel/icon.png index 23204c5d18..f1194b189e 100644 Binary files a/graphics/pokemon/naganadel/icon.png and b/graphics/pokemon/naganadel/icon.png differ diff --git a/graphics/pokemon/natu/anim_front_gba.png b/graphics/pokemon/natu/anim_front_gba.png new file mode 100644 index 0000000000..02e1e7894e Binary files /dev/null and b/graphics/pokemon/natu/anim_front_gba.png differ diff --git a/graphics/pokemon/natu/back_gba.png b/graphics/pokemon/natu/back_gba.png new file mode 100644 index 0000000000..0349877d52 Binary files /dev/null and b/graphics/pokemon/natu/back_gba.png differ diff --git a/graphics/pokemon/natu/icon_gba.png b/graphics/pokemon/natu/icon_gba.png new file mode 100644 index 0000000000..7188fb7f3f Binary files /dev/null and b/graphics/pokemon/natu/icon_gba.png differ diff --git a/graphics/pokemon/natu/normal_gba.pal b/graphics/pokemon/natu/normal_gba.pal new file mode 100644 index 0000000000..c1712ee1ed --- /dev/null +++ b/graphics/pokemon/natu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +156 230 74 +82 197 74 +74 148 65 +49 98 41 +255 222 65 +205 172 57 +131 98 32 +255 74 0 +205 57 0 +131 41 0 +205 205 205 +148 148 148 +82 82 82 +41 41 41 diff --git a/graphics/pokemon/natu/shiny_gba.pal b/graphics/pokemon/natu/shiny_gba.pal new file mode 100644 index 0000000000..2dcf957e99 --- /dev/null +++ b/graphics/pokemon/natu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 255 65 +164 230 49 +115 189 8 +65 106 0 +255 222 65 +189 148 32 +139 90 0 +255 164 57 +213 106 16 +115 74 0 +205 205 205 +148 148 148 +82 82 82 +41 41 41 diff --git a/graphics/pokemon/necrozma/dawn_wings/icon.png b/graphics/pokemon/necrozma/dawn_wings/icon.png index 25d24cb024..5644f23026 100644 Binary files a/graphics/pokemon/necrozma/dawn_wings/icon.png and b/graphics/pokemon/necrozma/dawn_wings/icon.png differ diff --git a/graphics/pokemon/necrozma/dusk_mane/icon.png b/graphics/pokemon/necrozma/dusk_mane/icon.png index c188b1e3ca..c60f222f76 100644 Binary files a/graphics/pokemon/necrozma/dusk_mane/icon.png and b/graphics/pokemon/necrozma/dusk_mane/icon.png differ diff --git a/graphics/pokemon/necrozma/icon.png b/graphics/pokemon/necrozma/icon.png index 1d4283fddc..603f1f4fa0 100644 Binary files a/graphics/pokemon/necrozma/icon.png and b/graphics/pokemon/necrozma/icon.png differ diff --git a/graphics/pokemon/necrozma/ultra/icon.png b/graphics/pokemon/necrozma/ultra/icon.png index 1c63345bc8..790be2e0c2 100644 Binary files a/graphics/pokemon/necrozma/ultra/icon.png and b/graphics/pokemon/necrozma/ultra/icon.png differ diff --git a/graphics/pokemon/nidoking/anim_front_gba.png b/graphics/pokemon/nidoking/anim_front_gba.png new file mode 100644 index 0000000000..be45df2657 Binary files /dev/null and b/graphics/pokemon/nidoking/anim_front_gba.png differ diff --git a/graphics/pokemon/nidoking/back_gba.png b/graphics/pokemon/nidoking/back_gba.png new file mode 100644 index 0000000000..65a253b457 Binary files /dev/null and b/graphics/pokemon/nidoking/back_gba.png differ diff --git a/graphics/pokemon/nidoking/icon_gba.png b/graphics/pokemon/nidoking/icon_gba.png new file mode 100644 index 0000000000..baa05c6a01 Binary files /dev/null and b/graphics/pokemon/nidoking/icon_gba.png differ diff --git a/graphics/pokemon/nidoking/normal_gba.pal b/graphics/pokemon/nidoking/normal_gba.pal new file mode 100644 index 0000000000..ccde781ae0 --- /dev/null +++ b/graphics/pokemon/nidoking/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 255 +255 255 255 +230 230 213 +197 197 164 +115 115 90 +255 0 255 +255 0 255 +255 0 255 +24 205 156 +0 164 115 +0 82 65 +255 213 255 +230 156 213 +189 98 189 +139 41 131 +16 16 16 diff --git a/graphics/pokemon/nidoking/shiny_gba.pal b/graphics/pokemon/nidoking/shiny_gba.pal new file mode 100644 index 0000000000..021b228e95 --- /dev/null +++ b/graphics/pokemon/nidoking/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 255 +255 255 255 +230 230 213 +197 197 164 +115 115 90 +255 0 255 +255 0 255 +255 0 255 +164 139 156 +123 98 115 +74 49 65 +139 222 255 +98 180 255 +57 139 213 +16 49 123 +16 16 16 diff --git a/graphics/pokemon/nidoqueen/anim_front_gba.png b/graphics/pokemon/nidoqueen/anim_front_gba.png new file mode 100644 index 0000000000..db2af8d12e Binary files /dev/null and b/graphics/pokemon/nidoqueen/anim_front_gba.png differ diff --git a/graphics/pokemon/nidoqueen/back_gba.png b/graphics/pokemon/nidoqueen/back_gba.png new file mode 100644 index 0000000000..339582c54c Binary files /dev/null and b/graphics/pokemon/nidoqueen/back_gba.png differ diff --git a/graphics/pokemon/nidoqueen/icon_gba.png b/graphics/pokemon/nidoqueen/icon_gba.png new file mode 100644 index 0000000000..2d3cdc4772 Binary files /dev/null and b/graphics/pokemon/nidoqueen/icon_gba.png differ diff --git a/graphics/pokemon/nidoqueen/normal_gba.pal b/graphics/pokemon/nidoqueen/normal_gba.pal new file mode 100644 index 0000000000..ac8d604c05 --- /dev/null +++ b/graphics/pokemon/nidoqueen/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +213 213 213 +238 230 164 +230 205 139 +189 172 90 +123 98 32 +255 156 139 +238 74 57 +172 16 0 +222 255 255 +189 230 238 +139 197 205 +82 148 189 +57 90 98 +16 16 16 diff --git a/graphics/pokemon/nidoqueen/shiny_gba.pal b/graphics/pokemon/nidoqueen/shiny_gba.pal new file mode 100644 index 0000000000..1795131dce --- /dev/null +++ b/graphics/pokemon/nidoqueen/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +213 213 213 +255 222 246 +255 180 205 +213 139 164 +164 98 123 +255 156 139 +238 74 57 +172 16 0 +205 205 139 +172 172 106 +139 139 74 +106 106 41 +74 74 8 +16 16 16 diff --git a/graphics/pokemon/nidoran_f/anim_front_gba.png b/graphics/pokemon/nidoran_f/anim_front_gba.png new file mode 100644 index 0000000000..57c6b00564 Binary files /dev/null and b/graphics/pokemon/nidoran_f/anim_front_gba.png differ diff --git a/graphics/pokemon/nidoran_f/back_gba.png b/graphics/pokemon/nidoran_f/back_gba.png new file mode 100644 index 0000000000..5173e952ef Binary files /dev/null and b/graphics/pokemon/nidoran_f/back_gba.png differ diff --git a/graphics/pokemon/nidoran_f/icon_gba.png b/graphics/pokemon/nidoran_f/icon_gba.png new file mode 100644 index 0000000000..a2483ae638 Binary files /dev/null and b/graphics/pokemon/nidoran_f/icon_gba.png differ diff --git a/graphics/pokemon/nidoran_f/normal_gba.pal b/graphics/pokemon/nidoran_f/normal_gba.pal new file mode 100644 index 0000000000..daed295698 --- /dev/null +++ b/graphics/pokemon/nidoran_f/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 189 +222 255 255 +197 230 238 +139 197 205 +82 139 189 +57 90 98 +238 74 57 +197 32 16 +74 131 246 +16 98 180 +24 57 115 +255 0 255 +255 0 255 +255 0 255 +255 255 255 +16 16 16 diff --git a/graphics/pokemon/nidoran_f/shiny_gba.pal b/graphics/pokemon/nidoran_f/shiny_gba.pal new file mode 100644 index 0000000000..5b6e230fee --- /dev/null +++ b/graphics/pokemon/nidoran_f/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 189 +246 213 255 +213 180 238 +180 148 205 +148 115 172 +98 65 123 +238 74 57 +197 32 16 +98 139 65 +65 106 32 +32 74 0 +255 0 255 +255 0 255 +255 0 255 +255 255 255 +16 16 16 diff --git a/graphics/pokemon/nidoran_m/anim_front_gba.png b/graphics/pokemon/nidoran_m/anim_front_gba.png new file mode 100644 index 0000000000..84e9aa98e0 Binary files /dev/null and b/graphics/pokemon/nidoran_m/anim_front_gba.png differ diff --git a/graphics/pokemon/nidoran_m/back_gba.png b/graphics/pokemon/nidoran_m/back_gba.png new file mode 100644 index 0000000000..76c47d33ec Binary files /dev/null and b/graphics/pokemon/nidoran_m/back_gba.png differ diff --git a/graphics/pokemon/nidoran_m/icon_gba.png b/graphics/pokemon/nidoran_m/icon_gba.png new file mode 100644 index 0000000000..4467c51925 Binary files /dev/null and b/graphics/pokemon/nidoran_m/icon_gba.png differ diff --git a/graphics/pokemon/nidoran_m/normal_gba.pal b/graphics/pokemon/nidoran_m/normal_gba.pal new file mode 100644 index 0000000000..7dd064edbc --- /dev/null +++ b/graphics/pokemon/nidoran_m/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +16 16 16 +255 106 82 +222 65 41 +180 24 0 +24 205 156 +0 164 115 +0 98 65 +255 0 255 +255 213 255 +230 156 213 +189 98 189 +131 41 131 +197 197 197 +131 131 131 diff --git a/graphics/pokemon/nidoran_m/shiny_gba.pal b/graphics/pokemon/nidoran_m/shiny_gba.pal new file mode 100644 index 0000000000..41901c9ff4 --- /dev/null +++ b/graphics/pokemon/nidoran_m/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +16 16 16 +255 106 82 +222 65 41 +180 24 0 +180 131 131 +139 90 90 +98 49 49 +255 0 255 +205 246 255 +164 205 255 +123 164 213 +16 41 74 +197 197 197 +131 131 131 diff --git a/graphics/pokemon/nidorina/anim_front_gba.png b/graphics/pokemon/nidorina/anim_front_gba.png new file mode 100644 index 0000000000..8b33e786be Binary files /dev/null and b/graphics/pokemon/nidorina/anim_front_gba.png differ diff --git a/graphics/pokemon/nidorina/back_gba.png b/graphics/pokemon/nidorina/back_gba.png new file mode 100644 index 0000000000..14940d21f0 Binary files /dev/null and b/graphics/pokemon/nidorina/back_gba.png differ diff --git a/graphics/pokemon/nidorina/icon_gba.png b/graphics/pokemon/nidorina/icon_gba.png new file mode 100644 index 0000000000..ad90d02ba3 Binary files /dev/null and b/graphics/pokemon/nidorina/icon_gba.png differ diff --git a/graphics/pokemon/nidorina/normal_gba.pal b/graphics/pokemon/nidorina/normal_gba.pal new file mode 100644 index 0000000000..9f4acf8be0 --- /dev/null +++ b/graphics/pokemon/nidorina/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +197 197 197 +131 131 131 +74 131 246 +16 98 180 +24 57 115 +255 156 139 +238 74 57 +197 32 16 +222 255 255 +197 230 238 +139 197 205 +82 139 189 +57 90 98 +16 16 16 diff --git a/graphics/pokemon/nidorina/shiny_gba.pal b/graphics/pokemon/nidorina/shiny_gba.pal new file mode 100644 index 0000000000..634e882d93 --- /dev/null +++ b/graphics/pokemon/nidorina/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +197 197 197 +131 131 131 +115 139 90 +82 106 57 +41 65 16 +255 156 139 +238 74 57 +197 32 16 +255 213 255 +246 180 238 +213 148 205 +156 74 131 +98 16 74 +16 16 16 diff --git a/graphics/pokemon/nidorino/anim_front_gba.png b/graphics/pokemon/nidorino/anim_front_gba.png new file mode 100644 index 0000000000..a048b8b064 Binary files /dev/null and b/graphics/pokemon/nidorino/anim_front_gba.png differ diff --git a/graphics/pokemon/nidorino/back_gba.png b/graphics/pokemon/nidorino/back_gba.png new file mode 100644 index 0000000000..01b866e005 Binary files /dev/null and b/graphics/pokemon/nidorino/back_gba.png differ diff --git a/graphics/pokemon/nidorino/icon_gba.png b/graphics/pokemon/nidorino/icon_gba.png new file mode 100644 index 0000000000..5edc103c11 Binary files /dev/null and b/graphics/pokemon/nidorino/icon_gba.png differ diff --git a/graphics/pokemon/nidorino/normal_gba.pal b/graphics/pokemon/nidorino/normal_gba.pal new file mode 100644 index 0000000000..b0b728608a --- /dev/null +++ b/graphics/pokemon/nidorino/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 106 82 +222 65 41 +180 24 0 +57 238 189 +24 205 156 +0 164 115 +255 0 255 +16 16 16 +255 213 255 +230 156 213 +189 98 189 +131 41 131 +197 197 197 +131 131 131 diff --git a/graphics/pokemon/nidorino/shiny_gba.pal b/graphics/pokemon/nidorino/shiny_gba.pal new file mode 100644 index 0000000000..97b3c368f3 --- /dev/null +++ b/graphics/pokemon/nidorino/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 106 82 +222 65 41 +180 24 0 +213 148 180 +172 106 139 +115 49 82 +255 0 255 +16 16 16 +222 246 255 +180 205 255 +139 164 213 +8 32 74 +197 197 197 +131 131 131 diff --git a/graphics/pokemon/nihilego/icon.png b/graphics/pokemon/nihilego/icon.png index 6e8f855d59..3be83cab2f 100644 Binary files a/graphics/pokemon/nihilego/icon.png and b/graphics/pokemon/nihilego/icon.png differ diff --git a/graphics/pokemon/nincada/anim_front_gba.png b/graphics/pokemon/nincada/anim_front_gba.png new file mode 100644 index 0000000000..35ba5c5b40 Binary files /dev/null and b/graphics/pokemon/nincada/anim_front_gba.png differ diff --git a/graphics/pokemon/nincada/back_gba.png b/graphics/pokemon/nincada/back_gba.png new file mode 100644 index 0000000000..e35b19cc7b Binary files /dev/null and b/graphics/pokemon/nincada/back_gba.png differ diff --git a/graphics/pokemon/nincada/icon_gba.png b/graphics/pokemon/nincada/icon_gba.png new file mode 100644 index 0000000000..003ddb992a Binary files /dev/null and b/graphics/pokemon/nincada/icon_gba.png differ diff --git a/graphics/pokemon/nincada/normal_gba.pal b/graphics/pokemon/nincada/normal_gba.pal new file mode 100644 index 0000000000..22184bbbd7 --- /dev/null +++ b/graphics/pokemon/nincada/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 180 115 +230 213 213 +205 164 106 +172 139 98 +156 115 82 +131 197 106 +98 164 106 +115 74 57 +246 238 230 +74 123 90 +205 189 180 +180 172 148 +156 139 123 +123 115 98 +90 82 82 +41 41 41 diff --git a/graphics/pokemon/nincada/shiny_gba.pal b/graphics/pokemon/nincada/shiny_gba.pal new file mode 100644 index 0000000000..08e4c95754 --- /dev/null +++ b/graphics/pokemon/nincada/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 180 115 +255 238 164 +205 164 106 +172 139 98 +156 115 82 +156 213 74 +115 172 49 +115 74 57 +246 238 230 +82 98 41 +255 213 106 +230 172 90 +205 148 65 +180 123 41 +131 90 8 +41 41 41 diff --git a/graphics/pokemon/ninetales/alolan/back.png b/graphics/pokemon/ninetales/alola/back.png similarity index 100% rename from graphics/pokemon/ninetales/alolan/back.png rename to graphics/pokemon/ninetales/alola/back.png diff --git a/graphics/pokemon/ninetales/alolan/front.png b/graphics/pokemon/ninetales/alola/front.png similarity index 100% rename from graphics/pokemon/ninetales/alolan/front.png rename to graphics/pokemon/ninetales/alola/front.png diff --git a/graphics/pokemon/ninetales/alola/icon.png b/graphics/pokemon/ninetales/alola/icon.png new file mode 100644 index 0000000000..f433689887 Binary files /dev/null and b/graphics/pokemon/ninetales/alola/icon.png differ diff --git a/graphics/pokemon/ninetales/alolan/normal.pal b/graphics/pokemon/ninetales/alola/normal.pal similarity index 100% rename from graphics/pokemon/ninetales/alolan/normal.pal rename to graphics/pokemon/ninetales/alola/normal.pal diff --git a/graphics/pokemon/ninetales/alolan/overworld.png b/graphics/pokemon/ninetales/alola/overworld.png similarity index 100% rename from graphics/pokemon/ninetales/alolan/overworld.png rename to graphics/pokemon/ninetales/alola/overworld.png diff --git a/graphics/pokemon/ninetales/alolan/overworld_normal.pal b/graphics/pokemon/ninetales/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/ninetales/alolan/overworld_normal.pal rename to graphics/pokemon/ninetales/alola/overworld_normal.pal diff --git a/graphics/pokemon/ninetales/alolan/overworld_shiny.pal b/graphics/pokemon/ninetales/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/ninetales/alolan/overworld_shiny.pal rename to graphics/pokemon/ninetales/alola/overworld_shiny.pal diff --git a/graphics/pokemon/ninetales/alolan/shiny.pal b/graphics/pokemon/ninetales/alola/shiny.pal similarity index 100% rename from graphics/pokemon/ninetales/alolan/shiny.pal rename to graphics/pokemon/ninetales/alola/shiny.pal diff --git a/graphics/pokemon/ninetales/alolan/icon.png b/graphics/pokemon/ninetales/alolan/icon.png deleted file mode 100644 index 71ac99d5a7..0000000000 Binary files a/graphics/pokemon/ninetales/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/ninetales/anim_front_gba.png b/graphics/pokemon/ninetales/anim_front_gba.png new file mode 100644 index 0000000000..afd4cc40d0 Binary files /dev/null and b/graphics/pokemon/ninetales/anim_front_gba.png differ diff --git a/graphics/pokemon/ninetales/back_gba.png b/graphics/pokemon/ninetales/back_gba.png new file mode 100644 index 0000000000..03d8a214ff Binary files /dev/null and b/graphics/pokemon/ninetales/back_gba.png differ diff --git a/graphics/pokemon/ninetales/icon_gba.png b/graphics/pokemon/ninetales/icon_gba.png new file mode 100644 index 0000000000..1a74d34ebb Binary files /dev/null and b/graphics/pokemon/ninetales/icon_gba.png differ diff --git a/graphics/pokemon/ninetales/normal_gba.pal b/graphics/pokemon/ninetales/normal_gba.pal new file mode 100644 index 0000000000..d6d95a7d3b --- /dev/null +++ b/graphics/pokemon/ninetales/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 106 41 +222 32 16 +180 16 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 238 164 +255 213 106 +213 156 74 +156 98 16 +16 16 16 diff --git a/graphics/pokemon/ninetales/shiny_gba.pal b/graphics/pokemon/ninetales/shiny_gba.pal new file mode 100644 index 0000000000..736e5d374f --- /dev/null +++ b/graphics/pokemon/ninetales/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 106 41 +222 32 16 +180 16 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 238 246 +230 205 213 +189 164 172 +131 106 115 +16 16 16 diff --git a/graphics/pokemon/ninjask/anim_front_gba.png b/graphics/pokemon/ninjask/anim_front_gba.png new file mode 100644 index 0000000000..fda03f09cc Binary files /dev/null and b/graphics/pokemon/ninjask/anim_front_gba.png differ diff --git a/graphics/pokemon/ninjask/back_gba.png b/graphics/pokemon/ninjask/back_gba.png new file mode 100644 index 0000000000..fd2daf29a3 Binary files /dev/null and b/graphics/pokemon/ninjask/back_gba.png differ diff --git a/graphics/pokemon/ninjask/icon_gba.png b/graphics/pokemon/ninjask/icon_gba.png new file mode 100644 index 0000000000..c51533c675 Binary files /dev/null and b/graphics/pokemon/ninjask/icon_gba.png differ diff --git a/graphics/pokemon/ninjask/normal_gba.pal b/graphics/pokemon/ninjask/normal_gba.pal new file mode 100644 index 0000000000..ec7c1daa7a --- /dev/null +++ b/graphics/pokemon/ninjask/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 180 115 +255 255 255 +246 213 82 +222 172 82 +139 106 65 +246 106 16 +180 57 32 +131 57 57 +222 74 16 +213 213 205 +172 180 180 +139 148 148 +123 123 123 +90 90 123 +65 65 90 +0 0 0 diff --git a/graphics/pokemon/ninjask/shiny_gba.pal b/graphics/pokemon/ninjask/shiny_gba.pal new file mode 100644 index 0000000000..bd2fbbda99 --- /dev/null +++ b/graphics/pokemon/ninjask/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 180 115 +255 255 255 +246 213 82 +222 172 82 +139 106 65 +246 106 16 +180 57 32 +131 57 57 +222 74 16 +255 213 106 +255 213 106 +230 172 90 +205 148 65 +180 123 41 +131 90 8 +0 0 0 diff --git a/graphics/pokemon/noctowl/anim_front_gba.png b/graphics/pokemon/noctowl/anim_front_gba.png new file mode 100644 index 0000000000..7053bd201e Binary files /dev/null and b/graphics/pokemon/noctowl/anim_front_gba.png differ diff --git a/graphics/pokemon/noctowl/back_gba.png b/graphics/pokemon/noctowl/back_gba.png new file mode 100644 index 0000000000..e9984ea5e6 Binary files /dev/null and b/graphics/pokemon/noctowl/back_gba.png differ diff --git a/graphics/pokemon/noctowl/icon_gba.png b/graphics/pokemon/noctowl/icon_gba.png new file mode 100644 index 0000000000..eafbea37e2 Binary files /dev/null and b/graphics/pokemon/noctowl/icon_gba.png differ diff --git a/graphics/pokemon/noctowl/normal_gba.pal b/graphics/pokemon/noctowl/normal_gba.pal new file mode 100644 index 0000000000..7107592362 --- /dev/null +++ b/graphics/pokemon/noctowl/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 172 +230 205 98 +205 164 65 +156 115 57 +156 123 106 +123 90 74 +98 65 49 +74 41 24 +197 49 24 +156 0 0 +197 197 197 +115 115 115 +255 238 115 +16 16 16 diff --git a/graphics/pokemon/noctowl/shiny_gba.pal b/graphics/pokemon/noctowl/shiny_gba.pal new file mode 100644 index 0000000000..859222f594 --- /dev/null +++ b/graphics/pokemon/noctowl/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 255 172 +213 222 90 +189 189 57 +156 148 32 +213 164 74 +180 115 0 +123 82 0 +82 57 0 +197 49 24 +156 0 0 +197 197 197 +115 115 115 +238 246 115 +16 16 16 diff --git a/graphics/pokemon/nosepass/anim_front_gba.png b/graphics/pokemon/nosepass/anim_front_gba.png new file mode 100644 index 0000000000..4b7f7b3622 Binary files /dev/null and b/graphics/pokemon/nosepass/anim_front_gba.png differ diff --git a/graphics/pokemon/nosepass/back_gba.png b/graphics/pokemon/nosepass/back_gba.png new file mode 100644 index 0000000000..21b41a3cd1 Binary files /dev/null and b/graphics/pokemon/nosepass/back_gba.png differ diff --git a/graphics/pokemon/nosepass/icon_gba.png b/graphics/pokemon/nosepass/icon_gba.png new file mode 100644 index 0000000000..718fed8fac Binary files /dev/null and b/graphics/pokemon/nosepass/icon_gba.png differ diff --git a/graphics/pokemon/nosepass/normal_gba.pal b/graphics/pokemon/nosepass/normal_gba.pal new file mode 100644 index 0000000000..ec36812884 --- /dev/null +++ b/graphics/pokemon/nosepass/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +57 57 82 +197 197 197 +98 115 123 +131 148 164 +148 189 180 +189 213 222 +139 57 24 +205 90 24 +246 139 41 +255 197 164 +255 255 255 +74 82 82 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/nosepass/shiny_gba.pal b/graphics/pokemon/nosepass/shiny_gba.pal new file mode 100644 index 0000000000..b17260e5ad --- /dev/null +++ b/graphics/pokemon/nosepass/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 172 213 +106 74 57 +197 197 197 +106 82 49 +172 139 65 +222 180 74 +246 213 115 +189 57 24 +230 90 24 +246 139 41 +255 197 164 +255 255 255 +82 57 24 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/numel/anim_front_gba.png b/graphics/pokemon/numel/anim_front_gba.png new file mode 100644 index 0000000000..0d3ccc839f Binary files /dev/null and b/graphics/pokemon/numel/anim_front_gba.png differ diff --git a/graphics/pokemon/numel/back_gba.png b/graphics/pokemon/numel/back_gba.png new file mode 100644 index 0000000000..9722ff4383 Binary files /dev/null and b/graphics/pokemon/numel/back_gba.png differ diff --git a/graphics/pokemon/numel/icon_gba.png b/graphics/pokemon/numel/icon_gba.png new file mode 100644 index 0000000000..62281e8bf7 Binary files /dev/null and b/graphics/pokemon/numel/icon_gba.png differ diff --git a/graphics/pokemon/numel/normal_gba.pal b/graphics/pokemon/numel/normal_gba.pal new file mode 100644 index 0000000000..74388d36b2 --- /dev/null +++ b/graphics/pokemon/numel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 246 +106 98 32 +246 222 0 +205 180 57 +222 205 32 +246 246 164 +213 213 148 +255 238 106 +148 222 24 +180 246 49 +115 164 57 +90 115 106 +148 148 82 +230 222 238 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/numel/shiny_gba.pal b/graphics/pokemon/numel/shiny_gba.pal new file mode 100644 index 0000000000..2162c155c7 --- /dev/null +++ b/graphics/pokemon/numel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 180 +131 98 74 +238 197 156 +197 156 98 +205 164 123 +246 246 213 +213 213 172 +255 222 172 +90 172 230 +123 197 255 +49 131 197 +74 98 90 +131 131 65 +230 222 238 +255 255 255 +24 24 24 diff --git a/graphics/pokemon/nuzleaf/anim_front_gba.png b/graphics/pokemon/nuzleaf/anim_front_gba.png new file mode 100644 index 0000000000..02aa6b1d4b Binary files /dev/null and b/graphics/pokemon/nuzleaf/anim_front_gba.png differ diff --git a/graphics/pokemon/nuzleaf/back_gba.png b/graphics/pokemon/nuzleaf/back_gba.png new file mode 100644 index 0000000000..858377c116 Binary files /dev/null and b/graphics/pokemon/nuzleaf/back_gba.png differ diff --git a/graphics/pokemon/nuzleaf/icon_gba.png b/graphics/pokemon/nuzleaf/icon_gba.png new file mode 100644 index 0000000000..8c9f4038f3 Binary files /dev/null and b/graphics/pokemon/nuzleaf/icon_gba.png differ diff --git a/graphics/pokemon/nuzleaf/normal_gba.pal b/graphics/pokemon/nuzleaf/normal_gba.pal new file mode 100644 index 0000000000..fd8ec8bff8 --- /dev/null +++ b/graphics/pokemon/nuzleaf/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 148 246 +74 57 65 +205 205 238 +255 255 255 +123 148 82 +180 205 131 +230 238 180 +156 123 156 +205 156 98 +230 197 148 +98 197 131 +148 238 131 +65 115 57 +106 82 98 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/nuzleaf/shiny_gba.pal b/graphics/pokemon/nuzleaf/shiny_gba.pal new file mode 100644 index 0000000000..1706d316bc --- /dev/null +++ b/graphics/pokemon/nuzleaf/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +180 213 156 +74 57 65 +205 205 238 +255 255 255 +180 65 49 +222 98 49 +255 123 82 +115 90 90 +156 123 123 +189 164 156 +98 197 131 +148 238 131 +65 115 57 +106 82 98 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/octillery/anim_front_gba.png b/graphics/pokemon/octillery/anim_front_gba.png new file mode 100644 index 0000000000..82d366484e Binary files /dev/null and b/graphics/pokemon/octillery/anim_front_gba.png differ diff --git a/graphics/pokemon/octillery/back_gba.png b/graphics/pokemon/octillery/back_gba.png new file mode 100644 index 0000000000..09a8678817 Binary files /dev/null and b/graphics/pokemon/octillery/back_gba.png differ diff --git a/graphics/pokemon/octillery/icon_gba.png b/graphics/pokemon/octillery/icon_gba.png new file mode 100644 index 0000000000..a21e603272 Binary files /dev/null and b/graphics/pokemon/octillery/icon_gba.png differ diff --git a/graphics/pokemon/octillery/normal_gba.pal b/graphics/pokemon/octillery/normal_gba.pal new file mode 100644 index 0000000000..2a32e5f6d7 --- /dev/null +++ b/graphics/pokemon/octillery/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 180 106 +246 106 49 +213 57 16 +131 0 0 +255 0 255 +255 255 172 +255 213 82 +213 156 41 +148 90 0 +213 213 213 +172 172 180 +123 123 131 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/octillery/shiny_gba.pal b/graphics/pokemon/octillery/shiny_gba.pal new file mode 100644 index 0000000000..fcbdd5cdab --- /dev/null +++ b/graphics/pokemon/octillery/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 189 90 +197 156 65 +148 106 24 +82 65 49 +255 0 255 +230 255 172 +205 230 82 +164 172 41 +98 98 0 +213 213 213 +172 172 180 +123 123 131 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/oddish/anim_front_gba.png b/graphics/pokemon/oddish/anim_front_gba.png new file mode 100644 index 0000000000..9a75f16cb3 Binary files /dev/null and b/graphics/pokemon/oddish/anim_front_gba.png differ diff --git a/graphics/pokemon/oddish/back_gba.png b/graphics/pokemon/oddish/back_gba.png new file mode 100644 index 0000000000..bafd8bbfff Binary files /dev/null and b/graphics/pokemon/oddish/back_gba.png differ diff --git a/graphics/pokemon/oddish/icon_gba.png b/graphics/pokemon/oddish/icon_gba.png new file mode 100644 index 0000000000..7c46ae7e7d Binary files /dev/null and b/graphics/pokemon/oddish/icon_gba.png differ diff --git a/graphics/pokemon/oddish/normal_gba.pal b/graphics/pokemon/oddish/normal_gba.pal new file mode 100644 index 0000000000..11db38a919 --- /dev/null +++ b/graphics/pokemon/oddish/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 189 57 +255 74 0 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +255 0 255 +255 0 255 +255 0 255 +148 180 197 +115 148 164 +74 106 131 +49 74 90 +16 16 16 diff --git a/graphics/pokemon/oddish/shiny_gba.pal b/graphics/pokemon/oddish/shiny_gba.pal new file mode 100644 index 0000000000..a3b7198306 --- /dev/null +++ b/graphics/pokemon/oddish/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 189 57 +255 74 0 +246 255 106 +205 255 65 +156 205 16 +41 90 0 +255 0 255 +255 0 255 +255 0 255 +123 222 90 +82 180 49 +41 139 8 +0 74 0 +16 16 16 diff --git a/graphics/pokemon/ogerpon/cornerstone/tera/back.png b/graphics/pokemon/ogerpon/cornerstone_tera/back.png similarity index 100% rename from graphics/pokemon/ogerpon/cornerstone/tera/back.png rename to graphics/pokemon/ogerpon/cornerstone_tera/back.png diff --git a/graphics/pokemon/ogerpon/cornerstone/tera/front.png b/graphics/pokemon/ogerpon/cornerstone_tera/front.png similarity index 100% rename from graphics/pokemon/ogerpon/cornerstone/tera/front.png rename to graphics/pokemon/ogerpon/cornerstone_tera/front.png diff --git a/graphics/pokemon/ogerpon/cornerstone/tera/normal.pal b/graphics/pokemon/ogerpon/cornerstone_tera/normal.pal similarity index 100% rename from graphics/pokemon/ogerpon/cornerstone/tera/normal.pal rename to graphics/pokemon/ogerpon/cornerstone_tera/normal.pal diff --git a/graphics/pokemon/ogerpon/cornerstone/tera/shiny.pal b/graphics/pokemon/ogerpon/cornerstone_tera/shiny.pal similarity index 100% rename from graphics/pokemon/ogerpon/cornerstone/tera/shiny.pal rename to graphics/pokemon/ogerpon/cornerstone_tera/shiny.pal diff --git a/graphics/pokemon/ogerpon/hearthflame/tera/back.png b/graphics/pokemon/ogerpon/hearthflame_tera/back.png similarity index 100% rename from graphics/pokemon/ogerpon/hearthflame/tera/back.png rename to graphics/pokemon/ogerpon/hearthflame_tera/back.png diff --git a/graphics/pokemon/ogerpon/hearthflame/tera/front.png b/graphics/pokemon/ogerpon/hearthflame_tera/front.png similarity index 100% rename from graphics/pokemon/ogerpon/hearthflame/tera/front.png rename to graphics/pokemon/ogerpon/hearthflame_tera/front.png diff --git a/graphics/pokemon/ogerpon/hearthflame/tera/normal.pal b/graphics/pokemon/ogerpon/hearthflame_tera/normal.pal similarity index 100% rename from graphics/pokemon/ogerpon/hearthflame/tera/normal.pal rename to graphics/pokemon/ogerpon/hearthflame_tera/normal.pal diff --git a/graphics/pokemon/ogerpon/hearthflame/tera/shiny.pal b/graphics/pokemon/ogerpon/hearthflame_tera/shiny.pal similarity index 100% rename from graphics/pokemon/ogerpon/hearthflame/tera/shiny.pal rename to graphics/pokemon/ogerpon/hearthflame_tera/shiny.pal diff --git a/graphics/pokemon/ogerpon/tera/back.png b/graphics/pokemon/ogerpon/teal_tera/back.png similarity index 100% rename from graphics/pokemon/ogerpon/tera/back.png rename to graphics/pokemon/ogerpon/teal_tera/back.png diff --git a/graphics/pokemon/ogerpon/tera/front.png b/graphics/pokemon/ogerpon/teal_tera/front.png similarity index 100% rename from graphics/pokemon/ogerpon/tera/front.png rename to graphics/pokemon/ogerpon/teal_tera/front.png diff --git a/graphics/pokemon/ogerpon/tera/normal.pal b/graphics/pokemon/ogerpon/teal_tera/normal.pal similarity index 100% rename from graphics/pokemon/ogerpon/tera/normal.pal rename to graphics/pokemon/ogerpon/teal_tera/normal.pal diff --git a/graphics/pokemon/ogerpon/tera/shiny.pal b/graphics/pokemon/ogerpon/teal_tera/shiny.pal similarity index 100% rename from graphics/pokemon/ogerpon/tera/shiny.pal rename to graphics/pokemon/ogerpon/teal_tera/shiny.pal diff --git a/graphics/pokemon/ogerpon/wellspring/tera/back.png b/graphics/pokemon/ogerpon/wellspring_tera/back.png similarity index 100% rename from graphics/pokemon/ogerpon/wellspring/tera/back.png rename to graphics/pokemon/ogerpon/wellspring_tera/back.png diff --git a/graphics/pokemon/ogerpon/wellspring/tera/front.png b/graphics/pokemon/ogerpon/wellspring_tera/front.png similarity index 100% rename from graphics/pokemon/ogerpon/wellspring/tera/front.png rename to graphics/pokemon/ogerpon/wellspring_tera/front.png diff --git a/graphics/pokemon/ogerpon/wellspring/tera/normal.pal b/graphics/pokemon/ogerpon/wellspring_tera/normal.pal similarity index 100% rename from graphics/pokemon/ogerpon/wellspring/tera/normal.pal rename to graphics/pokemon/ogerpon/wellspring_tera/normal.pal diff --git a/graphics/pokemon/ogerpon/wellspring/tera/shiny.pal b/graphics/pokemon/ogerpon/wellspring_tera/shiny.pal similarity index 100% rename from graphics/pokemon/ogerpon/wellspring/tera/shiny.pal rename to graphics/pokemon/ogerpon/wellspring_tera/shiny.pal diff --git a/graphics/pokemon/oinkologne/female/back.png b/graphics/pokemon/oinkologne/f/back.png similarity index 100% rename from graphics/pokemon/oinkologne/female/back.png rename to graphics/pokemon/oinkologne/f/back.png diff --git a/graphics/pokemon/oinkologne/female/front.png b/graphics/pokemon/oinkologne/f/front.png similarity index 100% rename from graphics/pokemon/oinkologne/female/front.png rename to graphics/pokemon/oinkologne/f/front.png diff --git a/graphics/pokemon/oinkologne/female/icon.png b/graphics/pokemon/oinkologne/f/icon.png similarity index 100% rename from graphics/pokemon/oinkologne/female/icon.png rename to graphics/pokemon/oinkologne/f/icon.png diff --git a/graphics/pokemon/oinkologne/female/normal.pal b/graphics/pokemon/oinkologne/f/normal.pal similarity index 100% rename from graphics/pokemon/oinkologne/female/normal.pal rename to graphics/pokemon/oinkologne/f/normal.pal diff --git a/graphics/pokemon/oinkologne/female/overworld.png b/graphics/pokemon/oinkologne/f/overworld.png similarity index 100% rename from graphics/pokemon/oinkologne/female/overworld.png rename to graphics/pokemon/oinkologne/f/overworld.png diff --git a/graphics/pokemon/oinkologne/female/overworld_normal.pal b/graphics/pokemon/oinkologne/f/overworld_normal.pal similarity index 100% rename from graphics/pokemon/oinkologne/female/overworld_normal.pal rename to graphics/pokemon/oinkologne/f/overworld_normal.pal diff --git a/graphics/pokemon/oinkologne/female/overworld_shiny.pal b/graphics/pokemon/oinkologne/f/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/oinkologne/female/overworld_shiny.pal rename to graphics/pokemon/oinkologne/f/overworld_shiny.pal diff --git a/graphics/pokemon/oinkologne/female/shiny.pal b/graphics/pokemon/oinkologne/f/shiny.pal similarity index 100% rename from graphics/pokemon/oinkologne/female/shiny.pal rename to graphics/pokemon/oinkologne/f/shiny.pal diff --git a/graphics/pokemon/omanyte/anim_front_gba.png b/graphics/pokemon/omanyte/anim_front_gba.png new file mode 100644 index 0000000000..a76eabe2ce Binary files /dev/null and b/graphics/pokemon/omanyte/anim_front_gba.png differ diff --git a/graphics/pokemon/omanyte/back_gba.png b/graphics/pokemon/omanyte/back_gba.png new file mode 100644 index 0000000000..6cd77bffcf Binary files /dev/null and b/graphics/pokemon/omanyte/back_gba.png differ diff --git a/graphics/pokemon/omanyte/icon_gba.png b/graphics/pokemon/omanyte/icon_gba.png new file mode 100644 index 0000000000..94684f5c32 Binary files /dev/null and b/graphics/pokemon/omanyte/icon_gba.png differ diff --git a/graphics/pokemon/omanyte/normal_gba.pal b/graphics/pokemon/omanyte/normal_gba.pal new file mode 100644 index 0000000000..09d257a662 --- /dev/null +++ b/graphics/pokemon/omanyte/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 189 +255 255 255 +230 230 230 +255 0 255 +255 0 255 +98 98 98 +16 16 16 +255 255 172 +238 230 139 +205 197 106 +172 164 74 +98 90 16 +131 205 197 +98 172 164 +57 131 123 +16 90 82 diff --git a/graphics/pokemon/omanyte/shiny_gba.pal b/graphics/pokemon/omanyte/shiny_gba.pal new file mode 100644 index 0000000000..af72dc30dd --- /dev/null +++ b/graphics/pokemon/omanyte/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 189 +255 255 255 +230 230 230 +255 0 255 +255 0 255 +98 98 98 +16 16 16 +255 246 156 +246 222 139 +213 189 115 +172 148 82 +123 98 41 +213 156 238 +172 115 205 +131 74 172 +90 41 148 diff --git a/graphics/pokemon/omastar/anim_front_gba.png b/graphics/pokemon/omastar/anim_front_gba.png new file mode 100644 index 0000000000..677f467495 Binary files /dev/null and b/graphics/pokemon/omastar/anim_front_gba.png differ diff --git a/graphics/pokemon/omastar/back_gba.png b/graphics/pokemon/omastar/back_gba.png new file mode 100644 index 0000000000..3f74679504 Binary files /dev/null and b/graphics/pokemon/omastar/back_gba.png differ diff --git a/graphics/pokemon/omastar/icon_gba.png b/graphics/pokemon/omastar/icon_gba.png new file mode 100644 index 0000000000..b72bd6aece Binary files /dev/null and b/graphics/pokemon/omastar/icon_gba.png differ diff --git a/graphics/pokemon/omastar/normal_gba.pal b/graphics/pokemon/omastar/normal_gba.pal new file mode 100644 index 0000000000..f63530b4ef --- /dev/null +++ b/graphics/pokemon/omastar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 197 +255 238 180 +246 213 98 +180 156 65 +16 16 16 +255 0 255 +255 0 255 +255 255 172 +238 230 139 +205 197 106 +172 164 74 +106 98 16 +156 230 222 +131 205 197 +98 172 164 +16 98 90 diff --git a/graphics/pokemon/omastar/shiny_gba.pal b/graphics/pokemon/omastar/shiny_gba.pal new file mode 100644 index 0000000000..b17facc09a --- /dev/null +++ b/graphics/pokemon/omastar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 197 +255 238 180 +246 213 98 +180 156 65 +16 16 16 +255 0 255 +255 0 255 +255 255 222 +238 246 90 +213 222 74 +172 180 57 +98 106 24 +222 172 255 +189 139 238 +148 98 205 +98 49 164 diff --git a/graphics/pokemon/onix/anim_front_gba.png b/graphics/pokemon/onix/anim_front_gba.png new file mode 100644 index 0000000000..fbe64c2ece Binary files /dev/null and b/graphics/pokemon/onix/anim_front_gba.png differ diff --git a/graphics/pokemon/onix/back_gba.png b/graphics/pokemon/onix/back_gba.png new file mode 100644 index 0000000000..233e66d919 Binary files /dev/null and b/graphics/pokemon/onix/back_gba.png differ diff --git a/graphics/pokemon/onix/icon_gba.png b/graphics/pokemon/onix/icon_gba.png new file mode 100644 index 0000000000..ddd7ee4f97 Binary files /dev/null and b/graphics/pokemon/onix/icon_gba.png differ diff --git a/graphics/pokemon/onix/normal_gba.pal b/graphics/pokemon/onix/normal_gba.pal new file mode 100644 index 0000000000..e513a11e36 --- /dev/null +++ b/graphics/pokemon/onix/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 238 238 +222 213 213 +189 180 180 +131 123 123 +82 74 74 +16 16 16 diff --git a/graphics/pokemon/onix/shiny_gba.pal b/graphics/pokemon/onix/shiny_gba.pal new file mode 100644 index 0000000000..e3584ed0ce --- /dev/null +++ b/graphics/pokemon/onix/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +246 246 172 +205 205 131 +164 164 90 +123 123 49 +82 82 8 +16 16 16 diff --git a/graphics/pokemon/oranguru/icon.png b/graphics/pokemon/oranguru/icon.png index da7abe984b..99b8c13f8f 100644 Binary files a/graphics/pokemon/oranguru/icon.png and b/graphics/pokemon/oranguru/icon.png differ diff --git a/graphics/pokemon/orbeetle/gigantamax/back.png b/graphics/pokemon/orbeetle/gmax/back.png similarity index 100% rename from graphics/pokemon/orbeetle/gigantamax/back.png rename to graphics/pokemon/orbeetle/gmax/back.png diff --git a/graphics/pokemon/orbeetle/gigantamax/front.png b/graphics/pokemon/orbeetle/gmax/front.png similarity index 100% rename from graphics/pokemon/orbeetle/gigantamax/front.png rename to graphics/pokemon/orbeetle/gmax/front.png diff --git a/graphics/pokemon/orbeetle/gigantamax/icon.png b/graphics/pokemon/orbeetle/gmax/icon.png similarity index 100% rename from graphics/pokemon/orbeetle/gigantamax/icon.png rename to graphics/pokemon/orbeetle/gmax/icon.png diff --git a/graphics/pokemon/orbeetle/gigantamax/normal.pal b/graphics/pokemon/orbeetle/gmax/normal.pal similarity index 100% rename from graphics/pokemon/orbeetle/gigantamax/normal.pal rename to graphics/pokemon/orbeetle/gmax/normal.pal diff --git a/graphics/pokemon/orbeetle/gigantamax/shiny.pal b/graphics/pokemon/orbeetle/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/orbeetle/gigantamax/shiny.pal rename to graphics/pokemon/orbeetle/gmax/shiny.pal diff --git a/graphics/pokemon/oricorio/icon.png b/graphics/pokemon/oricorio/icon.png index 80936904c0..a5f53870fe 100644 Binary files a/graphics/pokemon/oricorio/icon.png and b/graphics/pokemon/oricorio/icon.png differ diff --git a/graphics/pokemon/oricorio/pau/icon.png b/graphics/pokemon/oricorio/pau/icon.png index 98040bf38d..72a009bd55 100644 Binary files a/graphics/pokemon/oricorio/pau/icon.png and b/graphics/pokemon/oricorio/pau/icon.png differ diff --git a/graphics/pokemon/oricorio/pom_pom/icon.png b/graphics/pokemon/oricorio/pom_pom/icon.png index b60855f918..d757b0564a 100644 Binary files a/graphics/pokemon/oricorio/pom_pom/icon.png and b/graphics/pokemon/oricorio/pom_pom/icon.png differ diff --git a/graphics/pokemon/oricorio/sensu/icon.png b/graphics/pokemon/oricorio/sensu/icon.png index b8423c31fc..3491f6ee02 100644 Binary files a/graphics/pokemon/oricorio/sensu/icon.png and b/graphics/pokemon/oricorio/sensu/icon.png differ diff --git a/graphics/pokemon/palossand/icon.png b/graphics/pokemon/palossand/icon.png index 3131f2c205..80f64f8b00 100644 Binary files a/graphics/pokemon/palossand/icon.png and b/graphics/pokemon/palossand/icon.png differ diff --git a/graphics/pokemon/palpitoad/overworld.png b/graphics/pokemon/palpitoad/overworld.png index 3be06ec275..dda419e276 100644 Binary files a/graphics/pokemon/palpitoad/overworld.png and b/graphics/pokemon/palpitoad/overworld.png differ diff --git a/graphics/pokemon/palpitoad/overworld_normal.pal b/graphics/pokemon/palpitoad/overworld_normal.pal index 4d5d03566c..7116f735ee 100644 --- a/graphics/pokemon/palpitoad/overworld_normal.pal +++ b/graphics/pokemon/palpitoad/overworld_normal.pal @@ -14,6 +14,6 @@ JASC-PAL 191 147 121 239 215 196 138 79 63 -0 0 0 +224 224 224 0 0 0 0 0 0 diff --git a/graphics/pokemon/palpitoad/overworld_shiny.pal b/graphics/pokemon/palpitoad/overworld_shiny.pal index 46d834cac6..cfd54885c9 100644 --- a/graphics/pokemon/palpitoad/overworld_shiny.pal +++ b/graphics/pokemon/palpitoad/overworld_shiny.pal @@ -5,15 +5,15 @@ JASC-PAL 0 0 0 96 96 94 65 65 65 -188 99 24 +248 168 16 15 87 72 38 39 41 40 168 168 8 192 208 -120 80 8 -222 196 194 +161 89 22 +176 136 128 222 196 194 96 96 94 -0 0 0 +224 224 224 0 0 0 0 0 0 diff --git a/graphics/pokemon/panpour/overworld.png b/graphics/pokemon/panpour/overworld.png index e02358cf2d..698ec1737f 100644 Binary files a/graphics/pokemon/panpour/overworld.png and b/graphics/pokemon/panpour/overworld.png differ diff --git a/graphics/pokemon/panpour/overworld_normal.pal b/graphics/pokemon/panpour/overworld_normal.pal index 99ad9dc501..31d63b727e 100644 --- a/graphics/pokemon/panpour/overworld_normal.pal +++ b/graphics/pokemon/panpour/overworld_normal.pal @@ -2,7 +2,7 @@ JASC-PAL 0100 16 152 208 160 -0 57 115 +26 54 82 24 139 172 41 180 222 0 0 0 diff --git a/graphics/pokemon/pansage/overworld.png b/graphics/pokemon/pansage/overworld.png index 6addd12e20..3e884320af 100644 Binary files a/graphics/pokemon/pansage/overworld.png and b/graphics/pokemon/pansage/overworld.png differ diff --git a/graphics/pokemon/pansear/overworld.png b/graphics/pokemon/pansear/overworld.png index 0962330b53..270f791802 100644 Binary files a/graphics/pokemon/pansear/overworld.png and b/graphics/pokemon/pansear/overworld.png differ diff --git a/graphics/pokemon/paras/anim_front_gba.png b/graphics/pokemon/paras/anim_front_gba.png new file mode 100644 index 0000000000..5a027dc071 Binary files /dev/null and b/graphics/pokemon/paras/anim_front_gba.png differ diff --git a/graphics/pokemon/paras/back_gba.png b/graphics/pokemon/paras/back_gba.png new file mode 100644 index 0000000000..cb77d2d776 Binary files /dev/null and b/graphics/pokemon/paras/back_gba.png differ diff --git a/graphics/pokemon/paras/icon_gba.png b/graphics/pokemon/paras/icon_gba.png new file mode 100644 index 0000000000..6b828b0587 Binary files /dev/null and b/graphics/pokemon/paras/icon_gba.png differ diff --git a/graphics/pokemon/paras/normal_gba.pal b/graphics/pokemon/paras/normal_gba.pal new file mode 100644 index 0000000000..46c089f352 --- /dev/null +++ b/graphics/pokemon/paras/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 246 255 +230 230 230 +164 164 164 +255 246 90 +230 222 65 +255 148 148 +255 74 74 +189 16 16 +255 0 255 +238 222 139 +230 189 82 +189 139 49 +164 90 16 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/paras/shiny_gba.pal b/graphics/pokemon/paras/shiny_gba.pal new file mode 100644 index 0000000000..77d3220752 --- /dev/null +++ b/graphics/pokemon/paras/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 246 255 +230 230 230 +164 164 164 +255 246 90 +230 222 65 +255 148 148 +255 74 74 +189 16 16 +255 0 255 +255 180 90 +230 115 32 +189 74 0 +148 32 0 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/parasect/anim_front_gba.png b/graphics/pokemon/parasect/anim_front_gba.png new file mode 100644 index 0000000000..b22a7ff893 Binary files /dev/null and b/graphics/pokemon/parasect/anim_front_gba.png differ diff --git a/graphics/pokemon/parasect/back_gba.png b/graphics/pokemon/parasect/back_gba.png new file mode 100644 index 0000000000..f313d5a911 Binary files /dev/null and b/graphics/pokemon/parasect/back_gba.png differ diff --git a/graphics/pokemon/parasect/icon_gba.png b/graphics/pokemon/parasect/icon_gba.png new file mode 100644 index 0000000000..907cbf5cab Binary files /dev/null and b/graphics/pokemon/parasect/icon_gba.png differ diff --git a/graphics/pokemon/parasect/normal_gba.pal b/graphics/pokemon/parasect/normal_gba.pal new file mode 100644 index 0000000000..158331c680 --- /dev/null +++ b/graphics/pokemon/parasect/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 246 255 +230 230 230 +164 164 164 +255 246 90 +213 205 49 +255 164 164 +255 90 90 +230 49 49 +164 16 16 +255 0 255 +255 131 82 +222 106 49 +180 65 49 +123 32 16 +16 16 16 diff --git a/graphics/pokemon/parasect/shiny_gba.pal b/graphics/pokemon/parasect/shiny_gba.pal new file mode 100644 index 0000000000..3574c408fc --- /dev/null +++ b/graphics/pokemon/parasect/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 246 255 +230 230 230 +164 164 164 +255 246 90 +213 205 49 +255 213 90 +255 172 49 +213 131 8 +156 74 0 +255 0 255 +255 189 82 +213 148 41 +172 106 0 +131 65 0 +16 16 16 diff --git a/graphics/pokemon/passimian/icon.png b/graphics/pokemon/passimian/icon.png index 6daf24ccb6..1eed7c5412 100644 Binary files a/graphics/pokemon/passimian/icon.png and b/graphics/pokemon/passimian/icon.png differ diff --git a/graphics/pokemon/patrat/overworld.png b/graphics/pokemon/patrat/overworld.png index ea2df04dc1..8b6a34f198 100644 Binary files a/graphics/pokemon/patrat/overworld.png and b/graphics/pokemon/patrat/overworld.png differ diff --git a/graphics/pokemon/pelipper/anim_front_gba.png b/graphics/pokemon/pelipper/anim_front_gba.png new file mode 100644 index 0000000000..1bf8530ae2 Binary files /dev/null and b/graphics/pokemon/pelipper/anim_front_gba.png differ diff --git a/graphics/pokemon/pelipper/back_gba.png b/graphics/pokemon/pelipper/back_gba.png new file mode 100644 index 0000000000..4b155c28de Binary files /dev/null and b/graphics/pokemon/pelipper/back_gba.png differ diff --git a/graphics/pokemon/pelipper/icon_gba.png b/graphics/pokemon/pelipper/icon_gba.png new file mode 100644 index 0000000000..55a16bc5f9 Binary files /dev/null and b/graphics/pokemon/pelipper/icon_gba.png differ diff --git a/graphics/pokemon/pelipper/normal_gba.pal b/graphics/pokemon/pelipper/normal_gba.pal new file mode 100644 index 0000000000..c78d73c37b --- /dev/null +++ b/graphics/pokemon/pelipper/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 189 139 +131 90 65 +230 172 90 +255 213 98 +255 238 156 +82 82 90 +148 213 230 +57 156 180 +115 189 213 +222 222 238 +246 246 255 +139 65 90 +189 139 57 +0 0 0 +156 156 172 +32 98 123 diff --git a/graphics/pokemon/pelipper/shiny_gba.pal b/graphics/pokemon/pelipper/shiny_gba.pal new file mode 100644 index 0000000000..41686ffed1 --- /dev/null +++ b/graphics/pokemon/pelipper/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 189 139 +131 90 65 +238 189 90 +255 230 106 +255 238 189 +82 82 90 +156 238 123 +90 156 57 +123 205 90 +230 205 255 +246 246 255 +139 65 90 +189 139 57 +0 0 0 +156 156 172 +32 98 123 diff --git a/graphics/pokemon/persian/alolan/back.png b/graphics/pokemon/persian/alola/back.png similarity index 100% rename from graphics/pokemon/persian/alolan/back.png rename to graphics/pokemon/persian/alola/back.png diff --git a/graphics/pokemon/persian/alolan/front.png b/graphics/pokemon/persian/alola/front.png similarity index 100% rename from graphics/pokemon/persian/alolan/front.png rename to graphics/pokemon/persian/alola/front.png diff --git a/graphics/pokemon/persian/alola/icon.png b/graphics/pokemon/persian/alola/icon.png new file mode 100644 index 0000000000..21ad48eb31 Binary files /dev/null and b/graphics/pokemon/persian/alola/icon.png differ diff --git a/graphics/pokemon/persian/alolan/normal.pal b/graphics/pokemon/persian/alola/normal.pal similarity index 100% rename from graphics/pokemon/persian/alolan/normal.pal rename to graphics/pokemon/persian/alola/normal.pal diff --git a/graphics/pokemon/persian/alolan/overworld.png b/graphics/pokemon/persian/alola/overworld.png similarity index 100% rename from graphics/pokemon/persian/alolan/overworld.png rename to graphics/pokemon/persian/alola/overworld.png diff --git a/graphics/pokemon/persian/alolan/overworld_normal.pal b/graphics/pokemon/persian/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/persian/alolan/overworld_normal.pal rename to graphics/pokemon/persian/alola/overworld_normal.pal diff --git a/graphics/pokemon/persian/alolan/overworld_shiny.pal b/graphics/pokemon/persian/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/persian/alolan/overworld_shiny.pal rename to graphics/pokemon/persian/alola/overworld_shiny.pal diff --git a/graphics/pokemon/persian/alolan/shiny.pal b/graphics/pokemon/persian/alola/shiny.pal similarity index 100% rename from graphics/pokemon/persian/alolan/shiny.pal rename to graphics/pokemon/persian/alola/shiny.pal diff --git a/graphics/pokemon/persian/alolan/icon.png b/graphics/pokemon/persian/alolan/icon.png deleted file mode 100644 index 75348250d5..0000000000 Binary files a/graphics/pokemon/persian/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/persian/anim_front_gba.png b/graphics/pokemon/persian/anim_front_gba.png new file mode 100644 index 0000000000..2eda6b1ce0 Binary files /dev/null and b/graphics/pokemon/persian/anim_front_gba.png differ diff --git a/graphics/pokemon/persian/back_gba.png b/graphics/pokemon/persian/back_gba.png new file mode 100644 index 0000000000..10b7acf656 Binary files /dev/null and b/graphics/pokemon/persian/back_gba.png differ diff --git a/graphics/pokemon/persian/icon_gba.png b/graphics/pokemon/persian/icon_gba.png new file mode 100644 index 0000000000..3d6f72feeb Binary files /dev/null and b/graphics/pokemon/persian/icon_gba.png differ diff --git a/graphics/pokemon/persian/normal_gba.pal b/graphics/pokemon/persian/normal_gba.pal new file mode 100644 index 0000000000..7f533e8702 --- /dev/null +++ b/graphics/pokemon/persian/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +222 222 222 +16 16 16 +255 189 156 +246 82 65 +164 16 0 +189 164 74 +148 123 32 +115 90 16 +255 0 255 +255 0 255 +255 255 172 +255 230 131 +222 180 82 +148 98 0 diff --git a/graphics/pokemon/persian/shiny_gba.pal b/graphics/pokemon/persian/shiny_gba.pal new file mode 100644 index 0000000000..7c72dc0b99 --- /dev/null +++ b/graphics/pokemon/persian/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +222 222 222 +16 16 16 +255 123 82 +222 98 49 +180 65 49 +255 189 246 +255 148 205 +148 57 98 +255 0 255 +255 0 255 +255 255 205 +255 238 164 +213 197 123 +164 131 41 diff --git a/graphics/pokemon/phanpy/anim_front_gba.png b/graphics/pokemon/phanpy/anim_front_gba.png new file mode 100644 index 0000000000..e90f240ce3 Binary files /dev/null and b/graphics/pokemon/phanpy/anim_front_gba.png differ diff --git a/graphics/pokemon/phanpy/back_gba.png b/graphics/pokemon/phanpy/back_gba.png new file mode 100644 index 0000000000..b40fb8ddf9 Binary files /dev/null and b/graphics/pokemon/phanpy/back_gba.png differ diff --git a/graphics/pokemon/phanpy/icon_gba.png b/graphics/pokemon/phanpy/icon_gba.png new file mode 100644 index 0000000000..341724973c Binary files /dev/null and b/graphics/pokemon/phanpy/icon_gba.png differ diff --git a/graphics/pokemon/phanpy/normal_gba.pal b/graphics/pokemon/phanpy/normal_gba.pal new file mode 100644 index 0000000000..57ca810fad --- /dev/null +++ b/graphics/pokemon/phanpy/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +172 213 238 +156 189 238 +98 148 197 +82 82 148 +255 0 255 +255 172 139 +246 106 82 +189 57 49 +131 0 0 +255 0 255 +255 0 255 +213 213 213 +139 139 139 +16 16 16 diff --git a/graphics/pokemon/phanpy/shiny_gba.pal b/graphics/pokemon/phanpy/shiny_gba.pal new file mode 100644 index 0000000000..a09fc1dccc --- /dev/null +++ b/graphics/pokemon/phanpy/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 246 255 +189 230 255 +106 180 230 +65 98 180 +255 0 255 +255 164 123 +255 82 65 +197 49 57 +131 0 0 +255 0 255 +255 0 255 +213 213 213 +139 139 139 +16 16 16 diff --git a/graphics/pokemon/pheromosa/icon.png b/graphics/pokemon/pheromosa/icon.png index 4ab3a02a4e..0ff38de888 100644 Binary files a/graphics/pokemon/pheromosa/icon.png and b/graphics/pokemon/pheromosa/icon.png differ diff --git a/graphics/pokemon/pichu/anim_front_gba.png b/graphics/pokemon/pichu/anim_front_gba.png new file mode 100644 index 0000000000..0ea36a2c94 Binary files /dev/null and b/graphics/pokemon/pichu/anim_front_gba.png differ diff --git a/graphics/pokemon/pichu/back_gba.png b/graphics/pokemon/pichu/back_gba.png new file mode 100644 index 0000000000..94d5936323 Binary files /dev/null and b/graphics/pokemon/pichu/back_gba.png differ diff --git a/graphics/pokemon/pichu/icon_gba.png b/graphics/pokemon/pichu/icon_gba.png new file mode 100644 index 0000000000..dd696ac101 Binary files /dev/null and b/graphics/pokemon/pichu/icon_gba.png differ diff --git a/graphics/pokemon/pichu/normal_gba.pal b/graphics/pokemon/pichu/normal_gba.pal new file mode 100644 index 0000000000..50d614dae8 --- /dev/null +++ b/graphics/pokemon/pichu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 197 +255 238 131 +230 180 65 +197 139 0 +131 82 0 +255 0 255 +255 0 255 +255 115 74 +197 65 41 +115 32 8 +205 205 205 +115 115 115 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/pichu/shiny_gba.pal b/graphics/pokemon/pichu/shiny_gba.pal new file mode 100644 index 0000000000..dd17d7fe0f --- /dev/null +++ b/graphics/pokemon/pichu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 90 +255 222 41 +222 180 0 +172 131 0 +131 82 0 +255 0 255 +255 0 255 +255 82 0 +197 0 0 +115 0 0 +205 205 205 +115 115 115 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/pichu/spiky_eared/icon.png b/graphics/pokemon/pichu/spiky_eared/icon.png index acd0234e0f..dbb47c84da 100644 Binary files a/graphics/pokemon/pichu/spiky_eared/icon.png and b/graphics/pokemon/pichu/spiky_eared/icon.png differ diff --git a/graphics/pokemon/pidgeot/anim_front_gba.png b/graphics/pokemon/pidgeot/anim_front_gba.png new file mode 100644 index 0000000000..1c202dab08 Binary files /dev/null and b/graphics/pokemon/pidgeot/anim_front_gba.png differ diff --git a/graphics/pokemon/pidgeot/back_gba.png b/graphics/pokemon/pidgeot/back_gba.png new file mode 100644 index 0000000000..22d7d27028 Binary files /dev/null and b/graphics/pokemon/pidgeot/back_gba.png differ diff --git a/graphics/pokemon/pidgeot/icon_gba.png b/graphics/pokemon/pidgeot/icon_gba.png new file mode 100644 index 0000000000..472c0640c3 Binary files /dev/null and b/graphics/pokemon/pidgeot/icon_gba.png differ diff --git a/graphics/pokemon/pidgeot/normal_gba.pal b/graphics/pokemon/pidgeot/normal_gba.pal new file mode 100644 index 0000000000..a9fff6c19e --- /dev/null +++ b/graphics/pokemon/pidgeot/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +164 164 164 +255 246 189 +255 230 139 +230 189 98 +255 172 115 +238 98 65 +213 49 24 +255 213 180 +230 180 148 +205 156 123 +172 123 90 +123 90 74 +90 57 41 +16 16 16 diff --git a/graphics/pokemon/pidgeot/shiny_gba.pal b/graphics/pokemon/pidgeot/shiny_gba.pal new file mode 100644 index 0000000000..17eaa40f2c --- /dev/null +++ b/graphics/pokemon/pidgeot/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 172 +255 255 255 +164 164 164 +246 255 205 +255 255 156 +246 205 90 +255 255 0 +255 205 0 +230 164 0 +255 238 49 +238 205 16 +205 172 16 +180 131 0 +148 90 0 +98 41 0 +16 16 16 diff --git a/graphics/pokemon/pidgeotto/anim_front_gba.png b/graphics/pokemon/pidgeotto/anim_front_gba.png new file mode 100644 index 0000000000..65ef21ec54 Binary files /dev/null and b/graphics/pokemon/pidgeotto/anim_front_gba.png differ diff --git a/graphics/pokemon/pidgeotto/back_gba.png b/graphics/pokemon/pidgeotto/back_gba.png new file mode 100644 index 0000000000..4aeab2844d Binary files /dev/null and b/graphics/pokemon/pidgeotto/back_gba.png differ diff --git a/graphics/pokemon/pidgeotto/icon_gba.png b/graphics/pokemon/pidgeotto/icon_gba.png new file mode 100644 index 0000000000..bb134533e3 Binary files /dev/null and b/graphics/pokemon/pidgeotto/icon_gba.png differ diff --git a/graphics/pokemon/pidgeotto/normal_gba.pal b/graphics/pokemon/pidgeotto/normal_gba.pal new file mode 100644 index 0000000000..bf2ec6af11 --- /dev/null +++ b/graphics/pokemon/pidgeotto/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 172 +255 255 255 +164 164 164 +246 246 164 +255 238 90 +230 180 74 +255 172 115 +238 98 65 +213 49 24 +205 156 123 +172 123 90 +123 90 74 +90 57 41 +255 0 255 +32 32 32 +255 0 255 diff --git a/graphics/pokemon/pidgeotto/shiny_gba.pal b/graphics/pokemon/pidgeotto/shiny_gba.pal new file mode 100644 index 0000000000..09a5b5cd3a --- /dev/null +++ b/graphics/pokemon/pidgeotto/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 172 +255 255 255 +164 164 164 +255 255 205 +246 238 172 +222 197 131 +255 255 65 +255 213 24 +246 172 0 +197 180 123 +164 148 90 +131 115 57 +82 65 16 +255 0 255 +32 32 32 +255 0 255 diff --git a/graphics/pokemon/pidgey/anim_front_gba.png b/graphics/pokemon/pidgey/anim_front_gba.png new file mode 100644 index 0000000000..8136556d58 Binary files /dev/null and b/graphics/pokemon/pidgey/anim_front_gba.png differ diff --git a/graphics/pokemon/pidgey/back_gba.png b/graphics/pokemon/pidgey/back_gba.png new file mode 100644 index 0000000000..ecb42e8f12 Binary files /dev/null and b/graphics/pokemon/pidgey/back_gba.png differ diff --git a/graphics/pokemon/pidgey/icon_gba.png b/graphics/pokemon/pidgey/icon_gba.png new file mode 100644 index 0000000000..44ff943116 Binary files /dev/null and b/graphics/pokemon/pidgey/icon_gba.png differ diff --git a/graphics/pokemon/pidgey/normal_gba.pal b/graphics/pokemon/pidgey/normal_gba.pal new file mode 100644 index 0000000000..94db7288c0 --- /dev/null +++ b/graphics/pokemon/pidgey/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +189 189 189 +255 246 189 +255 230 139 +230 189 98 +255 172 115 +238 98 65 +180 8 0 +205 156 123 +172 123 90 +123 90 74 +90 57 41 +255 0 255 +16 16 16 +255 0 255 diff --git a/graphics/pokemon/pidgey/shiny_gba.pal b/graphics/pokemon/pidgey/shiny_gba.pal new file mode 100644 index 0000000000..5723ea075f --- /dev/null +++ b/graphics/pokemon/pidgey/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 189 189 +255 255 197 +255 255 139 +213 213 90 +255 255 32 +255 197 0 +189 148 65 +230 222 0 +189 180 0 +148 139 0 +106 98 0 +255 0 255 +16 16 16 +255 0 255 diff --git a/graphics/pokemon/pidove/overworld.png b/graphics/pokemon/pidove/overworld.png index b55a13e390..020027d44e 100644 Binary files a/graphics/pokemon/pidove/overworld.png and b/graphics/pokemon/pidove/overworld.png differ diff --git a/graphics/pokemon/pidove/overworld_normal.pal b/graphics/pokemon/pidove/overworld_normal.pal index 704bb5f946..820bcb20cd 100644 --- a/graphics/pokemon/pidove/overworld_normal.pal +++ b/graphics/pokemon/pidove/overworld_normal.pal @@ -14,6 +14,6 @@ JASC-PAL 248 184 40 184 96 96 128 128 128 -172 172 172 +150 150 150 0 0 0 0 0 0 diff --git a/graphics/pokemon/pignite/overworld.png b/graphics/pokemon/pignite/overworld.png index 9ea0862b2d..b6b97736b9 100644 Binary files a/graphics/pokemon/pignite/overworld.png and b/graphics/pokemon/pignite/overworld.png differ diff --git a/graphics/pokemon/pignite/overworld_normal.pal b/graphics/pokemon/pignite/overworld_normal.pal index 5cf1ee3ef0..1454fac04d 100644 --- a/graphics/pokemon/pignite/overworld_normal.pal +++ b/graphics/pokemon/pignite/overworld_normal.pal @@ -4,16 +4,16 @@ JASC-PAL 152 208 160 16 16 16 0 0 0 -82 49 41 +80 48 40 57 37 37 -189 90 49 +209 95 46 123 57 41 -232 106 43 -210 182 96 -24 32 40 -83 79 60 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +232 112 40 +232 192 56 +56 32 32 +80 48 40 +232 232 248 +200 64 56 +72 72 72 +41 41 41 0 0 0 diff --git a/graphics/pokemon/pignite/overworld_shiny.pal b/graphics/pokemon/pignite/overworld_shiny.pal index 21a3212914..8d967d10b7 100644 --- a/graphics/pokemon/pignite/overworld_shiny.pal +++ b/graphics/pokemon/pignite/overworld_shiny.pal @@ -6,14 +6,14 @@ JASC-PAL 0 0 0 48 56 72 42 48 55 -120 104 240 -101 69 51 +184 136 24 +120 88 40 232 160 32 -204 156 214 +160 144 232 42 48 55 48 56 72 -0 0 0 -0 0 0 -0 0 0 -0 0 0 +232 232 248 +212 121 189 +88 48 40 +56 32 32 0 0 0 diff --git a/graphics/pokemon/pikachu/alola_cap/back.png b/graphics/pokemon/pikachu/alola/back.png similarity index 100% rename from graphics/pokemon/pikachu/alola_cap/back.png rename to graphics/pokemon/pikachu/alola/back.png diff --git a/graphics/pokemon/pikachu/alola_cap/front.png b/graphics/pokemon/pikachu/alola/front.png similarity index 100% rename from graphics/pokemon/pikachu/alola_cap/front.png rename to graphics/pokemon/pikachu/alola/front.png diff --git a/graphics/pokemon/pikachu/alola/icon.png b/graphics/pokemon/pikachu/alola/icon.png new file mode 100644 index 0000000000..0634df1ad7 Binary files /dev/null and b/graphics/pokemon/pikachu/alola/icon.png differ diff --git a/graphics/pokemon/pikachu/alola_cap/normal.pal b/graphics/pokemon/pikachu/alola/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/alola_cap/normal.pal rename to graphics/pokemon/pikachu/alola/normal.pal diff --git a/graphics/pokemon/pikachu/alola_cap/shiny.pal b/graphics/pokemon/pikachu/alola/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/alola_cap/shiny.pal rename to graphics/pokemon/pikachu/alola/shiny.pal diff --git a/graphics/pokemon/pikachu/alola_cap/icon.png b/graphics/pokemon/pikachu/alola_cap/icon.png deleted file mode 100644 index b9ba5f757f..0000000000 Binary files a/graphics/pokemon/pikachu/alola_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/anim_front_gba.png b/graphics/pokemon/pikachu/anim_front_gba.png new file mode 100644 index 0000000000..f9be054013 Binary files /dev/null and b/graphics/pokemon/pikachu/anim_front_gba.png differ diff --git a/graphics/pokemon/pikachu/back_gba.png b/graphics/pokemon/pikachu/back_gba.png new file mode 100644 index 0000000000..0ea5ff592e Binary files /dev/null and b/graphics/pokemon/pikachu/back_gba.png differ diff --git a/graphics/pokemon/pikachu/belle/icon.png b/graphics/pokemon/pikachu/belle/icon.png index b3c0f00b37..f19b289454 100644 Binary files a/graphics/pokemon/pikachu/belle/icon.png and b/graphics/pokemon/pikachu/belle/icon.png differ diff --git a/graphics/pokemon/pikachu/cosplay/icon.png b/graphics/pokemon/pikachu/cosplay/icon.png index c826dacab0..21d9172a1f 100644 Binary files a/graphics/pokemon/pikachu/cosplay/icon.png and b/graphics/pokemon/pikachu/cosplay/icon.png differ diff --git a/graphics/pokemon/pikachu/gigantamax/back.png b/graphics/pokemon/pikachu/gmax/back.png similarity index 100% rename from graphics/pokemon/pikachu/gigantamax/back.png rename to graphics/pokemon/pikachu/gmax/back.png diff --git a/graphics/pokemon/pikachu/gigantamax/front.png b/graphics/pokemon/pikachu/gmax/front.png similarity index 100% rename from graphics/pokemon/pikachu/gigantamax/front.png rename to graphics/pokemon/pikachu/gmax/front.png diff --git a/graphics/pokemon/pikachu/gigantamax/icon.png b/graphics/pokemon/pikachu/gmax/icon.png similarity index 100% rename from graphics/pokemon/pikachu/gigantamax/icon.png rename to graphics/pokemon/pikachu/gmax/icon.png diff --git a/graphics/pokemon/pikachu/gigantamax/normal.pal b/graphics/pokemon/pikachu/gmax/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/gigantamax/normal.pal rename to graphics/pokemon/pikachu/gmax/normal.pal diff --git a/graphics/pokemon/pikachu/gigantamax/shiny.pal b/graphics/pokemon/pikachu/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/gigantamax/shiny.pal rename to graphics/pokemon/pikachu/gmax/shiny.pal diff --git a/graphics/pokemon/pikachu/hoenn_cap/back.png b/graphics/pokemon/pikachu/hoenn/back.png similarity index 100% rename from graphics/pokemon/pikachu/hoenn_cap/back.png rename to graphics/pokemon/pikachu/hoenn/back.png diff --git a/graphics/pokemon/pikachu/hoenn_cap/front.png b/graphics/pokemon/pikachu/hoenn/front.png similarity index 100% rename from graphics/pokemon/pikachu/hoenn_cap/front.png rename to graphics/pokemon/pikachu/hoenn/front.png diff --git a/graphics/pokemon/pikachu/hoenn/icon.png b/graphics/pokemon/pikachu/hoenn/icon.png new file mode 100644 index 0000000000..5b9cbb2ba6 Binary files /dev/null and b/graphics/pokemon/pikachu/hoenn/icon.png differ diff --git a/graphics/pokemon/pikachu/hoenn_cap/normal.pal b/graphics/pokemon/pikachu/hoenn/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/hoenn_cap/normal.pal rename to graphics/pokemon/pikachu/hoenn/normal.pal diff --git a/graphics/pokemon/pikachu/hoenn_cap/shiny.pal b/graphics/pokemon/pikachu/hoenn/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/hoenn_cap/shiny.pal rename to graphics/pokemon/pikachu/hoenn/shiny.pal diff --git a/graphics/pokemon/pikachu/hoenn_cap/icon.png b/graphics/pokemon/pikachu/hoenn_cap/icon.png deleted file mode 100644 index e5f8bfe206..0000000000 Binary files a/graphics/pokemon/pikachu/hoenn_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/icon_gba.png b/graphics/pokemon/pikachu/icon_gba.png new file mode 100644 index 0000000000..feb77f7db4 Binary files /dev/null and b/graphics/pokemon/pikachu/icon_gba.png differ diff --git a/graphics/pokemon/pikachu/kalos_cap/back.png b/graphics/pokemon/pikachu/kalos/back.png similarity index 100% rename from graphics/pokemon/pikachu/kalos_cap/back.png rename to graphics/pokemon/pikachu/kalos/back.png diff --git a/graphics/pokemon/pikachu/kalos_cap/front.png b/graphics/pokemon/pikachu/kalos/front.png similarity index 100% rename from graphics/pokemon/pikachu/kalos_cap/front.png rename to graphics/pokemon/pikachu/kalos/front.png diff --git a/graphics/pokemon/pikachu/kalos/icon.png b/graphics/pokemon/pikachu/kalos/icon.png new file mode 100644 index 0000000000..2aae11d524 Binary files /dev/null and b/graphics/pokemon/pikachu/kalos/icon.png differ diff --git a/graphics/pokemon/pikachu/kalos_cap/normal.pal b/graphics/pokemon/pikachu/kalos/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/kalos_cap/normal.pal rename to graphics/pokemon/pikachu/kalos/normal.pal diff --git a/graphics/pokemon/pikachu/kalos_cap/shiny.pal b/graphics/pokemon/pikachu/kalos/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/kalos_cap/shiny.pal rename to graphics/pokemon/pikachu/kalos/shiny.pal diff --git a/graphics/pokemon/pikachu/kalos_cap/icon.png b/graphics/pokemon/pikachu/kalos_cap/icon.png deleted file mode 100644 index c903ea9f3f..0000000000 Binary files a/graphics/pokemon/pikachu/kalos_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/libre/icon.png b/graphics/pokemon/pikachu/libre/icon.png index c1163a1619..ef6e8f1553 100644 Binary files a/graphics/pokemon/pikachu/libre/icon.png and b/graphics/pokemon/pikachu/libre/icon.png differ diff --git a/graphics/pokemon/pikachu/normal_gba.pal b/graphics/pokemon/pikachu/normal_gba.pal new file mode 100644 index 0000000000..bb60c24a99 --- /dev/null +++ b/graphics/pokemon/pikachu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +255 255 123 +255 238 0 +238 189 0 +197 139 0 +131 82 0 +255 0 255 +255 0 255 +255 0 255 +255 74 74 +230 0 0 +180 0 0 +106 106 106 +16 16 16 +255 0 255 diff --git a/graphics/pokemon/pikachu/original_cap/back.png b/graphics/pokemon/pikachu/original/back.png similarity index 100% rename from graphics/pokemon/pikachu/original_cap/back.png rename to graphics/pokemon/pikachu/original/back.png diff --git a/graphics/pokemon/pikachu/original_cap/front.png b/graphics/pokemon/pikachu/original/front.png similarity index 100% rename from graphics/pokemon/pikachu/original_cap/front.png rename to graphics/pokemon/pikachu/original/front.png diff --git a/graphics/pokemon/pikachu/original/icon.png b/graphics/pokemon/pikachu/original/icon.png new file mode 100644 index 0000000000..d4b80f3dc7 Binary files /dev/null and b/graphics/pokemon/pikachu/original/icon.png differ diff --git a/graphics/pokemon/pikachu/original_cap/normal.pal b/graphics/pokemon/pikachu/original/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/original_cap/normal.pal rename to graphics/pokemon/pikachu/original/normal.pal diff --git a/graphics/pokemon/pikachu/original_cap/shiny.pal b/graphics/pokemon/pikachu/original/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/original_cap/shiny.pal rename to graphics/pokemon/pikachu/original/shiny.pal diff --git a/graphics/pokemon/pikachu/original_cap/icon.png b/graphics/pokemon/pikachu/original_cap/icon.png deleted file mode 100644 index d84764b65c..0000000000 Binary files a/graphics/pokemon/pikachu/original_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/partner_cap/back.png b/graphics/pokemon/pikachu/partner/back.png similarity index 100% rename from graphics/pokemon/pikachu/partner_cap/back.png rename to graphics/pokemon/pikachu/partner/back.png diff --git a/graphics/pokemon/pikachu/partner_cap/front.png b/graphics/pokemon/pikachu/partner/front.png similarity index 100% rename from graphics/pokemon/pikachu/partner_cap/front.png rename to graphics/pokemon/pikachu/partner/front.png diff --git a/graphics/pokemon/pikachu/partner/icon.png b/graphics/pokemon/pikachu/partner/icon.png index 891f0d1b3e..09ae0c691a 100644 Binary files a/graphics/pokemon/pikachu/partner/icon.png and b/graphics/pokemon/pikachu/partner/icon.png differ diff --git a/graphics/pokemon/pikachu/partner_cap/normal.pal b/graphics/pokemon/pikachu/partner/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/partner_cap/normal.pal rename to graphics/pokemon/pikachu/partner/normal.pal diff --git a/graphics/pokemon/pikachu/partner_cap/shiny.pal b/graphics/pokemon/pikachu/partner/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/partner_cap/shiny.pal rename to graphics/pokemon/pikachu/partner/shiny.pal diff --git a/graphics/pokemon/pikachu/partner_cap/icon.png b/graphics/pokemon/pikachu/partner_cap/icon.png deleted file mode 100644 index 09ae0c691a..0000000000 Binary files a/graphics/pokemon/pikachu/partner_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/ph_d/icon.png b/graphics/pokemon/pikachu/ph_d/icon.png deleted file mode 100644 index f0b66bccf8..0000000000 Binary files a/graphics/pokemon/pikachu/ph_d/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/ph_d/back.png b/graphics/pokemon/pikachu/phd/back.png similarity index 100% rename from graphics/pokemon/pikachu/ph_d/back.png rename to graphics/pokemon/pikachu/phd/back.png diff --git a/graphics/pokemon/pikachu/ph_d/front.png b/graphics/pokemon/pikachu/phd/front.png similarity index 100% rename from graphics/pokemon/pikachu/ph_d/front.png rename to graphics/pokemon/pikachu/phd/front.png diff --git a/graphics/pokemon/pikachu/phd/icon.png b/graphics/pokemon/pikachu/phd/icon.png new file mode 100644 index 0000000000..3d228c4275 Binary files /dev/null and b/graphics/pokemon/pikachu/phd/icon.png differ diff --git a/graphics/pokemon/pikachu/ph_d/normal.pal b/graphics/pokemon/pikachu/phd/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/ph_d/normal.pal rename to graphics/pokemon/pikachu/phd/normal.pal diff --git a/graphics/pokemon/pikachu/ph_d/shiny.pal b/graphics/pokemon/pikachu/phd/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/ph_d/shiny.pal rename to graphics/pokemon/pikachu/phd/shiny.pal diff --git a/graphics/pokemon/pikachu/pop_star/icon.png b/graphics/pokemon/pikachu/pop_star/icon.png index eb9b49e70a..1775f78db1 100644 Binary files a/graphics/pokemon/pikachu/pop_star/icon.png and b/graphics/pokemon/pikachu/pop_star/icon.png differ diff --git a/graphics/pokemon/pikachu/rock_star/icon.png b/graphics/pokemon/pikachu/rock_star/icon.png index 2c8d144d60..89025f0f3e 100644 Binary files a/graphics/pokemon/pikachu/rock_star/icon.png and b/graphics/pokemon/pikachu/rock_star/icon.png differ diff --git a/graphics/pokemon/pikachu/shiny_gba.pal b/graphics/pokemon/pikachu/shiny_gba.pal new file mode 100644 index 0000000000..d4b783b0e6 --- /dev/null +++ b/graphics/pokemon/pikachu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +255 238 139 +246 205 32 +255 131 0 +205 98 0 +164 41 0 +255 0 255 +255 0 255 +255 0 255 +255 49 0 +205 57 0 +180 32 0 +106 106 106 +16 16 16 +255 0 255 diff --git a/graphics/pokemon/pikachu/sinnoh_cap/back.png b/graphics/pokemon/pikachu/sinnoh/back.png similarity index 100% rename from graphics/pokemon/pikachu/sinnoh_cap/back.png rename to graphics/pokemon/pikachu/sinnoh/back.png diff --git a/graphics/pokemon/pikachu/sinnoh_cap/front.png b/graphics/pokemon/pikachu/sinnoh/front.png similarity index 100% rename from graphics/pokemon/pikachu/sinnoh_cap/front.png rename to graphics/pokemon/pikachu/sinnoh/front.png diff --git a/graphics/pokemon/pikachu/sinnoh/icon.png b/graphics/pokemon/pikachu/sinnoh/icon.png new file mode 100644 index 0000000000..fbd66b0525 Binary files /dev/null and b/graphics/pokemon/pikachu/sinnoh/icon.png differ diff --git a/graphics/pokemon/pikachu/sinnoh_cap/normal.pal b/graphics/pokemon/pikachu/sinnoh/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/sinnoh_cap/normal.pal rename to graphics/pokemon/pikachu/sinnoh/normal.pal diff --git a/graphics/pokemon/pikachu/sinnoh_cap/shiny.pal b/graphics/pokemon/pikachu/sinnoh/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/sinnoh_cap/shiny.pal rename to graphics/pokemon/pikachu/sinnoh/shiny.pal diff --git a/graphics/pokemon/pikachu/sinnoh_cap/icon.png b/graphics/pokemon/pikachu/sinnoh_cap/icon.png deleted file mode 100644 index 081ee6aae3..0000000000 Binary files a/graphics/pokemon/pikachu/sinnoh_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/starter/icon.png b/graphics/pokemon/pikachu/starter/icon.png new file mode 100644 index 0000000000..737fababd7 Binary files /dev/null and b/graphics/pokemon/pikachu/starter/icon.png differ diff --git a/graphics/pokemon/pikachu/partner/iconf.png b/graphics/pokemon/pikachu/starter/iconf.png similarity index 100% rename from graphics/pokemon/pikachu/partner/iconf.png rename to graphics/pokemon/pikachu/starter/iconf.png diff --git a/graphics/pokemon/pikachu/unova_cap/back.png b/graphics/pokemon/pikachu/unova/back.png similarity index 100% rename from graphics/pokemon/pikachu/unova_cap/back.png rename to graphics/pokemon/pikachu/unova/back.png diff --git a/graphics/pokemon/pikachu/unova_cap/front.png b/graphics/pokemon/pikachu/unova/front.png similarity index 100% rename from graphics/pokemon/pikachu/unova_cap/front.png rename to graphics/pokemon/pikachu/unova/front.png diff --git a/graphics/pokemon/pikachu/unova/icon.png b/graphics/pokemon/pikachu/unova/icon.png new file mode 100644 index 0000000000..427a38c6d6 Binary files /dev/null and b/graphics/pokemon/pikachu/unova/icon.png differ diff --git a/graphics/pokemon/pikachu/unova_cap/normal.pal b/graphics/pokemon/pikachu/unova/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/unova_cap/normal.pal rename to graphics/pokemon/pikachu/unova/normal.pal diff --git a/graphics/pokemon/pikachu/unova_cap/shiny.pal b/graphics/pokemon/pikachu/unova/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/unova_cap/shiny.pal rename to graphics/pokemon/pikachu/unova/shiny.pal diff --git a/graphics/pokemon/pikachu/unova_cap/icon.png b/graphics/pokemon/pikachu/unova_cap/icon.png deleted file mode 100644 index b6427a5ec2..0000000000 Binary files a/graphics/pokemon/pikachu/unova_cap/icon.png and /dev/null differ diff --git a/graphics/pokemon/pikachu/world_cap/back.png b/graphics/pokemon/pikachu/world/back.png similarity index 100% rename from graphics/pokemon/pikachu/world_cap/back.png rename to graphics/pokemon/pikachu/world/back.png diff --git a/graphics/pokemon/pikachu/world_cap/front.png b/graphics/pokemon/pikachu/world/front.png similarity index 100% rename from graphics/pokemon/pikachu/world_cap/front.png rename to graphics/pokemon/pikachu/world/front.png diff --git a/graphics/pokemon/pikachu/world_cap/icon.png b/graphics/pokemon/pikachu/world/icon.png similarity index 64% rename from graphics/pokemon/pikachu/world_cap/icon.png rename to graphics/pokemon/pikachu/world/icon.png index 260e29cda2..58c4ed1f48 100644 Binary files a/graphics/pokemon/pikachu/world_cap/icon.png and b/graphics/pokemon/pikachu/world/icon.png differ diff --git a/graphics/pokemon/pikachu/world_cap/normal.pal b/graphics/pokemon/pikachu/world/normal.pal similarity index 100% rename from graphics/pokemon/pikachu/world_cap/normal.pal rename to graphics/pokemon/pikachu/world/normal.pal diff --git a/graphics/pokemon/pikachu/world_cap/shiny.pal b/graphics/pokemon/pikachu/world/shiny.pal similarity index 100% rename from graphics/pokemon/pikachu/world_cap/shiny.pal rename to graphics/pokemon/pikachu/world/shiny.pal diff --git a/graphics/pokemon/pikipek/icon.png b/graphics/pokemon/pikipek/icon.png index 291e148f1a..9a65234d8d 100644 Binary files a/graphics/pokemon/pikipek/icon.png and b/graphics/pokemon/pikipek/icon.png differ diff --git a/graphics/pokemon/piloswine/anim_front_gba.png b/graphics/pokemon/piloswine/anim_front_gba.png new file mode 100644 index 0000000000..ed0870abc5 Binary files /dev/null and b/graphics/pokemon/piloswine/anim_front_gba.png differ diff --git a/graphics/pokemon/piloswine/back_gba.png b/graphics/pokemon/piloswine/back_gba.png new file mode 100644 index 0000000000..a9a3bfed8e Binary files /dev/null and b/graphics/pokemon/piloswine/back_gba.png differ diff --git a/graphics/pokemon/piloswine/icon_gba.png b/graphics/pokemon/piloswine/icon_gba.png new file mode 100644 index 0000000000..974e9ea6a9 Binary files /dev/null and b/graphics/pokemon/piloswine/icon_gba.png differ diff --git a/graphics/pokemon/piloswine/normal_gba.pal b/graphics/pokemon/piloswine/normal_gba.pal new file mode 100644 index 0000000000..287cfcd0d0 --- /dev/null +++ b/graphics/pokemon/piloswine/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 197 115 +197 164 82 +164 131 57 +123 98 24 +82 57 0 +255 0 255 +255 189 131 +222 139 82 +180 98 41 +255 0 255 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/piloswine/shiny_gba.pal b/graphics/pokemon/piloswine/shiny_gba.pal new file mode 100644 index 0000000000..ff56a634a0 --- /dev/null +++ b/graphics/pokemon/piloswine/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 238 156 +222 213 115 +189 180 90 +148 139 57 +82 57 0 +255 0 255 +255 189 131 +222 139 82 +180 98 41 +255 0 255 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/pineco/anim_front_gba.png b/graphics/pokemon/pineco/anim_front_gba.png new file mode 100644 index 0000000000..6b554b9842 Binary files /dev/null and b/graphics/pokemon/pineco/anim_front_gba.png differ diff --git a/graphics/pokemon/pineco/back_gba.png b/graphics/pokemon/pineco/back_gba.png new file mode 100644 index 0000000000..a92454bb32 Binary files /dev/null and b/graphics/pokemon/pineco/back_gba.png differ diff --git a/graphics/pokemon/pineco/icon_gba.png b/graphics/pokemon/pineco/icon_gba.png new file mode 100644 index 0000000000..3c12df5a2f Binary files /dev/null and b/graphics/pokemon/pineco/icon_gba.png differ diff --git a/graphics/pokemon/pineco/normal_gba.pal b/graphics/pokemon/pineco/normal_gba.pal new file mode 100644 index 0000000000..91acee124a --- /dev/null +++ b/graphics/pokemon/pineco/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +41 74 123 +57 115 164 +82 172 180 +131 213 213 +180 238 246 +156 164 164 +255 74 57 +255 0 255 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/pineco/shiny_gba.pal b/graphics/pokemon/pineco/shiny_gba.pal new file mode 100644 index 0000000000..a474cc3e84 --- /dev/null +++ b/graphics/pokemon/pineco/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +90 65 65 +148 90 82 +172 139 82 +230 197 106 +255 230 131 +156 164 164 +255 74 57 +255 0 255 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/pinsir/anim_front_gba.png b/graphics/pokemon/pinsir/anim_front_gba.png new file mode 100644 index 0000000000..576e56b7d0 Binary files /dev/null and b/graphics/pokemon/pinsir/anim_front_gba.png differ diff --git a/graphics/pokemon/pinsir/back_gba.png b/graphics/pokemon/pinsir/back_gba.png new file mode 100644 index 0000000000..95ee9784c5 Binary files /dev/null and b/graphics/pokemon/pinsir/back_gba.png differ diff --git a/graphics/pokemon/pinsir/icon_gba.png b/graphics/pokemon/pinsir/icon_gba.png new file mode 100644 index 0000000000..b05b075b90 Binary files /dev/null and b/graphics/pokemon/pinsir/icon_gba.png differ diff --git a/graphics/pokemon/pinsir/normal_gba.pal b/graphics/pokemon/pinsir/normal_gba.pal new file mode 100644 index 0000000000..9ef4b91f2e --- /dev/null +++ b/graphics/pokemon/pinsir/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +246 246 213 +213 213 180 +164 164 131 +82 82 65 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +230 213 172 +197 172 139 +148 123 98 +90 65 41 +16 16 16 diff --git a/graphics/pokemon/pinsir/shiny_gba.pal b/graphics/pokemon/pinsir/shiny_gba.pal new file mode 100644 index 0000000000..cd06d2111b --- /dev/null +++ b/graphics/pokemon/pinsir/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +255 238 189 +230 197 156 +180 156 106 +98 74 57 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +123 139 222 +98 106 180 +57 65 106 +32 41 82 +16 16 16 diff --git a/graphics/pokemon/plusle/anim_front_gba.png b/graphics/pokemon/plusle/anim_front_gba.png new file mode 100644 index 0000000000..123efe4ef1 Binary files /dev/null and b/graphics/pokemon/plusle/anim_front_gba.png differ diff --git a/graphics/pokemon/plusle/back_gba.png b/graphics/pokemon/plusle/back_gba.png new file mode 100644 index 0000000000..7365f99210 Binary files /dev/null and b/graphics/pokemon/plusle/back_gba.png differ diff --git a/graphics/pokemon/plusle/icon_gba.png b/graphics/pokemon/plusle/icon_gba.png new file mode 100644 index 0000000000..97f10d56f1 Binary files /dev/null and b/graphics/pokemon/plusle/icon_gba.png differ diff --git a/graphics/pokemon/plusle/normal_gba.pal b/graphics/pokemon/plusle/normal_gba.pal new file mode 100644 index 0000000000..e225ab56a4 --- /dev/null +++ b/graphics/pokemon/plusle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 246 222 +255 238 197 +238 213 131 +189 172 131 +123 115 82 +238 156 115 +222 98 74 +139 90 49 +238 82 57 +41 49 65 +98 98 115 +65 65 98 +148 148 148 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/plusle/shiny_gba.pal b/graphics/pokemon/plusle/shiny_gba.pal new file mode 100644 index 0000000000..f1305ea504 --- /dev/null +++ b/graphics/pokemon/plusle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 246 222 +255 238 164 +255 213 106 +205 148 82 +139 82 16 +238 90 49 +205 49 8 +148 16 0 +164 32 16 +41 49 65 +98 98 115 +65 65 98 +148 148 148 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/poipole/icon.png b/graphics/pokemon/poipole/icon.png index dce46b073d..b1ab69e8fb 100644 Binary files a/graphics/pokemon/poipole/icon.png and b/graphics/pokemon/poipole/icon.png differ diff --git a/graphics/pokemon/politoed/anim_front_gba.png b/graphics/pokemon/politoed/anim_front_gba.png new file mode 100644 index 0000000000..d2b8b43aa6 Binary files /dev/null and b/graphics/pokemon/politoed/anim_front_gba.png differ diff --git a/graphics/pokemon/politoed/back_gba.png b/graphics/pokemon/politoed/back_gba.png new file mode 100644 index 0000000000..5337b6f277 Binary files /dev/null and b/graphics/pokemon/politoed/back_gba.png differ diff --git a/graphics/pokemon/politoed/icon_gba.png b/graphics/pokemon/politoed/icon_gba.png new file mode 100644 index 0000000000..a5e5d699b5 Binary files /dev/null and b/graphics/pokemon/politoed/icon_gba.png differ diff --git a/graphics/pokemon/politoed/normal_gba.pal b/graphics/pokemon/politoed/normal_gba.pal new file mode 100644 index 0000000000..31177861d6 --- /dev/null +++ b/graphics/pokemon/politoed/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 164 +255 230 82 +230 180 41 +156 98 0 +205 255 131 +156 238 49 +123 189 24 +49 123 0 +255 180 106 +230 106 49 +180 57 0 +205 205 205 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/politoed/shiny_gba.pal b/graphics/pokemon/politoed/shiny_gba.pal new file mode 100644 index 0000000000..1d25291bf4 --- /dev/null +++ b/graphics/pokemon/politoed/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 230 238 +246 205 238 +213 164 205 +123 82 123 +156 230 255 +115 197 255 +74 148 205 +49 90 148 +255 172 90 +230 106 49 +164 57 32 +205 205 205 +131 131 131 +16 16 16 diff --git a/graphics/pokemon/poliwag/anim_front_gba.png b/graphics/pokemon/poliwag/anim_front_gba.png new file mode 100644 index 0000000000..32c3393834 Binary files /dev/null and b/graphics/pokemon/poliwag/anim_front_gba.png differ diff --git a/graphics/pokemon/poliwag/back_gba.png b/graphics/pokemon/poliwag/back_gba.png new file mode 100644 index 0000000000..a6e5d23fa2 Binary files /dev/null and b/graphics/pokemon/poliwag/back_gba.png differ diff --git a/graphics/pokemon/poliwag/icon_gba.png b/graphics/pokemon/poliwag/icon_gba.png new file mode 100644 index 0000000000..d4cd95f1c0 Binary files /dev/null and b/graphics/pokemon/poliwag/icon_gba.png differ diff --git a/graphics/pokemon/poliwag/normal_gba.pal b/graphics/pokemon/poliwag/normal_gba.pal new file mode 100644 index 0000000000..14f781ec90 --- /dev/null +++ b/graphics/pokemon/poliwag/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +98 98 98 +255 0 255 +255 0 255 +255 0 255 +255 189 172 +255 139 123 +238 90 74 +180 189 230 +131 139 180 +98 106 148 +65 82 98 +16 16 16 diff --git a/graphics/pokemon/poliwag/shiny_gba.pal b/graphics/pokemon/poliwag/shiny_gba.pal new file mode 100644 index 0000000000..1789edc4ae --- /dev/null +++ b/graphics/pokemon/poliwag/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +98 98 98 +255 0 255 +255 0 255 +255 0 255 +255 189 172 +255 139 123 +238 90 74 +123 205 255 +82 164 222 +41 123 180 +0 65 123 +16 16 16 diff --git a/graphics/pokemon/poliwhirl/anim_front_gba.png b/graphics/pokemon/poliwhirl/anim_front_gba.png new file mode 100644 index 0000000000..df878ca7b2 Binary files /dev/null and b/graphics/pokemon/poliwhirl/anim_front_gba.png differ diff --git a/graphics/pokemon/poliwhirl/back_gba.png b/graphics/pokemon/poliwhirl/back_gba.png new file mode 100644 index 0000000000..16531886a6 Binary files /dev/null and b/graphics/pokemon/poliwhirl/back_gba.png differ diff --git a/graphics/pokemon/poliwhirl/icon_gba.png b/graphics/pokemon/poliwhirl/icon_gba.png new file mode 100644 index 0000000000..c25dabbfe4 Binary files /dev/null and b/graphics/pokemon/poliwhirl/icon_gba.png differ diff --git a/graphics/pokemon/poliwhirl/normal_gba.pal b/graphics/pokemon/poliwhirl/normal_gba.pal new file mode 100644 index 0000000000..50de4d6313 --- /dev/null +++ b/graphics/pokemon/poliwhirl/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +164 164 164 +255 0 255 +255 0 255 +255 0 255 +123 123 123 +82 82 82 +255 0 255 +180 189 230 +131 148 197 +98 106 148 +32 57 98 +16 16 16 diff --git a/graphics/pokemon/poliwhirl/shiny_gba.pal b/graphics/pokemon/poliwhirl/shiny_gba.pal new file mode 100644 index 0000000000..b6aa45616b --- /dev/null +++ b/graphics/pokemon/poliwhirl/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +164 164 164 +255 0 255 +255 0 255 +255 0 255 +123 123 123 +82 82 82 +255 0 255 +106 213 255 +65 172 222 +24 131 180 +0 65 115 +16 16 16 diff --git a/graphics/pokemon/poliwrath/anim_front_gba.png b/graphics/pokemon/poliwrath/anim_front_gba.png new file mode 100644 index 0000000000..ec68c4aa58 Binary files /dev/null and b/graphics/pokemon/poliwrath/anim_front_gba.png differ diff --git a/graphics/pokemon/poliwrath/back_gba.png b/graphics/pokemon/poliwrath/back_gba.png new file mode 100644 index 0000000000..e5bee36634 Binary files /dev/null and b/graphics/pokemon/poliwrath/back_gba.png differ diff --git a/graphics/pokemon/poliwrath/icon_gba.png b/graphics/pokemon/poliwrath/icon_gba.png new file mode 100644 index 0000000000..d1afb4511f Binary files /dev/null and b/graphics/pokemon/poliwrath/icon_gba.png differ diff --git a/graphics/pokemon/poliwrath/normal_gba.pal b/graphics/pokemon/poliwrath/normal_gba.pal new file mode 100644 index 0000000000..14f4493d4e --- /dev/null +++ b/graphics/pokemon/poliwrath/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +164 164 164 +255 0 255 +255 0 255 +255 0 255 +123 123 123 +82 82 82 +16 16 16 +180 189 230 +131 139 180 +98 106 148 +49 49 106 +255 0 255 diff --git a/graphics/pokemon/poliwrath/shiny_gba.pal b/graphics/pokemon/poliwrath/shiny_gba.pal new file mode 100644 index 0000000000..64aab4039a --- /dev/null +++ b/graphics/pokemon/poliwrath/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 222 222 +189 189 189 +164 164 164 +255 0 255 +255 0 255 +255 0 255 +123 123 123 +82 82 82 +16 16 16 +148 189 131 +106 148 90 +65 106 49 +24 65 8 +255 0 255 diff --git a/graphics/pokemon/ponyta/anim_front_gba.png b/graphics/pokemon/ponyta/anim_front_gba.png new file mode 100644 index 0000000000..abee4ad854 Binary files /dev/null and b/graphics/pokemon/ponyta/anim_front_gba.png differ diff --git a/graphics/pokemon/ponyta/back_gba.png b/graphics/pokemon/ponyta/back_gba.png new file mode 100644 index 0000000000..cc4bf11893 Binary files /dev/null and b/graphics/pokemon/ponyta/back_gba.png differ diff --git a/graphics/pokemon/ponyta/galarian/back.png b/graphics/pokemon/ponyta/galar/back.png similarity index 100% rename from graphics/pokemon/ponyta/galarian/back.png rename to graphics/pokemon/ponyta/galar/back.png diff --git a/graphics/pokemon/ponyta/galarian/front.png b/graphics/pokemon/ponyta/galar/front.png similarity index 100% rename from graphics/pokemon/ponyta/galarian/front.png rename to graphics/pokemon/ponyta/galar/front.png diff --git a/graphics/pokemon/ponyta/galarian/icon.png b/graphics/pokemon/ponyta/galar/icon.png similarity index 100% rename from graphics/pokemon/ponyta/galarian/icon.png rename to graphics/pokemon/ponyta/galar/icon.png diff --git a/graphics/pokemon/ponyta/galarian/normal.pal b/graphics/pokemon/ponyta/galar/normal.pal similarity index 100% rename from graphics/pokemon/ponyta/galarian/normal.pal rename to graphics/pokemon/ponyta/galar/normal.pal diff --git a/graphics/pokemon/ponyta/galarian/overworld.png b/graphics/pokemon/ponyta/galar/overworld.png similarity index 100% rename from graphics/pokemon/ponyta/galarian/overworld.png rename to graphics/pokemon/ponyta/galar/overworld.png diff --git a/graphics/pokemon/ponyta/galarian/overworld_normal.pal b/graphics/pokemon/ponyta/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/ponyta/galarian/overworld_normal.pal rename to graphics/pokemon/ponyta/galar/overworld_normal.pal diff --git a/graphics/pokemon/ponyta/galarian/overworld_shiny.pal b/graphics/pokemon/ponyta/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/ponyta/galarian/overworld_shiny.pal rename to graphics/pokemon/ponyta/galar/overworld_shiny.pal diff --git a/graphics/pokemon/ponyta/galarian/shiny.pal b/graphics/pokemon/ponyta/galar/shiny.pal similarity index 100% rename from graphics/pokemon/ponyta/galarian/shiny.pal rename to graphics/pokemon/ponyta/galar/shiny.pal diff --git a/graphics/pokemon/ponyta/icon_gba.png b/graphics/pokemon/ponyta/icon_gba.png new file mode 100644 index 0000000000..05ac87a443 Binary files /dev/null and b/graphics/pokemon/ponyta/icon_gba.png differ diff --git a/graphics/pokemon/ponyta/normal_gba.pal b/graphics/pokemon/ponyta/normal_gba.pal new file mode 100644 index 0000000000..68dcf8d3bc --- /dev/null +++ b/graphics/pokemon/ponyta/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +255 246 180 +255 238 123 +255 197 82 +164 98 32 +255 0 255 +255 0 255 +255 0 255 +255 230 32 +255 156 0 +255 98 0 +238 0 0 +156 156 156 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/ponyta/shiny_gba.pal b/graphics/pokemon/ponyta/shiny_gba.pal new file mode 100644 index 0000000000..1210e5228c --- /dev/null +++ b/graphics/pokemon/ponyta/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +255 255 222 +255 246 189 +246 213 156 +131 98 41 +255 0 255 +255 0 255 +255 0 255 +222 238 246 +98 172 255 +57 131 255 +16 90 213 +156 156 156 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/poochyena/anim_front_gba.png b/graphics/pokemon/poochyena/anim_front_gba.png new file mode 100644 index 0000000000..0579a1fa9b Binary files /dev/null and b/graphics/pokemon/poochyena/anim_front_gba.png differ diff --git a/graphics/pokemon/poochyena/back_gba.png b/graphics/pokemon/poochyena/back_gba.png new file mode 100644 index 0000000000..6d13ed43a9 Binary files /dev/null and b/graphics/pokemon/poochyena/back_gba.png differ diff --git a/graphics/pokemon/poochyena/icon_gba.png b/graphics/pokemon/poochyena/icon_gba.png new file mode 100644 index 0000000000..7e6be6a173 Binary files /dev/null and b/graphics/pokemon/poochyena/icon_gba.png differ diff --git a/graphics/pokemon/poochyena/normal_gba.pal b/graphics/pokemon/poochyena/normal_gba.pal new file mode 100644 index 0000000000..4c386e2616 --- /dev/null +++ b/graphics/pokemon/poochyena/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +213 205 222 +255 230 131 +255 164 123 +123 90 82 +164 156 172 +131 123 139 +74 82 98 +49 49 65 +197 189 205 +255 213 90 +180 139 90 +222 74 65 +172 57 65 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/poochyena/shiny_gba.pal b/graphics/pokemon/poochyena/shiny_gba.pal new file mode 100644 index 0000000000..c30dcec931 --- /dev/null +++ b/graphics/pokemon/poochyena/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 197 164 +255 230 180 +139 197 213 +255 164 123 +123 90 82 +213 172 74 +148 106 65 +115 74 41 +82 41 0 +255 205 106 +123 172 238 +57 74 131 +222 74 65 +172 57 65 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/popplio/icon.png b/graphics/pokemon/popplio/icon.png index c35b74d2d9..f2eb184651 100644 Binary files a/graphics/pokemon/popplio/icon.png and b/graphics/pokemon/popplio/icon.png differ diff --git a/graphics/pokemon/porygon/anim_front_gba.png b/graphics/pokemon/porygon/anim_front_gba.png new file mode 100644 index 0000000000..7654821daf Binary files /dev/null and b/graphics/pokemon/porygon/anim_front_gba.png differ diff --git a/graphics/pokemon/porygon/back_gba.png b/graphics/pokemon/porygon/back_gba.png new file mode 100644 index 0000000000..f102465a8f Binary files /dev/null and b/graphics/pokemon/porygon/back_gba.png differ diff --git a/graphics/pokemon/porygon/icon_gba.png b/graphics/pokemon/porygon/icon_gba.png new file mode 100644 index 0000000000..306ea8d318 Binary files /dev/null and b/graphics/pokemon/porygon/icon_gba.png differ diff --git a/graphics/pokemon/porygon/normal_gba.pal b/graphics/pokemon/porygon/normal_gba.pal new file mode 100644 index 0000000000..68ca2bef24 --- /dev/null +++ b/graphics/pokemon/porygon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +106 205 255 +65 164 222 +32 123 197 +0 49 156 +255 213 172 +255 148 139 +222 98 82 +180 32 16 +222 222 230 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/porygon/shiny_gba.pal b/graphics/pokemon/porygon/shiny_gba.pal new file mode 100644 index 0000000000..19178b1b8a --- /dev/null +++ b/graphics/pokemon/porygon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 238 238 +238 205 238 +205 172 205 +98 65 115 +131 189 255 +57 115 246 +24 82 205 +0 49 156 +222 222 230 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +41 41 41 +255 255 255 diff --git a/graphics/pokemon/porygon2/anim_front_gba.png b/graphics/pokemon/porygon2/anim_front_gba.png new file mode 100644 index 0000000000..f324d55ad5 Binary files /dev/null and b/graphics/pokemon/porygon2/anim_front_gba.png differ diff --git a/graphics/pokemon/porygon2/back_gba.png b/graphics/pokemon/porygon2/back_gba.png new file mode 100644 index 0000000000..aad400b560 Binary files /dev/null and b/graphics/pokemon/porygon2/back_gba.png differ diff --git a/graphics/pokemon/porygon2/icon_gba.png b/graphics/pokemon/porygon2/icon_gba.png new file mode 100644 index 0000000000..312640b40b Binary files /dev/null and b/graphics/pokemon/porygon2/icon_gba.png differ diff --git a/graphics/pokemon/porygon2/normal_gba.pal b/graphics/pokemon/porygon2/normal_gba.pal new file mode 100644 index 0000000000..a9de005496 --- /dev/null +++ b/graphics/pokemon/porygon2/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 172 +255 148 139 +222 98 82 +180 32 16 +255 0 255 +148 238 255 +106 205 255 +65 164 222 +32 123 197 +0 49 156 +213 213 213 +180 180 189 +106 106 123 +16 16 16 diff --git a/graphics/pokemon/porygon2/shiny_gba.pal b/graphics/pokemon/porygon2/shiny_gba.pal new file mode 100644 index 0000000000..4c0d2054c5 --- /dev/null +++ b/graphics/pokemon/porygon2/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +123 180 255 +65 123 246 +24 82 205 +0 49 156 +255 0 255 +255 238 238 +238 205 238 +197 164 197 +139 106 148 +98 65 115 +213 213 213 +180 180 189 +106 106 123 +16 16 16 diff --git a/graphics/pokemon/primarina/icon.png b/graphics/pokemon/primarina/icon.png index d642cf12b2..1b56f7690c 100644 Binary files a/graphics/pokemon/primarina/icon.png and b/graphics/pokemon/primarina/icon.png differ diff --git a/graphics/pokemon/primeape/anim_front_gba.png b/graphics/pokemon/primeape/anim_front_gba.png new file mode 100644 index 0000000000..babecf3704 Binary files /dev/null and b/graphics/pokemon/primeape/anim_front_gba.png differ diff --git a/graphics/pokemon/primeape/back_gba.png b/graphics/pokemon/primeape/back_gba.png new file mode 100644 index 0000000000..02b326cd44 Binary files /dev/null and b/graphics/pokemon/primeape/back_gba.png differ diff --git a/graphics/pokemon/primeape/icon_gba.png b/graphics/pokemon/primeape/icon_gba.png new file mode 100644 index 0000000000..d2d42f7dc9 Binary files /dev/null and b/graphics/pokemon/primeape/icon_gba.png differ diff --git a/graphics/pokemon/primeape/normal_gba.pal b/graphics/pokemon/primeape/normal_gba.pal new file mode 100644 index 0000000000..bebbba4067 --- /dev/null +++ b/graphics/pokemon/primeape/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +123 123 123 +65 65 65 +255 148 90 +189 74 49 +230 205 115 +205 164 65 +156 123 32 +90 49 0 +0 0 0 +255 255 213 +255 230 180 +222 189 139 +123 90 41 diff --git a/graphics/pokemon/primeape/shiny_gba.pal b/graphics/pokemon/primeape/shiny_gba.pal new file mode 100644 index 0000000000..02b4f4e168 --- /dev/null +++ b/graphics/pokemon/primeape/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +222 222 222 +123 123 123 +65 65 65 +255 148 90 +189 74 49 +205 197 106 +164 156 65 +123 115 24 +82 74 8 +0 0 0 +255 222 156 +238 180 115 +197 139 74 +115 49 0 diff --git a/graphics/pokemon/psyduck/anim_front_gba.png b/graphics/pokemon/psyduck/anim_front_gba.png new file mode 100644 index 0000000000..51d323716c Binary files /dev/null and b/graphics/pokemon/psyduck/anim_front_gba.png differ diff --git a/graphics/pokemon/psyduck/back_gba.png b/graphics/pokemon/psyduck/back_gba.png new file mode 100644 index 0000000000..65f8032a75 Binary files /dev/null and b/graphics/pokemon/psyduck/back_gba.png differ diff --git a/graphics/pokemon/psyduck/icon_gba.png b/graphics/pokemon/psyduck/icon_gba.png new file mode 100644 index 0000000000..f3ebc9f96c Binary files /dev/null and b/graphics/pokemon/psyduck/icon_gba.png differ diff --git a/graphics/pokemon/psyduck/normal_gba.pal b/graphics/pokemon/psyduck/normal_gba.pal new file mode 100644 index 0000000000..c69e486a91 --- /dev/null +++ b/graphics/pokemon/psyduck/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +255 238 189 +246 222 139 +222 180 82 +131 90 0 +255 255 255 +222 222 222 +148 148 148 +255 0 255 +255 0 255 +255 0 255 +255 222 164 +255 213 74 +230 164 49 +148 90 16 +16 16 16 diff --git a/graphics/pokemon/psyduck/shiny_gba.pal b/graphics/pokemon/psyduck/shiny_gba.pal new file mode 100644 index 0000000000..889cfaedcf --- /dev/null +++ b/graphics/pokemon/psyduck/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +238 238 238 +238 255 255 +213 246 246 +172 205 205 +49 82 82 +255 255 255 +222 222 222 +148 148 148 +255 0 255 +255 0 255 +255 0 255 +189 255 255 +148 213 222 +106 172 180 +24 98 106 +16 16 16 diff --git a/graphics/pokemon/pupitar/anim_front_gba.png b/graphics/pokemon/pupitar/anim_front_gba.png new file mode 100644 index 0000000000..910afd6143 Binary files /dev/null and b/graphics/pokemon/pupitar/anim_front_gba.png differ diff --git a/graphics/pokemon/pupitar/back_gba.png b/graphics/pokemon/pupitar/back_gba.png new file mode 100644 index 0000000000..1f49a87f98 Binary files /dev/null and b/graphics/pokemon/pupitar/back_gba.png differ diff --git a/graphics/pokemon/pupitar/icon_gba.png b/graphics/pokemon/pupitar/icon_gba.png new file mode 100644 index 0000000000..3491849d1b Binary files /dev/null and b/graphics/pokemon/pupitar/icon_gba.png differ diff --git a/graphics/pokemon/pupitar/normal_gba.pal b/graphics/pokemon/pupitar/normal_gba.pal new file mode 100644 index 0000000000..bd8385e298 --- /dev/null +++ b/graphics/pokemon/pupitar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 230 255 +139 197 238 +115 156 197 +41 90 131 +255 0 255 +180 65 0 +205 205 213 +172 172 172 +123 123 131 +255 0 255 +255 0 255 +255 0 255 +65 65 98 +16 16 16 diff --git a/graphics/pokemon/pupitar/shiny_gba.pal b/graphics/pokemon/pupitar/shiny_gba.pal new file mode 100644 index 0000000000..58371ba017 --- /dev/null +++ b/graphics/pokemon/pupitar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 189 255 +213 156 230 +156 106 189 +98 65 115 +255 0 255 +180 65 0 +205 205 213 +172 172 172 +123 123 131 +255 0 255 +255 0 255 +255 0 255 +65 65 98 +16 16 16 diff --git a/graphics/pokemon/purrloin/overworld.png b/graphics/pokemon/purrloin/overworld.png index dd0d58266e..b751a7f8ec 100644 Binary files a/graphics/pokemon/purrloin/overworld.png and b/graphics/pokemon/purrloin/overworld.png differ diff --git a/graphics/pokemon/purrloin/overworld_shiny.pal b/graphics/pokemon/purrloin/overworld_shiny.pal index f1c5b242d0..92ba9739bf 100644 --- a/graphics/pokemon/purrloin/overworld_shiny.pal +++ b/graphics/pokemon/purrloin/overworld_shiny.pal @@ -7,10 +7,10 @@ JASC-PAL 0 0 0 56 72 104 168 112 224 -216 216 56 -240 232 192 -232 232 248 +112 176 64 216 200 136 +232 232 248 +240 232 192 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/pyukumuku/icon.png b/graphics/pokemon/pyukumuku/icon.png index 2e3e04451d..9ef6147558 100644 Binary files a/graphics/pokemon/pyukumuku/icon.png and b/graphics/pokemon/pyukumuku/icon.png differ diff --git a/graphics/pokemon/quagsire/anim_front_gba.png b/graphics/pokemon/quagsire/anim_front_gba.png new file mode 100644 index 0000000000..0834e1da61 Binary files /dev/null and b/graphics/pokemon/quagsire/anim_front_gba.png differ diff --git a/graphics/pokemon/quagsire/back_gba.png b/graphics/pokemon/quagsire/back_gba.png new file mode 100644 index 0000000000..9233569b88 Binary files /dev/null and b/graphics/pokemon/quagsire/back_gba.png differ diff --git a/graphics/pokemon/quagsire/icon_gba.png b/graphics/pokemon/quagsire/icon_gba.png new file mode 100644 index 0000000000..62c7f2e460 Binary files /dev/null and b/graphics/pokemon/quagsire/icon_gba.png differ diff --git a/graphics/pokemon/quagsire/normal_gba.pal b/graphics/pokemon/quagsire/normal_gba.pal new file mode 100644 index 0000000000..5a74c8c08f --- /dev/null +++ b/graphics/pokemon/quagsire/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 49 65 +32 65 98 +57 90 156 +255 0 255 +74 139 205 +98 164 230 +172 205 238 +197 238 246 +255 0 255 +255 0 255 +98 82 123 +148 98 148 +255 115 180 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/quagsire/shiny_gba.pal b/graphics/pokemon/quagsire/shiny_gba.pal new file mode 100644 index 0000000000..cb5bd79222 --- /dev/null +++ b/graphics/pokemon/quagsire/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +74 57 65 +98 74 98 +90 65 90 +255 0 255 +148 98 164 +189 123 205 +230 164 230 +255 189 238 +255 0 255 +255 0 255 +98 82 123 +148 98 148 +255 115 180 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/question_mark/circled/anim_front_gba.png b/graphics/pokemon/question_mark/circled/anim_front_gba.png new file mode 100644 index 0000000000..9eb27931eb Binary files /dev/null and b/graphics/pokemon/question_mark/circled/anim_front_gba.png differ diff --git a/graphics/pokemon/question_mark/circled/back_gba.png b/graphics/pokemon/question_mark/circled/back_gba.png new file mode 100644 index 0000000000..3056402db4 Binary files /dev/null and b/graphics/pokemon/question_mark/circled/back_gba.png differ diff --git a/graphics/pokemon/question_mark/circled/normal_gba.pal b/graphics/pokemon/question_mark/circled/normal_gba.pal new file mode 100644 index 0000000000..681f1cefe9 --- /dev/null +++ b/graphics/pokemon/question_mark/circled/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 205 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +205 205 205 +172 172 172 +255 255 255 +0 0 0 diff --git a/graphics/pokemon/question_mark/circled/shiny_gba.pal b/graphics/pokemon/question_mark/circled/shiny_gba.pal new file mode 100644 index 0000000000..aa8d08dc30 --- /dev/null +++ b/graphics/pokemon/question_mark/circled/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 172 172 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +32 32 32 +172 172 172 +139 139 139 +222 222 222 +32 32 32 diff --git a/graphics/pokemon/question_mark/double/anim_front_gba.png b/graphics/pokemon/question_mark/double/anim_front_gba.png new file mode 100644 index 0000000000..6afe02dee0 Binary files /dev/null and b/graphics/pokemon/question_mark/double/anim_front_gba.png differ diff --git a/graphics/pokemon/question_mark/double/back_gba.png b/graphics/pokemon/question_mark/double/back_gba.png new file mode 100644 index 0000000000..14eb6e1398 Binary files /dev/null and b/graphics/pokemon/question_mark/double/back_gba.png differ diff --git a/graphics/pokemon/question_mark/double/normal_gba.pal b/graphics/pokemon/question_mark/double/normal_gba.pal new file mode 100644 index 0000000000..67be6bbf42 --- /dev/null +++ b/graphics/pokemon/question_mark/double/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +255 255 255 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +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/graphics/pokemon/question_mark/double/shiny_gba.pal b/graphics/pokemon/question_mark/double/shiny_gba.pal new file mode 100644 index 0000000000..67be6bbf42 --- /dev/null +++ b/graphics/pokemon/question_mark/double/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +0 255 0 +255 255 255 +0 0 0 +255 255 255 +0 0 0 +0 0 0 +0 0 0 +0 0 0 +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/graphics/pokemon/question_mark/footprint_gba.png b/graphics/pokemon/question_mark/footprint_gba.png new file mode 100644 index 0000000000..8da752a46b Binary files /dev/null and b/graphics/pokemon/question_mark/footprint_gba.png differ diff --git a/graphics/pokemon/question_mark/icon_gba.png b/graphics/pokemon/question_mark/icon_gba.png new file mode 100644 index 0000000000..b31ebacf71 Binary files /dev/null and b/graphics/pokemon/question_mark/icon_gba.png differ diff --git a/graphics/pokemon/quilava/anim_front_gba.png b/graphics/pokemon/quilava/anim_front_gba.png new file mode 100644 index 0000000000..b5ec66bbad Binary files /dev/null and b/graphics/pokemon/quilava/anim_front_gba.png differ diff --git a/graphics/pokemon/quilava/back_gba.png b/graphics/pokemon/quilava/back_gba.png new file mode 100644 index 0000000000..5a97c1b11f Binary files /dev/null and b/graphics/pokemon/quilava/back_gba.png differ diff --git a/graphics/pokemon/quilava/icon_gba.png b/graphics/pokemon/quilava/icon_gba.png new file mode 100644 index 0000000000..62d0608dd8 Binary files /dev/null and b/graphics/pokemon/quilava/icon_gba.png differ diff --git a/graphics/pokemon/quilava/normal_gba.pal b/graphics/pokemon/quilava/normal_gba.pal new file mode 100644 index 0000000000..0b37faf223 --- /dev/null +++ b/graphics/pokemon/quilava/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +98 131 189 +65 82 139 +41 65 98 +24 41 82 +255 238 164 +230 205 106 +180 156 82 +139 98 32 +255 222 0 +255 156 0 +255 98 0 +238 0 0 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/quilava/shiny_gba.pal b/graphics/pokemon/quilava/shiny_gba.pal new file mode 100644 index 0000000000..e1baba127f --- /dev/null +++ b/graphics/pokemon/quilava/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 156 106 +189 98 65 +139 65 57 +98 57 41 +255 230 115 +222 197 82 +172 139 49 +139 82 24 +255 222 0 +255 156 0 +255 98 0 +238 0 0 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/qwilfish/anim_front_gba.png b/graphics/pokemon/qwilfish/anim_front_gba.png new file mode 100644 index 0000000000..4cfbe002e9 Binary files /dev/null and b/graphics/pokemon/qwilfish/anim_front_gba.png differ diff --git a/graphics/pokemon/qwilfish/back_gba.png b/graphics/pokemon/qwilfish/back_gba.png new file mode 100644 index 0000000000..34fb6e12e6 Binary files /dev/null and b/graphics/pokemon/qwilfish/back_gba.png differ diff --git a/graphics/pokemon/qwilfish/hisuian/back.png b/graphics/pokemon/qwilfish/hisui/back.png similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/back.png rename to graphics/pokemon/qwilfish/hisui/back.png diff --git a/graphics/pokemon/qwilfish/hisuian/front.png b/graphics/pokemon/qwilfish/hisui/front.png similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/front.png rename to graphics/pokemon/qwilfish/hisui/front.png diff --git a/graphics/pokemon/qwilfish/hisuian/icon.png b/graphics/pokemon/qwilfish/hisui/icon.png similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/icon.png rename to graphics/pokemon/qwilfish/hisui/icon.png diff --git a/graphics/pokemon/qwilfish/hisuian/normal.pal b/graphics/pokemon/qwilfish/hisui/normal.pal similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/normal.pal rename to graphics/pokemon/qwilfish/hisui/normal.pal diff --git a/graphics/pokemon/qwilfish/hisuian/overworld.png b/graphics/pokemon/qwilfish/hisui/overworld.png similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/overworld.png rename to graphics/pokemon/qwilfish/hisui/overworld.png diff --git a/graphics/pokemon/qwilfish/hisuian/overworld_normal.pal b/graphics/pokemon/qwilfish/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/overworld_normal.pal rename to graphics/pokemon/qwilfish/hisui/overworld_normal.pal diff --git a/graphics/pokemon/qwilfish/hisuian/overworld_shiny.pal b/graphics/pokemon/qwilfish/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/overworld_shiny.pal rename to graphics/pokemon/qwilfish/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/qwilfish/hisuian/shiny.pal b/graphics/pokemon/qwilfish/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/qwilfish/hisuian/shiny.pal rename to graphics/pokemon/qwilfish/hisui/shiny.pal diff --git a/graphics/pokemon/qwilfish/icon_gba.png b/graphics/pokemon/qwilfish/icon_gba.png new file mode 100644 index 0000000000..b0fc123024 Binary files /dev/null and b/graphics/pokemon/qwilfish/icon_gba.png differ diff --git a/graphics/pokemon/qwilfish/normal_gba.pal b/graphics/pokemon/qwilfish/normal_gba.pal new file mode 100644 index 0000000000..1956e57c43 --- /dev/null +++ b/graphics/pokemon/qwilfish/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +255 0 255 +148 0 0 +57 74 98 +74 90 164 +90 131 197 +115 172 238 +106 82 49 +197 180 82 +230 222 115 +238 255 164 +213 82 98 +255 164 148 +255 255 255 diff --git a/graphics/pokemon/qwilfish/shiny_gba.pal b/graphics/pokemon/qwilfish/shiny_gba.pal new file mode 100644 index 0000000000..d548d12e91 --- /dev/null +++ b/graphics/pokemon/qwilfish/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +255 0 255 +148 0 0 +98 57 90 +148 41 131 +189 82 164 +222 115 189 +115 65 98 +189 139 180 +230 189 222 +255 222 246 +213 82 98 +255 164 148 +255 255 255 diff --git a/graphics/pokemon/raichu/alolan/back.png b/graphics/pokemon/raichu/alola/back.png similarity index 100% rename from graphics/pokemon/raichu/alolan/back.png rename to graphics/pokemon/raichu/alola/back.png diff --git a/graphics/pokemon/raichu/alolan/front.png b/graphics/pokemon/raichu/alola/front.png similarity index 100% rename from graphics/pokemon/raichu/alolan/front.png rename to graphics/pokemon/raichu/alola/front.png diff --git a/graphics/pokemon/raichu/alola/icon.png b/graphics/pokemon/raichu/alola/icon.png new file mode 100644 index 0000000000..2098d83f95 Binary files /dev/null and b/graphics/pokemon/raichu/alola/icon.png differ diff --git a/graphics/pokemon/raichu/alolan/normal.pal b/graphics/pokemon/raichu/alola/normal.pal similarity index 100% rename from graphics/pokemon/raichu/alolan/normal.pal rename to graphics/pokemon/raichu/alola/normal.pal diff --git a/graphics/pokemon/raichu/alolan/overworld.png b/graphics/pokemon/raichu/alola/overworld.png similarity index 100% rename from graphics/pokemon/raichu/alolan/overworld.png rename to graphics/pokemon/raichu/alola/overworld.png diff --git a/graphics/pokemon/raichu/alolan/overworld_normal.pal b/graphics/pokemon/raichu/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/raichu/alolan/overworld_normal.pal rename to graphics/pokemon/raichu/alola/overworld_normal.pal diff --git a/graphics/pokemon/raichu/alolan/overworld_shiny.pal b/graphics/pokemon/raichu/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/raichu/alolan/overworld_shiny.pal rename to graphics/pokemon/raichu/alola/overworld_shiny.pal diff --git a/graphics/pokemon/raichu/alolan/shiny.pal b/graphics/pokemon/raichu/alola/shiny.pal similarity index 100% rename from graphics/pokemon/raichu/alolan/shiny.pal rename to graphics/pokemon/raichu/alola/shiny.pal diff --git a/graphics/pokemon/raichu/alolan/icon.png b/graphics/pokemon/raichu/alolan/icon.png deleted file mode 100644 index d005cf7e1d..0000000000 Binary files a/graphics/pokemon/raichu/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/raichu/anim_front_gba.png b/graphics/pokemon/raichu/anim_front_gba.png new file mode 100644 index 0000000000..722c0ff598 Binary files /dev/null and b/graphics/pokemon/raichu/anim_front_gba.png differ diff --git a/graphics/pokemon/raichu/back_gba.png b/graphics/pokemon/raichu/back_gba.png new file mode 100644 index 0000000000..6f8a0afcd3 Binary files /dev/null and b/graphics/pokemon/raichu/back_gba.png differ diff --git a/graphics/pokemon/raichu/icon_gba.png b/graphics/pokemon/raichu/icon_gba.png new file mode 100644 index 0000000000..a34997b47e Binary files /dev/null and b/graphics/pokemon/raichu/icon_gba.png differ diff --git a/graphics/pokemon/raichu/normal_gba.pal b/graphics/pokemon/raichu/normal_gba.pal new file mode 100644 index 0000000000..c04e9d81c8 --- /dev/null +++ b/graphics/pokemon/raichu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 230 90 +255 197 0 +238 156 0 +172 90 32 +255 255 131 +255 238 0 +230 180 32 +189 131 65 +156 106 57 +139 82 49 +115 74 8 +106 106 106 +16 16 16 +230 0 0 diff --git a/graphics/pokemon/raichu/shiny_gba.pal b/graphics/pokemon/raichu/shiny_gba.pal new file mode 100644 index 0000000000..40e16fa6cc --- /dev/null +++ b/graphics/pokemon/raichu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 164 82 +255 123 41 +238 82 0 +131 24 0 +222 222 156 +205 180 115 +164 139 74 +172 115 49 +131 82 49 +123 65 32 +115 74 8 +106 106 106 +16 16 16 +230 0 0 diff --git a/graphics/pokemon/raikou/anim_front_gba.png b/graphics/pokemon/raikou/anim_front_gba.png new file mode 100644 index 0000000000..a0149846d1 Binary files /dev/null and b/graphics/pokemon/raikou/anim_front_gba.png differ diff --git a/graphics/pokemon/raikou/back_gba.png b/graphics/pokemon/raikou/back_gba.png new file mode 100644 index 0000000000..e187eda52e Binary files /dev/null and b/graphics/pokemon/raikou/back_gba.png differ diff --git a/graphics/pokemon/raikou/icon_gba.png b/graphics/pokemon/raikou/icon_gba.png new file mode 100644 index 0000000000..7847a6f16e Binary files /dev/null and b/graphics/pokemon/raikou/icon_gba.png differ diff --git a/graphics/pokemon/raikou/normal_gba.pal b/graphics/pokemon/raikou/normal_gba.pal new file mode 100644 index 0000000000..975f92b23d --- /dev/null +++ b/graphics/pokemon/raikou/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 238 148 +255 205 65 +213 156 41 +139 98 16 +213 180 255 +180 115 255 +123 41 222 +65 16 148 +197 0 0 +255 0 255 +213 213 213 +164 164 164 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/raikou/shiny_gba.pal b/graphics/pokemon/raikou/shiny_gba.pal new file mode 100644 index 0000000000..73bbcb405b --- /dev/null +++ b/graphics/pokemon/raikou/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 82 +246 156 49 +197 106 8 +82 74 16 +255 255 148 +238 230 74 +189 180 41 +106 98 0 +197 0 0 +255 0 255 +222 222 197 +180 189 164 +123 131 106 +16 16 16 diff --git a/graphics/pokemon/ralts/anim_front_gba.png b/graphics/pokemon/ralts/anim_front_gba.png new file mode 100644 index 0000000000..cb19276d82 Binary files /dev/null and b/graphics/pokemon/ralts/anim_front_gba.png differ diff --git a/graphics/pokemon/ralts/back_gba.png b/graphics/pokemon/ralts/back_gba.png new file mode 100644 index 0000000000..926bdc0ab9 Binary files /dev/null and b/graphics/pokemon/ralts/back_gba.png differ diff --git a/graphics/pokemon/ralts/icon_gba.png b/graphics/pokemon/ralts/icon_gba.png new file mode 100644 index 0000000000..ed99d3427c Binary files /dev/null and b/graphics/pokemon/ralts/icon_gba.png differ diff --git a/graphics/pokemon/ralts/normal_gba.pal b/graphics/pokemon/ralts/normal_gba.pal new file mode 100644 index 0000000000..1e513ae876 --- /dev/null +++ b/graphics/pokemon/ralts/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +197 205 222 +164 180 205 +131 148 180 +123 82 82 +115 41 57 +255 156 131 +230 82 57 +131 205 255 +255 255 255 +205 255 172 +148 230 148 +115 189 115 +49 123 74 +16 16 16 diff --git a/graphics/pokemon/ralts/shiny_gba.pal b/graphics/pokemon/ralts/shiny_gba.pal new file mode 100644 index 0000000000..b588f6eea0 --- /dev/null +++ b/graphics/pokemon/ralts/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 164 82 +238 238 255 +213 189 222 +180 164 205 +156 131 180 +123 82 82 +115 41 57 +255 197 90 +230 131 32 +131 205 255 +197 238 246 +189 230 255 +123 197 238 +82 172 213 +32 115 123 +16 16 16 diff --git a/graphics/pokemon/rapidash/anim_front_gba.png b/graphics/pokemon/rapidash/anim_front_gba.png new file mode 100644 index 0000000000..69ba93ebeb Binary files /dev/null and b/graphics/pokemon/rapidash/anim_front_gba.png differ diff --git a/graphics/pokemon/rapidash/back_gba.png b/graphics/pokemon/rapidash/back_gba.png new file mode 100644 index 0000000000..7d4b9667ea Binary files /dev/null and b/graphics/pokemon/rapidash/back_gba.png differ diff --git a/graphics/pokemon/rapidash/galarian/back.png b/graphics/pokemon/rapidash/galar/back.png similarity index 100% rename from graphics/pokemon/rapidash/galarian/back.png rename to graphics/pokemon/rapidash/galar/back.png diff --git a/graphics/pokemon/rapidash/galarian/front.png b/graphics/pokemon/rapidash/galar/front.png similarity index 100% rename from graphics/pokemon/rapidash/galarian/front.png rename to graphics/pokemon/rapidash/galar/front.png diff --git a/graphics/pokemon/rapidash/galarian/icon.png b/graphics/pokemon/rapidash/galar/icon.png similarity index 100% rename from graphics/pokemon/rapidash/galarian/icon.png rename to graphics/pokemon/rapidash/galar/icon.png diff --git a/graphics/pokemon/rapidash/galarian/normal.pal b/graphics/pokemon/rapidash/galar/normal.pal similarity index 100% rename from graphics/pokemon/rapidash/galarian/normal.pal rename to graphics/pokemon/rapidash/galar/normal.pal diff --git a/graphics/pokemon/rapidash/galarian/overworld.png b/graphics/pokemon/rapidash/galar/overworld.png similarity index 100% rename from graphics/pokemon/rapidash/galarian/overworld.png rename to graphics/pokemon/rapidash/galar/overworld.png diff --git a/graphics/pokemon/rapidash/galarian/overworld_normal.pal b/graphics/pokemon/rapidash/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/rapidash/galarian/overworld_normal.pal rename to graphics/pokemon/rapidash/galar/overworld_normal.pal diff --git a/graphics/pokemon/rapidash/galarian/overworld_shiny.pal b/graphics/pokemon/rapidash/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/rapidash/galarian/overworld_shiny.pal rename to graphics/pokemon/rapidash/galar/overworld_shiny.pal diff --git a/graphics/pokemon/rapidash/galarian/shiny.pal b/graphics/pokemon/rapidash/galar/shiny.pal similarity index 100% rename from graphics/pokemon/rapidash/galarian/shiny.pal rename to graphics/pokemon/rapidash/galar/shiny.pal diff --git a/graphics/pokemon/rapidash/icon_gba.png b/graphics/pokemon/rapidash/icon_gba.png new file mode 100644 index 0000000000..c0af0dd084 Binary files /dev/null and b/graphics/pokemon/rapidash/icon_gba.png differ diff --git a/graphics/pokemon/rapidash/normal_gba.pal b/graphics/pokemon/rapidash/normal_gba.pal new file mode 100644 index 0000000000..dea936aba4 --- /dev/null +++ b/graphics/pokemon/rapidash/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +255 246 180 +255 238 123 +255 197 82 +197 131 65 +164 98 32 +255 0 255 +255 0 255 +255 230 32 +255 156 0 +255 98 0 +238 0 0 +156 156 156 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/rapidash/shiny_gba.pal b/graphics/pokemon/rapidash/shiny_gba.pal new file mode 100644 index 0000000000..c65fda2180 --- /dev/null +++ b/graphics/pokemon/rapidash/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +255 255 222 +238 230 189 +205 197 156 +197 131 65 +164 98 32 +255 0 255 +255 0 255 +197 205 230 +156 164 189 +115 123 148 +74 82 106 +156 156 156 +90 90 90 +16 16 16 diff --git a/graphics/pokemon/raticate/alolan/back.png b/graphics/pokemon/raticate/alola/back.png similarity index 100% rename from graphics/pokemon/raticate/alolan/back.png rename to graphics/pokemon/raticate/alola/back.png diff --git a/graphics/pokemon/raticate/alolan/front.png b/graphics/pokemon/raticate/alola/front.png similarity index 100% rename from graphics/pokemon/raticate/alolan/front.png rename to graphics/pokemon/raticate/alola/front.png diff --git a/graphics/pokemon/raticate/alola/icon.png b/graphics/pokemon/raticate/alola/icon.png new file mode 100644 index 0000000000..072c5ca6e4 Binary files /dev/null and b/graphics/pokemon/raticate/alola/icon.png differ diff --git a/graphics/pokemon/raticate/alolan/normal.pal b/graphics/pokemon/raticate/alola/normal.pal similarity index 100% rename from graphics/pokemon/raticate/alolan/normal.pal rename to graphics/pokemon/raticate/alola/normal.pal diff --git a/graphics/pokemon/raticate/alolan/overworld.png b/graphics/pokemon/raticate/alola/overworld.png similarity index 100% rename from graphics/pokemon/raticate/alolan/overworld.png rename to graphics/pokemon/raticate/alola/overworld.png diff --git a/graphics/pokemon/raticate/alolan/overworld_normal.pal b/graphics/pokemon/raticate/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/raticate/alolan/overworld_normal.pal rename to graphics/pokemon/raticate/alola/overworld_normal.pal diff --git a/graphics/pokemon/raticate/alolan/overworld_shiny.pal b/graphics/pokemon/raticate/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/raticate/alolan/overworld_shiny.pal rename to graphics/pokemon/raticate/alola/overworld_shiny.pal diff --git a/graphics/pokemon/raticate/alolan/shiny.pal b/graphics/pokemon/raticate/alola/shiny.pal similarity index 100% rename from graphics/pokemon/raticate/alolan/shiny.pal rename to graphics/pokemon/raticate/alola/shiny.pal diff --git a/graphics/pokemon/raticate/alolan/icon.png b/graphics/pokemon/raticate/alolan/icon.png deleted file mode 100644 index 4acd9d0404..0000000000 Binary files a/graphics/pokemon/raticate/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/raticate/anim_front_gba.png b/graphics/pokemon/raticate/anim_front_gba.png new file mode 100644 index 0000000000..589201cc94 Binary files /dev/null and b/graphics/pokemon/raticate/anim_front_gba.png differ diff --git a/graphics/pokemon/raticate/back_gba.png b/graphics/pokemon/raticate/back_gba.png new file mode 100644 index 0000000000..d6c0d8ae29 Binary files /dev/null and b/graphics/pokemon/raticate/back_gba.png differ diff --git a/graphics/pokemon/raticate/icon_gba.png b/graphics/pokemon/raticate/icon_gba.png new file mode 100644 index 0000000000..40fbd79c54 Binary files /dev/null and b/graphics/pokemon/raticate/icon_gba.png differ diff --git a/graphics/pokemon/raticate/normal_gba.pal b/graphics/pokemon/raticate/normal_gba.pal new file mode 100644 index 0000000000..72981c0d70 --- /dev/null +++ b/graphics/pokemon/raticate/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 205 156 +222 131 98 +246 246 164 +255 238 90 +230 180 74 +189 115 41 +222 189 82 +197 156 65 +164 123 49 +115 74 0 +213 213 213 +180 180 180 +115 115 115 +16 16 16 diff --git a/graphics/pokemon/raticate/shiny_gba.pal b/graphics/pokemon/raticate/shiny_gba.pal new file mode 100644 index 0000000000..15e73219a0 --- /dev/null +++ b/graphics/pokemon/raticate/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 205 156 +222 131 98 +255 255 197 +230 230 156 +205 205 131 +131 131 49 +255 148 106 +230 106 65 +189 65 24 +131 16 0 +213 213 213 +180 180 180 +115 115 115 +16 16 16 diff --git a/graphics/pokemon/rattata/alolan/back.png b/graphics/pokemon/rattata/alola/back.png similarity index 100% rename from graphics/pokemon/rattata/alolan/back.png rename to graphics/pokemon/rattata/alola/back.png diff --git a/graphics/pokemon/rattata/alolan/front.png b/graphics/pokemon/rattata/alola/front.png similarity index 100% rename from graphics/pokemon/rattata/alolan/front.png rename to graphics/pokemon/rattata/alola/front.png diff --git a/graphics/pokemon/rattata/alola/icon.png b/graphics/pokemon/rattata/alola/icon.png new file mode 100644 index 0000000000..87c40fa445 Binary files /dev/null and b/graphics/pokemon/rattata/alola/icon.png differ diff --git a/graphics/pokemon/rattata/alolan/normal.pal b/graphics/pokemon/rattata/alola/normal.pal similarity index 100% rename from graphics/pokemon/rattata/alolan/normal.pal rename to graphics/pokemon/rattata/alola/normal.pal diff --git a/graphics/pokemon/rattata/alolan/overworld.png b/graphics/pokemon/rattata/alola/overworld.png similarity index 100% rename from graphics/pokemon/rattata/alolan/overworld.png rename to graphics/pokemon/rattata/alola/overworld.png diff --git a/graphics/pokemon/rattata/alolan/overworld_normal.pal b/graphics/pokemon/rattata/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/rattata/alolan/overworld_normal.pal rename to graphics/pokemon/rattata/alola/overworld_normal.pal diff --git a/graphics/pokemon/rattata/alolan/overworld_shiny.pal b/graphics/pokemon/rattata/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/rattata/alolan/overworld_shiny.pal rename to graphics/pokemon/rattata/alola/overworld_shiny.pal diff --git a/graphics/pokemon/rattata/alolan/shiny.pal b/graphics/pokemon/rattata/alola/shiny.pal similarity index 100% rename from graphics/pokemon/rattata/alolan/shiny.pal rename to graphics/pokemon/rattata/alola/shiny.pal diff --git a/graphics/pokemon/rattata/alolan/icon.png b/graphics/pokemon/rattata/alolan/icon.png deleted file mode 100644 index b13e1e9bb9..0000000000 Binary files a/graphics/pokemon/rattata/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/rattata/anim_front_gba.png b/graphics/pokemon/rattata/anim_front_gba.png new file mode 100644 index 0000000000..0380429f5f Binary files /dev/null and b/graphics/pokemon/rattata/anim_front_gba.png differ diff --git a/graphics/pokemon/rattata/back_gba.png b/graphics/pokemon/rattata/back_gba.png new file mode 100644 index 0000000000..72bb56766f Binary files /dev/null and b/graphics/pokemon/rattata/back_gba.png differ diff --git a/graphics/pokemon/rattata/icon_gba.png b/graphics/pokemon/rattata/icon_gba.png new file mode 100644 index 0000000000..ae7b22258a Binary files /dev/null and b/graphics/pokemon/rattata/icon_gba.png differ diff --git a/graphics/pokemon/rattata/normal_gba.pal b/graphics/pokemon/rattata/normal_gba.pal new file mode 100644 index 0000000000..971ffed370 --- /dev/null +++ b/graphics/pokemon/rattata/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 255 +230 205 115 +180 148 49 +238 74 90 +164 24 57 +213 148 213 +180 115 180 +148 82 148 +98 49 82 +222 222 222 +197 197 197 +164 164 164 +90 98 98 +16 16 16 diff --git a/graphics/pokemon/rattata/shiny_gba.pal b/graphics/pokemon/rattata/shiny_gba.pal new file mode 100644 index 0000000000..41a644c54b --- /dev/null +++ b/graphics/pokemon/rattata/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 255 255 +230 205 115 +180 148 49 +90 156 189 +32 98 131 +238 230 156 +205 197 123 +172 164 90 +131 123 49 +222 222 222 +197 197 197 +164 164 164 +90 98 98 +16 16 16 diff --git a/graphics/pokemon/rayquaza/anim_front_gba.png b/graphics/pokemon/rayquaza/anim_front_gba.png new file mode 100644 index 0000000000..25103d2d45 Binary files /dev/null and b/graphics/pokemon/rayquaza/anim_front_gba.png differ diff --git a/graphics/pokemon/rayquaza/back_gba.png b/graphics/pokemon/rayquaza/back_gba.png new file mode 100644 index 0000000000..e8b8704a88 Binary files /dev/null and b/graphics/pokemon/rayquaza/back_gba.png differ diff --git a/graphics/pokemon/rayquaza/icon_gba.png b/graphics/pokemon/rayquaza/icon_gba.png new file mode 100644 index 0000000000..65844ebf72 Binary files /dev/null and b/graphics/pokemon/rayquaza/icon_gba.png differ diff --git a/graphics/pokemon/rayquaza/normal_gba.pal b/graphics/pokemon/rayquaza/normal_gba.pal new file mode 100644 index 0000000000..651b1b9b1a --- /dev/null +++ b/graphics/pokemon/rayquaza/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 156 255 +57 82 57 +65 131 65 +74 131 115 +90 189 139 +148 222 180 +0 0 0 +49 82 172 +74 156 189 +246 98 98 +197 148 98 +222 213 238 +255 255 255 +222 205 0 +255 238 0 +24 24 24 diff --git a/graphics/pokemon/rayquaza/shiny_gba.pal b/graphics/pokemon/rayquaza/shiny_gba.pal new file mode 100644 index 0000000000..c294fa7ca7 --- /dev/null +++ b/graphics/pokemon/rayquaza/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 156 255 +57 57 57 +57 57 57 +82 82 82 +123 123 123 +164 164 164 +0 0 0 +49 82 148 +74 156 172 +246 98 98 +197 148 98 +230 222 255 +255 255 255 +222 205 0 +255 238 0 +0 0 0 diff --git a/graphics/pokemon/regice/anim_front_gba.png b/graphics/pokemon/regice/anim_front_gba.png new file mode 100644 index 0000000000..e8a38b5754 Binary files /dev/null and b/graphics/pokemon/regice/anim_front_gba.png differ diff --git a/graphics/pokemon/regice/back_gba.png b/graphics/pokemon/regice/back_gba.png new file mode 100644 index 0000000000..69b091437a Binary files /dev/null and b/graphics/pokemon/regice/back_gba.png differ diff --git a/graphics/pokemon/regice/icon_gba.png b/graphics/pokemon/regice/icon_gba.png new file mode 100644 index 0000000000..46b07b3aa8 Binary files /dev/null and b/graphics/pokemon/regice/icon_gba.png differ diff --git a/graphics/pokemon/regice/normal_gba.pal b/graphics/pokemon/regice/normal_gba.pal new file mode 100644 index 0000000000..2d599438d6 --- /dev/null +++ b/graphics/pokemon/regice/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 148 +49 57 90 +90 98 123 +156 164 222 +189 213 238 +222 255 255 +131 115 180 +255 255 255 +238 255 255 +0 0 0 +0 0 0 +0 0 0 +205 180 32 +255 255 172 +255 230 0 +24 24 24 diff --git a/graphics/pokemon/regice/shiny_gba.pal b/graphics/pokemon/regice/shiny_gba.pal new file mode 100644 index 0000000000..0c3dc8a37f --- /dev/null +++ b/graphics/pokemon/regice/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 148 +0 98 197 +0 148 189 +74 213 255 +172 238 255 +230 255 255 +65 164 255 +255 255 255 +213 255 255 +0 0 0 +0 0 0 +0 0 0 +180 123 32 +255 230 98 +255 189 0 +24 24 24 diff --git a/graphics/pokemon/regirock/anim_front_gba.png b/graphics/pokemon/regirock/anim_front_gba.png new file mode 100644 index 0000000000..e278efd82d Binary files /dev/null and b/graphics/pokemon/regirock/anim_front_gba.png differ diff --git a/graphics/pokemon/regirock/back_gba.png b/graphics/pokemon/regirock/back_gba.png new file mode 100644 index 0000000000..7175fc90a6 Binary files /dev/null and b/graphics/pokemon/regirock/back_gba.png differ diff --git a/graphics/pokemon/regirock/icon_gba.png b/graphics/pokemon/regirock/icon_gba.png new file mode 100644 index 0000000000..e698367448 Binary files /dev/null and b/graphics/pokemon/regirock/icon_gba.png differ diff --git a/graphics/pokemon/regirock/normal_gba.pal b/graphics/pokemon/regirock/normal_gba.pal new file mode 100644 index 0000000000..f577420cbd --- /dev/null +++ b/graphics/pokemon/regirock/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 148 +82 74 41 +148 139 115 +205 197 172 +230 222 172 +238 230 222 +180 172 148 +139 90 57 +189 131 57 +238 131 57 +238 172 106 +0 0 0 +0 0 0 +180 65 0 +238 115 57 +24 24 24 diff --git a/graphics/pokemon/regirock/shiny_gba.pal b/graphics/pokemon/regirock/shiny_gba.pal new file mode 100644 index 0000000000..b997589cc4 --- /dev/null +++ b/graphics/pokemon/regirock/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 148 +98 24 0 +148 74 32 +180 106 65 +205 139 98 +238 164 131 +131 65 24 +139 90 57 +189 131 57 +238 131 57 +238 172 106 +0 0 0 +0 0 0 +180 65 0 +238 115 57 +24 24 24 diff --git a/graphics/pokemon/registeel/anim_front_gba.png b/graphics/pokemon/registeel/anim_front_gba.png new file mode 100644 index 0000000000..17ddf8ff1f Binary files /dev/null and b/graphics/pokemon/registeel/anim_front_gba.png differ diff --git a/graphics/pokemon/registeel/back_gba.png b/graphics/pokemon/registeel/back_gba.png new file mode 100644 index 0000000000..233240d45b Binary files /dev/null and b/graphics/pokemon/registeel/back_gba.png differ diff --git a/graphics/pokemon/registeel/icon_gba.png b/graphics/pokemon/registeel/icon_gba.png new file mode 100644 index 0000000000..5a8cd3d19f Binary files /dev/null and b/graphics/pokemon/registeel/icon_gba.png differ diff --git a/graphics/pokemon/registeel/normal_gba.pal b/graphics/pokemon/registeel/normal_gba.pal new file mode 100644 index 0000000000..9d7d328f42 --- /dev/null +++ b/graphics/pokemon/registeel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 98 +90 82 82 +131 131 123 +189 189 180 +222 213 230 +238 238 238 +115 115 90 +139 131 106 +172 172 123 +0 0 0 +0 0 0 +255 255 255 +213 106 131 +255 180 164 +246 90 172 +24 24 24 diff --git a/graphics/pokemon/registeel/shiny_gba.pal b/graphics/pokemon/registeel/shiny_gba.pal new file mode 100644 index 0000000000..e0489363a2 --- /dev/null +++ b/graphics/pokemon/registeel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 98 +90 82 82 +90 123 106 +115 180 164 +172 222 197 +213 238 238 +115 115 90 +139 131 106 +172 172 123 +0 0 0 +0 0 0 +255 255 255 +180 65 49 +255 123 82 +222 98 49 +24 24 24 diff --git a/graphics/pokemon/relicanth/anim_front_gba.png b/graphics/pokemon/relicanth/anim_front_gba.png new file mode 100644 index 0000000000..3a6216ed7d Binary files /dev/null and b/graphics/pokemon/relicanth/anim_front_gba.png differ diff --git a/graphics/pokemon/relicanth/back_gba.png b/graphics/pokemon/relicanth/back_gba.png new file mode 100644 index 0000000000..c9ae2e5728 Binary files /dev/null and b/graphics/pokemon/relicanth/back_gba.png differ diff --git a/graphics/pokemon/relicanth/icon_gba.png b/graphics/pokemon/relicanth/icon_gba.png new file mode 100644 index 0000000000..da17eec334 Binary files /dev/null and b/graphics/pokemon/relicanth/icon_gba.png differ diff --git a/graphics/pokemon/relicanth/normal_gba.pal b/graphics/pokemon/relicanth/normal_gba.pal new file mode 100644 index 0000000000..2a95fb3cb3 --- /dev/null +++ b/graphics/pokemon/relicanth/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 246 255 +246 222 180 +213 189 148 +180 148 106 +139 115 74 +106 82 65 +189 164 164 +0 0 0 +164 139 131 +139 115 106 +123 98 90 +82 65 57 +246 90 65 +205 65 49 +255 246 222 +139 123 82 diff --git a/graphics/pokemon/relicanth/shiny_gba.pal b/graphics/pokemon/relicanth/shiny_gba.pal new file mode 100644 index 0000000000..3c37804706 --- /dev/null +++ b/graphics/pokemon/relicanth/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 246 255 +246 222 180 +213 189 148 +180 148 106 +139 115 74 +106 82 65 +172 230 246 +0 0 0 +139 197 213 +106 164 180 +74 131 148 +24 82 98 +246 90 65 +205 65 49 +255 246 222 +139 123 82 diff --git a/graphics/pokemon/remoraid/anim_front_gba.png b/graphics/pokemon/remoraid/anim_front_gba.png new file mode 100644 index 0000000000..73b643b992 Binary files /dev/null and b/graphics/pokemon/remoraid/anim_front_gba.png differ diff --git a/graphics/pokemon/remoraid/back_gba.png b/graphics/pokemon/remoraid/back_gba.png new file mode 100644 index 0000000000..22e48fa6d6 Binary files /dev/null and b/graphics/pokemon/remoraid/back_gba.png differ diff --git a/graphics/pokemon/remoraid/icon_gba.png b/graphics/pokemon/remoraid/icon_gba.png new file mode 100644 index 0000000000..efbe4ace37 Binary files /dev/null and b/graphics/pokemon/remoraid/icon_gba.png differ diff --git a/graphics/pokemon/remoraid/normal_gba.pal b/graphics/pokemon/remoraid/normal_gba.pal new file mode 100644 index 0000000000..4d8f3326c6 --- /dev/null +++ b/graphics/pokemon/remoraid/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 246 246 +180 222 213 +139 172 189 +98 139 164 +57 74 123 +139 0 0 +255 0 255 +255 0 255 +255 0 255 +213 213 213 +172 172 180 +123 123 131 +90 90 90 +41 41 57 diff --git a/graphics/pokemon/remoraid/shiny_gba.pal b/graphics/pokemon/remoraid/shiny_gba.pal new file mode 100644 index 0000000000..b9fd050144 --- /dev/null +++ b/graphics/pokemon/remoraid/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 213 246 +222 180 230 +172 123 180 +131 82 139 +98 57 106 +139 0 0 +255 0 255 +255 0 255 +255 0 255 +213 213 213 +172 172 180 +123 123 131 +90 90 90 +41 41 57 diff --git a/graphics/pokemon/rhydon/anim_front_gba.png b/graphics/pokemon/rhydon/anim_front_gba.png new file mode 100644 index 0000000000..6f1f5fda95 Binary files /dev/null and b/graphics/pokemon/rhydon/anim_front_gba.png differ diff --git a/graphics/pokemon/rhydon/back_gba.png b/graphics/pokemon/rhydon/back_gba.png new file mode 100644 index 0000000000..4acc986bac Binary files /dev/null and b/graphics/pokemon/rhydon/back_gba.png differ diff --git a/graphics/pokemon/rhydon/icon_gba.png b/graphics/pokemon/rhydon/icon_gba.png new file mode 100644 index 0000000000..3bf6336804 Binary files /dev/null and b/graphics/pokemon/rhydon/icon_gba.png differ diff --git a/graphics/pokemon/rhydon/normal_gba.pal b/graphics/pokemon/rhydon/normal_gba.pal new file mode 100644 index 0000000000..1874d9eb7e --- /dev/null +++ b/graphics/pokemon/rhydon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +255 238 197 +230 213 172 +180 164 115 +123 106 57 +230 82 57 +164 49 16 +115 32 16 +255 0 255 +255 0 255 +230 230 222 +197 197 189 +139 139 148 +82 82 90 +16 16 16 diff --git a/graphics/pokemon/rhydon/shiny_gba.pal b/graphics/pokemon/rhydon/shiny_gba.pal new file mode 100644 index 0000000000..1e71e3ac55 --- /dev/null +++ b/graphics/pokemon/rhydon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +255 238 197 +230 213 172 +180 164 115 +123 106 57 +230 82 57 +164 49 16 +115 32 16 +255 0 255 +255 0 255 +255 255 222 +230 213 180 +189 172 139 +131 115 82 +16 16 16 diff --git a/graphics/pokemon/rhyhorn/anim_front_gba.png b/graphics/pokemon/rhyhorn/anim_front_gba.png new file mode 100644 index 0000000000..eb62ec8a05 Binary files /dev/null and b/graphics/pokemon/rhyhorn/anim_front_gba.png differ diff --git a/graphics/pokemon/rhyhorn/back_gba.png b/graphics/pokemon/rhyhorn/back_gba.png new file mode 100644 index 0000000000..67d006205c Binary files /dev/null and b/graphics/pokemon/rhyhorn/back_gba.png differ diff --git a/graphics/pokemon/rhyhorn/icon_gba.png b/graphics/pokemon/rhyhorn/icon_gba.png new file mode 100644 index 0000000000..03bb348e7e Binary files /dev/null and b/graphics/pokemon/rhyhorn/icon_gba.png differ diff --git a/graphics/pokemon/rhyhorn/normal_gba.pal b/graphics/pokemon/rhyhorn/normal_gba.pal new file mode 100644 index 0000000000..bf720235e6 --- /dev/null +++ b/graphics/pokemon/rhyhorn/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +230 230 238 +189 189 205 +131 131 172 +90 90 123 +65 65 90 +172 57 41 +90 8 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/rhyhorn/shiny_gba.pal b/graphics/pokemon/rhyhorn/shiny_gba.pal new file mode 100644 index 0000000000..64280c9398 --- /dev/null +++ b/graphics/pokemon/rhyhorn/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +238 180 156 +197 139 115 +156 98 74 +115 57 32 +74 16 0 +172 57 41 +90 8 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/ribombee/icon.png b/graphics/pokemon/ribombee/icon.png index 10117f1234..46f0ba787c 100644 Binary files a/graphics/pokemon/ribombee/icon.png and b/graphics/pokemon/ribombee/icon.png differ diff --git a/graphics/pokemon/rillaboom/gigantamax/back.png b/graphics/pokemon/rillaboom/gmax/back.png similarity index 100% rename from graphics/pokemon/rillaboom/gigantamax/back.png rename to graphics/pokemon/rillaboom/gmax/back.png diff --git a/graphics/pokemon/rillaboom/gigantamax/front.png b/graphics/pokemon/rillaboom/gmax/front.png similarity index 100% rename from graphics/pokemon/rillaboom/gigantamax/front.png rename to graphics/pokemon/rillaboom/gmax/front.png diff --git a/graphics/pokemon/rillaboom/gigantamax/icon.png b/graphics/pokemon/rillaboom/gmax/icon.png similarity index 100% rename from graphics/pokemon/rillaboom/gigantamax/icon.png rename to graphics/pokemon/rillaboom/gmax/icon.png diff --git a/graphics/pokemon/rillaboom/gigantamax/normal.pal b/graphics/pokemon/rillaboom/gmax/normal.pal similarity index 100% rename from graphics/pokemon/rillaboom/gigantamax/normal.pal rename to graphics/pokemon/rillaboom/gmax/normal.pal diff --git a/graphics/pokemon/rillaboom/gigantamax/shiny.pal b/graphics/pokemon/rillaboom/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/rillaboom/gigantamax/shiny.pal rename to graphics/pokemon/rillaboom/gmax/shiny.pal diff --git a/graphics/pokemon/rockruff/icon.png b/graphics/pokemon/rockruff/icon.png index 5df839ab5d..6a7816898e 100644 Binary files a/graphics/pokemon/rockruff/icon.png and b/graphics/pokemon/rockruff/icon.png differ diff --git a/graphics/pokemon/roselia/anim_front_gba.png b/graphics/pokemon/roselia/anim_front_gba.png new file mode 100644 index 0000000000..0b9cfdf0b0 Binary files /dev/null and b/graphics/pokemon/roselia/anim_front_gba.png differ diff --git a/graphics/pokemon/roselia/back_gba.png b/graphics/pokemon/roselia/back_gba.png new file mode 100644 index 0000000000..5275c801dc Binary files /dev/null and b/graphics/pokemon/roselia/back_gba.png differ diff --git a/graphics/pokemon/roselia/icon_gba.png b/graphics/pokemon/roselia/icon_gba.png new file mode 100644 index 0000000000..fc63c9644a Binary files /dev/null and b/graphics/pokemon/roselia/icon_gba.png differ diff --git a/graphics/pokemon/roselia/normal_gba.pal b/graphics/pokemon/roselia/normal_gba.pal new file mode 100644 index 0000000000..a96e5081c9 --- /dev/null +++ b/graphics/pokemon/roselia/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +0 0 0 +180 238 115 +246 213 74 +205 222 213 +65 98 49 +131 156 164 +98 148 74 +123 205 98 +172 197 197 +164 49 74 +246 90 131 +255 164 189 +41 90 148 +82 148 213 +98 180 255 diff --git a/graphics/pokemon/roselia/shiny_gba.pal b/graphics/pokemon/roselia/shiny_gba.pal new file mode 100644 index 0000000000..eebb104afd --- /dev/null +++ b/graphics/pokemon/roselia/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +0 0 0 +189 255 115 +246 213 74 +255 238 172 +82 98 41 +213 172 90 +115 172 49 +156 213 74 +255 213 106 +123 65 139 +180 98 205 +205 139 222 +41 49 65 +115 106 123 +148 139 156 diff --git a/graphics/pokemon/rowlet/icon.png b/graphics/pokemon/rowlet/icon.png index 433666f6e1..725a5884f7 100644 Binary files a/graphics/pokemon/rowlet/icon.png and b/graphics/pokemon/rowlet/icon.png differ diff --git a/graphics/pokemon/sableye/anim_front_gba.png b/graphics/pokemon/sableye/anim_front_gba.png new file mode 100644 index 0000000000..3b70ec40f5 Binary files /dev/null and b/graphics/pokemon/sableye/anim_front_gba.png differ diff --git a/graphics/pokemon/sableye/back_gba.png b/graphics/pokemon/sableye/back_gba.png new file mode 100644 index 0000000000..75c12743c9 Binary files /dev/null and b/graphics/pokemon/sableye/back_gba.png differ diff --git a/graphics/pokemon/sableye/icon_gba.png b/graphics/pokemon/sableye/icon_gba.png new file mode 100644 index 0000000000..e8ac1307ed Binary files /dev/null and b/graphics/pokemon/sableye/icon_gba.png differ diff --git a/graphics/pokemon/sableye/normal_gba.pal b/graphics/pokemon/sableye/normal_gba.pal new file mode 100644 index 0000000000..89a2bed0ab --- /dev/null +++ b/graphics/pokemon/sableye/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 205 205 +74 49 74 +139 98 139 +197 123 189 +213 148 213 +148 131 213 +197 222 255 +255 255 255 +197 41 32 +106 74 115 +172 180 205 +82 205 65 +32 222 255 +164 115 164 +0 0 0 +255 82 74 diff --git a/graphics/pokemon/sableye/shiny_gba.pal b/graphics/pokemon/sableye/shiny_gba.pal new file mode 100644 index 0000000000..8b03a2efea --- /dev/null +++ b/graphics/pokemon/sableye/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 205 205 +115 82 65 +131 82 57 +213 164 123 +246 197 164 +230 148 90 +255 230 156 +255 255 255 +82 213 74 +106 74 57 +230 164 90 +32 222 255 +255 230 106 +180 123 90 +0 0 0 +148 255 148 diff --git a/graphics/pokemon/salamence/anim_front_gba.png b/graphics/pokemon/salamence/anim_front_gba.png new file mode 100644 index 0000000000..7d1af0efbd Binary files /dev/null and b/graphics/pokemon/salamence/anim_front_gba.png differ diff --git a/graphics/pokemon/salamence/back_gba.png b/graphics/pokemon/salamence/back_gba.png new file mode 100644 index 0000000000..748147e777 Binary files /dev/null and b/graphics/pokemon/salamence/back_gba.png differ diff --git a/graphics/pokemon/salamence/icon_gba.png b/graphics/pokemon/salamence/icon_gba.png new file mode 100644 index 0000000000..b4c925502d Binary files /dev/null and b/graphics/pokemon/salamence/icon_gba.png differ diff --git a/graphics/pokemon/salamence/normal_gba.pal b/graphics/pokemon/salamence/normal_gba.pal new file mode 100644 index 0000000000..8ee78691f7 --- /dev/null +++ b/graphics/pokemon/salamence/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 222 98 +57 65 98 +82 98 148 +123 123 222 +172 172 255 +123 74 49 +189 115 74 +222 123 82 +255 148 98 +131 148 148 +172 164 189 +222 213 238 +255 255 255 +0 0 0 +255 255 41 +24 24 24 diff --git a/graphics/pokemon/salamence/shiny_gba.pal b/graphics/pokemon/salamence/shiny_gba.pal new file mode 100644 index 0000000000..bf2da08f21 --- /dev/null +++ b/graphics/pokemon/salamence/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +172 222 98 +16 98 32 +98 156 106 +106 197 106 +148 230 148 +123 74 49 +189 115 74 +222 123 82 +255 148 98 +131 148 148 +172 164 189 +222 213 238 +255 255 255 +0 0 0 +255 255 41 +24 24 24 diff --git a/graphics/pokemon/salandit/icon.png b/graphics/pokemon/salandit/icon.png index e0c6309c75..37fe8d7e75 100644 Binary files a/graphics/pokemon/salandit/icon.png and b/graphics/pokemon/salandit/icon.png differ diff --git a/graphics/pokemon/salazzle/icon.png b/graphics/pokemon/salazzle/icon.png index db4edf2fc3..e106d18c4d 100644 Binary files a/graphics/pokemon/salazzle/icon.png and b/graphics/pokemon/salazzle/icon.png differ diff --git a/graphics/pokemon/samurott/hisuian/back.png b/graphics/pokemon/samurott/hisui/back.png similarity index 100% rename from graphics/pokemon/samurott/hisuian/back.png rename to graphics/pokemon/samurott/hisui/back.png diff --git a/graphics/pokemon/samurott/hisuian/front.png b/graphics/pokemon/samurott/hisui/front.png similarity index 100% rename from graphics/pokemon/samurott/hisuian/front.png rename to graphics/pokemon/samurott/hisui/front.png diff --git a/graphics/pokemon/samurott/hisuian/icon.png b/graphics/pokemon/samurott/hisui/icon.png similarity index 100% rename from graphics/pokemon/samurott/hisuian/icon.png rename to graphics/pokemon/samurott/hisui/icon.png diff --git a/graphics/pokemon/samurott/hisuian/normal.pal b/graphics/pokemon/samurott/hisui/normal.pal similarity index 100% rename from graphics/pokemon/samurott/hisuian/normal.pal rename to graphics/pokemon/samurott/hisui/normal.pal diff --git a/graphics/pokemon/samurott/hisuian/overworld.png b/graphics/pokemon/samurott/hisui/overworld.png similarity index 100% rename from graphics/pokemon/samurott/hisuian/overworld.png rename to graphics/pokemon/samurott/hisui/overworld.png diff --git a/graphics/pokemon/samurott/hisuian/overworld_normal.pal b/graphics/pokemon/samurott/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/samurott/hisuian/overworld_normal.pal rename to graphics/pokemon/samurott/hisui/overworld_normal.pal diff --git a/graphics/pokemon/samurott/hisuian/overworld_shiny.pal b/graphics/pokemon/samurott/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/samurott/hisuian/overworld_shiny.pal rename to graphics/pokemon/samurott/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/samurott/hisuian/shiny.pal b/graphics/pokemon/samurott/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/samurott/hisuian/shiny.pal rename to graphics/pokemon/samurott/hisui/shiny.pal diff --git a/graphics/pokemon/sandaconda/gigantamax/back.png b/graphics/pokemon/sandaconda/gmax/back.png similarity index 100% rename from graphics/pokemon/sandaconda/gigantamax/back.png rename to graphics/pokemon/sandaconda/gmax/back.png diff --git a/graphics/pokemon/sandaconda/gigantamax/front.png b/graphics/pokemon/sandaconda/gmax/front.png similarity index 100% rename from graphics/pokemon/sandaconda/gigantamax/front.png rename to graphics/pokemon/sandaconda/gmax/front.png diff --git a/graphics/pokemon/sandaconda/gigantamax/icon.png b/graphics/pokemon/sandaconda/gmax/icon.png similarity index 100% rename from graphics/pokemon/sandaconda/gigantamax/icon.png rename to graphics/pokemon/sandaconda/gmax/icon.png diff --git a/graphics/pokemon/sandaconda/gigantamax/normal.pal b/graphics/pokemon/sandaconda/gmax/normal.pal similarity index 100% rename from graphics/pokemon/sandaconda/gigantamax/normal.pal rename to graphics/pokemon/sandaconda/gmax/normal.pal diff --git a/graphics/pokemon/sandaconda/gigantamax/shiny.pal b/graphics/pokemon/sandaconda/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/sandaconda/gigantamax/shiny.pal rename to graphics/pokemon/sandaconda/gmax/shiny.pal diff --git a/graphics/pokemon/sandshrew/alolan/back.png b/graphics/pokemon/sandshrew/alola/back.png similarity index 100% rename from graphics/pokemon/sandshrew/alolan/back.png rename to graphics/pokemon/sandshrew/alola/back.png diff --git a/graphics/pokemon/sandshrew/alolan/front.png b/graphics/pokemon/sandshrew/alola/front.png similarity index 100% rename from graphics/pokemon/sandshrew/alolan/front.png rename to graphics/pokemon/sandshrew/alola/front.png diff --git a/graphics/pokemon/sandshrew/alola/icon.png b/graphics/pokemon/sandshrew/alola/icon.png new file mode 100644 index 0000000000..ae93de08b6 Binary files /dev/null and b/graphics/pokemon/sandshrew/alola/icon.png differ diff --git a/graphics/pokemon/sandshrew/alolan/normal.pal b/graphics/pokemon/sandshrew/alola/normal.pal similarity index 100% rename from graphics/pokemon/sandshrew/alolan/normal.pal rename to graphics/pokemon/sandshrew/alola/normal.pal diff --git a/graphics/pokemon/sandshrew/alolan/overworld.png b/graphics/pokemon/sandshrew/alola/overworld.png similarity index 100% rename from graphics/pokemon/sandshrew/alolan/overworld.png rename to graphics/pokemon/sandshrew/alola/overworld.png diff --git a/graphics/pokemon/sandshrew/alolan/overworld_normal.pal b/graphics/pokemon/sandshrew/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/sandshrew/alolan/overworld_normal.pal rename to graphics/pokemon/sandshrew/alola/overworld_normal.pal diff --git a/graphics/pokemon/sandshrew/alolan/overworld_shiny.pal b/graphics/pokemon/sandshrew/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/sandshrew/alolan/overworld_shiny.pal rename to graphics/pokemon/sandshrew/alola/overworld_shiny.pal diff --git a/graphics/pokemon/sandshrew/alolan/shiny.pal b/graphics/pokemon/sandshrew/alola/shiny.pal similarity index 100% rename from graphics/pokemon/sandshrew/alolan/shiny.pal rename to graphics/pokemon/sandshrew/alola/shiny.pal diff --git a/graphics/pokemon/sandshrew/alolan/icon.png b/graphics/pokemon/sandshrew/alolan/icon.png deleted file mode 100644 index a1cc049bdb..0000000000 Binary files a/graphics/pokemon/sandshrew/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/sandshrew/anim_front_gba.png b/graphics/pokemon/sandshrew/anim_front_gba.png new file mode 100644 index 0000000000..8382009fde Binary files /dev/null and b/graphics/pokemon/sandshrew/anim_front_gba.png differ diff --git a/graphics/pokemon/sandshrew/back_gba.png b/graphics/pokemon/sandshrew/back_gba.png new file mode 100644 index 0000000000..86fa10ec8f Binary files /dev/null and b/graphics/pokemon/sandshrew/back_gba.png differ diff --git a/graphics/pokemon/sandshrew/icon_gba.png b/graphics/pokemon/sandshrew/icon_gba.png new file mode 100644 index 0000000000..5919f10950 Binary files /dev/null and b/graphics/pokemon/sandshrew/icon_gba.png differ diff --git a/graphics/pokemon/sandshrew/normal_gba.pal b/graphics/pokemon/sandshrew/normal_gba.pal new file mode 100644 index 0000000000..5f537b5910 --- /dev/null +++ b/graphics/pokemon/sandshrew/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 0 255 +230 230 0 +213 189 0 +172 139 0 +131 82 16 +255 0 255 +255 0 255 +255 0 255 +180 180 164 +205 205 189 +238 238 222 +139 139 139 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/sandshrew/shiny_gba.pal b/graphics/pokemon/sandshrew/shiny_gba.pal new file mode 100644 index 0000000000..ce7877a663 --- /dev/null +++ b/graphics/pokemon/sandshrew/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 0 255 +213 238 123 +172 197 82 +131 156 41 +65 90 0 +255 0 255 +255 0 255 +255 0 255 +180 180 164 +205 205 189 +238 238 222 +139 139 139 +82 82 82 +16 16 16 diff --git a/graphics/pokemon/sandslash/alolan/back.png b/graphics/pokemon/sandslash/alola/back.png similarity index 100% rename from graphics/pokemon/sandslash/alolan/back.png rename to graphics/pokemon/sandslash/alola/back.png diff --git a/graphics/pokemon/sandslash/alolan/front.png b/graphics/pokemon/sandslash/alola/front.png similarity index 100% rename from graphics/pokemon/sandslash/alolan/front.png rename to graphics/pokemon/sandslash/alola/front.png diff --git a/graphics/pokemon/sandslash/alola/icon.png b/graphics/pokemon/sandslash/alola/icon.png new file mode 100644 index 0000000000..9df450d1ed Binary files /dev/null and b/graphics/pokemon/sandslash/alola/icon.png differ diff --git a/graphics/pokemon/sandslash/alolan/normal.pal b/graphics/pokemon/sandslash/alola/normal.pal similarity index 100% rename from graphics/pokemon/sandslash/alolan/normal.pal rename to graphics/pokemon/sandslash/alola/normal.pal diff --git a/graphics/pokemon/sandslash/alolan/overworld.png b/graphics/pokemon/sandslash/alola/overworld.png similarity index 100% rename from graphics/pokemon/sandslash/alolan/overworld.png rename to graphics/pokemon/sandslash/alola/overworld.png diff --git a/graphics/pokemon/sandslash/alolan/overworld_normal.pal b/graphics/pokemon/sandslash/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/sandslash/alolan/overworld_normal.pal rename to graphics/pokemon/sandslash/alola/overworld_normal.pal diff --git a/graphics/pokemon/sandslash/alolan/overworld_shiny.pal b/graphics/pokemon/sandslash/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/sandslash/alolan/overworld_shiny.pal rename to graphics/pokemon/sandslash/alola/overworld_shiny.pal diff --git a/graphics/pokemon/sandslash/alolan/shiny.pal b/graphics/pokemon/sandslash/alola/shiny.pal similarity index 100% rename from graphics/pokemon/sandslash/alolan/shiny.pal rename to graphics/pokemon/sandslash/alola/shiny.pal diff --git a/graphics/pokemon/sandslash/alolan/icon.png b/graphics/pokemon/sandslash/alolan/icon.png deleted file mode 100644 index 88cea6049b..0000000000 Binary files a/graphics/pokemon/sandslash/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/sandslash/anim_front_gba.png b/graphics/pokemon/sandslash/anim_front_gba.png new file mode 100644 index 0000000000..b71e3bc7d8 Binary files /dev/null and b/graphics/pokemon/sandslash/anim_front_gba.png differ diff --git a/graphics/pokemon/sandslash/back_gba.png b/graphics/pokemon/sandslash/back_gba.png new file mode 100644 index 0000000000..64c3050472 Binary files /dev/null and b/graphics/pokemon/sandslash/back_gba.png differ diff --git a/graphics/pokemon/sandslash/icon_gba.png b/graphics/pokemon/sandslash/icon_gba.png new file mode 100644 index 0000000000..08198e6b2c Binary files /dev/null and b/graphics/pokemon/sandslash/icon_gba.png differ diff --git a/graphics/pokemon/sandslash/normal_gba.pal b/graphics/pokemon/sandslash/normal_gba.pal new file mode 100644 index 0000000000..a9122fbf64 --- /dev/null +++ b/graphics/pokemon/sandslash/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +246 238 90 +222 197 32 +189 164 0 +131 98 0 +238 238 222 +205 205 189 +139 139 139 +74 74 74 +205 180 74 +156 123 16 +123 90 0 +90 49 0 +16 16 16 +255 0 255 diff --git a/graphics/pokemon/sandslash/shiny_gba.pal b/graphics/pokemon/sandslash/shiny_gba.pal new file mode 100644 index 0000000000..8d1cca9b27 --- /dev/null +++ b/graphics/pokemon/sandslash/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +246 238 156 +222 205 115 +164 148 65 +131 115 32 +98 82 0 +238 238 222 +205 205 189 +139 139 139 +74 74 74 +246 98 98 +213 65 65 +180 32 32 +123 0 0 +90 0 0 +255 0 255 diff --git a/graphics/pokemon/sandygast/icon.png b/graphics/pokemon/sandygast/icon.png index 46167f5ab6..b402810942 100644 Binary files a/graphics/pokemon/sandygast/icon.png and b/graphics/pokemon/sandygast/icon.png differ diff --git a/graphics/pokemon/sceptile/anim_front_gba.png b/graphics/pokemon/sceptile/anim_front_gba.png new file mode 100644 index 0000000000..74473e2e5a Binary files /dev/null and b/graphics/pokemon/sceptile/anim_front_gba.png differ diff --git a/graphics/pokemon/sceptile/back_gba.png b/graphics/pokemon/sceptile/back_gba.png new file mode 100644 index 0000000000..5b7e8696ef Binary files /dev/null and b/graphics/pokemon/sceptile/back_gba.png differ diff --git a/graphics/pokemon/sceptile/icon_gba.png b/graphics/pokemon/sceptile/icon_gba.png new file mode 100644 index 0000000000..d144941e08 Binary files /dev/null and b/graphics/pokemon/sceptile/icon_gba.png differ diff --git a/graphics/pokemon/sceptile/normal_gba.pal b/graphics/pokemon/sceptile/normal_gba.pal new file mode 100644 index 0000000000..31f822b0cc --- /dev/null +++ b/graphics/pokemon/sceptile/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 106 156 +255 230 106 +255 197 82 +197 131 57 +255 238 180 +255 106 82 +213 82 57 +164 74 49 +57 98 32 +123 98 90 +255 255 255 +189 255 115 +156 213 74 +115 172 49 +90 123 32 +16 16 16 diff --git a/graphics/pokemon/sceptile/shiny_gba.pal b/graphics/pokemon/sceptile/shiny_gba.pal new file mode 100644 index 0000000000..9a6882bf4c --- /dev/null +++ b/graphics/pokemon/sceptile/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 106 156 +255 106 82 +213 82 57 +164 74 49 +255 238 180 +255 230 106 +255 180 82 +197 131 57 +57 98 32 +123 98 90 +255 255 255 +189 246 255 +164 222 230 +90 180 164 +82 139 131 +16 16 16 diff --git a/graphics/pokemon/scizor/anim_front_gba.png b/graphics/pokemon/scizor/anim_front_gba.png new file mode 100644 index 0000000000..9005f3438d Binary files /dev/null and b/graphics/pokemon/scizor/anim_front_gba.png differ diff --git a/graphics/pokemon/scizor/back_gba.png b/graphics/pokemon/scizor/back_gba.png new file mode 100644 index 0000000000..b31f50da15 Binary files /dev/null and b/graphics/pokemon/scizor/back_gba.png differ diff --git a/graphics/pokemon/scizor/icon_gba.png b/graphics/pokemon/scizor/icon_gba.png new file mode 100644 index 0000000000..0a8667832b Binary files /dev/null and b/graphics/pokemon/scizor/icon_gba.png differ diff --git a/graphics/pokemon/scizor/normal_gba.pal b/graphics/pokemon/scizor/normal_gba.pal new file mode 100644 index 0000000000..a9310feaed --- /dev/null +++ b/graphics/pokemon/scizor/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 197 115 +255 98 16 +205 57 0 +123 32 0 +255 0 255 +255 205 16 +255 139 41 +189 139 41 +255 0 255 +255 0 255 +197 197 205 +148 148 156 +90 90 106 +16 16 16 diff --git a/graphics/pokemon/scizor/shiny_gba.pal b/graphics/pokemon/scizor/shiny_gba.pal new file mode 100644 index 0000000000..93e8e479b4 --- /dev/null +++ b/graphics/pokemon/scizor/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 230 98 +180 189 65 +106 115 65 +74 82 16 +255 0 255 +255 205 16 +255 139 41 +189 139 41 +255 0 255 +255 0 255 +197 197 205 +98 197 82 +49 123 32 +16 16 16 diff --git a/graphics/pokemon/scyther/anim_front_gba.png b/graphics/pokemon/scyther/anim_front_gba.png new file mode 100644 index 0000000000..90b7ad4a8d Binary files /dev/null and b/graphics/pokemon/scyther/anim_front_gba.png differ diff --git a/graphics/pokemon/scyther/back_gba.png b/graphics/pokemon/scyther/back_gba.png new file mode 100644 index 0000000000..a1b9d1591b Binary files /dev/null and b/graphics/pokemon/scyther/back_gba.png differ diff --git a/graphics/pokemon/scyther/icon_gba.png b/graphics/pokemon/scyther/icon_gba.png new file mode 100644 index 0000000000..62f94bba63 Binary files /dev/null and b/graphics/pokemon/scyther/icon_gba.png differ diff --git a/graphics/pokemon/scyther/normal_gba.pal b/graphics/pokemon/scyther/normal_gba.pal new file mode 100644 index 0000000000..8678b0bc3f --- /dev/null +++ b/graphics/pokemon/scyther/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +255 255 255 +222 222 222 +189 189 189 +115 115 115 +246 230 123 +205 197 90 +255 255 172 +246 230 123 +205 197 90 +156 139 49 +189 255 115 +156 222 74 +98 189 32 +74 106 32 +16 16 16 diff --git a/graphics/pokemon/scyther/shiny_gba.pal b/graphics/pokemon/scyther/shiny_gba.pal new file mode 100644 index 0000000000..131fff6368 --- /dev/null +++ b/graphics/pokemon/scyther/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 197 +255 255 255 +222 222 222 +189 189 189 +115 115 115 +255 123 90 +255 82 49 +255 255 172 +246 230 123 +205 197 90 +156 139 49 +164 230 49 +123 189 49 +82 148 8 +57 90 8 +16 16 16 diff --git a/graphics/pokemon/seadra/anim_front_gba.png b/graphics/pokemon/seadra/anim_front_gba.png new file mode 100644 index 0000000000..c9fc064a41 Binary files /dev/null and b/graphics/pokemon/seadra/anim_front_gba.png differ diff --git a/graphics/pokemon/seadra/back_gba.png b/graphics/pokemon/seadra/back_gba.png new file mode 100644 index 0000000000..526d7495c0 Binary files /dev/null and b/graphics/pokemon/seadra/back_gba.png differ diff --git a/graphics/pokemon/seadra/icon_gba.png b/graphics/pokemon/seadra/icon_gba.png new file mode 100644 index 0000000000..f85ea2f326 Binary files /dev/null and b/graphics/pokemon/seadra/icon_gba.png differ diff --git a/graphics/pokemon/seadra/normal_gba.pal b/graphics/pokemon/seadra/normal_gba.pal new file mode 100644 index 0000000000..e29e999bf0 --- /dev/null +++ b/graphics/pokemon/seadra/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +164 205 230 +131 172 205 +106 131 156 +74 106 131 +32 65 90 +255 255 172 +222 197 82 +148 123 65 +255 0 255 +255 0 255 +222 222 222 +156 156 156 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/seadra/shiny_gba.pal b/graphics/pokemon/seadra/shiny_gba.pal new file mode 100644 index 0000000000..7cb7cbb5f5 --- /dev/null +++ b/graphics/pokemon/seadra/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 0 255 +106 164 205 +65 106 164 +41 65 98 +49 41 65 +0 0 82 +255 222 180 +255 156 123 +172 82 123 +255 0 255 +255 0 255 +222 222 222 +156 156 156 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/seaking/anim_front_gba.png b/graphics/pokemon/seaking/anim_front_gba.png new file mode 100644 index 0000000000..242f2b65f5 Binary files /dev/null and b/graphics/pokemon/seaking/anim_front_gba.png differ diff --git a/graphics/pokemon/seaking/back_gba.png b/graphics/pokemon/seaking/back_gba.png new file mode 100644 index 0000000000..eb3fbd661a Binary files /dev/null and b/graphics/pokemon/seaking/back_gba.png differ diff --git a/graphics/pokemon/seaking/icon_gba.png b/graphics/pokemon/seaking/icon_gba.png new file mode 100644 index 0000000000..7c3bcaec1c Binary files /dev/null and b/graphics/pokemon/seaking/icon_gba.png differ diff --git a/graphics/pokemon/seaking/normal_gba.pal b/graphics/pokemon/seaking/normal_gba.pal new file mode 100644 index 0000000000..1ffe314f49 --- /dev/null +++ b/graphics/pokemon/seaking/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +213 213 222 +172 180 189 +131 139 156 +90 90 98 +255 197 205 +246 123 90 +164 57 65 +255 0 255 +255 164 123 +246 123 90 +222 65 32 +164 49 32 +82 82 82 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/seaking/shiny_gba.pal b/graphics/pokemon/seaking/shiny_gba.pal new file mode 100644 index 0000000000..2a4acb23d6 --- /dev/null +++ b/graphics/pokemon/seaking/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +230 246 164 +213 246 139 +131 164 57 +90 115 8 +255 197 205 +246 123 90 +164 57 65 +255 0 255 +255 246 131 +255 205 90 +213 164 49 +156 106 0 +82 82 82 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/sealeo/anim_front_gba.png b/graphics/pokemon/sealeo/anim_front_gba.png new file mode 100644 index 0000000000..01d8371a61 Binary files /dev/null and b/graphics/pokemon/sealeo/anim_front_gba.png differ diff --git a/graphics/pokemon/sealeo/back_gba.png b/graphics/pokemon/sealeo/back_gba.png new file mode 100644 index 0000000000..302ffb7f2f Binary files /dev/null and b/graphics/pokemon/sealeo/back_gba.png differ diff --git a/graphics/pokemon/sealeo/icon_gba.png b/graphics/pokemon/sealeo/icon_gba.png new file mode 100644 index 0000000000..2d21e88370 Binary files /dev/null and b/graphics/pokemon/sealeo/icon_gba.png differ diff --git a/graphics/pokemon/sealeo/normal_gba.pal b/graphics/pokemon/sealeo/normal_gba.pal new file mode 100644 index 0000000000..6644440c0f --- /dev/null +++ b/graphics/pokemon/sealeo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 139 82 +57 82 115 +65 106 164 +106 148 213 +139 172 255 +0 0 0 +156 156 180 +189 189 213 +222 222 255 +189 156 123 +213 180 148 +238 205 172 +90 123 148 +189 205 255 +255 230 189 +255 255 255 diff --git a/graphics/pokemon/sealeo/shiny_gba.pal b/graphics/pokemon/sealeo/shiny_gba.pal new file mode 100644 index 0000000000..df44748770 --- /dev/null +++ b/graphics/pokemon/sealeo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +82 139 82 +90 49 139 +180 98 205 +213 148 238 +246 197 255 +0 0 0 +156 156 180 +189 189 213 +222 222 255 +189 148 82 +230 189 106 +255 222 164 +156 74 180 +255 238 255 +255 246 197 +255 255 255 diff --git a/graphics/pokemon/seedot/anim_front_gba.png b/graphics/pokemon/seedot/anim_front_gba.png new file mode 100644 index 0000000000..95007fb3ff Binary files /dev/null and b/graphics/pokemon/seedot/anim_front_gba.png differ diff --git a/graphics/pokemon/seedot/back_gba.png b/graphics/pokemon/seedot/back_gba.png new file mode 100644 index 0000000000..ee4017cf5a Binary files /dev/null and b/graphics/pokemon/seedot/back_gba.png differ diff --git a/graphics/pokemon/seedot/icon_gba.png b/graphics/pokemon/seedot/icon_gba.png new file mode 100644 index 0000000000..500a49d47f Binary files /dev/null and b/graphics/pokemon/seedot/icon_gba.png differ diff --git a/graphics/pokemon/seedot/normal_gba.pal b/graphics/pokemon/seedot/normal_gba.pal new file mode 100644 index 0000000000..0fc33bf9b0 --- /dev/null +++ b/graphics/pokemon/seedot/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +82 82 32 +131 123 115 +255 255 255 +156 90 49 +213 148 49 +213 180 82 +123 148 82 +180 205 131 +230 238 180 +246 197 98 +255 238 172 +0 0 0 +0 0 0 +0 0 0 +246 57 0 diff --git a/graphics/pokemon/seedot/shiny_gba.pal b/graphics/pokemon/seedot/shiny_gba.pal new file mode 100644 index 0000000000..0cd33d0c12 --- /dev/null +++ b/graphics/pokemon/seedot/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +82 82 32 +131 123 115 +255 255 255 +197 57 41 +230 82 32 +255 139 82 +148 139 139 +180 172 172 +222 213 213 +246 197 98 +255 238 172 +0 0 0 +0 0 0 +0 0 0 +246 57 0 diff --git a/graphics/pokemon/seel/anim_front_gba.png b/graphics/pokemon/seel/anim_front_gba.png new file mode 100644 index 0000000000..37495db717 Binary files /dev/null and b/graphics/pokemon/seel/anim_front_gba.png differ diff --git a/graphics/pokemon/seel/back_gba.png b/graphics/pokemon/seel/back_gba.png new file mode 100644 index 0000000000..5268657f58 Binary files /dev/null and b/graphics/pokemon/seel/back_gba.png differ diff --git a/graphics/pokemon/seel/icon_gba.png b/graphics/pokemon/seel/icon_gba.png new file mode 100644 index 0000000000..9000021e99 Binary files /dev/null and b/graphics/pokemon/seel/icon_gba.png differ diff --git a/graphics/pokemon/seel/normal_gba.pal b/graphics/pokemon/seel/normal_gba.pal new file mode 100644 index 0000000000..bc38b44e51 --- /dev/null +++ b/graphics/pokemon/seel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +230 230 246 +197 205 238 +156 164 189 +65 82 131 +255 255 197 +213 180 131 +115 106 49 +255 189 164 +213 131 82 +164 82 32 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/seel/shiny_gba.pal b/graphics/pokemon/seel/shiny_gba.pal new file mode 100644 index 0000000000..952eec3181 --- /dev/null +++ b/graphics/pokemon/seel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +238 238 213 +213 205 189 +180 172 156 +139 131 115 +255 255 197 +213 180 131 +115 106 49 +255 156 123 +238 115 82 +148 57 41 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/sentret/anim_front_gba.png b/graphics/pokemon/sentret/anim_front_gba.png new file mode 100644 index 0000000000..b1c9ec22c2 Binary files /dev/null and b/graphics/pokemon/sentret/anim_front_gba.png differ diff --git a/graphics/pokemon/sentret/back_gba.png b/graphics/pokemon/sentret/back_gba.png new file mode 100644 index 0000000000..97ef90a8d5 Binary files /dev/null and b/graphics/pokemon/sentret/back_gba.png differ diff --git a/graphics/pokemon/sentret/icon_gba.png b/graphics/pokemon/sentret/icon_gba.png new file mode 100644 index 0000000000..560b38d44a Binary files /dev/null and b/graphics/pokemon/sentret/icon_gba.png differ diff --git a/graphics/pokemon/sentret/normal_gba.pal b/graphics/pokemon/sentret/normal_gba.pal new file mode 100644 index 0000000000..5591d8f1b9 --- /dev/null +++ b/graphics/pokemon/sentret/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +238 222 139 +230 197 82 +205 164 65 +180 139 57 +148 106 32 +115 65 16 +90 41 8 +57 8 0 +222 65 24 +180 32 16 +255 131 115 +115 115 115 +65 65 65 +16 16 16 diff --git a/graphics/pokemon/sentret/shiny_gba.pal b/graphics/pokemon/sentret/shiny_gba.pal new file mode 100644 index 0000000000..05c9da6f79 --- /dev/null +++ b/graphics/pokemon/sentret/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 246 172 +238 222 123 +205 164 65 +205 172 74 +197 82 115 +148 41 82 +82 16 65 +57 8 0 +222 65 24 +180 32 16 +255 131 115 +115 115 115 +65 65 65 +16 16 16 diff --git a/graphics/pokemon/seviper/anim_front_gba.png b/graphics/pokemon/seviper/anim_front_gba.png new file mode 100644 index 0000000000..5aafb80021 Binary files /dev/null and b/graphics/pokemon/seviper/anim_front_gba.png differ diff --git a/graphics/pokemon/seviper/back_gba.png b/graphics/pokemon/seviper/back_gba.png new file mode 100644 index 0000000000..b9849a6fa0 Binary files /dev/null and b/graphics/pokemon/seviper/back_gba.png differ diff --git a/graphics/pokemon/seviper/icon_gba.png b/graphics/pokemon/seviper/icon_gba.png new file mode 100644 index 0000000000..ce751ce33d Binary files /dev/null and b/graphics/pokemon/seviper/icon_gba.png differ diff --git a/graphics/pokemon/seviper/normal_gba.pal b/graphics/pokemon/seviper/normal_gba.pal new file mode 100644 index 0000000000..bdcc5e7613 --- /dev/null +++ b/graphics/pokemon/seviper/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +57 49 49 +255 230 90 +222 189 65 +139 41 180 +255 189 172 +238 90 82 +205 65 57 +131 123 65 +41 32 32 +139 123 123 +82 74 74 +0 0 0 +164 49 255 +90 49 65 diff --git a/graphics/pokemon/seviper/shiny_gba.pal b/graphics/pokemon/seviper/shiny_gba.pal new file mode 100644 index 0000000000..7296a030ad --- /dev/null +++ b/graphics/pokemon/seviper/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +57 49 49 +205 255 115 +172 222 82 +180 49 106 +255 189 172 +90 131 180 +57 90 139 +82 123 16 +41 32 32 +139 123 123 +82 74 74 +0 0 0 +213 82 139 +90 49 65 diff --git a/graphics/pokemon/sharpedo/anim_front_gba.png b/graphics/pokemon/sharpedo/anim_front_gba.png new file mode 100644 index 0000000000..644b5331bb Binary files /dev/null and b/graphics/pokemon/sharpedo/anim_front_gba.png differ diff --git a/graphics/pokemon/sharpedo/back_gba.png b/graphics/pokemon/sharpedo/back_gba.png new file mode 100644 index 0000000000..4e011968bd Binary files /dev/null and b/graphics/pokemon/sharpedo/back_gba.png differ diff --git a/graphics/pokemon/sharpedo/icon_gba.png b/graphics/pokemon/sharpedo/icon_gba.png new file mode 100644 index 0000000000..d8dbc26b2a Binary files /dev/null and b/graphics/pokemon/sharpedo/icon_gba.png differ diff --git a/graphics/pokemon/sharpedo/normal_gba.pal b/graphics/pokemon/sharpedo/normal_gba.pal new file mode 100644 index 0000000000..3db40a6016 --- /dev/null +++ b/graphics/pokemon/sharpedo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 255 156 +57 65 74 +65 98 123 +65 139 148 +148 189 189 +213 123 131 +222 189 65 +255 222 98 +172 156 180 +222 205 246 +238 230 255 +156 74 90 +238 49 24 +255 255 255 +0 0 0 +106 57 74 diff --git a/graphics/pokemon/sharpedo/shiny_gba.pal b/graphics/pokemon/sharpedo/shiny_gba.pal new file mode 100644 index 0000000000..11b98e3bd6 --- /dev/null +++ b/graphics/pokemon/sharpedo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 255 156 +98 0 82 +131 0 115 +164 16 148 +197 49 180 +213 123 131 +222 189 65 +255 222 98 +172 156 180 +222 205 246 +238 230 255 +156 74 90 +238 49 24 +255 255 255 +0 0 0 +106 57 74 diff --git a/graphics/pokemon/shedinja/anim_front_gba.png b/graphics/pokemon/shedinja/anim_front_gba.png new file mode 100644 index 0000000000..e21ca56ce2 Binary files /dev/null and b/graphics/pokemon/shedinja/anim_front_gba.png differ diff --git a/graphics/pokemon/shedinja/back_gba.png b/graphics/pokemon/shedinja/back_gba.png new file mode 100644 index 0000000000..bb3a5be7db Binary files /dev/null and b/graphics/pokemon/shedinja/back_gba.png differ diff --git a/graphics/pokemon/shedinja/icon_gba.png b/graphics/pokemon/shedinja/icon_gba.png new file mode 100644 index 0000000000..9f400e3380 Binary files /dev/null and b/graphics/pokemon/shedinja/icon_gba.png differ diff --git a/graphics/pokemon/shedinja/normal_gba.pal b/graphics/pokemon/shedinja/normal_gba.pal new file mode 100644 index 0000000000..1e1eefe6b7 --- /dev/null +++ b/graphics/pokemon/shedinja/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +213 197 65 +180 164 57 +164 131 49 +139 115 41 +82 74 41 +0 0 0 +0 0 0 +0 0 0 +115 90 41 +246 230 98 +255 255 255 +222 222 222 +189 189 189 +123 123 123 +16 16 16 diff --git a/graphics/pokemon/shedinja/shiny_gba.pal b/graphics/pokemon/shedinja/shiny_gba.pal new file mode 100644 index 0000000000..7e7ae66bd1 --- /dev/null +++ b/graphics/pokemon/shedinja/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 230 189 +246 197 156 +213 164 123 +180 131 90 +139 106 74 +0 0 0 +255 0 255 +255 0 255 +123 82 57 +255 246 230 +255 255 255 +238 222 238 +213 180 197 +131 106 131 +16 16 16 diff --git a/graphics/pokemon/shelgon/anim_front_gba.png b/graphics/pokemon/shelgon/anim_front_gba.png new file mode 100644 index 0000000000..062ccf3a19 Binary files /dev/null and b/graphics/pokemon/shelgon/anim_front_gba.png differ diff --git a/graphics/pokemon/shelgon/back_gba.png b/graphics/pokemon/shelgon/back_gba.png new file mode 100644 index 0000000000..9c87ad57cd Binary files /dev/null and b/graphics/pokemon/shelgon/back_gba.png differ diff --git a/graphics/pokemon/shelgon/icon_gba.png b/graphics/pokemon/shelgon/icon_gba.png new file mode 100644 index 0000000000..76e0c6a1f7 Binary files /dev/null and b/graphics/pokemon/shelgon/icon_gba.png differ diff --git a/graphics/pokemon/shelgon/normal_gba.pal b/graphics/pokemon/shelgon/normal_gba.pal new file mode 100644 index 0000000000..a5abe063e1 --- /dev/null +++ b/graphics/pokemon/shelgon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 246 148 +74 65 57 +98 90 74 +123 123 98 +0 0 0 +106 57 57 +189 90 32 +246 115 74 +82 82 115 +148 139 180 +205 205 205 +238 238 205 +246 246 0 +197 197 0 +180 180 189 +24 24 24 diff --git a/graphics/pokemon/shelgon/shiny_gba.pal b/graphics/pokemon/shelgon/shiny_gba.pal new file mode 100644 index 0000000000..3d1e1a361e --- /dev/null +++ b/graphics/pokemon/shelgon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 246 148 +57 49 41 +82 74 57 +106 106 82 +0 0 0 +106 57 57 +172 32 0 +246 82 32 +0 115 65 +74 148 57 +189 205 180 +222 238 205 +246 246 0 +197 197 0 +156 180 164 +24 24 24 diff --git a/graphics/pokemon/shellder/anim_front_gba.png b/graphics/pokemon/shellder/anim_front_gba.png new file mode 100644 index 0000000000..99cbf9875f Binary files /dev/null and b/graphics/pokemon/shellder/anim_front_gba.png differ diff --git a/graphics/pokemon/shellder/back_gba.png b/graphics/pokemon/shellder/back_gba.png new file mode 100644 index 0000000000..ee53743332 Binary files /dev/null and b/graphics/pokemon/shellder/back_gba.png differ diff --git a/graphics/pokemon/shellder/icon_gba.png b/graphics/pokemon/shellder/icon_gba.png new file mode 100644 index 0000000000..36ad59dfa0 Binary files /dev/null and b/graphics/pokemon/shellder/icon_gba.png differ diff --git a/graphics/pokemon/shellder/normal_gba.pal b/graphics/pokemon/shellder/normal_gba.pal new file mode 100644 index 0000000000..a7c9165498 --- /dev/null +++ b/graphics/pokemon/shellder/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +213 213 238 +222 189 238 +180 139 189 +131 90 139 +90 57 98 +255 123 65 +205 74 32 +123 32 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/shellder/shiny_gba.pal b/graphics/pokemon/shellder/shiny_gba.pal new file mode 100644 index 0000000000..20f597524a --- /dev/null +++ b/graphics/pokemon/shellder/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +213 213 238 +255 180 65 +255 139 24 +213 98 0 +148 32 0 +255 131 123 +238 90 82 +139 24 16 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/shellos/east_sea/anim_front.png b/graphics/pokemon/shellos/east/anim_front.png similarity index 100% rename from graphics/pokemon/shellos/east_sea/anim_front.png rename to graphics/pokemon/shellos/east/anim_front.png diff --git a/graphics/pokemon/shellos/east_sea/back.png b/graphics/pokemon/shellos/east/back.png similarity index 100% rename from graphics/pokemon/shellos/east_sea/back.png rename to graphics/pokemon/shellos/east/back.png diff --git a/graphics/pokemon/shellos/east_sea/icon.png b/graphics/pokemon/shellos/east/icon.png similarity index 100% rename from graphics/pokemon/shellos/east_sea/icon.png rename to graphics/pokemon/shellos/east/icon.png diff --git a/graphics/pokemon/shellos/east_sea/normal.pal b/graphics/pokemon/shellos/east/normal.pal similarity index 100% rename from graphics/pokemon/shellos/east_sea/normal.pal rename to graphics/pokemon/shellos/east/normal.pal diff --git a/graphics/pokemon/shellos/east_sea/overworld.png b/graphics/pokemon/shellos/east/overworld.png similarity index 100% rename from graphics/pokemon/shellos/east_sea/overworld.png rename to graphics/pokemon/shellos/east/overworld.png diff --git a/graphics/pokemon/shellos/east_sea/overworld_normal.pal b/graphics/pokemon/shellos/east/overworld_normal.pal similarity index 100% rename from graphics/pokemon/shellos/east_sea/overworld_normal.pal rename to graphics/pokemon/shellos/east/overworld_normal.pal diff --git a/graphics/pokemon/shellos/east_sea/overworld_shiny.pal b/graphics/pokemon/shellos/east/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/shellos/east_sea/overworld_shiny.pal rename to graphics/pokemon/shellos/east/overworld_shiny.pal diff --git a/graphics/pokemon/shellos/east_sea/shiny.pal b/graphics/pokemon/shellos/east/shiny.pal similarity index 100% rename from graphics/pokemon/shellos/east_sea/shiny.pal rename to graphics/pokemon/shellos/east/shiny.pal diff --git a/graphics/pokemon/shiftry/anim_front_gba.png b/graphics/pokemon/shiftry/anim_front_gba.png new file mode 100644 index 0000000000..70eb97348e Binary files /dev/null and b/graphics/pokemon/shiftry/anim_front_gba.png differ diff --git a/graphics/pokemon/shiftry/back_gba.png b/graphics/pokemon/shiftry/back_gba.png new file mode 100644 index 0000000000..17ddb24caf Binary files /dev/null and b/graphics/pokemon/shiftry/back_gba.png differ diff --git a/graphics/pokemon/shiftry/icon_gba.png b/graphics/pokemon/shiftry/icon_gba.png new file mode 100644 index 0000000000..c10fa772de Binary files /dev/null and b/graphics/pokemon/shiftry/icon_gba.png differ diff --git a/graphics/pokemon/shiftry/normal_gba.pal b/graphics/pokemon/shiftry/normal_gba.pal new file mode 100644 index 0000000000..3a91e677cb --- /dev/null +++ b/graphics/pokemon/shiftry/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 148 197 +82 49 49 +131 131 115 +255 255 255 +115 65 74 +156 90 98 +222 123 82 +246 197 131 +230 222 255 +189 180 197 +0 0 0 +74 123 41 +98 172 98 +131 213 98 +255 213 98 +0 0 0 diff --git a/graphics/pokemon/shiftry/shiny_gba.pal b/graphics/pokemon/shiftry/shiny_gba.pal new file mode 100644 index 0000000000..35aca99d4c --- /dev/null +++ b/graphics/pokemon/shiftry/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 148 197 +82 49 49 +172 106 82 +255 255 255 +115 16 0 +180 49 32 +222 98 49 +255 139 98 +255 238 156 +222 172 74 +0 0 0 +90 131 49 +139 205 82 +189 255 115 +255 156 82 +0 0 0 diff --git a/graphics/pokemon/shiinotic/icon.png b/graphics/pokemon/shiinotic/icon.png index 510d61a97c..68adb4ff34 100644 Binary files a/graphics/pokemon/shiinotic/icon.png and b/graphics/pokemon/shiinotic/icon.png differ diff --git a/graphics/pokemon/shroomish/anim_front_gba.png b/graphics/pokemon/shroomish/anim_front_gba.png new file mode 100644 index 0000000000..df403cca35 Binary files /dev/null and b/graphics/pokemon/shroomish/anim_front_gba.png differ diff --git a/graphics/pokemon/shroomish/back_gba.png b/graphics/pokemon/shroomish/back_gba.png new file mode 100644 index 0000000000..4812bcbcde Binary files /dev/null and b/graphics/pokemon/shroomish/back_gba.png differ diff --git a/graphics/pokemon/shroomish/footprint_gba.png b/graphics/pokemon/shroomish/footprint_gba.png new file mode 100644 index 0000000000..1187f2d5e7 Binary files /dev/null and b/graphics/pokemon/shroomish/footprint_gba.png differ diff --git a/graphics/pokemon/shroomish/icon_gba.png b/graphics/pokemon/shroomish/icon_gba.png new file mode 100644 index 0000000000..87dd120600 Binary files /dev/null and b/graphics/pokemon/shroomish/icon_gba.png differ diff --git a/graphics/pokemon/shroomish/normal_gba.pal b/graphics/pokemon/shroomish/normal_gba.pal new file mode 100644 index 0000000000..97f25bdf66 --- /dev/null +++ b/graphics/pokemon/shroomish/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 139 +98 74 49 +148 106 49 +213 164 90 +238 197 139 +255 230 172 +255 255 213 +90 131 74 +123 172 106 +139 197 131 +164 213 148 +65 82 49 +172 197 131 +0 0 0 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/shroomish/shiny_gba.pal b/graphics/pokemon/shroomish/shiny_gba.pal new file mode 100644 index 0000000000..a0bd12821b --- /dev/null +++ b/graphics/pokemon/shroomish/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 148 139 +123 98 74 +172 123 65 +222 189 123 +246 213 164 +255 238 189 +255 255 230 +180 65 49 +222 98 49 +255 115 74 +255 189 106 +164 49 32 +255 172 98 +0 0 0 +0 0 0 +255 255 255 diff --git a/graphics/pokemon/shuckle/anim_front_gba.png b/graphics/pokemon/shuckle/anim_front_gba.png new file mode 100644 index 0000000000..74251deb0e Binary files /dev/null and b/graphics/pokemon/shuckle/anim_front_gba.png differ diff --git a/graphics/pokemon/shuckle/back_gba.png b/graphics/pokemon/shuckle/back_gba.png new file mode 100644 index 0000000000..1b19db0e55 Binary files /dev/null and b/graphics/pokemon/shuckle/back_gba.png differ diff --git a/graphics/pokemon/shuckle/icon_gba.png b/graphics/pokemon/shuckle/icon_gba.png new file mode 100644 index 0000000000..aaf49345aa Binary files /dev/null and b/graphics/pokemon/shuckle/icon_gba.png differ diff --git a/graphics/pokemon/shuckle/normal_gba.pal b/graphics/pokemon/shuckle/normal_gba.pal new file mode 100644 index 0000000000..ea40c0be49 --- /dev/null +++ b/graphics/pokemon/shuckle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +148 131 115 +115 82 16 +189 139 41 +238 197 74 +255 255 90 +255 0 255 +230 156 131 +246 205 180 +255 0 255 +131 32 0 +197 57 16 +246 115 57 +255 180 123 +255 255 255 diff --git a/graphics/pokemon/shuckle/shiny_gba.pal b/graphics/pokemon/shuckle/shiny_gba.pal new file mode 100644 index 0000000000..30126f57c4 --- /dev/null +++ b/graphics/pokemon/shuckle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +148 131 115 +115 82 16 +189 139 41 +238 197 74 +255 255 90 +255 0 255 +164 189 189 +189 213 213 +255 0 255 +24 65 115 +49 98 189 +65 156 238 +139 205 246 +255 255 255 diff --git a/graphics/pokemon/shuppet/anim_front_gba.png b/graphics/pokemon/shuppet/anim_front_gba.png new file mode 100644 index 0000000000..00629578f4 Binary files /dev/null and b/graphics/pokemon/shuppet/anim_front_gba.png differ diff --git a/graphics/pokemon/shuppet/back_gba.png b/graphics/pokemon/shuppet/back_gba.png new file mode 100644 index 0000000000..2c6dbdb186 Binary files /dev/null and b/graphics/pokemon/shuppet/back_gba.png differ diff --git a/graphics/pokemon/shuppet/icon_gba.png b/graphics/pokemon/shuppet/icon_gba.png new file mode 100644 index 0000000000..6e7087efd7 Binary files /dev/null and b/graphics/pokemon/shuppet/icon_gba.png differ diff --git a/graphics/pokemon/shuppet/normal_gba.pal b/graphics/pokemon/shuppet/normal_gba.pal new file mode 100644 index 0000000000..7dafb6a01c --- /dev/null +++ b/graphics/pokemon/shuppet/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 197 +74 65 74 +148 131 139 +164 164 172 +172 189 197 +123 115 123 +106 213 246 +82 189 213 +246 213 49 +189 180 0 +123 180 65 +106 148 65 +0 0 0 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/shuppet/shiny_gba.pal b/graphics/pokemon/shuppet/shiny_gba.pal new file mode 100644 index 0000000000..9d5557a71e --- /dev/null +++ b/graphics/pokemon/shuppet/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 197 +49 74 82 +57 123 131 +98 172 180 +139 205 213 +49 115 123 +106 213 246 +82 189 213 +246 213 49 +189 180 0 +123 180 65 +106 148 65 +0 0 0 +0 0 0 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/silcoon/anim_front_gba.png b/graphics/pokemon/silcoon/anim_front_gba.png new file mode 100644 index 0000000000..a6cc252dc4 Binary files /dev/null and b/graphics/pokemon/silcoon/anim_front_gba.png differ diff --git a/graphics/pokemon/silcoon/back_gba.png b/graphics/pokemon/silcoon/back_gba.png new file mode 100644 index 0000000000..26c8cfdafd Binary files /dev/null and b/graphics/pokemon/silcoon/back_gba.png differ diff --git a/graphics/pokemon/silcoon/icon_gba.png b/graphics/pokemon/silcoon/icon_gba.png new file mode 100644 index 0000000000..0b572a20c2 Binary files /dev/null and b/graphics/pokemon/silcoon/icon_gba.png differ diff --git a/graphics/pokemon/silcoon/normal_gba.pal b/graphics/pokemon/silcoon/normal_gba.pal new file mode 100644 index 0000000000..2a48849f83 --- /dev/null +++ b/graphics/pokemon/silcoon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 197 +106 106 115 +139 139 148 +172 172 180 +0 0 0 +189 189 205 +222 213 230 +238 238 230 +255 255 255 +16 16 24 +246 164 0 +197 123 0 +0 0 0 +246 255 197 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/silcoon/shiny_gba.pal b/graphics/pokemon/silcoon/shiny_gba.pal new file mode 100644 index 0000000000..db9e98b7ac --- /dev/null +++ b/graphics/pokemon/silcoon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 246 197 +164 106 24 +205 148 65 +230 164 90 +0 0 0 +255 189 90 +255 222 148 +255 246 197 +255 255 255 +16 16 24 +90 131 189 +65 90 139 +0 0 0 +246 255 197 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/silvally/icon.png b/graphics/pokemon/silvally/icon.png index 2ef6ae9ad7..954a4362b9 100644 Binary files a/graphics/pokemon/silvally/icon.png and b/graphics/pokemon/silvally/icon.png differ diff --git a/graphics/pokemon/skarmory/anim_front_gba.png b/graphics/pokemon/skarmory/anim_front_gba.png new file mode 100644 index 0000000000..b0883329ce Binary files /dev/null and b/graphics/pokemon/skarmory/anim_front_gba.png differ diff --git a/graphics/pokemon/skarmory/back_gba.png b/graphics/pokemon/skarmory/back_gba.png new file mode 100644 index 0000000000..f3c8d95ccb Binary files /dev/null and b/graphics/pokemon/skarmory/back_gba.png differ diff --git a/graphics/pokemon/skarmory/icon_gba.png b/graphics/pokemon/skarmory/icon_gba.png new file mode 100644 index 0000000000..1eb3106540 Binary files /dev/null and b/graphics/pokemon/skarmory/icon_gba.png differ diff --git a/graphics/pokemon/skarmory/normal_gba.pal b/graphics/pokemon/skarmory/normal_gba.pal new file mode 100644 index 0000000000..d4662ab927 --- /dev/null +++ b/graphics/pokemon/skarmory/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 230 238 +197 197 205 +164 164 172 +123 123 131 +82 82 82 +255 156 123 +246 98 82 +197 57 49 +148 32 0 +255 222 0 +205 148 0 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/skarmory/shiny_gba.pal b/graphics/pokemon/skarmory/shiny_gba.pal new file mode 100644 index 0000000000..561324c82e --- /dev/null +++ b/graphics/pokemon/skarmory/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 230 197 +197 189 164 +148 139 123 +115 115 98 +82 90 74 +115 213 74 +74 172 41 +41 106 32 +49 74 32 +255 222 0 +205 148 0 +255 0 255 +255 0 255 +16 16 16 diff --git a/graphics/pokemon/skiploom/anim_front_gba.png b/graphics/pokemon/skiploom/anim_front_gba.png new file mode 100644 index 0000000000..a2955bdd61 Binary files /dev/null and b/graphics/pokemon/skiploom/anim_front_gba.png differ diff --git a/graphics/pokemon/skiploom/back_gba.png b/graphics/pokemon/skiploom/back_gba.png new file mode 100644 index 0000000000..8f010fb4f2 Binary files /dev/null and b/graphics/pokemon/skiploom/back_gba.png differ diff --git a/graphics/pokemon/skiploom/icon_gba.png b/graphics/pokemon/skiploom/icon_gba.png new file mode 100644 index 0000000000..90c0c8e7c3 Binary files /dev/null and b/graphics/pokemon/skiploom/icon_gba.png differ diff --git a/graphics/pokemon/skiploom/normal_gba.pal b/graphics/pokemon/skiploom/normal_gba.pal new file mode 100644 index 0000000000..15fcce8e5e --- /dev/null +++ b/graphics/pokemon/skiploom/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +139 238 57 +98 205 57 +65 172 32 +24 98 0 +255 0 255 +255 238 115 +255 213 0 +246 164 0 +172 90 0 +255 0 255 +255 0 255 +213 213 213 +164 164 164 +16 16 16 diff --git a/graphics/pokemon/skiploom/shiny_gba.pal b/graphics/pokemon/skiploom/shiny_gba.pal new file mode 100644 index 0000000000..2dedaa30ec --- /dev/null +++ b/graphics/pokemon/skiploom/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 148 213 +222 106 189 +172 90 148 +98 49 82 +255 0 255 +255 238 115 +255 213 0 +238 156 16 +156 90 16 +255 0 255 +255 0 255 +213 213 213 +164 164 164 +16 16 16 diff --git a/graphics/pokemon/skitty/anim_front_gba.png b/graphics/pokemon/skitty/anim_front_gba.png new file mode 100644 index 0000000000..6bd564a90b Binary files /dev/null and b/graphics/pokemon/skitty/anim_front_gba.png differ diff --git a/graphics/pokemon/skitty/back_gba.png b/graphics/pokemon/skitty/back_gba.png new file mode 100644 index 0000000000..e7f5ebb67b Binary files /dev/null and b/graphics/pokemon/skitty/back_gba.png differ diff --git a/graphics/pokemon/skitty/icon_gba.png b/graphics/pokemon/skitty/icon_gba.png new file mode 100644 index 0000000000..fb41f1c079 Binary files /dev/null and b/graphics/pokemon/skitty/icon_gba.png differ diff --git a/graphics/pokemon/skitty/normal_gba.pal b/graphics/pokemon/skitty/normal_gba.pal new file mode 100644 index 0000000000..0a12281918 --- /dev/null +++ b/graphics/pokemon/skitty/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +255 246 148 +255 205 98 +205 156 65 +131 106 65 +0 0 0 +0 0 0 +255 205 189 +197 106 180 +123 0 106 +0 0 0 +255 172 148 +255 131 106 +197 82 57 +131 41 49 diff --git a/graphics/pokemon/skitty/shiny_gba.pal b/graphics/pokemon/skitty/shiny_gba.pal new file mode 100644 index 0000000000..d3e9130f3a --- /dev/null +++ b/graphics/pokemon/skitty/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +255 246 164 +255 222 115 +213 164 65 +131 106 65 +0 0 0 +0 0 0 +255 180 98 +255 106 74 +115 24 32 +0 0 0 +255 123 82 +238 82 49 +189 65 32 +164 49 32 diff --git a/graphics/pokemon/slaking/anim_front_gba.png b/graphics/pokemon/slaking/anim_front_gba.png new file mode 100644 index 0000000000..a57d3c092e Binary files /dev/null and b/graphics/pokemon/slaking/anim_front_gba.png differ diff --git a/graphics/pokemon/slaking/back_gba.png b/graphics/pokemon/slaking/back_gba.png new file mode 100644 index 0000000000..50d55a957d Binary files /dev/null and b/graphics/pokemon/slaking/back_gba.png differ diff --git a/graphics/pokemon/slaking/icon_gba.png b/graphics/pokemon/slaking/icon_gba.png new file mode 100644 index 0000000000..71b6c7537b Binary files /dev/null and b/graphics/pokemon/slaking/icon_gba.png differ diff --git a/graphics/pokemon/slaking/normal_gba.pal b/graphics/pokemon/slaking/normal_gba.pal new file mode 100644 index 0000000000..84cf081cf0 --- /dev/null +++ b/graphics/pokemon/slaking/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 156 164 +90 65 49 +139 106 82 +172 139 106 +197 172 148 +213 205 180 +246 238 213 +90 98 123 +205 205 238 +238 238 255 +255 255 255 +139 49 65 +197 82 115 +222 131 148 +16 0 0 +255 255 255 diff --git a/graphics/pokemon/slaking/shiny_gba.pal b/graphics/pokemon/slaking/shiny_gba.pal new file mode 100644 index 0000000000..1ec404cf65 --- /dev/null +++ b/graphics/pokemon/slaking/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +115 156 164 +74 65 49 +106 98 74 +139 123 106 +197 172 148 +213 205 180 +246 238 213 +189 131 65 +255 197 106 +255 238 148 +255 255 255 +164 49 32 +213 82 41 +255 123 82 +16 0 0 +255 255 255 diff --git a/graphics/pokemon/slakoth/anim_front_gba.png b/graphics/pokemon/slakoth/anim_front_gba.png new file mode 100644 index 0000000000..fbbef311a9 Binary files /dev/null and b/graphics/pokemon/slakoth/anim_front_gba.png differ diff --git a/graphics/pokemon/slakoth/back_gba.png b/graphics/pokemon/slakoth/back_gba.png new file mode 100644 index 0000000000..9f82930b0b Binary files /dev/null and b/graphics/pokemon/slakoth/back_gba.png differ diff --git a/graphics/pokemon/slakoth/icon_gba.png b/graphics/pokemon/slakoth/icon_gba.png new file mode 100644 index 0000000000..c04ff08a0a Binary files /dev/null and b/graphics/pokemon/slakoth/icon_gba.png differ diff --git a/graphics/pokemon/slakoth/normal_gba.pal b/graphics/pokemon/slakoth/normal_gba.pal new file mode 100644 index 0000000000..934fc9ae9c --- /dev/null +++ b/graphics/pokemon/slakoth/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 148 205 +0 0 0 +82 57 41 +115 82 41 +139 106 65 +65 65 65 +156 156 156 +205 205 205 +255 255 255 +139 49 65 +189 90 74 +213 123 106 +255 164 139 +180 148 106 +205 180 139 +230 205 164 diff --git a/graphics/pokemon/slakoth/shiny_gba.pal b/graphics/pokemon/slakoth/shiny_gba.pal new file mode 100644 index 0000000000..4f65ae8e47 --- /dev/null +++ b/graphics/pokemon/slakoth/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +139 148 205 +41 32 32 +57 49 49 +82 74 74 +156 106 139 +65 65 65 +156 156 156 +205 205 205 +255 255 255 +156 41 24 +180 65 49 +222 98 49 +255 123 82 +156 90 131 +197 123 172 +230 189 205 diff --git a/graphics/pokemon/sliggoo/hisuian/back.png b/graphics/pokemon/sliggoo/hisui/back.png similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/back.png rename to graphics/pokemon/sliggoo/hisui/back.png diff --git a/graphics/pokemon/sliggoo/hisuian/front.png b/graphics/pokemon/sliggoo/hisui/front.png similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/front.png rename to graphics/pokemon/sliggoo/hisui/front.png diff --git a/graphics/pokemon/sliggoo/hisuian/icon.png b/graphics/pokemon/sliggoo/hisui/icon.png similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/icon.png rename to graphics/pokemon/sliggoo/hisui/icon.png diff --git a/graphics/pokemon/sliggoo/hisuian/normal.pal b/graphics/pokemon/sliggoo/hisui/normal.pal similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/normal.pal rename to graphics/pokemon/sliggoo/hisui/normal.pal diff --git a/graphics/pokemon/sliggoo/hisuian/overworld.png b/graphics/pokemon/sliggoo/hisui/overworld.png similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/overworld.png rename to graphics/pokemon/sliggoo/hisui/overworld.png diff --git a/graphics/pokemon/sliggoo/hisuian/overworld_normal.pal b/graphics/pokemon/sliggoo/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/overworld_normal.pal rename to graphics/pokemon/sliggoo/hisui/overworld_normal.pal diff --git a/graphics/pokemon/sliggoo/hisuian/overworld_shiny.pal b/graphics/pokemon/sliggoo/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/overworld_shiny.pal rename to graphics/pokemon/sliggoo/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/sliggoo/hisuian/shiny.pal b/graphics/pokemon/sliggoo/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/sliggoo/hisuian/shiny.pal rename to graphics/pokemon/sliggoo/hisui/shiny.pal diff --git a/graphics/pokemon/slowbro/anim_front_gba.png b/graphics/pokemon/slowbro/anim_front_gba.png new file mode 100644 index 0000000000..9bd16e4dcf Binary files /dev/null and b/graphics/pokemon/slowbro/anim_front_gba.png differ diff --git a/graphics/pokemon/slowbro/back_gba.png b/graphics/pokemon/slowbro/back_gba.png new file mode 100644 index 0000000000..b62c5fcf42 Binary files /dev/null and b/graphics/pokemon/slowbro/back_gba.png differ diff --git a/graphics/pokemon/slowbro/galarian/back.png b/graphics/pokemon/slowbro/galar/back.png similarity index 100% rename from graphics/pokemon/slowbro/galarian/back.png rename to graphics/pokemon/slowbro/galar/back.png diff --git a/graphics/pokemon/slowbro/galarian/front.png b/graphics/pokemon/slowbro/galar/front.png similarity index 100% rename from graphics/pokemon/slowbro/galarian/front.png rename to graphics/pokemon/slowbro/galar/front.png diff --git a/graphics/pokemon/slowbro/galarian/icon.png b/graphics/pokemon/slowbro/galar/icon.png similarity index 100% rename from graphics/pokemon/slowbro/galarian/icon.png rename to graphics/pokemon/slowbro/galar/icon.png diff --git a/graphics/pokemon/slowbro/galarian/normal.pal b/graphics/pokemon/slowbro/galar/normal.pal similarity index 100% rename from graphics/pokemon/slowbro/galarian/normal.pal rename to graphics/pokemon/slowbro/galar/normal.pal diff --git a/graphics/pokemon/slowbro/galarian/overworld.png b/graphics/pokemon/slowbro/galar/overworld.png similarity index 100% rename from graphics/pokemon/slowbro/galarian/overworld.png rename to graphics/pokemon/slowbro/galar/overworld.png diff --git a/graphics/pokemon/slowbro/galarian/overworld_normal.pal b/graphics/pokemon/slowbro/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/slowbro/galarian/overworld_normal.pal rename to graphics/pokemon/slowbro/galar/overworld_normal.pal diff --git a/graphics/pokemon/slowbro/galarian/overworld_shiny.pal b/graphics/pokemon/slowbro/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/slowbro/galarian/overworld_shiny.pal rename to graphics/pokemon/slowbro/galar/overworld_shiny.pal diff --git a/graphics/pokemon/slowbro/galarian/shiny.pal b/graphics/pokemon/slowbro/galar/shiny.pal similarity index 100% rename from graphics/pokemon/slowbro/galarian/shiny.pal rename to graphics/pokemon/slowbro/galar/shiny.pal diff --git a/graphics/pokemon/slowbro/icon_gba.png b/graphics/pokemon/slowbro/icon_gba.png new file mode 100644 index 0000000000..bf7ee6a329 Binary files /dev/null and b/graphics/pokemon/slowbro/icon_gba.png differ diff --git a/graphics/pokemon/slowbro/normal_gba.pal b/graphics/pokemon/slowbro/normal_gba.pal new file mode 100644 index 0000000000..6ae68b376e --- /dev/null +++ b/graphics/pokemon/slowbro/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 205 +255 255 255 +255 238 156 +255 205 98 +230 172 90 +164 115 32 +230 246 189 +197 213 156 +156 172 98 +98 115 57 +230 82 41 +255 189 148 +255 139 106 +230 82 41 +148 32 16 +16 16 16 diff --git a/graphics/pokemon/slowbro/shiny_gba.pal b/graphics/pokemon/slowbro/shiny_gba.pal new file mode 100644 index 0000000000..ad1c1246df --- /dev/null +++ b/graphics/pokemon/slowbro/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 205 +255 255 255 +255 238 156 +255 205 98 +230 172 90 +164 115 32 +230 197 106 +189 156 65 +148 115 24 +98 65 0 +230 82 41 +205 197 255 +164 156 213 +123 115 172 +74 65 123 +16 16 16 diff --git a/graphics/pokemon/slowking/anim_front_gba.png b/graphics/pokemon/slowking/anim_front_gba.png new file mode 100644 index 0000000000..378d14e919 Binary files /dev/null and b/graphics/pokemon/slowking/anim_front_gba.png differ diff --git a/graphics/pokemon/slowking/back_gba.png b/graphics/pokemon/slowking/back_gba.png new file mode 100644 index 0000000000..16a7795062 Binary files /dev/null and b/graphics/pokemon/slowking/back_gba.png differ diff --git a/graphics/pokemon/slowking/galarian/back.png b/graphics/pokemon/slowking/galar/back.png similarity index 100% rename from graphics/pokemon/slowking/galarian/back.png rename to graphics/pokemon/slowking/galar/back.png diff --git a/graphics/pokemon/slowking/galarian/front.png b/graphics/pokemon/slowking/galar/front.png similarity index 100% rename from graphics/pokemon/slowking/galarian/front.png rename to graphics/pokemon/slowking/galar/front.png diff --git a/graphics/pokemon/slowking/galarian/icon.png b/graphics/pokemon/slowking/galar/icon.png similarity index 100% rename from graphics/pokemon/slowking/galarian/icon.png rename to graphics/pokemon/slowking/galar/icon.png diff --git a/graphics/pokemon/slowking/galarian/normal.pal b/graphics/pokemon/slowking/galar/normal.pal similarity index 100% rename from graphics/pokemon/slowking/galarian/normal.pal rename to graphics/pokemon/slowking/galar/normal.pal diff --git a/graphics/pokemon/slowking/galarian/overworld.png b/graphics/pokemon/slowking/galar/overworld.png similarity index 100% rename from graphics/pokemon/slowking/galarian/overworld.png rename to graphics/pokemon/slowking/galar/overworld.png diff --git a/graphics/pokemon/slowking/galarian/overworld_normal.pal b/graphics/pokemon/slowking/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/slowking/galarian/overworld_normal.pal rename to graphics/pokemon/slowking/galar/overworld_normal.pal diff --git a/graphics/pokemon/slowking/galarian/overworld_shiny.pal b/graphics/pokemon/slowking/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/slowking/galarian/overworld_shiny.pal rename to graphics/pokemon/slowking/galar/overworld_shiny.pal diff --git a/graphics/pokemon/slowking/galarian/shiny.pal b/graphics/pokemon/slowking/galar/shiny.pal similarity index 100% rename from graphics/pokemon/slowking/galarian/shiny.pal rename to graphics/pokemon/slowking/galar/shiny.pal diff --git a/graphics/pokemon/slowking/icon_gba.png b/graphics/pokemon/slowking/icon_gba.png new file mode 100644 index 0000000000..04bd1a1553 Binary files /dev/null and b/graphics/pokemon/slowking/icon_gba.png differ diff --git a/graphics/pokemon/slowking/normal_gba.pal b/graphics/pokemon/slowking/normal_gba.pal new file mode 100644 index 0000000000..c3e452f0de --- /dev/null +++ b/graphics/pokemon/slowking/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 123 57 +205 74 32 +156 32 0 +205 74 32 +230 106 49 +255 180 115 +148 106 0 +255 189 49 +255 255 139 +82 82 65 +148 148 123 +180 180 172 +222 222 205 +255 255 255 diff --git a/graphics/pokemon/slowking/shiny_gba.pal b/graphics/pokemon/slowking/shiny_gba.pal new file mode 100644 index 0000000000..55ae2a1ee6 --- /dev/null +++ b/graphics/pokemon/slowking/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +98 164 246 +49 90 189 +131 32 74 +180 90 115 +213 123 148 +255 180 197 +148 106 0 +238 189 65 +255 255 139 +82 82 65 +148 148 123 +180 180 172 +222 222 205 +255 255 255 diff --git a/graphics/pokemon/slowpoke/anim_front_gba.png b/graphics/pokemon/slowpoke/anim_front_gba.png new file mode 100644 index 0000000000..5eae038713 Binary files /dev/null and b/graphics/pokemon/slowpoke/anim_front_gba.png differ diff --git a/graphics/pokemon/slowpoke/back_gba.png b/graphics/pokemon/slowpoke/back_gba.png new file mode 100644 index 0000000000..62bf72f0e3 Binary files /dev/null and b/graphics/pokemon/slowpoke/back_gba.png differ diff --git a/graphics/pokemon/slowpoke/galarian/back.png b/graphics/pokemon/slowpoke/galar/back.png similarity index 100% rename from graphics/pokemon/slowpoke/galarian/back.png rename to graphics/pokemon/slowpoke/galar/back.png diff --git a/graphics/pokemon/slowpoke/galarian/front.png b/graphics/pokemon/slowpoke/galar/front.png similarity index 100% rename from graphics/pokemon/slowpoke/galarian/front.png rename to graphics/pokemon/slowpoke/galar/front.png diff --git a/graphics/pokemon/slowpoke/galarian/icon.png b/graphics/pokemon/slowpoke/galar/icon.png similarity index 100% rename from graphics/pokemon/slowpoke/galarian/icon.png rename to graphics/pokemon/slowpoke/galar/icon.png diff --git a/graphics/pokemon/slowpoke/galarian/normal.pal b/graphics/pokemon/slowpoke/galar/normal.pal similarity index 100% rename from graphics/pokemon/slowpoke/galarian/normal.pal rename to graphics/pokemon/slowpoke/galar/normal.pal diff --git a/graphics/pokemon/slowpoke/galarian/overworld.png b/graphics/pokemon/slowpoke/galar/overworld.png similarity index 100% rename from graphics/pokemon/slowpoke/galarian/overworld.png rename to graphics/pokemon/slowpoke/galar/overworld.png diff --git a/graphics/pokemon/slowpoke/galarian/overworld_normal.pal b/graphics/pokemon/slowpoke/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/slowpoke/galarian/overworld_normal.pal rename to graphics/pokemon/slowpoke/galar/overworld_normal.pal diff --git a/graphics/pokemon/slowpoke/galarian/overworld_shiny.pal b/graphics/pokemon/slowpoke/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/slowpoke/galarian/overworld_shiny.pal rename to graphics/pokemon/slowpoke/galar/overworld_shiny.pal diff --git a/graphics/pokemon/slowpoke/galarian/shiny.pal b/graphics/pokemon/slowpoke/galar/shiny.pal similarity index 100% rename from graphics/pokemon/slowpoke/galarian/shiny.pal rename to graphics/pokemon/slowpoke/galar/shiny.pal diff --git a/graphics/pokemon/slowpoke/icon_gba.png b/graphics/pokemon/slowpoke/icon_gba.png new file mode 100644 index 0000000000..cc3123e14b Binary files /dev/null and b/graphics/pokemon/slowpoke/icon_gba.png differ diff --git a/graphics/pokemon/slowpoke/normal_gba.pal b/graphics/pokemon/slowpoke/normal_gba.pal new file mode 100644 index 0000000000..4b3e369dd7 --- /dev/null +++ b/graphics/pokemon/slowpoke/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 205 205 +255 246 139 +255 205 98 +246 164 65 +156 74 32 +255 0 255 +246 65 32 +139 32 32 +106 98 98 +255 164 131 +255 131 98 +246 65 32 +139 57 0 +16 16 16 diff --git a/graphics/pokemon/slowpoke/shiny_gba.pal b/graphics/pokemon/slowpoke/shiny_gba.pal new file mode 100644 index 0000000000..628e4153ab --- /dev/null +++ b/graphics/pokemon/slowpoke/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +213 205 205 +255 255 189 +255 255 148 +238 213 106 +156 74 32 +255 0 255 +246 65 32 +139 32 32 +106 98 98 +255 222 238 +238 180 197 +197 139 156 +139 74 90 +16 16 16 diff --git a/graphics/pokemon/slugma/anim_front_gba.png b/graphics/pokemon/slugma/anim_front_gba.png new file mode 100644 index 0000000000..dd2747f5b0 Binary files /dev/null and b/graphics/pokemon/slugma/anim_front_gba.png differ diff --git a/graphics/pokemon/slugma/back_gba.png b/graphics/pokemon/slugma/back_gba.png new file mode 100644 index 0000000000..347d27ed1a Binary files /dev/null and b/graphics/pokemon/slugma/back_gba.png differ diff --git a/graphics/pokemon/slugma/icon_gba.png b/graphics/pokemon/slugma/icon_gba.png new file mode 100644 index 0000000000..d954c6f68c Binary files /dev/null and b/graphics/pokemon/slugma/icon_gba.png differ diff --git a/graphics/pokemon/slugma/normal_gba.pal b/graphics/pokemon/slugma/normal_gba.pal new file mode 100644 index 0000000000..081ae47dcb --- /dev/null +++ b/graphics/pokemon/slugma/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 189 106 +255 131 74 +222 90 32 +148 32 0 +255 213 115 +255 238 156 +255 213 115 +246 164 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/slugma/shiny_gba.pal b/graphics/pokemon/slugma/shiny_gba.pal new file mode 100644 index 0000000000..85babdbe1a --- /dev/null +++ b/graphics/pokemon/slugma/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 213 213 +180 180 180 +123 123 123 +74 74 74 +230 230 230 +255 238 156 +255 213 115 +246 164 0 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/smeargle/anim_front_gba.png b/graphics/pokemon/smeargle/anim_front_gba.png new file mode 100644 index 0000000000..20db180b84 Binary files /dev/null and b/graphics/pokemon/smeargle/anim_front_gba.png differ diff --git a/graphics/pokemon/smeargle/back_gba.png b/graphics/pokemon/smeargle/back_gba.png new file mode 100644 index 0000000000..fefbed16f6 Binary files /dev/null and b/graphics/pokemon/smeargle/back_gba.png differ diff --git a/graphics/pokemon/smeargle/icon_gba.png b/graphics/pokemon/smeargle/icon_gba.png new file mode 100644 index 0000000000..54b387b053 Binary files /dev/null and b/graphics/pokemon/smeargle/icon_gba.png differ diff --git a/graphics/pokemon/smeargle/normal_gba.pal b/graphics/pokemon/smeargle/normal_gba.pal new file mode 100644 index 0000000000..068322e3e2 --- /dev/null +++ b/graphics/pokemon/smeargle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 213 213 +255 255 255 +24 156 0 +222 222 189 +172 172 139 +139 131 82 +246 131 0 +180 0 0 +106 90 49 +74 57 16 +106 222 65 +65 197 24 +0 98 0 +197 197 197 +148 148 156 +16 16 16 diff --git a/graphics/pokemon/smeargle/shiny_gba.pal b/graphics/pokemon/smeargle/shiny_gba.pal new file mode 100644 index 0000000000..f5f50de2de --- /dev/null +++ b/graphics/pokemon/smeargle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 213 213 +255 255 255 +197 74 65 +238 222 156 +205 172 98 +180 115 74 +246 131 0 +180 0 0 +106 65 32 +74 57 16 +255 156 131 +238 106 82 +172 49 41 +197 197 197 +148 148 156 +16 16 16 diff --git a/graphics/pokemon/smoochum/anim_front_gba.png b/graphics/pokemon/smoochum/anim_front_gba.png new file mode 100644 index 0000000000..9f2fcea052 Binary files /dev/null and b/graphics/pokemon/smoochum/anim_front_gba.png differ diff --git a/graphics/pokemon/smoochum/back_gba.png b/graphics/pokemon/smoochum/back_gba.png new file mode 100644 index 0000000000..bad0422e52 Binary files /dev/null and b/graphics/pokemon/smoochum/back_gba.png differ diff --git a/graphics/pokemon/smoochum/icon_gba.png b/graphics/pokemon/smoochum/icon_gba.png new file mode 100644 index 0000000000..11f1e6fe7d Binary files /dev/null and b/graphics/pokemon/smoochum/icon_gba.png differ diff --git a/graphics/pokemon/smoochum/normal_gba.pal b/graphics/pokemon/smoochum/normal_gba.pal new file mode 100644 index 0000000000..722cd42066 --- /dev/null +++ b/graphics/pokemon/smoochum/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 172 41 +255 148 164 +222 74 123 +139 16 90 +255 230 82 +222 205 49 +148 131 24 +255 197 164 +246 230 172 +222 197 131 +139 131 74 +213 213 213 +180 180 180 +0 0 0 diff --git a/graphics/pokemon/smoochum/shiny_gba.pal b/graphics/pokemon/smoochum/shiny_gba.pal new file mode 100644 index 0000000000..00a439312c --- /dev/null +++ b/graphics/pokemon/smoochum/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 189 24 +255 189 213 +230 139 123 +164 65 57 +255 255 172 +255 230 74 +172 148 16 +255 222 230 +246 246 205 +213 197 139 +139 131 74 +197 197 197 +131 131 131 +41 41 57 diff --git a/graphics/pokemon/sneasel/anim_front_gba.png b/graphics/pokemon/sneasel/anim_front_gba.png new file mode 100644 index 0000000000..38d9823387 Binary files /dev/null and b/graphics/pokemon/sneasel/anim_front_gba.png differ diff --git a/graphics/pokemon/sneasel/back_gba.png b/graphics/pokemon/sneasel/back_gba.png new file mode 100644 index 0000000000..5a0765cb2b Binary files /dev/null and b/graphics/pokemon/sneasel/back_gba.png differ diff --git a/graphics/pokemon/sneasel/hisuian/back.png b/graphics/pokemon/sneasel/hisui/back.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/back.png rename to graphics/pokemon/sneasel/hisui/back.png diff --git a/graphics/pokemon/sneasel/hisuian/backf.png b/graphics/pokemon/sneasel/hisui/backf.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/backf.png rename to graphics/pokemon/sneasel/hisui/backf.png diff --git a/graphics/pokemon/sneasel/hisuian/front.png b/graphics/pokemon/sneasel/hisui/front.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/front.png rename to graphics/pokemon/sneasel/hisui/front.png diff --git a/graphics/pokemon/sneasel/hisuian/frontf.png b/graphics/pokemon/sneasel/hisui/frontf.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/frontf.png rename to graphics/pokemon/sneasel/hisui/frontf.png diff --git a/graphics/pokemon/sneasel/hisuian/icon.png b/graphics/pokemon/sneasel/hisui/icon.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/icon.png rename to graphics/pokemon/sneasel/hisui/icon.png diff --git a/graphics/pokemon/sneasel/hisuian/normal.pal b/graphics/pokemon/sneasel/hisui/normal.pal similarity index 100% rename from graphics/pokemon/sneasel/hisuian/normal.pal rename to graphics/pokemon/sneasel/hisui/normal.pal diff --git a/graphics/pokemon/sneasel/hisuian/overworld.png b/graphics/pokemon/sneasel/hisui/overworld.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/overworld.png rename to graphics/pokemon/sneasel/hisui/overworld.png diff --git a/graphics/pokemon/sneasel/hisuian/overworld_normal.pal b/graphics/pokemon/sneasel/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/sneasel/hisuian/overworld_normal.pal rename to graphics/pokemon/sneasel/hisui/overworld_normal.pal diff --git a/graphics/pokemon/sneasel/hisuian/overworld_shiny.pal b/graphics/pokemon/sneasel/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/sneasel/hisuian/overworld_shiny.pal rename to graphics/pokemon/sneasel/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/sneasel/hisuian/overworldf.png b/graphics/pokemon/sneasel/hisui/overworldf.png similarity index 100% rename from graphics/pokemon/sneasel/hisuian/overworldf.png rename to graphics/pokemon/sneasel/hisui/overworldf.png diff --git a/graphics/pokemon/sneasel/hisuian/shiny.pal b/graphics/pokemon/sneasel/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/sneasel/hisuian/shiny.pal rename to graphics/pokemon/sneasel/hisui/shiny.pal diff --git a/graphics/pokemon/sneasel/icon_gba.png b/graphics/pokemon/sneasel/icon_gba.png new file mode 100644 index 0000000000..95eb3e66d6 Binary files /dev/null and b/graphics/pokemon/sneasel/icon_gba.png differ diff --git a/graphics/pokemon/sneasel/normal_gba.pal b/graphics/pokemon/sneasel/normal_gba.pal new file mode 100644 index 0000000000..076fa73009 --- /dev/null +++ b/graphics/pokemon/sneasel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +139 172 156 +82 123 106 +57 90 74 +41 57 41 +255 205 213 +255 115 106 +197 74 74 +131 16 32 +230 74 74 +106 98 123 +189 180 197 +255 230 90 +205 131 0 +16 16 16 diff --git a/graphics/pokemon/sneasel/shiny_gba.pal b/graphics/pokemon/sneasel/shiny_gba.pal new file mode 100644 index 0000000000..64a502ce67 --- /dev/null +++ b/graphics/pokemon/sneasel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 172 205 +238 139 180 +197 98 131 +90 49 65 +255 255 164 +255 230 74 +222 180 98 +156 98 57 +230 74 74 +106 98 123 +189 180 197 +255 255 255 +205 222 238 +16 16 16 diff --git a/graphics/pokemon/snorlax/anim_front_gba.png b/graphics/pokemon/snorlax/anim_front_gba.png new file mode 100644 index 0000000000..e23e6b52df Binary files /dev/null and b/graphics/pokemon/snorlax/anim_front_gba.png differ diff --git a/graphics/pokemon/snorlax/back_gba.png b/graphics/pokemon/snorlax/back_gba.png new file mode 100644 index 0000000000..da44b95aa9 Binary files /dev/null and b/graphics/pokemon/snorlax/back_gba.png differ diff --git a/graphics/pokemon/snorlax/gigantamax/back.png b/graphics/pokemon/snorlax/gmax/back.png similarity index 100% rename from graphics/pokemon/snorlax/gigantamax/back.png rename to graphics/pokemon/snorlax/gmax/back.png diff --git a/graphics/pokemon/snorlax/gigantamax/front.png b/graphics/pokemon/snorlax/gmax/front.png similarity index 100% rename from graphics/pokemon/snorlax/gigantamax/front.png rename to graphics/pokemon/snorlax/gmax/front.png diff --git a/graphics/pokemon/snorlax/gigantamax/icon.png b/graphics/pokemon/snorlax/gmax/icon.png similarity index 100% rename from graphics/pokemon/snorlax/gigantamax/icon.png rename to graphics/pokemon/snorlax/gmax/icon.png diff --git a/graphics/pokemon/snorlax/gigantamax/normal.pal b/graphics/pokemon/snorlax/gmax/normal.pal similarity index 100% rename from graphics/pokemon/snorlax/gigantamax/normal.pal rename to graphics/pokemon/snorlax/gmax/normal.pal diff --git a/graphics/pokemon/snorlax/gigantamax/shiny.pal b/graphics/pokemon/snorlax/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/snorlax/gigantamax/shiny.pal rename to graphics/pokemon/snorlax/gmax/shiny.pal diff --git a/graphics/pokemon/snorlax/icon_gba.png b/graphics/pokemon/snorlax/icon_gba.png new file mode 100644 index 0000000000..00a74b6ac1 Binary files /dev/null and b/graphics/pokemon/snorlax/icon_gba.png differ diff --git a/graphics/pokemon/snorlax/normal_gba.pal b/graphics/pokemon/snorlax/normal_gba.pal new file mode 100644 index 0000000000..aa61fc9e41 --- /dev/null +++ b/graphics/pokemon/snorlax/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +139 139 180 +115 115 148 +90 90 115 +65 65 90 +255 255 205 +246 246 156 +230 222 148 +156 156 82 +238 172 115 +213 156 90 +164 106 41 +213 213 222 +106 106 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/snorlax/shiny_gba.pal b/graphics/pokemon/snorlax/shiny_gba.pal new file mode 100644 index 0000000000..8528d09246 --- /dev/null +++ b/graphics/pokemon/snorlax/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +123 180 255 +65 115 189 +41 90 131 +41 90 98 +255 255 230 +255 238 197 +246 205 148 +156 156 82 +222 156 98 +180 123 57 +148 90 24 +213 213 222 +106 106 115 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/snorunt/anim_front_gba.png b/graphics/pokemon/snorunt/anim_front_gba.png new file mode 100644 index 0000000000..6ced11d08b Binary files /dev/null and b/graphics/pokemon/snorunt/anim_front_gba.png differ diff --git a/graphics/pokemon/snorunt/back_gba.png b/graphics/pokemon/snorunt/back_gba.png new file mode 100644 index 0000000000..53ddf9fdc9 Binary files /dev/null and b/graphics/pokemon/snorunt/back_gba.png differ diff --git a/graphics/pokemon/snorunt/icon_gba.png b/graphics/pokemon/snorunt/icon_gba.png new file mode 100644 index 0000000000..2710b9a0a0 Binary files /dev/null and b/graphics/pokemon/snorunt/icon_gba.png differ diff --git a/graphics/pokemon/snorunt/normal_gba.pal b/graphics/pokemon/snorunt/normal_gba.pal new file mode 100644 index 0000000000..25d137458e --- /dev/null +++ b/graphics/pokemon/snorunt/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +222 222 222 +255 123 82 +180 65 49 +180 115 49 +255 238 164 +255 213 106 +230 172 90 +139 213 255 +156 139 139 +65 148 213 +139 123 123 +82 74 74 +57 49 49 +41 32 32 +255 255 255 diff --git a/graphics/pokemon/snorunt/shiny_gba.pal b/graphics/pokemon/snorunt/shiny_gba.pal new file mode 100644 index 0000000000..b483a219f4 --- /dev/null +++ b/graphics/pokemon/snorunt/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +222 222 222 +255 205 82 +180 131 49 +148 98 16 +172 246 255 +139 213 255 +106 180 222 +255 197 180 +156 139 139 +255 57 41 +139 123 123 +82 74 74 +57 49 49 +41 32 32 +255 255 255 diff --git a/graphics/pokemon/snubbull/anim_front_gba.png b/graphics/pokemon/snubbull/anim_front_gba.png new file mode 100644 index 0000000000..bffc3a2efe Binary files /dev/null and b/graphics/pokemon/snubbull/anim_front_gba.png differ diff --git a/graphics/pokemon/snubbull/back_gba.png b/graphics/pokemon/snubbull/back_gba.png new file mode 100644 index 0000000000..2b212b7087 Binary files /dev/null and b/graphics/pokemon/snubbull/back_gba.png differ diff --git a/graphics/pokemon/snubbull/icon_gba.png b/graphics/pokemon/snubbull/icon_gba.png new file mode 100644 index 0000000000..80f9b12889 Binary files /dev/null and b/graphics/pokemon/snubbull/icon_gba.png differ diff --git a/graphics/pokemon/snubbull/normal_gba.pal b/graphics/pokemon/snubbull/normal_gba.pal new file mode 100644 index 0000000000..dea1ea5300 --- /dev/null +++ b/graphics/pokemon/snubbull/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +164 41 41 +255 0 255 +148 41 57 +230 98 106 +238 180 164 +255 205 197 +255 131 41 +16 16 16 +65 65 82 +98 115 115 +148 164 164 +65 139 172 +172 222 246 +222 222 222 +255 255 255 diff --git a/graphics/pokemon/snubbull/shiny_gba.pal b/graphics/pokemon/snubbull/shiny_gba.pal new file mode 100644 index 0000000000..5dcc2957d6 --- /dev/null +++ b/graphics/pokemon/snubbull/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +197 49 65 +255 0 255 +90 90 139 +148 156 164 +197 205 197 +222 222 222 +255 148 74 +16 16 16 +123 49 65 +156 74 98 +205 106 139 +65 139 172 +255 197 180 +238 213 197 +255 255 255 diff --git a/graphics/pokemon/solgaleo/icon.png b/graphics/pokemon/solgaleo/icon.png index e7520c9bcf..62ed55d205 100644 Binary files a/graphics/pokemon/solgaleo/icon.png and b/graphics/pokemon/solgaleo/icon.png differ diff --git a/graphics/pokemon/solrock/anim_front_gba.png b/graphics/pokemon/solrock/anim_front_gba.png new file mode 100644 index 0000000000..84bdfae740 Binary files /dev/null and b/graphics/pokemon/solrock/anim_front_gba.png differ diff --git a/graphics/pokemon/solrock/back_gba.png b/graphics/pokemon/solrock/back_gba.png new file mode 100644 index 0000000000..2f6e7cb999 Binary files /dev/null and b/graphics/pokemon/solrock/back_gba.png differ diff --git a/graphics/pokemon/solrock/icon_gba.png b/graphics/pokemon/solrock/icon_gba.png new file mode 100644 index 0000000000..f9e6894246 Binary files /dev/null and b/graphics/pokemon/solrock/icon_gba.png differ diff --git a/graphics/pokemon/solrock/normal_gba.pal b/graphics/pokemon/solrock/normal_gba.pal new file mode 100644 index 0000000000..315f49dd34 --- /dev/null +++ b/graphics/pokemon/solrock/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 238 164 +238 213 115 +222 180 74 +180 148 82 +238 148 57 +205 123 49 +172 98 41 +139 82 32 +123 98 74 +57 41 24 +255 172 98 +213 74 82 +139 115 115 +82 82 90 +16 16 16 diff --git a/graphics/pokemon/solrock/shiny_gba.pal b/graphics/pokemon/solrock/shiny_gba.pal new file mode 100644 index 0000000000..9de01aa0b7 --- /dev/null +++ b/graphics/pokemon/solrock/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 238 164 +238 213 115 +222 180 74 +180 148 82 +255 115 106 +255 65 57 +222 32 24 +189 0 0 +123 98 74 +57 41 24 +255 172 98 +0 205 255 +139 115 115 +82 82 90 +16 16 16 diff --git a/graphics/pokemon/spearow/anim_front_gba.png b/graphics/pokemon/spearow/anim_front_gba.png new file mode 100644 index 0000000000..4283ba2d60 Binary files /dev/null and b/graphics/pokemon/spearow/anim_front_gba.png differ diff --git a/graphics/pokemon/spearow/back_gba.png b/graphics/pokemon/spearow/back_gba.png new file mode 100644 index 0000000000..b630f24e0b Binary files /dev/null and b/graphics/pokemon/spearow/back_gba.png differ diff --git a/graphics/pokemon/spearow/icon_gba.png b/graphics/pokemon/spearow/icon_gba.png new file mode 100644 index 0000000000..a88db99273 Binary files /dev/null and b/graphics/pokemon/spearow/icon_gba.png differ diff --git a/graphics/pokemon/spearow/normal_gba.pal b/graphics/pokemon/spearow/normal_gba.pal new file mode 100644 index 0000000000..de6c4ce1c8 --- /dev/null +++ b/graphics/pokemon/spearow/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 222 172 +213 197 156 +172 156 115 +106 98 82 +255 131 115 +246 82 65 +205 32 16 +123 24 0 +246 180 90 +213 156 57 +172 115 16 +123 65 0 +255 213 172 +24 24 24 diff --git a/graphics/pokemon/spearow/shiny_gba.pal b/graphics/pokemon/spearow/shiny_gba.pal new file mode 100644 index 0000000000..fd22234852 --- /dev/null +++ b/graphics/pokemon/spearow/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 222 172 +213 197 156 +172 156 115 +106 98 82 +255 255 82 +255 222 0 +238 164 0 +131 57 0 +238 222 115 +197 180 74 +156 139 32 +98 82 0 +255 255 148 +24 24 24 diff --git a/graphics/pokemon/spheal/anim_front_gba.png b/graphics/pokemon/spheal/anim_front_gba.png new file mode 100644 index 0000000000..0bedf25fd5 Binary files /dev/null and b/graphics/pokemon/spheal/anim_front_gba.png differ diff --git a/graphics/pokemon/spheal/back_gba.png b/graphics/pokemon/spheal/back_gba.png new file mode 100644 index 0000000000..6fb9e94437 Binary files /dev/null and b/graphics/pokemon/spheal/back_gba.png differ diff --git a/graphics/pokemon/spheal/icon_gba.png b/graphics/pokemon/spheal/icon_gba.png new file mode 100644 index 0000000000..fd392e1960 Binary files /dev/null and b/graphics/pokemon/spheal/icon_gba.png differ diff --git a/graphics/pokemon/spheal/normal_gba.pal b/graphics/pokemon/spheal/normal_gba.pal new file mode 100644 index 0000000000..1fa035c326 --- /dev/null +++ b/graphics/pokemon/spheal/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +16 16 57 +74 82 139 +106 123 213 +156 164 255 +197 197 255 +255 255 255 +106 90 49 +164 148 106 +213 197 148 +230 213 172 +246 230 189 +222 222 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/spheal/shiny_gba.pal b/graphics/pokemon/spheal/shiny_gba.pal new file mode 100644 index 0000000000..14f207301d --- /dev/null +++ b/graphics/pokemon/spheal/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 197 98 +16 16 57 +90 49 139 +180 98 205 +213 148 238 +246 197 255 +255 255 255 +106 90 49 +164 148 106 +230 205 148 +238 222 172 +255 238 189 +255 222 255 +0 0 0 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/spinarak/anim_front_gba.png b/graphics/pokemon/spinarak/anim_front_gba.png new file mode 100644 index 0000000000..e9f611b14f Binary files /dev/null and b/graphics/pokemon/spinarak/anim_front_gba.png differ diff --git a/graphics/pokemon/spinarak/back_gba.png b/graphics/pokemon/spinarak/back_gba.png new file mode 100644 index 0000000000..7c2144971e Binary files /dev/null and b/graphics/pokemon/spinarak/back_gba.png differ diff --git a/graphics/pokemon/spinarak/icon_gba.png b/graphics/pokemon/spinarak/icon_gba.png new file mode 100644 index 0000000000..54ec8e0fef Binary files /dev/null and b/graphics/pokemon/spinarak/icon_gba.png differ diff --git a/graphics/pokemon/spinarak/normal_gba.pal b/graphics/pokemon/spinarak/normal_gba.pal new file mode 100644 index 0000000000..0a09982d68 --- /dev/null +++ b/graphics/pokemon/spinarak/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 255 115 +148 230 65 +98 189 32 +82 123 41 +49 82 16 +255 255 90 +180 164 49 +148 123 49 +255 156 82 +238 49 0 +148 49 0 +189 189 189 +123 123 123 +16 16 16 diff --git a/graphics/pokemon/spinarak/shiny_gba.pal b/graphics/pokemon/spinarak/shiny_gba.pal new file mode 100644 index 0000000000..f2aed8e9f5 --- /dev/null +++ b/graphics/pokemon/spinarak/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +180 213 222 +139 172 189 +82 106 156 +57 74 90 +32 49 74 +230 172 205 +172 90 123 +106 65 82 +255 156 82 +238 49 0 +148 49 0 +189 189 189 +123 123 123 +16 16 16 diff --git a/graphics/pokemon/spoink/anim_front_gba.png b/graphics/pokemon/spoink/anim_front_gba.png new file mode 100644 index 0000000000..8bdf77cbde Binary files /dev/null and b/graphics/pokemon/spoink/anim_front_gba.png differ diff --git a/graphics/pokemon/spoink/back_gba.png b/graphics/pokemon/spoink/back_gba.png new file mode 100644 index 0000000000..7872e240c8 Binary files /dev/null and b/graphics/pokemon/spoink/back_gba.png differ diff --git a/graphics/pokemon/spoink/icon_gba.png b/graphics/pokemon/spoink/icon_gba.png new file mode 100644 index 0000000000..387d0ed000 Binary files /dev/null and b/graphics/pokemon/spoink/icon_gba.png differ diff --git a/graphics/pokemon/spoink/normal_gba.pal b/graphics/pokemon/spoink/normal_gba.pal new file mode 100644 index 0000000000..c1891323c0 --- /dev/null +++ b/graphics/pokemon/spoink/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 255 255 +172 172 164 +139 139 148 +106 115 123 +49 49 41 +255 230 255 +255 205 189 +230 172 131 +148 74 74 +197 139 90 +24 24 24 +0 0 0 +74 74 74 +255 255 255 +98 82 82 +0 0 0 diff --git a/graphics/pokemon/spoink/shiny_gba.pal b/graphics/pokemon/spoink/shiny_gba.pal new file mode 100644 index 0000000000..c8edfafd73 --- /dev/null +++ b/graphics/pokemon/spoink/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 255 255 +255 205 172 +246 180 139 +205 164 123 +98 74 57 +172 172 172 +139 139 139 +82 82 82 +49 49 49 +106 106 106 +0 0 0 +0 0 0 +172 123 106 +255 255 255 +98 82 82 +0 0 0 diff --git a/graphics/pokemon/squawkabilly/blue_plumage/icon.png b/graphics/pokemon/squawkabilly/blue/icon.png similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/icon.png rename to graphics/pokemon/squawkabilly/blue/icon.png diff --git a/graphics/pokemon/squawkabilly/blue_plumage/normal.pal b/graphics/pokemon/squawkabilly/blue/normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/normal.pal rename to graphics/pokemon/squawkabilly/blue/normal.pal diff --git a/graphics/pokemon/squawkabilly/blue_plumage/overworld.png b/graphics/pokemon/squawkabilly/blue/overworld.png similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/overworld.png rename to graphics/pokemon/squawkabilly/blue/overworld.png diff --git a/graphics/pokemon/squawkabilly/blue_plumage/overworld_normal.pal b/graphics/pokemon/squawkabilly/blue/overworld_normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/overworld_normal.pal rename to graphics/pokemon/squawkabilly/blue/overworld_normal.pal diff --git a/graphics/pokemon/squawkabilly/blue_plumage/overworld_shiny.pal b/graphics/pokemon/squawkabilly/blue/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/overworld_shiny.pal rename to graphics/pokemon/squawkabilly/blue/overworld_shiny.pal diff --git a/graphics/pokemon/squawkabilly/blue_plumage/shiny.pal b/graphics/pokemon/squawkabilly/blue/shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/blue_plumage/shiny.pal rename to graphics/pokemon/squawkabilly/blue/shiny.pal diff --git a/graphics/pokemon/squawkabilly/white_plumage/icon.png b/graphics/pokemon/squawkabilly/white/icon.png similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/icon.png rename to graphics/pokemon/squawkabilly/white/icon.png diff --git a/graphics/pokemon/squawkabilly/white_plumage/normal.pal b/graphics/pokemon/squawkabilly/white/normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/normal.pal rename to graphics/pokemon/squawkabilly/white/normal.pal diff --git a/graphics/pokemon/squawkabilly/white_plumage/overworld.png b/graphics/pokemon/squawkabilly/white/overworld.png similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/overworld.png rename to graphics/pokemon/squawkabilly/white/overworld.png diff --git a/graphics/pokemon/squawkabilly/white_plumage/overworld_normal.pal b/graphics/pokemon/squawkabilly/white/overworld_normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/overworld_normal.pal rename to graphics/pokemon/squawkabilly/white/overworld_normal.pal diff --git a/graphics/pokemon/squawkabilly/white_plumage/overworld_shiny.pal b/graphics/pokemon/squawkabilly/white/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/overworld_shiny.pal rename to graphics/pokemon/squawkabilly/white/overworld_shiny.pal diff --git a/graphics/pokemon/squawkabilly/white_plumage/shiny.pal b/graphics/pokemon/squawkabilly/white/shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/white_plumage/shiny.pal rename to graphics/pokemon/squawkabilly/white/shiny.pal diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/icon.png b/graphics/pokemon/squawkabilly/yellow/icon.png similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/icon.png rename to graphics/pokemon/squawkabilly/yellow/icon.png diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/normal.pal b/graphics/pokemon/squawkabilly/yellow/normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/normal.pal rename to graphics/pokemon/squawkabilly/yellow/normal.pal diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/overworld.png b/graphics/pokemon/squawkabilly/yellow/overworld.png similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/overworld.png rename to graphics/pokemon/squawkabilly/yellow/overworld.png diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/overworld_normal.pal b/graphics/pokemon/squawkabilly/yellow/overworld_normal.pal similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/overworld_normal.pal rename to graphics/pokemon/squawkabilly/yellow/overworld_normal.pal diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/overworld_shiny.pal b/graphics/pokemon/squawkabilly/yellow/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/overworld_shiny.pal rename to graphics/pokemon/squawkabilly/yellow/overworld_shiny.pal diff --git a/graphics/pokemon/squawkabilly/yellow_plumage/shiny.pal b/graphics/pokemon/squawkabilly/yellow/shiny.pal similarity index 100% rename from graphics/pokemon/squawkabilly/yellow_plumage/shiny.pal rename to graphics/pokemon/squawkabilly/yellow/shiny.pal diff --git a/graphics/pokemon/squirtle/anim_front_gba.png b/graphics/pokemon/squirtle/anim_front_gba.png new file mode 100644 index 0000000000..403a786ecf Binary files /dev/null and b/graphics/pokemon/squirtle/anim_front_gba.png differ diff --git a/graphics/pokemon/squirtle/back_gba.png b/graphics/pokemon/squirtle/back_gba.png new file mode 100644 index 0000000000..b2fa0f37b6 Binary files /dev/null and b/graphics/pokemon/squirtle/back_gba.png differ diff --git a/graphics/pokemon/squirtle/icon_gba.png b/graphics/pokemon/squirtle/icon_gba.png new file mode 100644 index 0000000000..75a58770fc Binary files /dev/null and b/graphics/pokemon/squirtle/icon_gba.png differ diff --git a/graphics/pokemon/squirtle/normal_gba.pal b/graphics/pokemon/squirtle/normal_gba.pal new file mode 100644 index 0000000000..8429f3be2e --- /dev/null +++ b/graphics/pokemon/squirtle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 148 82 +189 106 0 +98 41 0 +213 205 205 +255 230 156 +255 213 106 +230 172 90 +213 131 57 +148 32 0 +180 238 189 +148 213 205 +90 172 156 +65 115 98 +16 16 16 diff --git a/graphics/pokemon/squirtle/shiny_gba.pal b/graphics/pokemon/squirtle/shiny_gba.pal new file mode 100644 index 0000000000..9a41b677cb --- /dev/null +++ b/graphics/pokemon/squirtle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +148 205 41 +106 164 0 +65 123 0 +213 205 205 +255 230 156 +255 213 106 +230 172 90 +213 131 57 +148 32 0 +172 255 255 +123 246 255 +82 205 213 +16 115 123 +16 16 16 diff --git a/graphics/pokemon/stakataka/icon.png b/graphics/pokemon/stakataka/icon.png index ad79ba34d8..359b1a248c 100644 Binary files a/graphics/pokemon/stakataka/icon.png and b/graphics/pokemon/stakataka/icon.png differ diff --git a/graphics/pokemon/stantler/anim_front_gba.png b/graphics/pokemon/stantler/anim_front_gba.png new file mode 100644 index 0000000000..27c482ef46 Binary files /dev/null and b/graphics/pokemon/stantler/anim_front_gba.png differ diff --git a/graphics/pokemon/stantler/back_gba.png b/graphics/pokemon/stantler/back_gba.png new file mode 100644 index 0000000000..9ddf7a40cc Binary files /dev/null and b/graphics/pokemon/stantler/back_gba.png differ diff --git a/graphics/pokemon/stantler/icon_gba.png b/graphics/pokemon/stantler/icon_gba.png new file mode 100644 index 0000000000..da9e6da99c Binary files /dev/null and b/graphics/pokemon/stantler/icon_gba.png differ diff --git a/graphics/pokemon/stantler/normal_gba.pal b/graphics/pokemon/stantler/normal_gba.pal new file mode 100644 index 0000000000..29eeabc436 --- /dev/null +++ b/graphics/pokemon/stantler/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 213 115 +230 180 90 +180 131 49 +123 65 0 +255 0 255 +255 255 172 +255 222 131 +255 222 82 +230 164 32 +213 0 255 +180 180 180 +123 123 123 +74 74 74 +16 16 16 diff --git a/graphics/pokemon/stantler/shiny_gba.pal b/graphics/pokemon/stantler/shiny_gba.pal new file mode 100644 index 0000000000..18b43b3302 --- /dev/null +++ b/graphics/pokemon/stantler/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 255 106 +197 230 90 +148 180 49 +65 90 0 +255 0 255 +255 255 172 +230 230 139 +255 222 82 +197 148 65 +213 0 255 +255 189 106 +230 115 41 +131 65 41 +16 16 16 diff --git a/graphics/pokemon/starmie/anim_front_gba.png b/graphics/pokemon/starmie/anim_front_gba.png new file mode 100644 index 0000000000..b98d2ac322 Binary files /dev/null and b/graphics/pokemon/starmie/anim_front_gba.png differ diff --git a/graphics/pokemon/starmie/back_gba.png b/graphics/pokemon/starmie/back_gba.png new file mode 100644 index 0000000000..62fdf3a41c Binary files /dev/null and b/graphics/pokemon/starmie/back_gba.png differ diff --git a/graphics/pokemon/starmie/icon_gba.png b/graphics/pokemon/starmie/icon_gba.png new file mode 100644 index 0000000000..844cae0c72 Binary files /dev/null and b/graphics/pokemon/starmie/icon_gba.png differ diff --git a/graphics/pokemon/starmie/normal_gba.pal b/graphics/pokemon/starmie/normal_gba.pal new file mode 100644 index 0000000000..ff0daf2182 --- /dev/null +++ b/graphics/pokemon/starmie/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +213 164 222 +172 123 180 +131 65 131 +82 32 90 +255 255 180 +246 213 82 +197 164 16 +115 90 0 +255 0 255 +255 213 180 +246 98 49 +205 49 16 +123 16 0 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/starmie/shiny_gba.pal b/graphics/pokemon/starmie/shiny_gba.pal new file mode 100644 index 0000000000..1f68c3476a --- /dev/null +++ b/graphics/pokemon/starmie/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +148 205 246 +106 164 213 +65 123 172 +0 57 106 +255 139 156 +255 98 115 +197 57 74 +131 16 32 +255 0 255 +115 189 246 +74 148 205 +8 82 139 +8 41 98 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/staryu/anim_front_gba.png b/graphics/pokemon/staryu/anim_front_gba.png new file mode 100644 index 0000000000..a36ec08071 Binary files /dev/null and b/graphics/pokemon/staryu/anim_front_gba.png differ diff --git a/graphics/pokemon/staryu/back_gba.png b/graphics/pokemon/staryu/back_gba.png new file mode 100644 index 0000000000..73a2f6aad4 Binary files /dev/null and b/graphics/pokemon/staryu/back_gba.png differ diff --git a/graphics/pokemon/staryu/icon_gba.png b/graphics/pokemon/staryu/icon_gba.png new file mode 100644 index 0000000000..b90c0b9c3d Binary files /dev/null and b/graphics/pokemon/staryu/icon_gba.png differ diff --git a/graphics/pokemon/staryu/normal_gba.pal b/graphics/pokemon/staryu/normal_gba.pal new file mode 100644 index 0000000000..005b36c326 --- /dev/null +++ b/graphics/pokemon/staryu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +16 16 16 +255 255 180 +246 213 82 +197 172 16 +115 90 0 +246 222 180 +213 180 115 +164 131 49 +123 82 41 +255 213 213 +238 156 139 +230 98 65 +172 65 32 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/staryu/shiny_gba.pal b/graphics/pokemon/staryu/shiny_gba.pal new file mode 100644 index 0000000000..e48cd65106 --- /dev/null +++ b/graphics/pokemon/staryu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +16 16 16 +255 255 180 +246 213 82 +197 172 16 +115 90 0 +230 230 205 +189 189 164 +148 148 123 +98 98 74 +156 255 255 +106 213 255 +65 172 222 +8 115 164 +255 0 255 +255 255 255 diff --git a/graphics/pokemon/steelix/anim_front_gba.png b/graphics/pokemon/steelix/anim_front_gba.png new file mode 100644 index 0000000000..bf4c259321 Binary files /dev/null and b/graphics/pokemon/steelix/anim_front_gba.png differ diff --git a/graphics/pokemon/steelix/back_gba.png b/graphics/pokemon/steelix/back_gba.png new file mode 100644 index 0000000000..74cb256d0f Binary files /dev/null and b/graphics/pokemon/steelix/back_gba.png differ diff --git a/graphics/pokemon/steelix/icon_gba.png b/graphics/pokemon/steelix/icon_gba.png new file mode 100644 index 0000000000..c99e175817 Binary files /dev/null and b/graphics/pokemon/steelix/icon_gba.png differ diff --git a/graphics/pokemon/steelix/normal_gba.pal b/graphics/pokemon/steelix/normal_gba.pal new file mode 100644 index 0000000000..e18ae398c5 --- /dev/null +++ b/graphics/pokemon/steelix/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +255 0 255 +57 57 82 +74 90 123 +131 156 172 +189 205 197 +222 230 222 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 82 65 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/steelix/shiny_gba.pal b/graphics/pokemon/steelix/shiny_gba.pal new file mode 100644 index 0000000000..02b21c7ac3 --- /dev/null +++ b/graphics/pokemon/steelix/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +255 0 255 +98 82 57 +139 106 82 +189 156 90 +230 197 115 +255 230 139 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +213 82 65 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/steenee/icon.png b/graphics/pokemon/steenee/icon.png index 80531a6315..eea2c5a42a 100644 Binary files a/graphics/pokemon/steenee/icon.png and b/graphics/pokemon/steenee/icon.png differ diff --git a/graphics/pokemon/stufful/icon.png b/graphics/pokemon/stufful/icon.png index de35247ae8..357d860f63 100644 Binary files a/graphics/pokemon/stufful/icon.png and b/graphics/pokemon/stufful/icon.png differ diff --git a/graphics/pokemon/stunfisk/galarian/back.png b/graphics/pokemon/stunfisk/galar/back.png similarity index 100% rename from graphics/pokemon/stunfisk/galarian/back.png rename to graphics/pokemon/stunfisk/galar/back.png diff --git a/graphics/pokemon/stunfisk/galarian/front.png b/graphics/pokemon/stunfisk/galar/front.png similarity index 100% rename from graphics/pokemon/stunfisk/galarian/front.png rename to graphics/pokemon/stunfisk/galar/front.png diff --git a/graphics/pokemon/stunfisk/galarian/icon.png b/graphics/pokemon/stunfisk/galar/icon.png similarity index 100% rename from graphics/pokemon/stunfisk/galarian/icon.png rename to graphics/pokemon/stunfisk/galar/icon.png diff --git a/graphics/pokemon/stunfisk/galarian/normal.pal b/graphics/pokemon/stunfisk/galar/normal.pal similarity index 100% rename from graphics/pokemon/stunfisk/galarian/normal.pal rename to graphics/pokemon/stunfisk/galar/normal.pal diff --git a/graphics/pokemon/stunfisk/galarian/overworld.png b/graphics/pokemon/stunfisk/galar/overworld.png similarity index 100% rename from graphics/pokemon/stunfisk/galarian/overworld.png rename to graphics/pokemon/stunfisk/galar/overworld.png diff --git a/graphics/pokemon/stunfisk/galarian/overworld_normal.pal b/graphics/pokemon/stunfisk/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/stunfisk/galarian/overworld_normal.pal rename to graphics/pokemon/stunfisk/galar/overworld_normal.pal diff --git a/graphics/pokemon/stunfisk/galarian/overworld_shiny.pal b/graphics/pokemon/stunfisk/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/stunfisk/galarian/overworld_shiny.pal rename to graphics/pokemon/stunfisk/galar/overworld_shiny.pal diff --git a/graphics/pokemon/stunfisk/galarian/shiny.pal b/graphics/pokemon/stunfisk/galar/shiny.pal similarity index 100% rename from graphics/pokemon/stunfisk/galarian/shiny.pal rename to graphics/pokemon/stunfisk/galar/shiny.pal diff --git a/graphics/pokemon/sudowoodo/anim_front_gba.png b/graphics/pokemon/sudowoodo/anim_front_gba.png new file mode 100644 index 0000000000..ed198580d9 Binary files /dev/null and b/graphics/pokemon/sudowoodo/anim_front_gba.png differ diff --git a/graphics/pokemon/sudowoodo/back_gba.png b/graphics/pokemon/sudowoodo/back_gba.png new file mode 100644 index 0000000000..befda7efca Binary files /dev/null and b/graphics/pokemon/sudowoodo/back_gba.png differ diff --git a/graphics/pokemon/sudowoodo/icon_gba.png b/graphics/pokemon/sudowoodo/icon_gba.png new file mode 100644 index 0000000000..4cc4afadf5 Binary files /dev/null and b/graphics/pokemon/sudowoodo/icon_gba.png differ diff --git a/graphics/pokemon/sudowoodo/normal_gba.pal b/graphics/pokemon/sudowoodo/normal_gba.pal new file mode 100644 index 0000000000..3d589fc9d2 --- /dev/null +++ b/graphics/pokemon/sudowoodo/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +230 197 106 +189 156 82 +148 115 49 +98 74 16 +255 0 255 +139 255 139 +41 222 49 +41 172 49 +24 106 32 +255 205 0 +222 148 0 +156 106 0 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/sudowoodo/shiny_gba.pal b/graphics/pokemon/sudowoodo/shiny_gba.pal new file mode 100644 index 0000000000..6344dcc533 --- /dev/null +++ b/graphics/pokemon/sudowoodo/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 222 57 +180 189 24 +123 139 24 +82 90 24 +255 0 255 +255 205 172 +255 115 74 +205 74 49 +131 57 41 +255 205 0 +222 148 0 +156 106 0 +180 180 180 +16 16 16 diff --git a/graphics/pokemon/suicune/anim_front_gba.png b/graphics/pokemon/suicune/anim_front_gba.png new file mode 100644 index 0000000000..6eca4e01f9 Binary files /dev/null and b/graphics/pokemon/suicune/anim_front_gba.png differ diff --git a/graphics/pokemon/suicune/back_gba.png b/graphics/pokemon/suicune/back_gba.png new file mode 100644 index 0000000000..80eef8678e Binary files /dev/null and b/graphics/pokemon/suicune/back_gba.png differ diff --git a/graphics/pokemon/suicune/icon_gba.png b/graphics/pokemon/suicune/icon_gba.png new file mode 100644 index 0000000000..3e4b3c695a Binary files /dev/null and b/graphics/pokemon/suicune/icon_gba.png differ diff --git a/graphics/pokemon/suicune/normal_gba.pal b/graphics/pokemon/suicune/normal_gba.pal new file mode 100644 index 0000000000..3a21dbd4dd --- /dev/null +++ b/graphics/pokemon/suicune/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +189 238 255 +123 189 255 +90 115 213 +57 74 148 +213 180 255 +172 106 255 +139 49 230 +82 57 139 +164 0 0 +213 213 213 +180 180 180 +148 148 148 +106 106 106 +16 16 16 diff --git a/graphics/pokemon/suicune/shiny_gba.pal b/graphics/pokemon/suicune/shiny_gba.pal new file mode 100644 index 0000000000..2ee8b7a0f7 --- /dev/null +++ b/graphics/pokemon/suicune/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 180 +255 255 255 +238 255 255 +197 230 255 +106 164 230 +49 82 156 +106 189 255 +57 139 222 +8 90 180 +32 57 98 +164 0 0 +213 205 230 +189 172 197 +139 123 148 +98 82 106 +16 16 16 diff --git a/graphics/pokemon/sunflora/anim_front_gba.png b/graphics/pokemon/sunflora/anim_front_gba.png new file mode 100644 index 0000000000..219c076ef1 Binary files /dev/null and b/graphics/pokemon/sunflora/anim_front_gba.png differ diff --git a/graphics/pokemon/sunflora/back_gba.png b/graphics/pokemon/sunflora/back_gba.png new file mode 100644 index 0000000000..c048bebc22 Binary files /dev/null and b/graphics/pokemon/sunflora/back_gba.png differ diff --git a/graphics/pokemon/sunflora/icon_gba.png b/graphics/pokemon/sunflora/icon_gba.png new file mode 100644 index 0000000000..6493eb5100 Binary files /dev/null and b/graphics/pokemon/sunflora/icon_gba.png differ diff --git a/graphics/pokemon/sunflora/normal_gba.pal b/graphics/pokemon/sunflora/normal_gba.pal new file mode 100644 index 0000000000..a22ed3fe74 --- /dev/null +++ b/graphics/pokemon/sunflora/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +131 90 16 +197 123 32 +222 164 24 +238 205 8 +230 222 90 +255 255 164 +255 246 16 +222 57 0 +255 0 255 +82 98 41 +115 172 49 +156 213 74 +189 255 115 diff --git a/graphics/pokemon/sunflora/shiny_gba.pal b/graphics/pokemon/sunflora/shiny_gba.pal new file mode 100644 index 0000000000..ea8de6e052 --- /dev/null +++ b/graphics/pokemon/sunflora/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 16 16 +255 0 255 +98 82 0 +148 123 0 +205 172 32 +238 222 82 +230 222 90 +255 255 164 +255 255 164 +222 57 0 +255 0 255 +82 74 0 +123 115 0 +180 172 41 +230 222 74 diff --git a/graphics/pokemon/sunkern/anim_front_gba.png b/graphics/pokemon/sunkern/anim_front_gba.png new file mode 100644 index 0000000000..167f1f37ef Binary files /dev/null and b/graphics/pokemon/sunkern/anim_front_gba.png differ diff --git a/graphics/pokemon/sunkern/back_gba.png b/graphics/pokemon/sunkern/back_gba.png new file mode 100644 index 0000000000..e6adde7754 Binary files /dev/null and b/graphics/pokemon/sunkern/back_gba.png differ diff --git a/graphics/pokemon/sunkern/icon_gba.png b/graphics/pokemon/sunkern/icon_gba.png new file mode 100644 index 0000000000..60d7ea91ba Binary files /dev/null and b/graphics/pokemon/sunkern/icon_gba.png differ diff --git a/graphics/pokemon/sunkern/normal_gba.pal b/graphics/pokemon/sunkern/normal_gba.pal new file mode 100644 index 0000000000..7dab1246db --- /dev/null +++ b/graphics/pokemon/sunkern/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +74 57 41 +82 74 41 +106 98 49 +180 164 49 +180 164 57 +213 205 49 +255 255 0 +255 0 255 +32 98 16 +82 164 57 +115 213 41 +164 246 57 +16 16 16 +115 115 139 +255 255 255 diff --git a/graphics/pokemon/sunkern/shiny_gba.pal b/graphics/pokemon/sunkern/shiny_gba.pal new file mode 100644 index 0000000000..84a106f65d --- /dev/null +++ b/graphics/pokemon/sunkern/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +74 57 41 +82 57 41 +106 74 49 +164 106 32 +172 115 49 +213 164 49 +255 213 90 +255 0 255 +32 98 16 +82 164 57 +156 230 49 +205 255 98 +16 16 16 +115 115 139 +255 255 255 diff --git a/graphics/pokemon/surskit/anim_front_gba.png b/graphics/pokemon/surskit/anim_front_gba.png new file mode 100644 index 0000000000..1879528262 Binary files /dev/null and b/graphics/pokemon/surskit/anim_front_gba.png differ diff --git a/graphics/pokemon/surskit/back_gba.png b/graphics/pokemon/surskit/back_gba.png new file mode 100644 index 0000000000..85b8a8a4f4 Binary files /dev/null and b/graphics/pokemon/surskit/back_gba.png differ diff --git a/graphics/pokemon/surskit/icon_gba.png b/graphics/pokemon/surskit/icon_gba.png new file mode 100644 index 0000000000..a7267c21aa Binary files /dev/null and b/graphics/pokemon/surskit/icon_gba.png differ diff --git a/graphics/pokemon/surskit/normal_gba.pal b/graphics/pokemon/surskit/normal_gba.pal new file mode 100644 index 0000000000..7aa7f389da --- /dev/null +++ b/graphics/pokemon/surskit/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 255 255 +49 90 90 +90 164 213 +90 139 180 +123 197 213 +255 213 90 +205 172 49 +123 106 16 +255 255 255 +238 123 139 +230 106 90 +172 139 16 +32 115 148 +255 255 255 +255 255 255 +205 255 156 diff --git a/graphics/pokemon/surskit/shiny_gba.pal b/graphics/pokemon/surskit/shiny_gba.pal new file mode 100644 index 0000000000..71624ff69e --- /dev/null +++ b/graphics/pokemon/surskit/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 205 255 +41 49 65 +115 106 123 +74 82 98 +148 139 156 +255 213 90 +205 172 49 +123 106 16 +255 255 255 +255 180 82 +255 115 24 +172 139 16 +74 82 98 +255 255 255 +255 255 255 +205 255 156 diff --git a/graphics/pokemon/swablu/anim_front_gba.png b/graphics/pokemon/swablu/anim_front_gba.png new file mode 100644 index 0000000000..bbe775905e Binary files /dev/null and b/graphics/pokemon/swablu/anim_front_gba.png differ diff --git a/graphics/pokemon/swablu/back_gba.png b/graphics/pokemon/swablu/back_gba.png new file mode 100644 index 0000000000..802a9e37c6 Binary files /dev/null and b/graphics/pokemon/swablu/back_gba.png differ diff --git a/graphics/pokemon/swablu/icon_gba.png b/graphics/pokemon/swablu/icon_gba.png new file mode 100644 index 0000000000..fa269d7410 Binary files /dev/null and b/graphics/pokemon/swablu/icon_gba.png differ diff --git a/graphics/pokemon/swablu/normal_gba.pal b/graphics/pokemon/swablu/normal_gba.pal new file mode 100644 index 0000000000..180dac0df6 --- /dev/null +++ b/graphics/pokemon/swablu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 172 123 +180 180 222 +131 131 148 +90 90 115 +57 106 131 +213 213 230 +0 0 0 +156 156 197 +123 205 255 +98 172 230 +90 148 205 +213 255 255 +148 197 197 +172 230 255 +238 238 246 +255 255 255 diff --git a/graphics/pokemon/swablu/shiny_gba.pal b/graphics/pokemon/swablu/shiny_gba.pal new file mode 100644 index 0000000000..392d5a8bb4 --- /dev/null +++ b/graphics/pokemon/swablu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 172 123 +180 180 222 +131 131 148 +90 90 115 +156 106 0 +213 213 230 +0 0 0 +156 156 197 +255 238 131 +255 205 98 +222 172 65 +213 255 255 +148 197 197 +255 238 131 +238 238 246 +255 255 255 diff --git a/graphics/pokemon/swalot/anim_front_gba.png b/graphics/pokemon/swalot/anim_front_gba.png new file mode 100644 index 0000000000..11ca0f3537 Binary files /dev/null and b/graphics/pokemon/swalot/anim_front_gba.png differ diff --git a/graphics/pokemon/swalot/back_gba.png b/graphics/pokemon/swalot/back_gba.png new file mode 100644 index 0000000000..acd59b1b93 Binary files /dev/null and b/graphics/pokemon/swalot/back_gba.png differ diff --git a/graphics/pokemon/swalot/icon_gba.png b/graphics/pokemon/swalot/icon_gba.png new file mode 100644 index 0000000000..9868d73d34 Binary files /dev/null and b/graphics/pokemon/swalot/icon_gba.png differ diff --git a/graphics/pokemon/swalot/normal_gba.pal b/graphics/pokemon/swalot/normal_gba.pal new file mode 100644 index 0000000000..fcd80af0b1 --- /dev/null +++ b/graphics/pokemon/swalot/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +65 156 123 +115 90 148 +156 106 213 +189 139 255 +213 172 255 +255 255 255 +49 49 49 +82 82 82 +106 106 106 +205 205 205 +131 123 65 +255 213 90 +255 41 0 +255 238 148 +90 57 106 +0 0 0 diff --git a/graphics/pokemon/swalot/shiny_gba.pal b/graphics/pokemon/swalot/shiny_gba.pal new file mode 100644 index 0000000000..109d19022b --- /dev/null +++ b/graphics/pokemon/swalot/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 189 131 +65 74 115 +90 115 156 +98 148 197 +131 180 238 +255 255 255 +49 49 49 +82 82 82 +106 106 106 +205 205 205 +180 65 49 +222 98 49 +255 139 82 +255 148 123 +0 0 0 +0 0 0 diff --git a/graphics/pokemon/swampert/anim_front_gba.png b/graphics/pokemon/swampert/anim_front_gba.png new file mode 100644 index 0000000000..62c207a26f Binary files /dev/null and b/graphics/pokemon/swampert/anim_front_gba.png differ diff --git a/graphics/pokemon/swampert/back_gba.png b/graphics/pokemon/swampert/back_gba.png new file mode 100644 index 0000000000..bb795c65f3 Binary files /dev/null and b/graphics/pokemon/swampert/back_gba.png differ diff --git a/graphics/pokemon/swampert/icon_gba.png b/graphics/pokemon/swampert/icon_gba.png new file mode 100644 index 0000000000..5b2f04ca92 Binary files /dev/null and b/graphics/pokemon/swampert/icon_gba.png differ diff --git a/graphics/pokemon/swampert/normal_gba.pal b/graphics/pokemon/swampert/normal_gba.pal new file mode 100644 index 0000000000..149557aa45 --- /dev/null +++ b/graphics/pokemon/swampert/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +197 230 255 +172 189 230 +131 164 197 +41 49 98 +255 213 74 +246 156 65 +205 131 65 +139 98 74 +156 74 90 +57 82 131 +139 205 255 +90 172 230 +49 131 197 +82 106 164 +16 16 16 diff --git a/graphics/pokemon/swampert/shiny_gba.pal b/graphics/pokemon/swampert/shiny_gba.pal new file mode 100644 index 0000000000..284a315083 --- /dev/null +++ b/graphics/pokemon/swampert/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +230 246 255 +205 213 230 +180 139 230 +74 65 106 +255 197 74 +246 106 82 +222 98 49 +180 65 49 +139 65 24 +106 49 123 +246 205 246 +230 172 246 +197 115 222 +139 82 156 +16 16 16 diff --git a/graphics/pokemon/swellow/anim_front_gba.png b/graphics/pokemon/swellow/anim_front_gba.png new file mode 100644 index 0000000000..de8016b51c Binary files /dev/null and b/graphics/pokemon/swellow/anim_front_gba.png differ diff --git a/graphics/pokemon/swellow/back_gba.png b/graphics/pokemon/swellow/back_gba.png new file mode 100644 index 0000000000..c2c1c3ed3a Binary files /dev/null and b/graphics/pokemon/swellow/back_gba.png differ diff --git a/graphics/pokemon/swellow/icon_gba.png b/graphics/pokemon/swellow/icon_gba.png new file mode 100644 index 0000000000..47a2ea74d7 Binary files /dev/null and b/graphics/pokemon/swellow/icon_gba.png differ diff --git a/graphics/pokemon/swellow/normal_gba.pal b/graphics/pokemon/swellow/normal_gba.pal new file mode 100644 index 0000000000..cf8e9f794e --- /dev/null +++ b/graphics/pokemon/swellow/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 98 +41 49 90 +65 82 123 +90 106 172 +123 139 205 +123 90 90 +148 148 148 +205 213 213 +255 255 255 +197 49 49 +230 106 98 +255 148 139 +230 172 74 +255 238 82 +131 57 82 +0 0 0 diff --git a/graphics/pokemon/swellow/shiny_gba.pal b/graphics/pokemon/swellow/shiny_gba.pal new file mode 100644 index 0000000000..388f2b2202 --- /dev/null +++ b/graphics/pokemon/swellow/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 98 +16 82 57 +49 148 98 +90 172 148 +148 213 205 +123 90 90 +148 148 148 +205 213 213 +255 255 255 +213 123 16 +246 180 57 +255 197 115 +230 189 74 +255 238 82 +131 57 82 +0 0 0 diff --git a/graphics/pokemon/swinub/anim_front_gba.png b/graphics/pokemon/swinub/anim_front_gba.png new file mode 100644 index 0000000000..80675bd9b5 Binary files /dev/null and b/graphics/pokemon/swinub/anim_front_gba.png differ diff --git a/graphics/pokemon/swinub/back_gba.png b/graphics/pokemon/swinub/back_gba.png new file mode 100644 index 0000000000..66998faad4 Binary files /dev/null and b/graphics/pokemon/swinub/back_gba.png differ diff --git a/graphics/pokemon/swinub/icon_gba.png b/graphics/pokemon/swinub/icon_gba.png new file mode 100644 index 0000000000..f33656a0cf Binary files /dev/null and b/graphics/pokemon/swinub/icon_gba.png differ diff --git a/graphics/pokemon/swinub/normal_gba.pal b/graphics/pokemon/swinub/normal_gba.pal new file mode 100644 index 0000000000..b014d69d62 --- /dev/null +++ b/graphics/pokemon/swinub/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 197 115 +197 164 82 +164 131 57 +123 98 24 +90 65 0 +57 41 0 +255 189 131 +222 139 82 +180 98 41 +255 0 255 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/swinub/shiny_gba.pal b/graphics/pokemon/swinub/shiny_gba.pal new file mode 100644 index 0000000000..9482e2d46f --- /dev/null +++ b/graphics/pokemon/swinub/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 230 230 +189 205 197 +148 164 164 +106 123 131 +57 65 90 +49 49 57 +246 213 131 +222 164 65 +205 123 32 +255 0 255 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/taillow/anim_front_gba.png b/graphics/pokemon/taillow/anim_front_gba.png new file mode 100644 index 0000000000..d27e9f7687 Binary files /dev/null and b/graphics/pokemon/taillow/anim_front_gba.png differ diff --git a/graphics/pokemon/taillow/back_gba.png b/graphics/pokemon/taillow/back_gba.png new file mode 100644 index 0000000000..997d6db451 Binary files /dev/null and b/graphics/pokemon/taillow/back_gba.png differ diff --git a/graphics/pokemon/taillow/icon_gba.png b/graphics/pokemon/taillow/icon_gba.png new file mode 100644 index 0000000000..a0668865b0 Binary files /dev/null and b/graphics/pokemon/taillow/icon_gba.png differ diff --git a/graphics/pokemon/taillow/normal_gba.pal b/graphics/pokemon/taillow/normal_gba.pal new file mode 100644 index 0000000000..b1777b5bec --- /dev/null +++ b/graphics/pokemon/taillow/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 98 +41 49 90 +74 90 148 +90 106 172 +123 139 205 +123 90 90 +148 148 148 +205 213 213 +255 255 255 +197 49 49 +230 106 98 +255 148 139 +230 189 74 +255 238 82 +131 57 82 +0 0 0 diff --git a/graphics/pokemon/taillow/shiny_gba.pal b/graphics/pokemon/taillow/shiny_gba.pal new file mode 100644 index 0000000000..388f2b2202 --- /dev/null +++ b/graphics/pokemon/taillow/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 98 +16 82 57 +49 148 98 +90 172 148 +148 213 205 +123 90 90 +148 148 148 +205 213 213 +255 255 255 +213 123 16 +246 180 57 +255 197 115 +230 189 74 +255 238 82 +131 57 82 +0 0 0 diff --git a/graphics/pokemon/tangela/anim_front_gba.png b/graphics/pokemon/tangela/anim_front_gba.png new file mode 100644 index 0000000000..161c7d5764 Binary files /dev/null and b/graphics/pokemon/tangela/anim_front_gba.png differ diff --git a/graphics/pokemon/tangela/back_gba.png b/graphics/pokemon/tangela/back_gba.png new file mode 100644 index 0000000000..5a15f1b91a Binary files /dev/null and b/graphics/pokemon/tangela/back_gba.png differ diff --git a/graphics/pokemon/tangela/icon_gba.png b/graphics/pokemon/tangela/icon_gba.png new file mode 100644 index 0000000000..c2a8ee33f6 Binary files /dev/null and b/graphics/pokemon/tangela/icon_gba.png differ diff --git a/graphics/pokemon/tangela/normal_gba.pal b/graphics/pokemon/tangela/normal_gba.pal new file mode 100644 index 0000000000..91dc27d45a --- /dev/null +++ b/graphics/pokemon/tangela/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +172 222 246 +131 189 213 +65 123 148 +32 65 82 +255 131 131 +222 90 90 +148 41 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +180 180 180 +82 82 82 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/tangela/shiny_gba.pal b/graphics/pokemon/tangela/shiny_gba.pal new file mode 100644 index 0000000000..6c8c7fad52 --- /dev/null +++ b/graphics/pokemon/tangela/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +123 222 57 +82 180 16 +41 139 0 +0 74 0 +255 131 131 +222 90 90 +148 41 41 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +180 180 180 +82 82 82 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/tapu_bulu/icon.png b/graphics/pokemon/tapu_bulu/icon.png index 69261acb3f..9d329d8250 100644 Binary files a/graphics/pokemon/tapu_bulu/icon.png and b/graphics/pokemon/tapu_bulu/icon.png differ diff --git a/graphics/pokemon/tapu_fini/icon.png b/graphics/pokemon/tapu_fini/icon.png index fcd74bbd19..623e1d4287 100644 Binary files a/graphics/pokemon/tapu_fini/icon.png and b/graphics/pokemon/tapu_fini/icon.png differ diff --git a/graphics/pokemon/tapu_koko/icon.png b/graphics/pokemon/tapu_koko/icon.png index 73470d55ad..2c857e5aa2 100644 Binary files a/graphics/pokemon/tapu_koko/icon.png and b/graphics/pokemon/tapu_koko/icon.png differ diff --git a/graphics/pokemon/tapu_lele/icon.png b/graphics/pokemon/tapu_lele/icon.png index e92e3fd3f1..960eee6e17 100644 Binary files a/graphics/pokemon/tapu_lele/icon.png and b/graphics/pokemon/tapu_lele/icon.png differ diff --git a/graphics/pokemon/tauros/anim_front_gba.png b/graphics/pokemon/tauros/anim_front_gba.png new file mode 100644 index 0000000000..6853a31b11 Binary files /dev/null and b/graphics/pokemon/tauros/anim_front_gba.png differ diff --git a/graphics/pokemon/tauros/back_gba.png b/graphics/pokemon/tauros/back_gba.png new file mode 100644 index 0000000000..2fac612831 Binary files /dev/null and b/graphics/pokemon/tauros/back_gba.png differ diff --git a/graphics/pokemon/tauros/icon_gba.png b/graphics/pokemon/tauros/icon_gba.png new file mode 100644 index 0000000000..fc432dab92 Binary files /dev/null and b/graphics/pokemon/tauros/icon_gba.png differ diff --git a/graphics/pokemon/tauros/normal_gba.pal b/graphics/pokemon/tauros/normal_gba.pal new file mode 100644 index 0000000000..537af1b4a3 --- /dev/null +++ b/graphics/pokemon/tauros/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +238 222 255 +205 197 255 +164 148 205 +90 74 106 +255 0 255 +205 189 123 +172 148 90 +123 98 41 +74 49 0 +255 222 106 +238 197 82 +197 156 32 +106 82 16 +16 16 16 diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/back.png b/graphics/pokemon/tauros/paldea_aqua/back.png similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/back.png rename to graphics/pokemon/tauros/paldea_aqua/back.png diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/front.png b/graphics/pokemon/tauros/paldea_aqua/front.png similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/front.png rename to graphics/pokemon/tauros/paldea_aqua/front.png diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/icon.png b/graphics/pokemon/tauros/paldea_aqua/icon.png similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/icon.png rename to graphics/pokemon/tauros/paldea_aqua/icon.png diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/normal.pal b/graphics/pokemon/tauros/paldea_aqua/normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/normal.pal rename to graphics/pokemon/tauros/paldea_aqua/normal.pal diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/overworld.png b/graphics/pokemon/tauros/paldea_aqua/overworld.png similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/overworld.png rename to graphics/pokemon/tauros/paldea_aqua/overworld.png diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/overworld_normal.pal b/graphics/pokemon/tauros/paldea_aqua/overworld_normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/overworld_normal.pal rename to graphics/pokemon/tauros/paldea_aqua/overworld_normal.pal diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/overworld_shiny.pal b/graphics/pokemon/tauros/paldea_aqua/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/overworld_shiny.pal rename to graphics/pokemon/tauros/paldea_aqua/overworld_shiny.pal diff --git a/graphics/pokemon/tauros/paldean_aqua_breed/shiny.pal b/graphics/pokemon/tauros/paldea_aqua/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_aqua_breed/shiny.pal rename to graphics/pokemon/tauros/paldea_aqua/shiny.pal diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/back.png b/graphics/pokemon/tauros/paldea_blaze/back.png similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/back.png rename to graphics/pokemon/tauros/paldea_blaze/back.png diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/front.png b/graphics/pokemon/tauros/paldea_blaze/front.png similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/front.png rename to graphics/pokemon/tauros/paldea_blaze/front.png diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/icon.png b/graphics/pokemon/tauros/paldea_blaze/icon.png similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/icon.png rename to graphics/pokemon/tauros/paldea_blaze/icon.png diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/normal.pal b/graphics/pokemon/tauros/paldea_blaze/normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/normal.pal rename to graphics/pokemon/tauros/paldea_blaze/normal.pal diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/overworld.png b/graphics/pokemon/tauros/paldea_blaze/overworld.png similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/overworld.png rename to graphics/pokemon/tauros/paldea_blaze/overworld.png diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/overworld_normal.pal b/graphics/pokemon/tauros/paldea_blaze/overworld_normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/overworld_normal.pal rename to graphics/pokemon/tauros/paldea_blaze/overworld_normal.pal diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/overworld_shiny.pal b/graphics/pokemon/tauros/paldea_blaze/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/overworld_shiny.pal rename to graphics/pokemon/tauros/paldea_blaze/overworld_shiny.pal diff --git a/graphics/pokemon/tauros/paldean_blaze_breed/shiny.pal b/graphics/pokemon/tauros/paldea_blaze/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_blaze_breed/shiny.pal rename to graphics/pokemon/tauros/paldea_blaze/shiny.pal diff --git a/graphics/pokemon/tauros/paldean_combat_breed/back.png b/graphics/pokemon/tauros/paldea_combat/back.png similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/back.png rename to graphics/pokemon/tauros/paldea_combat/back.png diff --git a/graphics/pokemon/tauros/paldean_combat_breed/front.png b/graphics/pokemon/tauros/paldea_combat/front.png similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/front.png rename to graphics/pokemon/tauros/paldea_combat/front.png diff --git a/graphics/pokemon/tauros/paldean_combat_breed/icon.png b/graphics/pokemon/tauros/paldea_combat/icon.png similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/icon.png rename to graphics/pokemon/tauros/paldea_combat/icon.png diff --git a/graphics/pokemon/tauros/paldean_combat_breed/normal.pal b/graphics/pokemon/tauros/paldea_combat/normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/normal.pal rename to graphics/pokemon/tauros/paldea_combat/normal.pal diff --git a/graphics/pokemon/tauros/paldean_combat_breed/overworld.png b/graphics/pokemon/tauros/paldea_combat/overworld.png similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/overworld.png rename to graphics/pokemon/tauros/paldea_combat/overworld.png diff --git a/graphics/pokemon/tauros/paldean_combat_breed/overworld_normal.pal b/graphics/pokemon/tauros/paldea_combat/overworld_normal.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/overworld_normal.pal rename to graphics/pokemon/tauros/paldea_combat/overworld_normal.pal diff --git a/graphics/pokemon/tauros/paldean_combat_breed/overworld_shiny.pal b/graphics/pokemon/tauros/paldea_combat/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/overworld_shiny.pal rename to graphics/pokemon/tauros/paldea_combat/overworld_shiny.pal diff --git a/graphics/pokemon/tauros/paldean_combat_breed/shiny.pal b/graphics/pokemon/tauros/paldea_combat/shiny.pal similarity index 100% rename from graphics/pokemon/tauros/paldean_combat_breed/shiny.pal rename to graphics/pokemon/tauros/paldea_combat/shiny.pal diff --git a/graphics/pokemon/tauros/shiny_gba.pal b/graphics/pokemon/tauros/shiny_gba.pal new file mode 100644 index 0000000000..68da596682 --- /dev/null +++ b/graphics/pokemon/tauros/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +238 222 255 +205 197 255 +164 148 205 +90 74 106 +255 0 255 +131 230 65 +82 180 24 +24 123 0 +49 74 24 +255 255 98 +255 230 82 +213 189 57 +131 106 49 +16 16 16 diff --git a/graphics/pokemon/teddiursa/anim_front_gba.png b/graphics/pokemon/teddiursa/anim_front_gba.png new file mode 100644 index 0000000000..ba5f60158c Binary files /dev/null and b/graphics/pokemon/teddiursa/anim_front_gba.png differ diff --git a/graphics/pokemon/teddiursa/back_gba.png b/graphics/pokemon/teddiursa/back_gba.png new file mode 100644 index 0000000000..d79f39a5ba Binary files /dev/null and b/graphics/pokemon/teddiursa/back_gba.png differ diff --git a/graphics/pokemon/teddiursa/icon_gba.png b/graphics/pokemon/teddiursa/icon_gba.png new file mode 100644 index 0000000000..94994c86de Binary files /dev/null and b/graphics/pokemon/teddiursa/icon_gba.png differ diff --git a/graphics/pokemon/teddiursa/normal_gba.pal b/graphics/pokemon/teddiursa/normal_gba.pal new file mode 100644 index 0000000000..11192e2c04 --- /dev/null +++ b/graphics/pokemon/teddiursa/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 197 115 +197 164 82 +164 131 57 +123 98 24 +90 65 0 +255 246 164 +255 213 123 +213 172 82 +255 0 255 +255 0 255 +222 222 222 +180 180 189 +106 106 123 +16 16 16 diff --git a/graphics/pokemon/teddiursa/shiny_gba.pal b/graphics/pokemon/teddiursa/shiny_gba.pal new file mode 100644 index 0000000000..0be332569f --- /dev/null +++ b/graphics/pokemon/teddiursa/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 246 123 +164 222 106 +123 180 74 +90 148 49 +57 98 32 +255 246 164 +238 222 123 +172 197 90 +255 0 255 +255 0 255 +222 222 222 +180 180 189 +106 106 123 +16 16 16 diff --git a/graphics/pokemon/tentacool/anim_front_gba.png b/graphics/pokemon/tentacool/anim_front_gba.png new file mode 100644 index 0000000000..6cbb2a47f4 Binary files /dev/null and b/graphics/pokemon/tentacool/anim_front_gba.png differ diff --git a/graphics/pokemon/tentacool/back_gba.png b/graphics/pokemon/tentacool/back_gba.png new file mode 100644 index 0000000000..d603ca052a Binary files /dev/null and b/graphics/pokemon/tentacool/back_gba.png differ diff --git a/graphics/pokemon/tentacool/icon_gba.png b/graphics/pokemon/tentacool/icon_gba.png new file mode 100644 index 0000000000..d29ca1938f Binary files /dev/null and b/graphics/pokemon/tentacool/icon_gba.png differ diff --git a/graphics/pokemon/tentacool/normal_gba.pal b/graphics/pokemon/tentacool/normal_gba.pal new file mode 100644 index 0000000000..686fea2735 --- /dev/null +++ b/graphics/pokemon/tentacool/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +255 197 189 +255 82 74 +180 41 32 +131 16 16 +213 197 148 +180 172 115 +131 131 65 +82 82 32 +213 213 213 +156 230 246 +106 180 230 +74 148 197 +32 82 131 +16 16 16 diff --git a/graphics/pokemon/tentacool/shiny_gba.pal b/graphics/pokemon/tentacool/shiny_gba.pal new file mode 100644 index 0000000000..d90b7d4a09 --- /dev/null +++ b/graphics/pokemon/tentacool/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +115 197 139 +74 156 98 +32 115 57 +16 74 16 +213 197 148 +180 172 115 +131 131 65 +82 82 32 +213 213 213 +213 213 255 +172 172 230 +131 131 189 +74 74 131 +16 16 16 diff --git a/graphics/pokemon/tentacruel/anim_front_gba.png b/graphics/pokemon/tentacruel/anim_front_gba.png new file mode 100644 index 0000000000..999e8f7b4a Binary files /dev/null and b/graphics/pokemon/tentacruel/anim_front_gba.png differ diff --git a/graphics/pokemon/tentacruel/back_gba.png b/graphics/pokemon/tentacruel/back_gba.png new file mode 100644 index 0000000000..232bc9259f Binary files /dev/null and b/graphics/pokemon/tentacruel/back_gba.png differ diff --git a/graphics/pokemon/tentacruel/icon_gba.png b/graphics/pokemon/tentacruel/icon_gba.png new file mode 100644 index 0000000000..72b6da9b99 Binary files /dev/null and b/graphics/pokemon/tentacruel/icon_gba.png differ diff --git a/graphics/pokemon/tentacruel/normal_gba.pal b/graphics/pokemon/tentacruel/normal_gba.pal new file mode 100644 index 0000000000..8e397af8fe --- /dev/null +++ b/graphics/pokemon/tentacruel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +255 197 189 +255 82 74 +180 41 32 +131 16 16 +230 213 164 +180 172 115 +131 131 65 +82 82 32 +213 213 213 +156 230 246 +106 180 230 +74 148 197 +32 82 131 +16 16 16 diff --git a/graphics/pokemon/tentacruel/shiny_gba.pal b/graphics/pokemon/tentacruel/shiny_gba.pal new file mode 100644 index 0000000000..b53f965996 --- /dev/null +++ b/graphics/pokemon/tentacruel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +148 189 82 +106 148 41 +65 106 0 +8 49 0 +230 213 164 +180 172 115 +131 131 65 +82 82 32 +222 255 255 +180 222 255 +139 180 213 +98 139 172 +24 65 98 +16 16 16 diff --git a/graphics/pokemon/tepig/overworld.png b/graphics/pokemon/tepig/overworld.png index b600bd7e74..c78cfebc5b 100644 Binary files a/graphics/pokemon/tepig/overworld.png and b/graphics/pokemon/tepig/overworld.png differ diff --git a/graphics/pokemon/togedemaru/icon.png b/graphics/pokemon/togedemaru/icon.png index 2ccf7d60d5..8aab887881 100644 Binary files a/graphics/pokemon/togedemaru/icon.png and b/graphics/pokemon/togedemaru/icon.png differ diff --git a/graphics/pokemon/togepi/anim_front_gba.png b/graphics/pokemon/togepi/anim_front_gba.png new file mode 100644 index 0000000000..e0d71a63af Binary files /dev/null and b/graphics/pokemon/togepi/anim_front_gba.png differ diff --git a/graphics/pokemon/togepi/back_gba.png b/graphics/pokemon/togepi/back_gba.png new file mode 100644 index 0000000000..24858fc227 Binary files /dev/null and b/graphics/pokemon/togepi/back_gba.png differ diff --git a/graphics/pokemon/togepi/icon_gba.png b/graphics/pokemon/togepi/icon_gba.png new file mode 100644 index 0000000000..ded646fa16 Binary files /dev/null and b/graphics/pokemon/togepi/icon_gba.png differ diff --git a/graphics/pokemon/togepi/normal_gba.pal b/graphics/pokemon/togepi/normal_gba.pal new file mode 100644 index 0000000000..6e9355508d --- /dev/null +++ b/graphics/pokemon/togepi/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +246 246 255 +180 180 197 +106 106 123 +16 16 16 +197 24 0 +255 255 205 +255 246 172 +222 197 115 +172 148 74 +106 57 0 +222 115 115 +197 24 0 +106 131 222 +0 74 213 +205 205 205 diff --git a/graphics/pokemon/togepi/shiny_gba.pal b/graphics/pokemon/togepi/shiny_gba.pal new file mode 100644 index 0000000000..6ce2e1be71 --- /dev/null +++ b/graphics/pokemon/togepi/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +246 246 255 +180 180 197 +106 106 123 +16 16 16 +197 24 0 +255 255 205 +255 230 172 +213 180 115 +172 131 57 +106 57 0 +106 131 222 +0 74 213 +222 115 115 +197 24 0 +205 205 205 diff --git a/graphics/pokemon/togetic/anim_front_gba.png b/graphics/pokemon/togetic/anim_front_gba.png new file mode 100644 index 0000000000..e233ea9409 Binary files /dev/null and b/graphics/pokemon/togetic/anim_front_gba.png differ diff --git a/graphics/pokemon/togetic/back_gba.png b/graphics/pokemon/togetic/back_gba.png new file mode 100644 index 0000000000..f5125735aa Binary files /dev/null and b/graphics/pokemon/togetic/back_gba.png differ diff --git a/graphics/pokemon/togetic/icon_gba.png b/graphics/pokemon/togetic/icon_gba.png new file mode 100644 index 0000000000..61e73ab3ed Binary files /dev/null and b/graphics/pokemon/togetic/icon_gba.png differ diff --git a/graphics/pokemon/togetic/normal_gba.pal b/graphics/pokemon/togetic/normal_gba.pal new file mode 100644 index 0000000000..c07ecff880 --- /dev/null +++ b/graphics/pokemon/togetic/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 197 139 +230 230 238 +205 205 205 +172 172 189 +131 131 148 +90 90 115 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +139 0 0 +222 115 115 +180 0 0 +106 131 222 +0 41 197 +255 255 255 diff --git a/graphics/pokemon/togetic/shiny_gba.pal b/graphics/pokemon/togetic/shiny_gba.pal new file mode 100644 index 0000000000..6d37ce70d0 --- /dev/null +++ b/graphics/pokemon/togetic/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 246 +230 222 172 +189 180 139 +148 139 32 +106 90 57 +16 16 16 +255 0 255 +255 0 255 +255 0 255 +139 0 0 +106 131 222 +0 41 197 +222 115 115 +180 0 0 +255 255 230 diff --git a/graphics/pokemon/torchic/anim_front_gba.png b/graphics/pokemon/torchic/anim_front_gba.png new file mode 100644 index 0000000000..c1aa67fd13 Binary files /dev/null and b/graphics/pokemon/torchic/anim_front_gba.png differ diff --git a/graphics/pokemon/torchic/back_gba.png b/graphics/pokemon/torchic/back_gba.png new file mode 100644 index 0000000000..ed2c538796 Binary files /dev/null and b/graphics/pokemon/torchic/back_gba.png differ diff --git a/graphics/pokemon/torchic/icon_gba.png b/graphics/pokemon/torchic/icon_gba.png new file mode 100644 index 0000000000..6346e2272e Binary files /dev/null and b/graphics/pokemon/torchic/icon_gba.png differ diff --git a/graphics/pokemon/torchic/normal_gba.pal b/graphics/pokemon/torchic/normal_gba.pal new file mode 100644 index 0000000000..373cb59b74 --- /dev/null +++ b/graphics/pokemon/torchic/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +255 222 148 +213 189 148 +180 148 123 +123 115 123 +255 213 98 +255 197 82 +213 156 57 +139 123 90 +156 205 255 +255 255 255 +255 164 57 +255 106 57 +213 90 57 +90 57 49 +16 16 16 diff --git a/graphics/pokemon/torchic/shiny_gba.pal b/graphics/pokemon/torchic/shiny_gba.pal new file mode 100644 index 0000000000..368d184945 --- /dev/null +++ b/graphics/pokemon/torchic/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +49 164 82 +222 180 131 +172 123 90 +123 90 74 +123 115 123 +255 164 57 +238 90 41 +189 57 24 +123 90 74 +156 205 255 +255 255 255 +255 238 172 +255 222 115 +230 164 74 +90 57 49 +16 16 16 diff --git a/graphics/pokemon/torkoal/anim_front_gba.png b/graphics/pokemon/torkoal/anim_front_gba.png new file mode 100644 index 0000000000..17ce45d87a Binary files /dev/null and b/graphics/pokemon/torkoal/anim_front_gba.png differ diff --git a/graphics/pokemon/torkoal/back_gba.png b/graphics/pokemon/torkoal/back_gba.png new file mode 100644 index 0000000000..4eb5c4f0e8 Binary files /dev/null and b/graphics/pokemon/torkoal/back_gba.png differ diff --git a/graphics/pokemon/torkoal/icon_gba.png b/graphics/pokemon/torkoal/icon_gba.png new file mode 100644 index 0000000000..077ce40262 Binary files /dev/null and b/graphics/pokemon/torkoal/icon_gba.png differ diff --git a/graphics/pokemon/torkoal/normal_gba.pal b/graphics/pokemon/torkoal/normal_gba.pal new file mode 100644 index 0000000000..85caef4913 --- /dev/null +++ b/graphics/pokemon/torkoal/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +238 222 213 +213 205 197 +189 172 164 +255 156 106 +230 123 74 +197 82 57 +148 74 49 +131 131 131 +90 90 90 +49 49 49 +255 156 0 +197 131 8 +255 57 0 +90 49 57 +0 0 0 diff --git a/graphics/pokemon/torkoal/shiny_gba.pal b/graphics/pokemon/torkoal/shiny_gba.pal new file mode 100644 index 0000000000..70194b9f17 --- /dev/null +++ b/graphics/pokemon/torkoal/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 238 230 +222 213 205 +205 189 180 +255 230 156 +255 213 106 +222 156 74 +148 90 0 +213 123 123 +180 90 90 +123 32 32 +255 156 0 +197 131 8 +255 57 0 +82 0 0 +0 0 0 diff --git a/graphics/pokemon/torracat/icon.png b/graphics/pokemon/torracat/icon.png index b266274f57..0b5f7a12e0 100644 Binary files a/graphics/pokemon/torracat/icon.png and b/graphics/pokemon/torracat/icon.png differ diff --git a/graphics/pokemon/totodile/anim_front_gba.png b/graphics/pokemon/totodile/anim_front_gba.png new file mode 100644 index 0000000000..387b24e476 Binary files /dev/null and b/graphics/pokemon/totodile/anim_front_gba.png differ diff --git a/graphics/pokemon/totodile/back_gba.png b/graphics/pokemon/totodile/back_gba.png new file mode 100644 index 0000000000..1ac54c7bd1 Binary files /dev/null and b/graphics/pokemon/totodile/back_gba.png differ diff --git a/graphics/pokemon/totodile/icon_gba.png b/graphics/pokemon/totodile/icon_gba.png new file mode 100644 index 0000000000..c2bc685213 Binary files /dev/null and b/graphics/pokemon/totodile/icon_gba.png differ diff --git a/graphics/pokemon/totodile/normal_gba.pal b/graphics/pokemon/totodile/normal_gba.pal new file mode 100644 index 0000000000..8a68271f60 --- /dev/null +++ b/graphics/pokemon/totodile/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 164 +255 255 255 +148 213 255 +106 180 230 +49 131 197 +74 74 131 +180 180 180 +255 197 115 +255 90 32 +205 41 16 +123 0 0 +255 90 32 +205 41 16 +255 197 82 +172 131 41 +16 16 16 diff --git a/graphics/pokemon/totodile/shiny_gba.pal b/graphics/pokemon/totodile/shiny_gba.pal new file mode 100644 index 0000000000..609f22253b --- /dev/null +++ b/graphics/pokemon/totodile/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 197 164 +255 255 255 +156 246 189 +106 222 180 +65 172 148 +32 106 90 +180 180 180 +131 180 255 +74 106 197 +49 74 164 +49 65 106 +255 123 74 +197 74 57 +255 197 82 +172 131 41 +16 16 16 diff --git a/graphics/pokemon/toucannon/icon.png b/graphics/pokemon/toucannon/icon.png index 349c723761..ba9740d298 100644 Binary files a/graphics/pokemon/toucannon/icon.png and b/graphics/pokemon/toucannon/icon.png differ diff --git a/graphics/pokemon/toxapex/icon.png b/graphics/pokemon/toxapex/icon.png index 5de471d4f3..eed4abe4f4 100644 Binary files a/graphics/pokemon/toxapex/icon.png and b/graphics/pokemon/toxapex/icon.png differ diff --git a/graphics/pokemon/toxtricity/gigantamax/back.png b/graphics/pokemon/toxtricity/gmax/back.png similarity index 100% rename from graphics/pokemon/toxtricity/gigantamax/back.png rename to graphics/pokemon/toxtricity/gmax/back.png diff --git a/graphics/pokemon/toxtricity/gigantamax/front.png b/graphics/pokemon/toxtricity/gmax/front.png similarity index 100% rename from graphics/pokemon/toxtricity/gigantamax/front.png rename to graphics/pokemon/toxtricity/gmax/front.png diff --git a/graphics/pokemon/toxtricity/gigantamax/icon.png b/graphics/pokemon/toxtricity/gmax/icon.png similarity index 100% rename from graphics/pokemon/toxtricity/gigantamax/icon.png rename to graphics/pokemon/toxtricity/gmax/icon.png diff --git a/graphics/pokemon/toxtricity/gigantamax/normal.pal b/graphics/pokemon/toxtricity/gmax/normal.pal similarity index 100% rename from graphics/pokemon/toxtricity/gigantamax/normal.pal rename to graphics/pokemon/toxtricity/gmax/normal.pal diff --git a/graphics/pokemon/toxtricity/gigantamax/shiny.pal b/graphics/pokemon/toxtricity/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/toxtricity/gigantamax/shiny.pal rename to graphics/pokemon/toxtricity/gmax/shiny.pal diff --git a/graphics/pokemon/trapinch/anim_front_gba.png b/graphics/pokemon/trapinch/anim_front_gba.png new file mode 100644 index 0000000000..2ee209fdf4 Binary files /dev/null and b/graphics/pokemon/trapinch/anim_front_gba.png differ diff --git a/graphics/pokemon/trapinch/back_gba.png b/graphics/pokemon/trapinch/back_gba.png new file mode 100644 index 0000000000..61eec3c92e Binary files /dev/null and b/graphics/pokemon/trapinch/back_gba.png differ diff --git a/graphics/pokemon/trapinch/icon_gba.png b/graphics/pokemon/trapinch/icon_gba.png new file mode 100644 index 0000000000..731dbf569f Binary files /dev/null and b/graphics/pokemon/trapinch/icon_gba.png differ diff --git a/graphics/pokemon/trapinch/normal_gba.pal b/graphics/pokemon/trapinch/normal_gba.pal new file mode 100644 index 0000000000..2344a7eca3 --- /dev/null +++ b/graphics/pokemon/trapinch/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 205 156 +115 65 65 +205 123 115 +238 156 74 +255 189 123 +197 74 49 +172 197 98 +222 246 115 +123 148 74 +0 0 0 +0 0 0 +0 0 0 +65 65 49 +255 255 255 +0 0 0 +32 32 32 diff --git a/graphics/pokemon/trapinch/shiny_gba.pal b/graphics/pokemon/trapinch/shiny_gba.pal new file mode 100644 index 0000000000..87ce33ef0b --- /dev/null +++ b/graphics/pokemon/trapinch/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +189 205 156 +24 49 41 +90 131 123 +123 164 156 +156 197 189 +197 74 49 +172 197 98 +222 246 115 +123 148 74 +0 0 0 +0 0 0 +0 0 0 +65 65 49 +255 255 255 +0 0 0 +32 32 32 diff --git a/graphics/pokemon/treecko/anim_front_gba.png b/graphics/pokemon/treecko/anim_front_gba.png new file mode 100644 index 0000000000..ce98864ea0 Binary files /dev/null and b/graphics/pokemon/treecko/anim_front_gba.png differ diff --git a/graphics/pokemon/treecko/back_gba.png b/graphics/pokemon/treecko/back_gba.png new file mode 100644 index 0000000000..89e53390dc Binary files /dev/null and b/graphics/pokemon/treecko/back_gba.png differ diff --git a/graphics/pokemon/treecko/icon_gba.png b/graphics/pokemon/treecko/icon_gba.png new file mode 100644 index 0000000000..f51358adfe Binary files /dev/null and b/graphics/pokemon/treecko/icon_gba.png differ diff --git a/graphics/pokemon/treecko/normal_gba.pal b/graphics/pokemon/treecko/normal_gba.pal new file mode 100644 index 0000000000..987a3a5b94 --- /dev/null +++ b/graphics/pokemon/treecko/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 106 156 +255 213 123 +255 197 82 +230 156 74 +74 189 131 +255 106 82 +213 82 57 +164 74 49 +24 65 57 +74 139 90 +255 255 255 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +16 16 16 diff --git a/graphics/pokemon/treecko/shiny_gba.pal b/graphics/pokemon/treecko/shiny_gba.pal new file mode 100644 index 0000000000..da5dda0e4f --- /dev/null +++ b/graphics/pokemon/treecko/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +123 106 156 +255 213 123 +255 197 82 +230 156 74 +255 106 82 +255 238 197 +238 189 156 +205 156 123 +156 65 41 +213 82 57 +255 255 255 +172 230 238 +148 205 213 +74 164 148 +82 139 131 +16 16 16 diff --git a/graphics/pokemon/tropius/anim_front_gba.png b/graphics/pokemon/tropius/anim_front_gba.png new file mode 100644 index 0000000000..62df662a22 Binary files /dev/null and b/graphics/pokemon/tropius/anim_front_gba.png differ diff --git a/graphics/pokemon/tropius/back_gba.png b/graphics/pokemon/tropius/back_gba.png new file mode 100644 index 0000000000..d948c3dc05 Binary files /dev/null and b/graphics/pokemon/tropius/back_gba.png differ diff --git a/graphics/pokemon/tropius/icon_gba.png b/graphics/pokemon/tropius/icon_gba.png new file mode 100644 index 0000000000..dabfcd2951 Binary files /dev/null and b/graphics/pokemon/tropius/icon_gba.png differ diff --git a/graphics/pokemon/tropius/normal_gba.pal b/graphics/pokemon/tropius/normal_gba.pal new file mode 100644 index 0000000000..efe3d75ab4 --- /dev/null +++ b/graphics/pokemon/tropius/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +16 123 189 +32 98 32 +57 172 65 +123 222 139 +189 246 156 +106 74 41 +164 115 49 +189 139 82 +205 164 106 +238 189 57 +255 255 106 +255 255 255 +0 0 0 +230 106 139 +164 82 106 +82 197 90 diff --git a/graphics/pokemon/tropius/shiny_gba.pal b/graphics/pokemon/tropius/shiny_gba.pal new file mode 100644 index 0000000000..cb02cf4491 --- /dev/null +++ b/graphics/pokemon/tropius/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +16 123 189 +49 90 0 +106 148 0 +172 213 32 +205 246 65 +106 74 41 +222 156 8 +246 189 41 +255 222 74 +238 189 57 +255 255 106 +255 255 255 +0 0 0 +230 106 139 +164 82 106 +139 180 0 diff --git a/graphics/pokemon/trumbeak/icon.png b/graphics/pokemon/trumbeak/icon.png index 7f13c97ae8..708e68f864 100644 Binary files a/graphics/pokemon/trumbeak/icon.png and b/graphics/pokemon/trumbeak/icon.png differ diff --git a/graphics/pokemon/tsareena/icon.png b/graphics/pokemon/tsareena/icon.png index f441195623..b436e30a21 100644 Binary files a/graphics/pokemon/tsareena/icon.png and b/graphics/pokemon/tsareena/icon.png differ diff --git a/graphics/pokemon/turtonator/icon.png b/graphics/pokemon/turtonator/icon.png index 4e1b8dbfa1..2ee4c8952a 100644 Binary files a/graphics/pokemon/turtonator/icon.png and b/graphics/pokemon/turtonator/icon.png differ diff --git a/graphics/pokemon/tympole/overworld.png b/graphics/pokemon/tympole/overworld.png index 9f9778553c..320809dc24 100644 Binary files a/graphics/pokemon/tympole/overworld.png and b/graphics/pokemon/tympole/overworld.png differ diff --git a/graphics/pokemon/type_null/icon.png b/graphics/pokemon/type_null/icon.png index e00748e138..ac03c60d4e 100644 Binary files a/graphics/pokemon/type_null/icon.png and b/graphics/pokemon/type_null/icon.png differ diff --git a/graphics/pokemon/typhlosion/anim_front_gba.png b/graphics/pokemon/typhlosion/anim_front_gba.png new file mode 100644 index 0000000000..e569968681 Binary files /dev/null and b/graphics/pokemon/typhlosion/anim_front_gba.png differ diff --git a/graphics/pokemon/typhlosion/back_gba.png b/graphics/pokemon/typhlosion/back_gba.png new file mode 100644 index 0000000000..deb3ffb0da Binary files /dev/null and b/graphics/pokemon/typhlosion/back_gba.png differ diff --git a/graphics/pokemon/typhlosion/hisuian/back.png b/graphics/pokemon/typhlosion/hisui/back.png similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/back.png rename to graphics/pokemon/typhlosion/hisui/back.png diff --git a/graphics/pokemon/typhlosion/hisuian/front.png b/graphics/pokemon/typhlosion/hisui/front.png similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/front.png rename to graphics/pokemon/typhlosion/hisui/front.png diff --git a/graphics/pokemon/typhlosion/hisuian/icon.png b/graphics/pokemon/typhlosion/hisui/icon.png similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/icon.png rename to graphics/pokemon/typhlosion/hisui/icon.png diff --git a/graphics/pokemon/typhlosion/hisuian/normal.pal b/graphics/pokemon/typhlosion/hisui/normal.pal similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/normal.pal rename to graphics/pokemon/typhlosion/hisui/normal.pal diff --git a/graphics/pokemon/typhlosion/hisuian/overworld.png b/graphics/pokemon/typhlosion/hisui/overworld.png similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/overworld.png rename to graphics/pokemon/typhlosion/hisui/overworld.png diff --git a/graphics/pokemon/typhlosion/hisuian/overworld_normal.pal b/graphics/pokemon/typhlosion/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/overworld_normal.pal rename to graphics/pokemon/typhlosion/hisui/overworld_normal.pal diff --git a/graphics/pokemon/typhlosion/hisuian/overworld_shiny.pal b/graphics/pokemon/typhlosion/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/overworld_shiny.pal rename to graphics/pokemon/typhlosion/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/typhlosion/hisuian/shiny.pal b/graphics/pokemon/typhlosion/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/typhlosion/hisuian/shiny.pal rename to graphics/pokemon/typhlosion/hisui/shiny.pal diff --git a/graphics/pokemon/typhlosion/icon_gba.png b/graphics/pokemon/typhlosion/icon_gba.png new file mode 100644 index 0000000000..e15d7b6832 Binary files /dev/null and b/graphics/pokemon/typhlosion/icon_gba.png differ diff --git a/graphics/pokemon/typhlosion/normal_gba.pal b/graphics/pokemon/typhlosion/normal_gba.pal new file mode 100644 index 0000000000..72f0c9c8c7 --- /dev/null +++ b/graphics/pokemon/typhlosion/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +98 139 180 +65 82 123 +41 57 98 +0 8 74 +255 238 148 +213 197 106 +164 139 74 +98 74 16 +255 222 0 +255 156 0 +255 98 0 +238 8 0 +16 16 16 +255 255 197 diff --git a/graphics/pokemon/typhlosion/shiny_gba.pal b/graphics/pokemon/typhlosion/shiny_gba.pal new file mode 100644 index 0000000000..42fb4ee9c0 --- /dev/null +++ b/graphics/pokemon/typhlosion/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +213 106 90 +172 65 74 +131 41 65 +106 32 41 +255 230 115 +222 197 82 +172 139 49 +139 82 24 +255 222 0 +255 156 0 +255 98 0 +238 0 0 +16 16 16 +255 246 156 diff --git a/graphics/pokemon/tyranitar/anim_front_gba.png b/graphics/pokemon/tyranitar/anim_front_gba.png new file mode 100644 index 0000000000..33cf099b81 Binary files /dev/null and b/graphics/pokemon/tyranitar/anim_front_gba.png differ diff --git a/graphics/pokemon/tyranitar/back_gba.png b/graphics/pokemon/tyranitar/back_gba.png new file mode 100644 index 0000000000..273318be0c Binary files /dev/null and b/graphics/pokemon/tyranitar/back_gba.png differ diff --git a/graphics/pokemon/tyranitar/icon_gba.png b/graphics/pokemon/tyranitar/icon_gba.png new file mode 100644 index 0000000000..76113bc68a Binary files /dev/null and b/graphics/pokemon/tyranitar/icon_gba.png differ diff --git a/graphics/pokemon/tyranitar/normal_gba.pal b/graphics/pokemon/tyranitar/normal_gba.pal new file mode 100644 index 0000000000..6c5e2941c3 --- /dev/null +++ b/graphics/pokemon/tyranitar/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +197 238 197 +164 213 164 +115 164 115 +57 82 57 +255 0 255 +98 180 255 +74 156 230 +32 123 189 +0 74 139 +213 82 0 +148 41 0 +197 197 197 +115 115 115 +16 16 16 diff --git a/graphics/pokemon/tyranitar/shiny_gba.pal b/graphics/pokemon/tyranitar/shiny_gba.pal new file mode 100644 index 0000000000..3090536a94 --- /dev/null +++ b/graphics/pokemon/tyranitar/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +246 213 148 +222 189 123 +172 139 82 +106 74 41 +255 0 255 +238 172 213 +213 148 197 +164 98 156 +106 49 98 +213 82 0 +148 41 0 +197 197 197 +115 115 115 +16 16 16 diff --git a/graphics/pokemon/tyrogue/anim_front_gba.png b/graphics/pokemon/tyrogue/anim_front_gba.png new file mode 100644 index 0000000000..038a2795cd Binary files /dev/null and b/graphics/pokemon/tyrogue/anim_front_gba.png differ diff --git a/graphics/pokemon/tyrogue/back_gba.png b/graphics/pokemon/tyrogue/back_gba.png new file mode 100644 index 0000000000..1d6b2e198f Binary files /dev/null and b/graphics/pokemon/tyrogue/back_gba.png differ diff --git a/graphics/pokemon/tyrogue/icon_gba.png b/graphics/pokemon/tyrogue/icon_gba.png new file mode 100644 index 0000000000..10099d5cff Binary files /dev/null and b/graphics/pokemon/tyrogue/icon_gba.png differ diff --git a/graphics/pokemon/tyrogue/normal_gba.pal b/graphics/pokemon/tyrogue/normal_gba.pal new file mode 100644 index 0000000000..97bff07831 --- /dev/null +++ b/graphics/pokemon/tyrogue/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 222 255 +238 172 255 +205 131 205 +172 98 156 +131 49 90 +230 139 65 +205 98 41 +180 49 0 +115 0 0 +230 139 65 +180 49 0 +213 213 213 +172 172 172 +16 16 16 diff --git a/graphics/pokemon/tyrogue/shiny_gba.pal b/graphics/pokemon/tyrogue/shiny_gba.pal new file mode 100644 index 0000000000..e8fef8a16f --- /dev/null +++ b/graphics/pokemon/tyrogue/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +238 230 205 +205 197 172 +156 148 131 +106 98 90 +90 82 65 +82 180 255 +65 139 230 +49 82 180 +32 65 131 +230 139 65 +180 49 0 +213 213 213 +172 172 172 +16 16 16 diff --git a/graphics/pokemon/umbreon/anim_front_gba.png b/graphics/pokemon/umbreon/anim_front_gba.png new file mode 100644 index 0000000000..dc73728507 Binary files /dev/null and b/graphics/pokemon/umbreon/anim_front_gba.png differ diff --git a/graphics/pokemon/umbreon/back_gba.png b/graphics/pokemon/umbreon/back_gba.png new file mode 100644 index 0000000000..d73508aede Binary files /dev/null and b/graphics/pokemon/umbreon/back_gba.png differ diff --git a/graphics/pokemon/umbreon/icon_gba.png b/graphics/pokemon/umbreon/icon_gba.png new file mode 100644 index 0000000000..8d8d867c2f Binary files /dev/null and b/graphics/pokemon/umbreon/icon_gba.png differ diff --git a/graphics/pokemon/umbreon/normal_gba.pal b/graphics/pokemon/umbreon/normal_gba.pal new file mode 100644 index 0000000000..dc6ec68e6f --- /dev/null +++ b/graphics/pokemon/umbreon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +49 41 41 +65 57 57 +90 82 82 +148 131 131 +180 164 164 +139 98 0 +205 148 41 +255 197 0 +255 238 139 +255 0 255 +16 16 16 +255 90 57 +255 255 255 diff --git a/graphics/pokemon/umbreon/shiny_gba.pal b/graphics/pokemon/umbreon/shiny_gba.pal new file mode 100644 index 0000000000..82c71e1ae5 --- /dev/null +++ b/graphics/pokemon/umbreon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 0 255 +255 0 255 +49 41 41 +65 57 57 +90 82 82 +148 131 131 +180 164 164 +32 74 148 +41 106 230 +98 180 255 +148 230 255 +255 0 255 +16 16 16 +255 213 16 +255 255 255 diff --git a/graphics/pokemon/unown/exclamation_mark/back.png b/graphics/pokemon/unown/exclamation/back.png similarity index 100% rename from graphics/pokemon/unown/exclamation_mark/back.png rename to graphics/pokemon/unown/exclamation/back.png diff --git a/graphics/pokemon/unown/exclamation_mark/front.png b/graphics/pokemon/unown/exclamation/front.png similarity index 100% rename from graphics/pokemon/unown/exclamation_mark/front.png rename to graphics/pokemon/unown/exclamation/front.png diff --git a/graphics/pokemon/unown/exclamation_mark/icon.png b/graphics/pokemon/unown/exclamation/icon.png similarity index 100% rename from graphics/pokemon/unown/exclamation_mark/icon.png rename to graphics/pokemon/unown/exclamation/icon.png diff --git a/graphics/pokemon/unown/exclamation_mark/overworld.png b/graphics/pokemon/unown/exclamation/overworld.png similarity index 100% rename from graphics/pokemon/unown/exclamation_mark/overworld.png rename to graphics/pokemon/unown/exclamation/overworld.png diff --git a/graphics/pokemon/unown/question_mark/back.png b/graphics/pokemon/unown/question/back.png similarity index 100% rename from graphics/pokemon/unown/question_mark/back.png rename to graphics/pokemon/unown/question/back.png diff --git a/graphics/pokemon/unown/question_mark/front.png b/graphics/pokemon/unown/question/front.png similarity index 100% rename from graphics/pokemon/unown/question_mark/front.png rename to graphics/pokemon/unown/question/front.png diff --git a/graphics/pokemon/unown/question_mark/icon.png b/graphics/pokemon/unown/question/icon.png similarity index 100% rename from graphics/pokemon/unown/question_mark/icon.png rename to graphics/pokemon/unown/question/icon.png diff --git a/graphics/pokemon/unown/question_mark/overworld.png b/graphics/pokemon/unown/question/overworld.png similarity index 100% rename from graphics/pokemon/unown/question_mark/overworld.png rename to graphics/pokemon/unown/question/overworld.png diff --git a/graphics/pokemon/ursaring/anim_front_gba.png b/graphics/pokemon/ursaring/anim_front_gba.png new file mode 100644 index 0000000000..eb9e307ce6 Binary files /dev/null and b/graphics/pokemon/ursaring/anim_front_gba.png differ diff --git a/graphics/pokemon/ursaring/back_gba.png b/graphics/pokemon/ursaring/back_gba.png new file mode 100644 index 0000000000..4a546c055a Binary files /dev/null and b/graphics/pokemon/ursaring/back_gba.png differ diff --git a/graphics/pokemon/ursaring/icon_gba.png b/graphics/pokemon/ursaring/icon_gba.png new file mode 100644 index 0000000000..143353f31f Binary files /dev/null and b/graphics/pokemon/ursaring/icon_gba.png differ diff --git a/graphics/pokemon/ursaring/normal_gba.pal b/graphics/pokemon/ursaring/normal_gba.pal new file mode 100644 index 0000000000..6af3469ebd --- /dev/null +++ b/graphics/pokemon/ursaring/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +222 197 115 +197 164 82 +164 131 57 +123 98 24 +74 49 0 +255 246 164 +255 213 123 +213 172 82 +180 131 41 +238 82 106 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/ursaring/shiny_gba.pal b/graphics/pokemon/ursaring/shiny_gba.pal new file mode 100644 index 0000000000..607975efae --- /dev/null +++ b/graphics/pokemon/ursaring/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +164 230 65 +131 205 41 +98 172 16 +65 139 0 +57 82 0 +255 246 164 +255 213 123 +213 172 82 +180 131 41 +238 82 106 +222 222 222 +180 180 189 +123 123 139 +16 16 16 diff --git a/graphics/pokemon/urshifu/rapid_strike_style/back.png b/graphics/pokemon/urshifu/rapid_strike/back.png similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style/back.png rename to graphics/pokemon/urshifu/rapid_strike/back.png diff --git a/graphics/pokemon/urshifu/rapid_strike_style/front.png b/graphics/pokemon/urshifu/rapid_strike/front.png similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style/front.png rename to graphics/pokemon/urshifu/rapid_strike/front.png diff --git a/graphics/pokemon/urshifu/rapid_strike_style/normal.pal b/graphics/pokemon/urshifu/rapid_strike/normal.pal similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style/normal.pal rename to graphics/pokemon/urshifu/rapid_strike/normal.pal diff --git a/graphics/pokemon/urshifu/rapid_strike_style/shiny.pal b/graphics/pokemon/urshifu/rapid_strike/shiny.pal similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style/shiny.pal rename to graphics/pokemon/urshifu/rapid_strike/shiny.pal diff --git a/graphics/pokemon/urshifu/rapid_strike_style_gigantamax/back.png b/graphics/pokemon/urshifu/rapid_strike_gmax/back.png similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style_gigantamax/back.png rename to graphics/pokemon/urshifu/rapid_strike_gmax/back.png diff --git a/graphics/pokemon/urshifu/rapid_strike_style_gigantamax/front.png b/graphics/pokemon/urshifu/rapid_strike_gmax/front.png similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style_gigantamax/front.png rename to graphics/pokemon/urshifu/rapid_strike_gmax/front.png diff --git a/graphics/pokemon/urshifu/rapid_strike_style_gigantamax/icon.png b/graphics/pokemon/urshifu/rapid_strike_gmax/icon.png similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style_gigantamax/icon.png rename to graphics/pokemon/urshifu/rapid_strike_gmax/icon.png diff --git a/graphics/pokemon/urshifu/rapid_strike_style_gigantamax/normal.pal b/graphics/pokemon/urshifu/rapid_strike_gmax/normal.pal similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style_gigantamax/normal.pal rename to graphics/pokemon/urshifu/rapid_strike_gmax/normal.pal diff --git a/graphics/pokemon/urshifu/rapid_strike_style_gigantamax/shiny.pal b/graphics/pokemon/urshifu/rapid_strike_gmax/shiny.pal similarity index 100% rename from graphics/pokemon/urshifu/rapid_strike_style_gigantamax/shiny.pal rename to graphics/pokemon/urshifu/rapid_strike_gmax/shiny.pal diff --git a/graphics/pokemon/urshifu/single_strike_style_gigantamax/back.png b/graphics/pokemon/urshifu/single_strike_gmax/back.png similarity index 100% rename from graphics/pokemon/urshifu/single_strike_style_gigantamax/back.png rename to graphics/pokemon/urshifu/single_strike_gmax/back.png diff --git a/graphics/pokemon/urshifu/single_strike_style_gigantamax/front.png b/graphics/pokemon/urshifu/single_strike_gmax/front.png similarity index 100% rename from graphics/pokemon/urshifu/single_strike_style_gigantamax/front.png rename to graphics/pokemon/urshifu/single_strike_gmax/front.png diff --git a/graphics/pokemon/urshifu/single_strike_style_gigantamax/icon.png b/graphics/pokemon/urshifu/single_strike_gmax/icon.png similarity index 100% rename from graphics/pokemon/urshifu/single_strike_style_gigantamax/icon.png rename to graphics/pokemon/urshifu/single_strike_gmax/icon.png diff --git a/graphics/pokemon/urshifu/single_strike_style_gigantamax/normal.pal b/graphics/pokemon/urshifu/single_strike_gmax/normal.pal similarity index 100% rename from graphics/pokemon/urshifu/single_strike_style_gigantamax/normal.pal rename to graphics/pokemon/urshifu/single_strike_gmax/normal.pal diff --git a/graphics/pokemon/urshifu/single_strike_style_gigantamax/shiny.pal b/graphics/pokemon/urshifu/single_strike_gmax/shiny.pal similarity index 100% rename from graphics/pokemon/urshifu/single_strike_style_gigantamax/shiny.pal rename to graphics/pokemon/urshifu/single_strike_gmax/shiny.pal diff --git a/graphics/pokemon/vaporeon/anim_front_gba.png b/graphics/pokemon/vaporeon/anim_front_gba.png new file mode 100644 index 0000000000..f3eb2d626f Binary files /dev/null and b/graphics/pokemon/vaporeon/anim_front_gba.png differ diff --git a/graphics/pokemon/vaporeon/back_gba.png b/graphics/pokemon/vaporeon/back_gba.png new file mode 100644 index 0000000000..5ac5b94fb8 Binary files /dev/null and b/graphics/pokemon/vaporeon/back_gba.png differ diff --git a/graphics/pokemon/vaporeon/icon_gba.png b/graphics/pokemon/vaporeon/icon_gba.png new file mode 100644 index 0000000000..d4003c2a84 Binary files /dev/null and b/graphics/pokemon/vaporeon/icon_gba.png differ diff --git a/graphics/pokemon/vaporeon/normal_gba.pal b/graphics/pokemon/vaporeon/normal_gba.pal new file mode 100644 index 0000000000..e6a4024f1b --- /dev/null +++ b/graphics/pokemon/vaporeon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +230 230 230 +172 172 205 +255 238 123 +230 189 74 +139 123 41 +115 139 180 +90 115 156 +49 65 123 +90 90 115 +131 238 213 +98 205 180 +57 164 139 +16 106 82 +41 41 41 diff --git a/graphics/pokemon/vaporeon/shiny_gba.pal b/graphics/pokemon/vaporeon/shiny_gba.pal new file mode 100644 index 0000000000..1cfaae92b4 --- /dev/null +++ b/graphics/pokemon/vaporeon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 213 +255 255 255 +230 230 230 +172 172 205 +255 255 156 +230 197 74 +139 139 16 +172 90 115 +180 115 156 +131 57 90 +90 90 115 +255 197 246 +230 172 230 +189 131 197 +123 65 139 +41 41 41 diff --git a/graphics/pokemon/venomoth/anim_front_gba.png b/graphics/pokemon/venomoth/anim_front_gba.png new file mode 100644 index 0000000000..55704df345 Binary files /dev/null and b/graphics/pokemon/venomoth/anim_front_gba.png differ diff --git a/graphics/pokemon/venomoth/back_gba.png b/graphics/pokemon/venomoth/back_gba.png new file mode 100644 index 0000000000..56b1b5b7a0 Binary files /dev/null and b/graphics/pokemon/venomoth/back_gba.png differ diff --git a/graphics/pokemon/venomoth/icon_gba.png b/graphics/pokemon/venomoth/icon_gba.png new file mode 100644 index 0000000000..d77b6dce86 Binary files /dev/null and b/graphics/pokemon/venomoth/icon_gba.png differ diff --git a/graphics/pokemon/venomoth/normal_gba.pal b/graphics/pokemon/venomoth/normal_gba.pal new file mode 100644 index 0000000000..c9b3d325d7 --- /dev/null +++ b/graphics/pokemon/venomoth/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +230 230 230 +172 197 197 +230 213 172 +197 172 139 +164 131 106 +98 82 57 +238 230 98 +246 213 82 +16 16 16 +255 230 255 +238 197 255 +213 172 222 +172 139 205 +106 57 148 diff --git a/graphics/pokemon/venomoth/shiny_gba.pal b/graphics/pokemon/venomoth/shiny_gba.pal new file mode 100644 index 0000000000..a490c4985f --- /dev/null +++ b/graphics/pokemon/venomoth/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +230 230 230 +172 197 197 +230 213 172 +197 172 139 +164 131 106 +98 82 57 +238 230 98 +246 213 82 +16 16 16 +213 238 255 +172 197 238 +131 156 197 +90 115 156 +49 74 115 diff --git a/graphics/pokemon/venonat/anim_front_gba.png b/graphics/pokemon/venonat/anim_front_gba.png new file mode 100644 index 0000000000..a8c726b2cc Binary files /dev/null and b/graphics/pokemon/venonat/anim_front_gba.png differ diff --git a/graphics/pokemon/venonat/back_gba.png b/graphics/pokemon/venonat/back_gba.png new file mode 100644 index 0000000000..44f7f45c50 Binary files /dev/null and b/graphics/pokemon/venonat/back_gba.png differ diff --git a/graphics/pokemon/venonat/icon_gba.png b/graphics/pokemon/venonat/icon_gba.png new file mode 100644 index 0000000000..a2ed54b717 Binary files /dev/null and b/graphics/pokemon/venonat/icon_gba.png differ diff --git a/graphics/pokemon/venonat/normal_gba.pal b/graphics/pokemon/venonat/normal_gba.pal new file mode 100644 index 0000000000..ae66984161 --- /dev/null +++ b/graphics/pokemon/venonat/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +148 115 164 +213 213 213 +131 131 131 +255 205 222 +255 123 82 +197 82 32 +238 189 156 +189 139 106 +139 90 57 +180 123 197 +148 82 164 +106 65 115 +65 16 82 +16 16 16 diff --git a/graphics/pokemon/venonat/shiny_gba.pal b/graphics/pokemon/venonat/shiny_gba.pal new file mode 100644 index 0000000000..88c346a27b --- /dev/null +++ b/graphics/pokemon/venonat/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +148 115 164 +213 213 213 +131 131 131 +156 230 255 +106 180 255 +57 131 197 +238 189 156 +189 139 106 +139 90 57 +180 123 197 +148 82 164 +106 65 115 +65 16 82 +16 16 16 diff --git a/graphics/pokemon/venusaur/anim_front_gba.png b/graphics/pokemon/venusaur/anim_front_gba.png new file mode 100644 index 0000000000..7a1157fe34 Binary files /dev/null and b/graphics/pokemon/venusaur/anim_front_gba.png differ diff --git a/graphics/pokemon/venusaur/back_gba.png b/graphics/pokemon/venusaur/back_gba.png new file mode 100644 index 0000000000..78649eeee2 Binary files /dev/null and b/graphics/pokemon/venusaur/back_gba.png differ diff --git a/graphics/pokemon/venusaur/gigantamax/back.png b/graphics/pokemon/venusaur/gmax/back.png similarity index 100% rename from graphics/pokemon/venusaur/gigantamax/back.png rename to graphics/pokemon/venusaur/gmax/back.png diff --git a/graphics/pokemon/venusaur/gigantamax/front.png b/graphics/pokemon/venusaur/gmax/front.png similarity index 100% rename from graphics/pokemon/venusaur/gigantamax/front.png rename to graphics/pokemon/venusaur/gmax/front.png diff --git a/graphics/pokemon/venusaur/gigantamax/icon.png b/graphics/pokemon/venusaur/gmax/icon.png similarity index 100% rename from graphics/pokemon/venusaur/gigantamax/icon.png rename to graphics/pokemon/venusaur/gmax/icon.png diff --git a/graphics/pokemon/venusaur/gigantamax/normal.pal b/graphics/pokemon/venusaur/gmax/normal.pal similarity index 100% rename from graphics/pokemon/venusaur/gigantamax/normal.pal rename to graphics/pokemon/venusaur/gmax/normal.pal diff --git a/graphics/pokemon/venusaur/gigantamax/shiny.pal b/graphics/pokemon/venusaur/gmax/shiny.pal similarity index 100% rename from graphics/pokemon/venusaur/gigantamax/shiny.pal rename to graphics/pokemon/venusaur/gmax/shiny.pal diff --git a/graphics/pokemon/venusaur/icon_gba.png b/graphics/pokemon/venusaur/icon_gba.png new file mode 100644 index 0000000000..fbd5380f5d Binary files /dev/null and b/graphics/pokemon/venusaur/icon_gba.png differ diff --git a/graphics/pokemon/venusaur/normal_gba.pal b/graphics/pokemon/venusaur/normal_gba.pal new file mode 100644 index 0000000000..362bb6d929 --- /dev/null +++ b/graphics/pokemon/venusaur/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 82 32 +32 148 90 +90 205 148 +131 238 197 +131 49 0 +189 106 49 +16 16 16 +222 65 65 +255 131 115 +156 246 139 +222 205 49 +255 238 82 +65 164 24 +106 205 65 +255 255 255 diff --git a/graphics/pokemon/venusaur/shiny_gba.pal b/graphics/pokemon/venusaur/shiny_gba.pal new file mode 100644 index 0000000000..5662463940 --- /dev/null +++ b/graphics/pokemon/venusaur/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +16 82 32 +131 164 0 +180 213 16 +213 246 49 +131 49 0 +189 106 49 +16 16 16 +255 148 0 +255 197 41 +156 246 139 +255 238 82 +255 255 255 +41 164 16 +82 205 57 +255 255 255 diff --git a/graphics/pokemon/vibrava/anim_front_gba.png b/graphics/pokemon/vibrava/anim_front_gba.png new file mode 100644 index 0000000000..6f58b89bbf Binary files /dev/null and b/graphics/pokemon/vibrava/anim_front_gba.png differ diff --git a/graphics/pokemon/vibrava/back_gba.png b/graphics/pokemon/vibrava/back_gba.png new file mode 100644 index 0000000000..c5a0eb60b1 Binary files /dev/null and b/graphics/pokemon/vibrava/back_gba.png differ diff --git a/graphics/pokemon/vibrava/icon_gba.png b/graphics/pokemon/vibrava/icon_gba.png new file mode 100644 index 0000000000..422ea23593 Binary files /dev/null and b/graphics/pokemon/vibrava/icon_gba.png differ diff --git a/graphics/pokemon/vibrava/normal_gba.pal b/graphics/pokemon/vibrava/normal_gba.pal new file mode 100644 index 0000000000..7f40d23163 --- /dev/null +++ b/graphics/pokemon/vibrava/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +139 238 180 +98 197 148 +49 139 98 +255 255 164 +230 213 139 +189 180 123 +222 222 255 +189 189 222 +205 205 205 +123 115 57 +0 0 0 +164 164 164 +131 131 131 +82 82 82 +255 255 255 diff --git a/graphics/pokemon/vibrava/shiny_gba.pal b/graphics/pokemon/vibrava/shiny_gba.pal new file mode 100644 index 0000000000..8da128d69f --- /dev/null +++ b/graphics/pokemon/vibrava/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +255 180 123 +246 123 74 +197 82 24 +255 255 164 +230 213 139 +189 180 123 +222 222 255 +189 189 222 +205 205 205 +123 115 57 +0 0 0 +164 164 164 +131 131 131 +106 106 106 +255 255 255 diff --git a/graphics/pokemon/victreebel/anim_front_gba.png b/graphics/pokemon/victreebel/anim_front_gba.png new file mode 100644 index 0000000000..3615e31a11 Binary files /dev/null and b/graphics/pokemon/victreebel/anim_front_gba.png differ diff --git a/graphics/pokemon/victreebel/back_gba.png b/graphics/pokemon/victreebel/back_gba.png new file mode 100644 index 0000000000..a92b61f7a2 Binary files /dev/null and b/graphics/pokemon/victreebel/back_gba.png differ diff --git a/graphics/pokemon/victreebel/icon_gba.png b/graphics/pokemon/victreebel/icon_gba.png new file mode 100644 index 0000000000..49298177ec Binary files /dev/null and b/graphics/pokemon/victreebel/icon_gba.png differ diff --git a/graphics/pokemon/victreebel/normal_gba.pal b/graphics/pokemon/victreebel/normal_gba.pal new file mode 100644 index 0000000000..635eae0aba --- /dev/null +++ b/graphics/pokemon/victreebel/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +180 131 41 +213 213 213 +255 164 115 +213 74 32 +255 230 156 +255 213 106 +230 172 90 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +180 123 49 +106 65 0 +16 16 16 diff --git a/graphics/pokemon/victreebel/shiny_gba.pal b/graphics/pokemon/victreebel/shiny_gba.pal new file mode 100644 index 0000000000..2542072f36 --- /dev/null +++ b/graphics/pokemon/victreebel/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +131 148 8 +213 213 213 +90 156 222 +49 115 180 +255 255 156 +230 255 106 +189 213 65 +238 213 115 +197 172 74 +156 131 32 +106 82 16 +180 123 49 +106 65 0 +16 16 16 diff --git a/graphics/pokemon/vigoroth/anim_front_gba.png b/graphics/pokemon/vigoroth/anim_front_gba.png new file mode 100644 index 0000000000..cbf7519a07 Binary files /dev/null and b/graphics/pokemon/vigoroth/anim_front_gba.png differ diff --git a/graphics/pokemon/vigoroth/back_gba.png b/graphics/pokemon/vigoroth/back_gba.png new file mode 100644 index 0000000000..7d806e703c Binary files /dev/null and b/graphics/pokemon/vigoroth/back_gba.png differ diff --git a/graphics/pokemon/vigoroth/icon_gba.png b/graphics/pokemon/vigoroth/icon_gba.png new file mode 100644 index 0000000000..f8808cde37 Binary files /dev/null and b/graphics/pokemon/vigoroth/icon_gba.png differ diff --git a/graphics/pokemon/vigoroth/normal_gba.pal b/graphics/pokemon/vigoroth/normal_gba.pal new file mode 100644 index 0000000000..824efe7113 --- /dev/null +++ b/graphics/pokemon/vigoroth/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 123 164 +82 65 32 +115 49 49 +115 82 41 +139 106 65 +65 65 65 +131 131 131 +205 205 205 +255 255 255 +139 65 90 +213 57 49 +255 98 98 +230 230 230 +172 131 98 +90 90 82 +0 0 0 diff --git a/graphics/pokemon/vigoroth/shiny_gba.pal b/graphics/pokemon/vigoroth/shiny_gba.pal new file mode 100644 index 0000000000..adc647979c --- /dev/null +++ b/graphics/pokemon/vigoroth/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +74 123 164 +82 65 32 +115 49 49 +115 82 41 +139 106 65 +65 65 65 +205 148 82 +246 213 115 +255 255 255 +172 74 0 +230 82 24 +255 164 98 +255 238 156 +172 131 98 +90 90 82 +0 0 0 diff --git a/graphics/pokemon/vikavolt/icon.png b/graphics/pokemon/vikavolt/icon.png index 7a8f2cff4d..eff23d50aa 100644 Binary files a/graphics/pokemon/vikavolt/icon.png and b/graphics/pokemon/vikavolt/icon.png differ diff --git a/graphics/pokemon/vileplume/anim_front_gba.png b/graphics/pokemon/vileplume/anim_front_gba.png new file mode 100644 index 0000000000..e4fffcf76b Binary files /dev/null and b/graphics/pokemon/vileplume/anim_front_gba.png differ diff --git a/graphics/pokemon/vileplume/back_gba.png b/graphics/pokemon/vileplume/back_gba.png new file mode 100644 index 0000000000..6c441efb3f Binary files /dev/null and b/graphics/pokemon/vileplume/back_gba.png differ diff --git a/graphics/pokemon/vileplume/icon_gba.png b/graphics/pokemon/vileplume/icon_gba.png new file mode 100644 index 0000000000..7009048c53 Binary files /dev/null and b/graphics/pokemon/vileplume/icon_gba.png differ diff --git a/graphics/pokemon/vileplume/normal_gba.pal b/graphics/pokemon/vileplume/normal_gba.pal new file mode 100644 index 0000000000..96d98b0d94 --- /dev/null +++ b/graphics/pokemon/vileplume/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 230 156 +230 172 90 +189 131 49 +255 172 131 +255 123 82 +222 98 49 +164 49 32 +255 222 222 +255 180 189 +148 180 197 +115 148 164 +82 115 131 +32 65 82 +16 16 16 diff --git a/graphics/pokemon/vileplume/shiny_gba.pal b/graphics/pokemon/vileplume/shiny_gba.pal new file mode 100644 index 0000000000..b0bd4468f9 --- /dev/null +++ b/graphics/pokemon/vileplume/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 255 255 +255 230 156 +230 172 90 +189 131 49 +255 230 148 +255 189 106 +230 148 65 +172 90 24 +255 222 222 +255 180 189 +156 197 148 +115 156 106 +74 115 65 +32 74 24 +16 16 16 diff --git a/graphics/pokemon/vivillon/archipelago/icon.png b/graphics/pokemon/vivillon/archipelago/icon.png index 5dfb32bb60..82d2757589 100644 Binary files a/graphics/pokemon/vivillon/archipelago/icon.png and b/graphics/pokemon/vivillon/archipelago/icon.png differ diff --git a/graphics/pokemon/vivillon/continental/icon.png b/graphics/pokemon/vivillon/continental/icon.png index 482c27feba..725b181c8a 100644 Binary files a/graphics/pokemon/vivillon/continental/icon.png and b/graphics/pokemon/vivillon/continental/icon.png differ diff --git a/graphics/pokemon/vivillon/elegant/icon.png b/graphics/pokemon/vivillon/elegant/icon.png index fc23f4335a..bf2c9a50b6 100644 Binary files a/graphics/pokemon/vivillon/elegant/icon.png and b/graphics/pokemon/vivillon/elegant/icon.png differ diff --git a/graphics/pokemon/vivillon/fancy/icon.png b/graphics/pokemon/vivillon/fancy/icon.png index 2e75d4c340..1fa55125e6 100644 Binary files a/graphics/pokemon/vivillon/fancy/icon.png and b/graphics/pokemon/vivillon/fancy/icon.png differ diff --git a/graphics/pokemon/vivillon/garden/icon.png b/graphics/pokemon/vivillon/garden/icon.png index bcf56d0ef4..e487901f95 100644 Binary files a/graphics/pokemon/vivillon/garden/icon.png and b/graphics/pokemon/vivillon/garden/icon.png differ diff --git a/graphics/pokemon/vivillon/high_plains/icon.png b/graphics/pokemon/vivillon/high_plains/icon.png index 6e2313e901..d68ff6df4a 100644 Binary files a/graphics/pokemon/vivillon/high_plains/icon.png and b/graphics/pokemon/vivillon/high_plains/icon.png differ diff --git a/graphics/pokemon/vivillon/icon.png b/graphics/pokemon/vivillon/icon.png index b9d27d02ee..1c5015e07a 100644 Binary files a/graphics/pokemon/vivillon/icon.png and b/graphics/pokemon/vivillon/icon.png differ diff --git a/graphics/pokemon/vivillon/jungle/icon.png b/graphics/pokemon/vivillon/jungle/icon.png index e759b4f789..9b2923d543 100644 Binary files a/graphics/pokemon/vivillon/jungle/icon.png and b/graphics/pokemon/vivillon/jungle/icon.png differ diff --git a/graphics/pokemon/vivillon/marine/icon.png b/graphics/pokemon/vivillon/marine/icon.png index 69b2eab4de..b3673e5574 100644 Binary files a/graphics/pokemon/vivillon/marine/icon.png and b/graphics/pokemon/vivillon/marine/icon.png differ diff --git a/graphics/pokemon/vivillon/modern/icon.png b/graphics/pokemon/vivillon/modern/icon.png index dedc1aa19f..a28216c157 100644 Binary files a/graphics/pokemon/vivillon/modern/icon.png and b/graphics/pokemon/vivillon/modern/icon.png differ diff --git a/graphics/pokemon/vivillon/monsoon/icon.png b/graphics/pokemon/vivillon/monsoon/icon.png index 22fcc286d5..277798f860 100644 Binary files a/graphics/pokemon/vivillon/monsoon/icon.png and b/graphics/pokemon/vivillon/monsoon/icon.png differ diff --git a/graphics/pokemon/vivillon/ocean/icon.png b/graphics/pokemon/vivillon/ocean/icon.png index 47609a6b59..764a8cdcee 100644 Binary files a/graphics/pokemon/vivillon/ocean/icon.png and b/graphics/pokemon/vivillon/ocean/icon.png differ diff --git a/graphics/pokemon/vivillon/poke_ball/icon.png b/graphics/pokemon/vivillon/poke_ball/icon.png index 1ca199b96b..7be708eb95 100644 Binary files a/graphics/pokemon/vivillon/poke_ball/icon.png and b/graphics/pokemon/vivillon/poke_ball/icon.png differ diff --git a/graphics/pokemon/vivillon/polar/icon.png b/graphics/pokemon/vivillon/polar/icon.png index e523903873..5fc161cca5 100644 Binary files a/graphics/pokemon/vivillon/polar/icon.png and b/graphics/pokemon/vivillon/polar/icon.png differ diff --git a/graphics/pokemon/vivillon/river/icon.png b/graphics/pokemon/vivillon/river/icon.png index 5cb09d29bd..475ae4e9d9 100644 Binary files a/graphics/pokemon/vivillon/river/icon.png and b/graphics/pokemon/vivillon/river/icon.png differ diff --git a/graphics/pokemon/vivillon/sandstorm/icon.png b/graphics/pokemon/vivillon/sandstorm/icon.png index 40822af866..b428bf6e92 100644 Binary files a/graphics/pokemon/vivillon/sandstorm/icon.png and b/graphics/pokemon/vivillon/sandstorm/icon.png differ diff --git a/graphics/pokemon/vivillon/savanna/icon.png b/graphics/pokemon/vivillon/savanna/icon.png index cc12705dd8..7c58f606e6 100644 Binary files a/graphics/pokemon/vivillon/savanna/icon.png and b/graphics/pokemon/vivillon/savanna/icon.png differ diff --git a/graphics/pokemon/vivillon/sun/icon.png b/graphics/pokemon/vivillon/sun/icon.png index 95d3c84e5b..e14a22faad 100644 Binary files a/graphics/pokemon/vivillon/sun/icon.png and b/graphics/pokemon/vivillon/sun/icon.png differ diff --git a/graphics/pokemon/vivillon/tundra/icon.png b/graphics/pokemon/vivillon/tundra/icon.png index fa937ff7ca..6347455e81 100644 Binary files a/graphics/pokemon/vivillon/tundra/icon.png and b/graphics/pokemon/vivillon/tundra/icon.png differ diff --git a/graphics/pokemon/volbeat/anim_front_gba.png b/graphics/pokemon/volbeat/anim_front_gba.png new file mode 100644 index 0000000000..945ed14005 Binary files /dev/null and b/graphics/pokemon/volbeat/anim_front_gba.png differ diff --git a/graphics/pokemon/volbeat/back_gba.png b/graphics/pokemon/volbeat/back_gba.png new file mode 100644 index 0000000000..217b966ed3 Binary files /dev/null and b/graphics/pokemon/volbeat/back_gba.png differ diff --git a/graphics/pokemon/volbeat/icon_gba.png b/graphics/pokemon/volbeat/icon_gba.png new file mode 100644 index 0000000000..849715d33c Binary files /dev/null and b/graphics/pokemon/volbeat/icon_gba.png differ diff --git a/graphics/pokemon/volbeat/normal_gba.pal b/graphics/pokemon/volbeat/normal_gba.pal new file mode 100644 index 0000000000..8d2cedfa8d --- /dev/null +++ b/graphics/pokemon/volbeat/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +222 222 222 +139 139 148 +74 74 82 +0 0 0 +246 131 115 +230 82 98 +205 57 82 +139 49 74 +255 230 82 +222 189 82 +98 74 49 +164 180 197 +123 139 164 +74 82 106 +255 255 255 diff --git a/graphics/pokemon/volbeat/shiny_gba.pal b/graphics/pokemon/volbeat/shiny_gba.pal new file mode 100644 index 0000000000..106d373cf7 --- /dev/null +++ b/graphics/pokemon/volbeat/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 148 +222 222 222 +139 139 148 +74 74 82 +0 0 0 +123 197 255 +90 172 230 +49 131 197 +74 74 131 +255 230 82 +222 189 82 +98 74 49 +205 139 222 +164 82 189 +65 32 82 +255 255 255 diff --git a/graphics/pokemon/voltorb/anim_front_gba.png b/graphics/pokemon/voltorb/anim_front_gba.png new file mode 100644 index 0000000000..ef550558b8 Binary files /dev/null and b/graphics/pokemon/voltorb/anim_front_gba.png differ diff --git a/graphics/pokemon/voltorb/back_gba.png b/graphics/pokemon/voltorb/back_gba.png new file mode 100644 index 0000000000..c379b4a8bb Binary files /dev/null and b/graphics/pokemon/voltorb/back_gba.png differ diff --git a/graphics/pokemon/voltorb/hisuian/back.png b/graphics/pokemon/voltorb/hisui/back.png similarity index 100% rename from graphics/pokemon/voltorb/hisuian/back.png rename to graphics/pokemon/voltorb/hisui/back.png diff --git a/graphics/pokemon/voltorb/hisuian/front.png b/graphics/pokemon/voltorb/hisui/front.png similarity index 100% rename from graphics/pokemon/voltorb/hisuian/front.png rename to graphics/pokemon/voltorb/hisui/front.png diff --git a/graphics/pokemon/voltorb/hisuian/icon.png b/graphics/pokemon/voltorb/hisui/icon.png similarity index 100% rename from graphics/pokemon/voltorb/hisuian/icon.png rename to graphics/pokemon/voltorb/hisui/icon.png diff --git a/graphics/pokemon/voltorb/hisuian/normal.pal b/graphics/pokemon/voltorb/hisui/normal.pal similarity index 100% rename from graphics/pokemon/voltorb/hisuian/normal.pal rename to graphics/pokemon/voltorb/hisui/normal.pal diff --git a/graphics/pokemon/voltorb/hisuian/overworld.png b/graphics/pokemon/voltorb/hisui/overworld.png similarity index 100% rename from graphics/pokemon/voltorb/hisuian/overworld.png rename to graphics/pokemon/voltorb/hisui/overworld.png diff --git a/graphics/pokemon/voltorb/hisuian/overworld_normal.pal b/graphics/pokemon/voltorb/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/voltorb/hisuian/overworld_normal.pal rename to graphics/pokemon/voltorb/hisui/overworld_normal.pal diff --git a/graphics/pokemon/voltorb/hisuian/overworld_shiny.pal b/graphics/pokemon/voltorb/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/voltorb/hisuian/overworld_shiny.pal rename to graphics/pokemon/voltorb/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/voltorb/hisuian/shiny.pal b/graphics/pokemon/voltorb/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/voltorb/hisuian/shiny.pal rename to graphics/pokemon/voltorb/hisui/shiny.pal diff --git a/graphics/pokemon/voltorb/icon_gba.png b/graphics/pokemon/voltorb/icon_gba.png new file mode 100644 index 0000000000..53d318fdbb Binary files /dev/null and b/graphics/pokemon/voltorb/icon_gba.png differ diff --git a/graphics/pokemon/voltorb/normal_gba.pal b/graphics/pokemon/voltorb/normal_gba.pal new file mode 100644 index 0000000000..64007ece61 --- /dev/null +++ b/graphics/pokemon/voltorb/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 213 213 +180 172 172 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 172 156 +255 82 32 +230 65 0 +213 49 0 +131 16 16 +16 16 16 diff --git a/graphics/pokemon/voltorb/shiny_gba.pal b/graphics/pokemon/voltorb/shiny_gba.pal new file mode 100644 index 0000000000..1ceb68b1b1 --- /dev/null +++ b/graphics/pokemon/voltorb/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 213 213 +180 172 172 +90 82 82 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +255 0 255 +82 106 238 +41 65 197 +0 24 156 +0 0 115 +0 0 74 +16 16 16 diff --git a/graphics/pokemon/vulpix/alolan/back.png b/graphics/pokemon/vulpix/alola/back.png similarity index 100% rename from graphics/pokemon/vulpix/alolan/back.png rename to graphics/pokemon/vulpix/alola/back.png diff --git a/graphics/pokemon/vulpix/alolan/front.png b/graphics/pokemon/vulpix/alola/front.png similarity index 100% rename from graphics/pokemon/vulpix/alolan/front.png rename to graphics/pokemon/vulpix/alola/front.png diff --git a/graphics/pokemon/vulpix/alola/icon.png b/graphics/pokemon/vulpix/alola/icon.png new file mode 100644 index 0000000000..ccf5bbfcc1 Binary files /dev/null and b/graphics/pokemon/vulpix/alola/icon.png differ diff --git a/graphics/pokemon/vulpix/alolan/normal.pal b/graphics/pokemon/vulpix/alola/normal.pal similarity index 100% rename from graphics/pokemon/vulpix/alolan/normal.pal rename to graphics/pokemon/vulpix/alola/normal.pal diff --git a/graphics/pokemon/vulpix/alolan/overworld.png b/graphics/pokemon/vulpix/alola/overworld.png similarity index 100% rename from graphics/pokemon/vulpix/alolan/overworld.png rename to graphics/pokemon/vulpix/alola/overworld.png diff --git a/graphics/pokemon/vulpix/alolan/overworld_normal.pal b/graphics/pokemon/vulpix/alola/overworld_normal.pal similarity index 100% rename from graphics/pokemon/vulpix/alolan/overworld_normal.pal rename to graphics/pokemon/vulpix/alola/overworld_normal.pal diff --git a/graphics/pokemon/vulpix/alolan/overworld_shiny.pal b/graphics/pokemon/vulpix/alola/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/vulpix/alolan/overworld_shiny.pal rename to graphics/pokemon/vulpix/alola/overworld_shiny.pal diff --git a/graphics/pokemon/vulpix/alolan/shiny.pal b/graphics/pokemon/vulpix/alola/shiny.pal similarity index 100% rename from graphics/pokemon/vulpix/alolan/shiny.pal rename to graphics/pokemon/vulpix/alola/shiny.pal diff --git a/graphics/pokemon/vulpix/alolan/icon.png b/graphics/pokemon/vulpix/alolan/icon.png deleted file mode 100644 index f49562751b..0000000000 Binary files a/graphics/pokemon/vulpix/alolan/icon.png and /dev/null differ diff --git a/graphics/pokemon/vulpix/anim_front_gba.png b/graphics/pokemon/vulpix/anim_front_gba.png new file mode 100644 index 0000000000..f48618e69e Binary files /dev/null and b/graphics/pokemon/vulpix/anim_front_gba.png differ diff --git a/graphics/pokemon/vulpix/back_gba.png b/graphics/pokemon/vulpix/back_gba.png new file mode 100644 index 0000000000..49bad4ed6e Binary files /dev/null and b/graphics/pokemon/vulpix/back_gba.png differ diff --git a/graphics/pokemon/vulpix/icon_gba.png b/graphics/pokemon/vulpix/icon_gba.png new file mode 100644 index 0000000000..d998362d1a Binary files /dev/null and b/graphics/pokemon/vulpix/icon_gba.png differ diff --git a/graphics/pokemon/vulpix/normal_gba.pal b/graphics/pokemon/vulpix/normal_gba.pal new file mode 100644 index 0000000000..3fb9878d3c --- /dev/null +++ b/graphics/pokemon/vulpix/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 230 180 +255 222 148 +16 16 16 +238 156 74 +205 123 41 +172 90 8 +255 131 74 +222 106 41 +189 74 0 +148 49 0 +246 189 123 +222 156 90 +197 123 57 +131 57 0 diff --git a/graphics/pokemon/vulpix/shiny_gba.pal b/graphics/pokemon/vulpix/shiny_gba.pal new file mode 100644 index 0000000000..7c52191ab9 --- /dev/null +++ b/graphics/pokemon/vulpix/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 180 +255 255 255 +255 230 180 +255 222 148 +16 16 16 +197 180 41 +156 139 0 +115 98 0 +255 222 41 +222 180 0 +180 139 0 +123 82 0 +255 255 98 +238 246 0 +205 197 0 +90 74 0 diff --git a/graphics/pokemon/wailmer/anim_front_gba.png b/graphics/pokemon/wailmer/anim_front_gba.png new file mode 100644 index 0000000000..f1032d0d15 Binary files /dev/null and b/graphics/pokemon/wailmer/anim_front_gba.png differ diff --git a/graphics/pokemon/wailmer/back_gba.png b/graphics/pokemon/wailmer/back_gba.png new file mode 100644 index 0000000000..9ad9f21ea7 Binary files /dev/null and b/graphics/pokemon/wailmer/back_gba.png differ diff --git a/graphics/pokemon/wailmer/icon_gba.png b/graphics/pokemon/wailmer/icon_gba.png new file mode 100644 index 0000000000..16ba6d4b98 Binary files /dev/null and b/graphics/pokemon/wailmer/icon_gba.png differ diff --git a/graphics/pokemon/wailmer/normal_gba.pal b/graphics/pokemon/wailmer/normal_gba.pal new file mode 100644 index 0000000000..4e56fb42a0 --- /dev/null +++ b/graphics/pokemon/wailmer/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 90 +32 49 74 +49 106 156 +74 131 180 +98 156 205 +255 238 205 +238 213 164 +205 180 131 +0 0 0 +156 139 98 +148 197 238 +57 82 123 +106 98 74 +131 139 156 +180 189 197 +255 255 255 diff --git a/graphics/pokemon/wailmer/shiny_gba.pal b/graphics/pokemon/wailmer/shiny_gba.pal new file mode 100644 index 0000000000..296519dbd4 --- /dev/null +++ b/graphics/pokemon/wailmer/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +131 172 90 +82 41 123 +148 106 189 +180 139 222 +213 172 255 +255 238 205 +238 213 164 +205 180 131 +0 0 0 +156 139 98 +246 205 255 +115 74 156 +106 98 74 +131 139 156 +180 189 197 +255 255 255 diff --git a/graphics/pokemon/wailord/anim_front_gba.png b/graphics/pokemon/wailord/anim_front_gba.png new file mode 100644 index 0000000000..3a9ae255ce Binary files /dev/null and b/graphics/pokemon/wailord/anim_front_gba.png differ diff --git a/graphics/pokemon/wailord/back_gba.png b/graphics/pokemon/wailord/back_gba.png new file mode 100644 index 0000000000..7698ba500d Binary files /dev/null and b/graphics/pokemon/wailord/back_gba.png differ diff --git a/graphics/pokemon/wailord/icon_gba.png b/graphics/pokemon/wailord/icon_gba.png new file mode 100644 index 0000000000..f84a7ea702 Binary files /dev/null and b/graphics/pokemon/wailord/icon_gba.png differ diff --git a/graphics/pokemon/wailord/normal_gba.pal b/graphics/pokemon/wailord/normal_gba.pal new file mode 100644 index 0000000000..55fdf02f6a --- /dev/null +++ b/graphics/pokemon/wailord/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +238 230 255 +213 205 222 +180 172 180 +180 156 172 +131 115 131 +148 172 255 +82 131 255 +49 98 255 +41 82 197 +49 57 90 +123 106 98 +82 74 74 +0 0 0 +180 205 255 +41 82 123 diff --git a/graphics/pokemon/wailord/shiny_gba.pal b/graphics/pokemon/wailord/shiny_gba.pal new file mode 100644 index 0000000000..31a687fb95 --- /dev/null +++ b/graphics/pokemon/wailord/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +238 230 255 +213 205 222 +180 172 180 +180 156 172 +131 115 131 +230 197 255 +213 172 255 +172 131 213 +131 90 172 +82 41 123 +123 106 98 +82 74 74 +0 0 0 +246 222 255 +115 74 156 diff --git a/graphics/pokemon/walrein/anim_front_gba.png b/graphics/pokemon/walrein/anim_front_gba.png new file mode 100644 index 0000000000..b809a6806a Binary files /dev/null and b/graphics/pokemon/walrein/anim_front_gba.png differ diff --git a/graphics/pokemon/walrein/back_gba.png b/graphics/pokemon/walrein/back_gba.png new file mode 100644 index 0000000000..c58df92b0b Binary files /dev/null and b/graphics/pokemon/walrein/back_gba.png differ diff --git a/graphics/pokemon/walrein/icon_gba.png b/graphics/pokemon/walrein/icon_gba.png new file mode 100644 index 0000000000..f98348a540 Binary files /dev/null and b/graphics/pokemon/walrein/icon_gba.png differ diff --git a/graphics/pokemon/walrein/normal_gba.pal b/graphics/pokemon/walrein/normal_gba.pal new file mode 100644 index 0000000000..2b4fb8ad49 --- /dev/null +++ b/graphics/pokemon/walrein/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 115 148 +49 82 123 +57 115 172 +90 139 197 +131 180 230 +164 131 90 +255 197 98 +255 222 131 +255 255 164 +197 49 49 +238 131 131 +123 180 255 +197 205 222 +0 0 0 +222 230 255 +255 255 255 diff --git a/graphics/pokemon/walrein/shiny_gba.pal b/graphics/pokemon/walrein/shiny_gba.pal new file mode 100644 index 0000000000..0d93d3e7d4 --- /dev/null +++ b/graphics/pokemon/walrein/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +98 115 148 +82 74 123 +164 90 189 +197 131 222 +230 180 238 +164 131 90 +255 197 98 +255 222 131 +255 255 164 +197 49 49 +238 131 131 +123 180 255 +197 205 222 +0 0 0 +222 230 255 +255 255 255 diff --git a/graphics/pokemon/wartortle/anim_front_gba.png b/graphics/pokemon/wartortle/anim_front_gba.png new file mode 100644 index 0000000000..8c484dade1 Binary files /dev/null and b/graphics/pokemon/wartortle/anim_front_gba.png differ diff --git a/graphics/pokemon/wartortle/back_gba.png b/graphics/pokemon/wartortle/back_gba.png new file mode 100644 index 0000000000..b7ccefbb50 Binary files /dev/null and b/graphics/pokemon/wartortle/back_gba.png differ diff --git a/graphics/pokemon/wartortle/icon_gba.png b/graphics/pokemon/wartortle/icon_gba.png new file mode 100644 index 0000000000..2cdfca2d92 Binary files /dev/null and b/graphics/pokemon/wartortle/icon_gba.png differ diff --git a/graphics/pokemon/wartortle/normal_gba.pal b/graphics/pokemon/wartortle/normal_gba.pal new file mode 100644 index 0000000000..b497d87b3a --- /dev/null +++ b/graphics/pokemon/wartortle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +255 238 230 +255 255 255 +230 238 230 +197 213 222 +197 49 0 +205 131 32 +148 98 98 +106 74 24 +246 238 139 +222 197 139 +189 139 57 +213 189 255 +172 139 238 +123 106 197 +82 65 123 +16 16 16 diff --git a/graphics/pokemon/wartortle/shiny_gba.pal b/graphics/pokemon/wartortle/shiny_gba.pal new file mode 100644 index 0000000000..9694dfc733 --- /dev/null +++ b/graphics/pokemon/wartortle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +197 238 197 +148 205 156 +197 49 0 +131 148 65 +98 115 32 +65 82 0 +255 222 115 +230 172 90 +189 139 57 +255 238 255 +230 213 255 +180 164 205 +82 65 106 +16 16 16 diff --git a/graphics/pokemon/watchog/overworld.png b/graphics/pokemon/watchog/overworld.png index f2e9ff4733..e9184c7375 100644 Binary files a/graphics/pokemon/watchog/overworld.png and b/graphics/pokemon/watchog/overworld.png differ diff --git a/graphics/pokemon/watchog/overworld_normal.pal b/graphics/pokemon/watchog/overworld_normal.pal index 3e75b9e987..0bc0feda6b 100644 --- a/graphics/pokemon/watchog/overworld_normal.pal +++ b/graphics/pokemon/watchog/overworld_normal.pal @@ -2,8 +2,8 @@ JASC-PAL 0100 16 152 208 160 -90 41 57 -115 49 65 +88 40 56 +112 48 64 0 0 0 148 57 57 47 46 47 @@ -11,7 +11,7 @@ JASC-PAL 218 85 79 230 222 210 212 157 60 -16 16 16 +208 184 144 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/watchog/overworld_shiny.pal b/graphics/pokemon/watchog/overworld_shiny.pal index 0a5ae605c9..dba33393d8 100644 --- a/graphics/pokemon/watchog/overworld_shiny.pal +++ b/graphics/pokemon/watchog/overworld_shiny.pal @@ -3,15 +3,15 @@ JASC-PAL 16 152 208 160 90 41 57 -112 48 86 +112 40 88 0 0 0 -144 56 96 +160 56 104 47 46 47 -152 152 152 -212 118 77 +125 125 125 +240 72 72 193 223 190 -91 169 85 -16 16 16 +120 232 144 +216 192 128 0 0 0 0 0 0 0 0 0 diff --git a/graphics/pokemon/weedle/anim_front_gba.png b/graphics/pokemon/weedle/anim_front_gba.png new file mode 100644 index 0000000000..2334ea6004 Binary files /dev/null and b/graphics/pokemon/weedle/anim_front_gba.png differ diff --git a/graphics/pokemon/weedle/back_gba.png b/graphics/pokemon/weedle/back_gba.png new file mode 100644 index 0000000000..3180bf513b Binary files /dev/null and b/graphics/pokemon/weedle/back_gba.png differ diff --git a/graphics/pokemon/weedle/icon_gba.png b/graphics/pokemon/weedle/icon_gba.png new file mode 100644 index 0000000000..3a36001c68 Binary files /dev/null and b/graphics/pokemon/weedle/icon_gba.png differ diff --git a/graphics/pokemon/weedle/normal_gba.pal b/graphics/pokemon/weedle/normal_gba.pal new file mode 100644 index 0000000000..da76f37946 --- /dev/null +++ b/graphics/pokemon/weedle/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 205 205 +131 131 148 +255 230 123 +238 172 65 +205 115 16 +139 41 16 +255 230 123 +230 106 49 +205 41 0 +139 41 16 +255 238 180 +205 156 90 +255 0 255 +24 24 24 diff --git a/graphics/pokemon/weedle/shiny_gba.pal b/graphics/pokemon/weedle/shiny_gba.pal new file mode 100644 index 0000000000..ea331921ed --- /dev/null +++ b/graphics/pokemon/weedle/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +205 205 205 +131 131 148 +255 255 106 +255 238 65 +238 180 24 +139 41 16 +255 230 123 +222 172 205 +172 123 156 +115 65 98 +255 238 180 +205 156 90 +255 0 255 +24 24 24 diff --git a/graphics/pokemon/weepinbell/anim_front_gba.png b/graphics/pokemon/weepinbell/anim_front_gba.png new file mode 100644 index 0000000000..4574d1c5d0 Binary files /dev/null and b/graphics/pokemon/weepinbell/anim_front_gba.png differ diff --git a/graphics/pokemon/weepinbell/back_gba.png b/graphics/pokemon/weepinbell/back_gba.png new file mode 100644 index 0000000000..aad38d1dfc Binary files /dev/null and b/graphics/pokemon/weepinbell/back_gba.png differ diff --git a/graphics/pokemon/weepinbell/icon_gba.png b/graphics/pokemon/weepinbell/icon_gba.png new file mode 100644 index 0000000000..eda2fd29a3 Binary files /dev/null and b/graphics/pokemon/weepinbell/icon_gba.png differ diff --git a/graphics/pokemon/weepinbell/normal_gba.pal b/graphics/pokemon/weepinbell/normal_gba.pal new file mode 100644 index 0000000000..162f840848 --- /dev/null +++ b/graphics/pokemon/weepinbell/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 246 +255 255 255 +180 131 41 +255 164 115 +238 115 65 +189 65 16 +255 230 156 +255 213 106 +238 180 0 +189 255 115 +156 213 74 +115 172 49 +82 98 41 +172 123 41 +115 82 16 +16 16 16 diff --git a/graphics/pokemon/weepinbell/shiny_gba.pal b/graphics/pokemon/weepinbell/shiny_gba.pal new file mode 100644 index 0000000000..2c7c777e6e --- /dev/null +++ b/graphics/pokemon/weepinbell/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +246 246 246 +255 255 255 +106 139 16 +197 172 180 +156 131 139 +115 90 98 +255 255 115 +222 230 74 +180 189 32 +246 255 123 +205 238 82 +164 197 41 +74 106 0 +172 123 41 +115 82 16 +16 16 16 diff --git a/graphics/pokemon/weezing/anim_front_gba.png b/graphics/pokemon/weezing/anim_front_gba.png new file mode 100644 index 0000000000..c4d684163b Binary files /dev/null and b/graphics/pokemon/weezing/anim_front_gba.png differ diff --git a/graphics/pokemon/weezing/back_gba.png b/graphics/pokemon/weezing/back_gba.png new file mode 100644 index 0000000000..3d38832111 Binary files /dev/null and b/graphics/pokemon/weezing/back_gba.png differ diff --git a/graphics/pokemon/weezing/galarian/back.png b/graphics/pokemon/weezing/galar/back.png similarity index 100% rename from graphics/pokemon/weezing/galarian/back.png rename to graphics/pokemon/weezing/galar/back.png diff --git a/graphics/pokemon/weezing/galarian/front.png b/graphics/pokemon/weezing/galar/front.png similarity index 100% rename from graphics/pokemon/weezing/galarian/front.png rename to graphics/pokemon/weezing/galar/front.png diff --git a/graphics/pokemon/weezing/galarian/icon.png b/graphics/pokemon/weezing/galar/icon.png similarity index 100% rename from graphics/pokemon/weezing/galarian/icon.png rename to graphics/pokemon/weezing/galar/icon.png diff --git a/graphics/pokemon/weezing/galarian/normal.pal b/graphics/pokemon/weezing/galar/normal.pal similarity index 100% rename from graphics/pokemon/weezing/galarian/normal.pal rename to graphics/pokemon/weezing/galar/normal.pal diff --git a/graphics/pokemon/weezing/galarian/overworld.png b/graphics/pokemon/weezing/galar/overworld.png similarity index 100% rename from graphics/pokemon/weezing/galarian/overworld.png rename to graphics/pokemon/weezing/galar/overworld.png diff --git a/graphics/pokemon/weezing/galarian/overworld_normal.pal b/graphics/pokemon/weezing/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/weezing/galarian/overworld_normal.pal rename to graphics/pokemon/weezing/galar/overworld_normal.pal diff --git a/graphics/pokemon/weezing/galarian/overworld_shiny.pal b/graphics/pokemon/weezing/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/weezing/galarian/overworld_shiny.pal rename to graphics/pokemon/weezing/galar/overworld_shiny.pal diff --git a/graphics/pokemon/weezing/galarian/shiny.pal b/graphics/pokemon/weezing/galar/shiny.pal similarity index 100% rename from graphics/pokemon/weezing/galarian/shiny.pal rename to graphics/pokemon/weezing/galar/shiny.pal diff --git a/graphics/pokemon/weezing/icon_gba.png b/graphics/pokemon/weezing/icon_gba.png new file mode 100644 index 0000000000..4ef2404a9a Binary files /dev/null and b/graphics/pokemon/weezing/icon_gba.png differ diff --git a/graphics/pokemon/weezing/normal_gba.pal b/graphics/pokemon/weezing/normal_gba.pal new file mode 100644 index 0000000000..2d84699105 --- /dev/null +++ b/graphics/pokemon/weezing/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +255 0 255 +213 205 106 +222 98 32 +164 32 0 +238 213 106 +213 197 74 +197 180 41 +238 197 197 +213 164 172 +180 106 139 +139 65 98 +106 32 65 +16 16 16 diff --git a/graphics/pokemon/weezing/shiny_gba.pal b/graphics/pokemon/weezing/shiny_gba.pal new file mode 100644 index 0000000000..1f0b9347c3 --- /dev/null +++ b/graphics/pokemon/weezing/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 205 +255 255 255 +222 222 222 +255 0 255 +213 205 106 +222 98 32 +164 32 0 +213 139 197 +180 106 164 +139 65 123 +189 230 230 +148 189 189 +106 148 148 +41 82 82 +8 49 49 +16 16 16 diff --git a/graphics/pokemon/whimsicott/overworld.png b/graphics/pokemon/whimsicott/overworld.png index 62057ff6f8..ed1c4db2cb 100644 Binary files a/graphics/pokemon/whimsicott/overworld.png and b/graphics/pokemon/whimsicott/overworld.png differ diff --git a/graphics/pokemon/whimsicott/overworld_normal.pal b/graphics/pokemon/whimsicott/overworld_normal.pal index c9e2ef3b00..8e9638c301 100644 --- a/graphics/pokemon/whimsicott/overworld_normal.pal +++ b/graphics/pokemon/whimsicott/overworld_normal.pal @@ -3,17 +3,17 @@ JASC-PAL 16 152 208 160 168 151 83 -106 84 64 +148 106 65 226 218 202 -41 66 22 -194 178 137 +82 57 41 194 178 137 +106 90 65 12 12 12 41 66 22 66 119 65 237 237 247 -106 84 64 -226 218 202 -0 0 0 -0 0 0 -0 0 0 +70 47 35 +201 189 165 +115 82 65 +230 131 0 +194 114 2 diff --git a/graphics/pokemon/whimsicott/overworld_shiny.pal b/graphics/pokemon/whimsicott/overworld_shiny.pal index 1e09d1a78e..ad2e0b4543 100644 --- a/graphics/pokemon/whimsicott/overworld_shiny.pal +++ b/graphics/pokemon/whimsicott/overworld_shiny.pal @@ -2,18 +2,18 @@ JASC-PAL 0100 16 152 208 160 -110 94 94 -105 89 68 +152 152 128 +112 96 88 248 240 232 56 50 50 192 192 184 -194 178 137 +120 104 104 9 9 9 -35 86 194 -107 154 170 +40 97 130 +63 151 209 237 237 247 -82 57 41 +56 45 39 230 222 205 -0 0 0 -0 0 0 -0 0 0 +80 64 64 +232 168 0 +176 104 16 diff --git a/graphics/pokemon/whiscash/anim_front_gba.png b/graphics/pokemon/whiscash/anim_front_gba.png new file mode 100644 index 0000000000..c6f1b3bcf2 Binary files /dev/null and b/graphics/pokemon/whiscash/anim_front_gba.png differ diff --git a/graphics/pokemon/whiscash/back_gba.png b/graphics/pokemon/whiscash/back_gba.png new file mode 100644 index 0000000000..6aad1817da Binary files /dev/null and b/graphics/pokemon/whiscash/back_gba.png differ diff --git a/graphics/pokemon/whiscash/icon_gba.png b/graphics/pokemon/whiscash/icon_gba.png new file mode 100644 index 0000000000..dcd79a540c Binary files /dev/null and b/graphics/pokemon/whiscash/icon_gba.png differ diff --git a/graphics/pokemon/whiscash/normal_gba.pal b/graphics/pokemon/whiscash/normal_gba.pal new file mode 100644 index 0000000000..c6b70659b7 --- /dev/null +++ b/graphics/pokemon/whiscash/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 156 90 +0 0 0 +82 98 148 +98 115 164 +115 139 180 +148 180 222 +222 164 57 +255 213 74 +172 238 255 +57 74 115 +139 106 49 +131 148 172 +131 197 230 +106 189 222 +131 222 255 +255 255 255 diff --git a/graphics/pokemon/whiscash/shiny_gba.pal b/graphics/pokemon/whiscash/shiny_gba.pal new file mode 100644 index 0000000000..12554c5689 --- /dev/null +++ b/graphics/pokemon/whiscash/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +164 156 90 +0 0 0 +57 65 82 +74 82 98 +115 106 123 +148 139 156 +222 98 49 +255 123 82 +172 238 255 +57 74 115 +180 65 49 +131 148 172 +131 197 230 +106 189 222 +131 222 255 +255 255 255 diff --git a/graphics/pokemon/whismur/anim_front_gba.png b/graphics/pokemon/whismur/anim_front_gba.png new file mode 100644 index 0000000000..0770894e44 Binary files /dev/null and b/graphics/pokemon/whismur/anim_front_gba.png differ diff --git a/graphics/pokemon/whismur/back_gba.png b/graphics/pokemon/whismur/back_gba.png new file mode 100644 index 0000000000..f13819f157 Binary files /dev/null and b/graphics/pokemon/whismur/back_gba.png differ diff --git a/graphics/pokemon/whismur/icon_gba.png b/graphics/pokemon/whismur/icon_gba.png new file mode 100644 index 0000000000..573dfa5319 Binary files /dev/null and b/graphics/pokemon/whismur/icon_gba.png differ diff --git a/graphics/pokemon/whismur/normal_gba.pal b/graphics/pokemon/whismur/normal_gba.pal new file mode 100644 index 0000000000..e57bb7b391 --- /dev/null +++ b/graphics/pokemon/whismur/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 164 238 +238 148 213 +222 106 189 +189 82 139 +139 57 98 +115 8 24 +255 213 123 +246 172 57 +213 156 0 +164 115 24 +213 213 222 +156 156 164 +90 90 106 +0 0 0 diff --git a/graphics/pokemon/whismur/shiny_gba.pal b/graphics/pokemon/whismur/shiny_gba.pal new file mode 100644 index 0000000000..395867cadd --- /dev/null +++ b/graphics/pokemon/whismur/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +255 205 205 +255 172 197 +238 123 156 +222 90 115 +189 49 65 +115 8 24 +205 255 172 +148 230 148 +115 189 115 +65 139 90 +213 213 222 +156 156 164 +90 90 106 +41 41 57 diff --git a/graphics/pokemon/wigglytuff/anim_front_gba.png b/graphics/pokemon/wigglytuff/anim_front_gba.png new file mode 100644 index 0000000000..66af6ce778 Binary files /dev/null and b/graphics/pokemon/wigglytuff/anim_front_gba.png differ diff --git a/graphics/pokemon/wigglytuff/back_gba.png b/graphics/pokemon/wigglytuff/back_gba.png new file mode 100644 index 0000000000..c57f8681fe Binary files /dev/null and b/graphics/pokemon/wigglytuff/back_gba.png differ diff --git a/graphics/pokemon/wigglytuff/icon_gba.png b/graphics/pokemon/wigglytuff/icon_gba.png new file mode 100644 index 0000000000..adb921150b Binary files /dev/null and b/graphics/pokemon/wigglytuff/icon_gba.png differ diff --git a/graphics/pokemon/wigglytuff/normal_gba.pal b/graphics/pokemon/wigglytuff/normal_gba.pal new file mode 100644 index 0000000000..b0b85cc792 --- /dev/null +++ b/graphics/pokemon/wigglytuff/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +148 222 205 +115 189 172 +82 156 139 +32 90 98 +156 106 32 +115 65 24 +230 230 230 +205 205 205 +16 16 16 +255 238 197 +255 197 172 +255 156 131 +255 90 74 +156 57 0 diff --git a/graphics/pokemon/wigglytuff/shiny_gba.pal b/graphics/pokemon/wigglytuff/shiny_gba.pal new file mode 100644 index 0000000000..f3d0192a29 --- /dev/null +++ b/graphics/pokemon/wigglytuff/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +222 255 164 +180 238 123 +139 197 82 +82 131 16 +156 106 32 +115 65 24 +230 230 230 +205 205 205 +16 16 16 +246 238 246 +246 197 246 +205 156 205 +164 115 164 +74 24 74 diff --git a/graphics/pokemon/wimpod/icon.png b/graphics/pokemon/wimpod/icon.png index 77a8048895..732b7b9ac0 100644 Binary files a/graphics/pokemon/wimpod/icon.png and b/graphics/pokemon/wimpod/icon.png differ diff --git a/graphics/pokemon/wingull/anim_front_gba.png b/graphics/pokemon/wingull/anim_front_gba.png new file mode 100644 index 0000000000..69ef9d7d04 Binary files /dev/null and b/graphics/pokemon/wingull/anim_front_gba.png differ diff --git a/graphics/pokemon/wingull/back_gba.png b/graphics/pokemon/wingull/back_gba.png new file mode 100644 index 0000000000..3ea8c64740 Binary files /dev/null and b/graphics/pokemon/wingull/back_gba.png differ diff --git a/graphics/pokemon/wingull/icon_gba.png b/graphics/pokemon/wingull/icon_gba.png new file mode 100644 index 0000000000..524ecda23d Binary files /dev/null and b/graphics/pokemon/wingull/icon_gba.png differ diff --git a/graphics/pokemon/wingull/normal_gba.pal b/graphics/pokemon/wingull/normal_gba.pal new file mode 100644 index 0000000000..ce58200615 --- /dev/null +++ b/graphics/pokemon/wingull/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 255 +57 57 57 +139 139 139 +222 213 255 +197 189 230 +246 238 255 +49 82 139 +222 131 0 +255 172 49 +139 90 16 +82 115 230 +115 164 255 +98 98 98 +0 0 0 +0 0 0 +255 205 106 diff --git a/graphics/pokemon/wingull/shiny_gba.pal b/graphics/pokemon/wingull/shiny_gba.pal new file mode 100644 index 0000000000..59785b7cb7 --- /dev/null +++ b/graphics/pokemon/wingull/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 205 255 +57 57 57 +131 156 164 +222 197 246 +205 172 230 +246 238 255 +41 106 41 +222 131 0 +255 172 49 +139 90 16 +90 156 57 +123 205 90 +98 98 98 +0 0 0 +0 0 0 +255 205 106 diff --git a/graphics/pokemon/wishiwashi/icon.png b/graphics/pokemon/wishiwashi/icon.png index 0b9df6baf4..2e2778650f 100644 Binary files a/graphics/pokemon/wishiwashi/icon.png and b/graphics/pokemon/wishiwashi/icon.png differ diff --git a/graphics/pokemon/wishiwashi/school/icon.png b/graphics/pokemon/wishiwashi/school/icon.png index 2cf411fd1b..a756cc5551 100644 Binary files a/graphics/pokemon/wishiwashi/school/icon.png and b/graphics/pokemon/wishiwashi/school/icon.png differ diff --git a/graphics/pokemon/wobbuffet/anim_front_gba.png b/graphics/pokemon/wobbuffet/anim_front_gba.png new file mode 100644 index 0000000000..f26a0406de Binary files /dev/null and b/graphics/pokemon/wobbuffet/anim_front_gba.png differ diff --git a/graphics/pokemon/wobbuffet/back_gba.png b/graphics/pokemon/wobbuffet/back_gba.png new file mode 100644 index 0000000000..3f22dd4a11 Binary files /dev/null and b/graphics/pokemon/wobbuffet/back_gba.png differ diff --git a/graphics/pokemon/wobbuffet/icon_gba.png b/graphics/pokemon/wobbuffet/icon_gba.png new file mode 100644 index 0000000000..14cddd1843 Binary files /dev/null and b/graphics/pokemon/wobbuffet/icon_gba.png differ diff --git a/graphics/pokemon/wobbuffet/normal_gba.pal b/graphics/pokemon/wobbuffet/normal_gba.pal new file mode 100644 index 0000000000..e83cdc8c2e --- /dev/null +++ b/graphics/pokemon/wobbuffet/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 0 255 +164 16 0 +197 57 0 +222 82 0 +255 139 0 +41 74 82 +32 115 148 +74 156 189 +106 189 222 +156 213 238 +255 0 255 +16 16 16 +82 82 82 +131 131 131 +255 255 255 diff --git a/graphics/pokemon/wobbuffet/shiny_gba.pal b/graphics/pokemon/wobbuffet/shiny_gba.pal new file mode 100644 index 0000000000..0fa0775553 --- /dev/null +++ b/graphics/pokemon/wobbuffet/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +222 222 222 +255 0 255 +164 16 0 +197 57 0 +222 82 0 +255 139 0 +106 57 90 +156 65 139 +205 90 189 +238 123 205 +255 164 213 +255 0 255 +16 16 16 +82 82 82 +131 131 131 +255 255 255 diff --git a/graphics/pokemon/woobat/overworld.png b/graphics/pokemon/woobat/overworld.png index 1d14a5c43d..18bff8d5c3 100644 Binary files a/graphics/pokemon/woobat/overworld.png and b/graphics/pokemon/woobat/overworld.png differ diff --git a/graphics/pokemon/wooper/anim_front_gba.png b/graphics/pokemon/wooper/anim_front_gba.png new file mode 100644 index 0000000000..8d6255f805 Binary files /dev/null and b/graphics/pokemon/wooper/anim_front_gba.png differ diff --git a/graphics/pokemon/wooper/back_gba.png b/graphics/pokemon/wooper/back_gba.png new file mode 100644 index 0000000000..13cb768c1b Binary files /dev/null and b/graphics/pokemon/wooper/back_gba.png differ diff --git a/graphics/pokemon/wooper/icon_gba.png b/graphics/pokemon/wooper/icon_gba.png new file mode 100644 index 0000000000..26e617d33a Binary files /dev/null and b/graphics/pokemon/wooper/icon_gba.png differ diff --git a/graphics/pokemon/wooper/normal_gba.pal b/graphics/pokemon/wooper/normal_gba.pal new file mode 100644 index 0000000000..f364d6c711 --- /dev/null +++ b/graphics/pokemon/wooper/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +148 131 164 +16 41 115 +49 74 131 +74 156 213 +139 197 246 +197 230 230 +238 172 255 +197 123 197 +148 98 164 +98 57 106 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/wooper/wooper_paldean/back.png b/graphics/pokemon/wooper/paldea/back.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/back.png rename to graphics/pokemon/wooper/paldea/back.png diff --git a/graphics/pokemon/wooper/wooper_paldean/front.png b/graphics/pokemon/wooper/paldea/front.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/front.png rename to graphics/pokemon/wooper/paldea/front.png diff --git a/graphics/pokemon/wooper/wooper_paldean/icon.png b/graphics/pokemon/wooper/paldea/icon.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/icon.png rename to graphics/pokemon/wooper/paldea/icon.png diff --git a/graphics/pokemon/wooper/wooper_paldean/normal.pal b/graphics/pokemon/wooper/paldea/normal.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/normal.pal rename to graphics/pokemon/wooper/paldea/normal.pal diff --git a/graphics/pokemon/wooper/wooper_paldean/overworld.png b/graphics/pokemon/wooper/paldea/overworld.png similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/overworld.png rename to graphics/pokemon/wooper/paldea/overworld.png diff --git a/graphics/pokemon/wooper/wooper_paldean/overworld_normal.pal b/graphics/pokemon/wooper/paldea/overworld_normal.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/overworld_normal.pal rename to graphics/pokemon/wooper/paldea/overworld_normal.pal diff --git a/graphics/pokemon/wooper/wooper_paldean/overworld_shiny.pal b/graphics/pokemon/wooper/paldea/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/overworld_shiny.pal rename to graphics/pokemon/wooper/paldea/overworld_shiny.pal diff --git a/graphics/pokemon/wooper/wooper_paldean/shiny.pal b/graphics/pokemon/wooper/paldea/shiny.pal similarity index 100% rename from graphics/pokemon/wooper/wooper_paldean/shiny.pal rename to graphics/pokemon/wooper/paldea/shiny.pal diff --git a/graphics/pokemon/wooper/shiny_gba.pal b/graphics/pokemon/wooper/shiny_gba.pal new file mode 100644 index 0000000000..cf0a3ce59d --- /dev/null +++ b/graphics/pokemon/wooper/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +180 90 98 +123 57 49 +156 90 90 +213 156 164 +246 197 205 +255 230 213 +255 213 172 +230 148 98 +197 98 82 +131 74 74 +255 0 255 +255 0 255 +255 0 255 +16 16 16 +255 255 255 diff --git a/graphics/pokemon/wormadam/plant/footprint.png b/graphics/pokemon/wormadam/footprint.png similarity index 100% rename from graphics/pokemon/wormadam/plant/footprint.png rename to graphics/pokemon/wormadam/footprint.png diff --git a/graphics/pokemon/wormadam/sandy_cloak/anim_front.png b/graphics/pokemon/wormadam/sandy/anim_front.png similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/anim_front.png rename to graphics/pokemon/wormadam/sandy/anim_front.png diff --git a/graphics/pokemon/wormadam/sandy_cloak/back.png b/graphics/pokemon/wormadam/sandy/back.png similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/back.png rename to graphics/pokemon/wormadam/sandy/back.png diff --git a/graphics/pokemon/wormadam/sandy_cloak/icon.png b/graphics/pokemon/wormadam/sandy/icon.png similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/icon.png rename to graphics/pokemon/wormadam/sandy/icon.png diff --git a/graphics/pokemon/wormadam/sandy_cloak/normal.pal b/graphics/pokemon/wormadam/sandy/normal.pal similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/normal.pal rename to graphics/pokemon/wormadam/sandy/normal.pal diff --git a/graphics/pokemon/wormadam/sandy_cloak/overworld.png b/graphics/pokemon/wormadam/sandy/overworld.png similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/overworld.png rename to graphics/pokemon/wormadam/sandy/overworld.png diff --git a/graphics/pokemon/wormadam/sandy_cloak/overworld_normal.pal b/graphics/pokemon/wormadam/sandy/overworld_normal.pal similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/overworld_normal.pal rename to graphics/pokemon/wormadam/sandy/overworld_normal.pal diff --git a/graphics/pokemon/wormadam/sandy_cloak/overworld_shiny.pal b/graphics/pokemon/wormadam/sandy/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/overworld_shiny.pal rename to graphics/pokemon/wormadam/sandy/overworld_shiny.pal diff --git a/graphics/pokemon/wormadam/sandy_cloak/shiny.pal b/graphics/pokemon/wormadam/sandy/shiny.pal similarity index 100% rename from graphics/pokemon/wormadam/sandy_cloak/shiny.pal rename to graphics/pokemon/wormadam/sandy/shiny.pal diff --git a/graphics/pokemon/wormadam/trash_cloak/anim_front.png b/graphics/pokemon/wormadam/trash/anim_front.png similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/anim_front.png rename to graphics/pokemon/wormadam/trash/anim_front.png diff --git a/graphics/pokemon/wormadam/trash_cloak/back.png b/graphics/pokemon/wormadam/trash/back.png similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/back.png rename to graphics/pokemon/wormadam/trash/back.png diff --git a/graphics/pokemon/wormadam/trash_cloak/icon.png b/graphics/pokemon/wormadam/trash/icon.png similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/icon.png rename to graphics/pokemon/wormadam/trash/icon.png diff --git a/graphics/pokemon/wormadam/trash_cloak/normal.pal b/graphics/pokemon/wormadam/trash/normal.pal similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/normal.pal rename to graphics/pokemon/wormadam/trash/normal.pal diff --git a/graphics/pokemon/wormadam/trash_cloak/overworld.png b/graphics/pokemon/wormadam/trash/overworld.png similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/overworld.png rename to graphics/pokemon/wormadam/trash/overworld.png diff --git a/graphics/pokemon/wormadam/trash_cloak/overworld_normal.pal b/graphics/pokemon/wormadam/trash/overworld_normal.pal similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/overworld_normal.pal rename to graphics/pokemon/wormadam/trash/overworld_normal.pal diff --git a/graphics/pokemon/wormadam/trash_cloak/overworld_shiny.pal b/graphics/pokemon/wormadam/trash/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/overworld_shiny.pal rename to graphics/pokemon/wormadam/trash/overworld_shiny.pal diff --git a/graphics/pokemon/wormadam/trash_cloak/shiny.pal b/graphics/pokemon/wormadam/trash/shiny.pal similarity index 100% rename from graphics/pokemon/wormadam/trash_cloak/shiny.pal rename to graphics/pokemon/wormadam/trash/shiny.pal diff --git a/graphics/pokemon/wurmple/anim_front_gba.png b/graphics/pokemon/wurmple/anim_front_gba.png new file mode 100644 index 0000000000..c79458bffc Binary files /dev/null and b/graphics/pokemon/wurmple/anim_front_gba.png differ diff --git a/graphics/pokemon/wurmple/back_gba.png b/graphics/pokemon/wurmple/back_gba.png new file mode 100644 index 0000000000..d6ef56dcdf Binary files /dev/null and b/graphics/pokemon/wurmple/back_gba.png differ diff --git a/graphics/pokemon/wurmple/icon_gba.png b/graphics/pokemon/wurmple/icon_gba.png new file mode 100644 index 0000000000..52b46b4901 Binary files /dev/null and b/graphics/pokemon/wurmple/icon_gba.png differ diff --git a/graphics/pokemon/wurmple/normal_gba.pal b/graphics/pokemon/wurmple/normal_gba.pal new file mode 100644 index 0000000000..2fe1fd1890 --- /dev/null +++ b/graphics/pokemon/wurmple/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +98 82 82 +180 164 156 +255 255 255 +230 213 238 +205 82 90 +246 123 98 +246 189 139 +230 213 238 +222 213 164 +255 255 213 +148 148 0 +246 246 0 +197 197 90 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/wurmple/shiny_gba.pal b/graphics/pokemon/wurmple/shiny_gba.pal new file mode 100644 index 0000000000..3217ddc57e --- /dev/null +++ b/graphics/pokemon/wurmple/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 197 197 +98 82 82 +180 164 156 +255 255 255 +230 213 238 +164 82 139 +189 131 164 +222 164 197 +230 213 238 +222 213 164 +255 255 213 +148 148 0 +246 246 0 +197 197 90 +0 0 0 +24 24 24 diff --git a/graphics/pokemon/wynaut/anim_front_gba.png b/graphics/pokemon/wynaut/anim_front_gba.png new file mode 100644 index 0000000000..0fe27ffed3 Binary files /dev/null and b/graphics/pokemon/wynaut/anim_front_gba.png differ diff --git a/graphics/pokemon/wynaut/back_gba.png b/graphics/pokemon/wynaut/back_gba.png new file mode 100644 index 0000000000..388b1582ba Binary files /dev/null and b/graphics/pokemon/wynaut/back_gba.png differ diff --git a/graphics/pokemon/wynaut/icon_gba.png b/graphics/pokemon/wynaut/icon_gba.png new file mode 100644 index 0000000000..cca26e1bb4 Binary files /dev/null and b/graphics/pokemon/wynaut/icon_gba.png differ diff --git a/graphics/pokemon/wynaut/normal_gba.pal b/graphics/pokemon/wynaut/normal_gba.pal new file mode 100644 index 0000000000..c370466343 --- /dev/null +++ b/graphics/pokemon/wynaut/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 148 98 +41 74 82 +74 156 189 +106 189 222 +156 213 238 +164 49 65 +222 90 98 +65 57 57 +131 123 123 +106 98 98 +205 205 197 +255 255 255 +57 123 164 +123 41 57 +0 0 0 +205 246 164 diff --git a/graphics/pokemon/wynaut/shiny_gba.pal b/graphics/pokemon/wynaut/shiny_gba.pal new file mode 100644 index 0000000000..7a5032aa69 --- /dev/null +++ b/graphics/pokemon/wynaut/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +197 148 98 +106 57 90 +197 82 189 +238 123 205 +255 164 213 +164 49 65 +222 90 98 +65 57 57 +131 123 123 +106 98 98 +205 205 197 +255 255 255 +180 115 90 +123 41 57 +0 0 0 +205 246 164 diff --git a/graphics/pokemon/xatu/anim_front_gba.png b/graphics/pokemon/xatu/anim_front_gba.png new file mode 100644 index 0000000000..d4c3c19707 Binary files /dev/null and b/graphics/pokemon/xatu/anim_front_gba.png differ diff --git a/graphics/pokemon/xatu/back_gba.png b/graphics/pokemon/xatu/back_gba.png new file mode 100644 index 0000000000..b66774b137 Binary files /dev/null and b/graphics/pokemon/xatu/back_gba.png differ diff --git a/graphics/pokemon/xatu/icon_gba.png b/graphics/pokemon/xatu/icon_gba.png new file mode 100644 index 0000000000..a0e6d6fc99 Binary files /dev/null and b/graphics/pokemon/xatu/icon_gba.png differ diff --git a/graphics/pokemon/xatu/normal_gba.pal b/graphics/pokemon/xatu/normal_gba.pal new file mode 100644 index 0000000000..b6ab276047 --- /dev/null +++ b/graphics/pokemon/xatu/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +156 230 74 +82 205 74 +74 148 65 +49 98 41 +255 222 65 +189 148 32 +139 90 0 +238 57 0 +180 49 0 +131 41 0 +205 205 205 +148 148 148 +82 82 82 +41 41 41 diff --git a/graphics/pokemon/xatu/shiny_gba.pal b/graphics/pokemon/xatu/shiny_gba.pal new file mode 100644 index 0000000000..2dcf957e99 --- /dev/null +++ b/graphics/pokemon/xatu/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +255 255 255 +189 255 65 +164 230 49 +115 189 8 +65 106 0 +255 222 65 +189 148 32 +139 90 0 +255 164 57 +213 106 16 +115 74 0 +205 205 205 +148 148 148 +82 82 82 +41 41 41 diff --git a/graphics/pokemon/xerneas/icon.png b/graphics/pokemon/xerneas/icon.png index 6d0b56b3b6..8e2a8cc8ff 100644 Binary files a/graphics/pokemon/xerneas/icon.png and b/graphics/pokemon/xerneas/icon.png differ diff --git a/graphics/pokemon/xurkitree/icon.png b/graphics/pokemon/xurkitree/icon.png index 26cce62f0a..4c044631de 100644 Binary files a/graphics/pokemon/xurkitree/icon.png and b/graphics/pokemon/xurkitree/icon.png differ diff --git a/graphics/pokemon/yamask/galarian/back.png b/graphics/pokemon/yamask/galar/back.png similarity index 100% rename from graphics/pokemon/yamask/galarian/back.png rename to graphics/pokemon/yamask/galar/back.png diff --git a/graphics/pokemon/yamask/galarian/front.png b/graphics/pokemon/yamask/galar/front.png similarity index 100% rename from graphics/pokemon/yamask/galarian/front.png rename to graphics/pokemon/yamask/galar/front.png diff --git a/graphics/pokemon/yamask/galarian/icon.png b/graphics/pokemon/yamask/galar/icon.png similarity index 100% rename from graphics/pokemon/yamask/galarian/icon.png rename to graphics/pokemon/yamask/galar/icon.png diff --git a/graphics/pokemon/yamask/galarian/normal.pal b/graphics/pokemon/yamask/galar/normal.pal similarity index 100% rename from graphics/pokemon/yamask/galarian/normal.pal rename to graphics/pokemon/yamask/galar/normal.pal diff --git a/graphics/pokemon/yamask/galarian/overworld.png b/graphics/pokemon/yamask/galar/overworld.png similarity index 100% rename from graphics/pokemon/yamask/galarian/overworld.png rename to graphics/pokemon/yamask/galar/overworld.png diff --git a/graphics/pokemon/yamask/galarian/overworld_normal.pal b/graphics/pokemon/yamask/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/yamask/galarian/overworld_normal.pal rename to graphics/pokemon/yamask/galar/overworld_normal.pal diff --git a/graphics/pokemon/yamask/galarian/overworld_shiny.pal b/graphics/pokemon/yamask/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/yamask/galarian/overworld_shiny.pal rename to graphics/pokemon/yamask/galar/overworld_shiny.pal diff --git a/graphics/pokemon/yamask/galarian/shiny.pal b/graphics/pokemon/yamask/galar/shiny.pal similarity index 100% rename from graphics/pokemon/yamask/galarian/shiny.pal rename to graphics/pokemon/yamask/galar/shiny.pal diff --git a/graphics/pokemon/yanma/anim_front_gba.png b/graphics/pokemon/yanma/anim_front_gba.png new file mode 100644 index 0000000000..24721e872e Binary files /dev/null and b/graphics/pokemon/yanma/anim_front_gba.png differ diff --git a/graphics/pokemon/yanma/back_gba.png b/graphics/pokemon/yanma/back_gba.png new file mode 100644 index 0000000000..980bc86f2b Binary files /dev/null and b/graphics/pokemon/yanma/back_gba.png differ diff --git a/graphics/pokemon/yanma/icon_gba.png b/graphics/pokemon/yanma/icon_gba.png new file mode 100644 index 0000000000..336841a00c Binary files /dev/null and b/graphics/pokemon/yanma/icon_gba.png differ diff --git a/graphics/pokemon/yanma/normal_gba.pal b/graphics/pokemon/yanma/normal_gba.pal new file mode 100644 index 0000000000..a53cd19e39 --- /dev/null +++ b/graphics/pokemon/yanma/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +148 49 0 +255 0 255 +213 65 0 +255 123 65 +255 222 148 +16 16 16 +49 106 0 +82 180 32 +131 238 32 +74 74 82 +255 0 255 +115 131 139 +164 180 213 +230 255 255 +255 0 255 diff --git a/graphics/pokemon/yanma/shiny_gba.pal b/graphics/pokemon/yanma/shiny_gba.pal new file mode 100644 index 0000000000..08b7c0cce5 --- /dev/null +++ b/graphics/pokemon/yanma/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +205 205 172 +0 65 148 +255 0 255 +41 115 230 +74 180 255 +115 230 255 +16 16 16 +49 106 0 +82 180 32 +131 238 32 +74 74 82 +255 0 255 +115 131 139 +164 180 213 +230 255 255 +255 0 255 diff --git a/graphics/pokemon/yungoos/icon.png b/graphics/pokemon/yungoos/icon.png index 657e0b6764..3001e64f11 100644 Binary files a/graphics/pokemon/yungoos/icon.png and b/graphics/pokemon/yungoos/icon.png differ diff --git a/graphics/pokemon/zangoose/anim_front_gba.png b/graphics/pokemon/zangoose/anim_front_gba.png new file mode 100644 index 0000000000..24bb548dd2 Binary files /dev/null and b/graphics/pokemon/zangoose/anim_front_gba.png differ diff --git a/graphics/pokemon/zangoose/back_gba.png b/graphics/pokemon/zangoose/back_gba.png new file mode 100644 index 0000000000..88357e1823 Binary files /dev/null and b/graphics/pokemon/zangoose/back_gba.png differ diff --git a/graphics/pokemon/zangoose/icon_gba.png b/graphics/pokemon/zangoose/icon_gba.png new file mode 100644 index 0000000000..e0485b0b0f Binary files /dev/null and b/graphics/pokemon/zangoose/icon_gba.png differ diff --git a/graphics/pokemon/zangoose/normal_gba.pal b/graphics/pokemon/zangoose/normal_gba.pal new file mode 100644 index 0000000000..eb0ef7068a --- /dev/null +++ b/graphics/pokemon/zangoose/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +230 222 230 +189 172 180 +148 131 139 +106 90 98 +255 98 106 +205 90 106 +139 65 82 +255 164 148 +213 139 230 +123 106 98 +213 197 205 +0 0 0 +180 98 205 +123 57 131 diff --git a/graphics/pokemon/zangoose/shiny_gba.pal b/graphics/pokemon/zangoose/shiny_gba.pal new file mode 100644 index 0000000000..82487aa4fd --- /dev/null +++ b/graphics/pokemon/zangoose/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +148 197 197 +255 255 255 +230 222 230 +189 172 180 +148 131 139 +106 90 98 +49 131 197 +74 74 131 +57 57 115 +90 172 230 +255 123 82 +123 106 98 +213 197 205 +0 0 0 +222 98 49 +180 49 32 diff --git a/graphics/pokemon/zapdos/anim_front_gba.png b/graphics/pokemon/zapdos/anim_front_gba.png new file mode 100644 index 0000000000..a27b64e007 Binary files /dev/null and b/graphics/pokemon/zapdos/anim_front_gba.png differ diff --git a/graphics/pokemon/zapdos/back_gba.png b/graphics/pokemon/zapdos/back_gba.png new file mode 100644 index 0000000000..248366dc5d Binary files /dev/null and b/graphics/pokemon/zapdos/back_gba.png differ diff --git a/graphics/pokemon/zapdos/galarian/back.png b/graphics/pokemon/zapdos/galar/back.png similarity index 100% rename from graphics/pokemon/zapdos/galarian/back.png rename to graphics/pokemon/zapdos/galar/back.png diff --git a/graphics/pokemon/zapdos/galarian/front.png b/graphics/pokemon/zapdos/galar/front.png similarity index 100% rename from graphics/pokemon/zapdos/galarian/front.png rename to graphics/pokemon/zapdos/galar/front.png diff --git a/graphics/pokemon/zapdos/galarian/icon.png b/graphics/pokemon/zapdos/galar/icon.png similarity index 100% rename from graphics/pokemon/zapdos/galarian/icon.png rename to graphics/pokemon/zapdos/galar/icon.png diff --git a/graphics/pokemon/zapdos/galarian/normal.pal b/graphics/pokemon/zapdos/galar/normal.pal similarity index 100% rename from graphics/pokemon/zapdos/galarian/normal.pal rename to graphics/pokemon/zapdos/galar/normal.pal diff --git a/graphics/pokemon/zapdos/galarian/overworld.png b/graphics/pokemon/zapdos/galar/overworld.png similarity index 100% rename from graphics/pokemon/zapdos/galarian/overworld.png rename to graphics/pokemon/zapdos/galar/overworld.png diff --git a/graphics/pokemon/zapdos/galarian/overworld_normal.pal b/graphics/pokemon/zapdos/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/zapdos/galarian/overworld_normal.pal rename to graphics/pokemon/zapdos/galar/overworld_normal.pal diff --git a/graphics/pokemon/zapdos/galarian/overworld_shiny.pal b/graphics/pokemon/zapdos/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/zapdos/galarian/overworld_shiny.pal rename to graphics/pokemon/zapdos/galar/overworld_shiny.pal diff --git a/graphics/pokemon/zapdos/galarian/shiny.pal b/graphics/pokemon/zapdos/galar/shiny.pal similarity index 100% rename from graphics/pokemon/zapdos/galarian/shiny.pal rename to graphics/pokemon/zapdos/galar/shiny.pal diff --git a/graphics/pokemon/zapdos/icon_gba.png b/graphics/pokemon/zapdos/icon_gba.png new file mode 100644 index 0000000000..26fc734275 Binary files /dev/null and b/graphics/pokemon/zapdos/icon_gba.png differ diff --git a/graphics/pokemon/zapdos/normal_gba.pal b/graphics/pokemon/zapdos/normal_gba.pal new file mode 100644 index 0000000000..5980cfed4f --- /dev/null +++ b/graphics/pokemon/zapdos/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 222 +156 156 156 +90 90 90 +16 16 16 +255 0 255 +255 0 255 +255 189 57 +222 131 0 +156 98 41 +255 255 156 +255 238 0 +238 189 0 +197 139 0 +131 82 32 diff --git a/graphics/pokemon/zapdos/shiny_gba.pal b/graphics/pokemon/zapdos/shiny_gba.pal new file mode 100644 index 0000000000..fb7840ebca --- /dev/null +++ b/graphics/pokemon/zapdos/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +213 213 189 +255 255 255 +222 222 222 +156 156 156 +90 90 90 +16 16 16 +255 0 255 +255 0 255 +255 106 65 +213 65 32 +156 57 41 +255 238 32 +255 197 0 +205 148 0 +156 98 0 +115 57 0 diff --git a/graphics/pokemon/zeraora/icon.png b/graphics/pokemon/zeraora/icon.png index b8dadd7ba3..7df134703f 100644 Binary files a/graphics/pokemon/zeraora/icon.png and b/graphics/pokemon/zeraora/icon.png differ diff --git a/graphics/pokemon/zigzagoon/anim_front_gba.png b/graphics/pokemon/zigzagoon/anim_front_gba.png new file mode 100644 index 0000000000..ba726a2660 Binary files /dev/null and b/graphics/pokemon/zigzagoon/anim_front_gba.png differ diff --git a/graphics/pokemon/zigzagoon/back_gba.png b/graphics/pokemon/zigzagoon/back_gba.png new file mode 100644 index 0000000000..cc56c5d677 Binary files /dev/null and b/graphics/pokemon/zigzagoon/back_gba.png differ diff --git a/graphics/pokemon/zigzagoon/galarian/back.png b/graphics/pokemon/zigzagoon/galar/back.png similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/back.png rename to graphics/pokemon/zigzagoon/galar/back.png diff --git a/graphics/pokemon/zigzagoon/galarian/front.png b/graphics/pokemon/zigzagoon/galar/front.png similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/front.png rename to graphics/pokemon/zigzagoon/galar/front.png diff --git a/graphics/pokemon/zigzagoon/galarian/icon.png b/graphics/pokemon/zigzagoon/galar/icon.png similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/icon.png rename to graphics/pokemon/zigzagoon/galar/icon.png diff --git a/graphics/pokemon/zigzagoon/galarian/normal.pal b/graphics/pokemon/zigzagoon/galar/normal.pal similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/normal.pal rename to graphics/pokemon/zigzagoon/galar/normal.pal diff --git a/graphics/pokemon/zigzagoon/galarian/overworld.png b/graphics/pokemon/zigzagoon/galar/overworld.png similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/overworld.png rename to graphics/pokemon/zigzagoon/galar/overworld.png diff --git a/graphics/pokemon/zigzagoon/galarian/overworld_normal.pal b/graphics/pokemon/zigzagoon/galar/overworld_normal.pal similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/overworld_normal.pal rename to graphics/pokemon/zigzagoon/galar/overworld_normal.pal diff --git a/graphics/pokemon/zigzagoon/galarian/overworld_shiny.pal b/graphics/pokemon/zigzagoon/galar/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/overworld_shiny.pal rename to graphics/pokemon/zigzagoon/galar/overworld_shiny.pal diff --git a/graphics/pokemon/zigzagoon/galarian/shiny.pal b/graphics/pokemon/zigzagoon/galar/shiny.pal similarity index 100% rename from graphics/pokemon/zigzagoon/galarian/shiny.pal rename to graphics/pokemon/zigzagoon/galar/shiny.pal diff --git a/graphics/pokemon/zigzagoon/icon_gba.png b/graphics/pokemon/zigzagoon/icon_gba.png new file mode 100644 index 0000000000..acd0ecc8c2 Binary files /dev/null and b/graphics/pokemon/zigzagoon/icon_gba.png differ diff --git a/graphics/pokemon/zigzagoon/normal_gba.pal b/graphics/pokemon/zigzagoon/normal_gba.pal new file mode 100644 index 0000000000..55f6178cbd --- /dev/null +++ b/graphics/pokemon/zigzagoon/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 189 131 +74 65 41 +172 123 90 +205 156 123 +238 189 156 +255 238 197 +65 57 49 +106 90 74 +197 172 139 +230 213 172 +255 255 255 +164 32 0 +205 57 32 +164 148 123 +123 90 74 +16 0 0 diff --git a/graphics/pokemon/zigzagoon/shiny_gba.pal b/graphics/pokemon/zigzagoon/shiny_gba.pal new file mode 100644 index 0000000000..fe2d3cbc98 --- /dev/null +++ b/graphics/pokemon/zigzagoon/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +156 189 131 +74 65 41 +197 98 65 +222 131 74 +238 164 74 +255 238 197 +49 49 41 +98 57 41 +197 172 139 +230 213 172 +255 255 255 +164 32 0 +205 57 32 +164 148 123 +131 82 57 +16 0 0 diff --git a/graphics/pokemon/zoroark/hisuian/back.png b/graphics/pokemon/zoroark/hisui/back.png similarity index 100% rename from graphics/pokemon/zoroark/hisuian/back.png rename to graphics/pokemon/zoroark/hisui/back.png diff --git a/graphics/pokemon/zoroark/hisuian/front.png b/graphics/pokemon/zoroark/hisui/front.png similarity index 100% rename from graphics/pokemon/zoroark/hisuian/front.png rename to graphics/pokemon/zoroark/hisui/front.png diff --git a/graphics/pokemon/zoroark/hisuian/icon.png b/graphics/pokemon/zoroark/hisui/icon.png similarity index 100% rename from graphics/pokemon/zoroark/hisuian/icon.png rename to graphics/pokemon/zoroark/hisui/icon.png diff --git a/graphics/pokemon/zoroark/hisuian/normal.pal b/graphics/pokemon/zoroark/hisui/normal.pal similarity index 100% rename from graphics/pokemon/zoroark/hisuian/normal.pal rename to graphics/pokemon/zoroark/hisui/normal.pal diff --git a/graphics/pokemon/zoroark/hisuian/overworld.png b/graphics/pokemon/zoroark/hisui/overworld.png similarity index 100% rename from graphics/pokemon/zoroark/hisuian/overworld.png rename to graphics/pokemon/zoroark/hisui/overworld.png diff --git a/graphics/pokemon/zoroark/hisuian/overworld_normal.pal b/graphics/pokemon/zoroark/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/zoroark/hisuian/overworld_normal.pal rename to graphics/pokemon/zoroark/hisui/overworld_normal.pal diff --git a/graphics/pokemon/zoroark/hisuian/overworld_shiny.pal b/graphics/pokemon/zoroark/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/zoroark/hisuian/overworld_shiny.pal rename to graphics/pokemon/zoroark/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/zoroark/hisuian/shiny.pal b/graphics/pokemon/zoroark/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/zoroark/hisuian/shiny.pal rename to graphics/pokemon/zoroark/hisui/shiny.pal diff --git a/graphics/pokemon/zorua/hisuian/back.png b/graphics/pokemon/zorua/hisui/back.png similarity index 100% rename from graphics/pokemon/zorua/hisuian/back.png rename to graphics/pokemon/zorua/hisui/back.png diff --git a/graphics/pokemon/zorua/hisuian/front.png b/graphics/pokemon/zorua/hisui/front.png similarity index 100% rename from graphics/pokemon/zorua/hisuian/front.png rename to graphics/pokemon/zorua/hisui/front.png diff --git a/graphics/pokemon/zorua/hisuian/icon.png b/graphics/pokemon/zorua/hisui/icon.png similarity index 100% rename from graphics/pokemon/zorua/hisuian/icon.png rename to graphics/pokemon/zorua/hisui/icon.png diff --git a/graphics/pokemon/zorua/hisuian/normal.pal b/graphics/pokemon/zorua/hisui/normal.pal similarity index 100% rename from graphics/pokemon/zorua/hisuian/normal.pal rename to graphics/pokemon/zorua/hisui/normal.pal diff --git a/graphics/pokemon/zorua/hisuian/overworld.png b/graphics/pokemon/zorua/hisui/overworld.png similarity index 100% rename from graphics/pokemon/zorua/hisuian/overworld.png rename to graphics/pokemon/zorua/hisui/overworld.png diff --git a/graphics/pokemon/zorua/hisuian/overworld_normal.pal b/graphics/pokemon/zorua/hisui/overworld_normal.pal similarity index 100% rename from graphics/pokemon/zorua/hisuian/overworld_normal.pal rename to graphics/pokemon/zorua/hisui/overworld_normal.pal diff --git a/graphics/pokemon/zorua/hisuian/overworld_shiny.pal b/graphics/pokemon/zorua/hisui/overworld_shiny.pal similarity index 100% rename from graphics/pokemon/zorua/hisuian/overworld_shiny.pal rename to graphics/pokemon/zorua/hisui/overworld_shiny.pal diff --git a/graphics/pokemon/zorua/hisuian/shiny.pal b/graphics/pokemon/zorua/hisui/shiny.pal similarity index 100% rename from graphics/pokemon/zorua/hisuian/shiny.pal rename to graphics/pokemon/zorua/hisui/shiny.pal diff --git a/graphics/pokemon/zubat/anim_front_gba.png b/graphics/pokemon/zubat/anim_front_gba.png new file mode 100644 index 0000000000..5f98e0c13b Binary files /dev/null and b/graphics/pokemon/zubat/anim_front_gba.png differ diff --git a/graphics/pokemon/zubat/back_gba.png b/graphics/pokemon/zubat/back_gba.png new file mode 100644 index 0000000000..5589e57676 Binary files /dev/null and b/graphics/pokemon/zubat/back_gba.png differ diff --git a/graphics/pokemon/zubat/icon_gba.png b/graphics/pokemon/zubat/icon_gba.png new file mode 100644 index 0000000000..696c097e10 Binary files /dev/null and b/graphics/pokemon/zubat/icon_gba.png differ diff --git a/graphics/pokemon/zubat/normal_gba.pal b/graphics/pokemon/zubat/normal_gba.pal new file mode 100644 index 0000000000..080a3fd93a --- /dev/null +++ b/graphics/pokemon/zubat/normal_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +213 213 213 +98 98 98 +16 16 16 +255 0 255 +205 197 255 +172 164 238 +123 115 189 +82 74 131 +246 131 222 +213 115 189 +180 82 156 +115 32 90 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/zubat/shiny_gba.pal b/graphics/pokemon/zubat/shiny_gba.pal new file mode 100644 index 0000000000..ab2540e88d --- /dev/null +++ b/graphics/pokemon/zubat/shiny_gba.pal @@ -0,0 +1,19 @@ +JASC-PAL +0100 +16 +230 230 230 +255 255 255 +213 213 213 +98 98 98 +16 16 16 +255 0 255 +148 180 98 +106 139 57 +65 98 16 +24 57 0 +238 222 213 +205 180 172 +164 139 131 +106 82 74 +255 0 255 +255 0 255 diff --git a/graphics/pokemon/zygarde/10_percent/icon.png b/graphics/pokemon/zygarde/10_percent/icon.png index c1fd251535..ab6354c985 100644 Binary files a/graphics/pokemon/zygarde/10_percent/icon.png and b/graphics/pokemon/zygarde/10_percent/icon.png differ diff --git a/graphics/pokemon/zygarde/complete/icon.png b/graphics/pokemon/zygarde/complete/icon.png index 454af5dcac..c7d6c8d010 100644 Binary files a/graphics/pokemon/zygarde/complete/icon.png and b/graphics/pokemon/zygarde/complete/icon.png differ diff --git a/graphics/title_screen/emerald_version.png b/graphics/title_screen/emerald_version.png index 2e8b32da98..9ee2992607 100644 Binary files a/graphics/title_screen/emerald_version.png and b/graphics/title_screen/emerald_version.png differ diff --git a/graphics_file_rules.mk b/graphics_file_rules.mk index 06316ea6a9..9f1be162f4 100644 --- a/graphics_file_rules.mk +++ b/graphics_file_rules.mk @@ -21,6 +21,7 @@ POKEDEXGFXDIR := graphics/pokedex STARTERGFXDIR := graphics/starter_choose NAMINGGFXDIR := graphics/naming_screen SPINDAGFXDIR := graphics/pokemon/spinda/spots +TITLESCREENGFXDIR := graphics/title_screen types := none normal fight flying poison ground rock bug ghost steel mystery fire water grass electric psychic ice dragon dark fairy stellar contest_types := cool beauty cute smart tough @@ -247,6 +248,9 @@ $(FONTGFXDIR)/small_narrower.latfont: $(FONTGFXDIR)/latin_small_narrower.png $(FONTGFXDIR)/short_narrow.latfont: $(FONTGFXDIR)/latin_short_narrow.png $(GFX) $< $@ +$(FONTGFXDIR)/short_narrower.latfont: $(FONTGFXDIR)/latin_short_narrower.png + $(GFX) $< $@ + $(FONTGFXDIR)/small.hwjpnfont: $(FONTGFXDIR)/japanese_small.png $(GFX) $< $@ @@ -270,9 +274,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 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/include/battle.h b/include/battle.h index 2d1d658419..fc2d73e62d 100644 --- a/include/battle.h +++ b/include/battle.h @@ -250,6 +250,9 @@ struct SpecialStatus u8 emergencyExited:1; u8 afterYou:1; u8 preventLifeOrbDamage:1; // So that Life Orb doesn't activate various effects. + u8 distortedTypeMatchups:1; + u8 teraShellAbilityDone:1; + u8 criticalHit:1; }; struct SideTimer @@ -361,7 +364,7 @@ struct AiLogicData u16 items[MAX_BATTLERS_COUNT]; u16 holdEffects[MAX_BATTLERS_COUNT]; u8 holdEffectParams[MAX_BATTLERS_COUNT]; - u16 predictedMoves[MAX_BATTLERS_COUNT]; + u16 lastUsedMove[MAX_BATTLERS_COUNT]; u8 hpPercents[MAX_BATTLERS_COUNT]; u16 partnerMove; u16 speedStats[MAX_BATTLERS_COUNT]; // Speed stats for all battles, calculated only once, same way as damages @@ -369,15 +372,15 @@ struct AiLogicData u8 effectiveness[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex u8 moveAccuracy[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // attacker, target, moveIndex u8 moveLimitations[MAX_BATTLERS_COUNT]; - u8 shouldSwitchIfBadMoves; // Because all available moves have no/little effect. Each bit per battler. - u8 monToSwitchId[MAX_BATTLERS_COUNT]; // ID of the mon to switch. + u8 monToSwitchInId[MAX_BATTLERS_COUNT]; // ID of the mon to switch in. u8 mostSuitableMonId[MAX_BATTLERS_COUNT]; // Stores result of GetMostSuitableMonToSwitchInto, which decides which generic mon the AI would switch into if they decide to switch. This can be overruled by specific mons found in ShouldSwitch; the final resulting mon is stored in AI_monToSwitchIntoId. struct SwitchinCandidate switchinCandidate; // Struct used for deciding which mon to switch to in battle_ai_switch_items.c u8 weatherHasEffect:1; // The same as WEATHER_HAS_EFFECT. Stored here, so it's called only once. u8 ejectButtonSwitch:1; // Tracks whether current switch out was from Eject Button - u8 ejectPackSwitch:1; // Tracks whether current switch out was from Eject Pack + u8 ejectPackSwitch:1; // Tracks whether current switch out was from Eject Pack u8 padding:5; u8 shouldSwitch; // Stores result of ShouldSwitch, which decides whether a mon should be switched out + u8 aiCalcInProgress:1; }; struct AI_ThinkingStruct @@ -716,12 +719,15 @@ struct BattleStruct } multiBuffer; u8 wishPerishSongState; u8 wishPerishSongBattlerId; - u8 aiCalcInProgress:1; - u8 overworldWeatherDone:1; + u8 startingStatus:6; // status to apply at battle start. defined in constants/battle.h u8 startingStatusDone:1; - u8 isAtkCancelerForCalledMove:1; // Certain cases in atk canceler should only be checked once, when the original move is called, however others need to be checked the twice. u8 terrainDone:1; - u8 startingStatus; // status to apply at battle start. defined in constants/battle.h + u8 overworldWeatherDone:1; + u8 obedienceResult:3; + u8 isAtkCancelerForCalledMove:1; // Certain cases in atk canceler should only be checked once, when the original move is called, however others need to be checked the twice. + u8 friskedAbility:1; // If identifies two mons, show the ability pop-up only once. + u8 fickleBeamBoosted:1; + u8 poisonPuppeteerConfusion:1; u8 startingStatusTimer; u8 atkCancellerTracker; struct BattleTvMovePoints tvMovePoints; @@ -744,12 +750,10 @@ struct BattleStruct bool8 ateBoost[MAX_BATTLERS_COUNT]; u8 activeAbilityPopUps; // as bits for each battler u8 abilityPopUpSpriteIds[MAX_BATTLERS_COUNT][2]; // two per battler - bool8 throwingPokeBall; struct ZMoveData zmove; struct DynamaxData dynamax; struct BattleGimmickData gimmick; const u8 *trainerSlideMsg; - bool8 trainerSlideLowHpMsgDone; enum BattleIntroStates introState:8; u8 ateBerry[2]; // array id determined by side, each party pokemon as bit u8 stolenStats[NUM_BATTLE_STATS]; // hp byte is used for which stats to raise, other inform about by how many stages @@ -757,14 +761,12 @@ struct BattleStruct u8 lastMoveTarget[MAX_BATTLERS_COUNT]; // The last target on which each mon used a move, for the sake of Instruct u16 tracedAbility[MAX_BATTLERS_COUNT]; u16 hpBefore[MAX_BATTLERS_COUNT]; // Hp of battlers before using a move. For Berserk and Anger Shell. - bool8 spriteIgnore0Hp; struct Illusion illusion[MAX_BATTLERS_COUNT]; s32 aiFinalScore[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT][MAX_MON_MOVES]; // AI, target, moves to make debugging easier u8 aiMoveOrAction[MAX_BATTLERS_COUNT]; u8 aiChosenTarget[MAX_BATTLERS_COUNT]; u8 soulheartBattlerId; u8 friskedBattler; // Frisk needs to identify 2 battlers in double battles. - bool8 friskedAbility; // If identifies two mons, show the ability pop-up only once. u8 sameMoveTurns[MAX_BATTLERS_COUNT]; // For Metronome, number of times the same moves has been SUCCESFULLY used. u16 moveEffect2; // For Knock Off u16 changedSpecies[NUM_BATTLE_SIDES][PARTY_SIZE]; // For forms when multiple mons can change into the same pokemon. @@ -779,14 +781,16 @@ struct BattleStruct u8 descriptionSubmenu:1; // For Move Description window in move selection screen u8 ackBallUseBtn:1; // Used for the last used ball feature u8 ballSwapped:1; // Used for the last used ball feature + u8 throwingPokeBall:1; u8 ballSpriteIds[2]; // item gfx, window gfx u8 appearedInBattle; // Bitfield to track which Pokemon appeared in battle. Used for Burmy's form change u8 skyDropTargets[MAX_BATTLERS_COUNT]; // For Sky Drop, to account for if multiple Pokemon use Sky Drop in a double battle. // When using a move which hits multiple opponents which is then bounced by a target, we need to make sure, the move hits both opponents, the one with bounce, and the one without. u8 attackerBeforeBounce:2; u8 beatUpSlot:3; - bool8 hitSwitchTargetFailed:1; - bool8 effectsBeforeUsingMoveDone:1; // Mega Evo and Focus Punch/Shell Trap effects. + u8 hitSwitchTargetFailed:1; + u8 effectsBeforeUsingMoveDone:1; // Mega Evo and Focus Punch/Shell Trap effects. + u8 spriteIgnore0Hp:1; u8 targetsDone[MAX_BATTLERS_COUNT]; // Each battler as a bit. u16 overwrittenAbilities[MAX_BATTLERS_COUNT]; // abilities overwritten during battle (keep separate from battle history in case of switching) u8 battleBondTransformed[NUM_BATTLE_SIDES]; // Bitfield for each party. @@ -804,9 +808,9 @@ struct BattleStruct u8 trainerSlideZMoveMsgDone:1; u8 trainerSlideBeforeFirstTurnMsgDone:1; u8 trainerSlideDynamaxMsgDone:1; + u8 trainerSlideLowHpMsgDone:1; u8 pledgeMove:1; u8 isSkyBattle:1; - u8 poisonPuppeteerConfusion:1; u32 aiDelayTimer; // Counts number of frames AI takes to choose an action. u32 aiDelayFrames; // Number of frames it took to choose an action. u8 timesGotHit[NUM_BATTLE_SIDES][PARTY_SIZE]; @@ -822,16 +826,30 @@ struct BattleStruct u8 shellSideArmCategory[MAX_BATTLERS_COUNT][MAX_BATTLERS_COUNT]; u8 speedTieBreaks; // MAX_BATTLERS_COUNT! values. u8 boosterEnergyActivates; - u8 distortedTypeMatchups; u8 categoryOverride; // for Z-Moves and Max Moves u8 commandingDondozo; - u16 commanderActive[NUM_BATTLE_SIDES]; + u16 commanderActive[MAX_BATTLERS_COUNT]; u32 stellarBoostFlags[NUM_BATTLE_SIDES]; // stored as a bitfield of flags for all types for each side - u8 fickleBeamBoosted:1; - u8 obedienceResult:3; - u8 padding:4; + u8 redCardActivates:1; + u8 padding1:7; u8 usedEjectItem; - u8 usedMicleBerry; + u8 monCausingSleepClause[NUM_BATTLE_SIDES]; // Stores which pokemon on a given side is causing Sleep Clause to be active as the mon's index in the party + u8 sleepClauseEffectExempt:4; // Stores whether effect should be exempt from triggering Sleep Clause (Effect Spore) + u8 usedMicleBerry:4; + s32 battlerExpReward; + + // Simultaneous hp reduction for spread moves + s32 moveDamage[MAX_BATTLERS_COUNT]; + s32 critChance[MAX_BATTLERS_COUNT]; + u16 moveResultFlags[MAX_BATTLERS_COUNT]; + u8 missStringId[MAX_BATTLERS_COUNT]; + u8 noResultString[MAX_BATTLERS_COUNT]; + u8 doneDoublesSpreadHit:1; + u8 calculatedDamageDone:1; + u8 calculatedSpreadMoveAccuracy:1; + u8 printedStrongWindsWeakenedAttack:1; + u8 numSpreadTargets:2; + u8 padding2:2; }; // The palaceFlags member of struct BattleStruct contains 1 flag per move to indicate which moves the AI should consider, @@ -846,16 +864,35 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER #define IS_MOVE_PHYSICAL(move)(GetBattleMoveCategory(move) == DAMAGE_CATEGORY_PHYSICAL) #define IS_MOVE_SPECIAL(move)(GetBattleMoveCategory(move) == DAMAGE_CATEGORY_SPECIAL) #define IS_MOVE_STATUS(move)(gMovesInfo[move].category == DAMAGE_CATEGORY_STATUS) - #define IS_MOVE_RECOIL(move)(gMovesInfo[move].recoil > 0 || gMovesInfo[move].effect == EFFECT_RECOIL_IF_MISS) #define BATTLER_MAX_HP(battlerId)(gBattleMons[battlerId].hp == gBattleMons[battlerId].maxHP) #define TARGET_TURN_DAMAGED ((gSpecialStatuses[gBattlerTarget].physicalDmg != 0 || gSpecialStatuses[gBattlerTarget].specialDmg != 0) || (gBattleStruct->enduredDamage & (1u << gBattlerTarget))) #define BATTLER_TURN_DAMAGED(battlerId) ((gSpecialStatuses[battlerId].physicalDmg != 0 || gSpecialStatuses[battlerId].specialDmg != 0) || (gBattleStruct->enduredDamage & (1u << battler))) -#define IS_BATTLER_OF_TYPE(battlerId, type)((GetBattlerType(battlerId, 0, FALSE) == type || GetBattlerType(battlerId, 1, FALSE) == type || (GetBattlerType(battlerId, 2, FALSE) != TYPE_MYSTERY && GetBattlerType(battlerId, 2, FALSE) == type))) -#define IS_BATTLER_OF_BASE_TYPE(battlerId, type)((GetBattlerType(battlerId, 0, TRUE) == type || GetBattlerType(battlerId, 1, TRUE) == type || (GetBattlerType(battlerId, 2, TRUE) != TYPE_MYSTERY && GetBattlerType(battlerId, 2, TRUE) == type))) -#define IS_BATTLER_TYPELESS(battlerId)(GetBattlerType(battlerId, 0, FALSE) == TYPE_MYSTERY && GetBattlerType(battlerId, 1, FALSE) == TYPE_MYSTERY && GetBattlerType(battlerId, 2, FALSE) == TYPE_MYSTERY) +/* Checks if 'battlerId' is any of the types. + * Passing multiple types is more efficient than calling this multiple + * times with one type because it shares the 'GetBattlerTypes' result. */ +#define _IS_BATTLER_ANY_TYPE(battlerId, ignoreTera, ...) \ + ({ \ + u32 types[3]; \ + GetBattlerTypes(battlerId, ignoreTera, types); \ + RECURSIVELY(R_FOR_EACH(_IS_BATTLER_ANY_TYPE_HELPER, __VA_ARGS__)) FALSE; \ + }) + +#define _IS_BATTLER_ANY_TYPE_HELPER(type) (types[0] == type) || (types[1] == type) || (types[2] == type) || + +#define IS_BATTLER_ANY_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, FALSE, __VA_ARGS__) +#define IS_BATTLER_OF_TYPE IS_BATTLER_ANY_TYPE +#define IS_BATTLER_ANY_BASE_TYPE(battlerId, ...) _IS_BATTLER_ANY_TYPE(battlerId, TRUE, __VA_ARGS__) +#define IS_BATTLER_OF_BASE_TYPE IS_BATTLER_ANY_BASE_TYPE + +#define IS_BATTLER_TYPELESS(battlerId) \ + ({ \ + u32 types[3]; \ + GetBattlerTypes(battlerId, FALSE, types); \ + types[0] == TYPE_MYSTERY && types[1] == TYPE_MYSTERY && types[2] == TYPE_MYSTERY; \ + }) #define SET_BATTLER_TYPE(battlerId, type) \ { \ @@ -883,16 +920,18 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER || gProtectStructs[battlerId].obstructed \ || gProtectStructs[battlerId].silkTrapped) -#define GET_STAT_BUFF_ID(n)((n & 7)) // first three bits 0x1, 0x2, 0x4 -#define GET_STAT_BUFF_VALUE_WITH_SIGN(n)((n & 0xF8)) -#define GET_STAT_BUFF_VALUE(n)(((n >> 3) & 0xF)) // 0x8, 0x10, 0x20, 0x40 +#define GET_STAT_BUFF_ID(n) ((n & 7)) // first three bits 0x1, 0x2, 0x4 +#define GET_STAT_BUFF_VALUE_WITH_SIGN(n) ((n & 0xF8)) +#define GET_STAT_BUFF_VALUE(n) (((n >> 3) & 0xF)) // 0x8, 0x10, 0x20, 0x40 #define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit -#define SET_STAT_BUFF_VALUE(n)((((n) << 3) & 0xF8)) +#define SET_STAT_BUFF_VALUE(n) ((((n) << 3) & 0xF8)) -#define SET_STATCHANGER(statId, stage, goesDown)(gBattleScripting.statChanger = (statId) + ((stage) << 3) + (goesDown << 7)) +#define SET_STATCHANGER(statId, stage, goesDown) (gBattleScripting.statChanger = (statId) + ((stage) << 3) + (goesDown << 7)) #define SET_STATCHANGER2(dst, statId, stage, goesDown)(dst = (statId) + ((stage) << 3) + (goesDown << 7)) +#define DO_ACCURACY_CHECK 2 // Don't skip the accuracy check before the move might be absorbed + // NOTE: The members of this struct have hard-coded offsets // in include/constants/battle_script_commands.h struct BattleScripting @@ -1073,7 +1112,6 @@ extern u8 gChosenMovePos; extern u16 gCurrentMove; extern u16 gChosenMove; extern u16 gCalledMove; -extern s32 gBattleMoveDamage; extern s32 gHpDealt; extern s32 gBideDmg[MAX_BATTLERS_COUNT]; extern u16 gLastUsedItem; @@ -1084,7 +1122,6 @@ extern u8 gBattlerFainted; extern u8 gEffectBattler; extern u8 gPotentialItemEffectBattler; extern u8 gAbsentBattlerFlags; -extern u8 gIsCriticalHit; extern u8 gMultiHitCounter; extern const u8 *gBattlescriptCurrInstr; extern u8 gChosenActionByBattler[MAX_BATTLERS_COUNT]; @@ -1100,7 +1137,6 @@ extern u16 gLockedMoves[MAX_BATTLERS_COUNT]; extern u16 gLastUsedMove; extern u8 gLastHitBy[MAX_BATTLERS_COUNT]; extern u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT]; -extern u16 gMoveResultFlags; extern u32 gHitMarker; extern u8 gBideTarget[MAX_BATTLERS_COUNT]; extern u32 gSideStatuses[NUM_BATTLE_SIDES]; @@ -1188,5 +1224,29 @@ static inline bool32 IsDoubleBattle(void) return gBattleTypeFlags & BATTLE_TYPE_DOUBLE; } +static inline bool32 IsSpreadMove(u32 moveTarget) +{ + return IsDoubleBattle() && (moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY); +} + +static inline bool32 IsDoubleSpreadMove(void) +{ + return gBattleStruct->numSpreadTargets > 1 + && !(gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE | HITMARKER_UNABLE_TO_USE_MOVE)) + && IsSpreadMove(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove)); +} + +static inline bool32 IsBattlerInvalidForSpreadMove(u32 battlerAtk, u32 battlerDef, u32 moveTarget) +{ + return battlerDef == battlerAtk + || !IsBattlerAlive(battlerDef) + || (battlerDef == BATTLE_PARTNER(battlerAtk) && (moveTarget == MOVE_TARGET_BOTH)); +} + +static inline bool32 MoveResultHasEffect(u32 battler) +{ + return !(gBattleStruct->moveResultFlags[battler] & MOVE_RESULT_NO_EFFECT); +} + #endif // GUARD_BATTLE_H diff --git a/include/battle_ai_main.h b/include/battle_ai_main.h index 431ed35698..3617be910f 100644 --- a/include/battle_ai_main.h +++ b/include/battle_ai_main.h @@ -10,7 +10,6 @@ typedef s32 (*AiScoreFunc)(u32, u32, u32, s32); // 0 - 3 are move idx #define AI_CHOICE_FLEE 4 #define AI_CHOICE_WATCH 5 -#define AI_CHOICE_SWITCH 7 // for AI_WhoStrikesFirst #define AI_IS_FASTER 1 @@ -96,7 +95,6 @@ typedef s32 (*AiScoreFunc)(u32, u32, u32, s32); return score; \ } -u32 ComputeBattleAiScores(u32 battler); void BattleAI_SetupItems(void); void BattleAI_SetupFlags(void); void BattleAI_SetupAIData(u8 defaultScoreMoves, u32 battler); diff --git a/include/battle_ai_switch_items.h b/include/battle_ai_switch_items.h index 3c70132afe..28eb318b2f 100644 --- a/include/battle_ai_switch_items.h +++ b/include/battle_ai_switch_items.h @@ -4,7 +4,7 @@ void GetAIPartyIndexes(u32 battlerId, s32 *firstId, s32 *lastId); void AI_TrySwitchOrUseItem(u32 battler); u32 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd); -bool32 ShouldSwitch(u32 battler, bool32 emitResult); +bool32 ShouldSwitch(u32 battler); bool32 IsMonGrounded(u16 heldItemEffect, u32 ability, u8 type1, u8 type2); #endif // GUARD_BATTLE_AI_SWITCH_ITEMS_H diff --git a/include/battle_ai_util.h b/include/battle_ai_util.h index 69cf92ed0d..56dd8aa6e1 100644 --- a/include/battle_ai_util.h +++ b/include/battle_ai_util.h @@ -15,9 +15,17 @@ enum DamageRollType DMG_ROLL_HIGHEST, }; +enum AIPivot +{ + DONT_PIVOT, + CAN_TRY_PIVOT, + SHOULD_PIVOT, +}; + bool32 AI_IsFaster(u32 battlerAi, u32 battlerDef, u32 move); bool32 AI_IsSlower(u32 battlerAi, u32 battlerDef, u32 move); bool32 AI_RandLessThan(u32 val); +u32 GetDmgRollType(u32 battlerAtk); bool32 IsAiVsAiBattle(void); bool32 BattlerHasAi(u32 battlerId); bool32 IsAiBattlerAware(u32 battlerId); @@ -52,8 +60,6 @@ bool32 DoesBattlerIgnoreAbilityChecks(u32 atkAbility, u32 move); u32 AI_GetWeather(struct AiLogicData *aiData); bool32 CanAIFaintTarget(u32 battlerAtk, u32 battlerDef, u32 numHits); bool32 CanIndexMoveFaintTarget(u32 battlerAtk, u32 battlerDef, u32 index, u32 numHits); -bool32 AI_IsTerrainAffected(u32 battlerId, u32 flags); -bool32 AI_IsBattlerGrounded(u32 battlerId); bool32 HasDamagingMove(u32 battlerId); bool32 HasDamagingMoveOfType(u32 battlerId, u32 type); u32 GetBattlerSecondaryDamage(u32 battlerId); @@ -65,7 +71,7 @@ u32 GetBattlerSideSpeedAverage(u32 battler); bool32 ShouldAbsorb(u32 battlerAtk, u32 battlerDef, u32 move, s32 damage); bool32 ShouldRecover(u32 battlerAtk, u32 battlerDef, u32 move, u32 healPercent); bool32 ShouldSetScreen(u32 battlerAtk, u32 battlerDef, u32 moveEffect); -bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 moveIndex); +enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 moveIndex); bool32 IsRecycleEncouragedItem(u32 item); bool32 ShouldRestoreHpBerry(u32 battlerAtk, u32 item); bool32 IsStatBoostingBerry(u32 item); @@ -80,7 +86,6 @@ bool32 AnyStatIsRaised(u32 battlerId); bool32 ShouldLowerStat(u32 battler, u32 battlerAbility, u32 stat); bool32 BattlerStatCanRise(u32 battler, u32 battlerAbility, u32 stat); bool32 AreBattlersStatsMaxed(u32 battler); -bool32 BattlerHasAnyStatRaised(u32 battlerId); u32 CountPositiveStatStages(u32 battlerId); u32 CountNegativeStatStages(u32 battlerId); bool32 ShouldLowerAttack(u32 battlerAtk, u32 battlerDef, u32 defAbility); @@ -120,7 +125,6 @@ bool32 HasMoveWithLowAccuracy(u32 battlerAtk, u32 battlerDef, u32 accCheck, bool bool32 HasAnyKnownMove(u32 battlerId); bool32 IsAromaVeilProtectedMove(u32 move); bool32 IsNonVolatileStatusMoveEffect(u32 moveEffect); -bool32 IsStatLoweringMoveEffect(u32 moveEffect); bool32 IsMoveRedirectionPrevented(u32 move, u32 atkAbility); bool32 IsMoveEncouragedToHit(u32 battlerAtk, u32 battlerDef, u32 move); bool32 IsHazardMoveEffect(u32 moveEffect); @@ -173,7 +177,6 @@ bool32 AI_IsBattlerAsleepOrComatose(u32 battlerId); #define IS_TARGETING_PARTNER(battlerAtk, battlerDef)((battlerAtk) == (battlerDef ^ BIT_FLANK)) u32 GetAllyChosenMove(u32 battlerId); bool32 IsValidDoubleBattle(u32 battlerAtk); -bool32 IsTargetingPartner(u32 battlerAtk, u32 battlerDef); bool32 DoesPartnerHaveSameMoveEffect(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove); bool32 PartnerHasSameMoveEffectWithoutTarget(u32 battlerAtkPartner, u32 move, u32 partnerMove); bool32 PartnerMoveEffectIsStatusSameTarget(u32 battlerAtkPartner, u32 battlerDef, u32 partnerMove); @@ -182,6 +185,7 @@ bool32 PartnerMoveEffectIsTerrain(u32 battlerAtkPartner, u32 partnerMove); bool32 PartnerMoveIs(u32 battlerAtkPartner, u32 partnerMove, u32 moveCheck); bool32 PartnerMoveIsSameAsAttacker(u32 battlerAtkPartner, u32 battlerDef, u32 move, u32 partnerMove); bool32 PartnerMoveIsSameNoTarget(u32 battlerAtkPartner, u32 move, u32 partnerMove); +bool32 PartnerMoveActivatesSleepClause(u32 move); bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, u32 move); // party logic diff --git a/include/battle_anim.h b/include/battle_anim.h index 71f494c87b..96ba0c52ab 100644 --- a/include/battle_anim.h +++ b/include/battle_anim.h @@ -235,7 +235,6 @@ extern const union AffineAnimCmd *const gAffineAnims_SpinningBone[]; // battle_anim_throw.c void TryShinyAnimation(u8 battler, struct Pokemon *mon); -u8 ItemIdToBallId(u16 itemId); u8 AnimateBallOpenParticles(u8 x, u8 y, u8 priority, u8 subpriority, u8 ballId); u8 LaunchBallFadeMonTask(bool8 unFadeLater, u8 spritePalNum, u32 selectedPalettes, u8 ballId); bool32 IsCriticalCapture(void); @@ -346,7 +345,6 @@ extern const union AnimCmd *const gAnims_WaterPulseBubble[]; // battle_anim_flying.c void DestroyAnimSpriteAfterTimer(struct Sprite *sprite); -void sub_810E2C8(struct Sprite *sprite); void AnimAirWaveCrescent(struct Sprite *sprite); void AnimFlyBallUp(struct Sprite *sprite); void AnimFlyBallAttack(struct Sprite *sprite); diff --git a/include/battle_message.h b/include/battle_message.h index 338712606a..914e97d5d6 100644 --- a/include/battle_message.h +++ b/include/battle_message.h @@ -1,12 +1,16 @@ #ifndef GUARD_BATTLE_MESSAGE_H #define GUARD_BATTLE_MESSAGE_H +#include "constants/battle.h" + // This buffer can hold many different things. Some of the things it can hold // that have explicit sizes are listed below to ensure it can contain them. #define TEXT_BUFF_ARRAY_COUNT max(16, \ max(MOVE_NAME_LENGTH + 2, /* +2 to hold the "!" and EOS. */ \ max(POKEMON_NAME_LENGTH + 1, \ ABILITY_NAME_LENGTH + 1))) +#define BATTLE_MSG_MAX_WIDTH 208 +#define BATTLE_MSG_MAX_LINES 2 // for 0xFD #define B_TXT_BUFF1 0x0 @@ -69,22 +73,29 @@ #define B_TXT_DEF_NAME 0x39 #define B_TXT_DEF_TEAM1 0x3A // Your/The opposing #define B_TXT_DEF_TEAM2 0x3B // your/the opposing -// #define B_TXT_SELECTION_NAME 0x3C - removed -// #define B_TXT_SELECTION_NAME2 0x3D no Illusion check - removed +#define B_TXT_DEF_PARTNER_NAME 0x3C +// #define B_UNUSED_0x3D 0x3D +#define B_TXT_ATK_NAME_WITH_PREFIX2 0x3E //lowercase +#define B_TXT_DEF_NAME_WITH_PREFIX2 0x3F //lowercase +#define B_TXT_EFF_NAME_WITH_PREFIX2 0x40 //lowercase +#define B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX2 0x41 //lowercase +#define B_TXT_TRAINER1_NAME_WITH_CLASS 0x42 +#define B_TXT_TRAINER2_NAME_WITH_CLASS 0x43 +#define B_TXT_PARTNER_NAME_WITH_CLASS 0x44 +#define B_TXT_ATK_TRAINER_NAME_WITH_CLASS 0x45 -// for B_TXT_BUFF1, B_TXT_BUFF2 and B_TXT_BUFF3 - -#define B_BUFF_STRING 0 -#define B_BUFF_NUMBER 1 -#define B_BUFF_MOVE 2 -#define B_BUFF_TYPE 3 -#define B_BUFF_MON_NICK_WITH_PREFIX 4 -#define B_BUFF_STAT 5 -#define B_BUFF_SPECIES 6 -#define B_BUFF_MON_NICK 7 -#define B_BUFF_NEGATIVE_FLAVOR 8 -#define B_BUFF_ABILITY 9 -#define B_BUFF_ITEM 10 +#define B_BUFF_STRING 0 +#define B_BUFF_NUMBER 1 +#define B_BUFF_MOVE 2 +#define B_BUFF_TYPE 3 +#define B_BUFF_MON_NICK_WITH_PREFIX 4 +#define B_BUFF_STAT 5 +#define B_BUFF_SPECIES 6 +#define B_BUFF_MON_NICK 7 +#define B_BUFF_NEGATIVE_FLAVOR 8 +#define B_BUFF_ABILITY 9 +#define B_BUFF_ITEM 10 +#define B_BUFF_MON_NICK_WITH_PREFIX_LOWER 11 // lowercase prefix #define B_BUFF_PLACEHOLDER_BEGIN 0xFD #define B_BUFF_EOS 0xFF @@ -201,6 +212,15 @@ textVar[4] = B_BUFF_EOS; \ } +#define PREPARE_MON_NICK_WITH_PREFIX_LOWER_BUFFER(textVar, battler, partyId) \ +{ \ + textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ + textVar[1] = B_BUFF_MON_NICK_WITH_PREFIX_LOWER; \ + textVar[2] = battler; \ + textVar[3] = partyId; \ + textVar[4] = B_BUFF_EOS; \ +} + #define PREPARE_MON_NICK_BUFFER(textVar, battler, partyId) \ { \ textVar[0] = B_BUFF_PLACEHOLDER_BEGIN; \ @@ -243,7 +263,7 @@ enum void BufferStringBattle(u16 stringID, u32 battler); u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src); -u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst); +u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst, u32 dstSize); void BattlePutTextOnWindow(const u8 *text, u8 windowId); void SetPpNumbersPaletteInMoveSelection(u32 battler); u8 GetCurrentPpToMaxPpState(u8 currentPp, u8 maxPp); @@ -302,6 +322,9 @@ extern const u8 gText_Loss[]; extern const u8 gText_Draw[]; extern const u8 gText_StatSharply[]; extern const u8 gText_StatRose[]; +extern const u8 gText_StatFell[]; +extern const u8 gText_drastically[]; +extern const u8 gText_severely[]; extern const u8 gText_DefendersStatRose[]; extern const u8 gText_PkmnGettingPumped[]; extern const u8 gText_PkmnShroudedInMist[]; diff --git a/include/battle_scripts.h b/include/battle_scripts.h index 9e2fb84485..bf4b34509f 100644 --- a/include/battle_scripts.h +++ b/include/battle_scripts.h @@ -65,7 +65,9 @@ extern const u8 BattleScript_OverworldTerrain[]; extern const u8 BattleScript_SideStatusWoreOff[]; extern const u8 BattleScript_SafeguardProtected[]; extern const u8 BattleScript_SafeguardEnds[]; -extern const u8 BattleScript_LeechSeedTurnDrain[]; +extern const u8 BattleScript_LeechSeedTurnDrainLiquidOoze[]; +extern const u8 BattleScript_LeechSeedTurnDrainHealBlock[]; +extern const u8 BattleScript_LeechSeedTurnDrainRecovery[]; extern const u8 BattleScript_BideStoringEnergy[]; extern const u8 BattleScript_BideAttack[]; extern const u8 BattleScript_BideNoEnergyToAttack[]; @@ -111,8 +113,9 @@ extern const u8 BattleScript_MoveUsedIsImprisoned[]; extern const u8 BattleScript_SelectingImprisonedMove[]; extern const u8 BattleScript_SelectingImprisonedMoveInPalace[]; extern const u8 BattleScript_GrudgeTakesPp[]; -extern const u8 BattleScript_MagicCoatBounce[]; -extern const u8 BattleScript_MagicCoatBouncePrankster[]; +extern const u8 BattleScript_MagicBounce[]; +extern const u8 BattleScript_MagicCoat[]; +extern const u8 BattleScript_MagicCoatPrankster[]; extern const u8 BattleScript_SnatchedMove[]; extern const u8 BattleScript_EnduredMsg[]; extern const u8 BattleScript_OneHitKOMsg[]; @@ -355,7 +358,6 @@ extern const u8 BattleScript_SelectingNotAllowedMoveThroatChopInPalace[]; extern const u8 BattleScript_ThroatChopEndTurn[]; extern const u8 BattleScript_GemActivates[]; extern const u8 BattleScript_BerryReduceDmg[]; -extern const u8 BattleScript_PrintBerryReduceString[]; extern const u8 BattleScript_WeaknessPolicy[]; extern const u8 BattleScript_TargetItemStatRaise[]; extern const u8 BattleScript_RockyHelmetActivates[]; @@ -418,6 +420,7 @@ extern const u8 BattleScript_EjectButtonActivates[]; extern const u8 BattleScript_EjectPackActivate_Ret[]; extern const u8 BattleScript_EjectPackActivate_End2[]; extern const u8 BattleScript_EjectPackActivates[]; +extern const u8 BattleScript_EjectPackMissesTiming[]; extern const u8 BattleScript_MentalHerbCureRet[]; extern const u8 BattleScript_MentalHerbCureEnd2[]; extern const u8 BattleScript_TerrainPreventsEnd2[]; @@ -437,7 +440,6 @@ extern const u8 BattleScript_AttackWeakenedByStrongWinds[]; extern const u8 BattleScript_BlockedByPrimalWeatherEnd3[]; extern const u8 BattleScript_BlockedByPrimalWeatherRet[]; extern const u8 BattleScript_PrimalReversion[]; -extern const u8 BattleScript_PrimalReversionRestoreAttacker[]; extern const u8 BattleScript_HyperspaceFuryRemoveProtect[]; extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTactics[]; extern const u8 BattleScript_SelectingNotAllowedMoveGorillaTacticsInPalace[]; @@ -515,8 +517,10 @@ extern const u8 BattleScript_AromaVeilProtectsRet[]; extern const u8 BattleScript_LowerAtkSpAtk[]; extern const u8 BattleScript_Terastallization[]; extern const u8 BattleScript_BoosterEnergyEnd2[]; +extern const u8 BattleScript_BoosterEnergyRet[]; extern const u8 BattleScript_TeraShellDistortingTypeMatchups[]; extern const u8 BattleScript_TeraFormChange[]; +extern const u8 BattleScript_SleepClausePreventsEnd[]; // zmoves extern const u8 BattleScript_ZMoveActivateDamaging[]; @@ -560,6 +564,7 @@ extern const u8 BattleScript_MoveBlockedByDynamax[]; // Battle move scripts extern const u8 BattleScript_EffectSleep[]; extern const u8 BattleScript_EffectAbsorb[]; +extern const u8 BattleScript_EffectAbsorbLiquidOoze[]; extern const u8 BattleScript_EffectExplosion[]; extern const u8 BattleScript_EffectDreamEater[]; extern const u8 BattleScript_EffectMirrorMove[]; @@ -620,6 +625,9 @@ extern const u8 BattleScript_EffectMimic[]; extern const u8 BattleScript_EffectMetronome[]; extern const u8 BattleScript_EffectLeechSeed[]; extern const u8 BattleScript_EffectDoNothing[]; +extern const u8 BattleScript_EffectHoldHands[]; +extern const u8 BattleScript_EffectCelebrate[]; +extern const u8 BattleScript_EffectHappyHour[]; extern const u8 BattleScript_EffectDisable[]; extern const u8 BattleScript_EffectLevelDamage[]; extern const u8 BattleScript_EffectPsywave[]; diff --git a/include/battle_util.h b/include/battle_util.h index c4727d8a12..2b0192aa71 100644 --- a/include/battle_util.h +++ b/include/battle_util.h @@ -20,6 +20,23 @@ #define MOVE_LIMITATION_PLACEHOLDER (1 << 15) #define MOVE_LIMITATIONS_ALL 0xFFFF +enum MoveBlocked +{ + MOVE_BLOCKED_BY_NO_ABILITY, + MOVE_BLOCKED_BY_SOUNDPROOF_OR_BULLETPROOF, + MOVE_BLOCKED_BY_DAZZLING, + MOVE_BLOCKED_BY_PARTNER_DAZZLING, + MOVE_BLOCKED_BY_GOOD_AS_GOLD, +}; + +enum MoveAbsorbed +{ + MOVE_ABSORBED_BY_NO_ABILITY, + MOVE_ABSORBED_BY_DRAIN_HP_ABILITY, + MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY, + MOVE_ABSORBED_BY_BOOST_FLASH_FIRE, +}; + enum { ABILITYEFFECT_ON_SWITCHIN, ABILITYEFFECT_ENDTURN, @@ -48,16 +65,20 @@ enum { #define ABILITYEFFECT_WATER_SPORT 253 // Only used if B_SPORT_TURNS >= GEN_6 // For the first argument of ItemBattleEffects, to deteremine which block of item effects to try -#define ITEMEFFECT_ON_SWITCH_IN 0 -#define ITEMEFFECT_NORMAL 1 -#define ITEMEFFECT_DUMMY 2 // Unused, empty -#define ITEMEFFECT_MOVE_END 3 -#define ITEMEFFECT_KINGSROCK 4 -#define ITEMEFFECT_TARGET 5 -#define ITEMEFFECT_ORBS 6 -#define ITEMEFFECT_LIFEORB_SHELLBELL 7 -#define ITEMEFFECT_USE_LAST_ITEM 8 // move end effects for just the battler, not whole field -#define ITEMEFFECT_STATS_CHANGED 9 // For White Herb and Eject Pack +enum ItemEffect +{ + ITEMEFFECT_NONE, + ITEMEFFECT_ON_SWITCH_IN, + ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN, + ITEMEFFECT_NORMAL, + ITEMEFFECT_MOVE_END, + ITEMEFFECT_KINGSROCK, + ITEMEFFECT_TARGET, + ITEMEFFECT_ORBS, + ITEMEFFECT_LIFEORB_SHELLBELL, + ITEMEFFECT_USE_LAST_ITEM, // move end effects for just the battler, not whole field + ITEMEFFECT_STATS_CHANGED, // For White Herb and Eject Pack +}; #define WEATHER_HAS_EFFECT ((!IsAbilityOnField(ABILITY_CLOUD_NINE) && !IsAbilityOnField(ABILITY_AIR_LOCK))) @@ -82,6 +103,7 @@ enum CANCELLER_SKY_DROP, CANCELLER_ASLEEP, CANCELLER_FROZEN, + CANCELLER_OBEDIENCE, CANCELLER_TRUANT, CANCELLER_RECHARGE, CANCELLER_FLINCH, @@ -101,6 +123,7 @@ enum CANCELLER_EXPLODING_DAMP, CANCELLER_MULTIHIT_MOVES, CANCELLER_Z_MOVES, + CANCELLER_MULTI_TARGET_MOVES, CANCELLER_END, CANCELLER_PSYCHIC_TERRAIN, CANCELLER_END2, @@ -117,6 +140,24 @@ enum { extern const struct TypePower gNaturalGiftTable[]; +struct DamageCalculationData +{ + u32 battlerAtk:3; + u32 battlerDef:3; + u32 move:16; + u32 moveType:5; + u32 isCrit:1; + u32 randomFactor:1; + u32 updateFlags:1; + u32 padding:2; +}; + +enum SleepClauseBlock +{ + NOT_BLOCKED_BY_SLEEP_CLAUSE, + BLOCKED_BY_SLEEP_CLAUSE, +}; + void HandleAction_ThrowBall(void); bool32 IsAffectedByFollowMe(u32 battlerAtk, u32 defSide, u32 move); void HandleAction_UseMove(void); @@ -161,6 +202,9 @@ void SetAtkCancellerForCalledMove(void); u8 AtkCanceller_UnableToUseMove2(void); bool32 HasNoMonsToSwitch(u32 battler, u8 r1, u8 r2); bool32 TryChangeBattleWeather(u32 battler, u32 weatherEnumId, bool32 viaAbility); +u32 CanAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef); +u32 CanPartnerAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef); +u32 CanAbilityAbsorbMove(u32 battlerAtk, u32 battlerDef, u32 abilityDef, u32 move, u32 moveType); u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 moveArg); bool32 TryPrimalReversion(u32 battler); bool32 IsNeutralizingGasOnField(void); @@ -175,7 +219,7 @@ bool32 IsBattlerProtected(u32 battlerAtk, u32 battlerDef, u32 move); bool32 CanBattlerEscape(u32 battler); // no ability check void BattleScriptExecute(const u8 *BS_ptr); void BattleScriptPushCursorAndCallback(const u8 *BS_ptr); -u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn); +u32 ItemBattleEffects(enum ItemEffect, u32 battler, bool32 moveTurn); void ClearVariousBattlerFlags(u32 battler); void HandleAction_RunBattleScript(void); u32 SetRandomTarget(u32 battler); @@ -192,9 +236,9 @@ u32 GetMoveSlot(u16 *moves, u32 move); u32 GetBattlerWeight(u32 battler); u32 CalcRolloutBasePower(u32 battlerAtk, u32 basePower, u32 rolloutTimer); u32 CalcFuryCutterBasePower(u32 basePower, u32 furyCutterCounter); -s32 CalculateMoveDamage(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, bool32 isCrit, bool32 randomFactor, bool32 updateFlags); -s32 CalculateMoveDamageVars(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, uq4_12_t typeEffectivenessModifier, - u32 weather, bool32 isCrit, u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef); +s32 CalculateMoveDamage(struct DamageCalculationData *damageCalcData, u32 fixedBasePower); +s32 CalculateMoveDamageVars(struct DamageCalculationData *damageCalcData, u32 fixedBasePower, uq4_12_t typeEffectivenessModifier, + u32 weather, u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef); uq4_12_t CalcTypeEffectivenessMultiplier(u32 move, u32 moveType, u32 battlerAtk, u32 battlerDef, u32 defAbility, bool32 recordAbilities); uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(u16 move, u16 speciesDef, u16 abilityDef); uq4_12_t GetTypeModifier(u32 atkType, u32 defType); @@ -232,7 +276,7 @@ void TryRestoreHeldItems(void); bool32 CanStealItem(u32 battlerStealing, u32 battlerItem, u16 item); void TrySaveExchangedItem(u32 battler, u16 stolenItem); bool32 IsPartnerMonFromSameTrainer(u32 battler); -u8 TryHandleSeed(u32 battler, u32 terrainFlag, u8 statId, u16 itemId, bool32 execute); +u32 TryHandleSeed(u32 battler, u32 terrainFlag, u32 statId, u32 itemId, enum ItemEffect caseID); bool32 IsBattlerAffectedByHazards(u32 battler, bool32 toxicSpikes); void SortBattlersBySpeed(u8 *battlers, bool32 slowToFast); bool32 CompareStat(u32 battler, u8 statId, u8 cmpTo, u8 cmpKind); @@ -258,7 +302,7 @@ bool32 MoveHasChargeTurnAdditionalEffect(u32 move); bool32 CanTargetPartner(u32 battlerAtk, u32 battlerDef); bool32 TargetFullyImmuneToCurrMove(u32 battlerAtk, u32 battlerDef); -bool32 CanBeSlept(u32 battler, u32 ability); +bool32 CanBeSlept(u32 battler, u32 ability, enum SleepClauseBlock isBlockedBySleepClause); bool32 CanBePoisoned(u32 battlerAtk, u32 battlerDef, u32 defAbility); bool32 CanBeBurned(u32 battler, u32 ability); bool32 CanBeParalyzed(u32 battler, u32 ability); @@ -267,6 +311,7 @@ bool32 CanGetFrostbite(u32 battler); bool32 CanBeConfused(u32 battler); bool32 IsBattlerTerrainAffected(u32 battler, u32 terrainFlag); u32 GetBattlerAffectionHearts(u32 battler); +void TryToRevertMimicryAndFlags(void); u32 CountBattlerStatIncreases(u32 battler, bool32 countEvasionAcc); bool32 ChangeTypeBasedOnTerrain(u32 battler); void RemoveConfusionStatus(u32 battler); @@ -275,10 +320,16 @@ bool32 AreBattlersOfOppositeGender(u32 battler1, u32 battler2); bool32 AreBattlersOfSameGender(u32 battler1, u32 battler2); u32 CalcSecondaryEffectChance(u32 battler, u32 battlerAbility, const struct AdditionalEffect *additionalEffect); bool32 MoveEffectIsGuaranteed(u32 battler, u32 battlerAbility, const struct AdditionalEffect *additionalEffect); -u8 GetBattlerType(u32 battler, u8 typeIndex, bool32 ignoreTera); +void GetBattlerTypes(u32 battler, bool32 ignoreTera, u32 types[static 3]); +u32 GetBattlerType(u32 battler, u32 typeIndex, bool32 ignoreTera); bool8 CanMonParticipateInSkyBattle(struct Pokemon *mon); bool8 IsMonBannedFromSkyBattles(u16 species); void RemoveBattlerType(u32 battler, u8 type); u32 GetMoveType(u32 move); +void TryActivateSleepClause(u32 battler, u32 indexInParty); +void TryDeactivateSleepClause(u32 battlerSide, u32 indexInParty); +bool32 IsSleepClauseActiveForSide(u32 battlerSide); +bool32 IsSleepClauseEnabled(); +void ClearDamageCalcResults(void); #endif // GUARD_BATTLE_UTIL_H 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/include/config/battle.h b/include/config/battle.h index ab2178eacc..861e3e3fad 100644 --- a/include/config/battle.h +++ b/include/config/battle.h @@ -6,7 +6,7 @@ #define B_CRIT_MULTIPLIER GEN_LATEST // In Gen6+, critical hits multiply damage by 1.5 instead of 2. #define B_PARALYSIS_SPEED GEN_LATEST // In Gen7+, Speed is decreased by 50% instead of 75%. #define B_CONFUSION_SELF_DMG_CHANCE GEN_LATEST // In Gen7+, confusion has a 33.3% of self-damage, instead of 50%. -#define B_MULTI_HIT_CHANCE GEN_LATEST // In Gen5+, multi-hit moves have different %. See Cmd_setmultihitcounter for values. +#define B_MULTI_HIT_CHANCE GEN_LATEST // In Gen5+, multi-hit moves have different %. See SetRandomMultiHitCounter for values. #define B_WHITEOUT_MONEY GEN_LATEST // In Gen4+, the amount of money lost by losing a battle is determined by the amount of badges earned. Previously, it would cut the current money by half. (While this change was also in FRLG, for the sake of simplicity, setting this to GEN_3 will result in RSE behavior.) #define B_LIGHT_BALL_ATTACK_BOOST GEN_LATEST // In Gen4+, Light Ball doubles the power of physical moves in addition to special moves. #define B_SANDSTORM_SPDEF_BOOST GEN_LATEST // In Gen4+, Sandstorm weather multiplies the Sp. Defense of Rock-type Pokémon by x1.5. @@ -187,10 +187,12 @@ #define B_SMART_WILD_AI_FLAG 0 // If not 0, you can set this flag in a script to enable smart wild pokemon #define B_FLAG_NO_BAG_USE 0 // If this flag is set, the ability to use the bag in battle is disabled. #define B_FLAG_NO_CATCHING 0 // If this flag is set, the ability to catch wild Pokémon is disabled. +#define B_FLAG_NO_RUNNING 0 // If this flag is set, the ability to escape from wild battles is disabled. Also makes Roar/Whirlwind and Teleport (under Gen8) fail. #define B_FLAG_AI_VS_AI_BATTLE 0 // If this flag is set, the player's mons will be controlled by the ai next battles. #define B_FLAG_DYNAMAX_BATTLE 0 // If this flag is set, the ability to Dynamax in battle is enabled for all trainers. #define B_FLAG_TERA_ORB_CHARGED 0 // If this flag is set, the Tera Orb is charged. It is automatically set upon healing and cleared upon Terastallizing once configured. #define B_FLAG_TERA_ORB_NO_COST 0 // If this flag is set, the Tera Orb does not use up its charge upon Terastallization. In S/V, this occurs after an event with Terapagos. +#define B_FLAG_SLEEP_CLAUSE 0 // If this flag is set, sleep clause is enabled; if the player / AI has already put a Pokémon on the opponent's side to sleep and it is still sleeping, another one can't be put to sleep. AI requires AI_FLAG_CHECK_BAD_MOVE to understand. // Var Settings // To use the following features in scripting, replace the 0s with the var ID you're assigning it to. @@ -254,6 +256,7 @@ #define B_OVERWORLD_FOG GEN_LATEST // In Gen8+, overworld Fog summons Misty Terrain in battle. In Gen4 only, overworld Fog summons the unique fog weather condition in battle. #define B_TOXIC_REVERSAL GEN_LATEST // In Gen5+, bad poison will change to regular poison at the end of battles. #define B_TRY_CATCH_TRAINER_BALL GEN_LATEST // In Gen4+, trying to catch a Trainer's Pokémon does not consume the Poké Ball. +#define B_SLEEP_CLAUSE FALSE // Enables Sleep Clause all the time in every case, overriding B_FLAG_SLEEP_CLAUSE. Use that for modularity. // Animation Settings #define B_NEW_SWORD_PARTICLE FALSE // If set to TRUE, it updates Swords Dance's particle. @@ -284,6 +287,7 @@ #define B_SHOW_TYPES SHOW_TYPES_NEVER // When defined as SHOW_TYPES_ALWAYS, after selecting "Fight" in battle, the types of all Pokemon are revealed. Whe defined as SHOW_TYPES_OWN, types are only revealed if the player owns the mon in question. // Pokémon battle sprite settings -#define B_ENEMY_MON_SHADOW_STYLE GEN_LATEST // In Gen4+, all enemy Pokemon will have a shadow drawn beneath them. +#define B_ENEMY_MON_SHADOW_STYLE GEN_3 // In Gen4+, all enemy Pokemon will have a shadow drawn beneath them. + // Currently Gen4+ shadows don't properly work with Trainerslides #endif // GUARD_CONFIG_BATTLE_H diff --git a/include/config/item.h b/include/config/item.h index 67916cbe4d..dce2682959 100644 --- a/include/config/item.h +++ b/include/config/item.h @@ -38,9 +38,12 @@ // Vs. Seeker #define I_VS_SEEKER_CHARGING 0 // If this flag is assigned, the Vs Seeker functionality will be enabled. When the player has the Vs. Seeker, Match Call rematch functions will stop working. -//Fishing -#define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. -#define I_FISHING_MINIGAME GEN_3 // Each generation uses a variation of reeling in Pokémon once they have been hooked. -#define I_FISHING_PROXIMITY FALSE // Introduced in XY, fishing away from other people in enclosed areas will increase the chances of a Pokémon being hooked. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. +// Fishing +#define I_FISHING_BITE_ODDS GEN_LATEST // In Gen 1 and Gen 2, the Old Rod has a 100% chance for a bite, Good Rod has a 66% chance for a bite, and Super Rod has a 50% chance for a bite. In Gen 3, all rods have a base 50% chance for a bite. In Gen 4 onwards, the Old Rod has a base 25% chance for a bite, Good Rod has a 50% chance for a bite, and Super Rod has a 75% chance for a bite. +#define I_FISHING_MINIGAME GEN_3 // Each generation uses a variation of reeling in Pokémon once they have been hooked. NOTE: Only the Gen 1/2 and Gen 3 minigames are implemented right now! +#define I_FISHING_STICKY_BOOST GEN_LATEST // In Gen 3, a Pokemon with Suction Cups or Sticky Hold in the first slot of the party causes the chance for a bite to increase by about 35%. In Gen 4 onwards, it doubles the base bite chance. +#define I_FISHING_FOLLOWER_BOOST FALSE // In HGSS, fishing bite odds are increased depending on the friendship of the current following Pokémon. +#define I_FISHING_CHAIN FALSE // Introduced in XY, hooking the same Pokémon repeatedly will increase the odds of that mon being shiny. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. +#define I_FISHING_PROXIMITY FALSE // Introduced in XY, fishing away from other people in enclosed areas will increase the chances of a Pokémon being hooked. NOTE: This implementation is an approximation of the actual feature, as XY have not been throughoutly documented or datamined. #endif // GUARD_CONFIG_ITEM_H diff --git a/include/config/overworld.h b/include/config/overworld.h index c7bb8d10d6..ca2fd3fe55 100644 --- a/include/config/overworld.h +++ b/include/config/overworld.h @@ -49,6 +49,7 @@ #define OW_LARGE_OW_SUPPORT TRUE // If true, adds a small amount of overhead to OW code so that large (48x48, 64x64) OWs will display correctly under bridges, etc. #define OW_PKMN_OBJECTS_SHARE_PALETTES FALSE // [WIP!! NOT ALL PALETTES HAVE BEEN ADJUSTED FOR THIS!!] If TRUE, follower palettes are taken from battle sprites. #define OW_GFX_COMPRESS TRUE // Adds support for compressed OW graphics, (Also compresses pokemon follower graphics). + // IMPORTANT: Gfx are loaded into VRAM to avoid continous decompression. If you require more VRAM or want to use a lot of overworld Pokémon at once, you should disable this config. // Compressed gfx are incompatible with non-power-of-two sprite sizes: // (You should not use 48x48 sprites/tables for compressed gfx) // 16x32, 32x32, 64x64 etc are fine diff --git a/include/config/pokemon.h b/include/config/pokemon.h index 15db4881b5..23015614c0 100644 --- a/include/config/pokemon.h +++ b/include/config/pokemon.h @@ -22,25 +22,33 @@ #define P_FRIENDSHIP_EVO_THRESHOLD GEN_LATEST // Since Gen 8, Pokémon that evolve by friendship evolve at or above 160 friendship instead of 220. // Breeding settings -#define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. -#define P_INCENSE_BREEDING GEN_LATEST // Since Gen 9, cross-generation Baby Pokémon don't require Incense being held by the parents to be obtained via breeding. -#define P_EGG_HATCH_LEVEL GEN_LATEST // Since Gen 4, Pokémon will hatch from eggs at level 1 instead of 5. -#define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen 7 onwards, the father can pass it down as well, as long as it's of the same species as the mother. -#define P_TM_INHERITANCE GEN_LATEST // Since Gen 6, the father no longer passes down TMs to the baby. -#define P_MOTHER_EGG_MOVE_INHERITANCE GEN_LATEST // Since Gen 6, the mother can also pass down Egg Moves. -#define P_NATURE_INHERITANCE GEN_LATEST // In Gen 3, Everstone grants Ditto and mothers a 50% chance to pass on Nature. Since Gen 4, anyone can pass on nature. Since Gen 5, the chance is 100%. -#define P_ABILITY_INHERITANCE GEN_LATEST // In B2W2, a female Pokémon has an 80% chance of passing down their ability if bred with a male. Since Gen 6, the chance is 80% for normal ability and 60% for Hidden Ability, and anyone can pass down their abilities if bred with Ditto. NOTE: BW's effect: 60% chance to pass down HA and random for normal ability has been omitted. -#define P_EGG_MOVE_TRANSFER GEN_LATEST // Starting in Gen 8, if two Pokémon of the same species are together in the Daycare, one knows an Egg Move, and the other has an empty slot, the other Pokémon will receive the Egg Move in the empty slot. In Gen 9, if a Pokémon holds a Mirror Herb, it will receive Egg Moves from the other regardless of species. +#define P_NIDORAN_M_DITTO_BREED GEN_LATEST // Since Gen 5, when Nidoran♂ breeds with Ditto it can produce Nidoran♀ offspring. Before, it would only yield male offspring. This change also applies to Volbeat. +#define P_INCENSE_BREEDING GEN_LATEST // Since Gen 9, cross-generation Baby Pokémon don't require Incense being held by the parents to be obtained via breeding. +#define P_EGG_HATCH_LEVEL GEN_LATEST // Since Gen 4, Pokémon will hatch from eggs at level 1 instead of 5. +#define P_BALL_INHERITING GEN_LATEST // Since Gen 6, Eggs from the Daycare will inherit the Poké Ball from their mother. From Gen 7 onwards, the father can pass it down as well, as long as it's of the same species as the mother. +#define P_TM_INHERITANCE GEN_LATEST // Since Gen 6, the father no longer passes down TMs to the baby. +#define P_MOTHER_EGG_MOVE_INHERITANCE GEN_LATEST // Since Gen 6, the mother can also pass down Egg Moves. +#define P_NATURE_INHERITANCE GEN_LATEST // In Gen 3, Everstone grants Ditto and mothers a 50% chance to pass on Nature. Since Gen 4, anyone can pass on nature. Since Gen 5, the chance is 100%. +#define P_ABILITY_INHERITANCE GEN_LATEST // In B2W2, a female Pokémon has an 80% chance of passing down their ability if bred with a male. Since Gen 6, the chance is 80% for normal ability and 60% for Hidden Ability, and anyone can pass down their abilities if bred with Ditto. NOTE: BW's effect: 60% chance to pass down HA and random for normal ability has been omitted. +#define P_EGG_MOVE_TRANSFER GEN_LATEST // Starting in Gen 8, if two Pokémon of the same species are together in the Daycare, one knows an Egg Move, and the other has an empty slot, the other Pokémon will receive the Egg Move in the empty slot. In Gen 9, if a Pokémon holds a Mirror Herb, it will receive Egg Moves from the other regardless of species. +#define P_SCATTERBUG_LINE_FORM_BREED SPECIES_SCATTERBUG_FANCY // Choose the Scatterbug form all Vivillon/Spewpa/Scatterbug will breed into, basically aligning with the "location" of the player's game. // Species-specific settings #define P_SHEDINJA_BALL GEN_LATEST // Since Gen 4, Shedinja requires a Poké Ball for its evolution. In Gen 3, Shedinja inherits Nincada's Ball. #define P_KADABRA_EVERSTONE GEN_LATEST // Since Gen 4, Kadabra can evolve even when holding an Everstone. #define P_SHUCKLE_BERRY_JUICE GEN_LATEST // In Gen 2, Shuckle had a 1/16 chance of converting Berry that it's holding into Berry Juice. Enabling this will allow Shuckle to do this with an Oran Berry, which is the spiritual succesor of the Berry item. -#define P_ARCEUS_UNIQUE_FORM_ICONS GEN_LATEST // Since Gen 9, Arceus additionally changes its icon to reflect its current form. + +// Species graphic settings +#define P_GENDER_DIFFERENCES TRUE // If TRUE, Pokémon will have graphical-only differences when they're female. Female *forms* such as Meowstic are not affected by this. +#define P_CUSTOM_GENDER_DIFF_ICONS TRUE // If TRUE, will give more Pokémon custom icons for their female differences, i.e. Hippopotas and Hippowdon +#define P_ARCEUS_UNIQUE_FORM_ICONS GEN_LATEST // Since Gen 9, Arceus additionally changes its icon to reflect its current form. +#define P_FOOTPRINTS TRUE // If TRUE, Pokémon will have footprints (as was the case up to Gen 5 and in BDSP). Disabling this saves some ROM space. +#define P_TWO_FRAME_FRONT_SPRITES TRUE // In Pokémon Emerald, Pokémon front sprites always consist of two frames. This config can revert it to only use the first frame, as is the case in the other Gen 3 games. +#define P_GBA_STYLE_SPECIES_GFX FALSE // By default, Pokémon sprites use Gen 4/5's style. This config can revert them back to GBA-style. NOTE: B_ENEMY_MON_SHADOW_STYLE is disabled when using these sprites for now. +#define P_GBA_STYLE_SPECIES_ICONS FALSE // By default, Pokémon have their updated icons. This config can revert them back to GBA-style. +#define P_GBA_STYLE_SPECIES_FOOTPRINTS FALSE // By default, Pokémon have their updated footprints. This config can revert them back to GBA-style. // Other settings -#define P_CUSTOM_GENDER_DIFF_ICONS TRUE // If TRUE, will give more Pokémon custom icons for their female forms, i.e. Hippopotas and Hippowdon -#define P_FOOTPRINTS TRUE // If TRUE, Pokémon will have footprints (as was the case up to Gen 5 and in BDSP). Disabling this saves some ROM space. #define P_CRIES_ENABLED TRUE // If TRUE, Pokémon will have cries. Disabling this saves around a LOT of ROM space (over 25%!), but instead we recommend disabling individual unused Pokémon families in include/config/species_enabled.h. #define P_LEGENDARY_PERFECT_IVS GEN_LATEST // Since Gen 6, Legendaries, Mythicals and Ultra Beasts found in the wild or given through gifts have at least 3 perfect IVs. #define P_EV_CAP GEN_LATEST // Since Gen 6, the max EVs per stat is 252 instead of 255. @@ -48,10 +56,12 @@ #define P_TM_LITERACY GEN_LATEST // Since Gen 6, TM illiterate Pokémon can learn TMs that teach moves that are in their level-up learnsets. #define P_CAN_FORGET_HIDDEN_MOVE FALSE // If TRUE, Pokémon can forget any move, even if it is a Hidden Move. #define P_EGG_CYCLE_LENGTH GEN_LATEST // Since Gen 8, egg cycles take half as many steps as before. -#define P_TWO_FRAME_FRONT_SPRITES TRUE // In Pokémon Emerald, Pokémon front sprites always consist of two frames. This config can revert it to only use the first frame, as is the case in the other Gen 3 games. #define P_ONLY_OBTAINABLE_SHINIES FALSE // If TRUE, Pokémon encountered in the Battle Pyramid won't be shiny. #define P_NO_SHINIES_WITHOUT_POKEBALLS FALSE // If TRUE, Pokémon encountered when the player is out of Poké Balls won't be shiny #define P_SHOW_DYNAMIC_TYPES FALSE // If TRUE, all moves with dynamic type changes will be reflected as their current type in battle/summary screens instead of just select ones like in vanilla. +#define P_SUMMARY_SCREEN_MOVE_RELEARNER TRUE // If TRUE, shows an option for Pokémon to relearn moves on the summary screen moves page. +#define P_SUMMARY_MOVE_RELEARNER_FULL_PP TRUE // If TRUE, the move relearner in the summary screen restores relearned moves' PP to full. +#define P_SUMMARY_SCREEN_RENAME TRUE // If TRUE, an option to change Pokémon nicknames replaces the cancel prompt on the summary screen info page. // Learnset helper toggles #define P_LEARNSET_HELPER_TEACHABLE TRUE // If TRUE, teachable_learnsets.h will be populated by tools/learnset_helpers/teachable.py using the included JSON files based on available TMs and tutors. diff --git a/include/config/test.h b/include/config/test.h index 708c2ca581..cce97484df 100644 --- a/include/config/test.h +++ b/include/config/test.h @@ -1129,4 +1129,8 @@ #undef P_FAMILY_PECHARUNT #define P_FAMILY_PECHARUNT TRUE +// Flags +#undef B_FLAG_SLEEP_CLAUSE +#define B_FLAG_SLEEP_CLAUSE FLAG_SPECIAL_FLAG_UNUSED_0x4003 + #endif // GUARD_CONFIG_TEST_H 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/battle.h b/include/constants/battle.h index 560448159a..ed19a72d9c 100644 --- a/include/constants/battle.h +++ b/include/constants/battle.h @@ -121,6 +121,8 @@ #define STATUS1_PSN_ANY (STATUS1_POISON | STATUS1_TOXIC_POISON) #define STATUS1_ANY (STATUS1_SLEEP | STATUS1_POISON | STATUS1_BURN | STATUS1_FREEZE | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE) +#define STATUS1_REFRESH (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE) + // Volatile status ailments // These are removed after exiting the battle or switching out #define STATUS2_CONFUSION (1 << 0 | 1 << 1 | 1 << 2) @@ -505,7 +507,7 @@ #define MOVE_TARGET_FOES_AND_ALLY (1 << 5) #define MOVE_TARGET_OPPONENTS_FIELD (1 << 6) #define MOVE_TARGET_ALLY (1 << 7) -#define MOVE_TARGET_ALL_BATTLERS ((1 << 8) | MOVE_TARGET_USER) +#define MOVE_TARGET_ALL_BATTLERS ((1 << 8) | MOVE_TARGET_USER) // No functionality for status moves // For the second argument of GetMoveTarget, when no target override is needed #define NO_TARGET_OVERRIDE 0 diff --git a/include/constants/battle_ai.h b/include/constants/battle_ai.h index ca469cadeb..ecde1e8668 100644 --- a/include/constants/battle_ai.h +++ b/include/constants/battle_ai.h @@ -26,34 +26,36 @@ // AI Flags. Most run specific functions to update score, new flags are used for internal logic in other scripts // See docs/ai_flags.md for more details. -#define AI_FLAG_CHECK_BAD_MOVE (1 << 0) // AI will avoid using moves that are likely to fail or be ineffective in the current situation. -#define AI_FLAG_TRY_TO_FAINT (1 << 1) // AI will prioritize KOing the player's mon if able. -#define AI_FLAG_CHECK_VIABILITY (1 << 2) // AI damaging moves and move effects to determine the best available move in the current situation. +#define AI_FLAG_CHECK_BAD_MOVE (1 << 0) // AI will avoid using moves that are likely to fail or be ineffective in the current situation. +#define AI_FLAG_TRY_TO_FAINT (1 << 1) // AI will prioritize KOing the player's mon if able. +#define AI_FLAG_CHECK_VIABILITY (1 << 2) // AI damaging moves and move effects to determine the best available move in the current situation. #define AI_FLAG_FORCE_SETUP_FIRST_TURN (1 << 3) // AI will prioritize using setup moves on the first turn at the expensve of all else. AI_FLAG_CHECK_VIABILITY will instead do this when the AI determines it makes sense. -#define AI_FLAG_RISKY (1 << 4) // AI will generally behave more recklessly, prioritizing damage over accuracy, explosions, etc. -#define AI_FLAG_PREFER_STRONGEST_MOVE (1 << 5) // AI adds score bonus to any move the AI has that either OHKOs or 2HKOs the player. -#define AI_FLAG_PREFER_BATON_PASS (1 << 6) // AI prefers raising its own stats and setting for / using Baton Pass. -#define AI_FLAG_DOUBLE_BATTLE (1 << 7) // Automatically set for double battles, handles AI behaviour with partner. -#define AI_FLAG_HP_AWARE (1 << 8) // AI will favour certain move effects based on how much remaining HP it and the player's mon have. -#define AI_FLAG_POWERFUL_STATUS (1 << 9) // AI prefers moves that set up field effects or side statuses, even if the user can faint the target. +#define AI_FLAG_RISKY (1 << 4) // AI will generally behave more recklessly, prioritizing damage over accuracy, explosions, etc. +#define AI_FLAG_PREFER_STRONGEST_MOVE (1 << 5) // AI adds score bonus to any move the AI has that either OHKOs or 2HKOs the player. +#define AI_FLAG_PREFER_BATON_PASS (1 << 6) // AI prefers raising its own stats and setting for / using Baton Pass. +#define AI_FLAG_DOUBLE_BATTLE (1 << 7) // Automatically set for double battles, handles AI behaviour with partner. +#define AI_FLAG_HP_AWARE (1 << 8) // AI will favour certain move effects based on how much remaining HP it and the player's mon have. +#define AI_FLAG_POWERFUL_STATUS (1 << 9) // AI prefers moves that set up field effects or side statuses, even if the user can faint the target. // New, Trainer Handicap Flags -#define AI_FLAG_NEGATE_UNAWARE (1 << 10) // AI is NOT aware of negating effects like wonder room, mold breaker, etc. -#define AI_FLAG_WILL_SUICIDE (1 << 11) // AI will use explosion / self destruct / final gambit / etc. +#define AI_FLAG_NEGATE_UNAWARE (1 << 10) // AI is NOT aware of negating effects like wonder room, mold breaker, etc. +#define AI_FLAG_WILL_SUICIDE (1 << 11) // AI will use explosion / self destruct / final gambit / etc. // New, Trainer Strategy Flags -#define AI_FLAG_PREFER_STATUS_MOVES (1 << 12) // AI gets a score bonus for status moves. Should be combined with AI_FLAG_CHECK_BAD_MOVE to prevent using only status moves. -#define AI_FLAG_STALL (1 << 13) // AI stalls battle and prefers secondary damage/trapping/etc. TODO not finished. -#define AI_FLAG_SMART_SWITCHING (1 << 14) // AI includes a lot more switching checks. Automatically includes AI_FLAG_SMART_MON_CHOICES. -#define AI_FLAG_ACE_POKEMON (1 << 15) // AI has an Ace Pokemon. The last Pokemon in the party will not be used until it's the last one remaining. -#define AI_FLAG_OMNISCIENT (1 << 16) // AI has full knowledge of player moves, abilities, hold items. -#define AI_FLAG_SMART_MON_CHOICES (1 << 17) // AI will make smarter decisions when choosing which mon to send out mid-battle and after a KO, which are separate decisions. Automatically included by AI_FLAG_SMART_SWITCHING. -#define AI_FLAG_CONSERVATIVE (1 << 18) // AI assumes all moves will low roll damage. -#define AI_FLAG_SEQUENCE_SWITCHING (1 << 19) // AI switches in mons in exactly party order, and never switches mid-battle. +#define AI_FLAG_PREFER_STATUS_MOVES (1 << 12) // AI gets a score bonus for status moves. Should be combined with AI_FLAG_CHECK_BAD_MOVE to prevent using only status moves. +#define AI_FLAG_STALL (1 << 13) // AI stalls battle and prefers secondary damage/trapping/etc. TODO not finished. +#define AI_FLAG_SMART_SWITCHING (1 << 14) // AI includes a lot more switching checks. Automatically includes AI_FLAG_SMART_MON_CHOICES. +#define AI_FLAG_ACE_POKEMON (1 << 15) // AI has an Ace Pokemon. The last Pokemon in the party will not be used until it's the last one remaining. +#define AI_FLAG_OMNISCIENT (1 << 16) // AI has full knowledge of player moves, abilities, hold items. +#define AI_FLAG_SMART_MON_CHOICES (1 << 17) // AI will make smarter decisions when choosing which mon to send out mid-battle and after a KO, which are separate decisions. Automatically included by AI_FLAG_SMART_SWITCHING. +#define AI_FLAG_CONSERVATIVE (1 << 18) // AI assumes all moves will low roll damage. +#define AI_FLAG_SEQUENCE_SWITCHING (1 << 19) // AI switches in mons in exactly party order, and never switches mid-battle. +#define AI_FLAG_DOUBLE_ACE_POKEMON (1 << 20) // AI has *two* Ace Pokémon. The last two Pokémons in the party won't be used unless they're the last ones remaining. Goes well in battles where the trainer ID equals to twins, couples, etc. +#define AI_FLAG_WEIGH_ABILITY_PREDICTION (1 << 21) // AI will predict player's ability based on aiRating -#define AI_FLAG_COUNT 20 +#define AI_FLAG_COUNT 22 // The following options are enough to have a basic/smart trainer. Any other addtion could make the trainer worse/better depending on the flag #define AI_FLAG_BASIC_TRAINER (AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY) -#define AI_FLAG_SMART_TRAINER (AI_FLAG_BASIC_TRAINER | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES) +#define AI_FLAG_SMART_TRAINER (AI_FLAG_BASIC_TRAINER | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_WEIGH_ABILITY_PREDICTION) // 'other' ai logic flags #define AI_FLAG_DYNAMIC_FUNC (1 << 28) // Create custom AI functions for specific battles via "setdynamicaifunc" cmd diff --git a/include/constants/battle_anim.h b/include/constants/battle_anim.h index 4601b452a2..0025364247 100644 --- a/include/constants/battle_anim.h +++ b/include/constants/battle_anim.h @@ -416,6 +416,7 @@ #define ANIM_TAG_BEAM (ANIM_SPRITES_START + 402) #define ANIM_TAG_RED_EXPLOSION (ANIM_SPRITES_START + 403) #define ANIM_TAG_PURPLE_CHAIN (ANIM_SPRITES_START + 404) +#define ANIM_TAG_PINKVIO_ORB (ANIM_SPRITES_START + 405) // battlers #define ANIM_ATTACKER 0 diff --git a/include/constants/battle_move_effects.h b/include/constants/battle_move_effects.h index 770e773f80..15edbd28ef 100644 --- a/include/constants/battle_move_effects.h +++ b/include/constants/battle_move_effects.h @@ -67,6 +67,9 @@ enum { EFFECT_METRONOME, EFFECT_LEECH_SEED, EFFECT_DO_NOTHING, + EFFECT_HOLD_HANDS, + EFFECT_CELEBRATE, + EFFECT_HAPPY_HOUR, EFFECT_DISABLE, EFFECT_LEVEL_DAMAGE, EFFECT_PSYWAVE, @@ -157,7 +160,7 @@ enum { EFFECT_YAWN, EFFECT_KNOCK_OFF, EFFECT_ENDEAVOR, - EFFECT_ERUPTION, + EFFECT_POWER_BASED_ON_USER_HP, EFFECT_SKILL_SWAP, EFFECT_IMPRISON, EFFECT_REFRESH, @@ -177,7 +180,7 @@ enum { EFFECT_PLEDGE, EFFECT_FLING, EFFECT_NATURAL_GIFT, - EFFECT_VARY_POWER_BASED_ON_HP, + EFFECT_POWER_BASED_ON_TARGET_HP, EFFECT_ASSURANCE, EFFECT_TRUMP_CARD, EFFECT_ACROBATICS, diff --git a/include/constants/battle_script_commands.h b/include/constants/battle_script_commands.h index 3476dc5ef2..609090b12e 100644 --- a/include/constants/battle_script_commands.h +++ b/include/constants/battle_script_commands.h @@ -3,7 +3,7 @@ // The following correspond to the struct members of BattleScripting by adding their offset #define sPAINSPLIT_HP (gBattleScripting + 0x00) // painSplitHp -#define sBIDE_DMG (gBattleScripting + 0x04) // bideDmg +#define sUNUSED_0x04 (gBattleScripting + 0x04) // unused_0x04 #define sMULTIHIT_STRING (gBattleScripting + 0x08) // multihitString #define sEXP_CATCH (gBattleScripting + 0x0E) // expOnCatch #define sUNUSED (gBattleScripting + 0x0F) // unused @@ -90,152 +90,146 @@ // Cmd_various #define VARIOUS_CANCEL_MULTI_TURN_MOVES 0 -#define VARIOUS_SET_MAGIC_COAT_TARGET 1 -#define VARIOUS_IS_RUNNING_IMPOSSIBLE 2 -#define VARIOUS_GET_MOVE_TARGET 3 -#define VARIOUS_GET_BATTLER_FAINTED 4 -#define VARIOUS_RESET_SWITCH_IN_ABILITY_BITS 5 -#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 6 -#define VARIOUS_RESET_PLAYER_FAINTED 7 -#define VARIOUS_PALACE_FLAVOR_TEXT 8 -#define VARIOUS_ARENA_JUDGMENT_WINDOW 9 -#define VARIOUS_ARENA_OPPONENT_MON_LOST 10 -#define VARIOUS_ARENA_PLAYER_MON_LOST 11 -#define VARIOUS_ARENA_BOTH_MONS_LOST 12 -#define VARIOUS_EMIT_YESNOBOX 13 -#define VARIOUS_DRAW_ARENA_REF_TEXT_BOX 14 -#define VARIOUS_ERASE_ARENA_REF_TEXT_BOX 15 -#define VARIOUS_ARENA_JUDGMENT_STRING 16 -#define VARIOUS_ARENA_WAIT_STRING 17 -#define VARIOUS_WAIT_CRY 18 -#define VARIOUS_RETURN_OPPONENT_MON1 19 -#define VARIOUS_RETURN_OPPONENT_MON2 20 -#define VARIOUS_VOLUME_DOWN 21 -#define VARIOUS_VOLUME_UP 22 -#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 23 -#define VARIOUS_PALACE_TRY_ESCAPE_STATUS 24 -#define VARIOUS_SET_TELEPORT_OUTCOME 25 -#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 26 -#define VARIOUS_STAT_TEXT_BUFFER 27 -#define VARIOUS_SWITCHIN_ABILITIES 28 -#define VARIOUS_INSTANT_HP_DROP 29 -#define VARIOUS_CLEAR_STATUS 30 -#define VARIOUS_RESTORE_PP 31 -#define VARIOUS_TRY_ACTIVATE_MOXIE 32 -#define VARIOUS_TRY_ACTIVATE_FELL_STINGER 33 -#define VARIOUS_PLAY_MOVE_ANIMATION 34 -#define VARIOUS_SET_LUCKY_CHANT 35 -#define VARIOUS_SUCKER_PUNCH_CHECK 36 -#define VARIOUS_SET_SIMPLE_BEAM 37 -#define VARIOUS_TRY_ENTRAINMENT 38 -#define VARIOUS_SET_LAST_USED_ABILITY 39 -#define VARIOUS_INVERT_STAT_STAGES 40 -#define VARIOUS_TRY_ME_FIRST 41 -#define VARIOUS_JUMP_IF_BATTLE_END 42 -#define VARIOUS_TRY_ELECTRIFY 43 -#define VARIOUS_TRY_REFLECT_TYPE 44 -#define VARIOUS_TRY_SOAK 45 -#define VARIOUS_HANDLE_MEGA_EVO 46 -#define VARIOUS_TRY_LAST_RESORT 47 -#define VARIOUS_SET_ARG_TO_BATTLE_DAMAGE 48 -#define VARIOUS_TRY_HIT_SWITCH_TARGET 49 -#define VARIOUS_TRY_AUTOTOMIZE 50 -#define VARIOUS_ABILITY_POPUP 51 -#define VARIOUS_JUMP_IF_TARGET_ALLY 52 -#define VARIOUS_TRY_SYNCHRONOISE 53 -#define VARIOUS_PSYCHO_SHIFT 54 -#define VARIOUS_CURE_STATUS 55 -#define VARIOUS_POWER_TRICK 56 -#define VARIOUS_AFTER_YOU 57 -#define VARIOUS_BESTOW 58 -#define VARIOUS_JUMP_IF_NOT_GROUNDED 59 -#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 60 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 61 -#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 62 -#define VARIOUS_SET_AURORA_VEIL 63 -#define VARIOUS_TRY_THIRD_TYPE 64 -#define VARIOUS_ACUPRESSURE 65 -#define VARIOUS_SET_POWDER 66 -#define VARIOUS_SPECTRAL_THIEF 67 -#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 68 -#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 69 -#define VARIOUS_JUMP_IF_ROAR_FAILS 70 -#define VARIOUS_TRY_INSTRUCT 71 -#define VARIOUS_JUMP_IF_NOT_BERRY 72 -#define VARIOUS_TRACE_ABILITY 73 -#define VARIOUS_UPDATE_NICK 74 -#define VARIOUS_TRY_ILLUSION_OFF 75 -#define VARIOUS_SET_SPRITEIGNORE0HP 76 -#define VARIOUS_HANDLE_FORM_CHANGE 77 -#define VARIOUS_GET_STAT_VALUE 78 -#define VARIOUS_JUMP_IF_FULL_HP 79 -#define VARIOUS_LOSE_TYPE 80 -#define VARIOUS_TRY_ACTIVATE_SOULHEART 81 -#define VARIOUS_TRY_ACTIVATE_RECEIVER 82 -#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 83 -#define VARIOUS_TRY_FRISK 84 -#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 85 -#define VARIOUS_TRY_FAIRY_LOCK 86 -#define VARIOUS_JUMP_IF_NO_ALLY 87 -#define VARIOUS_POISON_TYPE_IMMUNITY 88 -#define VARIOUS_JUMP_IF_HOLD_EFFECT 89 -#define VARIOUS_INFATUATE_WITH_BATTLER 90 -#define VARIOUS_SET_LAST_USED_ITEM 91 -#define VARIOUS_PARALYZE_TYPE_IMMUNITY 92 -#define VARIOUS_JUMP_IF_ABSENT 93 -#define VARIOUS_DESTROY_ABILITY_POPUP 94 -#define VARIOUS_TOTEM_BOOST 95 -#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 96 -#define VARIOUS_MOVEEND_ITEM_EFFECTS 97 -#define VARIOUS_TERRAIN_SEED 98 -#define VARIOUS_MAKE_INVISIBLE 99 -#define VARIOUS_ROOM_SERVICE 100 -#define VARIOUS_EERIE_SPELL_PP_REDUCE 101 -#define VARIOUS_JUMP_IF_TEAM_HEALTHY 102 -#define VARIOUS_TRY_HEAL_QUARTER_HP 103 -#define VARIOUS_REMOVE_TERRAIN 104 -#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 105 -#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 106 -#define VARIOUS_GET_ROTOTILLER_TARGETS 107 -#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 108 -#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 109 -#define VARIOUS_CONSUME_BERRY 110 -#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 111 -#define VARIOUS_JUMP_IF_SPECIES 112 -#define VARIOUS_UPDATE_ABILITY_POPUP 113 -#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 114 -#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 115 -#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 116 -#define VARIOUS_TRY_NO_RETREAT 117 -#define VARIOUS_TRY_TAR_SHOT 118 -#define VARIOUS_CAN_TAR_SHOT_WORK 119 -#define VARIOUS_CHECK_POLTERGEIST 120 -#define VARIOUS_CUT_1_3_HP_RAISE_STATS 121 -#define VARIOUS_TRY_END_NEUTRALIZING_GAS 122 -#define VARIOUS_JUMP_IF_UNDER_200 123 -#define VARIOUS_SET_SKY_DROP 124 -#define VARIOUS_CLEAR_SKY_DROP 125 -#define VARIOUS_SKY_DROP_YAWN 126 -#define VARIOUS_CURE_CERTAIN_STATUSES 127 -#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 128 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 129 -#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 130 -#define VARIOUS_SAVE_BATTLER_ITEM 131 -#define VARIOUS_RESTORE_BATTLER_ITEM 132 -#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 133 -#define VARIOUS_SET_BEAK_BLAST 134 -#define VARIOUS_SWAP_SIDE_STATUSES 135 -#define VARIOUS_SWAP_STATS 136 +#define VARIOUS_IS_RUNNING_IMPOSSIBLE 1 +#define VARIOUS_GET_MOVE_TARGET 2 +#define VARIOUS_GET_BATTLER_FAINTED 3 +#define VARIOUS_RESET_SWITCH_IN_ABILITY_BITS 4 +#define VARIOUS_UPDATE_CHOICE_MOVE_ON_LVL_UP 5 +#define VARIOUS_RESET_PLAYER_FAINTED 6 +#define VARIOUS_PALACE_FLAVOR_TEXT 7 +#define VARIOUS_ARENA_JUDGMENT_WINDOW 8 +#define VARIOUS_ARENA_OPPONENT_MON_LOST 9 +#define VARIOUS_ARENA_PLAYER_MON_LOST 10 +#define VARIOUS_ARENA_BOTH_MONS_LOST 11 +#define VARIOUS_EMIT_YESNOBOX 12 +#define VARIOUS_DRAW_ARENA_REF_TEXT_BOX 13 +#define VARIOUS_ERASE_ARENA_REF_TEXT_BOX 14 +#define VARIOUS_ARENA_JUDGMENT_STRING 15 +#define VARIOUS_ARENA_WAIT_STRING 16 +#define VARIOUS_WAIT_CRY 17 +#define VARIOUS_RETURN_OPPONENT_MON1 18 +#define VARIOUS_RETURN_OPPONENT_MON2 19 +#define VARIOUS_VOLUME_DOWN 20 +#define VARIOUS_VOLUME_UP 21 +#define VARIOUS_SET_ALREADY_STATUS_MOVE_ATTEMPT 22 +#define VARIOUS_PALACE_TRY_ESCAPE_STATUS 23 +#define VARIOUS_SET_TELEPORT_OUTCOME 24 +#define VARIOUS_PLAY_TRAINER_DEFEATED_MUSIC 25 +#define VARIOUS_STAT_TEXT_BUFFER 26 +#define VARIOUS_SWITCHIN_ABILITIES 27 +#define VARIOUS_INSTANT_HP_DROP 28 +#define VARIOUS_CLEAR_STATUS 29 +#define VARIOUS_RESTORE_PP 30 +#define VARIOUS_TRY_ACTIVATE_MOXIE 31 +#define VARIOUS_TRY_ACTIVATE_FELL_STINGER 32 +#define VARIOUS_PLAY_MOVE_ANIMATION 33 +#define VARIOUS_SET_LUCKY_CHANT 34 +#define VARIOUS_SUCKER_PUNCH_CHECK 35 +#define VARIOUS_SET_SIMPLE_BEAM 36 +#define VARIOUS_TRY_ENTRAINMENT 37 +#define VARIOUS_SET_LAST_USED_ABILITY 38 +#define VARIOUS_INVERT_STAT_STAGES 39 +#define VARIOUS_TRY_ME_FIRST 40 +#define VARIOUS_JUMP_IF_BATTLE_END 41 +#define VARIOUS_TRY_ELECTRIFY 42 +#define VARIOUS_TRY_REFLECT_TYPE 43 +#define VARIOUS_TRY_SOAK 44 +#define VARIOUS_HANDLE_MEGA_EVO 45 +#define VARIOUS_TRY_LAST_RESORT 46 +#define VARIOUS_SET_ARG_TO_BATTLE_DAMAGE 47 +#define VARIOUS_TRY_AUTOTOMIZE 48 +#define VARIOUS_ABILITY_POPUP 49 +#define VARIOUS_JUMP_IF_TARGET_ALLY 50 +#define VARIOUS_TRY_SYNCHRONOISE 51 +#define VARIOUS_PSYCHO_SHIFT 52 +#define VARIOUS_CURE_STATUS 53 +#define VARIOUS_POWER_TRICK 54 +#define VARIOUS_AFTER_YOU 55 +#define VARIOUS_BESTOW 56 +#define VARIOUS_JUMP_IF_NOT_GROUNDED 57 +#define VARIOUS_HANDLE_TRAINER_SLIDE_MSG 58 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_FIRST_OFF 59 +#define VARIOUS_TRY_TRAINER_SLIDE_MSG_LAST_ON 60 +#define VARIOUS_SET_AURORA_VEIL 61 +#define VARIOUS_TRY_THIRD_TYPE 62 +#define VARIOUS_ACUPRESSURE 63 +#define VARIOUS_SET_POWDER 64 +#define VARIOUS_SPECTRAL_THIEF 65 +#define VARIOUS_GRAVITY_ON_AIRBORNE_MONS 66 +#define VARIOUS_CHECK_IF_GRASSY_TERRAIN_HEALS 67 +#define VARIOUS_JUMP_IF_ROAR_FAILS 68 +#define VARIOUS_TRY_INSTRUCT 69 +#define VARIOUS_JUMP_IF_NOT_BERRY 70 +#define VARIOUS_TRACE_ABILITY 71 +#define VARIOUS_UPDATE_NICK 72 +#define VARIOUS_TRY_ILLUSION_OFF 73 +#define VARIOUS_SET_SPRITEIGNORE0HP 74 +#define VARIOUS_HANDLE_FORM_CHANGE 75 +#define VARIOUS_GET_STAT_VALUE 76 +#define VARIOUS_JUMP_IF_FULL_HP 77 +#define VARIOUS_LOSE_TYPE 78 +#define VARIOUS_TRY_ACTIVATE_SOULHEART 79 +#define VARIOUS_TRY_ACTIVATE_RECEIVER 80 +#define VARIOUS_TRY_ACTIVATE_BEAST_BOOST 81 +#define VARIOUS_TRY_FRISK 82 +#define VARIOUS_JUMP_IF_SHIELDS_DOWN_PROTECTED 83 +#define VARIOUS_TRY_FAIRY_LOCK 84 +#define VARIOUS_JUMP_IF_NO_ALLY 85 +#define VARIOUS_POISON_TYPE_IMMUNITY 86 +#define VARIOUS_JUMP_IF_HOLD_EFFECT 87 +#define VARIOUS_INFATUATE_WITH_BATTLER 88 +#define VARIOUS_SET_LAST_USED_ITEM 89 +#define VARIOUS_PARALYZE_TYPE_IMMUNITY 90 +#define VARIOUS_JUMP_IF_ABSENT 91 +#define VARIOUS_DESTROY_ABILITY_POPUP 92 +#define VARIOUS_TOTEM_BOOST 93 +#define VARIOUS_TRY_ACTIVATE_GRIM_NEIGH 94 +#define VARIOUS_MOVEEND_ITEM_EFFECTS 95 +#define VARIOUS_TERRAIN_SEED 96 +#define VARIOUS_MAKE_INVISIBLE 97 +#define VARIOUS_ROOM_SERVICE 98 +#define VARIOUS_EERIE_SPELL_PP_REDUCE 99 +#define VARIOUS_JUMP_IF_TEAM_HEALTHY 100 +#define VARIOUS_TRY_HEAL_QUARTER_HP 101 +#define VARIOUS_JUMP_IF_PRANKSTER_BLOCKED 102 +#define VARIOUS_TRY_TO_CLEAR_PRIMAL_WEATHER 103 +#define VARIOUS_GET_ROTOTILLER_TARGETS 104 +#define VARIOUS_JUMP_IF_NOT_ROTOTILLER_AFFECTED 105 +#define VARIOUS_TRY_ACTIVATE_BATTLE_BOND 106 +#define VARIOUS_CONSUME_BERRY 107 +#define VARIOUS_JUMP_IF_CANT_REVERT_TO_PRIMAL 108 +#define VARIOUS_JUMP_IF_SPECIES 109 +#define VARIOUS_UPDATE_ABILITY_POPUP 110 +#define VARIOUS_JUMP_IF_WEATHER_AFFECTED 111 +#define VARIOUS_JUMP_IF_LEAF_GUARD_PROTECTED 112 +#define VARIOUS_SET_ATTACKER_STICKY_WEB_USER 113 +#define VARIOUS_TRY_NO_RETREAT 114 +#define VARIOUS_CHECK_POLTERGEIST 115 +#define VARIOUS_CUT_1_3_HP_RAISE_STATS 116 +#define VARIOUS_TRY_END_NEUTRALIZING_GAS 117 +#define VARIOUS_JUMP_IF_UNDER_200 118 +#define VARIOUS_SET_SKY_DROP 119 +#define VARIOUS_CLEAR_SKY_DROP 120 +#define VARIOUS_SKY_DROP_YAWN 121 +#define VARIOUS_CURE_CERTAIN_STATUSES 122 +#define VARIOUS_TRY_RESET_NEGATIVE_STAT_STAGES 123 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_BERRY 124 +#define VARIOUS_JUMP_IF_LAST_USED_ITEM_HOLD_EFFECT 125 +#define VARIOUS_SAVE_BATTLER_ITEM 126 +#define VARIOUS_RESTORE_BATTLER_ITEM 127 +#define VARIOUS_BATTLER_ITEM_TO_LAST_USED_ITEM 128 +#define VARIOUS_SWAP_SIDE_STATUSES 129 +#define VARIOUS_SWAP_STATS 130 // Cmd_manipulatedamage -#define DMG_CHANGE_SIGN 0 -#define DMG_RECOIL_FROM_MISS 1 -#define DMG_DOUBLED 2 -#define DMG_1_8_TARGET_HP 3 -#define DMG_FULL_ATTACKER_HP 4 -#define DMG_CURR_ATTACKER_HP 5 -#define DMG_BIG_ROOT 6 -#define DMG_RECOIL_FROM_IMMUNE 7 // Used to calculate recoil for the Gen 4 version of Jump Kick +#define DMG_CHANGE_SIGN 1 +#define DMG_RECOIL_FROM_MISS 2 +#define DMG_DOUBLED 3 +#define DMG_1_8_TARGET_HP 4 +#define DMG_FULL_ATTACKER_HP 5 +#define DMG_CURR_ATTACKER_HP 6 +#define DMG_BIG_ROOT 7 +#define DMG_RECOIL_FROM_IMMUNE 8 // Used to calculate recoil for the Gen 4 version of Jump Kick // Cmd_jumpifcantswitch #define SWITCH_IGNORE_ESCAPE_PREVENTION (1 << 7) @@ -269,6 +263,7 @@ enum MoveEndEffects { MOVEEND_SUM_DAMAGE, MOVEEND_PROTECT_LIKE_EFFECT, + MOVEEND_ABSORB, MOVEEND_RAGE, MOVEEND_SYNCHRONIZE_TARGET, MOVEEND_ABILITIES, @@ -294,9 +289,9 @@ enum MoveEndEffects MOVEEND_RECOIL, MOVEEND_ITEM_EFFECTS_ATTACKER, MOVEEND_MAGICIAN, // Occurs after final multi-hit strike, and after other items/abilities would activate + MOVEEND_RED_CARD, // Red Card triggers before Eject Pack MOVEEND_EJECT_ITEMS, MOVEEND_WHITE_HERB, - MOVEEND_RED_CARD, MOVEEND_LIFEORB_SHELLBELL, // Includes shell bell, throat spray, etc MOVEEND_CHANGED_ITEMS, MOVEEND_PICKPOCKET, diff --git a/include/constants/battle_string_ids.h b/include/constants/battle_string_ids.h index 1cb5657391..5149e85bcf 100644 --- a/include/constants/battle_string_ids.h +++ b/include/constants/battle_string_ids.h @@ -531,193 +531,204 @@ #define STRINGID_LASERFOCUS 529 #define STRINGID_GEMACTIVATES 530 #define STRINGID_BERRYDMGREDUCES 531 -#define STRINGID_TARGETATEITEM 532 -#define STRINGID_AIRBALLOONFLOAT 533 -#define STRINGID_AIRBALLOONPOP 534 -#define STRINGID_INCINERATEBURN 535 -#define STRINGID_BUGBITE 536 -#define STRINGID_ILLUSIONWOREOFF 537 -#define STRINGID_ATTACKERCUREDTARGETSTATUS 538 -#define STRINGID_ATTACKERLOSTFIRETYPE 539 -#define STRINGID_HEALERCURE 540 -#define STRINGID_SCRIPTINGABILITYSTATRAISE 541 -#define STRINGID_RECEIVERABILITYTAKEOVER 542 -#define STRINGID_PKNMABSORBINGPOWER 543 -#define STRINGID_NOONEWILLBEABLETORUNAWAY 544 -#define STRINGID_DESTINYKNOTACTIVATES 545 -#define STRINGID_CLOAKEDINAFREEZINGLIGHT 546 -#define STRINGID_CLEARAMULETWONTLOWERSTATS 547 -#define STRINGID_FERVENTWISHREACHED 548 -#define STRINGID_AIRLOCKACTIVATES 549 -#define STRINGID_PRESSUREENTERS 550 -#define STRINGID_DARKAURAENTERS 551 -#define STRINGID_FAIRYAURAENTERS 552 -#define STRINGID_AURABREAKENTERS 553 -#define STRINGID_COMATOSEENTERS 554 -#define STRINGID_SCREENCLEANERENTERS 555 -#define STRINGID_FETCHEDPOKEBALL 556 -#define STRINGID_BATTLERABILITYRAISEDSTAT 557 -#define STRINGID_ASANDSTORMKICKEDUP 558 -#define STRINGID_PKMNSWILLPERISHIN3TURNS 559 -#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 560 -#define STRINGID_AURAFLAREDTOLIFE 561 -#define STRINGID_ASONEENTERS 562 -#define STRINGID_CURIOUSMEDICINEENTERS 563 -#define STRINGID_CANACTFASTERTHANKSTO 564 -#define STRINGID_MICLEBERRYACTIVATES 565 -#define STRINGID_PKMNSHOOKOFFTHETAUNT 566 -#define STRINGID_PKMNGOTOVERITSINFATUATION 567 -#define STRINGID_ITEMCANNOTBEREMOVED 568 -#define STRINGID_STICKYBARBTRANSFER 569 -#define STRINGID_PKMNBURNHEALED 570 -#define STRINGID_REDCARDACTIVATE 571 -#define STRINGID_EJECTBUTTONACTIVATE 572 -#define STRINGID_ATKGOTOVERINFATUATION 573 -#define STRINGID_TORMENTEDNOMORE 574 -#define STRINGID_HEALBLOCKEDNOMORE 575 -#define STRINGID_ATTACKERBECAMEFULLYCHARGED 576 -#define STRINGID_ATTACKERBECAMEASHSPECIES 577 -#define STRINGID_EXTREMELYHARSHSUNLIGHT 578 -#define STRINGID_EXTREMESUNLIGHTFADED 579 -#define STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT 580 -#define STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED 581 -#define STRINGID_HEAVYRAIN 582 -#define STRINGID_HEAVYRAINLIFTED 583 -#define STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN 584 -#define STRINGID_NORELIEFROMHEAVYRAIN 585 -#define STRINGID_MYSTERIOUSAIRCURRENT 586 -#define STRINGID_STRONGWINDSDISSIPATED 587 -#define STRINGID_MYSTERIOUSAIRCURRENTBLOWSON 588 -#define STRINGID_ATTACKWEAKENEDBSTRONGWINDS 589 -#define STRINGID_STUFFCHEEKSCANTSELECT 590 -#define STRINGID_PKMNREVERTEDTOPRIMAL 591 -#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 592 -#define STRINGID_BUTHOOPACANTUSEIT 593 -#define STRINGID_BROKETHROUGHPROTECTION 594 -#define STRINGID_ABILITYALLOWSONLYMOVE 595 -#define STRINGID_SWAPPEDABILITIES 596 -#define STRINGID_PASTELVEILPROTECTED 597 -#define STRINGID_PASTELVEILENTERS 598 -#define STRINGID_BATTLERTYPECHANGEDTO 599 -#define STRINGID_BOTHCANNOLONGERESCAPE 600 -#define STRINGID_CANTESCAPEDUETOUSEDMOVE 601 -#define STRINGID_PKMNBECAMEWEAKERTOFIRE 602 -#define STRINGID_ABOUTTOUSEPOLTERGEIST 603 -#define STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE 604 -#define STRINGID_NEUTRALIZINGGASENTERS 605 -#define STRINGID_NEUTRALIZINGGASOVER 606 -#define STRINGID_TARGETTOOHEAVY 607 -#define STRINGID_PKMNTOOKTARGETHIGH 608 -#define STRINGID_PKMNINSNAPTRAP 609 -#define STRINGID_METEORBEAMCHARGING 610 -#define STRINGID_HEATUPBEAK 611 -#define STRINGID_COURTCHANGE 612 -#define STRINGID_PLAYERLOSTTOENEMYTRAINER 613 -#define STRINGID_PLAYERPAIDPRIZEMONEY 614 -#define STRINGID_ZPOWERSURROUNDS 615 -#define STRINGID_ZMOVEUNLEASHED 616 -#define STRINGID_ZMOVERESETSSTATS 617 -#define STRINGID_ZMOVEALLSTATSUP 618 -#define STRINGID_ZMOVEZBOOSTCRIT 619 -#define STRINGID_ZMOVERESTOREHP 620 -#define STRINGID_ZMOVESTATUP 621 -#define STRINGID_ZMOVEHPTRAP 622 -#define STRINGID_ATTACKEREXPELLEDTHEPOISON 623 -#define STRINGID_ATTACKERSHOOKITSELFAWAKE 624 -#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 625 -#define STRINGID_ATTACKERHEALEDITSBURN 626 -#define STRINGID_ATTACKERMELTEDTHEICE 627 -#define STRINGID_TARGETTOUGHEDITOUT 628 -#define STRINGID_ATTACKERLOSTELECTRICTYPE 629 -#define STRINGID_ATTACKERSWITCHEDSTATWITHTARGET 630 -#define STRINGID_BEINGHITCHARGEDPKMNWITHPOWER 631 -#define STRINGID_SUNLIGHTACTIVATEDABILITY 632 -#define STRINGID_STATWASHEIGHTENED 633 -#define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 634 -#define STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT 635 -#define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 636 -#define STRINGID_PKMNSABILITYPREVENTSABILITY 637 -#define STRINGID_PREPARESHELLTRAP 638 -#define STRINGID_SHELLTRAPDIDNTWORK 639 -#define STRINGID_SPIKESDISAPPEAREDFROMTEAM 640 -#define STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM 641 -#define STRINGID_STICKYWEBDISAPPEAREDFROMTEAM 642 -#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 643 -#define STRINGID_COULDNTFULLYPROTECT 644 -#define STRINGID_STOCKPILEDEFFECTWOREOFF 645 -#define STRINGID_PKMNREVIVEDREADYTOFIGHT 646 -#define STRINGID_ITEMRESTOREDSPECIESHEALTH 647 -#define STRINGID_ITEMCUREDSPECIESSTATUS 648 -#define STRINGID_ITEMRESTOREDSPECIESPP 649 -#define STRINGID_THUNDERCAGETRAPPED 650 -#define STRINGID_PKMNHURTBYFROSTBITE 651 -#define STRINGID_PKMNGOTFROSTBITE 652 -#define STRINGID_PKMNSITEMHEALEDFROSTBITE 653 -#define STRINGID_ATTACKERHEALEDITSFROSTBITE 654 -#define STRINGID_PKMNFROSTBITEHEALED 655 -#define STRINGID_PKMNFROSTBITEHEALED2 656 -#define STRINGID_PKMNFROSTBITEHEALEDBY 657 -#define STRINGID_MIRRORHERBCOPIED 658 -#define STRINGID_STARTEDSNOW 659 -#define STRINGID_SNOWCONTINUES 660 -#define STRINGID_SNOWSTOPPED 661 -#define STRINGID_SNOWWARNINGSNOW 662 -#define STRINGID_PKMNITEMMELTED 663 -#define STRINGID_ULTRABURSTREACTING 664 -#define STRINGID_ULTRABURSTCOMPLETED 665 -#define STRINGID_TEAMGAINEDEXP 666 -#define STRINGID_CURRENTMOVECANTSELECT 667 -#define STRINGID_TARGETISBEINGSALTCURED 668 -#define STRINGID_TARGETISHURTBYSALTCURE 669 -#define STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP 670 -#define STRINGID_SHARPSTEELFLOATS 671 -#define STRINGID_SHARPSTEELDMG 672 -#define STRINGID_PKMNBLEWAWAYSHARPSTEEL 673 -#define STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM 674 -#define STRINGID_TEAMTRAPPEDWITHVINES 675 -#define STRINGID_PKMNHURTBYVINES 676 -#define STRINGID_TEAMCAUGHTINVORTEX 677 -#define STRINGID_PKMNHURTBYVORTEX 678 -#define STRINGID_TEAMSURROUNDEDBYFIRE 679 -#define STRINGID_PKMNBURNINGUP 680 -#define STRINGID_TEAMSURROUNDEDBYROCKS 681 -#define STRINGID_PKMNHURTBYROCKSTHROWN 682 -#define STRINGID_MOVEBLOCKEDBYDYNAMAX 683 -#define STRINGID_ZEROTOHEROTRANSFORMATION 684 -#define STRINGID_THETWOMOVESBECOMEONE 685 -#define STRINGID_ARAINBOWAPPEAREDONSIDE 686 -#define STRINGID_THERAINBOWDISAPPEARED 687 -#define STRINGID_WAITINGFORPARTNERSMOVE 688 -#define STRINGID_SEAOFFIREENVELOPEDSIDE 689 -#define STRINGID_HURTBYTHESEAOFFIRE 690 -#define STRINGID_THESEAOFFIREDISAPPEARED 691 -#define STRINGID_SWAMPENVELOPEDSIDE 692 -#define STRINGID_THESWAMPDISAPPEARED 693 -#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 694 -#define STRINGID_HOSPITALITYRESTORATION 695 -#define STRINGID_ELECTROSHOTCHARGING 696 -#define STRINGID_ITEMWASUSEDUP 697 -#define STRINGID_ATTACKERLOSTITSTYPE 698 -#define STRINGID_SHEDITSTAIL 699 -#define STRINGID_CLOAKEDINAHARSHLIGHT 700 -#define STRINGID_SUPERSWEETAROMAWAFTS 701 -#define STRINGID_DIMENSIONSWERETWISTED 702 -#define STRINGID_BIZARREARENACREATED 703 -#define STRINGID_BIZARREAREACREATED 704 -#define STRINGID_TIDYINGUPCOMPLETE 705 -#define STRINGID_PKMNTERASTALLIZEDINTO 706 -#define STRINGID_BOOSTERENERGYACTIVATES 707 -#define STRINGID_FOGCREPTUP 708 -#define STRINGID_FOGISDEEP 709 -#define STRINGID_FOGLIFTED 710 -#define STRINGID_PKMNMADESHELLGLEAM 711 -#define STRINGID_FICKLEBEAMDOUBLED 712 -#define STRINGID_COMMANDERACTIVATES 713 -#define STRINGID_POKEFLUTECATCHY 714 -#define STRINGID_POKEFLUTE 715 -#define STRINGID_MONHEARINGFLUTEAWOKE 716 +#define STRINGID_AIRBALLOONFLOAT 532 +#define STRINGID_AIRBALLOONPOP 533 +#define STRINGID_INCINERATEBURN 534 +#define STRINGID_BUGBITE 535 +#define STRINGID_ILLUSIONWOREOFF 536 +#define STRINGID_ATTACKERCUREDTARGETSTATUS 537 +#define STRINGID_ATTACKERLOSTFIRETYPE 538 +#define STRINGID_HEALERCURE 539 +#define STRINGID_SCRIPTINGABILITYSTATRAISE 540 +#define STRINGID_RECEIVERABILITYTAKEOVER 541 +#define STRINGID_PKNMABSORBINGPOWER 542 +#define STRINGID_NOONEWILLBEABLETORUNAWAY 543 +#define STRINGID_DESTINYKNOTACTIVATES 544 +#define STRINGID_CLOAKEDINAFREEZINGLIGHT 545 +#define STRINGID_CLEARAMULETWONTLOWERSTATS 546 +#define STRINGID_FERVENTWISHREACHED 547 +#define STRINGID_AIRLOCKACTIVATES 548 +#define STRINGID_PRESSUREENTERS 549 +#define STRINGID_DARKAURAENTERS 550 +#define STRINGID_FAIRYAURAENTERS 551 +#define STRINGID_AURABREAKENTERS 552 +#define STRINGID_COMATOSEENTERS 553 +#define STRINGID_SCREENCLEANERENTERS 554 +#define STRINGID_FETCHEDPOKEBALL 555 +#define STRINGID_BATTLERABILITYRAISEDSTAT 556 +#define STRINGID_ASANDSTORMKICKEDUP 557 +#define STRINGID_PKMNSWILLPERISHIN3TURNS 558 +#define STRINGID_ABILITYRAISEDSTATDRASTICALLY 559 +#define STRINGID_AURAFLAREDTOLIFE 560 +#define STRINGID_ASONEENTERS 561 +#define STRINGID_CURIOUSMEDICINEENTERS 562 +#define STRINGID_CANACTFASTERTHANKSTO 563 +#define STRINGID_MICLEBERRYACTIVATES 564 +#define STRINGID_PKMNSHOOKOFFTHETAUNT 565 +#define STRINGID_PKMNGOTOVERITSINFATUATION 566 +#define STRINGID_ITEMCANNOTBEREMOVED 567 +#define STRINGID_STICKYBARBTRANSFER 568 +#define STRINGID_PKMNBURNHEALED 569 +#define STRINGID_REDCARDACTIVATE 570 +#define STRINGID_EJECTBUTTONACTIVATE 571 +#define STRINGID_ATKGOTOVERINFATUATION 572 +#define STRINGID_TORMENTEDNOMORE 573 +#define STRINGID_HEALBLOCKEDNOMORE 574 +#define STRINGID_ATTACKERBECAMEFULLYCHARGED 575 +#define STRINGID_ATTACKERBECAMEASHSPECIES 576 +#define STRINGID_EXTREMELYHARSHSUNLIGHT 577 +#define STRINGID_EXTREMESUNLIGHTFADED 578 +#define STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT 579 +#define STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED 580 +#define STRINGID_HEAVYRAIN 581 +#define STRINGID_HEAVYRAINLIFTED 582 +#define STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN 583 +#define STRINGID_NORELIEFROMHEAVYRAIN 584 +#define STRINGID_MYSTERIOUSAIRCURRENT 585 +#define STRINGID_STRONGWINDSDISSIPATED 586 +#define STRINGID_MYSTERIOUSAIRCURRENTBLOWSON 587 +#define STRINGID_ATTACKWEAKENEDBSTRONGWINDS 588 +#define STRINGID_STUFFCHEEKSCANTSELECT 589 +#define STRINGID_PKMNREVERTEDTOPRIMAL 590 +#define STRINGID_BUTPOKEMONCANTUSETHEMOVE 591 +#define STRINGID_BUTHOOPACANTUSEIT 592 +#define STRINGID_BROKETHROUGHPROTECTION 593 +#define STRINGID_ABILITYALLOWSONLYMOVE 594 +#define STRINGID_SWAPPEDABILITIES 595 +#define STRINGID_PASTELVEILPROTECTED 596 +#define STRINGID_PASTELVEILENTERS 597 +#define STRINGID_BATTLERTYPECHANGEDTO 598 +#define STRINGID_BOTHCANNOLONGERESCAPE 599 +#define STRINGID_CANTESCAPEDUETOUSEDMOVE 600 +#define STRINGID_PKMNBECAMEWEAKERTOFIRE 601 +#define STRINGID_ABOUTTOUSEPOLTERGEIST 602 +#define STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE 603 +#define STRINGID_NEUTRALIZINGGASENTERS 604 +#define STRINGID_NEUTRALIZINGGASOVER 605 +#define STRINGID_TARGETTOOHEAVY 606 +#define STRINGID_PKMNTOOKTARGETHIGH 607 +#define STRINGID_PKMNINSNAPTRAP 608 +#define STRINGID_METEORBEAMCHARGING 609 +#define STRINGID_HEATUPBEAK 610 +#define STRINGID_COURTCHANGE 611 +#define STRINGID_PLAYERLOSTTOENEMYTRAINER 612 +#define STRINGID_PLAYERPAIDPRIZEMONEY 613 +#define STRINGID_ZPOWERSURROUNDS 614 +#define STRINGID_ZMOVEUNLEASHED 615 +#define STRINGID_ZMOVERESETSSTATS 616 +#define STRINGID_ZMOVEALLSTATSUP 617 +#define STRINGID_ZMOVEZBOOSTCRIT 618 +#define STRINGID_ZMOVERESTOREHP 619 +#define STRINGID_ZMOVESTATUP 620 +#define STRINGID_ZMOVEHPTRAP 621 +#define STRINGID_ATTACKEREXPELLEDTHEPOISON 622 +#define STRINGID_ATTACKERSHOOKITSELFAWAKE 623 +#define STRINGID_ATTACKERBROKETHROUGHPARALYSIS 624 +#define STRINGID_ATTACKERHEALEDITSBURN 625 +#define STRINGID_ATTACKERMELTEDTHEICE 626 +#define STRINGID_TARGETTOUGHEDITOUT 627 +#define STRINGID_ATTACKERLOSTELECTRICTYPE 628 +#define STRINGID_ATTACKERSWITCHEDSTATWITHTARGET 629 +#define STRINGID_BEINGHITCHARGEDPKMNWITHPOWER 630 +#define STRINGID_SUNLIGHTACTIVATEDABILITY 631 +#define STRINGID_STATWASHEIGHTENED 632 +#define STRINGID_ELECTRICTERRAINACTIVATEDABILITY 633 +#define STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT 634 +#define STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN 635 +#define STRINGID_PKMNSABILITYPREVENTSABILITY 636 +#define STRINGID_PREPARESHELLTRAP 637 +#define STRINGID_SHELLTRAPDIDNTWORK 638 +#define STRINGID_SPIKESDISAPPEAREDFROMTEAM 639 +#define STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM 640 +#define STRINGID_STICKYWEBDISAPPEAREDFROMTEAM 641 +#define STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM 642 +#define STRINGID_COULDNTFULLYPROTECT 643 +#define STRINGID_STOCKPILEDEFFECTWOREOFF 644 +#define STRINGID_PKMNREVIVEDREADYTOFIGHT 645 +#define STRINGID_ITEMRESTOREDSPECIESHEALTH 646 +#define STRINGID_ITEMCUREDSPECIESSTATUS 647 +#define STRINGID_ITEMRESTOREDSPECIESPP 648 +#define STRINGID_THUNDERCAGETRAPPED 649 +#define STRINGID_PKMNHURTBYFROSTBITE 650 +#define STRINGID_PKMNGOTFROSTBITE 651 +#define STRINGID_PKMNSITEMHEALEDFROSTBITE 652 +#define STRINGID_ATTACKERHEALEDITSFROSTBITE 653 +#define STRINGID_PKMNFROSTBITEHEALED 654 +#define STRINGID_PKMNFROSTBITEHEALED2 655 +#define STRINGID_PKMNFROSTBITEHEALEDBY 656 +#define STRINGID_MIRRORHERBCOPIED 657 +#define STRINGID_STARTEDSNOW 658 +#define STRINGID_SNOWCONTINUES 659 +#define STRINGID_SNOWSTOPPED 660 +#define STRINGID_SNOWWARNINGSNOW 661 +#define STRINGID_PKMNITEMMELTED 662 +#define STRINGID_ULTRABURSTREACTING 663 +#define STRINGID_ULTRABURSTCOMPLETED 664 +#define STRINGID_TEAMGAINEDEXP 665 +#define STRINGID_CURRENTMOVECANTSELECT 666 +#define STRINGID_TARGETISBEINGSALTCURED 667 +#define STRINGID_TARGETISHURTBYSALTCURE 668 +#define STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP 669 +#define STRINGID_SHARPSTEELFLOATS 670 +#define STRINGID_SHARPSTEELDMG 671 +#define STRINGID_PKMNBLEWAWAYSHARPSTEEL 672 +#define STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM 673 +#define STRINGID_TEAMTRAPPEDWITHVINES 674 +#define STRINGID_PKMNHURTBYVINES 675 +#define STRINGID_TEAMCAUGHTINVORTEX 676 +#define STRINGID_PKMNHURTBYVORTEX 677 +#define STRINGID_TEAMSURROUNDEDBYFIRE 678 +#define STRINGID_PKMNBURNINGUP 679 +#define STRINGID_TEAMSURROUNDEDBYROCKS 680 +#define STRINGID_PKMNHURTBYROCKSTHROWN 681 +#define STRINGID_MOVEBLOCKEDBYDYNAMAX 682 +#define STRINGID_ZEROTOHEROTRANSFORMATION 683 +#define STRINGID_THETWOMOVESBECOMEONE 684 +#define STRINGID_ARAINBOWAPPEAREDONSIDE 685 +#define STRINGID_THERAINBOWDISAPPEARED 686 +#define STRINGID_WAITINGFORPARTNERSMOVE 687 +#define STRINGID_SEAOFFIREENVELOPEDSIDE 688 +#define STRINGID_HURTBYTHESEAOFFIRE 689 +#define STRINGID_THESEAOFFIREDISAPPEARED 690 +#define STRINGID_SWAMPENVELOPEDSIDE 691 +#define STRINGID_THESWAMPDISAPPEARED 692 +#define STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE 693 +#define STRINGID_HOSPITALITYRESTORATION 694 +#define STRINGID_ELECTROSHOTCHARGING 695 +#define STRINGID_ITEMWASUSEDUP 696 +#define STRINGID_ATTACKERLOSTITSTYPE 697 +#define STRINGID_SHEDITSTAIL 698 +#define STRINGID_CLOAKEDINAHARSHLIGHT 699 +#define STRINGID_SUPERSWEETAROMAWAFTS 700 +#define STRINGID_DIMENSIONSWERETWISTED 701 +#define STRINGID_BIZARREARENACREATED 702 +#define STRINGID_BIZARREAREACREATED 703 +#define STRINGID_TIDYINGUPCOMPLETE 704 +#define STRINGID_PKMNTERASTALLIZEDINTO 705 +#define STRINGID_BOOSTERENERGYACTIVATES 706 +#define STRINGID_FOGCREPTUP 707 +#define STRINGID_FOGISDEEP 708 +#define STRINGID_FOGLIFTED 709 +#define STRINGID_PKMNMADESHELLGLEAM 710 +#define STRINGID_FICKLEBEAMDOUBLED 711 +#define STRINGID_COMMANDERACTIVATES 712 +#define STRINGID_POKEFLUTECATCHY 713 +#define STRINGID_POKEFLUTE 714 +#define STRINGID_MONHEARINGFLUTEAWOKE 715 +#define STRINGID_SUNLIGHTISHARSH 716 +#define STRINGID_ITISHAILING 717 +#define STRINGID_ITISSNOWING 718 +#define STRINGID_ISCOVEREDWITHGRASS 719 +#define STRINGID_MISTSWIRLSAROUND 720 +#define STRINGID_ELECTRICCURRENTISRUNNING 721 +#define STRINGID_SEEMSWEIRD 722 +#define STRINGID_WAGGLINGAFINGER 723 +#define STRINGID_BLOCKEDBYSLEEPCLAUSE 724 +#define STRINGID_SUPEREFFECTIVETWOFOES 725 +#define STRINGID_NOTVERYEFFECTIVETWOFOES 726 +#define STRINGID_ITDOESNTAFFECTTWOFOES 727 -#define BATTLESTRINGS_COUNT 717 +#define BATTLESTRINGS_COUNT 728 // This is the string id that gBattleStringsTable starts with. // String ids before this (e.g. STRINGID_INTROMSG) are not in the table, 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/include/constants/cries.h b/include/constants/cries.h index ca1529bbdf..554ffafc96 100644 --- a/include/constants/cries.h +++ b/include/constants/cries.h @@ -196,7 +196,7 @@ enum { CRY_SLOWBRO_MEGA, #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS - CRY_SLOWPOKE_GALARIAN, + CRY_SLOWPOKE_GALAR, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_SLOWPOKE #if P_FAMILY_MAGNEMITE @@ -2124,11 +2124,11 @@ enum { #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN CRY_ZACIAN_HERO, - CRY_ZACIAN_CROWNED_SWORD, + CRY_ZACIAN_CROWNED, #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA CRY_ZAMAZENTA_HERO, - CRY_ZAMAZENTA_CROWNED_SHIELD, + CRY_ZAMAZENTA_CROWNED, #endif //P_FAMILY_ZAMAZENTA #if P_FAMILY_ETERNATUS CRY_ETERNATUS, @@ -2136,8 +2136,8 @@ enum { #endif //P_FAMILY_ETERNATUS #if P_FAMILY_KUBFU CRY_KUBFU, - CRY_URSHIFU_SINGLE_STRIKE_STYLE, - CRY_URSHIFU_RAPID_STRIKE_STYLE, + CRY_URSHIFU_SINGLE_STRIKE, + CRY_URSHIFU_RAPID_STRIKE, #endif //P_FAMILY_KUBFU #if P_FAMILY_ZARUDE CRY_ZARUDE, @@ -2157,8 +2157,8 @@ enum { #if P_FAMILY_CALYREX CRY_CALYREX, #if P_FUSION_FORMS - CRY_CALYREX_ICE_RIDER, - CRY_CALYREX_SHADOW_RIDER, + CRY_CALYREX_ICE, + CRY_CALYREX_SHADOW, #endif //P_FUSION_FORMS #endif //P_FAMILY_CALYREX #if P_FAMILY_ENAMORUS @@ -2200,8 +2200,8 @@ enum { #endif //P_FAMILY_PAWMI #if P_FAMILY_TANDEMAUS CRY_TANDEMAUS, - CRY_MAUSHOLD_FAMILY_OF_THREE, - CRY_MAUSHOLD_FAMILY_OF_FOUR, + CRY_MAUSHOLD_THREE, + CRY_MAUSHOLD_FOUR, #endif //P_FAMILY_TANDEMAUS #if P_FAMILY_FIDOUGH CRY_FIDOUGH, diff --git a/include/constants/expansion.h b/include/constants/expansion.h index 327a502e22..1f2af1a226 100644 --- a/include/constants/expansion.h +++ b/include/constants/expansion.h @@ -1,9 +1,9 @@ #ifndef GUARD_CONSTANTS_EXPANSION_H #define GUARD_CONSTANTS_EXPANSION_H -// Last version: 1.9.3 +// Last version: 1.10.0 #define EXPANSION_VERSION_MAJOR 1 -#define EXPANSION_VERSION_MINOR 10 +#define EXPANSION_VERSION_MINOR 11 #define EXPANSION_VERSION_PATCH 0 // FALSE if this this version of Expansion is not a tagged commit, i.e. diff --git a/include/constants/field_specials.h b/include/constants/field_specials.h index 1e08a47f95..72966adeb8 100644 --- a/include/constants/field_specials.h +++ b/include/constants/field_specials.h @@ -86,4 +86,14 @@ #define DEOXYS_ROCK_SOLVED 2 #define DEOXYS_ROCK_COMPLETE 3 +enum { + OPEN_PARTY_SCREEN, + NO_PARTY_SCREEN +}; + +enum { + CURRENT_POSITION, + TEMPLATE_POSITION +}; + #endif // GUARD_CONSTANTS_FIELD_SPECIALS_H diff --git a/include/constants/flags.h b/include/constants/flags.h index 01e941d9f2..b1fcae5eb7 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 @@ -915,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 diff --git a/include/constants/form_change_types.h b/include/constants/form_change_types.h index 74bc16cf2f..8af9740cad 100644 --- a/include/constants/form_change_types.h +++ b/include/constants/form_change_types.h @@ -134,4 +134,14 @@ // param1: amount of days #define FORM_CHANGE_DAYS_PASSED 23 +// Form change that activates before using a move. +// param1: move to check +// param2: ability to check, optional +#define FORM_CHANGE_BATTLE_BEFORE_MOVE 24 + +// Form change that activates before using a specific move category. +// param1: move category to check +// param2: ability to check, optional +#define FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY 25 + #endif // GUARD_CONSTANTS_FORM_CHANGE_TYPES_H diff --git a/include/constants/hold_effects.h b/include/constants/hold_effects.h index a159102932..c85ec82302 100644 --- a/include/constants/hold_effects.h +++ b/include/constants/hold_effects.h @@ -1,171 +1,167 @@ #ifndef GUARD_HOLD_EFFECTS_H #define GUARD_HOLD_EFFECTS_H -#define HOLD_EFFECT_NONE 0 -#define HOLD_EFFECT_RESTORE_HP 1 -#define HOLD_EFFECT_CURE_PAR 2 -#define HOLD_EFFECT_CURE_SLP 3 -#define HOLD_EFFECT_CURE_PSN 4 -#define HOLD_EFFECT_CURE_BRN 5 -#define HOLD_EFFECT_CURE_FRZ 6 -#define HOLD_EFFECT_RESTORE_PP 7 -#define HOLD_EFFECT_CURE_CONFUSION 8 -#define HOLD_EFFECT_CURE_STATUS 9 -#define HOLD_EFFECT_CONFUSE_SPICY 10 -#define HOLD_EFFECT_CONFUSE_DRY 11 -#define HOLD_EFFECT_CONFUSE_SWEET 12 -#define HOLD_EFFECT_CONFUSE_BITTER 13 -#define HOLD_EFFECT_CONFUSE_SOUR 14 -#define HOLD_EFFECT_ATTACK_UP 15 -#define HOLD_EFFECT_DEFENSE_UP 16 -#define HOLD_EFFECT_SPEED_UP 17 -#define HOLD_EFFECT_SP_ATTACK_UP 18 -#define HOLD_EFFECT_SP_DEFENSE_UP 19 -#define HOLD_EFFECT_CRITICAL_UP 20 -#define HOLD_EFFECT_RANDOM_STAT_UP 21 -#define HOLD_EFFECT_EVASION_UP 22 -#define HOLD_EFFECT_RESTORE_STATS 23 -#define HOLD_EFFECT_MACHO_BRACE 24 -#define HOLD_EFFECT_EXP_SHARE 25 -#define HOLD_EFFECT_QUICK_CLAW 26 -#define HOLD_EFFECT_FRIENDSHIP_UP 27 -#define HOLD_EFFECT_MENTAL_HERB 28 -#define HOLD_EFFECT_CHOICE_BAND 29 -#define HOLD_EFFECT_FLINCH 30 -#define HOLD_EFFECT_BUG_POWER 31 -#define HOLD_EFFECT_DOUBLE_PRIZE 32 -#define HOLD_EFFECT_REPEL 33 -#define HOLD_EFFECT_SOUL_DEW 34 -#define HOLD_EFFECT_DEEP_SEA_TOOTH 35 -#define HOLD_EFFECT_DEEP_SEA_SCALE 36 -#define HOLD_EFFECT_CAN_ALWAYS_RUN 37 -#define HOLD_EFFECT_PREVENT_EVOLVE 38 -#define HOLD_EFFECT_FOCUS_BAND 39 -#define HOLD_EFFECT_LUCKY_EGG 40 -#define HOLD_EFFECT_SCOPE_LENS 41 -#define HOLD_EFFECT_STEEL_POWER 42 -#define HOLD_EFFECT_LEFTOVERS 43 -#define HOLD_EFFECT_DRAGON_SCALE 44 -#define HOLD_EFFECT_LIGHT_BALL 45 -#define HOLD_EFFECT_GROUND_POWER 46 -#define HOLD_EFFECT_ROCK_POWER 47 -#define HOLD_EFFECT_GRASS_POWER 48 -#define HOLD_EFFECT_DARK_POWER 49 -#define HOLD_EFFECT_FIGHTING_POWER 50 -#define HOLD_EFFECT_ELECTRIC_POWER 51 -#define HOLD_EFFECT_WATER_POWER 52 -#define HOLD_EFFECT_FLYING_POWER 53 -#define HOLD_EFFECT_POISON_POWER 54 -#define HOLD_EFFECT_ICE_POWER 55 -#define HOLD_EFFECT_GHOST_POWER 56 -#define HOLD_EFFECT_PSYCHIC_POWER 57 -#define HOLD_EFFECT_FIRE_POWER 58 -#define HOLD_EFFECT_DRAGON_POWER 59 -#define HOLD_EFFECT_NORMAL_POWER 60 -#define HOLD_EFFECT_UPGRADE 61 -#define HOLD_EFFECT_SHELL_BELL 62 -#define HOLD_EFFECT_LUCKY_PUNCH 63 -#define HOLD_EFFECT_METAL_POWDER 64 -#define HOLD_EFFECT_THICK_CLUB 65 -#define HOLD_EFFECT_LEEK 66 +enum ItemHoldEffect +{ + HOLD_EFFECT_NONE, + HOLD_EFFECT_RESTORE_HP, + HOLD_EFFECT_CURE_PAR, + HOLD_EFFECT_CURE_SLP, + HOLD_EFFECT_CURE_PSN, + HOLD_EFFECT_CURE_BRN, + HOLD_EFFECT_CURE_FRZ, + HOLD_EFFECT_RESTORE_PP, + HOLD_EFFECT_CURE_CONFUSION, + HOLD_EFFECT_CURE_STATUS, + HOLD_EFFECT_CONFUSE_SPICY, + HOLD_EFFECT_CONFUSE_DRY, + HOLD_EFFECT_CONFUSE_SWEET, + HOLD_EFFECT_CONFUSE_BITTER, + HOLD_EFFECT_CONFUSE_SOUR, + HOLD_EFFECT_ATTACK_UP, + HOLD_EFFECT_DEFENSE_UP, + HOLD_EFFECT_SPEED_UP, + HOLD_EFFECT_SP_ATTACK_UP, + HOLD_EFFECT_SP_DEFENSE_UP, + HOLD_EFFECT_CRITICAL_UP, + HOLD_EFFECT_RANDOM_STAT_UP, + HOLD_EFFECT_EVASION_UP, + HOLD_EFFECT_RESTORE_STATS, + HOLD_EFFECT_MACHO_BRACE, + HOLD_EFFECT_EXP_SHARE, + HOLD_EFFECT_QUICK_CLAW, + HOLD_EFFECT_FRIENDSHIP_UP, + HOLD_EFFECT_MENTAL_HERB, + HOLD_EFFECT_CHOICE_BAND, + HOLD_EFFECT_FLINCH, + HOLD_EFFECT_BUG_POWER, + HOLD_EFFECT_DOUBLE_PRIZE, + HOLD_EFFECT_REPEL, + HOLD_EFFECT_SOUL_DEW, + HOLD_EFFECT_DEEP_SEA_TOOTH, + HOLD_EFFECT_DEEP_SEA_SCALE, + HOLD_EFFECT_CAN_ALWAYS_RUN, + HOLD_EFFECT_PREVENT_EVOLVE, + HOLD_EFFECT_FOCUS_BAND, + HOLD_EFFECT_LUCKY_EGG, + HOLD_EFFECT_SCOPE_LENS, + HOLD_EFFECT_STEEL_POWER, + HOLD_EFFECT_LEFTOVERS, + HOLD_EFFECT_DRAGON_SCALE, + HOLD_EFFECT_LIGHT_BALL, + HOLD_EFFECT_GROUND_POWER, + HOLD_EFFECT_ROCK_POWER, + HOLD_EFFECT_GRASS_POWER, + HOLD_EFFECT_DARK_POWER, + HOLD_EFFECT_FIGHTING_POWER, + HOLD_EFFECT_ELECTRIC_POWER, + HOLD_EFFECT_WATER_POWER, + HOLD_EFFECT_FLYING_POWER, + HOLD_EFFECT_POISON_POWER, + HOLD_EFFECT_ICE_POWER, + HOLD_EFFECT_GHOST_POWER, + HOLD_EFFECT_PSYCHIC_POWER, + HOLD_EFFECT_FIRE_POWER, + HOLD_EFFECT_DRAGON_POWER, + HOLD_EFFECT_NORMAL_POWER, + HOLD_EFFECT_UPGRADE, + HOLD_EFFECT_SHELL_BELL, + HOLD_EFFECT_LUCKY_PUNCH, + HOLD_EFFECT_METAL_POWDER, + HOLD_EFFECT_THICK_CLUB, + HOLD_EFFECT_LEEK, + // Gen4 hold effects. + HOLD_EFFECT_CHOICE_SCARF, + HOLD_EFFECT_CHOICE_SPECS, + HOLD_EFFECT_DAMP_ROCK, + HOLD_EFFECT_GRIP_CLAW, + HOLD_EFFECT_HEAT_ROCK, + HOLD_EFFECT_ICY_ROCK, + HOLD_EFFECT_LIGHT_CLAY, + HOLD_EFFECT_SMOOTH_ROCK, + HOLD_EFFECT_POWER_HERB, + HOLD_EFFECT_BIG_ROOT, + HOLD_EFFECT_EXPERT_BELT, + HOLD_EFFECT_LIFE_ORB, + HOLD_EFFECT_METRONOME, + HOLD_EFFECT_MUSCLE_BAND, + HOLD_EFFECT_WIDE_LENS, + HOLD_EFFECT_WISE_GLASSES, + HOLD_EFFECT_ZOOM_LENS, + HOLD_EFFECT_LAGGING_TAIL, + HOLD_EFFECT_FOCUS_SASH, + HOLD_EFFECT_FLAME_ORB, + HOLD_EFFECT_TOXIC_ORB, + HOLD_EFFECT_STICKY_BARB, + HOLD_EFFECT_IRON_BALL, + HOLD_EFFECT_BLACK_SLUDGE, + HOLD_EFFECT_DESTINY_KNOT, + HOLD_EFFECT_SHED_SHELL, + HOLD_EFFECT_QUICK_POWDER, + HOLD_EFFECT_ADAMANT_ORB, + HOLD_EFFECT_LUSTROUS_ORB, + HOLD_EFFECT_GRISEOUS_ORB, + HOLD_EFFECT_ENIGMA_BERRY, + HOLD_EFFECT_RESIST_BERRY, + HOLD_EFFECT_POWER_ITEM, + HOLD_EFFECT_RESTORE_PCT_HP, + HOLD_EFFECT_MICLE_BERRY, + HOLD_EFFECT_CUSTAP_BERRY, + HOLD_EFFECT_JABOCA_BERRY, + HOLD_EFFECT_ROWAP_BERRY, + HOLD_EFFECT_KEE_BERRY, + HOLD_EFFECT_MARANGA_BERRY, + HOLD_EFFECT_PLATE, + // Gen5 hold effects + HOLD_EFFECT_FLOAT_STONE, + HOLD_EFFECT_EVIOLITE, + HOLD_EFFECT_ASSAULT_VEST, + HOLD_EFFECT_DRIVE, + HOLD_EFFECT_GEMS, + HOLD_EFFECT_ROCKY_HELMET, + HOLD_EFFECT_AIR_BALLOON, + HOLD_EFFECT_RED_CARD, + HOLD_EFFECT_RING_TARGET, + HOLD_EFFECT_BINDING_BAND, + HOLD_EFFECT_EJECT_BUTTON, + HOLD_EFFECT_ABSORB_BULB, + HOLD_EFFECT_CELL_BATTERY, + // Gen6 hold effects + HOLD_EFFECT_FAIRY_POWER, + HOLD_EFFECT_MEGA_STONE, + HOLD_EFFECT_SAFETY_GOGGLES, + HOLD_EFFECT_LUMINOUS_MOSS, + HOLD_EFFECT_SNOWBALL, + HOLD_EFFECT_WEAKNESS_POLICY, + HOLD_EFFECT_PRIMAL_ORB, + // Gen7 hold effects + HOLD_EFFECT_PROTECTIVE_PADS, + HOLD_EFFECT_TERRAIN_EXTENDER, + HOLD_EFFECT_SEEDS, + HOLD_EFFECT_ADRENALINE_ORB, + HOLD_EFFECT_MEMORY, + HOLD_EFFECT_Z_CRYSTAL, + // Gen8 hold effects + HOLD_EFFECT_UTILITY_UMBRELLA, + HOLD_EFFECT_EJECT_PACK, + HOLD_EFFECT_ROOM_SERVICE, + HOLD_EFFECT_BLUNDER_POLICY, + HOLD_EFFECT_HEAVY_DUTY_BOOTS, + HOLD_EFFECT_THROAT_SPRAY, + // Gen9 hold effects + HOLD_EFFECT_ABILITY_SHIELD, + HOLD_EFFECT_CLEAR_AMULET, + HOLD_EFFECT_MIRROR_HERB, + HOLD_EFFECT_PUNCHING_GLOVE, + HOLD_EFFECT_COVERT_CLOAK, + HOLD_EFFECT_LOADED_DICE, + HOLD_EFFECT_BOOSTER_ENERGY, + HOLD_EFFECT_OGERPON_MASK, + // Gen2 hold effect + HOLD_EFFECT_BERSERK_GENE, +}; -// Gen4 hold effects. -#define HOLD_EFFECT_CHOICE_SCARF 67 -#define HOLD_EFFECT_CHOICE_SPECS 68 -#define HOLD_EFFECT_DAMP_ROCK 69 -#define HOLD_EFFECT_GRIP_CLAW 70 -#define HOLD_EFFECT_HEAT_ROCK 71 -#define HOLD_EFFECT_ICY_ROCK 72 -#define HOLD_EFFECT_LIGHT_CLAY 73 -#define HOLD_EFFECT_SMOOTH_ROCK 74 -#define HOLD_EFFECT_POWER_HERB 75 -#define HOLD_EFFECT_BIG_ROOT 76 -#define HOLD_EFFECT_EXPERT_BELT 77 -#define HOLD_EFFECT_LIFE_ORB 78 -#define HOLD_EFFECT_METRONOME 79 -#define HOLD_EFFECT_MUSCLE_BAND 80 -#define HOLD_EFFECT_WIDE_LENS 81 -#define HOLD_EFFECT_WISE_GLASSES 82 -#define HOLD_EFFECT_ZOOM_LENS 83 -#define HOLD_EFFECT_LAGGING_TAIL 84 -#define HOLD_EFFECT_FOCUS_SASH 85 -#define HOLD_EFFECT_FLAME_ORB 86 -#define HOLD_EFFECT_TOXIC_ORB 87 -#define HOLD_EFFECT_STICKY_BARB 88 -#define HOLD_EFFECT_IRON_BALL 89 -#define HOLD_EFFECT_BLACK_SLUDGE 90 -#define HOLD_EFFECT_DESTINY_KNOT 91 -#define HOLD_EFFECT_SHED_SHELL 92 -#define HOLD_EFFECT_QUICK_POWDER 93 -#define HOLD_EFFECT_ADAMANT_ORB 94 -#define HOLD_EFFECT_LUSTROUS_ORB 95 -#define HOLD_EFFECT_GRISEOUS_ORB 96 -#define HOLD_EFFECT_ENIGMA_BERRY 97 -#define HOLD_EFFECT_RESIST_BERRY 98 -#define HOLD_EFFECT_POWER_ITEM 99 -#define HOLD_EFFECT_RESTORE_PCT_HP 100 -#define HOLD_EFFECT_MICLE_BERRY 101 -#define HOLD_EFFECT_CUSTAP_BERRY 102 -#define HOLD_EFFECT_JABOCA_BERRY 103 -#define HOLD_EFFECT_ROWAP_BERRY 104 -#define HOLD_EFFECT_KEE_BERRY 105 -#define HOLD_EFFECT_MARANGA_BERRY 106 -#define HOLD_EFFECT_PLATE 107 - -// Gen5 hold effects -#define HOLD_EFFECT_FLOAT_STONE 117 -#define HOLD_EFFECT_EVIOLITE 118 -#define HOLD_EFFECT_ASSAULT_VEST 119 -#define HOLD_EFFECT_DRIVE 120 -#define HOLD_EFFECT_GEMS 121 -#define HOLD_EFFECT_ROCKY_HELMET 122 -#define HOLD_EFFECT_AIR_BALLOON 123 -#define HOLD_EFFECT_RED_CARD 124 -#define HOLD_EFFECT_RING_TARGET 125 -#define HOLD_EFFECT_BINDING_BAND 126 -#define HOLD_EFFECT_EJECT_BUTTON 127 -#define HOLD_EFFECT_ABSORB_BULB 128 -#define HOLD_EFFECT_CELL_BATTERY 129 - -// Gen6 hold effects -#define HOLD_EFFECT_FAIRY_POWER 139 -#define HOLD_EFFECT_MEGA_STONE 140 -#define HOLD_EFFECT_SAFETY_GOGGLES 141 -#define HOLD_EFFECT_LUMINOUS_MOSS 142 -#define HOLD_EFFECT_SNOWBALL 143 -#define HOLD_EFFECT_WEAKNESS_POLICY 144 -#define HOLD_EFFECT_PRIMAL_ORB 145 - -// Gen7 hold effects -#define HOLD_EFFECT_PROTECTIVE_PADS 154 -#define HOLD_EFFECT_TERRAIN_EXTENDER 155 -#define HOLD_EFFECT_SEEDS 156 -#define HOLD_EFFECT_ADRENALINE_ORB 157 -#define HOLD_EFFECT_MEMORY 158 -#define HOLD_EFFECT_Z_CRYSTAL 159 - -// Gen8 hold effects -#define HOLD_EFFECT_UTILITY_UMBRELLA 169 -#define HOLD_EFFECT_EJECT_PACK 170 -#define HOLD_EFFECT_ROOM_SERVICE 171 -#define HOLD_EFFECT_BLUNDER_POLICY 172 -#define HOLD_EFFECT_HEAVY_DUTY_BOOTS 173 -#define HOLD_EFFECT_THROAT_SPRAY 174 - -// Gen9 hold effects -#define HOLD_EFFECT_ABILITY_SHIELD 175 -#define HOLD_EFFECT_CLEAR_AMULET 176 -#define HOLD_EFFECT_MIRROR_HERB 177 -#define HOLD_EFFECT_PUNCHING_GLOVE 178 -#define HOLD_EFFECT_COVERT_CLOAK 179 -#define HOLD_EFFECT_LOADED_DICE 180 -#define HOLD_EFFECT_BOOSTER_ENERGY 181 -#define HOLD_EFFECT_OGERPON_MASK 182 - -// Gen2 hold effect -#define HOLD_EFFECT_BERSERK_GENE 184 - -#define HOLD_EFFECT_CHOICE(holdEffect)((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) +#define HOLD_EFFECT_CHOICE(holdEffect) ((holdEffect == HOLD_EFFECT_CHOICE_BAND || holdEffect == HOLD_EFFECT_CHOICE_SCARF || holdEffect == HOLD_EFFECT_CHOICE_SPECS)) // Terrain seed params #define HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN 0 diff --git a/include/constants/items.h b/include/constants/items.h index c5bd7096a9..0abfc31a44 100644 --- a/include/constants/items.h +++ b/include/constants/items.h @@ -32,12 +32,6 @@ #define ITEM_BEAST_BALL 26 #define ITEM_CHERISH_BALL 27 -// Note: If moving ball IDs around, updating FIRST_BALL/LAST_BALL is not sufficient -// Several places expect the ball IDs to be first and contiguous (e.g. MON_DATA_POKEBALL) -// If adding new balls, it's easiest to insert them after the last ball and increment the below IDs (and removing ITEM_034 for example) -#define FIRST_BALL ITEM_POKE_BALL -#define LAST_BALL ITEM_CHERISH_BALL - // Medicine #define ITEM_POTION 28 #define ITEM_SUPER_POTION 29 @@ -998,10 +992,12 @@ #define ITEM_TWICE_SPICED_RADISH 826 #define ITEM_POKESHI_DOLL 827 +#define ITEM_STRANGE_BALL 828 + // HOPO BERRY // LEGEND PLATE -#define ITEMS_COUNT 828 +#define ITEMS_COUNT 829 #define ITEM_FIELD_ARROW ITEMS_COUNT // A special item id associated with "Cancel"/"Exit" etc. in a list of items or decorations @@ -1026,8 +1022,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 ITEM_TO_MULCH(itemId)(((itemId) - ITEM_GROWTH_MULCH) + 1) 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/include/constants/pokedex.h b/include/constants/pokedex.h index 8058f01e5c..241198e178 100644 --- a/include/constants/pokedex.h +++ b/include/constants/pokedex.h @@ -1327,4 +1327,18 @@ enum { #define DEX_HGSS_Y_BOTTOM_PADDING 4 #define DEX_HGSS_MEASUREMENT_X_PADDING 51 +enum +{ + DEX_MODE_HOENN, + DEX_MODE_NATIONAL +}; + +enum +{ + FLAG_GET_SEEN, + FLAG_GET_CAUGHT, + FLAG_SET_SEEN, + FLAG_SET_CAUGHT +}; + #endif // GUARD_CONSTANTS_POKEDEX_H diff --git a/include/constants/pokemon.h b/include/constants/pokemon.h index 9179d628b2..ab0f6b8453 100644 --- a/include/constants/pokemon.h +++ b/include/constants/pokemon.h @@ -244,9 +244,9 @@ #define F_SUMMARY_SCREEN_FLIP_SPRITE 0x80 #define EVOLUTIONS_END 0xFFFF // Not an actual evolution, used to mark the end of an evolution array. -#define EVO_NONE 0xFFFE // Not an actual evolution, used to generate offspring that can't evolve into the specified species, like regional forms. enum EvolutionMethods { + EVO_NONE, // Not an actual evolution, used to generate offspring that can't evolve into the specified species, like regional forms. EVO_FRIENDSHIP, // Pokémon levels up with friendship ≥ 220 EVO_FRIENDSHIP_DAY, // Pokémon levels up during the day with friendship ≥ 220 EVO_FRIENDSHIP_NIGHT, // Pokémon levels up at night with friendship ≥ 220 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/constants/species.h b/include/constants/species.h index 4c9a32bb13..b94a15a396 100644 --- a/include/constants/species.h +++ b/include/constants/species.h @@ -1088,7 +1088,7 @@ #define SPECIES_PIKACHU_UNOVA 1018 #define SPECIES_PIKACHU_KALOS 1019 #define SPECIES_PIKACHU_ALOLA 1020 -#define SPECIES_PIKACHU_PARTNER_CAP 1021 +#define SPECIES_PIKACHU_PARTNER 1021 #define SPECIES_PIKACHU_WORLD 1022 #define SPECIES_PICHU_SPIKY_EARED 1023 #define SPECIES_UNOWN_B 1024 diff --git a/include/data.h b/include/data.h index 88111eb5c0..ef59aae569 100644 --- a/include/data.h +++ b/include/data.h @@ -45,9 +45,9 @@ struct TrainerBacksprite const union AnimCmd *const *const animation; }; -#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) #define TRAINER_PARTY_IVS(hp, atk, def, speed, spatk, spdef) (hp | (atk << 5) | (def << 10) | (speed << 15) | (spatk << 20) | (spdef << 25)) #define TRAINER_PARTY_EVS(hp, atk, def, speed, spatk, spdef) ((const u8[6]){hp,atk,def,spatk,spdef,speed}) 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/include/event_object_movement.h b/include/event_object_movement.h index ee95429599..03fac6a270 100644 --- a/include/event_object_movement.h +++ b/include/event_object_movement.h @@ -107,6 +107,13 @@ struct LockedAnimObjectEvents u8 count; }; +struct FollowerSpriteVisualizerData +{ + u16 currentmonId; + bool8 isShiny; + bool8 isFemale; +}; + extern const struct OamData gObjectEventBaseOam_32x8; extern const struct OamData gObjectEventBaseOam_32x32; extern const struct OamData gObjectEventBaseOam_64x64; @@ -127,6 +134,7 @@ bool8 TryGetObjectEventIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroupId, u u8 GetObjectEventIdByXY(s16 x, s16 y); void SetObjectEventDirection(struct ObjectEvent *objectEvent, u8 direction); u8 GetFirstInactiveObjectEventId(void); +u8 GetObjectEventIdByLocalId(u8); void RemoveObjectEventByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup); void LoadSpecialObjectReflectionPalette(u16 tag, u8 slot); void TryMoveObjectEventToMapCoords(u8 localId, u8 mapNum, u8 mapGroup, s16 x, s16 y); @@ -148,6 +156,7 @@ void UpdateLightSprite(struct Sprite *); void TrySpawnObjectEvents(s16 cameraX, s16 cameraY); u8 CreateObjectGraphicsSpriteWithTag(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, u16 paletteTag); u8 CreateObjectGraphicsSprite(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority); +u8 CreateObjectGraphicsFollowerSpriteForVisualizer(u16, void (*)(struct Sprite *), s16 x, s16 y, u8 subpriority, struct FollowerSpriteVisualizerData *data); u8 TrySpawnObjectEvent(u8 localId, u8 mapNum, u8 mapGroup); u8 SpawnSpecialObjectEventParameterized(u16 graphicsId, u8 movementBehavior, u8 localId, s16 x, s16 y, u8 elevation); u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *); @@ -215,6 +224,7 @@ void ObjectEventForceSetHeldMovement(struct ObjectEvent *objectEvent, u8 movemen bool8 ObjectEventIsMovementOverridden(struct ObjectEvent *objectEvent); u8 ObjectEventCheckHeldMovementStatus(struct ObjectEvent *objectEvent); u8 ObjectEventGetHeldMovementActionId(struct ObjectEvent *objectEvent); +const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8, const struct ObjectEventTemplate *, u8); void TryOverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent, u8 movementType); void OverrideTemplateCoordsForObjectEvent(const struct ObjectEvent *objectEvent); void ShiftStillObjectEventCoords(struct ObjectEvent *objEvent); diff --git a/include/event_scripts.h b/include/event_scripts.h index 91846f8ce4..60a8d6123e 100644 --- a/include/event_scripts.h +++ b/include/event_scripts.h @@ -404,6 +404,7 @@ extern const u8 EventScript_FailSweetScent[]; extern const u8 EventScript_UseFlash[]; extern const u8 EventScript_UseCut[]; extern const u8 EventScript_UseRockSmash[]; +extern const u8 EventScript_UseDig[]; //player pc extern const u8 LittlerootTown_BrendansHouse_2F_EventScript_TurnOffPlayerPC[]; diff --git a/include/field_specials.h b/include/field_specials.h index 95a91d543f..975a57970b 100644 --- a/include/field_specials.h +++ b/include/field_specials.h @@ -33,5 +33,8 @@ void ResetFanClub(void); bool8 ShouldShowBoxWasFullMessage(void); void SetPCBoxToSendMon(u8 boxId); void PreparePartyForSkyBattle(void); +void GetObjectPosition(u16*, u16*, u32, u32); +bool32 CheckObjectAtXY(u32, u32); +bool32 CheckPartyHasSpecies(u32); #endif // GUARD_FIELD_SPECIALS_H diff --git a/include/fonts.h b/include/fonts.h index a6be35db98..5e6a9ffad5 100644 --- a/include/fonts.h +++ b/include/fonts.h @@ -21,5 +21,7 @@ extern const u8 gFontSmallNarrowerLatinGlyphWidths[]; extern const u16 gFontSmallNarrowerLatinGlyphs[]; extern const u8 gFontShortNarrowLatinGlyphWidths[]; extern const u16 gFontShortNarrowLatinGlyphs[]; +extern const u8 gFontShortNarrowerLatinGlyphWidths[]; +extern const u16 gFontShortNarrowerLatinGlyphs[]; #endif // GUARD_FONTS_H diff --git a/include/gba/defines.h b/include/gba/defines.h index 6366355875..c54dac8c13 100644 --- a/include/gba/defines.h +++ b/include/gba/defines.h @@ -10,6 +10,7 @@ #define EWRAM_DATA __attribute__((section(".sbss"))) #define IWRAM_INIT __attribute__((section(".iwram"))) #define EWRAM_INIT __attribute__((section(".ewram"))) +#define COMMON_DATA __attribute__((section("common_data"))) #define UNUSED __attribute__((unused)) #if MODERN @@ -81,7 +82,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.fieldmap.h b/include/global.fieldmap.h index af20bbd3ac..9a555e4450 100644 --- a/include/global.fieldmap.h +++ b/include/global.fieldmap.h @@ -199,7 +199,7 @@ struct ObjectEvent u32 hideReflection:1; u32 shiny:1; // OW mon shininess u32 padding:3; - /*0x04*/ u16 graphicsId; // 11 bits for species; high 5 bits for form + /*0x04*/ u16 graphicsId; // 12 bits for species; high 4 bits for form /*0x06*/ u8 movementType; /*0x07*/ u8 trainerType; /*0x08*/ u8 localId; diff --git a/include/global.h b/include/global.h index a9da655b3a..c0c56b582e 100644 --- a/include/global.h +++ b/include/global.h @@ -76,7 +76,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) @@ -117,7 +117,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/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/include/graphics.h b/include/graphics.h index e11acf8978..527f793d37 100644 --- a/include/graphics.h +++ b/include/graphics.h @@ -7,6 +7,8 @@ extern const u32 gMessageBox_Gfx[]; extern const u16 gMessageBox_Pal[]; // pokeballs +extern const u32 gBallGfx_Strange[]; +extern const u32 gBallPal_Strange[]; extern const u32 gBallGfx_Poke[]; extern const u32 gBallPal_Poke[]; extern const u32 gBallGfx_Great[]; @@ -360,6 +362,8 @@ extern const u32 gRaySceneChasesAway_Light_Gfx[]; extern const u32 gRaySceneChasesAway_Ring_Gfx[]; // Poké Balls +extern const u32 gItemIcon_StrangeBall[]; +extern const u32 gItemIconPalette_StrangeBall[]; extern const u32 gItemIcon_PokeBall[]; extern const u32 gItemIconPalette_PokeBall[]; extern const u32 gItemIcon_GreatBall[]; @@ -2887,6 +2891,8 @@ extern const u32 gBattleAnimSpritePal_IvyCudgelGrass[]; extern const u32 gBattleAnimSpritePal_IvyCudgelFire[]; extern const u32 gBattleAnimSpritePal_IvyCudgelRock[]; extern const u32 gBattleAnimSpritePal_IvyCudgelWater[]; +extern const u32 gBattleAnimSpriteGfx_PinkVioletOrb[]; +extern const u32 gBattleAnimSpritePal_PinkVioletOrb[]; extern const u32 gBattleAnimBgImage_Dark[]; extern const u32 gBattleAnimBgImage_Ghost[]; 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/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/include/item.h b/include/item.h index dc1efc68a5..b99a6f30c2 100644 --- a/include/item.h +++ b/include/item.h @@ -18,7 +18,9 @@ struct Item u8 pluralName[ITEM_NAME_PLURAL_LENGTH]; u8 holdEffect; u8 holdEffectParam; - u8 importance; + u8 importance:2; + u8 notConsumed:1; + u8 padding:5; u8 pocket; u8 type; u8 battleUsage; @@ -73,11 +75,12 @@ u32 ItemId_GetHoldEffect(u32 itemId); u32 ItemId_GetHoldEffectParam(u32 itemId); const u8 *ItemId_GetDescription(u16 itemId); u8 ItemId_GetImportance(u16 itemId); +u8 ItemId_GetConsumability(u16 itemId); u8 ItemId_GetPocket(u16 itemId); u8 ItemId_GetType(u16 itemId); ItemUseFunc ItemId_GetFieldFunc(u16 itemId); u8 ItemId_GetBattleUsage(u16 itemId); -u8 ItemId_GetSecondaryId(u16 itemId); +u32 ItemId_GetSecondaryId(u32 itemId); u32 ItemId_GetFlingPower(u32 itemId); u32 GetItemStatus1Mask(u16 itemId); u32 GetItemStatus2Mask(u16 itemId); diff --git a/include/line_break.h b/include/line_break.h new file mode 100644 index 0000000000..c423c9bf40 --- /dev/null +++ b/include/line_break.h @@ -0,0 +1,33 @@ +#ifndef GUARD_LINE_BREAK_H +#define GUARD_LINE_BREAK_H + +#define BADNESS_UNFILLED 1 // Badness added per pixel diff from max width +#define BADNESS_JAGGED 1 // Badness added per pixel diff from longest, squared per line +#define BADNESS_RUNT 100 // Badness added if there's a runt +#define BADNESS_OVERFLOW 100 // Badness added per pixel overflow, squared per line (not used) +#define BADNESS_WIDE_SPACE 1 // Badness added per extra pixel width (not used) +#define MAX_SPACE_WIDTH 5 + +struct StringWord { + u32 startIndex:16; + u32 length:8; + u32 width:8; +}; + +struct StringLine { + struct StringWord *words; + u16 numWords; + u8 spaceWidth; + u8 extraSpaceWidth; +}; + +void StripLineBreaks(u8 *src); +void BreakStringAutomatic(u8 *src, u32 maxWidth, u32 screenLines, u8 fontId); +void BreakSubStringAutomatic(u8 *src, u32 maxWidth, u32 screenLines, u8 fontId); + +bool32 IsWordSplittingChar(const u8 *src, u32 index); +u32 GetStringBadness(struct StringLine *stringLines, u32 numLines, u32 maxWidth); +void BuildNewString(struct StringLine *stringLines, u32 numLines, u32 maxLines, u8 *str); +bool32 StringHasManualBreaks(u8 *src); + +#endif // GUARD_LINE_BREAK_H 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/gflib/malloc.h b/include/malloc.h similarity index 100% rename from gflib/malloc.h rename to include/malloc.h 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/move_relearner.h b/include/move_relearner.h index 903c80ac7a..c97b3894b1 100644 --- a/include/move_relearner.h +++ b/include/move_relearner.h @@ -4,5 +4,8 @@ void TeachMoveRelearnerMove(void); void MoveRelearnerShowHideHearts(s32); void MoveRelearnerShowHideCategoryIcon(s32); +void CB2_InitLearnMove(void); + +extern u8 gOriginSummaryScreenPage; #endif //GUARD_MOVE_RELEARNER_H diff --git a/include/party_menu.h b/include/party_menu.h index abea29b6bb..a34f06cec6 100644 --- a/include/party_menu.h +++ b/include/party_menu.h @@ -102,6 +102,5 @@ void MoveDeleterForgetMove(void); void BufferMoveDeleterNicknameAndMove(void); void GetNumMovesSelectedMonHas(void); void MoveDeleterChooseMoveToForget(void); -bool32 IsItemFlute(u16 item); #endif // GUARD_PARTY_MENU_H diff --git a/include/pokeball.h b/include/pokeball.h index 01d995a458..d327df5d99 100644 --- a/include/pokeball.h +++ b/include/pokeball.h @@ -1,35 +1,36 @@ #ifndef GUARD_POKEBALL_H #define GUARD_POKEBALL_H -enum +enum PokeBall { - BALL_POKE, - BALL_GREAT, - BALL_ULTRA, - BALL_MASTER, - BALL_PREMIER, - BALL_HEAL, - BALL_NET, - BALL_NEST, - BALL_DIVE, - BALL_DUSK, - BALL_TIMER, - BALL_QUICK, - BALL_REPEAT, - BALL_LUXURY, - BALL_LEVEL, - BALL_LURE, - BALL_MOON, - BALL_FRIEND, - BALL_LOVE, - BALL_FAST, - BALL_HEAVY, - BALL_DREAM, - BALL_SAFARI, - BALL_SPORT, - BALL_PARK, - BALL_BEAST, - BALL_CHERISH, + BALL_STRANGE = 0, + BALL_POKE = 1, + BALL_GREAT = 2, + BALL_ULTRA = 3, + BALL_MASTER = 4, + BALL_PREMIER = 5, + BALL_HEAL = 6, + BALL_NET = 7, + BALL_NEST = 8, + BALL_DIVE = 9, + BALL_DUSK = 10, + BALL_TIMER = 11, + BALL_QUICK = 12, + BALL_REPEAT = 13, + BALL_LUXURY = 14, + BALL_LEVEL = 15, + BALL_LURE = 16, + BALL_MOON = 17, + BALL_FRIEND = 18, + BALL_LOVE = 19, + BALL_FAST = 20, + BALL_HEAVY = 21, + BALL_DREAM = 22, + BALL_SAFARI = 23, + BALL_SPORT = 24, + BALL_PARK = 25, + BALL_BEAST = 26, + BALL_CHERISH = 27, POKEBALL_COUNT }; @@ -56,5 +57,6 @@ void StartHealthboxSlideIn(u8 battler); void DoHitAnimHealthboxEffect(u8 battler); void LoadBallGfx(u8 ballId); void FreeBallGfx(u8 ballId); +enum PokeBall ItemIdToBallId(u32 ballItem); #endif // GUARD_POKEBALL_H diff --git a/include/pokedex.h b/include/pokedex.h index be861fe682..0bd91449c3 100644 --- a/include/pokedex.h +++ b/include/pokedex.h @@ -4,20 +4,6 @@ extern u8 gUnusedPokedexU8; extern void (*gPokedexVBlankCB)(void); -enum -{ - DEX_MODE_HOENN, - DEX_MODE_NATIONAL -}; - -enum -{ - FLAG_GET_SEEN, - FLAG_GET_CAUGHT, - FLAG_SET_SEEN, - FLAG_SET_CAUGHT -}; - void ResetPokedex(void); u16 GetNationalPokedexCount(u8); u16 GetHoennPokedexCount(u8); diff --git a/include/pokemon.h b/include/pokemon.h index 14288ddee7..8a618f5fe1 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -351,118 +351,130 @@ struct Evolution struct SpeciesInfo /*0xC4*/ { - /* 0x00 */ u8 baseHP; - /* 0x01 */ u8 baseAttack; - /* 0x02 */ u8 baseDefense; - /* 0x03 */ u8 baseSpeed; - /* 0x04 */ u8 baseSpAttack; - /* 0x05 */ u8 baseSpDefense; - /* 0x06 */ u8 types[2]; - /* 0x08 */ u8 catchRate; - /* 0x09 */ u8 forceTeraType; - /* 0x0A */ u16 expYield; // expYield was changed from u8 to u16 for the new Exp System. - /* 0x0C */ u16 evYield_HP:2; - u16 evYield_Attack:2; - u16 evYield_Defense:2; - u16 evYield_Speed:2; - /* 0x0D */ u16 evYield_SpAttack:2; - u16 evYield_SpDefense:2; - u16 padding2:4; - /* 0x0E */ u16 itemCommon; - /* 0x10 */ u16 itemRare; - /* 0x12 */ u8 genderRatio; - /* 0x13 */ u8 eggCycles; - /* 0x14 */ u8 friendship; - /* 0x15 */ u8 growthRate; - /* 0x16 */ u8 eggGroups[2]; - /* 0x18 */ u16 abilities[NUM_ABILITY_SLOTS]; // 3 abilities, no longer u8 because we have over 255 abilities now. - /* 0x1E */ u8 safariZoneFleeRate; + u8 baseHP; + u8 baseAttack; + u8 baseDefense; + u8 baseSpeed; + u8 baseSpAttack; + u8 baseSpDefense; + u8 types[2]; + u8 catchRate; + u8 forceTeraType; + u16 expYield; // expYield was changed from u8 to u16 for the new Exp System. + u16 evYield_HP:2; + u16 evYield_Attack:2; + u16 evYield_Defense:2; + u16 evYield_Speed:2; + u16 evYield_SpAttack:2; + u16 evYield_SpDefense:2; + u16 padding2:4; + u16 itemCommon; + u16 itemRare; + u8 genderRatio; + u8 eggCycles; + u8 friendship; + u8 growthRate; + u8 eggGroups[2]; + u16 abilities[NUM_ABILITY_SLOTS]; // 3 abilities, no longer u8 because we have over 255 abilities now. + u8 safariZoneFleeRate; - // Pokédex data - /* 0x1F */ u8 categoryName[13]; - /* 0x1F */ u8 speciesName[POKEMON_NAME_LENGTH + 1]; - /* 0x2C */ u16 cryId; - /* 0x2E */ u16 natDexNum; - /* 0x30 */ u16 height; //in decimeters - /* 0x32 */ u16 weight; //in hectograms - /* 0x34 */ u16 pokemonScale; - /* 0x36 */ u16 pokemonOffset; - /* 0x38 */ u16 trainerScale; - /* 0x3A */ u16 trainerOffset; - /* 0x3C */ const u8 *description; - /* 0x40 */ u8 bodyColor:7; - // Graphical Data - u8 noFlip:1; - /* 0x41 */ u8 frontAnimDelay; - /* 0x42 */ u8 frontAnimId; - /* 0x43 */ u8 backAnimId; - /* 0x44 */ const union AnimCmd *const *frontAnimFrames; - /* 0x48 */ const u32 *frontPic; - /* 0x4C */ const u32 *frontPicFemale; - /* 0x50 */ const u32 *backPic; - /* 0x54 */ const u32 *backPicFemale; - /* 0x58 */ const u32 *palette; - /* 0x5C */ const u32 *paletteFemale; - /* 0x60 */ const u32 *shinyPalette; - /* 0x64 */ const u32 *shinyPaletteFemale; - /* 0x68 */ const u8 *iconSprite; - /* 0x6C */ const u8 *iconSpriteFemale; + // Pokédex data + u8 categoryName[13]; + u8 speciesName[POKEMON_NAME_LENGTH + 1]; + u16 cryId; + u16 natDexNum; + u16 height; //in decimeters + u16 weight; //in hectograms + u16 pokemonScale; + u16 pokemonOffset; + u16 trainerScale; + u16 trainerOffset; + const u8 *description; + u8 bodyColor:7; + // Graphical Data + u8 noFlip:1; + u8 frontAnimDelay; + u8 frontAnimId; + u8 backAnimId; + const union AnimCmd *const *frontAnimFrames; + const u32 *frontPic; + const u32 *backPic; + const u32 *palette; + const u32 *shinyPalette; + const u8 *iconSprite; +#if P_GENDER_DIFFERENCES + const u32 *frontPicFemale; + const u32 *backPicFemale; + const u32 *paletteFemale; + const u32 *shinyPaletteFemale; + const u8 *iconSpriteFemale; +#endif //P_GENDER_DIFFERENCES #if P_FOOTPRINTS - /* 0x70 */ const u8 *footprint; + const u8 *footprint; #endif - // All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame the sprite's non-transparent pixels actually are. - /* 0x74 */ u8 frontPicSize; // The dimensions of this drawn pixel area. - /* 0x74 */ u8 frontPicSizeFemale; // The dimensions of this drawn pixel area. - /* 0x75 */ u8 frontPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. - /* 0x76 */ u8 backPicSize; // The dimensions of this drawn pixel area. - /* 0x76 */ u8 backPicSizeFemale; // The dimensions of this drawn pixel area. - /* 0x77 */ u8 backPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. - /* 0x78 */ u8 iconPalIndex:3; - u8 iconPalIndexFemale:3; - u8 padding3:2; - /* 0x79 */ u8 enemyMonElevation; // This determines how much higher above the usual position the enemy Pokémon is during battle. Species that float or fly have nonzero values. - // Flags - /* 0x7A */ u32 isLegendary:1; - u32 isMythical:1; - u32 isUltraBeast:1; - u32 isParadox:1; - u32 isTotem:1; - u32 isMegaEvolution:1; - u32 isPrimalReversion:1; - u32 isUltraBurst:1; - u32 isGigantamax:1; - u32 isTeraForm:1; - u32 isAlolanForm:1; - u32 isGalarianForm:1; - u32 isHisuianForm:1; - u32 isPaldeanForm:1; - u32 cannotBeTraded:1; - u32 perfectIVCount:3; // This species will always generate with the specified amount of perfect IVs. - u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set. - u32 tmIlliterate:1; // This species will be unable to learn the universal moves. - u32 isFrontierBanned:1; // This species is not allowed to participate in Battle Frontier facilities. - u32 padding4:11; - // Shadow settings - s8 enemyShadowXOffset; // This determines the X-offset for an enemy Pokémon's shadow during battle; negative values point left, positive values point right. - s8 enemyShadowYOffset; // This determines the Y-offset for an enemy Pokémon's shadow during battle; negative values point up, positive values point down. - u16 enemyShadowSize:3; // This determines the size of the shadow sprite used for an enemy Pokémon's front sprite during battle. - u16 suppressEnemyShadow:1; // If set to true, then a shadow will not be drawn beneath an enemy Pokémon's front sprite during battle. - u16 padding5:12; - // Move Data - /* 0x80 */ const struct LevelUpMove *levelUpLearnset; - /* 0x84 */ const u16 *teachableLearnset; - /* 0x88 */ const u16 *eggMoveLearnset; - /* 0x8C */ const struct Evolution *evolutions; - /* 0x90 */ const u16 *formSpeciesIdTable; - /* 0x94 */ const struct FormChange *formChangeTable; + // All Pokémon pics are 64x64, but this data table defines where in this 64x64 frame the sprite's non-transparent pixels actually are. + u8 frontPicSize; // The dimensions of this drawn pixel area. + u8 frontPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. + u8 backPicSize; // The dimensions of this drawn pixel area. + u8 backPicYOffset; // The number of pixels between the drawn pixel area and the bottom edge. +#if P_GENDER_DIFFERENCES + u8 frontPicSizeFemale; // The dimensions of this drawn pixel area. + u8 backPicSizeFemale; // The dimensions of this drawn pixel area. +#endif //P_GENDER_DIFFERENCES + u8 iconPalIndex:3; +#if P_GENDER_DIFFERENCES + u8 iconPalIndexFemale:3; +#else + u8 paddingF:3; +#endif //P_GENDER_DIFFERENCES + u8 padding3:2; + u8 enemyMonElevation; // This determines how much higher above the usual position the enemy Pokémon is during battle. Species that float or fly have nonzero values. + // Flags + u32 isLegendary:1; + u32 isMythical:1; + u32 isUltraBeast:1; + u32 isParadox:1; + u32 isTotem:1; + u32 isMegaEvolution:1; + u32 isPrimalReversion:1; + u32 isUltraBurst:1; + u32 isGigantamax:1; + u32 isTeraForm:1; + u32 isAlolanForm:1; + u32 isGalarianForm:1; + u32 isHisuianForm:1; + u32 isPaldeanForm:1; + u32 cannotBeTraded:1; + u32 perfectIVCount:3; // This species will always generate with the specified amount of perfect IVs. + u32 dexForceRequired:1; // This species will be taken into account for Pokédex ratings even if they have the "isMythical" flag set. + u32 tmIlliterate:1; // This species will be unable to learn the universal moves. + u32 isFrontierBanned:1; // This species is not allowed to participate in Battle Frontier facilities. + u32 padding4:11; + // Shadow settings + s8 enemyShadowXOffset; // This determines the X-offset for an enemy Pokémon's shadow during battle; negative values point left, positive values point right. + s8 enemyShadowYOffset; // This determines the Y-offset for an enemy Pokémon's shadow during battle; negative values point up, positive values point down. + u16 enemyShadowSize:3; // This determines the size of the shadow sprite used for an enemy Pokémon's front sprite during battle. + u16 suppressEnemyShadow:1; // If set to true, then a shadow will not be drawn beneath an enemy Pokémon's front sprite during battle. + u16 padding5:12; + // Move Data + const struct LevelUpMove *levelUpLearnset; + const u16 *teachableLearnset; + const u16 *eggMoveLearnset; + const struct Evolution *evolutions; + const u16 *formSpeciesIdTable; + const struct FormChange *formChangeTable; #if OW_POKEMON_OBJECT_EVENTS - /* 0x98 */ struct ObjectEventGraphicsInfo overworldData; - struct ObjectEventGraphicsInfo overworldDataFemale; + struct ObjectEventGraphicsInfo overworldData; +#if P_GENDER_DIFFERENCES + struct ObjectEventGraphicsInfo overworldDataFemale; +#endif //P_GENDER_DIFFERENCES #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - /* 0xBC */ const void* overworldPalette; - const void* overworldPaletteFemale; - /* 0xC0 */ const void* overworldShinyPalette; - const void* overworldShinyPaletteFemale; + const void* overworldPalette; + const void* overworldShinyPalette; +#if P_GENDER_DIFFERENCES + const void* overworldPaletteFemale; + const void* overworldShinyPaletteFemale; +#endif //P_GENDER_DIFFERENCES #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS }; @@ -773,6 +785,7 @@ u8 GiveMonToPlayer(struct Pokemon *mon); u8 CopyMonToPC(struct Pokemon *mon); u8 CalculatePlayerPartyCount(void); u8 CalculateEnemyPartyCount(void); +u8 CalculateEnemyPartyCountInSide(u32 battler); u8 GetMonsStateToDoubles(void); u8 GetMonsStateToDoubles_2(void); u16 GetAbilityBySpecies(u16 species, u8 abilityNum); @@ -797,7 +810,7 @@ u8 CalculatePPWithBonus(u16 move, u8 ppBonuses, u8 moveIndex); void RemoveMonPPBonus(struct Pokemon *mon, u8 moveIndex); void RemoveBattleMonPPBonus(struct BattlePokemon *mon, u8 moveIndex); void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst); -void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex); +void CopyPartyMonToBattleData(u32 battlerId, u32 partyIndex); bool8 ExecuteTableBasedItemEffect(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex); bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 moveIndex, u8 e); bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId); diff --git a/include/pokemon_summary_screen.h b/include/pokemon_summary_screen.h index 924702baf9..fe299c48b4 100755 --- a/include/pokemon_summary_screen.h +++ b/include/pokemon_summary_screen.h @@ -11,6 +11,7 @@ extern const struct CompressedSpriteSheet gSpriteSheet_MoveTypes; extern const struct CompressedSpriteSheet gSpriteSheet_CategoryIcons; extern const struct SpritePalette gSpritePal_CategoryIcons; extern const struct SpriteTemplate gSpriteTemplate_CategoryIcons; +extern MainCallback gInitialSummaryScreenCallback; void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void)); void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove); @@ -25,7 +26,19 @@ enum PokemonSummaryScreenMode SUMMARY_MODE_NORMAL, SUMMARY_MODE_LOCK_MOVES, SUMMARY_MODE_BOX, + SUMMARY_MODE_BOX_CURSOR, // mon is being moved in PC SUMMARY_MODE_SELECT_MOVE, + SUMMARY_MODE_RELEARNER_BATTLE, // returning from move relearner initiated from battle moves page + SUMMARY_MODE_RELEARNER_CONTEST, // returning from move relearner initiated from contest moves page +}; + +enum PokemonSummaryScreenPage +{ + PSS_PAGE_INFO, + PSS_PAGE_SKILLS, + PSS_PAGE_BATTLE_MOVES, + PSS_PAGE_CONTEST_MOVES, + PSS_PAGE_COUNT, }; #endif // GUARD_POKEMON_SUMMARY_SCREEN_H diff --git a/include/random.h b/include/random.h index 6e210bcbb4..000bc1302c 100644 --- a/include/random.h +++ b/include/random.h @@ -3,8 +3,8 @@ // 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) /* Some functions have been added to support Expansion's RNG implementation. * @@ -162,8 +162,20 @@ enum RandomTag RNG_FICKLE_BEAM, RNG_AI_ABILITY, RNG_AI_SWITCH_HASBADODDS, - RNG_AI_SWITCH_WONDER_GUARD, + RNG_AI_SWITCH_BADLY_POISONED, + RNG_AI_SWITCH_CURSED, + RNG_AI_SWITCH_NIGHTMARE, + RNG_AI_SWITCH_SEEDED, + RNG_AI_SWITCH_ABSORBING, + RNG_AI_SWITCH_NATURAL_CURE, + RNG_AI_SWITCH_REGENERATOR, + RNG_AI_SWITCH_ENCORE, + RNG_AI_SWITCH_STATS_LOWERED, + RNG_AI_SWITCH_SE_DEFENSIVE, RNG_SHELL_SIDE_ARM, + RNG_RANDOM_TARGET, + RNG_AI_PREDICT_ABILITY, + RNG_HEALER, }; #define RandomWeighted(tag, ...) \ 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 diff --git a/include/sound.h b/include/sound.h index b39a7306a6..92fd055649 100644 --- a/include/sound.h +++ b/include/sound.h @@ -45,5 +45,6 @@ void SE12PanpotControl(s8 pan); bool8 IsSEPlaying(void); bool8 IsBGMPlaying(void); bool8 IsSpecialSEPlaying(void); +void Task_DuckBGMForPokemonCry(u8 taskId); #endif // GUARD_SOUND_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 98% rename from gflib/string_util.h rename to include/string_util.h index 9e5dfffd57..d4c954bc5e 100644 --- a/gflib/string_util.h +++ b/include/string_util.h @@ -21,6 +21,7 @@ u8 *StringAppend(u8 *dest, const u8 *src); u8 *StringCopyN(u8 *dest, const u8 *src, u8 n); u8 *StringAppendN(u8 *dest, const u8 *src, u8 n); u16 StringLength(const u8 *str); +u16 StringLineLength(const u8 *str); s32 StringCompare(const u8 *str1, const u8 *str2); s32 StringCompareN(const u8 *str1, const u8 *str2, u32 n); bool8 IsStringLengthAtLeast(const u8 *str, s32 n); diff --git a/include/strings.h b/include/strings.h index b1078bed0a..8e1f797079 100644 --- a/include/strings.h +++ b/include/strings.h @@ -177,12 +177,7 @@ extern const u8 gMenuText_Toss[]; extern const u8 gMenuText_Give[]; extern const u8 gMenuText_Give2[]; extern const u8 gMenuText_Register[]; -extern const u8 gMenuText_Check[]; -extern const u8 gMenuText_Walk[]; -extern const u8 gMenuText_Deselect[]; -extern const u8 gMenuText_CheckTag[]; extern const u8 gMenuText_Confirm[]; -extern const u8 gMenuText_Show[]; extern const u8 gMenuText_Give2[]; extern const u8 gText_EggNickname[]; @@ -318,15 +313,10 @@ extern const u8 gText_ThrewAwayVar2Var1s[]; extern const u8 gText_CantWriteMail[]; extern const u8 gText_NoPokemon[]; extern const u8 gText_Var1CantBeHeld[]; -extern const u8 gText_Var1CantBeHeldHere[]; extern const u8 gText_CantBuyKeyItem[]; extern const u8 gText_HowManyToSell[]; extern const u8 gText_ICanPayVar1[]; extern const u8 gText_TurnedOverVar1ForVar2[]; -extern const u8 gText_DepositHowManyVar1[]; -extern const u8 gText_CantStoreImportantItems[]; -extern const u8 gText_DepositedVar2Var1s[]; -extern const u8 gText_NoRoomForItems[]; extern const u8 gText_ThreeDashes[]; extern const u8 *const gPocketNamesStringsTable[]; @@ -450,28 +440,12 @@ extern const u8 gBirchDexRatingText_LessThan190[]; extern const u8 gBirchDexRatingText_LessThan200[]; extern const u8 gBirchDexRatingText_DexCompleted[]; -// player pc text +// player PC text extern const u8 gText_WhatWouldYouLike[]; extern const u8 gText_NoMailHere[]; - -extern const u8 gText_TakeOutItemsFromPC[]; -extern const u8 gText_StoreItemsInPC[]; -extern const u8 gText_ThrowAwayItemsInPC[]; extern const u8 gText_GoBackPrevMenu[]; - -extern const u8 gText_ItemStorage[]; -extern const u8 gText_Mailbox[]; -extern const u8 gText_Decoration[]; -extern const u8 gText_TurnOff[]; - -extern const u8 gText_WithdrawItem[]; -extern const u8 gText_DepositItem[]; -extern const u8 gText_TossItem[]; extern const u8 gText_Cancel[]; -extern const u8 gText_Read[]; -extern const u8 gText_MoveToBag[]; -extern const u8 gText_Give2[]; extern const u8 gText_Cancel2[]; extern const u8 gText_NoItems[]; @@ -481,12 +455,8 @@ extern const u8 gText_BagIsFull[]; extern const u8 gText_MailToBagMessageErased[]; extern const u8 gText_GoBackPrevMenu[]; -extern const u8 gText_WithdrawHowManyItems[]; -extern const u8 gText_WithdrawXItems[]; extern const u8 gText_TossHowManyVar1s[]; extern const u8 gText_ThrewAwayVar2Var1s[]; -extern const u8 gText_NoRoomInBag[]; -extern const u8 gText_TooImportantToToss[]; extern const u8 gText_ConfirmTossItems[]; extern const u8 gText_MoveVar1Where[]; @@ -509,16 +479,6 @@ extern const u8 gText_HealthboxGender_None[]; extern const u8 gText_HealthboxGender_Male[]; extern const u8 gText_HealthboxGender_Female[]; -extern const u8 gText_99TimesPlus[]; -extern const u8 gText_1MinutePlus[]; -extern const u8 gText_SpaceSeconds[]; -extern const u8 gText_SpaceTimes[]; - -extern const u8 gText_BigGuy[]; -extern const u8 gText_BigGirl[]; -extern const u8 gText_Son[]; -extern const u8 gText_Daughter[]; - // Multichoice strings extern const u8 gText_Exit[]; extern const u8 gText_1F[]; @@ -539,73 +499,6 @@ extern const u8 gText_B4F[]; extern const u8 gText_Rooftop[]; extern const u8 gText_ElevatorNowOn[]; -extern const u8 gText_BlueFlute[]; -extern const u8 gText_YellowFlute[]; -extern const u8 gText_RedFlute[]; -extern const u8 gText_WhiteFlute[]; -extern const u8 gText_BlackFlute[]; -extern const u8 gText_PrettyChair[]; -extern const u8 gText_PrettyDesk[]; - -extern const u8 gText_0Pts[]; -extern const u8 gText_10Pts[]; -extern const u8 gText_20Pts[]; -extern const u8 gText_30Pts[]; -extern const u8 gText_40Pts[]; -extern const u8 gText_50Pts[]; -extern const u8 gText_60Pts[]; -extern const u8 gText_70Pts[]; -extern const u8 gText_80Pts[]; -extern const u8 gText_90Pts[]; -extern const u8 gText_100Pts[]; -extern const u8 gText_QuestionMark[]; - -extern const u8 gText_KissPoster16BP[]; -extern const u8 gText_KissCushion32BP[]; -extern const u8 gText_SmoochumDoll32BP[]; -extern const u8 gText_TogepiDoll48BP[]; -extern const u8 gText_MeowthDoll48BP[]; -extern const u8 gText_ClefairyDoll48BP[]; -extern const u8 gText_DittoDoll48BP[]; -extern const u8 gText_CyndaquilDoll80BP[]; -extern const u8 gText_ChikoritaDoll80BP[]; -extern const u8 gText_TotodileDoll80BP[]; - -extern const u8 gText_LaprasDoll128BP[]; -extern const u8 gText_SnorlaxDoll128BP[]; -extern const u8 gText_VenusaurDoll256BP[]; -extern const u8 gText_CharizardDoll256BP[]; -extern const u8 gText_BlastoiseDoll256BP[]; - -extern const u8 gText_Protein1BP[]; -extern const u8 gText_Calcium1BP[]; -extern const u8 gText_Iron1BP[]; -extern const u8 gText_Zinc1BP[]; -extern const u8 gText_Carbos1BP[]; -extern const u8 gText_HpUp1BP[]; - -extern const u8 gText_Leftovers48BP[]; -extern const u8 gText_WhiteHerb48BP[]; -extern const u8 gText_QuickClaw48BP[]; -extern const u8 gText_MentalHerb48BP[]; -extern const u8 gText_BrightPowder64BP[]; -extern const u8 gText_ChoiceBand64BP[]; -extern const u8 gText_KingsRock64BP[]; -extern const u8 gText_FocusBand64BP[]; -extern const u8 gText_ScopeLens64BP[]; - -extern const u8 gText_EnergyPowder50[]; -extern const u8 gText_EnergyRoot80[]; -extern const u8 gText_HealPowder50[]; -extern const u8 gText_RevivalHerb300[]; -extern const u8 gText_Protein1000[]; -extern const u8 gText_Iron1000[]; -extern const u8 gText_Carbos1000[]; -extern const u8 gText_Calcium1000[]; -extern const u8 gText_Zinc1000[]; -extern const u8 gText_HPUp1000[]; -extern const u8 gText_PPUp3000[]; - extern const u8 gText_BattleTower2[]; extern const u8 gText_BattleDome[]; extern const u8 gText_BattlePalace[]; @@ -616,28 +509,6 @@ extern const u8 gText_BattlePyramid[]; extern const u8 gText_RankingHall[]; extern const u8 gText_ExchangeService[]; -// Battle Frontier Move Tutors -extern const u8 gText_Softboiled16BP[]; -extern const u8 gText_SeismicToss24BP[]; -extern const u8 gText_DreamEater24BP[]; -extern const u8 gText_MegaPunch24BP[]; -extern const u8 gText_MegaKick48BP[]; -extern const u8 gText_BodySlam48BP[]; -extern const u8 gText_RockSlide48BP[]; -extern const u8 gText_Counter48BP[]; -extern const u8 gText_ThunderWave48BP[]; -extern const u8 gText_SwordsDance48BP[]; -extern const u8 gText_DefenseCurl16BP[]; -extern const u8 gText_Snore24BP[]; -extern const u8 gText_MudSlap24BP[]; -extern const u8 gText_Swift24BP[]; -extern const u8 gText_IcyWind24BP[]; -extern const u8 gText_Endure48BP[]; -extern const u8 gText_PsychUp48BP[]; -extern const u8 gText_IcePunch48BP[]; -extern const u8 gText_ThunderPunch48BP[]; -extern const u8 gText_FirePunch48BP[]; - extern const u8 gText_SlateportCity[]; extern const u8 gText_BattleFrontier[]; extern const u8 gText_SouthernIsland[]; @@ -816,26 +687,12 @@ extern const u8 gText_Gabby[]; extern const u8 gText_Anna[]; extern const u8 gText_DadsAdvice[]; -extern const u8 gText_CantDismountBike[]; -extern const u8 gText_ItemFinderNothing[]; -extern const u8 gText_ItemFinderNearby[]; -extern const u8 gText_ItemFinderOnTop[]; -extern const u8 gText_CoinCase[]; -extern const u8 gText_PowderQty[]; -extern const u8 gText_BootedUpHM[]; -extern const u8 gText_BootedUpTM[]; -extern const u8 gText_TMHMContainedVar1[]; extern const u8 gText_PlayerUsedVar2[]; extern const u8 gText_RepelEffectsLingered[]; extern const u8 gText_LureEffectsLingered[]; -extern const u8 gText_UsedVar2WildLured[]; -extern const u8 gText_UsedVar2WildRepelled[]; extern const u8 gText_BoxFull[]; extern const u8 gText_WontHaveEffect[]; extern const u8 gText_NextFusionMon[]; -extern const u8 gText_PlayedPokeFluteCatchy[]; -extern const u8 gText_PlayedPokeFlute[]; -extern const u8 gText_PokeFluteAwakenedMon[]; extern const u8 gText_LevelSymbol[]; extern const u8 gText_PkmnInfo[]; @@ -934,31 +791,13 @@ extern const u8 gText_SomeonesPC[]; extern const u8 gText_PlayersPC[]; extern const u8 gText_WhichPCShouldBeAccessed[]; -extern const u8 gText_Petalburg[]; -extern const u8 gText_Slateport[]; -extern const u8 gText_Enter2[]; extern const u8 gText_Info2[]; -extern const u8 gText_WhatsAContest[]; -extern const u8 gText_TypesOfContests[]; -extern const u8 gText_Ranks[]; extern const u8 gText_Decoration2[]; extern const u8 gText_PackUp[]; extern const u8 gText_Registry[]; extern const u8 gText_Information[]; -extern const u8 gText_Mach[]; -extern const u8 gText_Acro[]; -extern const u8 gText_Psn[]; -extern const u8 gText_Par[]; -extern const u8 gText_Slp[]; -extern const u8 gText_Brn[]; -extern const u8 gText_Frz[]; -extern const u8 gText_Dewford[]; -extern const u8 gText_SawIt[]; -extern const u8 gText_NotYet[]; extern const u8 gText_Yes[]; extern const u8 gText_No[]; -extern const u8 gText_Challenge[]; -extern const u8 gText_Info3[]; // Pokédex strings extern const u8 gText_SearchForPkmnBasedOnParameters[]; @@ -1009,41 +848,7 @@ extern const u8 gText_DexEmptyString[]; extern const u8 gText_DexSearchDontSpecify[]; extern const u8 gText_DexSearchTypeNone[]; -extern const u8 gText_FreshWaterAndPrice[]; -extern const u8 gText_SodaPopAndPrice[]; -extern const u8 gText_LemonadeAndPrice[]; -extern const u8 gText_HowToRide[]; -extern const u8 gText_HowToTurn[]; -extern const u8 gText_SandySlopes[]; -extern const u8 gText_Wheelies[]; -extern const u8 gText_BunnyHops[]; -extern const u8 gText_Jump[]; -extern const u8 gText_Satisfied[]; -extern const u8 gText_Dissatisfied[]; -extern const u8 gText_DeepSeaTooth[]; -extern const u8 gText_DeepSeaScale[]; -extern const u8 gText_BlueFlute2[]; -extern const u8 gText_YellowFlute2[]; -extern const u8 gText_RedFlute2[]; -extern const u8 gText_WhiteFlute2[]; -extern const u8 gText_BlackFlute2[]; -extern const u8 gText_GlassChair[]; -extern const u8 gText_GlassDesk[]; -extern const u8 gText_TreeckoDollAndPrice[]; -extern const u8 gText_TorchicDollAndPrice[]; -extern const u8 gText_MudkipDollAndPrice[]; -extern const u8 gText_TM32AndPrice[]; -extern const u8 gText_TM29AndPrice[]; -extern const u8 gText_TM35AndPrice[]; -extern const u8 gText_TM24AndPrice[]; -extern const u8 gText_TM13AndPrice[]; -extern const u8 gText_50CoinsAndPrice[]; -extern const u8 gText_500CoinsAndPrice[]; -extern const u8 gText_Excellent2[]; -extern const u8 gText_NotSoGood[]; extern const u8 gText_LilycoveCity[]; -extern const u8 gText_Right[]; -extern const u8 gText_Left[]; extern const u8 gText_RedShard[]; extern const u8 gText_YellowShard[]; extern const u8 gText_BlueShard[]; @@ -1054,79 +859,20 @@ extern const u8 gText_ReadyToStart[]; extern const u8 gText_Record2[]; extern const u8 gText_Rest[]; extern const u8 gText_Retire[]; -extern const u8 gText_RedTent[]; -extern const u8 gText_BlueTent[]; extern const u8 gText_TradeCenter[]; extern const u8 gText_Colosseum[]; extern const u8 gText_RecordCorner[]; -extern const u8 gText_SingleBattle[]; -extern const u8 gText_DoubleBattle[]; -extern const u8 gText_MultiBattle[]; extern const u8 gText_BerryCrush3[]; -extern const u8 gText_PokemonJump[]; -extern const u8 gText_DodrioBerryPicking[]; -extern const u8 gText_JoinGroup[]; -extern const u8 gText_BecomeLeader[]; -extern const u8 gText_NormalRank[]; -extern const u8 gText_SuperRank[]; -extern const u8 gText_HyperRank[]; -extern const u8 gText_MasterRank[]; -extern const u8 gText_BattleBag[]; -extern const u8 gText_HeldItem[]; -extern const u8 gText_LinkContest[]; -extern const u8 gText_AboutE_Mode[]; -extern const u8 gText_AboutG_Mode[]; -extern const u8 gText_E_Mode[]; -extern const u8 gText_G_Mode[]; extern const u8 gText_Blank[]; -extern const u8 gText_5BP[]; -extern const u8 gText_10BP[]; -extern const u8 gText_15BP[]; -extern const u8 gText_ClawFossil[]; -extern const u8 gText_RootFossil[]; -extern const u8 gText_No4[]; -extern const u8 gText_TwoStyles[]; -extern const u8 gText_Lv50_3[]; -extern const u8 gText_OpenLevel2[]; -extern const u8 gText_MonTypeAndNo[]; -extern const u8 gText_HoldItems[]; -extern const u8 gText_Symbols2[]; -extern const u8 gText_Record3[]; -extern const u8 gText_BattlePts[]; extern const u8 gText_BattleRules[]; extern const u8 gText_JudgeMind[]; extern const u8 gText_JudgeSkill[]; extern const u8 gText_JudgeBody[]; -extern const u8 gText_TowerInfo[]; -extern const u8 gText_BattleMon[]; -extern const u8 gText_BattleSalon[]; -extern const u8 gText_MultiLink2[]; -extern const u8 gText_Matchup[]; -extern const u8 gText_TourneyTree[]; -extern const u8 gText_DoubleKO[]; extern const u8 gText_BasicRules[]; extern const u8 gText_SwapPartners[]; extern const u8 gText_SwapNumber[]; extern const u8 gText_SwapNotes[]; -extern const u8 gText_OpenLevel3[]; -extern const u8 gText_PyramidPokemon[]; -extern const u8 gText_PyramidTrainers[]; -extern const u8 gText_PyramidMaze[]; -extern const u8 gText_BattleBag2[]; -extern const u8 gText_PokenavAndBag[]; -extern const u8 gText_HeldItems[]; -extern const u8 gText_PokemonOrder[]; extern const u8 gText_GoOn[]; -extern const u8 gText_Red[]; -extern const u8 gText_Blue[]; -extern const u8 gText_IllBattleNow[]; -extern const u8 gText_IWon[]; -extern const u8 gText_ILost[]; -extern const u8 gText_IWontTell[]; -extern const u8 gText_CaveOfOrigin[]; -extern const u8 gText_MtPyre[]; -extern const u8 gText_SkyPillar[]; -extern const u8 gText_DontRemember[]; extern const u8 gText_BattlePokemon[]; extern const u8 gText_NormalTagMatch[]; extern const u8 gText_VarietyTagMatch[]; @@ -1150,19 +896,6 @@ extern const u8 CableClub_Text_YouMayBattleHere[]; extern const u8 CableClub_Text_CanMixRecords[]; extern const u8 CableClub_Text_CanMakeBerryPowder[]; -// Rotom Catalog text -extern const u8 gText_LightBulb[]; -extern const u8 gText_MicrowaveOven[]; -extern const u8 gText_WashingMachine[]; -extern const u8 gText_Refrigerator[]; -extern const u8 gText_ElectricFan[]; -extern const u8 gText_LawnMower[]; -extern const u8 gText_Exit[]; - -// Zygarde Cube text -extern const u8 gText_ChangeForm[]; -extern const u8 gText_ChangeAbility[]; - // Frontier records. extern const u8 gText_WinStreak[]; extern const u8 gText_Record[]; @@ -1887,21 +1620,8 @@ extern const u8 gText_NotAble2[]; extern const u8 gText_Learned[]; extern const u8 gText_Have[]; extern const u8 gText_DontHave[]; -extern const u8 gText_Take[]; -extern const u8 gText_Mail[]; -extern const u8 gText_Take2[]; -extern const u8 gText_Read2[]; extern const u8 gText_Cancel2[]; -extern const u8 gText_Shift[]; -extern const u8 gText_SendOut[]; -extern const u8 gText_Enter[]; -extern const u8 gText_NoEntry[]; -extern const u8 gText_Store[]; extern const u8 gText_Register[]; -extern const u8 gText_Trade4[]; -extern const u8 gText_Summary5[]; -extern const u8 gText_Switch2[]; -extern const u8 gText_Item[]; extern const u8 gText_NotPkmnOtherTrainerWants[]; extern const u8 gText_ThatIsntAnEgg[]; extern const u8 gText_OtherTrainersPkmnCantBeTraded[]; @@ -2697,9 +2417,6 @@ extern const u8 gText_ExpShareOff[]; extern const u8 gText_BasePointsResetToZero[]; -extern const u8 gText_Fertilize[]; -extern const u8 gText_PlantBerry[]; - // Map name pop-up extern const u8 gText_AM[]; extern const u8 gText_PM[]; @@ -2708,4 +2425,7 @@ extern const u8 gText_PM[]; extern const u8 gText_PlayerScurriedToCenter[]; extern const u8 gText_PlayerScurriedBackHome[]; +extern const u8 gText_Relearn[]; // move relearner from summary screen +extern const u8 gText_Rename[]; // change nickname from summary screen + #endif // GUARD_STRINGS_H diff --git a/include/test/battle.h b/include/test/battle.h index 041ebc1c72..7cf7053988 100644 --- a/include/test/battle.h +++ b/include/test/battle.h @@ -41,7 +41,7 @@ * TURN { MOVE(player, MOVE_STUN_SPORE); } // 3. * } SCENE { * ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - * MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); // 4 + * MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); // 4 * STATUS_ICON(opponent, paralysis: TRUE); // 4. * } * } @@ -95,7 +95,7 @@ * TURN { MOVE(player, MOVE_STUN_SPORE); } // 3. * } SCENE { * NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); // 4. - * MESSAGE("It doesn't affect Foe Oddish…"); // 5. + * MESSAGE("It doesn't affect the opposing Oddish…"); // 5. * } * } * @@ -256,7 +256,7 @@ * } WHEN { * TURN { MOVE(player, MOVE_CELEBRATE); } * } SCENE { - * MESSAGE("Wobbuffet is paralyzed! It can't move!"); + * MESSAGE("Wobbuffet is paralyzed, so it may be unable to move!"); * } * } * All BattleRandom calls involving tag will return the same number, so @@ -413,7 +413,7 @@ * Spaces in pattern match newlines (\n, \l, and \p) in the message. * Often used to check that a battler took its turn but it failed, e.g.: * MESSAGE("Wobbuffet used Dream Eater!"); - * MESSAGE("Foe Wobbuffet wasn't affected!"); + * MESSAGE("The opposing Wobbuffet wasn't affected!"); * * STATUS_ICON(battler, status1 | none: | sleep: | poison: | burn: | freeze: | paralysis:, badPoison:) * Causes the test to fail if the battler's status is not changed to the @@ -432,7 +432,7 @@ * following command succeeds. * // Our Wobbuffet does not Celebrate before the foe's. * NOT MESSAGE("Wobbuffet used Celebrate!"); - * MESSAGE("Foe Wobbuffet used Celebrate!"); + * MESSAGE("The opposing Wobbuffet used Celebrate!"); * WARNING: NOT is an alias of NONE_OF, so it behaves surprisingly when * applied to multiple commands wrapped in braces. * @@ -440,7 +440,7 @@ * Causes the test to fail unless one of the SCENE commands succeeds. * ONE_OF { * MESSAGE("Wobbuffet used Celebrate!"); - * MESSAGE("Wobbuffet is paralyzed! It can't move!"); + * MESSAGE("Wobbuffet is paralyzed, so it may be unable to move!"); * } * * NONE_OF @@ -449,9 +449,9 @@ * // Our Wobbuffet does not move before the foe's. * NONE_OF { * MESSAGE("Wobbuffet used Celebrate!"); - * MESSAGE("Wobbuffet is paralyzed! It can't move!"); + * MESSAGE("Wobbuffet is paralyzed, so it may be unable to move!"); * } - * MESSAGE("Foe Wobbuffet used Celebrate!"); + * MESSAGE("The opposing Wobbuffet used Celebrate!"); * * PLAYER_PARTY and OPPONENT_PARTY * Refer to the party members defined in GIVEN, e.g.: @@ -682,6 +682,7 @@ struct BattleTestData struct RecordedBattleSave recordedBattle; u8 battleRecordTypes[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE]; + u8 battleRecordTurnNumbers[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE]; u8 battleRecordSourceLineOffsets[MAX_BATTLERS_COUNT][BATTLER_RECORD_SIZE]; u16 recordIndexes[MAX_BATTLERS_COUNT]; struct BattlerTurn battleRecordTurns[MAX_TURNS][MAX_BATTLERS_COUNT]; @@ -715,6 +716,7 @@ struct BattleTestRunnerState u16 observedRatio; u16 trialRatio; bool8 runRandomly:1; + bool8 didRunRandomly:1; bool8 runGiven:1; bool8 runWhen:1; bool8 runScene:1; @@ -735,6 +737,8 @@ extern struct BattleTestRunnerState *const gBattleTestRunnerState; #define APPEND_COMMA_TRUE(a) , a, TRUE #define R_APPEND_TRUE(...) __VA_OPT__(FIRST(__VA_ARGS__), TRUE RECURSIVELY(R_FOR_EACH(APPEND_COMMA_TRUE, EXCEPT_1(__VA_ARGS__)))) +#define AI_TRAINER_NAME "{PKMN} TRAINER LEAF" + /* Test */ #define TO_DO_BATTLE_TEST(_name) \ @@ -746,7 +750,7 @@ extern struct BattleTestRunnerState *const gBattleTestRunnerState; #define BATTLE_TEST_ARGS_SINGLE(_name, _type, ...) \ struct CAT(Result, __LINE__) { RECURSIVELY(R_FOR_EACH(APPEND_SEMICOLON, __VA_ARGS__)) }; \ static void CAT(Test, __LINE__)(struct CAT(Result, __LINE__) *, const u32, struct BattlePokemon *, struct BattlePokemon *); \ - __attribute__((section(".tests"))) static const struct Test CAT(sTest, __LINE__) = \ + __attribute__((section(".tests"), used)) static const struct Test CAT(sTest, __LINE__) = \ { \ .name = _name, \ .filename = __FILE__, \ @@ -764,7 +768,7 @@ extern struct BattleTestRunnerState *const gBattleTestRunnerState; #define BATTLE_TEST_ARGS_DOUBLE(_name, _type, ...) \ struct CAT(Result, __LINE__) { RECURSIVELY(R_FOR_EACH(APPEND_SEMICOLON, __VA_ARGS__)) }; \ static void CAT(Test, __LINE__)(struct CAT(Result, __LINE__) *, const u32, struct BattlePokemon *, struct BattlePokemon *, struct BattlePokemon *, struct BattlePokemon *); \ - __attribute__((section(".tests"))) static const struct Test CAT(sTest, __LINE__) = \ + __attribute__((section(".tests"), used)) static const struct Test CAT(sTest, __LINE__) = \ { \ .name = _name, \ .filename = __FILE__, \ @@ -952,7 +956,10 @@ struct MoveContext u16 gimmick:4; u16 explicitGimmick:1; u16 allowed:1; + // End of word u16 explicitAllowed:1; + u16 partyIndex:3; // Used for moves where you select a party member without swiching, such as Revival Blessing + u16 explicitPartyIndex:1; u16 notExpected:1; // Has effect only with EXPECT_MOVE u16 explicitNotExpected:1; struct BattlePokemon *target; @@ -1012,11 +1019,11 @@ void SendOut(u32 sourceLine, struct BattlePokemon *, u32 partyIndex); MESSAGE(name ", good! Come back!"); \ } -#define SEND_IN_MESSAGE(name) ONE_OF { \ - MESSAGE("Go! " name "!"); \ - MESSAGE("Do it! " name "!"); \ - MESSAGE("Go for it, " name "!"); \ - MESSAGE("Your foe's weak! Get 'em, " name "!"); \ +#define SEND_IN_MESSAGE(name) ONE_OF { \ + MESSAGE("Go! " name "!"); \ + MESSAGE("You're in charge, " name "!"); \ + MESSAGE("Go for it, " name "!"); \ + MESSAGE("Your opponent's weak! Get 'em, " name "!"); \ } enum QueueGroupType diff --git a/include/test/test.h b/include/test/test.h index 401c65ce9e..1a9d8a237e 100644 --- a/include/test/test.h +++ b/include/test/test.h @@ -83,7 +83,7 @@ s32 Test_MgbaPrintf(const char *fmt, ...); #define TEST(_name) \ static void CAT(Test, __LINE__)(void); \ - __attribute__((section(".tests"))) static const struct Test CAT(sTest, __LINE__) = \ + __attribute__((section(".tests"), used)) static const struct Test CAT(sTest, __LINE__) = \ { \ .name = _name, \ .filename = __FILE__, \ @@ -95,7 +95,7 @@ s32 Test_MgbaPrintf(const char *fmt, ...); #define ASSUMPTIONS \ static void Assumptions(void); \ - __attribute__((section(".tests"))) static const struct Test sAssumptions = \ + __attribute__((section(".tests"), used)) static const struct Test sAssumptions = \ { \ .name = "ASSUMPTIONS: " __FILE__, \ .filename = __FILE__, \ diff --git a/gflib/text.h b/include/text.h similarity index 95% rename from gflib/text.h rename to include/text.h index fc457e5a00..a148410c2f 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. @@ -21,6 +21,7 @@ enum { FONT_NARROWER, FONT_SMALL_NARROWER, FONT_SHORT_NARROW, + FONT_SHORT_NARROWER, }; // Return values for font functions @@ -157,7 +158,9 @@ bool32 TextPrinterWaitAutoMode(struct TextPrinter *textPrinter); bool32 TextPrinterWaitWithDownArrow(struct TextPrinter *textPrinter); bool32 TextPrinterWait(struct TextPrinter *textPrinter); void DrawDownArrow(u8 windowId, u16 x, u16 y, u8 bgColor, bool32 drawArrow, u8 *counter, u8 *yCoordIndex); +s32 GetGlyphWidth(u16 glyphId, bool32 isJapanese, u8 fontId); s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing); +s32 GetStringLineWidth(u8 fontId, const u8 *str, s16 letterSpacing, u32 lineNum, u32 strSize); u8 RenderTextHandleBold(u8 *pixels, u8 fontId, u8 *str); u8 DrawKeypadIcon(u8 windowId, u8 keypadIconId, u16 x, u16 y); u8 GetKeypadIconTileOffset(u8 keypadIconId); 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_modern.ld b/ld_script_modern.ld index fd35a1ca31..ee4713ab17 100644 --- a/ld_script_modern.ld +++ b/ld_script_modern.ld @@ -19,6 +19,7 @@ SECTIONS { { __ewram_start = .; *(.ewram*) + . = ALIGN(4); __ewram_end = .; } > EWRAM @@ -26,7 +27,6 @@ SECTIONS { ALIGN(4) { src/*.o(.sbss); - gflib/*.o(.sbss); } > EWRAM .iwram ORIGIN(IWRAM) : AT (__iwram_lma) @@ -34,6 +34,7 @@ SECTIONS { { __iwram_start = .; *(.iwram*); + . = ALIGN(4); __iwram_end = .; } > IWRAM @@ -41,15 +42,14 @@ SECTIONS { ALIGN(4) { src/*.o(.bss); - gflib/*.o(.bss); data/*.o(.bss); *libc.a:*.o(.bss*); *libnosys.a:*.o(.bss*); src/m4a.o(.bss.code); + src/*.o(common_data); src/*.o(COMMON); - gflib/*.o(COMMON); *libc.a:*.o(COMMON); *libnosys.a:*.o(COMMON); } > IWRAM @@ -64,7 +64,6 @@ SECTIONS { src/rom_header_rhh.o(.text.*); src/crt0.o(.text); src/main.o(.text); - gflib/*.o(.text*); src/*.o(.text*); asm/*.o(.text*); } > ROM =0 @@ -100,7 +99,6 @@ SECTIONS { ALIGN(4) { src/*.o(.rodata*); - gflib/*.o(.rodata*); data/*.o(.rodata*); } > ROM =0 diff --git a/ld_script_test.ld b/ld_script_test.ld index ec99609a7e..8972a97b00 100644 --- a/ld_script_test.ld +++ b/ld_script_test.ld @@ -25,8 +25,8 @@ SECTIONS { ALIGN(4) { src/*.o(.sbss); - gflib/*.o(.sbss); test/*.o(.sbss); + . = ALIGN(4); } > EWRAM .iwram ORIGIN(IWRAM) : AT (__iwram_lma) @@ -34,6 +34,7 @@ SECTIONS { { __iwram_start = .; *(.iwram*); + . = ALIGN(4); __iwram_end = .; } > IWRAM @@ -41,7 +42,6 @@ SECTIONS { ALIGN(4) { src/*.o(.bss); - gflib/*.o(.bss); data/*.o(.bss); test/*.o(.bss); *libc.a:*.o(.bss*); @@ -50,11 +50,12 @@ SECTIONS { src/m4a.o(.bss.code); + src/*.o(common_data); src/*.o(COMMON); - gflib/*.o(COMMON); data/*.o(COMMON); test/*.o(COMMON); *libc.a:sbrkr.o(COMMON); + . = ALIGN(4); /* .persistent starts at 0x3007F00 */ /* WARNING: This is the end of the IRQ stack, if there's too @@ -73,7 +74,6 @@ SECTIONS { src/rom_header_gf.o(.text.*); src/rom_header_rhh.o(.text.*); src/*.o(.text); - gflib/*.o(.text); } > ROM =0 script_data : @@ -95,7 +95,6 @@ SECTIONS { ALIGN(4) { src/*.o(.rodata*); - gflib/*.o(.rodata*); data/*.o(.rodata*); } > ROM =0 diff --git a/make_tools.mk b/make_tools.mk index c2c5a800cf..75ebc05c96 100644 --- a/make_tools.mk +++ b/make_tools.mk @@ -1,11 +1,32 @@ +# 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 trainerproc +CHECK_TOOL_NAMES = patchelf mgba-rom-test-hydra -.PHONY: all $(TOOLDIRS) +TOOLDIRS := $(TOOL_NAMES:%=$(TOOLS_DIR)/%) +CHECKTOOLDIRS := $(CHECK_TOOL_NAMES:%=$(TOOLS_DIR)/%) -all: $(TOOLDIRS) +# Tool making doesnt require a pokeemerald dependency scan. +RULES_NO_SCAN += tools check-tools clean-tools clean-check-tools $(TOOLDIRS) $(CHECKTOOLDIRS) +.PHONY: $(RULES_NO_SCAN) + +tools: $(TOOLDIRS) + +check-tools: $(CHECKTOOLDIRS) $(TOOLDIRS): @$(MAKE) -C $@ + +$(CHECKTOOLDIRS): + @$(MAKE) -C $@ + +clean-tools: + @$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);) + +clean-check-tools: + @$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);) diff --git a/map_data_rules.mk b/map_data_rules.mk index a045d1d420..6712698272 100755 --- a/map_data_rules.mk +++ b/map_data_rules.mk @@ -1,32 +1,32 @@ # 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)) 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 -$(MAPS_DIR)/%/events.inc: $(MAPS_DIR)/%/header.inc ; -$(MAPS_DIR)/%/connections.inc: $(MAPS_DIR)/%/events.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) -$(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 ; -$(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/headers.inc ; -include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ; +$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h $(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/map_groups.json + $(MAPJSON) groups emerald $< $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR) -$(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 ; +$(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/migration_scripts/README.md b/migration_scripts/README.md index 5ff925d8ef..696f146f14 100644 --- a/migration_scripts/README.md +++ b/migration_scripts/README.md @@ -88,7 +88,7 @@ Moves all information from `gItemIconTable` to `gItemsInfo`. .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_POKE_BALL - FIRST_BALL, + .secondaryId = BALL_POKE, + .iconSprite = gItemIcon_PokeBall, + .iconPalette = gItemIconPalette_PokeBall, }, diff --git a/songs.mk b/songs.mk deleted file mode 100644 index 698f983ceb..0000000000 --- a/songs.mk +++ /dev/null @@ -1,1264 +0,0 @@ -STD_REVERB = 50 - -$(MID_BUILDDIR)/%.o: $(MID_SUBDIR)/%.s - $(AS) $(ASFLAGS) -I sound -o $@ $< - -$(MID_SUBDIR)/mus_aqua_magma_hideout.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G076 -V084 - -$(MID_SUBDIR)/mus_encounter_aqua.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G065 -V086 - -$(MID_SUBDIR)/mus_route111.s: %.s: %.mid - $(MID) $< $@ -E -R$(STD_REVERB) -G055 -V076 - -$(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 diff --git a/sound/cry_tables.inc b/sound/cry_tables.inc index a6533157ff..050fdac57a 100644 --- a/sound/cry_tables.inc +++ b/sound/cry_tables.inc @@ -194,7 +194,7 @@ gCryTable:: cry Cry_SlowbroMega .endif @ P_MEGA_EVOLUTIONS .if P_GALARIAN_FORMS == TRUE - cry Cry_SlowpokeGalarian + cry Cry_SlowpokeGalar .endif @ P_GALARIAN_FORMS .endif @ P_FAMILY_SLOWPOKE .if P_FAMILY_MAGNEMITE == TRUE @@ -1634,7 +1634,7 @@ gCryTable:: .if P_FAMILY_FLABEBE == TRUE cry Cry_Flabebe cry Cry_Floette - cry Cry_FloetteEternalFlower + cry Cry_FloetteEternal cry Cry_Florges .endif @ P_FAMILY_FLABEBE .if P_FAMILY_SKIDDO == TRUE @@ -2082,12 +2082,12 @@ gCryTable:: cry Cry_Stonjourner .endif @ P_FAMILY_STONJOURNER .if P_FAMILY_EISCUE == TRUE - cry Cry_EiscueIceFace - cry Cry_EiscueNoiceFace + cry Cry_EiscueIce + cry Cry_EiscueNoice .endif @ P_FAMILY_EISCUE .if P_FAMILY_INDEEDEE == TRUE - cry Cry_IndeedeeMale - cry Cry_IndeedeeFemale + cry Cry_IndeedeeM + cry Cry_IndeedeeF .endif @ P_FAMILY_INDEEDEE .if P_FAMILY_MORPEKO == TRUE cry Cry_MorpekoFullBelly @@ -2121,12 +2121,12 @@ gCryTable:: cry Cry_Dragapult .endif @ P_FAMILY_DREEPY .if P_FAMILY_ZACIAN == TRUE - cry Cry_ZacianHeroOfManyBattles - cry Cry_ZacianCrownedSword + cry Cry_ZacianHero + cry Cry_ZacianCrowned .endif @ P_FAMILY_ZACIAN .if P_FAMILY_ZAMAZENTA == TRUE - cry Cry_ZamazentaHeroOfManyBattles - cry Cry_ZamazentaCrownedShield + cry Cry_ZamazentaHero + cry Cry_ZamazentaCrowned .endif @ P_FAMILY_ZAMAZENTA .if P_FAMILY_ETERNATUS == TRUE cry Cry_Eternatus @@ -2134,8 +2134,8 @@ gCryTable:: .endif @ P_FAMILY_ETERNATUS .if P_FAMILY_KUBFU == TRUE cry Cry_Kubfu - cry Cry_UrshifuSingleStrikeStyle - cry Cry_UrshifuRapidStrikeStyle + cry Cry_UrshifuSingleStrike + cry Cry_UrshifuRapidStrike .endif @ P_FAMILY_KUBFU .if P_FAMILY_ZARUDE == TRUE cry Cry_Zarude @@ -2155,8 +2155,8 @@ gCryTable:: .if P_FAMILY_CALYREX == TRUE cry Cry_Calyrex .if P_FUSION_FORMS == TRUE - cry Cry_CalyrexIceRider - cry Cry_CalyrexShadowRider + cry Cry_CalyrexIce + cry Cry_CalyrexShadow .endif @ P_FUSION_FORMS .endif @ P_FAMILY_CALYREX .if P_FAMILY_ENAMORUS == TRUE @@ -2180,8 +2180,8 @@ gCryTable:: .endif @ P_FAMILY_QUAXLY .if P_FAMILY_LECHONK == TRUE cry Cry_Lechonk - cry Cry_OinkologneMale - cry Cry_OinkologneFemale + cry Cry_OinkologneM + cry Cry_OinkologneF .endif @ P_FAMILY_LECHONK .if P_FAMILY_TAROUNTULA == TRUE cry Cry_Tarountula @@ -2198,8 +2198,8 @@ gCryTable:: .endif @ P_FAMILY_PAWMI .if P_FAMILY_TANDEMAUS == TRUE cry Cry_Tandemaus - cry Cry_MausholdFamilyOfThree - cry Cry_MausholdFamilyOfFour + cry Cry_MausholdThree + cry Cry_MausholdFour .endif @ P_FAMILY_TANDEMAUS .if P_FAMILY_FIDOUGH == TRUE cry Cry_Fidough @@ -2622,7 +2622,7 @@ gCryTable_Reverse:: cry_reverse Cry_SlowbroMega .endif @ P_MEGA_EVOLUTIONS .if P_GALARIAN_FORMS == TRUE - cry_reverse Cry_SlowpokeGalarian + cry_reverse Cry_SlowpokeGalar .endif @ P_GALARIAN_FORMS .endif @ P_FAMILY_SLOWPOKE .if P_FAMILY_MAGNEMITE == TRUE @@ -4062,7 +4062,7 @@ gCryTable_Reverse:: .if P_FAMILY_FLABEBE == TRUE cry_reverse Cry_Flabebe cry_reverse Cry_Floette - cry_reverse Cry_FloetteEternalFlower + cry_reverse Cry_FloetteEternal cry_reverse Cry_Florges .endif @ P_FAMILY_FLABEBE .if P_FAMILY_SKIDDO == TRUE @@ -4510,12 +4510,12 @@ gCryTable_Reverse:: cry_reverse Cry_Stonjourner .endif @ P_FAMILY_STONJOURNER .if P_FAMILY_EISCUE == TRUE - cry_reverse Cry_EiscueIceFace - cry_reverse Cry_EiscueNoiceFace + cry_reverse Cry_EiscueIce + cry_reverse Cry_EiscueNoice .endif @ P_FAMILY_EISCUE .if P_FAMILY_INDEEDEE == TRUE - cry_reverse Cry_IndeedeeMale - cry_reverse Cry_IndeedeeFemale + cry_reverse Cry_IndeedeeM + cry_reverse Cry_IndeedeeF .endif @ P_FAMILY_INDEEDEE .if P_FAMILY_MORPEKO == TRUE cry_reverse Cry_MorpekoFullBelly @@ -4549,12 +4549,12 @@ gCryTable_Reverse:: cry_reverse Cry_Dragapult .endif @ P_FAMILY_DREEPY .if P_FAMILY_ZACIAN == TRUE - cry_reverse Cry_ZacianHeroOfManyBattles - cry_reverse Cry_ZacianCrownedSword + cry_reverse Cry_ZacianHero + cry_reverse Cry_ZacianCrowned .endif @ P_FAMILY_ZACIAN .if P_FAMILY_ZAMAZENTA == TRUE - cry_reverse Cry_ZamazentaHeroOfManyBattles - cry_reverse Cry_ZamazentaCrownedShield + cry_reverse Cry_ZamazentaHero + cry_reverse Cry_ZamazentaCrowned .endif @ P_FAMILY_ZAMAZENTA .if P_FAMILY_ETERNATUS == TRUE cry_reverse Cry_Eternatus @@ -4562,8 +4562,8 @@ gCryTable_Reverse:: .endif @ P_FAMILY_ETERNATUS .if P_FAMILY_KUBFU == TRUE cry_reverse Cry_Kubfu - cry_reverse Cry_UrshifuSingleStrikeStyle - cry_reverse Cry_UrshifuRapidStrikeStyle + cry_reverse Cry_UrshifuSingleStrike + cry_reverse Cry_UrshifuRapidStrike .endif @ P_FAMILY_KUBFU .if P_FAMILY_ZARUDE == TRUE cry_reverse Cry_Zarude @@ -4583,8 +4583,8 @@ gCryTable_Reverse:: .if P_FAMILY_CALYREX == TRUE cry_reverse Cry_Calyrex .if P_FUSION_FORMS == TRUE - cry_reverse Cry_CalyrexIceRider - cry_reverse Cry_CalyrexShadowRider + cry_reverse Cry_CalyrexIce + cry_reverse Cry_CalyrexShadow .endif @ P_FUSION_FORMS .endif @ P_FAMILY_CALYREX .if P_FAMILY_ENAMORUS == TRUE @@ -4608,8 +4608,8 @@ gCryTable_Reverse:: .endif @ P_FAMILY_QUAXLY .if P_FAMILY_LECHONK == TRUE cry_reverse Cry_Lechonk - cry_reverse Cry_OinkologneMale - cry_reverse Cry_OinkologneFemale + cry_reverse Cry_OinkologneM + cry_reverse Cry_OinkologneF .endif @ P_FAMILY_LECHONK .if P_FAMILY_TAROUNTULA == TRUE cry_reverse Cry_Tarountula @@ -4626,8 +4626,8 @@ gCryTable_Reverse:: .endif @ P_FAMILY_PAWMI .if P_FAMILY_TANDEMAUS == TRUE cry_reverse Cry_Tandemaus - cry_reverse Cry_MausholdFamilyOfThree - cry_reverse Cry_MausholdFamilyOfFour + cry_reverse Cry_MausholdThree + cry_reverse Cry_MausholdFour .endif @ P_FAMILY_TANDEMAUS .if P_FAMILY_FIDOUGH == TRUE cry_reverse Cry_Fidough diff --git a/sound/direct_sound_data.inc b/sound/direct_sound_data.inc index b1cf174150..0e4980667c 100644 --- a/sound/direct_sound_data.inc +++ b/sound/direct_sound_data.inc @@ -871,8 +871,8 @@ Cry_SlowbroMega:: .endif @ P_MEGA_EVOLUTIONS .if P_GALARIAN_FORMS == TRUE .align 2 -Cry_SlowpokeGalarian:: - .incbin "sound/direct_sound_samples/cries/slowpoke_galarian.bin" +Cry_SlowpokeGalar:: + .incbin "sound/direct_sound_samples/cries/slowpoke_galar.bin" .endif @ P_GALARIAN_FORMS .endif @ P_FAMILY_SLOWPOKE @@ -4259,8 +4259,8 @@ Cry_Floette:: .incbin "sound/direct_sound_samples/cries/floette.bin" .align 2 -Cry_FloetteEternalFlower:: - .incbin "sound/direct_sound_samples/cries/floette_eternal_flower.bin" +Cry_FloetteEternal:: + .incbin "sound/direct_sound_samples/cries/floette_eternal.bin" .align 2 Cry_Florges:: @@ -5356,21 +5356,21 @@ Cry_Stonjourner:: .if P_FAMILY_EISCUE == TRUE .align 2 -Cry_EiscueIceFace:: +Cry_EiscueIce:: .incbin "sound/direct_sound_samples/cries/eiscue_ice_face.bin" .align 2 -Cry_EiscueNoiceFace:: +Cry_EiscueNoice:: .incbin "sound/direct_sound_samples/cries/eiscue_noice_face.bin" .endif @ P_FAMILY_EISCUE .if P_FAMILY_INDEEDEE == TRUE .align 2 -Cry_IndeedeeMale:: +Cry_IndeedeeM:: .incbin "sound/direct_sound_samples/cries/indeedee_male.bin" .align 2 -Cry_IndeedeeFemale:: +Cry_IndeedeeF:: .incbin "sound/direct_sound_samples/cries/indeedee_female.bin" .endif @ P_FAMILY_INDEEDEE @@ -5444,21 +5444,21 @@ Cry_Dragapult:: .if P_FAMILY_ZACIAN == TRUE .align 2 -Cry_ZacianHeroOfManyBattles:: +Cry_ZacianHero:: .incbin "sound/direct_sound_samples/cries/zacian_hero_of_many_battles.bin" .align 2 -Cry_ZacianCrownedSword:: +Cry_ZacianCrowned:: .incbin "sound/direct_sound_samples/cries/zacian_crowned_sword.bin" .endif @ P_FAMILY_ZACIAN .if P_FAMILY_ZAMAZENTA == TRUE .align 2 -Cry_ZamazentaHeroOfManyBattles:: +Cry_ZamazentaHero:: .incbin "sound/direct_sound_samples/cries/zamazenta_hero_of_many_battles.bin" .align 2 -Cry_ZamazentaCrownedShield:: +Cry_ZamazentaCrowned:: .incbin "sound/direct_sound_samples/cries/zamazenta_crowned_shield.bin" .endif @ P_FAMILY_ZAMAZENTA @@ -5478,12 +5478,12 @@ Cry_Kubfu:: .incbin "sound/direct_sound_samples/cries/kubfu.bin" .align 2 -Cry_UrshifuSingleStrikeStyle:: - .incbin "sound/direct_sound_samples/cries/urshifu_single_strike_style.bin" +Cry_UrshifuSingleStrike:: + .incbin "sound/direct_sound_samples/cries/urshifu_single_strike.bin" .align 2 -Cry_UrshifuRapidStrikeStyle:: - .incbin "sound/direct_sound_samples/cries/urshifu_rapid_strike_style.bin" +Cry_UrshifuRapidStrike:: + .incbin "sound/direct_sound_samples/cries/urshifu_rapid_strike.bin" .endif @ P_FAMILY_KUBFU .if P_FAMILY_ZARUDE == TRUE @@ -5523,12 +5523,12 @@ Cry_Calyrex:: .if P_FUSION_FORMS == TRUE .align 2 -Cry_CalyrexIceRider:: - .incbin "sound/direct_sound_samples/cries/calyrex_ice_rider.bin" +Cry_CalyrexIce:: + .incbin "sound/direct_sound_samples/cries/calyrex_ice.bin" .align 2 -Cry_CalyrexShadowRider:: - .incbin "sound/direct_sound_samples/cries/calyrex_shadow_rider.bin" +Cry_CalyrexShadow:: + .incbin "sound/direct_sound_samples/cries/calyrex_shadow.bin" .endif @ P_FUSION_FORMS .endif @ P_FAMILY_CALYREX @@ -5591,12 +5591,12 @@ Cry_Lechonk:: .incbin "sound/direct_sound_samples/cries/lechonk.bin" .align 2 -Cry_OinkologneMale:: - .incbin "sound/direct_sound_samples/cries/oinkologne_male.bin" +Cry_OinkologneM:: + .incbin "sound/direct_sound_samples/cries/oinkologne_m.bin" .align 2 -Cry_OinkologneFemale:: - .incbin "sound/direct_sound_samples/cries/oinkologne_female.bin" +Cry_OinkologneF:: + .incbin "sound/direct_sound_samples/cries/oinkologne_f.bin" .endif @ P_FAMILY_LECHONK .if P_FAMILY_TAROUNTULA == TRUE @@ -5639,12 +5639,12 @@ Cry_Tandemaus:: .incbin "sound/direct_sound_samples/cries/tandemaus.bin" .align 2 -Cry_MausholdFamilyOfThree:: - .incbin "sound/direct_sound_samples/cries/maushold_family_of_three.bin" +Cry_MausholdThree:: + .incbin "sound/direct_sound_samples/cries/maushold_three.bin" .align 2 -Cry_MausholdFamilyOfFour:: - .incbin "sound/direct_sound_samples/cries/maushold_family_of_four.bin" +Cry_MausholdFour:: + .incbin "sound/direct_sound_samples/cries/maushold_four.bin" .endif @ P_FAMILY_TANDEMAUS .if P_FAMILY_FIDOUGH == TRUE diff --git a/sound/direct_sound_samples/cries/calyrex_ice_rider.aif b/sound/direct_sound_samples/cries/calyrex_ice.aif similarity index 100% rename from sound/direct_sound_samples/cries/calyrex_ice_rider.aif rename to sound/direct_sound_samples/cries/calyrex_ice.aif diff --git a/sound/direct_sound_samples/cries/calyrex_shadow_rider.aif b/sound/direct_sound_samples/cries/calyrex_shadow.aif similarity index 100% rename from sound/direct_sound_samples/cries/calyrex_shadow_rider.aif rename to sound/direct_sound_samples/cries/calyrex_shadow.aif diff --git a/sound/direct_sound_samples/cries/floette_eternal_flower.aif b/sound/direct_sound_samples/cries/floette_eternal.aif similarity index 100% rename from sound/direct_sound_samples/cries/floette_eternal_flower.aif rename to sound/direct_sound_samples/cries/floette_eternal.aif diff --git a/sound/direct_sound_samples/cries/maushold_family_of_four.aif b/sound/direct_sound_samples/cries/maushold_four.aif similarity index 100% rename from sound/direct_sound_samples/cries/maushold_family_of_four.aif rename to sound/direct_sound_samples/cries/maushold_four.aif diff --git a/sound/direct_sound_samples/cries/maushold_family_of_three.aif b/sound/direct_sound_samples/cries/maushold_three.aif similarity index 100% rename from sound/direct_sound_samples/cries/maushold_family_of_three.aif rename to sound/direct_sound_samples/cries/maushold_three.aif diff --git a/sound/direct_sound_samples/cries/oinkologne_female.aif b/sound/direct_sound_samples/cries/oinkologne_f.aif similarity index 100% rename from sound/direct_sound_samples/cries/oinkologne_female.aif rename to sound/direct_sound_samples/cries/oinkologne_f.aif diff --git a/sound/direct_sound_samples/cries/oinkologne_male.aif b/sound/direct_sound_samples/cries/oinkologne_m.aif similarity index 100% rename from sound/direct_sound_samples/cries/oinkologne_male.aif rename to sound/direct_sound_samples/cries/oinkologne_m.aif diff --git a/sound/direct_sound_samples/cries/slowpoke_galarian.aif b/sound/direct_sound_samples/cries/slowpoke_galar.aif similarity index 100% rename from sound/direct_sound_samples/cries/slowpoke_galarian.aif rename to sound/direct_sound_samples/cries/slowpoke_galar.aif diff --git a/sound/direct_sound_samples/cries/urshifu_rapid_strike_style.aif b/sound/direct_sound_samples/cries/urshifu_rapid_strike.aif similarity index 100% rename from sound/direct_sound_samples/cries/urshifu_rapid_strike_style.aif rename to sound/direct_sound_samples/cries/urshifu_rapid_strike.aif diff --git a/sound/direct_sound_samples/cries/urshifu_single_strike_style.aif b/sound/direct_sound_samples/cries/urshifu_single_strike.aif similarity index 100% rename from sound/direct_sound_samples/cries/urshifu_single_strike_style.aif rename to sound/direct_sound_samples/cries/urshifu_single_strike.aif diff --git a/sound/songs/midi/midi.cfg b/sound/songs/midi/midi.cfg new file mode 100644 index 0000000000..5802904b41 --- /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 diff --git a/spritesheet_rules.mk b/spritesheet_rules.mk index 5e9a4d7532..88725dda66 100644 --- a/spritesheet_rules.mk +++ b/spritesheet_rules.mk @@ -1512,10 +1512,10 @@ $(POKEMONGFXDIR)/unown/y/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/unown/z/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/unown/exclamation_mark/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/unown/exclamation/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/unown/question_mark/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/unown/question/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/wobbuffet/overworld.4bpp: %.4bpp: %.png @@ -3153,7 +3153,7 @@ $(POKEMONGFXDIR)/espurr/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/meowstic/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/meowstic/female/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/meowstic/f/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/honedge/overworld.4bpp: %.4bpp: %.png @@ -3768,7 +3768,7 @@ $(POKEMONGFXDIR)/eiscue/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/indeedee/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/indeedee/female/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/indeedee/f/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/morpeko/overworld.4bpp: %.4bpp: %.png @@ -3843,118 +3843,118 @@ $(POKEMONGFXDIR)/spectrier/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/calyrex/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/calyrex/shadow_rider/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/calyrex/shadow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/calyrex/ice_rider/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/calyrex/ice/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/zapdos/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/zapdos/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/meowth/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/meowth/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/ponyta/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/ponyta/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/rapidash/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/rapidash/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/slowpoke/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/slowpoke/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/slowbro/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/slowbro/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/farfetchd/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/farfetchd/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/weezing/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/weezing/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/mr_mime/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/mr_mime/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/articuno/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/articuno/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/moltres/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/moltres/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/slowking/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/slowking/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/corsola/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/corsola/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/zigzagoon/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/zigzagoon/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/linoone/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/linoone/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/darumaka/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/darumaka/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/darmanitan/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/darmanitan/galar_standard/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/yamask/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/yamask/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/stunfisk/galarian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/stunfisk/galar/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/growlithe/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/growlithe/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/arcanine/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/arcanine/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/voltorb/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/voltorb/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/electrode/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/electrode/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/braviary/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/braviary/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/qwilfish/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/qwilfish/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/sneasel/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/sneasel/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/sneasel/hisuian/overworldf.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/sneasel/hisui/overworldf.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/zorua/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/zorua/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/zoroark/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/zoroark/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/samurott/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/samurott/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/lilligant/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/lilligant/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/sliggoo/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/sliggoo/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/goodra/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/goodra/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/avalugg/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/avalugg/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/decidueye/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/decidueye/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/typhlosion/hisuian/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/typhlosion/hisui/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/dialga/origin/overworld.4bpp: %.4bpp: %.png @@ -3975,7 +3975,7 @@ $(POKEMONGFXDIR)/basculin/white_striped/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/basculegion/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/basculegion/female/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/basculegion/f/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/ursaluna/overworld.4bpp: %.4bpp: %.png @@ -4005,22 +4005,22 @@ $(POKEMONGFXDIR)/deoxys/defense/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/deoxys/speed/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/burmy/sandy_cloak/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/burmy/sandy/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/burmy/trash_cloak/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/burmy/trash/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/wormadam/sandy_cloak/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/wormadam/sandy/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/wormadam/trash_cloak/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/wormadam/trash/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/shellos/east_sea/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/shellos/east/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/gastrodon/east_sea/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/gastrodon/east/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/rotom/heat/overworld.4bpp: %.4bpp: %.png @@ -4173,43 +4173,43 @@ $(POKEMONGFXDIR)/vivillon/poke_ball/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/vivillon/meadow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/flabebe/yellow_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/flabebe/yellow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/flabebe/blue_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/flabebe/blue/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/flabebe/orange_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/flabebe/orange/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/flabebe/white_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/flabebe/white/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/floette/yellow_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/floette/yellow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/floette/blue_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/floette/blue/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/floette/orange_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/floette/orange/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/floette/white_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/floette/white/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/floette/eternal_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/floette/eternal/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/florges/yellow_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/florges/yellow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/florges/blue_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/florges/blue/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/florges/orange_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/florges/orange/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/florges/white_flower/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/florges/white/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/furfrou/heart_trim/overworld.4bpp: %.4bpp: %.png @@ -4242,61 +4242,61 @@ $(POKEMONGFXDIR)/furfrou/pharaoh_trim/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/hoopa/unbound/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 8 -mheight 8 -$(POKEMONGFXDIR)/rattata/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/rattata/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/raticate/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/raticate/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/raichu/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/raichu/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/sandshrew/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/sandshrew/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/sandslash/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/sandslash/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/vulpix/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/vulpix/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/ninetales/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/ninetales/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/diglett/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/diglett/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/dugtrio/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/dugtrio/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/meowth/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/meowth/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/persian/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/persian/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/geodude/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/geodude/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/graveler/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/graveler/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/golem/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/golem/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/grimer/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/grimer/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/muk/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/muk/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/exeggutor/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/exeggutor/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 8 -mheight 8 -$(POKEMONGFXDIR)/marowak/alolan/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/marowak/alola/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/wooper/wooper_paldean/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/wooper/paldea/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/clodsire/overworld.4bpp: %.4bpp: %.png @@ -4335,7 +4335,7 @@ $(POKEMONGFXDIR)/lechonk/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/oinkologne/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/oinkologne/female/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/oinkologne/f/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/tarountula/overworld.4bpp: %.4bpp: %.png @@ -4386,13 +4386,13 @@ $(POKEMONGFXDIR)/arboliva/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/squawkabilly/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/squawkabilly/blue_plumage/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/squawkabilly/blue/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/squawkabilly/white_plumage/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/squawkabilly/white/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/squawkabilly/yellow_plumage/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/squawkabilly/yellow/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/nacli/overworld.4bpp: %.4bpp: %.png @@ -4698,13 +4698,13 @@ $(POKEMONGFXDIR)/terapagos/terastal/overworld.4bpp: %.4bpp: %.png $(POKEMONGFXDIR)/pecharunt/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/tauros/paldean_aqua_breed/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/tauros/paldea_aqua/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/tauros/paldean_blaze_breed/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/tauros/paldea_blaze/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 -$(POKEMONGFXDIR)/tauros/paldean_combat_breed/overworld.4bpp: %.4bpp: %.png +$(POKEMONGFXDIR)/tauros/paldea_combat/overworld.4bpp: %.4bpp: %.png $(GFX) $< $@ -mwidth 4 -mheight 4 $(POKEMONGFXDIR)/ursaluna/bloodmoon/overworld.4bpp: %.4bpp: %.png 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 6a71376063..66011fe76c 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/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/battle_ai_main.c b/src/battle_ai_main.c index 5ab8e652c6..a7e462ff97 100644 --- a/src/battle_ai_main.c +++ b/src/battle_ai_main.c @@ -232,7 +232,6 @@ void BattleAI_SetupFlags(void) } } -// sBattler_AI set in ComputeBattleAiScores void BattleAI_SetupAIData(u8 defaultScoreMoves, u32 battler) { s32 i; @@ -287,14 +286,6 @@ u32 BattleAI_ChooseMoveOrAction(void) return ret; } -// damages/other info computed in GetAIDataAndCalcDmg -u32 ComputeBattleAiScores(u32 battler) -{ - sBattler_AI = battler; - BattleAI_SetupAIData(0xF, sBattler_AI); - return BattleAI_ChooseMoveOrAction(); -} - static void CopyBattlerDataToAIParty(u32 bPosition, u32 side) { u32 battler = GetBattlerAtPosition(bPosition); @@ -397,7 +388,7 @@ void SetBattlerAiData(u32 battler, struct AiLogicData *aiData) aiData->items[battler] = gBattleMons[battler].item; holdEffect = aiData->holdEffects[battler] = AI_DecideHoldEffectForTurn(battler); aiData->holdEffectParams[battler] = GetBattlerHoldEffectParam(battler); - aiData->predictedMoves[battler] = gLastMoves[battler]; + aiData->lastUsedMove[battler] = gLastMoves[battler]; aiData->hpPercents[battler] = GetHealthPercentage(battler); aiData->moveLimitations[battler] = CheckMoveLimitations(battler, 0, MOVE_LIMITATIONS_ALL); aiData->speedStats[battler] = GetBattlerTotalSpeedStatArgs(battler, ability, holdEffect); @@ -416,14 +407,13 @@ static u32 Ai_SetMoveAccuracy(struct AiLogicData *aiData, u32 battlerAtk, u32 ba return accuracy; } -static void SetBattlerAiMovesData(struct AiLogicData *aiData, u32 battlerAtk, u32 battlersCount) +static void SetBattlerAiMovesData(struct AiLogicData *aiData, u32 battlerAtk, u32 battlersCount, u32 weather) { - u32 battlerDef, i, weather; u16 *moves; - + u32 battlerDef, moveIndex, move; + u32 rollType = GetDmgRollType(battlerAtk); SaveBattlerData(battlerAtk); moves = GetMovesArray(battlerAtk); - weather = AI_GetWeather(aiData); SetBattlerData(battlerAtk); @@ -435,27 +425,22 @@ static void SetBattlerAiMovesData(struct AiLogicData *aiData, u32 battlerAtk, u3 SaveBattlerData(battlerDef); SetBattlerData(battlerDef); - for (i = 0; i < MAX_MON_MOVES; i++) + for (moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++) { struct SimulatedDamage dmg = {0}; u8 effectiveness = AI_EFFECTIVENESS_x0; - u32 move = moves[i]; + move = moves[moveIndex]; if (move != 0 && move != 0xFFFF //&& gMovesInfo[move].power != 0 /* we want to get effectiveness and accuracy of status moves */ - && !(aiData->moveLimitations[battlerAtk] & (1u << i))) + && !(aiData->moveLimitations[battlerAtk] & (1u << moveIndex))) { - if (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_RISKY) - dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, TRUE, weather, DMG_ROLL_HIGHEST); - else if (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_CONSERVATIVE) - dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, TRUE, weather, DMG_ROLL_LOWEST); - else - dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, TRUE, weather, DMG_ROLL_DEFAULT); - aiData->moveAccuracy[battlerAtk][battlerDef][i] = Ai_SetMoveAccuracy(aiData, battlerAtk, battlerDef, move); + dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, TRUE, weather, rollType); + aiData->moveAccuracy[battlerAtk][battlerDef][moveIndex] = Ai_SetMoveAccuracy(aiData, battlerAtk, battlerDef, move); } - aiData->simulatedDmg[battlerAtk][battlerDef][i] = dmg; - aiData->effectiveness[battlerAtk][battlerDef][i] = effectiveness; + aiData->simulatedDmg[battlerAtk][battlerDef][moveIndex] = dmg; + aiData->effectiveness[battlerAtk][battlerDef][moveIndex] = effectiveness; } RestoreBattlerData(battlerDef); } @@ -464,7 +449,7 @@ static void SetBattlerAiMovesData(struct AiLogicData *aiData, u32 battlerAtk, u3 void SetAiLogicDataForTurn(struct AiLogicData *aiData) { - u32 battlerAtk, battlersCount; + u32 battlerAtk, battlersCount, weather; memset(aiData, 0, sizeof(struct AiLogicData)); if (!(gBattleTypeFlags & BATTLE_TYPE_HAS_AI) && !IsWildMonSmart()) @@ -474,9 +459,12 @@ void SetAiLogicDataForTurn(struct AiLogicData *aiData) gBattleStruct->aiDelayTimer = gMain.vblankCounter1; aiData->weatherHasEffect = WEATHER_HAS_EFFECT; + weather = AI_GetWeather(aiData); + // get/assume all battler data and simulate AI damage battlersCount = gBattlersCount; + AI_DATA->aiCalcInProgress = TRUE; for (battlerAtk = 0; battlerAtk < battlersCount; battlerAtk++) { if (!IsBattlerAlive(battlerAtk)) @@ -490,91 +478,9 @@ void SetAiLogicDataForTurn(struct AiLogicData *aiData) if (!IsBattlerAlive(battlerAtk)) continue; - SetBattlerAiMovesData(aiData, battlerAtk, battlersCount); + SetBattlerAiMovesData(aiData, battlerAtk, battlersCount, weather); } -} - -static bool32 AI_SwitchMonIfSuitable(u32 battler, bool32 doubleBattle) -{ - u32 monToSwitchId = AI_DATA->mostSuitableMonId[battler]; - if (monToSwitchId != PARTY_SIZE && IsValidForBattle(&GetBattlerParty(battler)[monToSwitchId])) - { - gBattleMoveDamage = monToSwitchId; - // Edge case: See if partner already chose to switch into the same mon - if (doubleBattle) - { - u32 partner = BATTLE_PARTNER(battler); - if (AI_DATA->shouldSwitchIfBadMoves & (1u << partner) && AI_DATA->monToSwitchId[partner] == monToSwitchId) - { - return FALSE; - } - } - AI_DATA->shouldSwitchIfBadMoves |= 1 << battler; - AI_DATA->monToSwitchId[battler] = monToSwitchId; - return TRUE; - } - return FALSE; -} - -static bool32 AI_ShouldSwitchIfBadMoves(u32 battler, bool32 doubleBattle) -{ - u32 i, j; - // If can switch. - if (CountUsablePartyMons(battler) > 0 - && !IsBattlerTrapped(battler, TRUE) - && !(gBattleTypeFlags & (BATTLE_TYPE_ARENA | BATTLE_TYPE_PALACE)) - && AI_THINKING_STRUCT->aiFlags[battler] & (AI_FLAG_CHECK_VIABILITY | AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_PREFER_BATON_PASS) - && !(AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SEQUENCE_SWITCHING)) - { - // Consider switching if all moves are worthless to use. - if (GetTotalBaseStat(gBattleMons[battler].species) >= 310 // Mon is not weak. - && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2) // Mon has more than 50% of its HP - { - s32 cap = AI_THINKING_STRUCT->aiFlags[battler] & (AI_FLAG_CHECK_VIABILITY) ? 95 : 93; - if (doubleBattle) - { - for (i = 0; i < MAX_BATTLERS_COUNT; i++) - { - if (i != battler && IsBattlerAlive(i)) - { - for (j = 0; j < MAX_MON_MOVES; j++) - { - if (gBattleStruct->aiFinalScore[battler][i][j] > cap) - break; - } - if (j != MAX_MON_MOVES) - break; - } - } - if (i == MAX_BATTLERS_COUNT && AI_SwitchMonIfSuitable(battler, doubleBattle)) - return TRUE; - } - else - { - for (i = 0; i < MAX_MON_MOVES; i++) - { - if (AI_THINKING_STRUCT->score[i] > cap) - break; - } - - if (i == MAX_MON_MOVES && AI_SwitchMonIfSuitable(battler, doubleBattle)) - return TRUE; - } - - } - - // Consider switching if your mon with truant is bodied by Protect spam. - // Or is using a double turn semi invulnerable move(such as Fly) and is faster. - if (AI_DATA->abilities[battler] == ABILITY_TRUANT - && IsTruantMonVulnerable(battler, gBattlerTarget) - && gDisableStructs[battler].truantCounter - && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2 - && AI_SwitchMonIfSuitable(battler, doubleBattle)) - { - return TRUE; - } - } - return FALSE; + AI_DATA->aiCalcInProgress = FALSE; } static u32 ChooseMoveOrAction_Singles(u32 battlerAi) @@ -607,10 +513,6 @@ static u32 ChooseMoveOrAction_Singles(u32 battlerAi) if (AI_THINKING_STRUCT->aiAction & AI_ACTION_WATCH) return AI_CHOICE_WATCH; - // Switch mon if there are no good moves to use. - if (AI_ShouldSwitchIfBadMoves(battlerAi, FALSE)) - return AI_CHOICE_SWITCH; - numOfBestMoves = 1; currentMoveArray[0] = AI_THINKING_STRUCT->score[0]; consideredMoveArray[0] = 0; @@ -731,10 +633,6 @@ static u32 ChooseMoveOrAction_Doubles(u32 battlerAi) } } - // Switch mon if all of the moves are bad to use against any of the target. - if (AI_ShouldSwitchIfBadMoves(battlerAi, TRUE)) - return AI_CHOICE_SWITCH; - mostMovePoints = bestMovePointsForTarget[0]; mostViableTargetsArray[0] = 0; mostViableTargetsNo = 1; @@ -818,7 +716,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); u32 i; u32 weather; - u32 predictedMove = aiData->predictedMoves[battlerDef]; + u32 predictedMove = aiData->lastUsedMove[battlerDef]; if (IS_TARGETING_PARTNER(battlerAtk, battlerDef)) return score; @@ -873,6 +771,12 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) // target ability checks if (!DoesBattlerIgnoreAbilityChecks(aiData->abilities[battlerAtk], move)) { + if (CanAbilityBlockMove(battlerAtk, battlerDef, move, aiData->abilities[battlerDef])) + RETURN_SCORE_MINUS(20); + + if (CanAbilityAbsorbMove(battlerAtk, battlerDef, aiData->abilities[battlerDef], move, moveType)) + RETURN_SCORE_MINUS(20); + switch (aiData->abilities[battlerDef]) { case ABILITY_MAGIC_GUARD: @@ -903,12 +807,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) && (moveType == TYPE_DARK || moveType == TYPE_GHOST || moveType == TYPE_BUG)) RETURN_SCORE_MINUS(10); break; - case ABILITY_DAZZLING: - case ABILITY_QUEENLY_MAJESTY: - case ABILITY_ARMOR_TAIL: - if (atkPriority > 0) - RETURN_SCORE_MINUS(10); - break; case ABILITY_AROMA_VEIL: if (IsAromaVeilProtectedMove(move)) RETURN_SCORE_MINUS(10); @@ -972,37 +870,14 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) && IsNonVolatileStatusMoveEffect(moveEffect)) RETURN_SCORE_MINUS(10); break; - case ABILITY_LIGHTNING_ROD: - if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5) - break; - // Fallthrough - case ABILITY_MOTOR_DRIVE: - case ABILITY_VOLT_ABSORB: - if (moveType == TYPE_ELECTRIC) - RETURN_SCORE_MINUS(20); - break; - case ABILITY_STORM_DRAIN: - if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5) - break; - // Fallthrough - case ABILITY_WATER_ABSORB: - case ABILITY_DRY_SKIN: - if (moveType == TYPE_WATER) - RETURN_SCORE_MINUS(20); - break; - case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE) - RETURN_SCORE_MINUS(20); - break; - case ABILITY_EARTH_EATER: - if (moveType == TYPE_GROUND) - RETURN_SCORE_MINUS(20); - break; } // def ability checks // target partner ability checks & not attacking partner if (isDoubleBattle) { + if (CanPartnerAbilityBlockMove(battlerAtk, battlerDef, move, aiData->abilities[BATTLE_PARTNER(battlerDef)])) + RETURN_SCORE_MINUS(20); + switch (aiData->abilities[BATTLE_PARTNER(battlerDef)]) { case ABILITY_LIGHTNING_ROD: @@ -1029,12 +904,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (IsAromaVeilProtectedMove(move)) RETURN_SCORE_MINUS(10); break; - case ABILITY_DAZZLING: - case ABILITY_QUEENLY_MAJESTY: - case ABILITY_ARMOR_TAIL: - if (atkPriority > 0) - RETURN_SCORE_MINUS(10); - break; } } // def partner ability checks } // ignore def ability check @@ -1046,19 +915,19 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) RETURN_SCORE_MINUS(10); // terrain & effect checks - if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_ELECTRIC_TERRAIN)) + if (IsBattlerTerrainAffected(battlerDef, STATUS_FIELD_ELECTRIC_TERRAIN)) { if (moveEffect == EFFECT_SLEEP || moveEffect == EFFECT_YAWN) RETURN_SCORE_MINUS(20); } - if (AI_IsTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)) + if (IsBattlerTerrainAffected(battlerDef, STATUS_FIELD_MISTY_TERRAIN)) { if (IsNonVolatileStatusMoveEffect(moveEffect) || IsConfusionMoveEffect(moveEffect)) RETURN_SCORE_MINUS(20); } - if (AI_IsTerrainAffected(battlerAtk, STATUS_FIELD_PSYCHIC_TERRAIN) && atkPriority > 0) + if (IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_PSYCHIC_TERRAIN) && atkPriority > 0) { RETURN_SCORE_MINUS(20); } @@ -1113,6 +982,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) case EFFECT_SLEEP: if (!AI_CanPutToSleep(battlerAtk, battlerDef, aiData->abilities[battlerDef], move, aiData->partnerMove)) ADJUST_SCORE(-10); + if (PartnerMoveActivatesSleepClause(aiData->partnerMove)) + ADJUST_SCORE(-20); break; case EFFECT_EXPLOSION: if (!(AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_WILL_SUICIDE)) @@ -1279,10 +1150,10 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (isDoubleBattle) { if (!(IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GRASS) - && AI_IsBattlerGrounded(battlerAtk) + && IsBattlerGrounded(battlerAtk) && (BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK))) && !(IS_BATTLER_OF_TYPE(BATTLE_PARTNER(battlerAtk), TYPE_GRASS) - && AI_IsBattlerGrounded(BATTLE_PARTNER(battlerAtk)) + && IsBattlerGrounded(BATTLE_PARTNER(battlerAtk)) && aiData->abilities[BATTLE_PARTNER(battlerAtk)] != ABILITY_CONTRARY && (BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_ATK) || BattlerStatCanRise(BATTLE_PARTNER(battlerAtk), aiData->abilities[BATTLE_PARTNER(battlerAtk)], STAT_SPATK)))) @@ -1291,7 +1162,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) } } else if (!(IS_BATTLER_OF_TYPE(battlerAtk, TYPE_GRASS) - && AI_IsBattlerGrounded(battlerAtk) + && IsBattlerGrounded(battlerAtk) && (BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_ATK) || BattlerStatCanRise(battlerAtk, aiData->abilities[battlerAtk], STAT_SPATK)))) { ADJUST_SCORE(-10); @@ -1925,7 +1796,7 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-10); break; case EFFECT_REST: - if (!CanBeSlept(battlerAtk, aiData->abilities[battlerAtk])) + if (!CanBeSlept(battlerAtk, aiData->abilities[battlerAtk], NOT_BLOCKED_BY_SLEEP_CLAUSE)) ADJUST_SCORE(-10); //fallthrough case EFFECT_RESTORE_HP: @@ -2208,6 +2079,8 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-10); else if (!AI_CanPutToSleep(battlerAtk, battlerDef, aiData->abilities[battlerDef], move, aiData->partnerMove)) ADJUST_SCORE(-10); + if (PartnerMoveActivatesSleepClause(aiData->partnerMove)) + ADJUST_SCORE(-20); break; case EFFECT_SKILL_SWAP: if (aiData->abilities[battlerAtk] == ABILITY_NONE || aiData->abilities[battlerDef] == ABILITY_NONE @@ -2481,12 +2354,15 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-10); break; case EFFECT_SOAK: + { + u32 types[3]; + GetBattlerTypes(battlerDef, FALSE, types); + // TODO: Use the type of the move like 'VARIOUS_TRY_SOAK'? if (PartnerMoveIsSameAsAttacker(BATTLE_PARTNER(battlerAtk), battlerDef, move, aiData->partnerMove) - || (GetBattlerType(battlerDef, 0, FALSE) == TYPE_WATER - && GetBattlerType(battlerDef, 1, FALSE) == TYPE_WATER - && GetBattlerType(battlerDef, 2, FALSE) == TYPE_MYSTERY)) + || (types[0] == TYPE_WATER && types[1] == TYPE_WATER && types[2] == TYPE_MYSTERY)) ADJUST_SCORE(-10); // target is already water-only break; + } case EFFECT_THIRD_TYPE: switch (move) { @@ -2543,6 +2419,9 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) ADJUST_SCORE(-10); break; case EFFECT_DO_NOTHING: + case EFFECT_HOLD_HANDS: + case EFFECT_CELEBRATE: + case EFFECT_HAPPY_HOUR: ADJUST_SCORE(-10); break; case EFFECT_INSTRUCT: @@ -2636,12 +2515,6 @@ static s32 AI_CheckBadMove(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) else ADJUST_SCORE(-10); break; - case EFFECT_ERUPTION: - if (effectiveness <= AI_EFFECTIVENESS_x0_5) - ADJUST_SCORE(-1); - if (aiData->hpPercents[battlerDef] < 50) - ADJUST_SCORE(-1); - break; case EFFECT_FLAIL: if (AI_IsSlower(battlerAtk, battlerDef, move) // Opponent should go first || aiData->hpPercents[battlerAtk] > 50) @@ -2779,7 +2652,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) bool32 partnerProtecting = (gMovesInfo[aiData->partnerMove].effect == EFFECT_PROTECT); bool32 attackerHasBadAbility = (gAbilitiesInfo[aiData->abilities[battlerAtk]].aiRating < 0); bool32 partnerHasBadAbility = (gAbilitiesInfo[atkPartnerAbility].aiRating < 0); - u32 predictedMove = aiData->predictedMoves[battlerDef]; + u32 predictedMove = aiData->lastUsedMove[battlerDef]; SetTypeBeforeUsingMove(move, battlerAtk); moveType = GetMoveType(move); @@ -2810,7 +2683,7 @@ static s32 AI_DoubleBattle(u32 battlerAtk, u32 battlerDef, u32 move, s32 score) if (IsMoveEffectWeather(move)) ADJUST_SCORE(-10); break; - } + } } // check partner move effect // Adjust for always crit moves @@ -3313,7 +3186,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) u32 effectiveness = aiData->effectiveness[battlerAtk][battlerDef][movesetIndex]; s32 score = 0; - u32 predictedMove = aiData->predictedMoves[battlerDef]; + u32 predictedMove = aiData->lastUsedMove[battlerDef]; u32 predictedMoveSlot = GetMoveSlot(GetMovesArray(battlerDef), predictedMove); bool32 isDoubleBattle = IsValidDoubleBattle(battlerAtk); u32 i; @@ -3588,7 +3461,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) } break; case EFFECT_REST: - if (!(CanBeSlept(battlerAtk, aiData->abilities[battlerAtk]))) + if (!(CanBeSlept(battlerAtk, aiData->abilities[battlerAtk], NOT_BLOCKED_BY_SLEEP_CLAUSE))) { break; } @@ -3650,6 +3523,9 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) ADJUST_SCORE(DECENT_EFFECT); break; case EFFECT_DO_NOTHING: + case EFFECT_HOLD_HANDS: + case EFFECT_CELEBRATE: + case EFFECT_HAPPY_HOUR: //todo - check z splash, z celebrate, z happy hour (lol) break; case EFFECT_TELEPORT: // Either remove or add better logic @@ -3663,12 +3539,12 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) { switch (ShouldPivot(battlerAtk, battlerDef, aiData->abilities[battlerDef], move, movesetIndex)) { - case 0: // no + case DONT_PIVOT: ADJUST_SCORE(-10); // technically should go in CheckBadMove, but this is easier/less computationally demanding break; - case 1: // maybe + case CAN_TRY_PIVOT: break; - case 2: // yes + case SHOULD_PIVOT: ADJUST_SCORE(BEST_EFFECT); break; } @@ -3976,7 +3852,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) ADJUST_SCORE(DECENT_EFFECT); break; case EFFECT_SAFEGUARD: - if (!AI_IsTerrainAffected(battlerAtk, STATUS_FIELD_MISTY_TERRAIN) || !IsBattlerGrounded(battlerAtk)) + if (!IsBattlerTerrainAffected(battlerAtk, STATUS_FIELD_MISTY_TERRAIN) || !IsBattlerGrounded(battlerAtk)) ADJUST_SCORE(DECENT_EFFECT); // TODO: check if opp has status move? //if (CountUsablePartyMons(battlerDef) != 0) //ADJUST_SCORE(8); @@ -4487,7 +4363,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) break; case EFFECT_MAGNET_RISE: if (IsBattlerGrounded(battlerAtk) && HasDamagingMoveOfType(battlerDef, TYPE_ELECTRIC) - && !(AI_GetTypeEffectiveness(MOVE_EARTHQUAKE, battlerDef, battlerAtk) == AI_EFFECTIVENESS_x0)) // Doesn't resist ground move + && !(AI_GetMoveEffectiveness(MOVE_EARTHQUAKE, battlerDef, battlerAtk) == AI_EFFECTIVENESS_x0)) // Doesn't resist ground move { if (AI_IsFaster(battlerAtk, battlerDef, move)) // Attacker goes first { @@ -4505,7 +4381,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) break; case EFFECT_CAMOUFLAGE: if (predictedMove != MOVE_NONE && AI_IsFaster(battlerAtk, battlerDef, move) // Attacker goes first - && !IS_MOVE_STATUS(move) && AI_GetTypeEffectiveness(predictedMove, battlerDef, battlerAtk) != AI_EFFECTIVENESS_x0) + && !IS_MOVE_STATUS(move) && AI_GetMoveEffectiveness(predictedMove, battlerDef, battlerAtk) != AI_EFFECTIVENESS_x0) ADJUST_SCORE(DECENT_EFFECT); break; case EFFECT_TOXIC_THREAD: @@ -4536,7 +4412,13 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) break; case EFFECT_REVIVAL_BLESSING: if (GetFirstFaintedPartyIndex(battlerAtk) != PARTY_SIZE) + { ADJUST_SCORE(DECENT_EFFECT); + if (AI_DATA->shouldSwitch & (1u << battlerAtk)) // Bad matchup + ADJUST_SCORE(WEAK_EFFECT); + if (AI_DATA->mostSuitableMonId[battlerAtk] != PARTY_SIZE) // Good mon to send in after + ADJUST_SCORE(WEAK_EFFECT); + } break; //case EFFECT_EXTREME_EVOBOOST: // TODO //break; @@ -4554,7 +4436,7 @@ static u32 AI_CalcMoveEffectScore(u32 battlerAtk, u32 battlerDef, u32 move) ADJUST_SCORE(GOOD_EFFECT); break; case EFFECT_SALT_CURE: - if (IS_BATTLER_OF_TYPE(battlerDef, TYPE_WATER) || IS_BATTLER_OF_TYPE(battlerDef, TYPE_STEEL)) + if (IS_BATTLER_ANY_TYPE(battlerDef, TYPE_WATER, TYPE_STEEL)) ADJUST_SCORE(DECENT_EFFECT); break; } // move effect checks diff --git a/src/battle_ai_switch_items.c b/src/battle_ai_switch_items.c index 9731a6393b..fd09421ef3 100644 --- a/src/battle_ai_switch_items.c +++ b/src/battle_ai_switch_items.c @@ -23,7 +23,7 @@ // this file's functions static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng); -static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 moduloPercent, bool32 emitResult); +static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 moduloPercent); static bool32 ShouldUseItem(u32 battler); static bool32 AiExpectsToFaintPlayer(u32 battler); static bool32 AI_ShouldHeal(u32 battler, u32 healAmount); @@ -41,7 +41,11 @@ static bool32 IsAceMon(u32 battler, u32 monPartyId) { if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_ACE_POKEMON && !(gBattleStruct->forcedSwitch & (1u << battler)) - && monPartyId == CalculateEnemyPartyCount()-1) + && monPartyId == CalculateEnemyPartyCountInSide(battler)-1) + return TRUE; + if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_DOUBLE_ACE_POKEMON + && !(gBattleStruct->forcedSwitch & (1u << battler)) + && (monPartyId == CalculateEnemyPartyCount()-1 || monPartyId == CalculateEnemyPartyCount()-2)) return TRUE; return FALSE; } @@ -65,10 +69,16 @@ void GetAIPartyIndexes(u32 battler, s32 *firstId, s32 *lastId) } } +static inline bool32 SetSwitchinAndSwitch(u32 battler, u32 switchinId) +{ + gBattleStruct->AI_monToSwitchIntoId[battler] = switchinId; + return TRUE; +} + // Note that as many return statements as possible are INTENTIONALLY put after all of the loops; // the function can take a max of about 0.06s to run, and this prevents the player from identifying // whether the mon will switch or not by seeing how long the delay is before they select a move -static bool32 HasBadOdds(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfHasBadOdds(u32 battler) { //Variable initialization u8 opposingPosition, atkType1, atkType2, defType1, defType2, effectiveness; @@ -116,7 +126,7 @@ static bool32 HasBadOdds(u32 battler, bool32 emitResult) if (gMovesInfo[aiMove].power != 0) { // Check if mon has a super effective move - if (AI_GetTypeEffectiveness(aiMove, battler, opposingBattler) >= UQ_4_12(2.0)) + if (AI_GetMoveEffectiveness(aiMove, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) hasSuperEffectiveMove = TRUE; // Get maximum damage mon can deal @@ -180,14 +190,11 @@ static bool32 HasBadOdds(u32 battler, bool32 emitResult) && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 4))) { // 50% chance to stay in regardless - if (!RandomPercentage(RNG_AI_SWITCH_HASBADODDS, 50)) + if (RandomPercentage(RNG_AI_SWITCH_HASBADODDS, 50)) return FALSE; // Switch mon out - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } // General bad type matchups have more wiggle room @@ -203,39 +210,65 @@ static bool32 HasBadOdds(u32 battler, bool32 emitResult) return FALSE; // 50% chance to stay in regardless - if (!RandomPercentage(RNG_AI_SWITCH_HASBADODDS, 50)) + if (RandomPercentage(RNG_AI_SWITCH_HASBADODDS, 50)) return FALSE; // Switch mon out - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } } return FALSE; } -static bool32 ShouldSwitchIfAllBadMoves(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfTruant(u32 battler) { - if (AI_DATA->shouldSwitchIfBadMoves & (1u << battler)) + // Switch if mon with truant is bodied by Protect or invulnerability spam + if (AI_DATA->abilities[battler] == ABILITY_TRUANT + && IsTruantMonVulnerable(battler, gBattlerTarget) + && gDisableStructs[battler].truantCounter + && gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2 + && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE) { - AI_DATA->shouldSwitchIfBadMoves &= ~(1u << battler); - gBattleStruct->AI_monToSwitchIntoId[battler] = AI_DATA->monToSwitchId[battler]; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - return TRUE; + return SetSwitchinAndSwitch(battler, PARTY_SIZE); + } + return FALSE; +} + +static bool32 ShouldSwitchIfAllMovesBad(u32 battler) +{ + u32 moveIndex; + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); + u32 aiMove; + + // Switch if no moves affect opponents + if (IsDoubleBattle()) + { + u32 opposingPartner = GetBattlerAtPosition(BATTLE_PARTNER(opposingBattler)); + for (moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++) + { + aiMove = gBattleMons[battler].moves[moveIndex]; + if ((AI_GetMoveEffectiveness(aiMove, battler, opposingBattler) > AI_EFFECTIVENESS_x0 + || AI_GetMoveEffectiveness(aiMove, battler, opposingPartner) > AI_EFFECTIVENESS_x0) + && aiMove != MOVE_NONE) + return FALSE; + } } else { - return FALSE; + for (moveIndex = 0; moveIndex < MAX_MON_MOVES; moveIndex++) + { + aiMove = gBattleMons[battler].moves[moveIndex]; + if (AI_GetMoveEffectiveness(aiMove, battler, opposingBattler) > AI_EFFECTIVENESS_x0 && aiMove != MOVE_NONE) + return FALSE; + } } + + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } -static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult) +static bool32 FindMonThatHitsWonderGuard(u32 battler) { - u8 opposingPosition; - u8 opposingBattler; + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); s32 i, j; s32 firstId; s32 lastId; // + 1 @@ -245,29 +278,23 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult) if (IsDoubleBattle()) return FALSE; - opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); - - if (AI_DATA->abilities[GetBattlerAtPosition(opposingPosition)] != ABILITY_WONDER_GUARD) + if (AI_DATA->abilities[opposingBattler] != ABILITY_WONDER_GUARD) return FALSE; // Check if Pokémon has a super effective move. - for (opposingBattler = GetBattlerAtPosition(opposingPosition), i = 0; i < MAX_MON_MOVES; i++) + for (i = 0; i < MAX_MON_MOVES; i++) { move = gBattleMons[battler].moves[i]; if (move != MOVE_NONE) { - if (AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0)) + if (AI_GetMoveEffectiveness(move, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) return FALSE; } } // Get party information. GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); // Find a Pokémon in the party that has a super effective move. for (i = firstId; i < lastId; i++) @@ -279,19 +306,14 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult) if (IsAceMon(battler, i)) continue; - for (opposingBattler = GetBattlerAtPosition(opposingPosition), j = 0; j < MAX_MON_MOVES; j++) + for (j = 0; j < MAX_MON_MOVES; j++) { move = GetMonData(&party[i], MON_DATA_MOVE1 + j); if (move != MOVE_NONE) { - if (AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0) && (RandomPercentage(RNG_AI_SWITCH_WONDER_GUARD, 66) || ((AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING)))) - { - // We found a mon. - gBattleStruct->AI_monToSwitchIntoId[battler] = i; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - return TRUE; - } + // Found a mon + if (AI_GetMoveEffectiveness(move, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) + return SetSwitchinAndSwitch(battler, i); } } } @@ -299,23 +321,24 @@ static bool32 ShouldSwitchIfWonderGuard(u32 battler, bool32 emitResult) return FALSE; // There is not a single Pokémon in the party that has a super effective move against a mon with Wonder Guard. } -static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult) +static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler) { u8 battlerIn1, battlerIn2; u8 numAbsorbingAbilities = 0; u16 absorbingTypeAbilities[3]; // Array size is maximum number of absorbing abilities for a single type s32 firstId; - s32 lastId; // + 1 + s32 lastId; struct Pokemon *party; + u16 monAbility; + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); + u32 incomingMove = AI_DATA->lastUsedMove[opposingBattler]; + u32 predictedMove = incomingMove; // Update for move prediction + bool32 isOpposingBattlerChargingOrInvulnerable = (IsSemiInvulnerable(opposingBattler, incomingMove) || IsTwoTurnNotSemiInvulnerableMove(opposingBattler, incomingMove)); s32 i, j; - if (HasSuperEffectiveMoveAgainstOpponents(battler, TRUE) && Random() % 3 != 0) + if (!(AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING)) return FALSE; - if (gLastLandedMoves[battler] == MOVE_NONE) - return FALSE; - if (gLastLandedMoves[battler] == MOVE_UNAVAILABLE) - return FALSE; - if (IS_MOVE_STATUS(gLastLandedMoves[battler])) + if (HasSuperEffectiveMoveAgainstOpponents(battler, TRUE) && RandomPercentage(RNG_AI_SWITCH_ABSORBING, 66)) return FALSE; if (IsDoubleBattle()) @@ -333,31 +356,36 @@ static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult) } // Create an array of possible absorb abilities so the AI considers all of them - if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_FIRE) + if (gMovesInfo[predictedMove].type == TYPE_FIRE) { absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_FLASH_FIRE; } - else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_WATER) + else if (gMovesInfo[predictedMove].type == TYPE_WATER || (isOpposingBattlerChargingOrInvulnerable && gMovesInfo[incomingMove].type == TYPE_WATER)) { absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_WATER_ABSORB; absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_DRY_SKIN; if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_STORM_DRAIN; } - else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_ELECTRIC) + else if (gMovesInfo[predictedMove].type == TYPE_ELECTRIC || (isOpposingBattlerChargingOrInvulnerable && gMovesInfo[incomingMove].type == TYPE_ELECTRIC)) { absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_VOLT_ABSORB; absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_MOTOR_DRIVE; if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5) absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_LIGHTNING_ROD; } - else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_GRASS) + else if (gMovesInfo[predictedMove].type == TYPE_GRASS || (isOpposingBattlerChargingOrInvulnerable && gMovesInfo[incomingMove].type == TYPE_GRASS)) { absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_SAP_SIPPER; } - else if (gMovesInfo[gLastLandedMoves[battler]].type == TYPE_GROUND) + else if (gMovesInfo[predictedMove].type == TYPE_GROUND || (isOpposingBattlerChargingOrInvulnerable && gMovesInfo[incomingMove].type == TYPE_GROUND)) { absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_EARTH_EATER; + absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_LEVITATE; + } + else if (gMovesInfo[predictedMove].soundMove || (isOpposingBattlerChargingOrInvulnerable && gMovesInfo[incomingMove].soundMove)) + { + absorbingTypeAbilities[numAbsorbingAbilities++] = ABILITY_SOUNDPROOF; } else { @@ -367,21 +395,16 @@ static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult) // Check current mon for all absorbing abilities for (i = 0; i < numAbsorbingAbilities; i++) { - if (AI_DATA->abilities[battler] == absorbingTypeAbilities[i]) + if (gBattleMons[battler].ability == absorbingTypeAbilities[i]) return FALSE; } + // Check party for mon with ability that absorbs move GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); for (i = firstId; i < lastId; i++) { - u16 monAbility; - if (!IsValidForBattle(&party[i])) continue; if (i == gBattlerPartyIndexes[battlerIn1]) @@ -399,20 +422,30 @@ static bool32 FindMonThatAbsorbsOpponentsMove(u32 battler, bool32 emitResult) for (j = 0; j < numAbsorbingAbilities; j++) { - if (absorbingTypeAbilities[j] == monAbility && Random() & 1) - { - // we found a mon. - gBattleStruct->AI_monToSwitchIntoId[battler] = i; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + // Found a mon + if (absorbingTypeAbilities[j] == monAbility) + return SetSwitchinAndSwitch(battler, i); } } return FALSE; } -static bool32 FindMonThatTrapsOpponent(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfOpponentChargingOrInvulnerable(u32 battler) +{ + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); + u32 incomingMove = AI_DATA->lastUsedMove[opposingBattler]; + bool32 isOpposingBattlerChargingOrInvulnerable = (IsSemiInvulnerable(opposingBattler, incomingMove) || IsTwoTurnNotSemiInvulnerableMove(opposingBattler, incomingMove)); + + if (IsDoubleBattle() || !(AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING)) + return FALSE; + + if (isOpposingBattlerChargingOrInvulnerable && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); + + return FALSE; +} + +static bool32 ShouldSwitchIfTrapperInParty(u32 battler) { s32 firstId; s32 lastId; @@ -431,46 +464,33 @@ static bool32 FindMonThatTrapsOpponent(u32 battler, bool32 emitResult) // Check party for mon with ability that traps opponent GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); for (i = firstId; i < lastId; i++) { + if (IsAceMon(battler, i)) + return FALSE; + monAbility = GetMonAbility(&party[i]); + if (CanAbilityTrapOpponent(monAbility, opposingBattler)) { - if (i == AI_DATA->mostSuitableMonId[battler]) // If mon in slot i is the most suitable switchin candidate, then it's a trapper than wins 1v1 - { - gBattleStruct->AI_monToSwitchIntoId[battler] = i; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + // If mon in slot i is the most suitable switchin candidate, then it's a trapper than wins 1v1 + if (i == AI_DATA->mostSuitableMonId[battler]) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } } return FALSE; } -static bool32 ShouldSwitchIfGameStatePrompt(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfBadlyStatused(u32 battler) { bool32 switchMon = FALSE; - bool32 monIdChosen = FALSE; // Id of the mon to switch into. u16 monAbility = AI_DATA->abilities[battler]; u16 holdEffect = AI_DATA->holdEffects[battler]; u8 opposingPosition = BATTLE_OPPOSITE(GetBattlerPosition(battler)); u8 opposingBattler = GetBattlerAtPosition(opposingPosition); - s32 moduloChance = 4; //25% Chance Default - s32 chanceReducer = 1; //No Reduce default. Increase to reduce - s32 firstId; - s32 lastId; - s32 i; - struct Pokemon *party; - - if (AnyStatIsRaised(battler)) - chanceReducer = 5; // Reduce switchout probability by factor of 5 if setup + bool32 hasStatRaised = AnyStatIsRaised(battler); //Perish Song if (gStatuses3[battler] & STATUS3_PERISH_SONG @@ -482,75 +502,29 @@ static bool32 ShouldSwitchIfGameStatePrompt(u32 battler, bool32 emitResult) { //Yawn if (gStatuses3[battler] & STATUS3_YAWN - && CanBeSlept(battler, monAbility) + && CanBeSlept(battler, monAbility, BLOCKED_BY_SLEEP_CLAUSE) && gBattleMons[battler].hp > gBattleMons[battler].maxHP / 3) { switchMon = TRUE; - //Double Battles - //Check if partner can prevent sleep - if (IsDoubleBattle()) - { - if (IsBattlerAlive(BATTLE_PARTNER(battler)) - && (GetAIChosenMove(BATTLE_PARTNER(battler)) == MOVE_UPROAR) - ) - switchMon = FALSE; - - if (IsBattlerAlive(BATTLE_PARTNER(battler)) - && (gMovesInfo[AI_DATA->partnerMove].effect == EFFECT_MISTY_TERRAIN - || gMovesInfo[AI_DATA->partnerMove].effect == EFFECT_ELECTRIC_TERRAIN) - && IsBattlerGrounded(battler) - ) - switchMon = FALSE; - - if (*(gBattleStruct->AI_monToSwitchIntoId + BATTLE_PARTNER(battler)) != PARTY_SIZE) //Partner is switching - { - GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - - for (i = firstId; i < lastId; i++) - { - if (IsAceMon(battler, i)) - continue; - - //Look for mon in party that is able to be switched into and has ability that sets terrain - if (IsValidForBattle(&party[i]) - && i != gBattlerPartyIndexes[battler] - && i != gBattlerPartyIndexes[BATTLE_PARTNER(battler)] - && IsBattlerGrounded(battler) - && (GetMonAbility(&party[i]) == ABILITY_MISTY_SURGE - || GetMonAbility(&party[i]) == ABILITY_ELECTRIC_SURGE)) //Ally has Misty or Electric Surge - { - *(gBattleStruct->AI_monToSwitchIntoId + BATTLE_PARTNER(battler)) = i; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - switchMon = FALSE; - break; - } - } - } - } - - //Check if Active Pokemon can KO opponent instead of switching - //Will still fall asleep, but take out opposing Pokemon first + // Check if Active Pokemon can KO opponent instead of switching + // Will still fall asleep, but take out opposing Pokemon first if (AiExpectsToFaintPlayer(battler)) switchMon = FALSE; - //Checks to see if active Pokemon can do something against sleep + // Checks to see if active Pokemon can do something against sleep if ((monAbility == ABILITY_NATURAL_CURE || monAbility == ABILITY_SHED_SKIN || monAbility == ABILITY_EARLY_BIRD) || holdEffect == (HOLD_EFFECT_CURE_SLP | HOLD_EFFECT_CURE_STATUS) || HasMove(battler, MOVE_SLEEP_TALK) - || (HasMoveEffect(battler, MOVE_SNORE) && AI_GetTypeEffectiveness(MOVE_SNORE, battler, opposingBattler) >= UQ_4_12(1.0)) + || (HasMoveEffect(battler, MOVE_SNORE) && AI_GetMoveEffectiveness(MOVE_SNORE, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) || (IsBattlerGrounded(battler) && (HasMove(battler, MOVE_MISTY_TERRAIN) || HasMove(battler, MOVE_ELECTRIC_TERRAIN))) ) switchMon = FALSE; - //Check if Active Pokemon evasion boosted and might be able to dodge until awake + // Check if Active Pokemon evasion boosted and might be able to dodge until awake if (gBattleMons[battler].statStages[STAT_EVASION] > (DEFAULT_STAT_STAGE + 3) && AI_DATA->abilities[opposingBattler] != ABILITY_UNAWARE && AI_DATA->abilities[opposingBattler] != ABILITY_KEEN_EYE @@ -559,114 +533,80 @@ static bool32 ShouldSwitchIfGameStatePrompt(u32 battler, bool32 emitResult) && !(gBattleMons[battler].status2 & STATUS2_FORESIGHT) && !(gStatuses3[battler] & STATUS3_MIRACLE_EYED)) switchMon = FALSE; - } - //Secondary Damage + // Secondary Damage if (monAbility != ABILITY_MAGIC_GUARD && !AiExpectsToFaintPlayer(battler)) { //Toxic - moduloChance = 2; //50% if (((gBattleMons[battler].status1 & STATUS1_TOXIC_COUNTER) >= STATUS1_TOXIC_TURN(2)) && gBattleMons[battler].hp >= (gBattleMons[battler].maxHP / 3) - && (Random() % (moduloChance*chanceReducer)) == 0) + && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_BADLY_POISONED, 20) : RandomPercentage(RNG_AI_SWITCH_BADLY_POISONED, 50))) switchMon = TRUE; //Cursed - moduloChance = 2; //50% if (gBattleMons[battler].status2 & STATUS2_CURSED - && (Random() % (moduloChance*chanceReducer)) == 0) + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_CURSED, 20) : RandomPercentage(RNG_AI_SWITCH_CURSED, 50))) switchMon = TRUE; //Nightmare - moduloChance = 3; //33.3% if (gBattleMons[battler].status2 & STATUS2_NIGHTMARE - && (Random() % (moduloChance*chanceReducer)) == 0) + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_NIGHTMARE, 15) : RandomPercentage(RNG_AI_SWITCH_NIGHTMARE, 33))) switchMon = TRUE; //Leech Seed - moduloChance = 4; //25% if (gStatuses3[battler] & STATUS3_LEECHSEED - && (Random() % (moduloChance*chanceReducer)) == 0) + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_SEEDED, 10) : RandomPercentage(RNG_AI_SWITCH_SEEDED, 25))) switchMon = TRUE; } - //Infatuation + // Infatuation if (gBattleMons[battler].status2 & STATUS2_INFATUATION && !AiExpectsToFaintPlayer(battler)) switchMon = TRUE; - - //Todo - //Pass Wish Heal - - //Semi-Invulnerable - if (gStatuses3[opposingBattler] & STATUS3_SEMI_INVULNERABLE) - { - if (FindMonThatAbsorbsOpponentsMove(battler, FALSE)) // Switch if absorber found. Note: FindMonThatAbsorbsOpponentsMove already provides id of the mon to switch into to gBattleStruct->AI_monToSwitchIntoId. - switchMon = TRUE, monIdChosen = TRUE; - if (!AI_OpponentCanFaintAiWithMod(battler, 0) - && AnyStatIsRaised(battler)) - switchMon = FALSE; - if (AiExpectsToFaintPlayer(battler) - && AI_IsSlower(battler, opposingBattler, 0) - && !AI_OpponentCanFaintAiWithMod(battler, 0)) - switchMon = FALSE; - } } if (switchMon) - { - if (!monIdChosen) - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - return TRUE; - } + return SetSwitchinAndSwitch(battler, PARTY_SIZE); else - { return FALSE; - } } -static bool32 ShouldSwitchIfAbilityBenefit(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfAbilityBenefit(u32 battler) { - s32 moduloChance = 4; //25% Chance Default - s32 chanceReducer = 1; //No Reduce default. Increase to reduce - - if (AnyStatIsRaised(battler)) - chanceReducer = 5; // Reduce switchout probability by factor of 5 if setup + bool32 hasStatRaised = AnyStatIsRaised(battler); //Check if ability is blocked if (gStatuses3[battler] & STATUS3_GASTRO_ACID - ||IsNeutralizingGasOnField()) + || IsNeutralizingGasOnField()) return FALSE; switch(AI_DATA->abilities[battler]) { case ABILITY_NATURAL_CURE: - moduloChance = 4; //25% //Attempt to cure bad ailment if (gBattleMons[battler].status1 & (STATUS1_SLEEP | STATUS1_FREEZE | STATUS1_TOXIC_POISON) - && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE) + && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_NATURAL_CURE, 10) : RandomPercentage(RNG_AI_SWITCH_NATURAL_CURE, 66))) break; //Attempt to cure lesser ailment if ((gBattleMons[battler].status1 & STATUS1_ANY) && (gBattleMons[battler].hp >= gBattleMons[battler].maxHP / 2) && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE - && Random() % (moduloChance*chanceReducer) == 0) + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_NATURAL_CURE, 10) : RandomPercentage(RNG_AI_SWITCH_NATURAL_CURE, 25))) break; return FALSE; case ABILITY_REGENERATOR: - moduloChance = 2; //50% //Don't switch if ailment if (gBattleMons[battler].status1 & STATUS1_ANY) return FALSE; if ((gBattleMons[battler].hp <= ((gBattleMons[battler].maxHP * 2) / 3)) && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE - && Random() % (moduloChance*chanceReducer) == 0) + && (hasStatRaised ? RandomPercentage(RNG_AI_SWITCH_REGENERATOR, 20) : RandomPercentage(RNG_AI_SWITCH_REGENERATOR, 50))) break; return FALSE; @@ -675,11 +615,7 @@ static bool32 ShouldSwitchIfAbilityBenefit(u32 battler, bool32 emitResult) return FALSE; } - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - - return TRUE; + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng) @@ -698,7 +634,7 @@ static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng) if (move == MOVE_NONE) continue; - if (AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0)) + if (AI_GetMoveEffectiveness(move, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) { if (noRng) return TRUE; @@ -720,7 +656,7 @@ static bool32 HasSuperEffectiveMoveAgainstOpponents(u32 battler, bool32 noRng) if (move == MOVE_NONE) continue; - if (AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0)) + if (AI_GetMoveEffectiveness(move, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) { if (noRng) return TRUE; @@ -747,7 +683,7 @@ static bool32 AreStatsRaised(u32 battler) return (buffedStatsValue > 3); } -static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 moduloPercent, bool32 emitResult) +static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 percentChance) { u32 battlerIn1, battlerIn2; s32 firstId; @@ -756,6 +692,10 @@ static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 modu s32 i, j; u16 move; + // Similar functionality handled more thoroughly by ShouldSwitchIfHasBadOdds + if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING) + return FALSE; + if (gLastLandedMoves[battler] == MOVE_NONE) return FALSE; if (gLastLandedMoves[battler] == MOVE_UNAVAILABLE) @@ -780,11 +720,7 @@ static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 modu } GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); for (i = firstId; i < lastId; i++) { @@ -806,7 +742,7 @@ static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 modu species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG); monAbility = GetMonAbility(&party[i]); CalcPartyMonTypeEffectivenessMultiplier(gLastLandedMoves[battler], species, monAbility); - if (gMoveResultFlags & flags) + if (gBattleStruct->moveResultFlags[BATTLE_OPPOSITE(battler)] & flags) { battlerIn1 = gLastHitBy[battler]; @@ -816,13 +752,8 @@ static bool32 FindMonWithFlagsAndSuperEffective(u32 battler, u16 flags, u32 modu if (move == 0) continue; - if (AI_GetTypeEffectiveness(move, battler, battlerIn1) >= UQ_4_12(2.0) && Random() % moduloPercent == 0) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = i; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_SWITCH, 0); - return TRUE; - } + if (AI_GetMoveEffectiveness(move, battler, battlerIn1) >= AI_EFFECTIVENESS_x2 && RandomPercentage(RNG_AI_SWITCH_SE_DEFENSIVE, percentChance)) + return SetSwitchinAndSwitch(battler, i); } } } @@ -896,48 +827,49 @@ static bool32 CanMonSurviveHazardSwitchin(u32 battler) return TRUE; } -static bool32 ShouldSwitchIfEncored(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfEncored(u32 battler) { + u32 encoredMove = gDisableStructs[battler].encoredMove; + u32 opposingBattler = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(battler))); + // Only use this if AI_FLAG_SMART_SWITCHING is set for the trainer if (!(AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING)) return FALSE; - // If not Encored or if no good switchin, don't switch - if (gDisableStructs[battler].encoredMove == MOVE_NONE || AI_DATA->mostSuitableMonId[battler] == PARTY_SIZE) + // If not Encore'd don't switch + if (encoredMove == MOVE_NONE) return FALSE; - // Otherwise 50% chance to switch out - if (Random() & 1) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + // Switch out if status move + if (gMovesInfo[encoredMove].category == DAMAGE_CATEGORY_STATUS) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); + + // Stay in if effective move + else if (AI_GetMoveEffectiveness(encoredMove, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) + return FALSE; + + // Switch out 50% of the time otherwise + else if (RandomPercentage(RNG_AI_SWITCH_ENCORE, 50) && AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); return FALSE; } -static bool32 ShouldSwitchIfBadChoiceLock(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfBadChoiceLock(u32 battler) { u32 holdEffect = GetBattlerHoldEffect(battler, FALSE); if (HOLD_EFFECT_CHOICE(holdEffect) && gBattleMons[battler].ability != ABILITY_KLUTZ) { if (gMovesInfo[gLastUsedMove].category == DAMAGE_CATEGORY_STATUS) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } return FALSE; } // AI should switch if it's become setup fodder and has something better to switch to -static bool32 AreAttackingStatsLowered(u32 battler, bool32 emitResult) +static bool32 ShouldSwitchIfAttackingStatsLowered(u32 battler) { s8 attackingStage = gBattleMons[battler].statStages[STAT_ATK]; s8 spAttackingStage = gBattleMons[battler].statStages[STAT_SPATK]; @@ -955,22 +887,12 @@ static bool32 AreAttackingStatsLowered(u32 battler, bool32 emitResult) // 50% chance if attack at -2 and have a good candidate mon else if (attackingStage == DEFAULT_STAT_STAGE - 2) { - if (AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE && (Random() & 1)) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + if (AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE && RandomPercentage(RNG_AI_SWITCH_STATS_LOWERED, 50)) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } // If at -3 or worse, switch out regardless else if (attackingStage < DEFAULT_STAT_STAGE - 2) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - if (emitResult) - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } // Special attacker @@ -982,25 +904,17 @@ static bool32 AreAttackingStatsLowered(u32 battler, bool32 emitResult) // 50% chance if attack at -2 and have a good candidate mon else if (spAttackingStage == DEFAULT_STAT_STAGE - 2) { - if (AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE && (Random() & 1)) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + if (AI_DATA->mostSuitableMonId[battler] != PARTY_SIZE && RandomPercentage(RNG_AI_SWITCH_STATS_LOWERED, 50)) + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } // If at -3 or worse, switch out regardless else if (spAttackingStage < DEFAULT_STAT_STAGE - 2) - { - gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; - BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); - return TRUE; - } + return SetSwitchinAndSwitch(battler, PARTY_SIZE); } return FALSE; } -bool32 ShouldSwitch(u32 battler, bool32 emitResult) +bool32 ShouldSwitch(u32 battler) { u32 battlerIn1, battlerIn2; s32 firstId; @@ -1027,11 +941,12 @@ bool32 ShouldSwitch(u32 battler, bool32 emitResult) if (IsDoubleBattle()) { + u32 partner = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerAtPosition(battler))); battlerIn1 = battler; - if (gAbsentBattlerFlags & (1u << GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battler))))) + if (gAbsentBattlerFlags & (1u << partner)) battlerIn2 = battler; else - battlerIn2 = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(battler))); + battlerIn2 = partner; } else { @@ -1040,11 +955,7 @@ bool32 ShouldSwitch(u32 battler, bool32 emitResult) } GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); for (i = firstId; i < lastId; i++) { @@ -1075,51 +986,82 @@ bool32 ShouldSwitch(u32 battler, bool32 emitResult) return FALSE; } - //NOTE: The sequence of the below functions matter! Do not change unless you have carefully considered the outcome. - //Since the order is sequencial, and some of these functions prompt switch to specific party members. + // NOTE: The sequence of the below functions matter! Do not change unless you have carefully considered the outcome. + // Since the order is sequencial, and some of these functions prompt switch to specific party members. - //These Functions can prompt switch to specific party members - if (ShouldSwitchIfWonderGuard(battler, emitResult)) + // These Functions can prompt switch to specific party members that override GetMostSuitableMonToSwitchInto + if (FindMonThatHitsWonderGuard(battler)) return TRUE; - if (ShouldSwitchIfGameStatePrompt(battler, emitResult)) - return TRUE; - if (FindMonThatTrapsOpponent(battler, emitResult)) - return TRUE; - if (FindMonThatAbsorbsOpponentsMove(battler, emitResult)) + if (FindMonThatAbsorbsOpponentsMove(battler)) return TRUE; - //These Functions can prompt switch to generic pary members + // These Functions can prompt switch to party member returned by GetMostSuitableMonToSwitchInto if ((AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING) && (CanMonSurviveHazardSwitchin(battler) == FALSE)) return FALSE; - if (ShouldSwitchIfAllBadMoves(battler, emitResult)) + if (ShouldSwitchIfTrapperInParty(battler)) return TRUE; - if (ShouldSwitchIfAbilityBenefit(battler, emitResult)) + if (ShouldSwitchIfOpponentChargingOrInvulnerable(battler)) return TRUE; - if (HasBadOdds(battler, emitResult)) + if (ShouldSwitchIfTruant(battler)) return TRUE; - if (ShouldSwitchIfEncored(battler, emitResult)) + if (ShouldSwitchIfAllMovesBad(battler)) return TRUE; - if (ShouldSwitchIfBadChoiceLock(battler, emitResult)) + if (ShouldSwitchIfBadlyStatused(battler)) return TRUE; - if (AreAttackingStatsLowered(battler, emitResult)) + if (ShouldSwitchIfAbilityBenefit(battler)) + return TRUE; + if (ShouldSwitchIfHasBadOdds(battler)) + return TRUE; + if (ShouldSwitchIfEncored(battler)) + return TRUE; + if (ShouldSwitchIfBadChoiceLock(battler)) + return TRUE; + if (ShouldSwitchIfAttackingStatsLowered(battler)) return TRUE; // Removing switch capabilites under specific conditions // These Functions prevent the "FindMonWithFlagsAndSuperEffective" from getting out of hand. + // We don't use FindMonWithFlagsAndSuperEffective with AI_FLAG_SMART_SWITCHING, so we can bail early. + if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SMART_SWITCHING) + return FALSE; if (HasSuperEffectiveMoveAgainstOpponents(battler, FALSE)) return FALSE; if (AreStatsRaised(battler)) return FALSE; - //Default Function - //Can prompt switch if AI has a pokemon in party that resists current opponent & has super effective move - if (FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_DOESNT_AFFECT_FOE, 2, emitResult) - || FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_NOT_VERY_EFFECTIVE, 3, emitResult)) + // Default Function + // Can prompt switch if AI has a pokemon in party that resists current opponent & has super effective move + if (FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_DOESNT_AFFECT_FOE, 50) + || FindMonWithFlagsAndSuperEffective(battler, MOVE_RESULT_NOT_VERY_EFFECTIVE, 33)) return TRUE; return FALSE; } +bool32 IsSwitchinValid(u32 battler) +{ + // Edge case: See if partner already chose to switch into the same mon + if (IsDoubleBattle()) + { + u32 partner = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerAtPosition(battler))); + if (gBattleStruct->AI_monToSwitchIntoId[battler] == PARTY_SIZE) // Generic switch + { + if ((AI_DATA->shouldSwitch & (1u << partner)) && AI_DATA->monToSwitchInId[partner] == AI_DATA->mostSuitableMonId[battler]) + { + return FALSE; + } + } + else // Override switch + { + if ((AI_DATA->shouldSwitch & (1u << partner)) && AI_DATA->monToSwitchInId[partner] == gBattleStruct->AI_monToSwitchIntoId[battler]) + { + return FALSE; + } + } + } + return TRUE; +} + void AI_TrySwitchOrUseItem(u32 battler) { struct Pokemon *party; @@ -1127,16 +1069,13 @@ void AI_TrySwitchOrUseItem(u32 battler) s32 firstId; s32 lastId; // + 1 u8 battlerPosition = GetBattlerPosition(battler); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) { - if (ShouldSwitch(battler, TRUE)) + if (AI_DATA->shouldSwitch & (1u << battler) && IsSwitchinValid(battler)) { + BtlController_EmitTwoReturnValues(battler, 1, B_ACTION_SWITCH, 0); if (gBattleStruct->AI_monToSwitchIntoId[battler] == PARTY_SIZE) { s32 monToSwitchId = AI_DATA->mostSuitableMonId[battler]; @@ -1178,6 +1117,7 @@ void AI_TrySwitchOrUseItem(u32 battler) } *(gBattleStruct->monToSwitchIntoId + battler) = gBattleStruct->AI_monToSwitchIntoId[battler]; + AI_DATA->monToSwitchInId[battler] = gBattleStruct->AI_monToSwitchIntoId[battler]; return; } else if (ShouldUseItem(battler)) @@ -1266,7 +1206,7 @@ static u32 GetBestMonTypeMatchup(struct Pokemon *party, int firstId, int lastId, for (i = 0; i < MAX_MON_MOVES; i++) { u32 move = GetMonData(&party[bestMonId], MON_DATA_MOVE1 + i); - if (move != MOVE_NONE && AI_GetTypeEffectiveness(move, battler, opposingBattler) >= UQ_4_12(2.0)) + if (move != MOVE_NONE && AI_GetMoveEffectiveness(move, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) break; } @@ -1289,9 +1229,10 @@ static u32 GetBestMonDmg(struct Pokemon *party, int firstId, int lastId, u8 inva int i, j; int dmg, bestDmg = 0; int bestMonId = PARTY_SIZE; + u32 rollType = GetDmgRollType(battler); + u32 aiMove; - gMoveResultFlags = 0; // If we couldn't find the best mon in terms of typing, find the one that deals most damage. for (i = firstId; i < lastId; i++) { @@ -1304,10 +1245,7 @@ static u32 GetBestMonDmg(struct Pokemon *party, int firstId, int lastId, u8 inva if (aiMove != MOVE_NONE && gMovesInfo[aiMove].power != 0) { aiMove = GetMonData(&party[i], MON_DATA_MOVE1 + j); - if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_CONSERVATIVE) - dmg = AI_CalcPartyMonDamage(aiMove, battler, opposingBattler, AI_DATA->switchinCandidate.battleMon, TRUE, DMG_ROLL_LOWEST); - else - dmg = AI_CalcPartyMonDamage(aiMove, battler, opposingBattler, AI_DATA->switchinCandidate.battleMon, TRUE, DMG_ROLL_DEFAULT); + dmg = AI_CalcPartyMonDamage(aiMove, battler, opposingBattler, AI_DATA->switchinCandidate.battleMon, TRUE, rollType); if (bestDmg < dmg) { bestDmg = dmg; @@ -1922,7 +1860,7 @@ static u32 GetBestMonIntegrated(struct Pokemon *party, int firstId, int lastId, { if (typeMatchup < bestResistEffective) { - if (AI_GetTypeEffectiveness(aiMove, battler, opposingBattler) >= UQ_4_12(2.0)) + if (AI_GetMoveEffectiveness(aiMove, battler, opposingBattler) >= AI_EFFECTIVENESS_x2) { if (canSwitchinWin1v1) { @@ -2066,11 +2004,7 @@ u32 GetMostSuitableMonToSwitchInto(u32 battler, bool32 switchAfterMonKOd) } GetAIPartyIndexes(battler, &firstId, &lastId); - - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_SEQUENCE_SWITCHING) { @@ -2171,10 +2105,7 @@ static bool32 ShouldUseItem(u32 battler) if (AiExpectsToFaintPlayer(battler)) return FALSE; - if (GetBattlerSide(battler) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battler); for (i = 0; i < PARTY_SIZE; i++) { diff --git a/src/battle_ai_util.c b/src/battle_ai_util.c index 612e89c9ce..228e5202c5 100644 --- a/src/battle_ai_util.c +++ b/src/battle_ai_util.c @@ -35,6 +35,16 @@ static u32 AI_GetEffectiveness(uq4_12_t multiplier); // Functions +u32 GetDmgRollType(u32 battlerAtk) +{ + if (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_RISKY) + return DMG_ROLL_HIGHEST; + if (AI_THINKING_STRUCT->aiFlags[battlerAtk] & AI_FLAG_CONSERVATIVE) + return DMG_ROLL_LOWEST; + + return DMG_ROLL_DEFAULT; +} + bool32 AI_IsFaster(u32 battlerAi, u32 battlerDef, u32 move) { return (AI_WhoStrikesFirst(battlerAi, battlerDef, move) == AI_IS_FASTER); @@ -92,6 +102,15 @@ bool32 IsAiBattlerAware(u32 battlerId) return BattlerHasAi(battlerId); } +bool32 IsAiBattlerPredictingAbility(u32 battlerId) +{ + if (AI_THINKING_STRUCT->aiFlags[B_POSITION_OPPONENT_LEFT] & AI_FLAG_WEIGH_ABILITY_PREDICTION + || AI_THINKING_STRUCT->aiFlags[B_POSITION_OPPONENT_RIGHT] & AI_FLAG_WEIGH_ABILITY_PREDICTION) + return TRUE; + + return BattlerHasAi(battlerId); +} + void ClearBattlerMoveHistory(u32 battlerId) { memset(BATTLE_HISTORY->usedMoves[battlerId], 0, sizeof(BATTLE_HISTORY->usedMoves[battlerId])); @@ -367,11 +386,12 @@ bool32 MovesWithCategoryUnusable(u32 attacker, u32 target, u32 category) struct SimulatedDamage AI_CalcDamageSaveBattlers(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectiveness, bool32 considerZPower, enum DamageRollType rollType) { struct SimulatedDamage dmg; + SaveBattlerData(battlerAtk); SaveBattlerData(battlerDef); SetBattlerData(battlerAtk); SetBattlerData(battlerDef); - dmg = AI_CalcDamage(move, battlerAtk, battlerDef, typeEffectiveness, considerZPower, AI_GetWeather(AI_DATA), rollType); + dmg = AI_CalcDamage(move, battlerAtk, battlerDef, typeEffectiveness, considerZPower, AI_GetWeather(AI_DATA), rollType); RestoreBattlerData(battlerAtk); RestoreBattlerData(battlerDef); return dmg; @@ -398,16 +418,22 @@ static inline s32 DmgRoll(s32 dmg) return dmg; } -bool32 IsDamageMoveUnusable(u32 move, u32 battlerAtk, u32 battlerDef) +bool32 IsDamageMoveUnusable(u32 battlerAtk, u32 battlerDef, u32 move, u32 moveType) { struct AiLogicData *aiData = AI_DATA; u32 battlerDefAbility; - u32 moveType = GetMoveType(move); + u32 partnerBattlerDefAbility; if (DoesBattlerIgnoreAbilityChecks(aiData->abilities[battlerAtk], move)) + { battlerDefAbility = ABILITY_NONE; + partnerBattlerDefAbility = ABILITY_NONE; + } else + { battlerDefAbility = aiData->abilities[battlerDef]; + partnerBattlerDefAbility = aiData->abilities[BATTLE_PARTNER(battlerDef)]; + } if (battlerDef == BATTLE_PARTNER(battlerAtk)) battlerDefAbility = aiData->abilities[battlerDef]; @@ -415,47 +441,14 @@ bool32 IsDamageMoveUnusable(u32 move, u32 battlerAtk, u32 battlerDef) if (gBattleStruct->commandingDondozo & (1u << battlerDef)) return TRUE; - switch (battlerDefAbility) - { - case ABILITY_LIGHTNING_ROD: - if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5) - break; - // Fallthrough - case ABILITY_VOLT_ABSORB: - case ABILITY_MOTOR_DRIVE: - if (moveType == TYPE_ELECTRIC) - return TRUE; - break; - case ABILITY_STORM_DRAIN: - if (B_REDIRECT_ABILITY_IMMUNITY < GEN_5) - break; - // Fallthrough - case ABILITY_WATER_ABSORB: - case ABILITY_DRY_SKIN: - if (moveType == TYPE_WATER) - return TRUE; - break; - case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE) - return TRUE; - break; - case ABILITY_SOUNDPROOF: - if (gMovesInfo[move].soundMove) - return TRUE; - break; - case ABILITY_BULLETPROOF: - if (gMovesInfo[move].ballisticMove) - return TRUE; - break; - case ABILITY_SAP_SIPPER: - if (moveType == TYPE_GRASS) - return TRUE; - break; - case ABILITY_EARTH_EATER: - if (moveType == TYPE_GROUND) - return TRUE; - break; - } + if (CanAbilityBlockMove(battlerAtk, battlerDef, move, aiData->abilities[battlerDef])) + return TRUE; + + if (CanPartnerAbilityBlockMove(battlerAtk, battlerDef, move, partnerBattlerDefAbility)) + return TRUE; + + if (CanAbilityAbsorbMove(battlerAtk, battlerDef, aiData->abilities[battlerDef], move, moveType)) + return TRUE; switch (gMovesInfo[move].effect) { @@ -517,6 +510,131 @@ static inline s32 GetDamageByRollType(s32 dmg, enum DamageRollType rollType) return DmgRoll(dmg); } +static inline void SetMoveDamageCategory(u32 battlerAtk, u32 battlerDef, u32 move) +{ + switch (gMovesInfo[move].effect) + { + case EFFECT_PHOTON_GEYSER: + gBattleStruct->swapDamageCategory = (GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL); + break; + case EFFECT_SHELL_SIDE_ARM: + if (gBattleStruct->shellSideArmCategory[battlerAtk][battlerDef] == DAMAGE_CATEGORY_PHYSICAL) + gBattleStruct->swapDamageCategory = TRUE; + break; + case EFFECT_TERA_BLAST: + if (GetActiveGimmick(battlerAtk) == GIMMICK_TERA) + gBattleStruct->swapDamageCategory = GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL; + break; + case EFFECT_TERA_STARSTORM: + if (GetActiveGimmick(battlerAtk) == GIMMICK_TERA && GET_BASE_SPECIES_ID(GetMonData(GetPartyBattlerData(battlerAtk), MON_DATA_SPECIES)) == SPECIES_TERAPAGOS) + gBattleStruct->swapDamageCategory = GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL; + break; + } +} + +static inline s32 SetFixedMoveBasePower(u32 battlerAtk, u32 move) +{ + s32 fixedBasePower = 0, n = 0; + switch (gMovesInfo[move].effect) + { + case EFFECT_ROLLOUT: + n = gDisableStructs[battlerAtk].rolloutTimer - 1; + fixedBasePower = CalcRolloutBasePower(battlerAtk, gMovesInfo[move].power, n < 0 ? 5 : n); + break; + case EFFECT_FURY_CUTTER: + fixedBasePower = CalcFuryCutterBasePower(gMovesInfo[move].power, min(gDisableStructs[battlerAtk].furyCutterCounter + 1, 5)); + break; + default: + fixedBasePower = 0; + break; + } + return fixedBasePower; +} + +static inline void CalcDynamicMoveDamage(struct DamageCalculationData *damageCalcData, s32 *expectedDamage, s32 *minimumDamage, u32 holdEffectAtk, u32 abilityAtk) +{ + u32 move = damageCalcData->move; + s32 expected = *expectedDamage; + s32 minimum = *minimumDamage; + + switch (gMovesInfo[move].effect) + { + case EFFECT_LEVEL_DAMAGE: + expected = minimum = gBattleMons[damageCalcData->battlerAtk].level * (abilityAtk == ABILITY_PARENTAL_BOND ? 2 : 1); + break; + case EFFECT_PSYWAVE: + expected = minimum = gBattleMons[damageCalcData->battlerAtk].level * (abilityAtk == ABILITY_PARENTAL_BOND ? 2 : 1); + break; + case EFFECT_FIXED_DAMAGE_ARG: + expected = minimum = gMovesInfo[move].argument * (abilityAtk == ABILITY_PARENTAL_BOND ? 2 : 1); + break; + case EFFECT_MULTI_HIT: + if (move == MOVE_WATER_SHURIKEN && gBattleMons[damageCalcData->battlerAtk].species == SPECIES_GRENINJA_ASH) + { + expected *= 3; + minimum *= 3; + } + else if (abilityAtk == ABILITY_SKILL_LINK) + { + expected *= 5; + minimum *= 5; + } + else if (holdEffectAtk == HOLD_EFFECT_LOADED_DICE) + { + expected *= 9; + expected /= 2; + minimum *= 4; + } + else + { + expected *= 3; + minimum *= 2; + } + break; + case EFFECT_ENDEAVOR: + // If target has less HP than user, Endeavor does no damage + expected = minimum = max(0, gBattleMons[damageCalcData->battlerDef].hp - gBattleMons[damageCalcData->battlerAtk].hp); + break; + case EFFECT_SUPER_FANG: + expected = minimum = (abilityAtk == ABILITY_PARENTAL_BOND + ? max(2, gBattleMons[damageCalcData->battlerDef].hp * 3 / 4) + : max(1, gBattleMons[damageCalcData->battlerDef].hp / 2)); + break; + case EFFECT_FINAL_GAMBIT: + expected = minimum = gBattleMons[damageCalcData->battlerAtk].hp; + break; + case EFFECT_BEAT_UP: + if (B_BEAT_UP >= GEN_5) + { + u32 partyCount = CalculatePartyCount(GetBattlerParty(damageCalcData->battlerAtk)); + u32 i; + gBattleStruct->beatUpSlot = 0; + damageCalcData->isCrit = FALSE; + expected = 0; + for (i = 0; i < partyCount; i++) + expected += CalculateMoveDamage(damageCalcData, 0); + minimum = expected; + gBattleStruct->beatUpSlot = 0; + } + break; + } + + // Handle other multi-strike moves + if (gMovesInfo[move].strikeCount > 1 && gMovesInfo[move].effect != EFFECT_TRIPLE_KICK) + { + expected *= gMovesInfo[move].strikeCount; + minimum *= gMovesInfo[move].strikeCount; + } + + if (expected == 0) + expected = 1; + if (minimum == 0) + minimum = 1; + + *expectedDamage = expected; + *minimumDamage = minimum; +} + struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u8 *typeEffectiveness, bool32 considerZPower, u32 weather, enum DamageRollType rollType) { struct SimulatedDamage simDamage; @@ -526,7 +644,7 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u bool32 isDamageMoveUnusable = FALSE; bool32 toggledGimmick = FALSE; struct AiLogicData *aiData = AI_DATA; - gBattleStruct->aiCalcInProgress = TRUE; + AI_DATA->aiCalcInProgress = TRUE; if (moveEffect == EFFECT_NATURE_POWER) move = GetNaturePowerMove(battlerAtk); @@ -543,64 +661,41 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u SetActiveGimmick(battlerAtk, gBattleStruct->gimmick.usableGimmick[battlerAtk]); } - moveEffect = gMovesInfo[move].effect; - switch (moveEffect) - { - case EFFECT_PHOTON_GEYSER: - gBattleStruct->swapDamageCategory = (GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL); - break; - case EFFECT_SHELL_SIDE_ARM: - if (gBattleStruct->shellSideArmCategory[battlerAtk][battlerDef] == DAMAGE_CATEGORY_PHYSICAL) - gBattleStruct->swapDamageCategory = TRUE; - break; - case EFFECT_TERA_BLAST: - if (GetActiveGimmick(battlerAtk) == GIMMICK_TERA) - gBattleStruct->swapDamageCategory = GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL; - break; - case EFFECT_TERA_STARSTORM: - if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_TERA && gBattleMons[gBattlerAttacker].species == SPECIES_TERAPAGOS_STELLAR) - gBattleStruct->swapDamageCategory = GetCategoryBasedOnStats(battlerAtk) == DAMAGE_CATEGORY_PHYSICAL; - break; - } - - gBattleStruct->dynamicMoveType = 0; - + SetMoveDamageCategory(battlerAtk, battlerDef, move); SetTypeBeforeUsingMove(move, battlerAtk); moveType = GetMoveType(move); effectivenessMultiplier = CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, aiData->abilities[battlerDef], FALSE); if (gMovesInfo[move].power) - isDamageMoveUnusable = IsDamageMoveUnusable(move, battlerAtk, battlerDef); + isDamageMoveUnusable = IsDamageMoveUnusable(battlerAtk, battlerDef, move, moveType); if (gMovesInfo[move].power && !isDamageMoveUnusable) { - s32 critChanceIndex, fixedBasePower, n; + s32 critChanceIndex, fixedBasePower; ProteanTryChangeType(battlerAtk, aiData->abilities[battlerAtk], move, moveType); - // Certain moves like Rollout calculate damage based on values which change during the move execution, but before calling dmg calc. - switch (moveEffect) - { - case EFFECT_ROLLOUT: - n = gDisableStructs[battlerAtk].rolloutTimer - 1; - fixedBasePower = CalcRolloutBasePower(battlerAtk, gMovesInfo[move].power, n < 0 ? 5 : n); - break; - case EFFECT_FURY_CUTTER: - fixedBasePower = CalcFuryCutterBasePower(gMovesInfo[move].power, min(gDisableStructs[battlerAtk].furyCutterCounter + 1, 5)); - break; - default: - fixedBasePower = 0; - break; - } + fixedBasePower = SetFixedMoveBasePower(battlerAtk, move); + + struct DamageCalculationData damageCalcData; + damageCalcData.battlerAtk = battlerAtk; + damageCalcData.battlerDef = battlerDef; + damageCalcData.move = move; + damageCalcData.moveType = moveType; + damageCalcData.isCrit = FALSE; + damageCalcData.randomFactor = FALSE; + damageCalcData.updateFlags = FALSE; critChanceIndex = CalcCritChanceStageArgs(battlerAtk, battlerDef, move, FALSE, aiData->abilities[battlerAtk], aiData->abilities[battlerDef], aiData->holdEffects[battlerAtk]); if (critChanceIndex > 1) // Consider crit damage only if a move has at least +2 crit chance { - s32 nonCritDmg = CalculateMoveDamageVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, - effectivenessMultiplier, weather, FALSE, + damageCalcData.isCrit = FALSE; + s32 nonCritDmg = CalculateMoveDamageVars(&damageCalcData, fixedBasePower, + effectivenessMultiplier, weather, aiData->holdEffects[battlerAtk], aiData->holdEffects[battlerDef], aiData->abilities[battlerAtk], aiData->abilities[battlerDef]); - s32 critDmg = CalculateMoveDamageVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, - effectivenessMultiplier, weather, TRUE, + damageCalcData.isCrit = TRUE; + s32 critDmg = CalculateMoveDamageVars(&damageCalcData, fixedBasePower, + effectivenessMultiplier, weather, aiData->holdEffects[battlerAtk], aiData->holdEffects[battlerDef], aiData->abilities[battlerAtk], aiData->abilities[battlerDef]); @@ -614,8 +709,9 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u } else if (critChanceIndex == -2) // Guaranteed critical { - s32 critDmg = CalculateMoveDamageVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, - effectivenessMultiplier, weather, TRUE, + damageCalcData.isCrit = TRUE; + s32 critDmg = CalculateMoveDamageVars(&damageCalcData, fixedBasePower, + effectivenessMultiplier, weather, aiData->holdEffects[battlerAtk], aiData->holdEffects[battlerDef], aiData->abilities[battlerAtk], aiData->abilities[battlerDef]); @@ -629,16 +725,16 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u { for (gMultiHitCounter = gMovesInfo[move].strikeCount; gMultiHitCounter > 0; gMultiHitCounter--) // The global is used to simulate actual damage done { - nonCritDmg += CalculateMoveDamageVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, - effectivenessMultiplier, weather, FALSE, + nonCritDmg += CalculateMoveDamageVars(&damageCalcData, fixedBasePower, + effectivenessMultiplier, weather, aiData->holdEffects[battlerAtk], aiData->holdEffects[battlerDef], aiData->abilities[battlerAtk], aiData->abilities[battlerDef]); } } else { - nonCritDmg = CalculateMoveDamageVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, - effectivenessMultiplier, weather, FALSE, + nonCritDmg = CalculateMoveDamageVars(&damageCalcData, fixedBasePower, + effectivenessMultiplier, weather, aiData->holdEffects[battlerAtk], aiData->holdEffects[battlerDef], aiData->abilities[battlerAtk], aiData->abilities[battlerDef]); } @@ -648,82 +744,11 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u if (GetActiveGimmick(battlerAtk) != GIMMICK_Z_MOVE) { - // Handle dynamic move damage - switch (moveEffect) - { - case EFFECT_LEVEL_DAMAGE: - simDamage.expected = simDamage.minimum = gBattleMons[battlerAtk].level * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1); - break; - case EFFECT_PSYWAVE: - simDamage.expected = gBattleMons[battlerAtk].level * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1); - simDamage.minimum = simDamage.expected / 2; - break; - case EFFECT_FIXED_DAMAGE_ARG: - simDamage.expected = simDamage.minimum = gMovesInfo[move].argument * (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND ? 2 : 1); - break; - case EFFECT_MULTI_HIT: - if (move == MOVE_WATER_SHURIKEN && gBattleMons[battlerAtk].species == SPECIES_GRENINJA_ASH) - { - simDamage.expected *= 3; - simDamage.minimum *= 3; - } - else if (aiData->abilities[battlerAtk] == ABILITY_SKILL_LINK) - { - simDamage.expected *= 5; - simDamage.minimum *= 5; - } - else if (aiData->holdEffects[battlerAtk] == HOLD_EFFECT_LOADED_DICE) - { - simDamage.expected *= 9; - simDamage.expected /= 2; - simDamage.minimum *= 4; - } - else - { - simDamage.expected *= 3; - simDamage.minimum *= 2; - } - break; - case EFFECT_ENDEAVOR: - // If target has less HP than user, Endeavor does no damage - simDamage.expected = simDamage.minimum = max(0, gBattleMons[battlerDef].hp - gBattleMons[battlerAtk].hp); - break; - case EFFECT_SUPER_FANG: - simDamage.expected = simDamage.minimum = (aiData->abilities[battlerAtk] == ABILITY_PARENTAL_BOND - ? max(2, gBattleMons[battlerDef].hp * 3 / 4) - : max(1, gBattleMons[battlerDef].hp / 2)); - break; - case EFFECT_FINAL_GAMBIT: - simDamage.expected = simDamage.minimum = gBattleMons[battlerAtk].hp; - break; - case EFFECT_BEAT_UP: - if (B_BEAT_UP >= GEN_5) - { - u32 partyCount = CalculatePartyCount(GetBattlerParty(battlerAtk)); - u32 i; - gBattleStruct->beatUpSlot = 0; - simDamage.expected = 0; - for (i = 0; i < partyCount; i++) - { - simDamage.expected += CalculateMoveDamage(move, battlerAtk, battlerDef, moveType, 0, FALSE, FALSE, FALSE); - } - simDamage.minimum = simDamage.expected; - gBattleStruct->beatUpSlot = 0; - } - break; - } - - // Handle other multi-strike moves - if (gMovesInfo[move].strikeCount > 1 && gMovesInfo[move].effect != EFFECT_TRIPLE_KICK) - { - simDamage.expected *= gMovesInfo[move].strikeCount; - simDamage.minimum *= gMovesInfo[move].strikeCount; - } - - if (simDamage.expected == 0) - simDamage.expected = 1; - if (simDamage.minimum == 0) - simDamage.minimum = 1; + CalcDynamicMoveDamage(&damageCalcData, + &simDamage.expected, + &simDamage.minimum, + aiData->holdEffects[battlerAtk], + aiData->abilities[battlerAtk]); } } else @@ -736,12 +761,12 @@ struct SimulatedDamage AI_CalcDamage(u32 move, u32 battlerAtk, u32 battlerDef, u *typeEffectiveness = AI_GetEffectiveness(effectivenessMultiplier); // Undo temporary settings - gBattleStruct->aiCalcInProgress = FALSE; + gBattleStruct->dynamicMoveType = 0; gBattleStruct->swapDamageCategory = FALSE; gBattleStruct->zmove.baseMoves[battlerAtk] = MOVE_NONE; if (toggledGimmick) SetActiveGimmick(battlerAtk, GIMMICK_NONE); - + AI_DATA->aiCalcInProgress = FALSE; return simDamage; } @@ -1036,7 +1061,6 @@ uq4_12_t AI_GetTypeEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef) u32 AI_GetMoveEffectiveness(u32 move, u32 battlerAtk, u32 battlerDef) { - gMoveResultFlags = 0; return AI_GetEffectiveness(AI_GetTypeEffectiveness(move, battlerAtk, battlerDef)); } @@ -1317,6 +1341,8 @@ s32 AI_DecideKnownAbilityForTurn(u32 battlerId) u32 validAbilities[NUM_ABILITY_SLOTS]; u8 i, numValidAbilities = 0; u32 knownAbility = AI_GetBattlerAbility(battlerId); + u32 indexAbility; + u32 abilityAiRatings[NUM_ABILITY_SLOTS] = {0}; // We've had ability overwritten by e.g. Worry Seed. It is not part of AI_PARTY in case of switching if (gBattleStruct->overwrittenAbilities[battlerId]) @@ -1339,10 +1365,17 @@ s32 AI_DecideKnownAbilityForTurn(u32 battlerId) for (i = 0; i < NUM_ABILITY_SLOTS; i++) { - if (gSpeciesInfo[gBattleMons[battlerId].species].abilities[i] != ABILITY_NONE) - validAbilities[numValidAbilities++] = gSpeciesInfo[gBattleMons[battlerId].species].abilities[i]; + indexAbility = gSpeciesInfo[gBattleMons[battlerId].species].abilities[i]; + if (indexAbility != ABILITY_NONE) + { + abilityAiRatings[numValidAbilities] = gAbilitiesInfo[indexAbility].aiRating; + validAbilities[numValidAbilities++] = indexAbility; + } } + if (numValidAbilities > 0 && IsAiBattlerPredictingAbility(battlerId)) + return validAbilities[RandomWeighted(RNG_AI_PREDICT_ABILITY, abilityAiRatings[0], abilityAiRatings[1], abilityAiRatings[2])]; + if (numValidAbilities > 0) return validAbilities[RandomUniform(RNG_AI_ABILITY, 0, numValidAbilities - 1)]; @@ -1371,42 +1404,6 @@ u32 AI_DecideHoldEffectForTurn(u32 battlerId) return holdEffect; } -bool32 AI_IsTerrainAffected(u32 battlerId, u32 flags) -{ - if (gStatuses3[battlerId] & STATUS3_SEMI_INVULNERABLE) - return FALSE; - else if (!(gFieldStatuses & flags)) - return FALSE; - return AI_IsBattlerGrounded(battlerId); -} - -// different from IsBattlerGrounded in that we don't always know battler's hold effect or ability -bool32 AI_IsBattlerGrounded(u32 battlerId) -{ - u32 holdEffect = AI_DATA->holdEffects[battlerId]; - - if (holdEffect == HOLD_EFFECT_IRON_BALL) - return TRUE; - else if (gFieldStatuses & STATUS_FIELD_GRAVITY) - return TRUE; - else if (gStatuses3[battlerId] & STATUS3_ROOTED) - return TRUE; - else if (gStatuses3[battlerId] & STATUS3_SMACKED_DOWN) - return TRUE; - else if (gStatuses3[battlerId] & STATUS3_TELEKINESIS) - return FALSE; - else if (gStatuses3[battlerId] & STATUS3_MAGNET_RISE) - return FALSE; - else if (holdEffect == HOLD_EFFECT_AIR_BALLOON) - return FALSE; - else if (AI_DATA->abilities[battlerId] == ABILITY_LEVITATE) - return FALSE; - else if (IS_BATTLER_OF_TYPE(battlerId, TYPE_FLYING)) - return FALSE; - else - return TRUE; -} - bool32 DoesBattlerIgnoreAbilityChecks(u32 atkAbility, u32 move) { if (AI_THINKING_STRUCT->aiFlags[sBattler_AI] & AI_FLAG_NEGATE_UNAWARE) @@ -1603,9 +1600,7 @@ bool32 ShouldSetSandstorm(u32 battler, u32 ability, u32 holdEffect) || ability == ABILITY_OVERCOAT || ability == ABILITY_MAGIC_GUARD || holdEffect == HOLD_EFFECT_SAFETY_GOGGLES - || IS_BATTLER_OF_TYPE(battler, TYPE_ROCK) - || IS_BATTLER_OF_TYPE(battler, TYPE_STEEL) - || IS_BATTLER_OF_TYPE(battler, TYPE_GROUND) + || IS_BATTLER_ANY_TYPE(battler, TYPE_ROCK, TYPE_GROUND, TYPE_STEEL) || HasMoveEffect(battler, EFFECT_SHORE_UP) || HasMoveEffect(battler, EFFECT_WEATHER_BALL)) { @@ -2391,6 +2386,32 @@ bool32 IsSwitchOutEffect(u32 effect) } } +static inline bool32 IsMoveSleepClauseTrigger(u32 move) +{ + u32 i, effect = gMovesInfo[move].effect; + + // Sleeping effects like Sleep Powder, Yawn, Dark Void, etc. + switch (effect) + { + case EFFECT_SLEEP: + case EFFECT_YAWN: + case EFFECT_DARK_VOID: + return TRUE; + } + + // Sleeping effects like G-Max Befuddle, G-Max Snooze, etc. + for (i = 0; i < gMovesInfo[move].numAdditionalEffects; i++) + { + switch (gMovesInfo[move].additionalEffects[i].moveEffect) + { + case MAX_EFFECT_EFFECT_SPORE_FOES: + case MAX_EFFECT_YAWN_FOE: + return TRUE; + } + } + return FALSE; +} + bool32 HasDamagingMove(u32 battlerId) { u32 i; @@ -2544,9 +2565,7 @@ static u32 GetPoisonDamage(u32 battlerId) static bool32 BattlerAffectedBySandstorm(u32 battlerId, u32 ability) { - if (!IS_BATTLER_OF_TYPE(battlerId, TYPE_ROCK) - && !IS_BATTLER_OF_TYPE(battlerId, TYPE_GROUND) - && !IS_BATTLER_OF_TYPE(battlerId, TYPE_STEEL) + if (!IS_BATTLER_ANY_TYPE(battlerId, TYPE_ROCK, TYPE_GROUND, TYPE_STEEL) && ability != ABILITY_SAND_VEIL && ability != ABILITY_SAND_FORCE && ability != ABILITY_SAND_RUSH @@ -2712,12 +2731,7 @@ static bool32 PartyBattlerShouldAvoidHazards(u32 currBattler, u32 switchBattler) return FALSE; } -enum { - DONT_PIVOT, - CAN_TRY_PIVOT, - PIVOT, -}; -bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 moveIndex) +enum AIPivot ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 moveIndex) { bool32 hasStatBoost = AnyUsefulStatIsRaised(battlerAtk) || gBattleMons[battlerDef].statStages[STAT_EVASION] >= 9; //Significant boost in evasion for any class u32 battlerToSwitch; @@ -2734,7 +2748,7 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 //TODO - predict opponent switching /*if (IsPredictedToSwitch(battlerDef, battlerAtk) && !hasStatBoost) - return PIVOT; // Try pivoting so you can switch to a better matchup to counter your new opponent*/ + return SHOULD_PIVOT; // Try pivoting so you can switch to a better matchup to counter your new opponent*/ if (AI_IsFaster(battlerAtk, battlerDef, move)) // Attacker goes first { @@ -2744,14 +2758,14 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 { // attacker can kill target in two hits (theoretically) if (CanTargetFaintAi(battlerDef, battlerAtk)) - return PIVOT; // Won't get the two turns, pivot + return SHOULD_PIVOT; // Won't get the two turns, pivot if (!IS_MOVE_STATUS(move) && ((AI_DATA->shouldSwitch & (1u << battlerAtk)) || (AtMaxHp(battlerDef) && (AI_DATA->holdEffects[battlerDef] == HOLD_EFFECT_FOCUS_SASH || (B_STURDY >= GEN_5 && defAbility == ABILITY_STURDY) || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD)))) - return PIVOT; // pivot to break sash/sturdy/multiscale + return SHOULD_PIVOT; // pivot to break sash/sturdy/multiscale } else if (!hasStatBoost) { @@ -2759,17 +2773,17 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 || (B_STURDY >= GEN_5 && defAbility == ABILITY_STURDY) || defAbility == ABILITY_MULTISCALE || defAbility == ABILITY_SHADOW_SHIELD))) - return PIVOT; // pivot to break sash/sturdy/multiscale + return SHOULD_PIVOT; // pivot to break sash/sturdy/multiscale if (AI_DATA->shouldSwitch & (1u << battlerAtk)) - return PIVOT; + return SHOULD_PIVOT; /* TODO - check if switchable mon unafffected by/will remove hazards if (gSideStatuses[battlerAtk] & SIDE_STATUS_SPIKES && switchScore >= SWITCHING_INCREASE_CAN_REMOVE_HAZARDS) - return PIVOT;*/ + return SHOULD_PIVOT;*/ /*if (BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->abilities[battlerAtk]) && switchScore >= SWITCHING_INCREASE_WALLS_FOE) - return PIVOT;*/ + return SHOULD_PIVOT;*/ /*if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) { @@ -2780,20 +2794,20 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 if (physMoveInMoveset && !specMoveInMoveset) { if (STAT_STAGE_ATK < 6) - return PIVOT; + return SHOULD_PIVOT; } else if (!physMoveInMoveset && specMoveInMoveset) { if (STAT_STAGE_SPATK < 6) - return PIVOT; + return SHOULD_PIVOT; } else if (physMoveInMoveset && specMoveInMoveset) { if (STAT_STAGE_ATK < 6 && STAT_STAGE_SPATK < 6) - return PIVOT; + return SHOULD_PIVOT; } - return CAN_TRY_PIVOT; + return SHOULD_PIVOT; }*/ } } @@ -2816,7 +2830,7 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 } else // Can't KO the foe { - return PIVOT; + return SHOULD_PIVOT; } } else // Foe can 3HKO+ AI @@ -2842,17 +2856,17 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 else { //if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_KO_FOE) - //return PIVOT; //Only switch if way better matchup + //return SHOULD_PIVOT; //Only switch if way better matchup if (!hasStatBoost) { // TODO - check if switching prevents/removes hazards //if (gSideStatuses[battlerAtk] & SIDE_STATUS_SPIKES && switchScore >= SWITCHING_INCREASE_CAN_REMOVE_HAZARDS) - //return PIVOT; + //return SHOULD_PIVOT; // TODO - not always a good idea //if (BattlerWillFaintFromSecondaryDamage(battlerAtk) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) - //return PIVOT; + //return SHOULD_PIVOT; /*if (IsClassDamager(class) && switchScore >= SWITCHING_INCREASE_HAS_SUPER_EFFECTIVE_MOVE) { @@ -2863,17 +2877,17 @@ bool32 ShouldPivot(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 if (physMoveInMoveset && !specMoveInMoveset) { if (STAT_STAGE_ATK < 6) - return PIVOT; + return SHOULD_PIVOT; } else if (!physMoveInMoveset && specMoveInMoveset) { if (STAT_STAGE_SPATK < 6) - return PIVOT; + return SHOULD_PIVOT; } else if (physMoveInMoveset && specMoveInMoveset) { if (STAT_STAGE_ATK < 6 && STAT_STAGE_SPATK < 6) - return PIVOT; + return SHOULD_PIVOT; } }*/ @@ -2927,7 +2941,7 @@ bool32 IsBattlerIncapacitated(u32 battler, u32 ability) bool32 AI_CanPutToSleep(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u32 partnerMove) { - if (!CanBeSlept(battlerDef, defAbility) + if (!CanBeSlept(battlerDef, defAbility, BLOCKED_BY_SLEEP_CLAUSE) || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) || PartnerMoveEffectIsStatusSameTarget(BATTLE_PARTNER(battlerAtk), battlerDef, partnerMove)) // shouldn't try to sleep mon that partner is trying to make sleep return FALSE; @@ -2956,7 +2970,7 @@ bool32 AI_CanPoison(u32 battlerAtk, u32 battlerDef, u32 defAbility, u32 move, u3 || DoesSubstituteBlockMove(battlerAtk, battlerDef, move) || PartnerMoveEffectIsStatusSameTarget(BATTLE_PARTNER(battlerAtk), battlerDef, partnerMove)) return FALSE; - else if (defAbility != ABILITY_CORROSION && (IS_BATTLER_OF_TYPE(battlerDef, TYPE_POISON) || IS_BATTLER_OF_TYPE(battlerDef, TYPE_STEEL))) + else if (defAbility != ABILITY_CORROSION && IS_BATTLER_ANY_TYPE(battlerDef, TYPE_POISON, TYPE_STEEL)) return FALSE; else if (IsValidDoubleBattle(battlerAtk) && AI_DATA->abilities[BATTLE_PARTNER(battlerDef)] == ABILITY_PASTEL_VEIL) return FALSE; @@ -3138,10 +3152,7 @@ bool32 AnyPartyMemberStatused(u32 battlerId, bool32 checkSoundproof) struct Pokemon *party; u32 i, battlerOnField1, battlerOnField2; - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battlerId); if (IsDoubleBattle()) { @@ -3420,6 +3431,13 @@ bool32 PartnerMoveIsSameNoTarget(u32 battlerAtkPartner, u32 move, u32 partnerMov return FALSE; } +bool32 PartnerMoveActivatesSleepClause(u32 partnerMove) +{ + if (!IsDoubleBattle() || !IsSleepClauseEnabled()) + return FALSE; + return IsMoveSleepClauseTrigger(partnerMove); +} + bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, u32 move) { u32 i; @@ -3429,11 +3447,7 @@ bool32 ShouldUseWishAromatherapy(u32 battlerAtk, u32 battlerDef, u32 move) bool32 needHealing = FALSE; GetAIPartyIndexes(battlerAtk, &firstId, &lastId); - - if (GetBattlerSide(battlerAtk) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battlerAtk); if (CountUsablePartyMons(battlerAtk) == 0 && (CanTargetFaintAi(battlerDef, battlerAtk) || BattlerWillFaintFromSecondaryDamage(battlerAtk, AI_DATA->abilities[battlerAtk]))) @@ -3508,20 +3522,26 @@ s32 AI_CalcPartyMonDamage(u32 move, u32 battlerAtk, u32 battlerDef, struct Battl { gBattleMons[battlerAtk] = switchinCandidate; AI_THINKING_STRUCT->saved[battlerDef].saved = TRUE; - SetBattlerAiData(battlerDef, AI_DATA); // set known opposing battler data + SetBattlerAiData(battlerAtk, AI_DATA); // set known opposing battler data AI_THINKING_STRUCT->saved[battlerDef].saved = FALSE; } else { gBattleMons[battlerDef] = switchinCandidate; AI_THINKING_STRUCT->saved[battlerAtk].saved = TRUE; - SetBattlerAiData(battlerAtk, AI_DATA); // set known opposing battler data + SetBattlerAiData(battlerDef, AI_DATA); // set known opposing battler data AI_THINKING_STRUCT->saved[battlerAtk].saved = FALSE; } dmg = AI_CalcDamage(move, battlerAtk, battlerDef, &effectiveness, FALSE, AI_GetWeather(AI_DATA), rollType); // restores original gBattleMon struct FreeRestoreBattleMons(savedBattleMons); + + if (isPartyMonAttacker) + SetBattlerAiData(battlerAtk, AI_DATA); + else + SetBattlerAiData(battlerDef, AI_DATA); + return dmg.expected; } @@ -3533,6 +3553,7 @@ u32 AI_WhoStrikesFirstPartyMon(u32 battlerAtk, u32 battlerDef, struct BattlePoke SetBattlerAiData(battlerAtk, AI_DATA); u32 aiMonFaster = AI_IsFaster(battlerAtk, battlerDef, moveConsidered); FreeRestoreBattleMons(savedBattleMons); + SetBattlerAiData(battlerAtk, AI_DATA); return aiMonFaster; } @@ -3541,11 +3562,7 @@ s32 CountUsablePartyMons(u32 battlerId) { s32 battlerOnField1, battlerOnField2, i, ret; struct Pokemon *party; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battlerId); if (IsDoubleBattle()) { @@ -3577,11 +3594,7 @@ bool32 IsPartyFullyHealedExceptBattler(u32 battlerId) { struct Pokemon *party; u32 i; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battlerId); for (i = 0; i < PARTY_SIZE; i++) { diff --git a/src/battle_anim_effects_1.c b/src/battle_anim_effects_1.c index 50fd34921f..d5efe499eb 100644 --- a/src/battle_anim_effects_1.c +++ b/src/battle_anim_effects_1.c @@ -6616,7 +6616,7 @@ static void ReloadBattlerSprites(u32 battler, struct Pokemon *party) UpdateIndicatorVisibilityAndType(gHealthboxSpriteIds[battler], TRUE); // Try to recreate shadow sprite - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { // Both of these *should* be true, but use an OR just to be certain if (gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary < MAX_SPRITES diff --git a/src/battle_anim_effects_2.c b/src/battle_anim_effects_2.c index b33c0a8bb6..0a94cad2dc 100755 --- a/src/battle_anim_effects_2.c +++ b/src/battle_anim_effects_2.c @@ -953,6 +953,18 @@ const struct SpriteTemplate gRedHeartRisingSpriteTemplate = .callback = AnimRedHeartRising, }; +// New struct that's just a copy of 'gMagentaHeartSpriteTemplate', without need to make new anim tags +const struct SpriteTemplate gRedHeartCharmSpriteTemplate = +{ + .tileTag = ANIM_TAG_RED_HEART, + .paletteTag = ANIM_TAG_RED_HEART, + .oam = &gOamData_AffineOff_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimMagentaHeart, +}; + const union AffineAnimCmd gHiddenPowerOrbAffineAnimCmds[] = { AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0), diff --git a/src/battle_anim_electric.c b/src/battle_anim_electric.c index de6d820264..64114227e1 100644 --- a/src/battle_anim_electric.c +++ b/src/battle_anim_electric.c @@ -29,6 +29,8 @@ static bool8 CreateShockWaveBoltSprite(struct Task *task, u8 taskId); static void AnimShockWaveProgressingBolt(struct Sprite *); static bool8 CreateShockWaveLightningSprite(struct Task *task, u8 taskId); static void AnimShockWaveLightning(struct Sprite *sprite); +static void AnimIon(struct Sprite *); +static void AnimIon_Step(struct Sprite *); static const union AnimCmd sAnim_Lightning[] = { @@ -559,6 +561,34 @@ const struct SpriteTemplate gSeedFlareGreenChargeTemplate = .callback = AnimGrowingChargeOrb }; +static const union AnimCmd sAnim_Ion[] = +{ + ANIMCMD_FRAME(0, 2), + ANIMCMD_FRAME(8, 2), + ANIMCMD_FRAME(16, 2), + ANIMCMD_FRAME(24, 6), + ANIMCMD_FRAME(32, 2), + ANIMCMD_FRAME(40, 2), + ANIMCMD_FRAME(48, 2), + ANIMCMD_END, +}; + +static const union AnimCmd *const sAnims_Ion[] = +{ + sAnim_Ion, +}; + +const struct SpriteTemplate gIonSpriteTemplate = +{ + .tileTag = ANIM_TAG_IONS, + .paletteTag = ANIM_TAG_IONS, + .oam = &gOamData_AffineOff_ObjNormal_16x32, + .anims = sAnims_Ion, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = AnimIon, +}; + // functions static void AnimLightning(struct Sprite *sprite) { @@ -1452,3 +1482,44 @@ static void AnimShockWaveLightning(struct Sprite *sprite) DestroySprite(sprite); } } + +// Copy of Rain Dance's function but displays the ion sprite instead +// arg 0: initial step +// arg 1: amount (?) +// arg 2: duration +void AnimTask_CreateIons(u8 taskId) +{ + u8 x, y; + + if (gTasks[taskId].data[0] == 0) + { + gTasks[taskId].data[1] = gBattleAnimArgs[0]; + gTasks[taskId].data[2] = gBattleAnimArgs[1]; + gTasks[taskId].data[3] = gBattleAnimArgs[2]; + } + gTasks[taskId].data[0]++; + if (gTasks[taskId].data[0] % gTasks[taskId].data[2] == 1) + { + x = Random2() % DISPLAY_WIDTH; + y = Random2() % (DISPLAY_HEIGHT / 2); + CreateSprite(&gIonSpriteTemplate, x, y, 4); + } + if (gTasks[taskId].data[0] == gTasks[taskId].data[3]) + DestroyAnimVisualTask(taskId); +} + +static void AnimIon(struct Sprite *sprite) +{ + sprite->callback = AnimIon_Step; +} + +static void AnimIon_Step(struct Sprite *sprite) +{ + if (++sprite->data[0] <= 13) + { + sprite->x2++; + sprite->y2 += 4; + } + if (sprite->animEnded) + DestroySprite(sprite); +} diff --git a/src/battle_anim_flying.c b/src/battle_anim_flying.c index 7d21624495..8b613ad677 100644 --- a/src/battle_anim_flying.c +++ b/src/battle_anim_flying.c @@ -356,7 +356,7 @@ const struct SpriteTemplate gSkyAttackBirdSpriteTemplate = .callback = AnimSkyAttackBird, }; -// same as AnimEllipticalGust but centered on targets +// same as AnimEllipticalGust but centered on targets in a double battle static void AnimEllipticalGustCentered(struct Sprite *sprite) { if (IsDoubleBattle()) diff --git a/src/battle_anim_mon_movement.c b/src/battle_anim_mon_movement.c index 04fd111a84..240e43b713 100644 --- a/src/battle_anim_mon_movement.c +++ b/src/battle_anim_mon_movement.c @@ -15,8 +15,10 @@ static void ReverseHorizontalLungeDirection(struct Sprite *sprite); static void DoVerticalDip(struct Sprite *sprite); static void ReverseVerticalDipDirection(struct Sprite *sprite); static void SlideMonToOriginalPos(struct Sprite *sprite); +static void SlideMonToOriginalPosPartner(struct Sprite *sprite); static void SlideMonToOriginalPos_Step(struct Sprite *sprite); static void SlideMonToOffset(struct Sprite *sprite); +static void SlideMonToOffsetPartner(struct Sprite *sprite); static void SlideMonToOffsetAndBack(struct Sprite *sprite); static void SlideMonToOffsetAndBack_End(struct Sprite *sprite); static void AnimTask_WindUpLunge_Step1(u8 taskId); @@ -63,6 +65,17 @@ const struct SpriteTemplate gSlideMonToOriginalPosSpriteTemplate = .callback = SlideMonToOriginalPos, }; +const struct SpriteTemplate gSlideMonToOriginalPosPartnerSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SlideMonToOriginalPosPartner, +}; + const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = { .tileTag = 0, @@ -74,6 +87,17 @@ const struct SpriteTemplate gSlideMonToOffsetSpriteTemplate = .callback = SlideMonToOffset, }; +const struct SpriteTemplate gSlideMonToOffsetPartnerSpriteTemplate = +{ + .tileTag = 0, + .paletteTag = 0, + .oam = &gDummyOamData, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SlideMonToOffsetPartner, +}; + const struct SpriteTemplate gSlideMonToOffsetAndBackSpriteTemplate = { .tileTag = 0, @@ -487,7 +511,41 @@ static void ReverseVerticalDipDirection(struct Sprite *sprite) // arg 2: duration static void SlideMonToOriginalPos(struct Sprite *sprite) { - u32 monSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + u32 monSpriteId; + if (!gBattleAnimArgs[0]) + monSpriteId = gBattlerSpriteIds[gBattleAnimAttacker]; + else + monSpriteId = gBattlerSpriteIds[gBattleAnimTarget]; + + sprite->data[0] = gBattleAnimArgs[2]; + sprite->data[1] = gSprites[monSpriteId].x + gSprites[monSpriteId].x2; + sprite->data[2] = gSprites[monSpriteId].x; + sprite->data[3] = gSprites[monSpriteId].y + gSprites[monSpriteId].y2; + sprite->data[4] = gSprites[monSpriteId].y; + InitSpriteDataForLinearTranslation(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = gSprites[monSpriteId].x2; + sprite->data[6] = gSprites[monSpriteId].y2; + sprite->invisible = TRUE; + + if (gBattleAnimArgs[1] == 1) + sprite->data[2] = 0; + else if (gBattleAnimArgs[1] == 2) + sprite->data[1] = 0; + + sprite->data[7] = gBattleAnimArgs[1]; + sprite->data[7] |= monSpriteId << 8; + sprite->callback = SlideMonToOriginalPos_Step; +} + +static void SlideMonToOriginalPosPartner(struct Sprite *sprite) +{ + u32 monSpriteId; + if (!gBattleAnimArgs[0]) + monSpriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]; + else + monSpriteId = gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimTarget)]; sprite->data[0] = gBattleAnimArgs[2]; sprite->data[1] = gSprites[monSpriteId].x + gSprites[monSpriteId].x2; @@ -550,9 +608,48 @@ static void SlideMonToOriginalPos_Step(struct Sprite *sprite) // arg 4: duration static void SlideMonToOffset(struct Sprite *sprite) { - u8 monSpriteId = GetAnimBattlerSpriteId(gBattleAnimArgs[0]); + u8 battler; + u8 monSpriteId; + if (!gBattleAnimArgs[0]) + battler = gBattleAnimAttacker; + else + battler = gBattleAnimTarget; - if (GetBattlerSide(gBattleAnimArgs[0]) != B_SIDE_PLAYER) + monSpriteId = gBattlerSpriteIds[battler]; + if (GetBattlerSide(battler) != B_SIDE_PLAYER) + { + gBattleAnimArgs[1] = -gBattleAnimArgs[1]; + if (gBattleAnimArgs[3] == 1) + { + gBattleAnimArgs[2] = -gBattleAnimArgs[2]; + } + } + + sprite->data[0] = gBattleAnimArgs[4]; + sprite->data[1] = gSprites[monSpriteId].x; + sprite->data[2] = gSprites[monSpriteId].x + gBattleAnimArgs[1]; + sprite->data[3] = gSprites[monSpriteId].y; + sprite->data[4] = gSprites[monSpriteId].y + gBattleAnimArgs[2]; + InitSpriteDataForLinearTranslation(sprite); + sprite->data[3] = 0; + sprite->data[4] = 0; + sprite->data[5] = monSpriteId; + sprite->invisible = TRUE; + StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); + sprite->callback = TranslateSpriteLinearByIdFixedPoint; +} + +static void SlideMonToOffsetPartner(struct Sprite *sprite) +{ + u8 battler; + u8 monSpriteId; + if (!gBattleAnimArgs[0]) + battler = BATTLE_PARTNER(gBattleAnimAttacker); + else + battler = BATTLE_PARTNER(gBattleAnimTarget); + + monSpriteId = gBattlerSpriteIds[battler]; + if (GetBattlerSide(battler) != B_SIDE_PLAYER) { gBattleAnimArgs[1] = -gBattleAnimArgs[1]; if (gBattleAnimArgs[3] == 1) diff --git a/src/battle_anim_mons.c b/src/battle_anim_mons.c index dec12e0dc6..928f050822 100644 --- a/src/battle_anim_mons.c +++ b/src/battle_anim_mons.c @@ -2134,10 +2134,14 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) species = GetUnownSpeciesId(personality); + + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].backPicFemale != NULL && IsPersonalityFemale(species, personality)) size = gSpeciesInfo[species].backPicSizeFemale; else + #endif size = gSpeciesInfo[species].backPicSize; + y_offset = gSpeciesInfo[species].backPicYOffset; } else @@ -2157,10 +2161,14 @@ s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr) species = SanitizeSpeciesId(species); if (species == SPECIES_UNOWN) species = GetUnownSpeciesId(personality); + + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].frontPicFemale != NULL && IsPersonalityFemale(species, personality)) size = gSpeciesInfo[species].frontPicSizeFemale; else + #endif size = gSpeciesInfo[species].frontPicSize; + y_offset = gSpeciesInfo[species].frontPicYOffset; } } diff --git a/src/battle_anim_psychic.c b/src/battle_anim_psychic.c index 1c998e9c56..a9c1f0cf67 100644 --- a/src/battle_anim_psychic.c +++ b/src/battle_anim_psychic.c @@ -25,6 +25,7 @@ static void AnimTask_MeditateStretchAttacker_Step(u8); static void AnimTask_Teleport_Step(u8); static void AnimTask_ImprisonOrbs_Step(u8); static void AnimTask_SkillSwap_Step(u8); +static void AnimTask_HeartSwap_Step(u8); static void AnimTask_ExtrasensoryDistortion_Step(u8); static void AnimTask_TransparentCloneGrowAndShrink_Step(u8); static void AnimateZenHeadbutt(struct Sprite *sprite); @@ -359,6 +360,18 @@ const struct SpriteTemplate gSkillSwapOrbSpriteTemplate = .callback = AnimSkillSwapOrb, }; +// Pink version of the Skill Swap orbs +const struct SpriteTemplate gHeartSwapOrbSpriteTemplate = +{ + .tileTag = ANIM_TAG_PINKVIO_ORB, + .paletteTag = ANIM_TAG_PINKVIO_ORB, + .oam = &gOamData_AffineNormal_ObjNormal_16x16, + .anims = gDummySpriteAnimTable, + .images = NULL, + .affineAnims = sAffineAnims_SkillSwapOrb, + .callback = AnimSkillSwapOrb, +}; + static const union AffineAnimCmd sAffineAnim_LusterPurgeCircle[] = { AFFINEANIMCMD_FRAME(0x20, 0x20, 0, 0), @@ -1001,7 +1014,7 @@ void AnimTask_SkillSwap(u8 taskId) } else { - if (gBattleAnimArgs[0] == 1) + if (gBattleAnimArgs[0] == ANIM_TARGET) { task->data[10] = -10; task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_LEFT) + 8; @@ -1023,6 +1036,55 @@ void AnimTask_SkillSwap(u8 taskId) task->func = AnimTask_SkillSwap_Step; } +// Copy of Skill Swap's function to get position of the user and target +// arg 0: move target +void AnimTask_HeartSwap(u8 taskId) +{ + struct Task *task = &gTasks[taskId]; + + if (IsContest()) + { + if (gBattleAnimArgs[0] == ANIM_TARGET) + { + task->data[10] = -10; + task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_RIGHT) - 8; + task->data[12] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_TOP) + 8; + task->data[13] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_RIGHT) - 8; + task->data[14] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP) + 8; + } + else + { + task->data[10] = 10; + task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_LEFT) + 8; + task->data[12] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM) - 8; + task->data[13] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_LEFT) + 8; + task->data[14] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_BOTTOM) - 8; + } + } + else + { + if (gBattleAnimArgs[0] == ANIM_TARGET) + { + task->data[10] = -10; + task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_LEFT) + 8; + task->data[12] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_TOP) + 8; + task->data[13] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_LEFT) + 8; + task->data[14] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_TOP) + 8; + } + else + { + task->data[10] = 10; + task->data[11] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_RIGHT) - 8; + task->data[12] = GetBattlerSpriteCoordAttr(gBattleAnimAttacker, BATTLER_COORD_ATTR_BOTTOM) - 8; + task->data[13] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_RIGHT) - 8; + task->data[14] = GetBattlerSpriteCoordAttr(gBattleAnimTarget, BATTLER_COORD_ATTR_BOTTOM) - 8; + } + } + + task->data[1] = 6; + task->func = AnimTask_HeartSwap_Step; +} + static void AnimTask_SkillSwap_Step(u8 taskId) { u8 spriteId; @@ -1057,6 +1119,42 @@ static void AnimTask_SkillSwap_Step(u8 taskId) } } +// Copy of Skill Swap's function to vault the series of orbs between the user and target +// CreateSprite modified so it uses the pink orbs instead of the blue/green ones +static void AnimTask_HeartSwap_Step(u8 taskId) +{ + u8 spriteId; + struct Task *task = &gTasks[taskId]; + + switch (task->data[0]) + { + case 0: + if (++task->data[1] > 6) + { + task->data[1] = 0; + spriteId = CreateSprite(&gHeartSwapOrbSpriteTemplate, task->data[11], task->data[12], 0); + if (spriteId != MAX_SPRITES) + { + gSprites[spriteId].data[0] = 16; + gSprites[spriteId].data[2] = task->data[13]; + gSprites[spriteId].data[4] = task->data[14]; + gSprites[spriteId].data[5] = task->data[10]; + + InitAnimArcTranslation(&gSprites[spriteId]); + StartSpriteAffineAnim(&gSprites[spriteId], task->data[2] & 3); + } + + if (++task->data[2] == 12) + task->data[0]++; + } + break; + case 1: + if (++task->data[1] > 17) + DestroyAnimVisualTask(taskId); + break; + } +} + static void AnimSkillSwapOrb(struct Sprite *sprite) { if (TranslateAnimHorizontalArc(sprite)) diff --git a/src/battle_anim_rock.c b/src/battle_anim_rock.c index 354fb21014..ec7bc535df 100644 --- a/src/battle_anim_rock.c +++ b/src/battle_anim_rock.c @@ -478,14 +478,15 @@ void AnimRockFragment(struct Sprite *sprite) // Swirls particle in vortex. Used for moves like Fire Spin or Sand Tomb void AnimParticleInVortex(struct Sprite *sprite) { - if (IsDoubleBattle() //got a little lazy here will fix later - && (gAnimMoveIndex == MOVE_BLEAKWIND_STORM + if (IsDoubleBattle() + && (gAnimMoveIndex == MOVE_BLEAKWIND_STORM || gAnimMoveIndex == MOVE_SANDSEAR_STORM || gAnimMoveIndex == MOVE_SPRINGTIDE_STORM || gAnimMoveIndex == MOVE_WILDBOLT_STORM)) InitSpritePosToAnimTargetsCentre(sprite, FALSE); else - InitSpritePosToAnimTarget(sprite, FALSE); + InitSpritePosToAnimBattler(gBattleAnimArgs[6], sprite, FALSE); + sprite->data[0] = gBattleAnimArgs[3]; sprite->data[1] = gBattleAnimArgs[2]; sprite->data[2] = gBattleAnimArgs[4]; diff --git a/src/battle_anim_throw.c b/src/battle_anim_throw.c index 6a23807a13..611d12be56 100644 --- 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, @@ -128,36 +128,38 @@ static const struct CaptureStar sCaptureStars[] = }, }; -#define TAG_PARTICLES_POKEBALL 65030 -#define TAG_PARTICLES_GREATBALL 65031 -#define TAG_PARTICLES_ULTRABALL 65032 -#define TAG_PARTICLES_MASTERBALL 65033 -#define TAG_PARTICLES_PREMIERBALL 65034 -#define TAG_PARTICLES_HEALBALL 65035 -#define TAG_PARTICLES_NETBALL 65036 -#define TAG_PARTICLES_NESTBALL 65037 -#define TAG_PARTICLES_DIVEBALL 65038 -#define TAG_PARTICLES_DUSKBALL 65039 -#define TAG_PARTICLES_TIMERBALL 65040 -#define TAG_PARTICLES_QUICKBALL 65041 -#define TAG_PARTICLES_REPEATBALL 65042 -#define TAG_PARTICLES_LUXURYBALL 65043 -#define TAG_PARTICLES_LEVELBALL 65044 -#define TAG_PARTICLES_LUREBALL 65045 -#define TAG_PARTICLES_MOONBALL 65046 -#define TAG_PARTICLES_FRIENDBALL 65047 -#define TAG_PARTICLES_LOVEBALL 65048 -#define TAG_PARTICLES_FASTBALL 65049 -#define TAG_PARTICLES_HEAVYBALL 65050 -#define TAG_PARTICLES_DREAMBALL 65051 -#define TAG_PARTICLES_SAFARIBALL 65052 -#define TAG_PARTICLES_SPORTBALL 65053 -#define TAG_PARTICLES_PARKBALL 65054 -#define TAG_PARTICLES_BEASTBALL 65055 -#define TAG_PARTICLES_CHERISHBALL 65056 +#define TAG_PARTICLES_STRANGEBALL 65030 +#define TAG_PARTICLES_POKEBALL 65031 +#define TAG_PARTICLES_GREATBALL 65032 +#define TAG_PARTICLES_ULTRABALL 65033 +#define TAG_PARTICLES_MASTERBALL 65034 +#define TAG_PARTICLES_PREMIERBALL 65035 +#define TAG_PARTICLES_HEALBALL 65036 +#define TAG_PARTICLES_NETBALL 65037 +#define TAG_PARTICLES_NESTBALL 65038 +#define TAG_PARTICLES_DIVEBALL 65039 +#define TAG_PARTICLES_DUSKBALL 65040 +#define TAG_PARTICLES_TIMERBALL 65041 +#define TAG_PARTICLES_QUICKBALL 65042 +#define TAG_PARTICLES_REPEATBALL 65043 +#define TAG_PARTICLES_LUXURYBALL 65044 +#define TAG_PARTICLES_LEVELBALL 65045 +#define TAG_PARTICLES_LUREBALL 65046 +#define TAG_PARTICLES_MOONBALL 65047 +#define TAG_PARTICLES_FRIENDBALL 65048 +#define TAG_PARTICLES_LOVEBALL 65049 +#define TAG_PARTICLES_FASTBALL 65050 +#define TAG_PARTICLES_HEAVYBALL 65051 +#define TAG_PARTICLES_DREAMBALL 65052 +#define TAG_PARTICLES_SAFARIBALL 65053 +#define TAG_PARTICLES_SPORTBALL 65054 +#define TAG_PARTICLES_PARKBALL 65055 +#define TAG_PARTICLES_BEASTBALL 65056 +#define TAG_PARTICLES_CHERISHBALL 65057 static const struct CompressedSpriteSheet sBallParticleSpriteSheets[] = { + [BALL_STRANGE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_STRANGEBALL}, [BALL_POKE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL}, [BALL_GREAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL}, [BALL_ULTRA] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL}, @@ -189,6 +191,7 @@ static const struct CompressedSpriteSheet sBallParticleSpriteSheets[] = static const struct CompressedSpritePalette sBallParticlePalettes[] = { + [BALL_STRANGE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_STRANGEBALL}, [BALL_POKE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL}, [BALL_GREAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL}, [BALL_ULTRA] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL}, @@ -272,6 +275,7 @@ static const union AnimCmd *const sAnims_BallParticles[] = static const u8 sBallParticleAnimNums[POKEBALL_COUNT] = { + [BALL_STRANGE] = 0, [BALL_POKE] = 0, [BALL_GREAT] = 0, [BALL_ULTRA] = 5, @@ -304,6 +308,7 @@ static const u8 sBallParticleAnimNums[POKEBALL_COUNT] = static const TaskFunc sBallParticleAnimationFuncs[POKEBALL_COUNT] = { // Todo: assign and possibly create different particles + [BALL_STRANGE] = GreatBallOpenParticleAnimation, [BALL_POKE] = PokeBallOpenParticleAnimation, [BALL_GREAT] = GreatBallOpenParticleAnimation, [BALL_ULTRA] = UltraBallOpenParticleAnimation, @@ -335,6 +340,15 @@ static const TaskFunc sBallParticleAnimationFuncs[POKEBALL_COUNT] = static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT] = { + [BALL_STRANGE] = { + .tileTag = TAG_PARTICLES_STRANGEBALL, + .paletteTag = TAG_PARTICLES_STRANGEBALL, + .oam = &gOamData_AffineOff_ObjNormal_8x8, + .anims = sAnims_BallParticles, + .images = NULL, + .affineAnims = gDummySpriteAffineAnimTable, + .callback = SpriteCallbackDummy, + }, [BALL_POKE] = { .tileTag = TAG_PARTICLES_POKEBALL, .paletteTag = TAG_PARTICLES_POKEBALL, @@ -583,6 +597,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT] const u16 gBallOpenFadeColors[] = { // Todo, assign different colors + [BALL_STRANGE] = RGB(16, 23, 30), [BALL_POKE] = RGB(31, 22, 30), [BALL_GREAT] = RGB(16, 23, 30), [BALL_ULTRA] = RGB(31, 31, 15), @@ -887,19 +902,17 @@ void AnimTask_SwitchOutShrinkMon(u8 taskId) void AnimTask_SwitchOutBallEffect(u8 taskId) { u8 spriteId; - u16 ball; - u8 ballId; + enum PokeBall ballId; u8 x, y; u8 priority, subpriority; u32 selectedPalettes; spriteId = gBattlerSpriteIds[gBattleAnimAttacker]; if (GetBattlerSide(gBattleAnimAttacker) == B_SIDE_PLAYER) - ball = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); + ballId = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); else - ball = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); + ballId = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_POKEBALL); - ballId = ItemIdToBallId(ball); switch (gTasks[taskId].data[0]) { case 0: @@ -921,14 +934,14 @@ void AnimTask_SwitchOutBallEffect(u8 taskId) void AnimTask_LoadBallGfx(u8 taskId) { - u8 ballId = ItemIdToBallId(gLastUsedItem); + enum PokeBall ballId = ItemIdToBallId(gLastUsedItem); LoadBallGfx(ballId); DestroyAnimVisualTask(taskId); } void AnimTask_FreeBallGfx(u8 taskId) { - u8 ballId = ItemIdToBallId(gLastUsedItem); + enum PokeBall ballId = ItemIdToBallId(gLastUsedItem); FreeBallGfx(ballId); DestroyAnimVisualTask(taskId); } @@ -943,69 +956,6 @@ void AnimTask_IsBallBlockedByTrainer(u8 taskId) DestroyAnimVisualTask(taskId); } -u8 ItemIdToBallId(u16 ballItem) -{ - switch (ballItem) - { - case ITEM_POKE_BALL: - return BALL_POKE; - case ITEM_GREAT_BALL: - return BALL_GREAT; - case ITEM_ULTRA_BALL: - return BALL_ULTRA; - case ITEM_MASTER_BALL: - return BALL_MASTER; - case ITEM_PREMIER_BALL: - return BALL_PREMIER; - case ITEM_HEAL_BALL: - return BALL_HEAL; - case ITEM_NET_BALL: - return BALL_NET; - case ITEM_NEST_BALL: - return BALL_NEST; - case ITEM_DIVE_BALL: - return BALL_DIVE; - case ITEM_DUSK_BALL: - return BALL_DUSK; - case ITEM_TIMER_BALL: - return BALL_TIMER; - case ITEM_QUICK_BALL: - return BALL_QUICK; - case ITEM_REPEAT_BALL: - return BALL_REPEAT; - case ITEM_LUXURY_BALL: - return BALL_LUXURY; - case ITEM_LEVEL_BALL: - return BALL_LEVEL; - case ITEM_LURE_BALL: - return BALL_LURE; - case ITEM_MOON_BALL: - return BALL_MOON; - case ITEM_FRIEND_BALL: - return BALL_FRIEND; - case ITEM_LOVE_BALL: - return BALL_LOVE; - case ITEM_FAST_BALL: - return BALL_FAST; - case ITEM_HEAVY_BALL: - return BALL_HEAVY; - case ITEM_DREAM_BALL: - return BALL_DREAM; - case ITEM_SAFARI_BALL: - return BALL_SAFARI; - case ITEM_SPORT_BALL: - return BALL_SPORT; - case ITEM_PARK_BALL: - return BALL_PARK; - case ITEM_BEAST_BALL: - return BALL_BEAST; - case ITEM_CHERISH_BALL: - return BALL_CHERISH; - default: - return BALL_POKE; - } -} - #define tSpriteId data[0] #define sDuration data[0] @@ -1014,10 +964,9 @@ u8 ItemIdToBallId(u16 ballItem) void AnimTask_ThrowBall(u8 taskId) { - u8 ballId; u8 spriteId; - ballId = ItemIdToBallId(gLastUsedItem); + enum PokeBall ballId = ItemIdToBallId(gLastUsedItem); spriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); gSprites[spriteId].sDuration = 34; gSprites[spriteId].sTargetX = GetBattlerSpriteCoord(gBattleAnimTarget, BATTLER_COORD_X); @@ -1039,7 +988,7 @@ static void AnimTask_ThrowBall_Step(u8 taskId) void AnimTask_ThrowBall_StandingTrainer(u8 taskId) { s16 x, y; - u8 ballId; + enum PokeBall ballId; u8 subpriority; u8 spriteId; @@ -1128,8 +1077,7 @@ static void SpriteCB_Ball_Throw(struct Sprite *sprite) static void SpriteCB_Ball_Arc(struct Sprite *sprite) { - s32 i; - u8 ballId; + u32 i; if (TranslateAnimHorizontalArc(sprite)) { @@ -1151,14 +1099,9 @@ static void SpriteCB_Ball_Arc(struct Sprite *sprite) sprite->sTimer = 0; sprite->callback = SpriteCB_Ball_MonShrink; - ballId = ItemIdToBallId(gLastUsedItem); - switch (ballId) - { - case 0 ... POKEBALL_COUNT - 1: - AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(FALSE, gBattleAnimTarget, 14, ballId); - break; - } + enum PokeBall ballId = ItemIdToBallId(gLastUsedItem); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(FALSE, gBattleAnimTarget, 14, ballId); } } } @@ -1720,20 +1663,13 @@ static void SpriteCB_CaptureStar_Flicker(struct Sprite *sprite) // - Wild mon emerge from Poké Ball static void SpriteCB_Ball_Release_Step(struct Sprite *sprite) { - u8 ballId; - StartSpriteAnim(sprite, 1); StartSpriteAffineAnim(sprite, 0); sprite->callback = SpriteCB_Ball_Release_Wait; - ballId = ItemIdToBallId(gLastUsedItem); - switch (ballId) - { - case 0 ... POKEBALL_COUNT - 1: - AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); - LaunchBallFadeMonTask(TRUE, gBattleAnimTarget, 14, ballId); - break; - } + enum PokeBall ballId = ItemIdToBallId(gLastUsedItem); + AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); + LaunchBallFadeMonTask(TRUE, gBattleAnimTarget, 14, ballId); // Animate Pokémon emerging from Poké Ball gSprites[gBattlerSpriteIds[gBattleAnimTarget]].invisible = FALSE; diff --git a/src/battle_arena.c b/src/battle_arena.c index b292ff8837..6d34278f86 100644 --- a/src/battle_arena.c +++ b/src/battle_arena.c @@ -391,20 +391,20 @@ void BattleArena_AddSkillPoints(u8 battler) *failedMoveBits &= ~((1u << battler)); skillPoints[battler] -= 2; } - else if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + else if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NO_EFFECT) { - if (!(gMoveResultFlags & MOVE_RESULT_MISSED) || gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED) + if (!(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_MISSED) || gBattleCommunication[MISS_TYPE] != B_MSG_PROTECTED) skillPoints[battler] -= 2; } - else if ((gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) && (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE)) + else if ((gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_SUPER_EFFECTIVE) && (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NOT_VERY_EFFECTIVE)) { skillPoints[battler] += 1; } - else if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + else if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_SUPER_EFFECTIVE) { skillPoints[battler] += 2; } - else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + else if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NOT_VERY_EFFECTIVE) { skillPoints[battler] -= 1; } diff --git a/src/battle_controller_opponent.c b/src/battle_controller_opponent.c index 57ebccf7fa..b6ffd67b75 100644 --- a/src/battle_controller_opponent.c +++ b/src/battle_controller_opponent.c @@ -216,6 +216,7 @@ static void TrySetBattlerShadowSpriteCallback(u32 battler) if (gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary].callback == SpriteCallbackDummy) { if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 + || P_GBA_STYLE_SPECIES_GFX == TRUE || gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback == SpriteCallbackDummy) { SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES)); @@ -550,9 +551,6 @@ static void OpponentHandleChooseMove(u32 battler) case AI_CHOICE_FLEE: BtlController_EmitTwoReturnValues(battler, BUFFER_B, B_ACTION_RUN, 0); break; - case AI_CHOICE_SWITCH: - BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, 0xFFFF); - break; case 6: BtlController_EmitTwoReturnValues(battler, BUFFER_B, 15, gBattlerTarget); break; @@ -650,6 +648,22 @@ static void OpponentHandleChooseItem(u32 battler) OpponentBufferExecCompleted(battler); } +static inline bool32 IsAcePokemon(u32 chosenMonId, u32 pokemonInBattle, u32 battler) +{ + return AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_ACE_POKEMON + && (chosenMonId == CalculateEnemyPartyCountInSide(battler) - 1) + && CountAIAliveNonEggMonsExcept(PARTY_SIZE) != pokemonInBattle; +} + +static inline bool32 IsDoubleAcePokemon(u32 chosenMonId, u32 pokemonInBattle, u32 battler) +{ + return AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_DOUBLE_ACE_POKEMON + && (chosenMonId == CalculateEnemyPartyCountInSide(battler) - 1) + && (chosenMonId == CalculateEnemyPartyCountInSide(battler) - 2) + && CountAIAliveNonEggMonsExcept(PARTY_SIZE) != pokemonInBattle + && CountAIAliveNonEggMonsExcept(PARTY_SIZE-1) != pokemonInBattle; +} + static void OpponentHandleChoosePokemon(u32 battler) { s32 chosenMonId; @@ -661,7 +675,7 @@ static void OpponentHandleChoosePokemon(u32 battler) chosenMonId = gSelectedMonPartyId = GetFirstFaintedPartyIndex(battler); } // Switching out - else if (*(gBattleStruct->AI_monToSwitchIntoId + battler) == PARTY_SIZE) + else if (gBattleStruct->AI_monToSwitchIntoId[battler] == PARTY_SIZE) { chosenMonId = GetMostSuitableMonToSwitchInto(battler, TRUE); if (chosenMonId == PARTY_SIZE) @@ -680,34 +694,31 @@ static void OpponentHandleChoosePokemon(u32 battler) } GetAIPartyIndexes(battler, &firstId, &lastId); - for (chosenMonId = (lastId-1); chosenMonId >= firstId; chosenMonId--) { - if (IsValidForBattle(&gEnemyParty[chosenMonId]) - && chosenMonId != gBattlerPartyIndexes[battler1] - && chosenMonId != gBattlerPartyIndexes[battler2] - && (!(AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_ACE_POKEMON) - || chosenMonId != CalculateEnemyPartyCount() - 1 - || CountAIAliveNonEggMonsExcept(PARTY_SIZE) == pokemonInBattle)) - { + if (!IsValidForBattle(&gEnemyParty[chosenMonId]) + || chosenMonId == gBattlerPartyIndexes[battler1] + || chosenMonId == gBattlerPartyIndexes[battler2]) + continue; + + if (!IsAcePokemon(chosenMonId, pokemonInBattle, battler) + && !IsDoubleAcePokemon(chosenMonId, pokemonInBattle, battler)) break; - } } } - *(gBattleStruct->monToSwitchIntoId + battler) = chosenMonId; + gBattleStruct->monToSwitchIntoId[battler] = chosenMonId; } else { - chosenMonId = *(gBattleStruct->AI_monToSwitchIntoId + battler); - *(gBattleStruct->AI_monToSwitchIntoId + battler) = PARTY_SIZE; - *(gBattleStruct->monToSwitchIntoId + battler) = chosenMonId; + chosenMonId = gBattleStruct->AI_monToSwitchIntoId[battler]; + gBattleStruct->AI_monToSwitchIntoId[battler] = PARTY_SIZE; + gBattleStruct->monToSwitchIntoId[battler] = chosenMonId; } #if TESTING TestRunner_Battle_CheckSwitch(battler, chosenMonId); #endif // TESTING BtlController_EmitChosenMonReturnValue(battler, BUFFER_B, chosenMonId, NULL); OpponentBufferExecCompleted(battler); - } static u8 CountAIAliveNonEggMonsExcept(u8 slotToIgnore) diff --git a/src/battle_controller_player.c b/src/battle_controller_player.c index 16fae14e48..3396999487 100644 --- a/src/battle_controller_player.c +++ b/src/battle_controller_player.c @@ -31,6 +31,7 @@ #include "text.h" #include "util.h" #include "window.h" +#include "line_break.h" #include "constants/battle_anim.h" #include "constants/battle_move_effects.h" #include "constants/battle_partner.h" @@ -384,8 +385,8 @@ static void HandleInputChooseAction(u32 battler) && !(gAbsentBattlerFlags & (1u << GetBattlerAtPosition(B_POSITION_PLAYER_LEFT))) && !(gBattleTypeFlags & BATTLE_TYPE_MULTI)) { - // Return item to bag if partner had selected one (except flutes). - if (gBattleResources->bufferA[battler][1] == B_ACTION_USE_ITEM && !IsItemFlute(itemId)) + // Return item to bag if partner had selected one (if consumable). + if (gBattleResources->bufferA[battler][1] == B_ACTION_USE_ITEM && ItemId_GetConsumability(itemId)) { AddBagItem(itemId, 1); } @@ -2044,6 +2045,7 @@ static void PlayerHandleChooseAction(u32 battler) ActionSelectionCreateCursorAt(gActionSelectionCursor[battler], 0); PREPARE_MON_NICK_BUFFER(gBattleTextBuff1, battler, gBattlerPartyIndexes[battler]); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo); + BreakStringAutomatic(gDisplayedStringBattle, WindowWidthPx(B_WIN_ACTION_PROMPT), 2, FONT_NORMAL); if (B_SHOW_PARTNER_TARGET && gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && IsBattlerAlive(B_POSITION_PLAYER_RIGHT)) { diff --git a/src/battle_controller_player_partner.c b/src/battle_controller_player_partner.c index 47d71d87c6..f987c333ce 100644 --- a/src/battle_controller_player_partner.c +++ b/src/battle_controller_player_partner.c @@ -354,31 +354,24 @@ static void PlayerPartnerHandleChooseMove(u32 battler) chosenMoveId = gBattleStruct->aiMoveOrAction[battler]; gBattlerTarget = gBattleStruct->aiChosenTarget[battler]; - if (chosenMoveId == AI_CHOICE_SWITCH) + if (gMovesInfo[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_USER_OR_SELECTED)) + gBattlerTarget = battler; + else if (gMovesInfo[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) { - BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, 0xFFFF); + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); + if (gAbsentBattlerFlags & (1u << gBattlerTarget)) + gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); + } + // If partner can and should use a gimmick (considering trainer data), do it + if (gBattleStruct->gimmick.usableGimmick[battler] != GIMMICK_NONE + && !(gBattleStruct->gimmick.usableGimmick[battler] == GIMMICK_Z_MOVE + && !ShouldUseZMove(battler, gBattlerTarget, moveInfo->moves[chosenMoveId]))) + { + BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_GIMMICK) | (gBattlerTarget << 8)); } else { - if (gMovesInfo[moveInfo->moves[chosenMoveId]].target & (MOVE_TARGET_USER | MOVE_TARGET_USER_OR_SELECTED)) - gBattlerTarget = battler; - if (gMovesInfo[moveInfo->moves[chosenMoveId]].target & MOVE_TARGET_BOTH) - { - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - if (gAbsentBattlerFlags & (1u << gBattlerTarget)) - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - } - // If partner can and should use a gimmick (considering trainer data), do it - if (gBattleStruct->gimmick.usableGimmick[battler] != GIMMICK_NONE - && !(gBattleStruct->gimmick.usableGimmick[battler] == GIMMICK_Z_MOVE - && !ShouldUseZMove(battler, gBattlerTarget, moveInfo->moves[chosenMoveId]))) - { - BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (RET_GIMMICK) | (gBattlerTarget << 8)); - } - else - { - BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (gBattlerTarget << 8)); - } + BtlController_EmitTwoReturnValues(battler, BUFFER_B, 10, (chosenMoveId) | (gBattlerTarget << 8)); } PlayerPartnerBufferExecCompleted(battler); diff --git a/src/battle_controller_recorded_opponent.c b/src/battle_controller_recorded_opponent.c index bbeae7a9c0..afd56a9faf 100644 --- a/src/battle_controller_recorded_opponent.c +++ b/src/battle_controller_recorded_opponent.c @@ -206,6 +206,7 @@ static void TrySetBattlerShadowSpriteCallback(u32 battler) if (gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary].callback == SpriteCallbackDummy) { if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 + || P_GBA_STYLE_SPECIES_GFX == TRUE || gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback == SpriteCallbackDummy) { SetBattlerShadowSpriteCallback(battler, GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler]], MON_DATA_SPECIES)); diff --git a/src/battle_controller_safari.c b/src/battle_controller_safari.c index b85157f246..932ce47fd9 100644 --- a/src/battle_controller_safari.c +++ b/src/battle_controller_safari.c @@ -20,6 +20,7 @@ #include "text.h" #include "util.h" #include "window.h" +#include "line_break.h" #include "constants/battle_anim.h" #include "constants/songs.h" #include "constants/trainers.h" @@ -298,6 +299,7 @@ static void SafariHandleChooseAction(u32 battler) ActionSelectionCreateCursorAt(gActionSelectionCursor[battler], 0); BattleStringExpandPlaceholdersToDisplayedString(gText_WhatWillPkmnDo2); + BreakStringAutomatic(gDisplayedStringBattle, WindowWidthPx(B_WIN_ACTION_PROMPT), 2, FONT_NORMAL); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT); } diff --git a/src/battle_controllers.c b/src/battle_controllers.c index 56a1b8e92f..553eb7a85c 100644 --- a/src/battle_controllers.c +++ b/src/battle_controllers.c @@ -30,9 +30,9 @@ static EWRAM_DATA u8 sLinkSendTaskId = 0; static EWRAM_DATA u8 sLinkReceiveTaskId = 0; EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read -void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler); -u8 gBattleControllerData[MAX_BATTLERS_COUNT]; // Used by the battle controllers to store misc sprite/task IDs for each battler -void (*gBattlerControllerEndFuncs[MAX_BATTLERS_COUNT])(u32 battler); // Controller's buffer complete function for each battler +COMMON_DATA void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler) = {0}; +COMMON_DATA u8 gBattleControllerData[MAX_BATTLERS_COUNT] = {0}; // Used by the battle controllers to store misc sprite/task IDs for each battler +COMMON_DATA void (*gBattlerControllerEndFuncs[MAX_BATTLERS_COUNT])(u32 battler) = {0}; // Controller's buffer complete function for each battler static void CreateTasksForSendRecvLinkBuffers(void); static void InitLinkBtlControllers(void); diff --git a/src/battle_dynamax.c b/src/battle_dynamax.c index 75ea78460c..1523bcbd6e 100644 --- a/src/battle_dynamax.c +++ b/src/battle_dynamax.c @@ -280,7 +280,10 @@ static u16 GetTypeBasedMaxMove(u32 battler, u32 type) // Returns the appropriate Max Move or G-Max Move for a battler to use. u16 GetMaxMove(u32 battler, u32 baseMove) { - u32 move = baseMove; + u32 moveType; + SetTypeBeforeUsingMove(baseMove, battler); + moveType = GetMoveType(baseMove); + if (baseMove == MOVE_NONE) // for move display { return MOVE_NONE; @@ -291,18 +294,12 @@ u16 GetMaxMove(u32 battler, u32 baseMove) } else if (gMovesInfo[baseMove].category == DAMAGE_CATEGORY_STATUS) { - move = MOVE_MAX_GUARD; - } - else if (gBattleStruct->dynamicMoveType) - { - move = GetTypeBasedMaxMove(battler, gBattleStruct->dynamicMoveType & DYNAMIC_TYPE_MASK); + return MOVE_MAX_GUARD; } else { - move = GetTypeBasedMaxMove(battler, gMovesInfo[baseMove].type); + return GetTypeBasedMaxMove(battler, moveType); } - - return move; } // First value is for Fighting, Poison and Multi-Attack. The second is for everything else. @@ -415,7 +412,7 @@ static u8 GetMaxPowerTier(u32 move) case EFFECT_GYRO_BALL: return MAX_POWER_TIER_5; case EFFECT_MAGNITUDE: - case EFFECT_VARY_POWER_BASED_ON_HP: + case EFFECT_POWER_BASED_ON_TARGET_HP: return MAX_POWER_TIER_6; case EFFECT_FLAIL: case EFFECT_LOW_KICK: @@ -528,7 +525,7 @@ void BS_SetMaxMoveEffect(void) u8 maxEffect = gMovesInfo[gCurrentMove].argument; // Don't continue if the move didn't land. - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NO_EFFECT) { gBattlescriptCurrInstr = cmd->nextInstr; return; @@ -762,7 +759,7 @@ void BS_SetMaxMoveEffect(void) { static const u8 sSnoozeEffects[] = {TRUE, FALSE}; if (!(gStatuses3[gBattlerTarget] & STATUS3_YAWN) - && CanBeSlept(gBattlerTarget, GetBattlerAbility(gBattlerTarget)) + && CanBeSlept(gBattlerTarget, GetBattlerAbility(gBattlerTarget), BLOCKED_BY_SLEEP_CLAUSE) && RandomElement(RNG_G_MAX_SNOOZE, sSnoozeEffects)) // 50% chance of success { gStatuses3[gBattlerTarget] |= STATUS3_YAWN_TURN(2); @@ -884,12 +881,14 @@ void BS_TrySetStatus1(void) } break; case STATUS1_SLEEP: - if (CanBeSlept(gBattlerTarget, GetBattlerAbility(gBattlerTarget))) + if (CanBeSlept(gBattlerTarget, GetBattlerAbility(gBattlerTarget), BLOCKED_BY_SLEEP_CLAUSE)) { if (B_SLEEP_TURNS >= GEN_5) gBattleMons[gBattlerTarget].status1 |= STATUS1_SLEEP_TURN((Random() % 3) + 2); else gBattleMons[gBattlerTarget].status1 |= STATUS1_SLEEP_TURN((Random() % 4) + 3); + + TryActivateSleepClause(gBattlerTarget, gBattlerPartyIndexes[gBattlerTarget]); gBattleCommunication[MULTISTRING_CHOOSER] = 4; effect++; } @@ -978,10 +977,10 @@ void BS_TrySetStatus2(void) void BS_HealOneSixth(void) { NATIVE_ARGS(const u8* failInstr); - gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 6; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].maxHP / 6; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; + gBattleStruct->moveDamage[gBattlerTarget] *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = cmd->failInstr; // fail diff --git a/src/battle_factory_screen.c b/src/battle_factory_screen.c index f76c6a2fc8..4119db47bd 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_gfx_sfx_util.c b/src/battle_gfx_sfx_util.c index ec5c1cfb33..e2a583dcc9 100644 --- a/src/battle_gfx_sfx_util.c +++ b/src/battle_gfx_sfx_util.c @@ -26,6 +26,7 @@ #include "constants/rgb.h" #include "constants/battle_palace.h" #include "constants/battle_move_effects.h" +#include "constants/event_objects.h" // only for SHADOW_SIZE constants // this file's functions static u8 GetBattlePalaceMoveGroup(u8 battler, u16 move); @@ -931,7 +932,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool32 megaEvo, bo if (GetBattlerSide(battlerAtk) == B_SIDE_PLAYER) { - if (B_TRANSFORM_SHINY >= GEN_4 && trackEnemyPersonality) + if (B_TRANSFORM_SHINY >= GEN_4 && trackEnemyPersonality && !megaEvo) { personalityValue = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_PERSONALITY); isShiny = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_IS_SHINY); @@ -949,7 +950,7 @@ void HandleSpeciesGfxDataChange(u8 battlerAtk, u8 battlerDef, bool32 megaEvo, bo } else { - if (B_TRANSFORM_SHINY >= GEN_4 && trackEnemyPersonality) + if (B_TRANSFORM_SHINY >= GEN_4 && trackEnemyPersonality && !megaEvo) { personalityValue = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_PERSONALITY); isShiny = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battlerDef]], MON_DATA_IS_SHINY); @@ -1130,15 +1131,16 @@ void SetBattlerSpriteAffineMode(u8 affineMode) } } -#define tBattlerId data[0] -#define tSpriteSide data[1] +#define tBattlerId data[0] +#define tSpriteSide data[1] +#define tBaseTileNum data[2] #define SPRITE_SIDE_LEFT 0 #define SPRITE_SIDE_RIGHT 1 void CreateEnemyShadowSprite(u32 battler) { - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { u16 species = SanitizeSpeciesId(gBattleMons[battler].species); u8 size = gSpeciesInfo[species].enemyShadowSize; @@ -1152,7 +1154,8 @@ void CreateEnemyShadowSprite(u32 battler) struct Sprite *sprite = &gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary]; sprite->tBattlerId = battler; sprite->tSpriteSide = SPRITE_SIDE_LEFT; - sprite->oam.tileNum += 8 * size; + sprite->tBaseTileNum = sprite->oam.tileNum; + sprite->oam.tileNum = sprite->tBaseTileNum + (8 * size); sprite->invisible = TRUE; } @@ -1165,7 +1168,8 @@ void CreateEnemyShadowSprite(u32 battler) struct Sprite *sprite = &gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary]; sprite->tBattlerId = battler; sprite->tSpriteSide = SPRITE_SIDE_RIGHT; - sprite->oam.tileNum += (8 * size) + 4; + sprite->tBaseTileNum = sprite->oam.tileNum + 4; + sprite->oam.tileNum = sprite->tBaseTileNum + (8 * size); sprite->invisible = TRUE; } } @@ -1179,6 +1183,7 @@ void CreateEnemyShadowSprite(u32 battler) { struct Sprite *sprite = &gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary]; sprite->tBattlerId = battler; + sprite->tBaseTileNum = sprite->oam.tileNum; sprite->invisible = TRUE; } } @@ -1189,7 +1194,7 @@ void LoadAndCreateEnemyShadowSprites(void) u8 battler; u32 i; - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { LoadCompressedSpriteSheet(&gSpriteSheet_EnemyShadowsSized); @@ -1234,23 +1239,25 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) return; } - s8 xOffset = 0, yOffset = 0; + s8 xOffset = 0, yOffset = 0, size = SHADOW_SIZE_S; if (gAnimScriptActive || battlerSprite->invisible) invisible = TRUE; else if (transformSpecies != SPECIES_NONE) { xOffset = gSpeciesInfo[transformSpecies].enemyShadowXOffset; yOffset = gSpeciesInfo[transformSpecies].enemyShadowYOffset; + size = gSpeciesInfo[transformSpecies].enemyShadowSize; - invisible = B_ENEMY_MON_SHADOW_STYLE >= GEN_4 + invisible = (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) ? gSpeciesInfo[transformSpecies].suppressEnemyShadow : gSpeciesInfo[transformSpecies].enemyMonElevation == 0; } - else if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + else if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { u16 species = SanitizeSpeciesId(gBattleMons[battler].species); xOffset = gSpeciesInfo[species].enemyShadowXOffset + (shadowSprite->tSpriteSide == SPRITE_SIDE_LEFT ? -16 : 16); yOffset = gSpeciesInfo[species].enemyShadowYOffset + 16; + size = gSpeciesInfo[species].enemyShadowSize; } else { @@ -1264,6 +1271,9 @@ void SpriteCB_EnemyShadow(struct Sprite *shadowSprite) shadowSprite->x2 = battlerSprite->x2; shadowSprite->y = battlerSprite->y + yOffset; shadowSprite->invisible = invisible; + + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) + shadowSprite->oam.tileNum = shadowSprite->tBaseTileNum + (8 * size); } #undef tBattlerId @@ -1275,7 +1285,7 @@ void SpriteCB_SetInvisible(struct Sprite *sprite) void SetBattlerShadowSpriteCallback(u8 battler, u16 species) { - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { if (GetBattlerSide(battler) == B_SIDE_PLAYER || gBattleScripting.monCaught) { @@ -1326,7 +1336,7 @@ void SetBattlerShadowSpriteCallback(u8 battler, u16 species) void HideBattlerShadowSprite(u8 battler) { gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdPrimary].callback = SpriteCB_SetInvisible; - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) gSprites[gBattleSpritesDataPtr->healthBoxesData[battler].shadowSpriteIdSecondary].callback = SpriteCB_SetInvisible; } diff --git a/src/battle_main.c b/src/battle_main.c index c1974e0f6a..c7c72564f0 100644 --- a/src/battle_main.c +++ b/src/battle_main.c @@ -162,7 +162,6 @@ EWRAM_DATA u8 gChosenMovePos = 0; EWRAM_DATA u16 gCurrentMove = 0; EWRAM_DATA u16 gChosenMove = 0; EWRAM_DATA u16 gCalledMove = 0; -EWRAM_DATA s32 gBattleMoveDamage = 0; EWRAM_DATA s32 gHpDealt = 0; EWRAM_DATA s32 gBideDmg[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gLastUsedItem = 0; @@ -173,7 +172,6 @@ EWRAM_DATA u8 gBattlerFainted = 0; EWRAM_DATA u8 gEffectBattler = 0; EWRAM_DATA u8 gPotentialItemEffectBattler = 0; EWRAM_DATA u8 gAbsentBattlerFlags = 0; -EWRAM_DATA u8 gIsCriticalHit = FALSE; EWRAM_DATA u8 gMultiHitCounter = 0; EWRAM_DATA const u8 *gBattlescriptCurrInstr = NULL; EWRAM_DATA u8 gChosenActionByBattler[MAX_BATTLERS_COUNT] = {0}; @@ -189,7 +187,6 @@ EWRAM_DATA u16 gLockedMoves[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gLastUsedMove = 0; EWRAM_DATA u8 gLastHitBy[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u16 gChosenMoveByBattler[MAX_BATTLERS_COUNT] = {0}; -EWRAM_DATA u16 gMoveResultFlags = 0; EWRAM_DATA u32 gHitMarker = 0; EWRAM_DATA u8 gBideTarget[MAX_BATTLERS_COUNT] = {0}; EWRAM_DATA u32 gSideStatuses[NUM_BATTLE_SIDES] = {0}; @@ -238,13 +235,13 @@ EWRAM_DATA u8 gPartyCriticalHits[PARTY_SIZE] = {0}; EWRAM_DATA static u8 sTriedEvolving = 0; EWRAM_DATA u8 gCategoryIconSpriteId = 0; -void (*gPreBattleCallback1)(void); -void (*gBattleMainFunc)(void); -struct BattleResults gBattleResults; -u8 gLeveledUpInBattle; -u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT]; -u8 gMultiUsePlayerCursor; -u8 gNumberOfMovesToChoose; +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 u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT] = {0}; +COMMON_DATA u8 gMultiUsePlayerCursor = 0; +COMMON_DATA u8 gNumberOfMovesToChoose = 0; static const struct ScanlineEffectParams sIntroScanlineParams16Bit = { @@ -304,83 +301,75 @@ static const s8 sCenterToCornerVecXs[8] ={-32, -16, -16, -32, -32}; #include "data/types_info.h" -// extra args are money and ball -#define TRAINER_CLASS(trainerClass, trainerName, ...) \ - [trainerClass] = \ - { \ - .name = _(trainerName), \ - .money = DEFAULT(5, __VA_ARGS__), \ - .ball = DEFAULT_2(ITEM_POKE_BALL, __VA_ARGS__), \ - } - +// [TRAINER_CLASS_XYZ] = { _("name"), , } const struct TrainerClass gTrainerClasses[TRAINER_CLASS_COUNT] = { - TRAINER_CLASS(TRAINER_CLASS_PKMN_TRAINER_1, "{PKMN} TRAINER"), - TRAINER_CLASS(TRAINER_CLASS_PKMN_TRAINER_2, "{PKMN} TRAINER"), - TRAINER_CLASS(TRAINER_CLASS_HIKER, "HIKER", 10), - TRAINER_CLASS(TRAINER_CLASS_TEAM_AQUA, "TEAM AQUA"), - TRAINER_CLASS(TRAINER_CLASS_PKMN_BREEDER, "{PKMN} BREEDER", 10, B_TRAINER_CLASS_POKE_BALLS >= GEN_8 ? ITEM_HEAL_BALL : ITEM_FRIEND_BALL), - TRAINER_CLASS(TRAINER_CLASS_COOLTRAINER, "COOLTRAINER", 12, ITEM_ULTRA_BALL), - TRAINER_CLASS(TRAINER_CLASS_BIRD_KEEPER, "BIRD KEEPER", 8), - TRAINER_CLASS(TRAINER_CLASS_COLLECTOR, "COLLECTOR", 15, ITEM_PREMIER_BALL), - TRAINER_CLASS(TRAINER_CLASS_SWIMMER_M, "SWIMMER♂", 2, ITEM_DIVE_BALL), - TRAINER_CLASS(TRAINER_CLASS_TEAM_MAGMA, "TEAM MAGMA"), - TRAINER_CLASS(TRAINER_CLASS_EXPERT, "EXPERT", 10), - TRAINER_CLASS(TRAINER_CLASS_AQUA_ADMIN, "AQUA ADMIN", 10), - TRAINER_CLASS(TRAINER_CLASS_BLACK_BELT, "BLACK BELT", 8, ITEM_ULTRA_BALL), - TRAINER_CLASS(TRAINER_CLASS_AQUA_LEADER, "AQUA LEADER", 20, ITEM_MASTER_BALL), - TRAINER_CLASS(TRAINER_CLASS_HEX_MANIAC, "HEX MANIAC", 6), - TRAINER_CLASS(TRAINER_CLASS_AROMA_LADY, "AROMA LADY", 10), - TRAINER_CLASS(TRAINER_CLASS_RUIN_MANIAC, "RUIN MANIAC", 15), - TRAINER_CLASS(TRAINER_CLASS_INTERVIEWER, "INTERVIEWER", 12), - TRAINER_CLASS(TRAINER_CLASS_TUBER_F, "TUBER", 1), - TRAINER_CLASS(TRAINER_CLASS_TUBER_M, "TUBER", 1), - TRAINER_CLASS(TRAINER_CLASS_LADY, "LADY", 50), - TRAINER_CLASS(TRAINER_CLASS_BEAUTY, "BEAUTY", 20), - TRAINER_CLASS(TRAINER_CLASS_RICH_BOY, "RICH BOY", 50), - TRAINER_CLASS(TRAINER_CLASS_POKEMANIAC, "POKéMANIAC", 15), - TRAINER_CLASS(TRAINER_CLASS_GUITARIST, "GUITARIST", 8), - TRAINER_CLASS(TRAINER_CLASS_KINDLER, "KINDLER", 8), - TRAINER_CLASS(TRAINER_CLASS_CAMPER, "CAMPER", 4), - TRAINER_CLASS(TRAINER_CLASS_PICNICKER, "PICNICKER", 4), - TRAINER_CLASS(TRAINER_CLASS_BUG_MANIAC, "BUG MANIAC", 15), - TRAINER_CLASS(TRAINER_CLASS_PSYCHIC, "PSYCHIC", 6), - TRAINER_CLASS(TRAINER_CLASS_GENTLEMAN, "GENTLEMAN", 20, ITEM_LUXURY_BALL), - TRAINER_CLASS(TRAINER_CLASS_ELITE_FOUR, "ELITE FOUR", 25, ITEM_ULTRA_BALL), - TRAINER_CLASS(TRAINER_CLASS_LEADER, "LEADER", 25), - TRAINER_CLASS(TRAINER_CLASS_SCHOOL_KID, "SCHOOL KID"), - TRAINER_CLASS(TRAINER_CLASS_SR_AND_JR, "SR. AND JR.", 4), - TRAINER_CLASS(TRAINER_CLASS_WINSTRATE, "WINSTRATE", 10), - TRAINER_CLASS(TRAINER_CLASS_POKEFAN, "POKéFAN", 20), - TRAINER_CLASS(TRAINER_CLASS_YOUNGSTER, "YOUNGSTER", 4), - TRAINER_CLASS(TRAINER_CLASS_CHAMPION, "CHAMPION", 50), - TRAINER_CLASS(TRAINER_CLASS_FISHERMAN, "FISHERMAN", 10, B_TRAINER_CLASS_POKE_BALLS >= GEN_8 ? ITEM_DIVE_BALL : ITEM_LURE_BALL), - TRAINER_CLASS(TRAINER_CLASS_TRIATHLETE, "TRIATHLETE", 10), - TRAINER_CLASS(TRAINER_CLASS_DRAGON_TAMER, "DRAGON TAMER", 12), - TRAINER_CLASS(TRAINER_CLASS_NINJA_BOY, "NINJA BOY", 3), - TRAINER_CLASS(TRAINER_CLASS_BATTLE_GIRL, "BATTLE GIRL", 6), - TRAINER_CLASS(TRAINER_CLASS_PARASOL_LADY, "PARASOL LADY", 10), - TRAINER_CLASS(TRAINER_CLASS_SWIMMER_F, "SWIMMER♀", 2, ITEM_DIVE_BALL), - TRAINER_CLASS(TRAINER_CLASS_TWINS, "TWINS", 3), - TRAINER_CLASS(TRAINER_CLASS_SAILOR, "SAILOR", 8), - TRAINER_CLASS(TRAINER_CLASS_COOLTRAINER_2, "COOLTRAINER", 5, ITEM_ULTRA_BALL), - TRAINER_CLASS(TRAINER_CLASS_MAGMA_ADMIN, "MAGMA ADMIN", 10), - TRAINER_CLASS(TRAINER_CLASS_RIVAL, "{PKMN} TRAINER", 15), - TRAINER_CLASS(TRAINER_CLASS_BUG_CATCHER, "BUG CATCHER", 4), - TRAINER_CLASS(TRAINER_CLASS_PKMN_RANGER, "{PKMN} RANGER", 12), - TRAINER_CLASS(TRAINER_CLASS_MAGMA_LEADER, "MAGMA LEADER", 20, ITEM_MASTER_BALL), - TRAINER_CLASS(TRAINER_CLASS_LASS, "LASS", 4), - TRAINER_CLASS(TRAINER_CLASS_YOUNG_COUPLE, "YOUNG COUPLE", 8), - TRAINER_CLASS(TRAINER_CLASS_OLD_COUPLE, "OLD COUPLE", 10), - TRAINER_CLASS(TRAINER_CLASS_SIS_AND_BRO, "SIS AND BRO", 3), - TRAINER_CLASS(TRAINER_CLASS_SALON_MAIDEN, "SALON MAIDEN"), - TRAINER_CLASS(TRAINER_CLASS_DOME_ACE, "DOME ACE"), - TRAINER_CLASS(TRAINER_CLASS_PALACE_MAVEN, "PALACE MAVEN"), - TRAINER_CLASS(TRAINER_CLASS_ARENA_TYCOON, "ARENA TYCOON"), - TRAINER_CLASS(TRAINER_CLASS_FACTORY_HEAD, "FACTORY HEAD"), - TRAINER_CLASS(TRAINER_CLASS_PIKE_QUEEN, "PIKE QUEEN"), - TRAINER_CLASS(TRAINER_CLASS_PYRAMID_KING, "PYRAMID KING"), - TRAINER_CLASS(TRAINER_CLASS_RS_PROTAG, "{PKMN} TRAINER"), + [TRAINER_CLASS_PKMN_TRAINER_1] = { _("{PKMN} TRAINER") }, + [TRAINER_CLASS_PKMN_TRAINER_2] = { _("{PKMN} TRAINER") }, + [TRAINER_CLASS_HIKER] = { _("HIKER"), 10 }, + [TRAINER_CLASS_TEAM_AQUA] = { _("TEAM AQUA") }, + [TRAINER_CLASS_PKMN_BREEDER] = { _("{PKMN} BREEDER"), 10, B_TRAINER_CLASS_POKE_BALLS >= GEN_8 ? BALL_HEAL : BALL_FRIEND }, + [TRAINER_CLASS_COOLTRAINER] = { _("COOLTRAINER"), 12, BALL_ULTRA }, + [TRAINER_CLASS_BIRD_KEEPER] = { _("BIRD KEEPER"), 8 }, + [TRAINER_CLASS_COLLECTOR] = { _("COLLECTOR"), 15, BALL_PREMIER }, + [TRAINER_CLASS_SWIMMER_M] = { _("SWIMMER♂"), 2, BALL_DIVE }, + [TRAINER_CLASS_TEAM_MAGMA] = { _("TEAM MAGMA") }, + [TRAINER_CLASS_EXPERT] = { _("EXPERT"), 10 }, + [TRAINER_CLASS_AQUA_ADMIN] = { _("AQUA ADMIN"), 10 }, + [TRAINER_CLASS_BLACK_BELT] = { _("BLACK BELT"), 8, BALL_ULTRA }, + [TRAINER_CLASS_AQUA_LEADER] = { _("AQUA LEADER"), 20, BALL_MASTER }, + [TRAINER_CLASS_HEX_MANIAC] = { _("HEX MANIAC"), 6 }, + [TRAINER_CLASS_AROMA_LADY] = { _("AROMA LADY"), 10 }, + [TRAINER_CLASS_RUIN_MANIAC] = { _("RUIN MANIAC"), 15 }, + [TRAINER_CLASS_INTERVIEWER] = { _("INTERVIEWER"), 12 }, + [TRAINER_CLASS_TUBER_F] = { _("TUBER"), 1 }, + [TRAINER_CLASS_TUBER_M] = { _("TUBER"), 1 }, + [TRAINER_CLASS_LADY] = { _("LADY"), 50 }, + [TRAINER_CLASS_BEAUTY] = { _("BEAUTY"), 20 }, + [TRAINER_CLASS_RICH_BOY] = { _("RICH BOY"), 50 }, + [TRAINER_CLASS_POKEMANIAC] = { _("POKéMANIAC"), 15 }, + [TRAINER_CLASS_GUITARIST] = { _("GUITARIST"), 8 }, + [TRAINER_CLASS_KINDLER] = { _("KINDLER"), 8 }, + [TRAINER_CLASS_CAMPER] = { _("CAMPER"), 4 }, + [TRAINER_CLASS_PICNICKER] = { _("PICNICKER"), 4 }, + [TRAINER_CLASS_BUG_MANIAC] = { _("BUG MANIAC"), 15 }, + [TRAINER_CLASS_PSYCHIC] = { _("PSYCHIC"), 6 }, + [TRAINER_CLASS_GENTLEMAN] = { _("GENTLEMAN"), 20, BALL_LUXURY }, + [TRAINER_CLASS_ELITE_FOUR] = { _("ELITE FOUR"), 25, BALL_ULTRA }, + [TRAINER_CLASS_LEADER] = { _("LEADER"), 25 }, + [TRAINER_CLASS_SCHOOL_KID] = { _("SCHOOL KID") }, + [TRAINER_CLASS_SR_AND_JR] = { _("SR. AND JR."), 4 }, + [TRAINER_CLASS_WINSTRATE] = { _("WINSTRATE"), 10 }, + [TRAINER_CLASS_POKEFAN] = { _("POKéFAN"), 20 }, + [TRAINER_CLASS_YOUNGSTER] = { _("YOUNGSTER"), 4 }, + [TRAINER_CLASS_CHAMPION] = { _("CHAMPION"), 50 }, + [TRAINER_CLASS_FISHERMAN] = { _("FISHERMAN"), 10, B_TRAINER_CLASS_POKE_BALLS >= GEN_8 ? BALL_DIVE : BALL_LURE }, + [TRAINER_CLASS_TRIATHLETE] = { _("TRIATHLETE"), 10 }, + [TRAINER_CLASS_DRAGON_TAMER] = { _("DRAGON TAMER"), 12 }, + [TRAINER_CLASS_NINJA_BOY] = { _("NINJA BOY"), 3 }, + [TRAINER_CLASS_BATTLE_GIRL] = { _("BATTLE GIRL"), 6 }, + [TRAINER_CLASS_PARASOL_LADY] = { _("PARASOL LADY"), 10 }, + [TRAINER_CLASS_SWIMMER_F] = { _("SWIMMER♀"), 2, BALL_DIVE }, + [TRAINER_CLASS_TWINS] = { _("TWINS"), 3 }, + [TRAINER_CLASS_SAILOR] = { _("SAILOR"), 8 }, + [TRAINER_CLASS_COOLTRAINER_2] = { _("COOLTRAINER"), 5, BALL_ULTRA }, + [TRAINER_CLASS_MAGMA_ADMIN] = { _("MAGMA ADMIN"), 10 }, + [TRAINER_CLASS_RIVAL] = { _("{PKMN} TRAINER"), 15 }, + [TRAINER_CLASS_BUG_CATCHER] = { _("BUG CATCHER"), 4 }, + [TRAINER_CLASS_PKMN_RANGER] = { _("{PKMN} RANGER"), 12 }, + [TRAINER_CLASS_MAGMA_LEADER] = { _("MAGMA LEADER"), 20, BALL_MASTER }, + [TRAINER_CLASS_LASS] = { _("LASS"), 4 }, + [TRAINER_CLASS_YOUNG_COUPLE] = { _("YOUNG COUPLE"), 8 }, + [TRAINER_CLASS_OLD_COUPLE] = { _("OLD COUPLE"), 10 }, + [TRAINER_CLASS_SIS_AND_BRO] = { _("SIS AND BRO"), 3 }, + [TRAINER_CLASS_SALON_MAIDEN] = { _("SALON MAIDEN") }, + [TRAINER_CLASS_DOME_ACE] = { _("DOME ACE") }, + [TRAINER_CLASS_PALACE_MAVEN] = { _("PALACE MAVEN") }, + [TRAINER_CLASS_ARENA_TYCOON] = { _("ARENA TYCOON") }, + [TRAINER_CLASS_FACTORY_HEAD] = { _("FACTORY HEAD") }, + [TRAINER_CLASS_PIKE_QUEEN] = { _("PIKE QUEEN") }, + [TRAINER_CLASS_PYRAMID_KING] = { _("PYRAMID KING") }, + [TRAINER_CLASS_RS_PROTAG] = { _("{PKMN} TRAINER") }, }; static void (* const sTurnActionsFuncsTable[])(void) = @@ -1772,7 +1761,20 @@ void CB2_QuitRecordedBattle(void) m4aMPlayStop(&gMPlayInfo_SE1); m4aMPlayStop(&gMPlayInfo_SE2); if (gTestRunnerEnabled) + { + // Clean up potentially-leaking tasks. + // I think these leak when the battle ends soon after a + // battler is fainted. + u8 taskId; + taskId = FindTaskIdByFunc(Task_PlayerController_RestoreBgmAfterCry); + if (taskId != TASK_NONE) + DestroyTask(taskId); + taskId = FindTaskIdByFunc(Task_DuckBGMForPokemonCry); + if (taskId != TASK_NONE) + DestroyTask(taskId); + TestRunner_Battle_AfterLastTurn(); + } FreeRestoreBattleData(); FreeAllWindowBuffers(); SetMainCallback2(gMain.savedCallback); @@ -3075,7 +3077,6 @@ static void BattleStartClearSetData(void) gBattleCommunication[i] = 0; gPauseCounterBattle = 0; - gBattleMoveDamage = 0; gIntroSlideFlags = 0; gLeveledUpInBattle = 0; gAbsentBattlerFlags = 0; @@ -3116,6 +3117,13 @@ static void BattleStartClearSetData(void) gSelectedMonPartyId = PARTY_SIZE; // Revival Blessing gCategoryIconSpriteId = 0xFF; + + if(IsSleepClauseEnabled()) + { + // If monCausingSleepClause[side] equals PARTY_SIZE, Sleep Clause is not active for the given side. + gBattleStruct->monCausingSleepClause[B_SIDE_PLAYER] = PARTY_SIZE; + gBattleStruct->monCausingSleepClause[B_SIDE_OPPONENT] = PARTY_SIZE; + } } void SwitchInClearSetData(u32 battler) @@ -3195,7 +3203,7 @@ void SwitchInClearSetData(u32 battler) gDisableStructs[battler].substituteHP = disableStructCopy.substituteHP; } - gMoveResultFlags = 0; + gBattleStruct->moveResultFlags[battler] = 0; gDisableStructs[battler].isFirstTurn = 2; gDisableStructs[battler].truantSwitchInHack = disableStructCopy.truantSwitchInHack; gLastMoves[battler] = MOVE_NONE; @@ -3753,7 +3761,6 @@ static void DoBattleIntro(void) gBattleStruct->eventsBeforeFirstTurnState = 0; gBattleStruct->switchInBattlerCounter = 0; gBattleStruct->overworldWeatherDone = FALSE; - SetAiLogicDataForTurn(AI_DATA); // get assumed abilities, hold effects, etc of all battlers Ai_InitPartyStruct(); // Save mons party counts, and first 2/4 mons on the battlefield. // Try to set a status to start the battle with @@ -3878,11 +3885,11 @@ static void TryDoEventsBeforeFirstTurn(void) case FIRST_TURN_EVENTS_SWITCH_IN_ABILITIES: while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest { - gBattlerAttacker = gBattlerByTurnOrder[gBattleStruct->switchInBattlerCounter++]; + i = gBattlerByTurnOrder[gBattleStruct->switchInBattlerCounter++]; - if (TryPrimalReversion(gBattlerAttacker)) + if (TryPrimalReversion(i)) return; - if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, gBattlerAttacker, 0, 0, 0) != 0) + if (AbilityBattleEffects(ABILITYEFFECT_ON_SWITCHIN, i, 0, 0, 0) != 0) return; } gBattleStruct->switchInBattlerCounter = 0; @@ -3896,7 +3903,7 @@ static void TryDoEventsBeforeFirstTurn(void) case FIRST_TURN_EVENTS_ITEM_EFFECTS: while (gBattleStruct->switchInBattlerCounter < gBattlersCount) // From fastest to slowest { - if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN, gBattlerByTurnOrder[gBattleStruct->switchInBattlerCounter++], FALSE)) + if (ItemBattleEffects(ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN, gBattlerByTurnOrder[gBattleStruct->switchInBattlerCounter++], FALSE)) return; } gBattleStruct->switchInBattlerCounter = 0; @@ -3940,7 +3947,6 @@ static void TryDoEventsBeforeFirstTurn(void) gBattleScripting.moveendState = 0; gBattleStruct->faintedActionsState = 0; gBattleStruct->turnCountersTracker = 0; - gMoveResultFlags = 0; memset(gQueuedStatBoosts, 0, sizeof(gQueuedStatBoosts)); SetShellSideArmCategory(); @@ -3979,7 +3985,6 @@ static void HandleEndTurn_ContinueBattle(void) gBattleStruct->wishPerishSongState = 0; gBattleStruct->wishPerishSongBattlerId = 0; gBattleStruct->turnCountersTracker = 0; - gMoveResultFlags = 0; } } @@ -4011,8 +4016,6 @@ void BattleTurnPassed(void) gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; gBattleScripting.moveendState = 0; - gBattleMoveDamage = 0; - gMoveResultFlags = 0; for (i = 0; i < 5; i++) gBattleCommunication[i] = 0; @@ -4073,6 +4076,12 @@ u8 IsRunningFromBattleImpossible(u32 battler) { u32 holdEffect, i; + if (FlagGet(B_FLAG_NO_RUNNING)) + { + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_ESCAPE; + return BATTLE_RUN_FORBIDDEN; + } + if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY_E_READER) holdEffect = gEnigmaBerries[battler].holdEffect; else @@ -4191,18 +4200,26 @@ static void HandleTurnActionSelectionState(void) case STATE_TURN_START_RECORD: // Recorded battle related action on start of every turn. RecordedBattle_CopyBattlerMoves(battler); gBattleCommunication[battler] = STATE_BEFORE_ACTION_CHOSEN; + u32 isAiRisky = AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_RISKY; // Risky AI switches aggressively even mid battle // Do AI score computations here so we can use them in AI_TrySwitchOrUseItem if ((gBattleTypeFlags & BATTLE_TYPE_HAS_AI || IsWildMonSmart()) && (BattlerHasAi(battler) && !(gBattleTypeFlags & BATTLE_TYPE_PALACE))) { - if (ShouldSwitch(battler, FALSE)) + AI_DATA->aiCalcInProgress = TRUE; + + // Setup battler data + sBattler_AI = battler; + BattleAI_SetupAIData(0xF, sBattler_AI); + + // Setup switching data + AI_DATA->mostSuitableMonId[battler] = GetMostSuitableMonToSwitchInto(battler, isAiRisky); + if (ShouldSwitch(battler)) AI_DATA->shouldSwitch |= (1u << battler); - if (AI_THINKING_STRUCT->aiFlags[battler] & AI_FLAG_RISKY) // Risky AI switches aggressively even mid battle - AI_DATA->mostSuitableMonId[battler] = GetMostSuitableMonToSwitchInto(battler, TRUE); - else - AI_DATA->mostSuitableMonId[battler] = GetMostSuitableMonToSwitchInto(battler, FALSE); - gBattleStruct->aiMoveOrAction[battler] = ComputeBattleAiScores(battler); + + // Do scoring + gBattleStruct->aiMoveOrAction[battler] = BattleAI_ChooseMoveOrAction(); + AI_DATA->aiCalcInProgress = FALSE; } // fallthrough case STATE_BEFORE_ACTION_CHOSEN: // Choose an action. @@ -4427,8 +4444,9 @@ static void HandleTurnActionSelectionState(void) BattleScriptExecute(BattleScript_PrintCantRunFromTrainer); gBattleCommunication[battler] = STATE_BEFORE_ACTION_CHOSEN; } - else if (IsRunningFromBattleImpossible(battler) != BATTLE_RUN_SUCCESS + else if ((IsRunningFromBattleImpossible(battler) != BATTLE_RUN_SUCCESS && gBattleResources->bufferB[battler][1] == B_ACTION_RUN) + || (FlagGet(B_FLAG_NO_RUNNING) == TRUE && gBattleResources->bufferB[battler][1] == B_ACTION_RUN)) { gSelectionBattleScripts[battler] = BattleScript_PrintCantEscapeFromBattle; gBattleCommunication[battler] = STATE_SELECTION_SCRIPT; @@ -5147,6 +5165,7 @@ static void TurnValuesCleanUp(bool8 var0) gBattleStruct->usedEjectItem = 0; gBattleStruct->pledgeMove = FALSE; // combined pledge move may not have been used due to a canceller + ClearDamageCalcResults(); } void SpecialStatusesClear(void) diff --git a/src/battle_message.c b/src/battle_message.c index 30f83b14c4..88b33a2c03 100644 --- a/src/battle_message.c +++ b/src/battle_message.c @@ -22,6 +22,7 @@ #include "text.h" #include "trainer_hill.h" #include "window.h" +#include "line_break.h" #include "constants/abilities.h" #include "constants/battle_dome.h" #include "constants/battle_string_ids.h" @@ -48,400 +49,78 @@ struct BattleWindowText u8 shadowColor; }; -static void ChooseMoveUsedParticle(u8 *textPtr); -static void ChooseTypeOfMoveUsedString(u8 *dst); - +#if TESTING +EWRAM_DATA u16 sBattlerAbilities[MAX_BATTLERS_COUNT] = {0}; +#else static EWRAM_DATA u16 sBattlerAbilities[MAX_BATTLERS_COUNT] = {0}; +#endif EWRAM_DATA struct BattleMsgData *gBattleMsgDataPtr = NULL; // todo: make some of those names less vague: attacker/target vs pkmn, etc. -static const u8 sText_Trainer1LoseText[] = _("{B_TRAINER1_LOSE_TEXT}"); -static const u8 sText_PkmnGainedEXP[] = _("{B_BUFF1} gained{B_BUFF2}\n{B_BUFF3} EXP. Points!\p"); static const u8 sText_EmptyString4[] = _(""); -static const u8 sText_ABoosted[] = _(" a boosted"); -static const u8 sText_PkmnGrewToLv[] = _("{B_BUFF1} grew to\nLV. {B_BUFF2}!{WAIT_SE}\p"); -static const u8 sText_PkmnLearnedMove[] = _("{B_BUFF1} learned\n{B_BUFF2}!{WAIT_SE}\p"); -static const u8 sText_TryToLearnMove1[] = _("{B_BUFF1} is trying to\nlearn {B_BUFF2}.\p"); -static const u8 sText_TryToLearnMove2[] = _("But, {B_BUFF1} can't learn\nmore than four moves.\p"); -static const u8 sText_TryToLearnMove3[] = _("Delete a move to make\nroom for {B_BUFF2}?"); -static const u8 sText_PkmnForgotMove[] = _("{B_BUFF1} forgot\n{B_BUFF2}.\p"); -static const u8 sText_StopLearningMove[] = _("{PAUSE 32}Stop learning\n{B_BUFF2}?"); -static const u8 sText_DidNotLearnMove[] = _("{B_BUFF1} did not learn\n{B_BUFF2}.\p"); -static const u8 sText_UseNextPkmn[] = _("Use next POKéMON?"); -static const u8 sText_AttackMissed[] = _("{B_ATK_NAME_WITH_PREFIX}'s\nattack missed!"); -static const u8 sText_PkmnProtectedItself[] = _("{B_DEF_NAME_WITH_PREFIX}\nprotected itself!"); -static const u8 sText_AvoidedDamage[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\ndamage with {B_DEF_ABILITY}!"); -static const u8 sText_PkmnMakesGroundMiss[] = _("{B_DEF_NAME_WITH_PREFIX} makes GROUND\nmoves miss with {B_DEF_ABILITY}!"); -static const u8 sText_PkmnAvoidedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} avoided\nthe attack!"); -static const u8 sText_ItDoesntAffect[] = _("It doesn't affect\n{B_DEF_NAME_WITH_PREFIX}…"); -static const u8 sText_AttackerFainted[] = _("{B_ATK_NAME_WITH_PREFIX}\nfainted!\p"); -static const u8 sText_TargetFainted[] = _("{B_DEF_NAME_WITH_PREFIX}\nfainted!\p"); -static const u8 sText_PlayerGotMoney[] = _("{B_PLAYER_NAME} got ¥{B_BUFF1}\nfor winning!\p"); -static const u8 sText_PlayerLostToEnemyTrainer[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\pPlayer lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!{PAUSE_UNTIL_PRESS}"); -static const u8 sText_PlayerPaidPrizeMoney[] = _("{B_PLAYER_NAME} paid ¥{B_BUFF1} as the prize\nmoney…\p… … … …\p{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); -static const u8 sText_PlayerWhiteout[] = _("{B_PLAYER_NAME} is out of\nusable POKéMON!\p"); -#if B_WHITEOUT_MONEY >= GEN_4 -static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} panicked and lost ¥{B_BUFF1}…\p… … … …\p{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); -#else -static const u8 sText_PlayerWhiteout2[] = _("{B_PLAYER_NAME} whited out!{PAUSE_UNTIL_PRESS}"); -#endif -static const u8 sText_PreventsEscape[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} prevents\nescape with {B_SCR_ACTIVE_ABILITY}!\p"); -static const u8 sText_CantEscape2[] = _("Can't escape!\p"); -static const u8 sText_AttackerCantEscape[] = _("{B_ATK_NAME_WITH_PREFIX} can't escape!"); -static const u8 sText_HitXTimes[] = _("Hit {B_BUFF1} time(s)!"); -static const u8 sText_PkmnFellAsleep[] = _("{B_EFF_NAME_WITH_PREFIX}\nfell asleep!"); -static const u8 sText_PkmnMadeSleep[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}\nmade {B_EFF_NAME_WITH_PREFIX} sleep!"); -static const u8 sText_PkmnAlreadyAsleep[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready asleep!"); -static const u8 sText_PkmnAlreadyAsleep2[] = _("{B_ATK_NAME_WITH_PREFIX} is\nalready asleep!"); -static const u8 sText_PkmnWasntAffected[] = _("{B_DEF_NAME_WITH_PREFIX}\nwasn't affected!"); -static const u8 sText_PkmnWasPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX}\nwas poisoned!"); -static const u8 sText_PkmnPoisonedBy[] = _("{B_EFF_NAME_WITH_PREFIX} was poisoned by\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}!"); -static const u8 sText_PkmnHurtByPoison[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby poison!"); -static const u8 sText_PkmnAlreadyPoisoned[] = _("{B_DEF_NAME_WITH_PREFIX} is already\npoisoned."); -static const u8 sText_PkmnBadlyPoisoned[] = _("{B_EFF_NAME_WITH_PREFIX} is badly\npoisoned!"); -static const u8 sText_PkmnEnergyDrained[] = _("{B_DEF_NAME_WITH_PREFIX} had its\nenergy drained!"); -static const u8 sText_PkmnWasBurned[] = _("{B_EFF_NAME_WITH_PREFIX} was burned!"); -static const u8 sText_PkmnGotFrostbite[] = _("{B_EFF_NAME_WITH_PREFIX} got frostbite!"); -static const u8 sText_PkmnBurnedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}\nburned {B_EFF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnHurtByBurn[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its burn!"); -static const u8 sText_PkmnHurtByFrostbite[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby its frostbite!"); -static const u8 sText_PkmnAlreadyHasBurn[] = _("{B_DEF_NAME_WITH_PREFIX} already\nhas a burn."); -static const u8 sText_PkmnWasFrozen[] = _("{B_EFF_NAME_WITH_PREFIX} was\nfrozen solid!"); -static const u8 sText_PkmnFrozenBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}\nfroze {B_EFF_NAME_WITH_PREFIX} solid!"); -static const u8 sText_PkmnIsFrozen[] = _("{B_ATK_NAME_WITH_PREFIX} is\nfrozen solid!"); -static const u8 sText_PkmnWasDefrosted[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndefrosted!"); -static const u8 sText_PkmnWasDefrosted2[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted!"); -static const u8 sText_PkmnWasDefrostedBy[] = _("{B_ATK_NAME_WITH_PREFIX} was\ndefrosted by {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnFrostbiteHealed[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nfrostbite was healed!"); -static const u8 sText_PkmnFrostbiteHealed2[] = _("{B_ATK_NAME_WITH_PREFIX}'s\nfrostbite was healed!"); -static const u8 sText_PkmnFrostbiteHealedBy[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE}\nhealed its frostbite!"); -static const u8 sText_PkmnWasParalyzed[] = _("{B_EFF_NAME_WITH_PREFIX} is paralyzed!\nIt may be unable to move!"); -static const u8 sText_PkmnWasParalyzedBy[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}\nparalyzed {B_EFF_NAME_WITH_PREFIX}!\lIt may be unable to move!"); -static const u8 sText_PkmnIsParalyzed[] = _("{B_ATK_NAME_WITH_PREFIX} is paralyzed!\nIt can't move!"); -static const u8 sText_PkmnIsAlreadyParalyzed[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready paralyzed!"); -static const u8 sText_PkmnHealedParalysis[] = _("{B_DEF_NAME_WITH_PREFIX} was\nhealed of paralysis!"); -static const u8 sText_PkmnDreamEaten[] = _("{B_DEF_NAME_WITH_PREFIX}'s\ndream was eaten!"); -static const u8 sText_StatsWontIncrease[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\nwon't go higher!"); -static const u8 sText_StatsWontDecrease[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwon't go lower!"); -static const u8 sText_TeamStoppedWorking[] = _("Your team's {B_BUFF1}\nstopped working!"); -static const u8 sText_FoeStoppedWorking[] = _("The foe's {B_BUFF1}\nstopped working!"); -static const u8 sText_PkmnIsConfused[] = _("{B_ATK_NAME_WITH_PREFIX} is\nconfused!"); -static const u8 sText_PkmnHealedConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} snapped\nout of confusion!"); -static const u8 sText_PkmnWasConfused[] = _("{B_EFF_NAME_WITH_PREFIX} became\nconfused!"); -static const u8 sText_PkmnAlreadyConfused[] = _("{B_DEF_NAME_WITH_PREFIX} is\nalready confused!"); -static const u8 sText_PkmnFellInLove[] = _("{B_DEF_NAME_WITH_PREFIX}\nfell in love!"); -static const u8 sText_PkmnInLove[] = _("{B_ATK_NAME_WITH_PREFIX} is in love\nwith {B_SCR_ACTIVE_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnImmobilizedByLove[] = _("{B_ATK_NAME_WITH_PREFIX} is\nimmobilized by love!"); -static const u8 sText_PkmnBlownAway[] = _("{B_DEF_NAME_WITH_PREFIX} was\nblown away!"); -static const u8 sText_PkmnChangedType[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); -static const u8 sText_PkmnFlinched[] = _("{B_ATK_NAME_WITH_PREFIX} flinched!"); -static const u8 sText_PkmnRegainedHealth[] = _("{B_DEF_NAME_WITH_PREFIX} regained\nhealth!"); -static const u8 sText_PkmnHPFull[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nHP is full!"); -static const u8 sText_PkmnRaisedSpDef[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised SP. DEF!"); -static const u8 sText_PkmnRaisedSpDefALittle[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised SP. DEF a little!"); -static const u8 sText_PkmnRaisedDef[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised DEFENSE!"); -static const u8 sText_PkmnRaisedDefALittle[] = _("{B_ATK_PREFIX2}'s {B_CURRENT_MOVE}\nraised DEFENSE a little!"); -static const u8 sText_PkmnCoveredByVeil[] = _("{B_ATK_PREFIX2}'s party is covered\nby a veil!"); -static const u8 sText_PkmnUsedSafeguard[] = _("{B_DEF_NAME_WITH_PREFIX}'s party is protected\nby Safeguard!"); -static const u8 sText_PkmnSafeguardExpired[] = _("{B_ATK_PREFIX3}'s party is no longer\nprotected by Safeguard!"); -static const u8 sText_PkmnWentToSleep[] = _("{B_ATK_NAME_WITH_PREFIX} went\nto sleep!"); -static const u8 sText_PkmnSleptHealthy[] = _("{B_ATK_NAME_WITH_PREFIX} slept and\nbecame healthy!"); -static const u8 sText_PkmnWhippedWhirlwind[] = _("{B_ATK_NAME_WITH_PREFIX} whipped\nup a whirlwind!"); -static const u8 sText_PkmnTookSunlight[] = _("{B_ATK_NAME_WITH_PREFIX} took\nin sunlight!"); -static const u8 sText_PkmnLoweredHead[] = _("{B_ATK_NAME_WITH_PREFIX} lowered\nits head!"); -static const u8 sText_PkmnIsGlowing[] = _("{B_ATK_NAME_WITH_PREFIX} is glowing!"); -static const u8 sText_PkmnIsCloakedInAHarshLight[] = _("{B_ATK_NAME_WITH_PREFIX} became\ncloaked in a harsh light!"); -static const u8 sText_PkmnFlewHigh[] = _("{B_ATK_NAME_WITH_PREFIX} flew\nup high!"); -static const u8 sText_PkmnDugHole[] = _("{B_ATK_NAME_WITH_PREFIX} dug a hole!"); -static const u8 sText_PkmnHidUnderwater[] = _("{B_ATK_NAME_WITH_PREFIX} hid\nunderwater!"); -static const u8 sText_PkmnSprangUp[] = _("{B_ATK_NAME_WITH_PREFIX} sprang up!"); -static const u8 sText_PkmnSqueezedByBind[] = _("{B_DEF_NAME_WITH_PREFIX} was squeezed by\n{B_ATK_NAME_WITH_PREFIX}'s BIND!"); -static const u8 sText_PkmnInSnapTrap[] = _("{B_DEF_NAME_WITH_PREFIX} got trapped\nby a snap trap!"); -static const u8 sText_PkmnTrappedInVortex[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nin the vortex!"); -static const u8 sText_PkmnTrappedBySandTomb[] = _("{B_DEF_NAME_WITH_PREFIX} was trapped\nby SAND TOMB!"); -static const u8 sText_PkmnWrappedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was WRAPPED by\n{B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnClamped[] = _("{B_ATK_NAME_WITH_PREFIX} CLAMPED\n{B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnHurtBy[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt\nby {B_BUFF1}!"); -static const u8 sText_PkmnFreedFrom[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\nfrom {B_BUFF1}!"); -static const u8 sText_PkmnCrashed[] = _("{B_ATK_NAME_WITH_PREFIX} kept going\nand crashed!"); -const u8 gText_PkmnShroudedInMist[] = _("{B_ATK_PREFIX2} became\nshrouded in MIST!"); -static const u8 sText_PkmnProtectedByMist[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is protected\nby MIST!"); -const u8 gText_PkmnGettingPumped[] = _("{B_DEF_NAME_WITH_PREFIX} is getting\npumped!"); -static const u8 sText_PkmnHitWithRecoil[] = _("{B_ATK_NAME_WITH_PREFIX} is hit\nwith recoil!"); -static const u8 sText_PkmnProtectedItself2[] = _("{B_ATK_NAME_WITH_PREFIX} protected\nitself!"); -static const u8 sText_PkmnBuffetedBySandstorm[] = _("{B_ATK_NAME_WITH_PREFIX} is buffeted\nby the sandstorm!"); -static const u8 sText_PkmnPeltedByHail[] = _("{B_ATK_NAME_WITH_PREFIX} is pelted\nby HAIL!"); -static const u8 sText_PkmnsXWoreOff[] = _("{B_ATK_PREFIX1}'s {B_BUFF1}\nwore off!"); -static const u8 sText_PkmnSeeded[] = _("{B_DEF_NAME_WITH_PREFIX} was seeded!"); -static const u8 sText_PkmnEvadedAttack[] = _("{B_DEF_NAME_WITH_PREFIX} evaded\nthe attack!"); -static const u8 sText_PkmnSappedByLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX}'s health is\nsapped by LEECH SEED!"); -static const u8 sText_PkmnFastAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} is fast\nasleep."); -static const u8 sText_PkmnWokeUp[] = _("{B_ATK_NAME_WITH_PREFIX} woke up!"); -static const u8 sText_PkmnUproarKeptAwake[] = _("But {B_SCR_ACTIVE_NAME_WITH_PREFIX}'s UPROAR\nkept it awake!"); -static const u8 sText_PkmnWokeUpInUproar[] = _("{B_ATK_NAME_WITH_PREFIX} woke up\nin the UPROAR!"); -static const u8 sText_PkmnCausedUproar[] = _("{B_ATK_NAME_WITH_PREFIX} caused\nan UPROAR!"); -static const u8 sText_PkmnMakingUproar[] = _("{B_ATK_NAME_WITH_PREFIX} is making\nan UPROAR!"); -static const u8 sText_PkmnCalmedDown[] = _("{B_ATK_NAME_WITH_PREFIX} calmed down."); -static const u8 sText_PkmnCantSleepInUproar[] = _("But {B_DEF_NAME_WITH_PREFIX} can't\nsleep in an UPROAR!"); -static const u8 sText_PkmnStockpiled[] = _("{B_ATK_NAME_WITH_PREFIX} stockpiled\n{B_BUFF1}!"); -static const u8 sText_PkmnCantStockpile[] = _("{B_ATK_NAME_WITH_PREFIX} can't\nstockpile any more!"); -static const u8 sText_PkmnCantSleepInUproar2[] = _("But {B_DEF_NAME_WITH_PREFIX} can't\nsleep in an UPROAR!"); -static const u8 sText_UproarKeptPkmnAwake[] = _("But the UPROAR kept\n{B_DEF_NAME_WITH_PREFIX} awake!"); -static const u8 sText_PkmnStayedAwakeUsing[] = _("{B_DEF_NAME_WITH_PREFIX} stayed awake\nusing its {B_DEF_ABILITY}!"); -static const u8 sText_PkmnStoringEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} is storing\nenergy!"); -static const u8 sText_PkmnUnleashedEnergy[] = _("{B_ATK_NAME_WITH_PREFIX} unleashed\nenergy!"); -static const u8 sText_PkmnFatigueConfusion[] = _("{B_ATK_NAME_WITH_PREFIX} became\nconfused due to fatigue!"); -static const u8 sText_PlayerPickedUpMoney[] = _("{B_PLAYER_NAME} picked up\n¥{B_BUFF1}!\p"); -static const u8 sText_PkmnUnaffected[] = _("{B_DEF_NAME_WITH_PREFIX} is\nunaffected!"); -static const u8 sText_PkmnTransformedInto[] = _("{B_ATK_NAME_WITH_PREFIX} transformed\ninto {B_BUFF1}!"); -static const u8 sText_PkmnMadeSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} made\na SUBSTITUTE!"); -static const u8 sText_PkmnHasSubstitute[] = _("{B_ATK_NAME_WITH_PREFIX} already\nhas a SUBSTITUTE!"); -static const u8 sText_SubstituteDamaged[] = _("The SUBSTITUTE took damage\nfor {B_DEF_NAME_WITH_PREFIX}!\p"); -static const u8 sText_PkmnSubstituteFaded[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nSUBSTITUTE faded!\p"); -static const u8 sText_PkmnMustRecharge[] = _("{B_ATK_NAME_WITH_PREFIX} must\nrecharge!"); -static const u8 sText_PkmnRageBuilding[] = _("{B_DEF_NAME_WITH_PREFIX}'s RAGE\nis building!"); -static const u8 sText_PkmnMoveWasDisabled[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwas disabled!"); -static const u8 sText_PkmnMoveDisabledNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is disabled\nno more!"); -static const u8 sText_PkmnGotEncore[] = _("{B_DEF_NAME_WITH_PREFIX} got\nan ENCORE!"); -static const u8 sText_PkmnEncoreEnded[] = _("{B_ATK_NAME_WITH_PREFIX}'s ENCORE\nended!"); -static const u8 sText_PkmnTookAim[] = _("{B_ATK_NAME_WITH_PREFIX} took aim\nat {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnSketchedMove[] = _("{B_ATK_NAME_WITH_PREFIX} SKETCHED\n{B_BUFF1}!"); -static const u8 sText_PkmnTryingToTakeFoe[] = _("{B_ATK_NAME_WITH_PREFIX} is trying\nto take its foe with it!"); -static const u8 sText_PkmnTookFoe[] = _("{B_DEF_NAME_WITH_PREFIX} took\n{B_ATK_NAME_WITH_PREFIX} with it!"); -static const u8 sText_PkmnReducedPP[] = _("Reduced {B_DEF_NAME_WITH_PREFIX}'s\n{B_BUFF1} by {B_BUFF2}!"); -static const u8 sText_PkmnStoleItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole\n{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); -static const u8 sText_TargetCantEscapeNow[] = _("{B_DEF_NAME_WITH_PREFIX} can't\nescape now!"); -static const u8 sText_PkmnFellIntoNightmare[] = _("{B_DEF_NAME_WITH_PREFIX} fell into\na NIGHTMARE!"); -static const u8 sText_PkmnLockedInNightmare[] = _("{B_ATK_NAME_WITH_PREFIX} is locked\nin a NIGHTMARE!"); -static const u8 sText_PkmnLaidCurse[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP and\nlaid a CURSE on {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnAfflictedByCurse[] = _("{B_ATK_NAME_WITH_PREFIX} is afflicted\nby the CURSE!"); -static const u8 sText_SpikesScattered[] = _("Spikes were scattered all around\n{B_DEF_TEAM2} team!"); -static const u8 sText_PkmnHurtBySpikes[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is hurt\nby spikes!"); -static const u8 sText_PkmnIdentified[] = _("{B_ATK_NAME_WITH_PREFIX} identified\n{B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnPerishCountFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s PERISH count\nfell to {B_BUFF1}!"); -static const u8 sText_PkmnBracedItself[] = _("{B_ATK_NAME_WITH_PREFIX} braced\nitself!"); -static const u8 sText_PkmnEnduredHit[] = _("{B_DEF_NAME_WITH_PREFIX} ENDURED\nthe hit!"); -static const u8 sText_MagnitudeStrength[] = _("MAGNITUDE {B_BUFF1}!"); -static const u8 sText_PkmnCutHPMaxedAttack[] = _("{B_ATK_NAME_WITH_PREFIX} cut its own HP\nand maximized ATTACK!"); -static const u8 sText_PkmnCopiedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}'s stat changes!"); -static const u8 sText_PkmnGotFree[] = _("{B_ATK_NAME_WITH_PREFIX} got free of\n{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}!"); -static const u8 sText_PkmnShedLeechSeed[] = _("{B_ATK_NAME_WITH_PREFIX} shed\nLEECH SEED!"); -static const u8 sText_PkmnBlewAwaySpikes[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nspikes!"); -static const u8 sText_PkmnFledFromBattle[] = _("{B_ATK_NAME_WITH_PREFIX} fled from\nbattle!"); -static const u8 sText_PkmnForesawAttack[] = _("{B_ATK_NAME_WITH_PREFIX} foresaw\nan attack!"); -static const u8 sText_PkmnTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX} took the\n{B_BUFF1} attack!"); -static const u8 sText_PkmnChoseXAsDestiny[] = _("{B_ATK_NAME_WITH_PREFIX} chose\n{B_CURRENT_MOVE} as its destiny!"); -static const u8 sText_PkmnAttack[] = _("{B_BUFF1}'s attack!"); -static const u8 sText_PkmnCenterAttention[] = _("{B_DEF_NAME_WITH_PREFIX} became the\ncenter of attention!"); -static const u8 sText_PkmnChargingPower[] = _("{B_ATK_NAME_WITH_PREFIX} began\ncharging power!"); -static const u8 sText_NaturePowerTurnedInto[] = _("NATURE POWER turned into\n{B_CURRENT_MOVE}!"); -static const u8 sText_PkmnStatusNormal[] = _("{B_ATK_NAME_WITH_PREFIX}'s status\nreturned to normal!"); -static const u8 sText_PkmnSubjectedToTorment[] = _("{B_DEF_NAME_WITH_PREFIX} was subjected\nto torment!"); -static const u8 sText_PkmnTighteningFocus[] = _("{B_ATK_NAME_WITH_PREFIX} is tightening\nits focus!"); -static const u8 sText_PkmnFellForTaunt[] = _("{B_DEF_NAME_WITH_PREFIX} fell for\nthe Taunt!"); -static const u8 sText_PkmnReadyToHelp[] = _("{B_ATK_NAME_WITH_PREFIX} is ready to\nhelp {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnSwitchedItems[] = _("{B_ATK_NAME_WITH_PREFIX} switched\nitems with its opponent!"); -static const u8 sText_PkmnObtainedX[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}."); -static const u8 sText_PkmnObtainedX2[] = _("{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); -static const u8 sText_PkmnObtainedXYObtainedZ[] = _("{B_ATK_NAME_WITH_PREFIX} obtained\n{B_BUFF1}.\p{B_DEF_NAME_WITH_PREFIX} obtained\n{B_BUFF2}."); -static const u8 sText_PkmnCopiedFoe[] = _("{B_ATK_NAME_WITH_PREFIX} copied\n{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}!"); -static const u8 sText_PkmnMadeWish[] = _("{B_ATK_NAME_WITH_PREFIX} made a WISH!"); -static const u8 sText_PkmnWishCameTrue[] = _("{B_BUFF1}'s WISH\ncame true!"); -static const u8 sText_PkmnPlantedRoots[] = _("{B_ATK_NAME_WITH_PREFIX} planted its roots!"); -static const u8 sText_PkmnAbsorbedNutrients[] = _("{B_ATK_NAME_WITH_PREFIX} absorbed\nnutrients with its roots!"); -static const u8 sText_PkmnAnchoredItself[] = _("{B_DEF_NAME_WITH_PREFIX} anchored\nitself with its roots!"); -static const u8 sText_PkmnWasMadeDrowsy[] = _("{B_ATK_NAME_WITH_PREFIX} made\n{B_DEF_NAME_WITH_PREFIX} drowsy!"); -static const u8 sText_PkmnKnockedOff[] = _("{B_ATK_NAME_WITH_PREFIX} knocked off\n{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); -static const u8 sText_PkmnSwappedAbilities[] = _("{B_ATK_NAME_WITH_PREFIX} swapped abilities\nwith its opponent!"); -static const u8 sText_PkmnSealedOpponentMove[] = _("{B_ATK_NAME_WITH_PREFIX} sealed the\nopponent's move(s)!"); -static const u8 sText_PkmnWantsGrudge[] = _("{B_ATK_NAME_WITH_PREFIX} wants the\nopponent to bear a GRUDGE!"); -static const u8 sText_PkmnLostPPGrudge[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} lost\nall its PP due to the GRUDGE!"); -static const u8 sText_PkmnShroudedItself[] = _("{B_ATK_NAME_WITH_PREFIX} shrouded\nitself in {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnMoveBounced[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE}\nwas bounced back by MAGIC COAT!"); -static const u8 sText_PkmnWaitsForTarget[] = _("{B_ATK_NAME_WITH_PREFIX} waits for a target\nto make a move!"); -static const u8 sText_PkmnSnatchedMove[] = _("{B_DEF_NAME_WITH_PREFIX} SNATCHED\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s move!"); -static const u8 sText_ElectricityWeakened[] = _("Electricity's power was\nweakened!"); -static const u8 sText_FireWeakened[] = _("Fire's power was\nweakened!"); -static const u8 sText_XFoundOneY[] = _("{B_ATK_NAME_WITH_PREFIX} found\none {B_LAST_ITEM}!"); -static const u8 sText_SoothingAroma[] = _("A soothing aroma wafted\nthrough the area!"); -static const u8 sText_ItemsCantBeUsedNow[] = _("Items can't be used now.{PAUSE 64}"); -static const u8 sText_ForXCommaYZ[] = _("For {B_SCR_ACTIVE_NAME_WITH_PREFIX},\n{B_LAST_ITEM} {B_BUFF1}"); -static const u8 sText_PkmnUsedXToGetPumped[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used\n{B_LAST_ITEM} to get pumped!"); -static const u8 sText_PkmnLostFocus[] = _("{B_ATK_NAME_WITH_PREFIX} lost its\nfocus and couldn't move!"); -static const u8 sText_PkmnWasDraggedOut[] = _("{B_DEF_NAME_WITH_PREFIX} was\ndragged out!\p"); -static const u8 sText_TheWallShattered[] = _("The wall shattered!"); -static const u8 sText_ButNoEffect[] = _("But it had no effect!"); -static const u8 sText_PkmnHasNoMovesLeft[] = _("{B_ATK_NAME_WITH_PREFIX} has no\nmoves left!\p"); -static const u8 sText_PkmnMoveIsDisabled[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE}\nis disabled!\p"); -static const u8 sText_PkmnCantUseMoveTorment[] = _("{B_ATK_NAME_WITH_PREFIX} can't use the same\nmove in a row due to the Torment!\p"); -static const u8 sText_PkmnCantUseMoveTaunt[] = _("{B_ATK_NAME_WITH_PREFIX} can't use\n{B_CURRENT_MOVE} after the Taunt!\p"); -static const u8 sText_PkmnCantUseMoveSealed[] = _("{B_ATK_NAME_WITH_PREFIX} can't use the\nsealed {B_CURRENT_MOVE}!\p"); -static const u8 sText_PkmnCantUseMoveThroatChop[] = _("{B_ATK_NAME_WITH_PREFIX} can't use\n{B_CURRENT_MOVE} due to Throat Chop!\p"); -static const u8 sText_PkmnMadeItRain[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade it rain!"); -static const u8 sText_PkmnRaisedSpeed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nraised its SPEED!"); -static const u8 sText_PkmnProtectedBy[] = _("{B_DEF_NAME_WITH_PREFIX} was protected\nby {B_DEF_ABILITY}!"); -static const u8 sText_PkmnPreventsUsage[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents {B_ATK_NAME_WITH_PREFIX}\lfrom using {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnRestoredHPUsing[] = _("{B_DEF_NAME_WITH_PREFIX} restored HP\nusing its {B_DEF_ABILITY}!"); -static const u8 sText_PkmnsXMadeYUseless[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} useless!"); -static const u8 sText_PkmnChangedTypeWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade it the {B_BUFF1} type!"); -static const u8 sText_PkmnPreventsParalysisWith[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents paralysis!"); -static const u8 sText_PkmnPreventsRomanceWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents romance!"); -static const u8 sText_PkmnPreventsPoisoningWith[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents poisoning!"); -static const u8 sText_PkmnPreventsConfusionWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevents confusion!"); -static const u8 sText_PkmnRaisedFirePowerWith[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nraised its FIRE power!"); -static const u8 sText_PkmnAnchorsItselfWith[] = _("{B_DEF_NAME_WITH_PREFIX} anchors\nitself with {B_DEF_ABILITY}!"); -static const u8 sText_PkmnCutsAttackWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncuts {B_DEF_NAME_WITH_PREFIX}'s attack!"); -static const u8 sText_PkmnPreventsStatLossWith[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents stat loss!"); -static const u8 sText_PkmnHurtsWith[] = _("{B_ATK_NAME_WITH_PREFIX} was hurt by\n{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}!"); -static const u8 sText_PkmnTraced[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} TRACED\n{B_BUFF1}'s {B_BUFF2}!"); -static const u8 sText_PkmnsXPreventsBurns[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY}\nprevents burns!"); -static const u8 sText_PkmnsXBlocksY[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnsXBlocksY2[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nblocks {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnsXRestoredHPALittle2[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nrestored its HP a little!"); -static const u8 sText_PkmnsXWhippedUpSandstorm[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nwhipped up a sandstorm!"); -static const u8 sText_PkmnsXIntensifiedSun[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nintensified the sun's rays!"); -static const u8 sText_PkmnsXPreventsYLoss[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents {B_BUFF1} loss!"); -static const u8 sText_PkmnsXInfatuatedY[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\ninfatuated {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnsXMadeYIneffective[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nmade {B_CURRENT_MOVE} ineffective!"); -static const u8 sText_PkmnsXCuredYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); -static const u8 sText_ItSuckedLiquidOoze[] = _("It sucked up the\nliquid ooze!"); -static const u8 sText_PkmnTransformed[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} transformed!"); -static const u8 sText_PkmnsXTookAttack[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\ntook the attack!"); -const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1}'s {B_LAST_ABILITY}\nprevents switching!\p"); -static const u8 sText_PreventedFromWorking[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nprevented {B_SCR_ACTIVE_NAME_WITH_PREFIX}'s\l{B_BUFF1} from working!"); -static const u8 sText_PkmnsXMadeItIneffective[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nmade it ineffective!"); -static const u8 sText_PkmnsXPreventsFlinching[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY}\nprevents flinching!"); -static const u8 sText_PkmnsXPreventsYsZ[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY} from working!"); -static const u8 sText_PkmnsAbilityPreventsAbility[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nprevents {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY} from working!"); -static const u8 sText_PkmnsXCuredItsYProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\ncured its {B_BUFF1} problem!"); -static const u8 sText_PkmnsXHadNoEffectOnY[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nhad no effect on {B_EFF_NAME_WITH_PREFIX}!"); + +const u8 gText_PkmnShroudedInMist[] = _("{B_ATK_TEAM1} team became shrouded in mist!"); +const u8 gText_PkmnGettingPumped[] = _("{B_DEF_NAME_WITH_PREFIX} is getting pumped!"); +const u8 gText_PkmnsXPreventsSwitching[] = _("{B_BUFF1} is preventing switching out with its {B_LAST_ABILITY} Ability!\p"); const u8 gText_StatSharply[] = _("sharply "); const u8 gText_StatRose[] = _("rose!"); -static const u8 sText_StatHarshly[] = _("harshly "); -static const u8 sText_StatFell[] = _("fell!"); -static const u8 sText_AttackersStatRose[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -const u8 gText_DefendersStatRose[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_UsingItemTheStatOfPkmnRose[] = _("Using {B_LAST_ITEM}, the {B_BUFF1}\nof {B_SCR_ACTIVE_NAME_WITH_PREFIX} {B_BUFF2}"); -static const u8 sText_AttackersStatFell[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_DefendersStatFell[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\n{B_BUFF2}"); -static const u8 sText_StatsWontIncrease2[] = _("{B_ATK_NAME_WITH_PREFIX}'s stats won't\ngo any higher!"); -static const u8 sText_StatsWontDecrease2[] = _("{B_DEF_NAME_WITH_PREFIX}'s stats won't\ngo any lower!"); -static const u8 sText_CriticalHit[] = _("A critical hit!"); -static const u8 sText_OneHitKO[] = _("It's a one-hit KO!"); -static const u8 sText_123Poof[] = _("{PAUSE 32}1, {PAUSE 15}2, and{PAUSE 15}… {PAUSE 15}… {PAUSE 15}… {PAUSE 15}{PLAY_SE SE_BALL_BOUNCE_1}Poof!\p"); -static const u8 sText_AndEllipsis[] = _("And…\p"); -static const u8 sText_HMMovesCantBeForgotten[] = _("HM moves can't be\nforgotten now.\p"); -static const u8 sText_NotVeryEffective[] = _("It's not very effective…"); -static const u8 sText_SuperEffective[] = _("It's super effective!"); -static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}Got away safely!\p"); -static const u8 sText_PkmnFledUsingIts[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing its {B_LAST_ITEM}!\p"); -static const u8 sText_PkmnFledUsing[] = _("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled\nusing {B_ATK_ABILITY}!\p"); -static const u8 sText_WildPkmnFled[] = _("{PLAY_SE SE_FLEE}Wild {B_BUFF1} fled!"); -static const u8 sText_PlayerDefeatedLinkTrainer[] = _("Player defeated\n{B_LINK_OPPONENT1_NAME}!"); -static const u8 sText_TwoLinkTrainersDefeated[] = _("Player beat {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("Player lost against\n{B_LINK_OPPONENT1_NAME}!"); -static const u8 sText_PlayerLostToTwo[] = _("Player lost to {B_LINK_OPPONENT1_NAME}\nand {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME}!"); -static const u8 sText_PlayerBattledToDrawVsTwo[] = _("Player battled to a draw against\n{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); -static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} fled!"); -static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and\n{B_LINK_OPPONENT2_NAME} fled!"); -static const u8 sText_NoRunningFromTrainers[] = _("No! There's no running\nfrom a TRAINER battle!\p"); -static const u8 sText_CantEscape[] = _("Can't escape!\p"); -static const u8 sText_DontLeaveBirch[] = _("PROF. BIRCH: Don't leave me like this!\p"); -static const u8 sText_ButNothingHappened[] = _("But nothing happened!"); -static const u8 sText_ButItFailed[] = _("But it failed!"); -static const u8 sText_ItHurtConfusion[] = _("It hurt itself in its\nconfusion!"); -static const u8 sText_MirrorMoveFailed[] = _("The Mirror Move failed!"); -static const u8 sText_StartedToRain[] = _("It started to rain!"); -static const u8 sText_DownpourStarted[] = _("A downpour started!"); // corresponds to DownpourText in pokegold and pokecrystal and is used by Rain Dance in GSC -static const u8 sText_RainContinues[] = _("Rain continues to fall."); -static const u8 sText_DownpourContinues[] = _("The downpour continues."); // unused -static const u8 sText_RainStopped[] = _("The rain stopped."); -static const u8 sText_SandstormBrewed[] = _("A sandstorm brewed!"); -static const u8 sText_SandstormRages[] = _("The sandstorm rages."); -static const u8 sText_SandstormSubsided[] = _("The sandstorm subsided."); -static const u8 sText_SunlightGotBright[] = _("The sunlight got bright!"); -static const u8 sText_SunlightStrong[] = _("The sunlight is strong."); -static const u8 sText_SunlightFaded[] = _("The sunlight faded."); -static const u8 sText_StartedHail[] = _("It started to hail!"); -static const u8 sText_HailContinues[] = _("Hail continues to fall."); -static const u8 sText_HailStopped[] = _("The hail stopped."); -static const u8 sText_StartedSnow[] = _("It started to snow!"); -static const u8 sText_SnowContinues[] = _("Snow continues to fall."); -static const u8 sText_SnowStopped[] = _("The snow stopped."); -static const u8 sText_FogCreptUp[] = _("Fog crept up as thick as soup!"); -static const u8 sText_FogIsDeep[] = _("The fog is deep…"); -static const u8 sText_FogLifted[] = _("The fog lifted."); -static const u8 sText_FailedToSpitUp[] = _("But it failed to spit up\na thing!"); -static const u8 sText_FailedToSwallow[] = _("But it failed to swallow\na thing!"); -static const u8 sText_WindBecameHeatWave[] = _("The wind turned into a\nHEAT WAVE!"); -static const u8 sText_StatChangesGone[] = _("All stat changes were\neliminated!"); -static const u8 sText_CoinsScattered[] = _("Coins scattered everywhere!"); -static const u8 sText_TooWeakForSubstitute[] = _("It was too weak to make\na SUBSTITUTE!"); -static const u8 sText_SharedPain[] = _("The battlers shared\ntheir pain!"); -static const u8 sText_BellChimed[] = _("A bell chimed!"); -static const u8 sText_FaintInThree[] = _("All affected POKéMON will\nfaint in three turns!"); -static const u8 sText_NoPPLeft[] = _("There's no PP left for\nthis move!\p"); -static const u8 sText_ButNoPPLeft[] = _("But there was no PP left\nfor the move!"); -static const u8 sText_PkmnIgnoresAsleep[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders while asleep!"); -static const u8 sText_PkmnIgnoredOrders[] = _("{B_ATK_NAME_WITH_PREFIX} ignored\norders!"); -static const u8 sText_PkmnBeganToNap[] = _("{B_ATK_NAME_WITH_PREFIX} began to nap!"); -static const u8 sText_PkmnLoafing[] = _("{B_ATK_NAME_WITH_PREFIX} is\nloafing around!"); -static const u8 sText_PkmnWontObey[] = _("{B_ATK_NAME_WITH_PREFIX} won't\nobey!"); -static const u8 sText_PkmnTurnedAway[] = _("{B_ATK_NAME_WITH_PREFIX} turned away!"); -static const u8 sText_PkmnPretendNotNotice[] = _("{B_ATK_NAME_WITH_PREFIX} pretended\nnot to notice!"); -static const u8 sText_EnemyAboutToSwitchPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} is\nabout to use {B_BUFF2}.\pWill {B_PLAYER_NAME} change\nPOKéMON?"); -static const u8 sText_PkmnLearnedMove2[] = _("{B_ATK_NAME_WITH_PREFIX} learned\n{B_BUFF1}!"); -static const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("Player defeated\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!\p"); -static const u8 sText_CreptCloser[] = _("{B_PLAYER_NAME} crept closer to\n{B_OPPONENT_MON1_NAME}!"); -static const u8 sText_CantGetCloser[] = _("{B_PLAYER_NAME} can't get any closer!"); -static const u8 sText_PkmnWatchingCarefully[] = _("{B_OPPONENT_MON1_NAME} is watching\ncarefully!"); -static const u8 sText_PkmnCuriousAboutX[] = _("{B_OPPONENT_MON1_NAME} is curious about\nthe {B_BUFF1}!"); -static const u8 sText_PkmnEnthralledByX[] = _("{B_OPPONENT_MON1_NAME} is enthralled by\nthe {B_BUFF1}!"); -static const u8 sText_PkmnIgnoredX[] = _("{B_OPPONENT_MON1_NAME} completely ignored\nthe {B_BUFF1}!"); -static const u8 sText_ThrewPokeblockAtPkmn[] = _("{B_PLAYER_NAME} threw a {POKEBLOCK}\nat the {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_OutOfSafariBalls[] = _("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of\nSAFARI BALLS! Game over!\p"); +const u8 gText_StatFell[] = _("fell!"); +const u8 gText_DefendersStatRose[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1} {B_BUFF2}"); +static const u8 sText_GotAwaySafely[] = _("{PLAY_SE SE_FLEE}You got away safely!\p"); +static const u8 sText_PlayerDefeatedLinkTrainer[] = _("You defeated {B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_TwoLinkTrainersDefeated[] = _("You defeated {B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_PlayerLostAgainstLinkTrainer[] = _("You lost against {B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_PlayerLostToTwo[] = _("You lost to {B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_PlayerBattledToDrawLinkTrainer[] = _("You battled to a draw against {B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_PlayerBattledToDrawVsTwo[] = _("You battled to a draw against {B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_WildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} fled!"); //not in gen 5+, replaced with match was forfeited text +static const u8 sText_TwoWildFled[] = _("{PLAY_SE SE_FLEE}{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME} fled!"); //not in gen 5+, replaced with match was forfeited text +static const u8 sText_PlayerDefeatedLinkTrainerTrainer1[] = _("You defeated {B_TRAINER1_NAME_WITH_CLASS}!\p"); static const u8 sText_OpponentMon1Appeared[] = _("{B_OPPONENT_MON1_NAME} appeared!\p"); -static const u8 sText_WildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); -static const u8 sText_LegendaryPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!\p"); -static const u8 sText_WildPkmnAppearedPause[] = _("Wild {B_OPPONENT_MON1_NAME} appeared!{PAUSE 127}"); -static const u8 sText_TwoWildPkmnAppeared[] = _("Wild {B_OPPONENT_MON1_NAME} and\n{B_OPPONENT_MON2_NAME} appeared!\p"); -static const u8 sText_Trainer1WantsToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwould like to battle!\p"); -static const u8 sText_LinkTrainerWantsToBattle[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!"); -static const u8 sText_TwoLinkTrainersWantToBattle[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!"); -static const u8 sText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!"); -static const u8 sText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); -static const u8 sText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_BUFF1}!"); -static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME}!"); -static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); -static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_LINK_OPPONENT_MON1_NAME}!\n{B_LINK_OPPONENT2_NAME} sent out {B_LINK_OPPONENT_MON2_NAME}!"); -static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} sent out\n{B_BUFF1}!"); -static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} sent out\n{B_BUFF1}!"); +static const u8 sText_WildPkmnAppeared[] = _("You encountered a wild {B_OPPONENT_MON1_NAME}!\p"); +static const u8 sText_LegendaryPkmnAppeared[] = _("You encountered a wild {B_OPPONENT_MON1_NAME}!\p"); +static const u8 sText_WildPkmnAppearedPause[] = _("You encountered a wild {B_OPPONENT_MON1_NAME}!{PAUSE 127}"); +static const u8 sText_TwoWildPkmnAppeared[] = _("Oh! A wild {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME} appeared!\p"); +static const u8 sText_Trainer1WantsToBattle[] = _("You are challenged by {B_TRAINER1_NAME_WITH_CLASS}!\p"); +static const u8 sText_LinkTrainerWantsToBattle[] = _("You are challenged by {B_LINK_OPPONENT1_NAME}!"); +static const u8 sText_TwoLinkTrainersWantToBattle[] = _("You are challenged by {B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!"); +static const u8 sText_Trainer1SentOutPkmn[] = _("{B_TRAINER1_NAME_WITH_CLASS} sent out {B_OPPONENT_MON1_NAME}!"); +static const u8 sText_Trainer1SentOutTwoPkmn[] = _("{B_TRAINER1_NAME_WITH_CLASS} sent out {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +static const u8 sText_Trainer1SentOutPkmn2[] = _("{B_TRAINER1_NAME_WITH_CLASS} sent out {B_BUFF1}!"); +static const u8 sText_LinkTrainerSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_OPPONENT_MON1_NAME}!"); +static const u8 sText_LinkTrainerSentOutTwoPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_OPPONENT_MON1_NAME} and {B_OPPONENT_MON2_NAME}!"); +static const u8 sText_TwoLinkTrainersSentOutPkmn[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_LINK_OPPONENT_MON1_NAME}! {B_LINK_OPPONENT2_NAME} sent out {B_LINK_OPPONENT_MON2_NAME}!"); +static const u8 sText_LinkTrainerSentOutPkmn2[] = _("{B_LINK_OPPONENT1_NAME} sent out {B_BUFF1}!"); +static const u8 sText_LinkTrainerMultiSentOutPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} sent out {B_BUFF1}!"); static const u8 sText_GoPkmn[] = _("Go! {B_PLAYER_MON1_NAME}!"); -static const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and\n{B_PLAYER_MON2_NAME}!"); +static const u8 sText_GoTwoPkmn[] = _("Go! {B_PLAYER_MON1_NAME} and {B_PLAYER_MON2_NAME}!"); static const u8 sText_GoPkmn2[] = _("Go! {B_BUFF1}!"); -static const u8 sText_DoItPkmn[] = _("Do it! {B_BUFF1}!"); +static const u8 sText_DoItPkmn[] = _("You're in charge, {B_BUFF1}!"); static const u8 sText_GoForItPkmn[] = _("Go for it, {B_BUFF1}!"); -static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your foe's weak!\nGet 'em, {B_BUFF1}!"); -static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}!\nGo! {B_LINK_PLAYER_MON1_NAME}!"); -static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that's enough!\nCome back!"); +static const u8 sText_JustALittleMorePkmn[] = _("Just a little more! Hang in there, {B_BUFF1}!"); //currently unused, will require code changes +static const u8 sText_YourFoesWeakGetEmPkmn[] = _("Your opponent's weak! Get 'em, {B_BUFF1}!"); +static const u8 sText_LinkPartnerSentOutPkmnGoPkmn[] = _("{B_LINK_PARTNER_NAME} sent out {B_LINK_PLAYER_MON2_NAME}! Go! {B_LINK_PLAYER_MON1_NAME}!"); +static const u8 sText_PkmnSwitchOut[] = _("{B_BUFF1}, switch out! Come back!"); //currently unused, I believe its used for when you switch on a pokemon in shift mode +static const u8 sText_PkmnThatsEnough[] = _("{B_BUFF1}, that's enough! Come back!"); static const u8 sText_PkmnComeBack[] = _("{B_BUFF1}, come back!"); -static const u8 sText_PkmnOkComeBack[] = _("{B_BUFF1}, OK!\nCome back!"); -static const u8 sText_PkmnGoodComeBack[] = _("{B_BUFF1}, good!\nCome back!"); -static const u8 sText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME}\nwithdrew {B_BUFF1}!"); -static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} withdrew\n{B_BUFF1}!"); -static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} withdrew\n{B_BUFF1}!"); -static const u8 sText_WildPkmnPrefix[] = _("Wild "); -static const u8 sText_FoePkmnPrefix[] = _("Foe "); +static const u8 sText_PkmnOkComeBack[] = _("OK, {B_BUFF1}! Come back!"); +static const u8 sText_PkmnGoodComeBack[] = _("Good job, {B_BUFF1}! Come back!"); +static const u8 sText_Trainer1WithdrewPkmn[] = _("{B_TRAINER1_NAME_WITH_CLASS} withdrew {B_BUFF1}!"); +static const u8 sText_LinkTrainer1WithdrewPkmn[] = _("{B_LINK_OPPONENT1_NAME} withdrew {B_BUFF1}!"); +static const u8 sText_LinkTrainer2WithdrewPkmn[] = _("{B_LINK_SCR_TRAINER_NAME} withdrew {B_BUFF1}!"); +static const u8 sText_WildPkmnPrefix[] = _("The wild "); +static const u8 sText_FoePkmnPrefix[] = _("The opposing "); +static const u8 sText_WildPkmnPrefixLower[] = _("the wild "); +static const u8 sText_FoePkmnPrefixLower[] = _("the opposing "); static const u8 sText_EmptyString8[] = _(""); -static const u8 sText_FoePkmnPrefix2[] = _("Foe"); +static const u8 sText_FoePkmnPrefix2[] = _("Opposing"); static const u8 sText_AllyPkmnPrefix[] = _("Ally"); -static const u8 sText_FoePkmnPrefix3[] = _("Foe"); +static const u8 sText_FoePkmnPrefix3[] = _("Opposing"); static const u8 sText_AllyPkmnPrefix2[] = _("Ally"); -static const u8 sText_FoePkmnPrefix4[] = _("Foe"); +static const u8 sText_FoePkmnPrefix4[] = _("Opposing"); static const u8 sText_AllyPkmnPrefix3[] = _("Ally"); -static const u8 sText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used\n{B_BUFF3}!"); +static const u8 sText_AttackerUsedX[] = _("{B_ATK_NAME_WITH_PREFIX} used {B_BUFF3}!"); static const u8 sText_ExclamationMark[] = _("!"); static const u8 sText_ExclamationMark2[] = _("!"); static const u8 sText_ExclamationMark3[] = _("!"); @@ -462,1105 +141,750 @@ const u8 *const gStatNamesTable[NUM_BATTLE_STATS] = sText_Speed, sText_SpAttack, sText_SpDefense, sText_Accuracy, sText_Evasiveness }; - -static const u8 sText_PokeblockWasTooSpicy[] = _("was too spicy!"); -static const u8 sText_PokeblockWasTooDry[] = _("was too dry!"); -static const u8 sText_PokeblockWasTooSweet[] = _("was too sweet!"); -static const u8 sText_PokeblockWasTooBitter[] = _("was too bitter!"); -static const u8 sText_PokeblockWasTooSour[] = _("was too sour!"); - const u8 *const gPokeblockWasTooXStringTable[FLAVOR_COUNT] = { - [FLAVOR_SPICY] = sText_PokeblockWasTooSpicy, - [FLAVOR_DRY] = sText_PokeblockWasTooDry, - [FLAVOR_SWEET] = sText_PokeblockWasTooSweet, - [FLAVOR_BITTER] = sText_PokeblockWasTooBitter, - [FLAVOR_SOUR] = sText_PokeblockWasTooSour + [FLAVOR_SPICY] = COMPOUND_STRING("was too spicy!"), + [FLAVOR_DRY] = COMPOUND_STRING("was too dry!"), + [FLAVOR_SWEET] = COMPOUND_STRING("was too sweet!"), + [FLAVOR_BITTER] = COMPOUND_STRING("was too bitter!"), + [FLAVOR_SOUR] = COMPOUND_STRING("was too sour!"), }; -static const u8 sText_PlayerUsedItem[] = _("You used\n{B_LAST_ITEM}!"); -static const u8 sText_WallyUsedItem[] = _("WALLY used\n{B_LAST_ITEM}!"); -static const u8 sText_Trainer1UsedItem[] = _("{B_ATK_TRAINER_CLASS} {B_ATK_TRAINER_NAME}\nused {B_LAST_ITEM}!"); -static const u8 sText_TrainerBlockedBall[] = _("The TRAINER blocked the BALL!"); -static const u8 sText_DontBeAThief[] = _("Don't be a thief!"); -static const u8 sText_ItDodgedBall[] = _("It dodged the thrown BALL!\nThis POKéMON can't be caught!"); -static const u8 sText_YouMissedPkmn[] = _("You missed the POKéMON!"); -static const u8 sText_PkmnBrokeFree[] = _("Oh, no!\nThe POKéMON broke free!"); -static const u8 sText_ItAppearedCaught[] = _("Aww!\nIt appeared to be caught!"); -static const u8 sText_AarghAlmostHadIt[] = _("Aargh!\nAlmost had it!"); -static const u8 sText_ShootSoClose[] = _("Shoot!\nIt was so close, too!"); -static const u8 sText_GotchaPkmnCaughtPlayer[] = _("Gotcha!\n{B_DEF_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"); -static const u8 sText_GotchaPkmnCaughtWally[] = _("Gotcha!\n{B_DEF_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"); -static const u8 sText_GiveNicknameCaptured[] = _("Give a nickname to the\ncaptured {B_DEF_NAME}?"); -static const u8 sText_PkmnSentToPC[] = _("{B_DEF_NAME} was sent to\n{B_PC_CREATOR_NAME} PC."); static const u8 sText_Someones[] = _("someone's"); -static const u8 sText_Lanettes[] = _("LANETTE's"); -static const u8 sText_PkmnDataAddedToDex[] = _("{B_DEF_NAME}'s data was\nadded to the POKéDEX.\p"); -static const u8 sText_ItIsRaining[] = _("It is raining."); -static const u8 sText_SandstormIsRaging[] = _("A sandstorm is raging."); -static const u8 sText_BoxIsFull[] = _("The BOX is full!\nYou can't catch any more!\p"); -static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); -static const u8 sText_BerrySuffix[] = _(" BERRY"); -static const u8 sText_PkmnsItemCuredParalysis[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured paralysis!"); -static const u8 sText_PkmnsItemCuredPoison[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured poison!"); -static const u8 sText_PkmnsItemHealedBurn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nhealed its burn!"); -static const u8 sText_PkmnsItemHealedFrostbite[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nhealed its frostbite!"); -static const u8 sText_PkmnsItemDefrostedIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ndefrosted it!"); -static const u8 sText_PkmnsItemWokeIt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nwoke it from its sleep!"); -static const u8 sText_PkmnsItemSnappedOut[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nsnapped it out of confusion!"); -static const u8 sText_PkmnsItemCuredProblem[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\ncured its {B_BUFF1} problem!"); -static const u8 sText_PkmnsItemNormalizedStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nnormalized its status!"); -static const u8 sText_PkmnsItemRestoredHealth[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored health!"); -static const u8 sText_PkmnsItemRestoredPP[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored {B_BUFF1}'s PP!"); -static const u8 sText_PkmnsItemRestoredStatus[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored its status!"); -static const u8 sText_PkmnsItemRestoredHPALittle[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nrestored its HP a little!"); -static const u8 sText_ItemAllowsOnlyYMove[] = _("{B_LAST_ITEM} allows the\nuse of only {B_CURRENT_MOVE}!\p"); -static const u8 sText_PkmnHungOnWithX[] = _("{B_DEF_NAME_WITH_PREFIX} hung on\nusing its {B_LAST_ITEM}!"); +static const u8 sText_Lanettes[] = _("LANETTE's"); //no decapitalize until it is everywhere +static const u8 sText_EnigmaBerry[] = _("ENIGMA BERRY"); //no decapitalize until it is everywhere +static const u8 sText_BerrySuffix[] = _(" BERRY"); //no decapitalize until it is everywhere const u8 gText_EmptyString3[] = _(""); -static const u8 sText_PlayedFluteCatchyTune[] = _("{B_PLAYER_NAME} played the {B_LAST_ITEM}.\pNow, that's a catchy tune!"); -static const u8 sText_PlayedThe[] = _("{B_PLAYER_NAME} played the\n{B_LAST_ITEM}."); -static const u8 sText_PkmnHearingFluteAwoke[] = _("The POKéMON hearing the FLUTE\nawoke!"); -static const u8 sText_YouThrowABallNowRight[] = _("You throw a BALL now, right?\nI… I'll do my best!"); -// early declaration of strings -static const u8 sText_PkmnIncapableOfPower[]; -static const u8 sText_GlintAppearsInEye[]; -static const u8 sText_PkmnGettingIntoPosition[]; -static const u8 sText_PkmnBeganGrowlingDeeply[]; -static const u8 sText_PkmnEagerForMore[]; -static const u8 sText_DefeatedOpponentByReferee[]; -static const u8 sText_LostToOpponentByReferee[]; -static const u8 sText_TiedOpponentByReferee[]; -static const u8 sText_QuestionForfeitMatch[]; -static const u8 sText_ForfeitedMatch[]; -static const u8 sText_Trainer1WinText[]; -static const u8 sText_Trainer2WinText[]; -static const u8 sText_TwoInGameTrainersDefeated[]; -static const u8 sText_Trainer2LoseText[]; +static const u8 sText_TwoInGameTrainersDefeated[] = _("You defeated {B_TRAINER1_NAME_WITH_CLASS} and {B_TRAINER2_NAME_WITH_CLASS}!\p"); // New battle strings. -static const u8 sText_EnduredViaSturdy[] = _("{B_DEF_NAME_WITH_PREFIX} endured\nthe hit using {B_DEF_ABILITY}!"); -static const u8 sText_PowerHerbActivation[] = _("{B_ATK_NAME_WITH_PREFIX} became fully charged\ndue to its {B_LAST_ITEM}!"); -static const u8 sText_HurtByItem[] = _("{B_ATK_NAME_WITH_PREFIX} was hurt\nby its {B_LAST_ITEM}!"); -static const u8 sText_BadlyPoisonedByItem[] = _("{B_EFF_NAME_WITH_PREFIX} was badly\npoisoned by the {B_LAST_ITEM}!"); -static const u8 sText_BurnedByItem[] = _("{B_EFF_NAME_WITH_PREFIX} was burned\nby the {B_LAST_ITEM}!"); -static const u8 sText_TargetAbilityActivates[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} activates!"); -static const u8 sText_GravityIntensified[] = _("Gravity intensified!"); -static const u8 sText_TargetIdentified[] = _("{B_DEF_NAME_WITH_PREFIX} was\nidentified!"); -static const u8 sText_TargetWokeUp[] = _("{B_DEF_NAME_WITH_PREFIX} woke up!"); -static const u8 sText_PkmnStoleAndAteItem[] = _("{B_ATK_NAME_WITH_PREFIX} stole and\nate {B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); -static const u8 sText_TailWindBlew[] = _("The tailwind blew from\nbehind {B_ATK_TEAM2} team!"); -static const u8 sText_PkmnWentBack[] = _("{B_ATK_NAME_WITH_PREFIX} went back\nto {B_ATK_TRAINER_NAME}!"); -static const u8 sText_PkmnCantUseItemsAnymore[] = _("{B_DEF_NAME_WITH_PREFIX} can't use\nitems anymore!"); -static const u8 sText_PkmnFlung[] = _("{B_ATK_NAME_WITH_PREFIX} flung its\n{B_LAST_ITEM}!"); -static const u8 sText_PkmnPreventedFromHealing[] = _("{B_DEF_NAME_WITH_PREFIX} was prevented\nfrom healing!"); -static const u8 sText_PkmnSwitchedAtkAndDef[] = _("{B_ATK_NAME_WITH_PREFIX} switched its\nAttack and Defense!"); -static const u8 sText_PkmnsAbilitySuppressed[] = _("{B_DEF_NAME_WITH_PREFIX}'s ability\nwas suppressed!"); -static const u8 sText_ShieldedFromCriticalHits[] = _("The {B_CURRENT_MOVE} shielded {B_ATK_TEAM2}\nteam from critical hits!"); -static const u8 sText_SwitchedAtkAndSpAtk[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Attack and\pSp. Atk with the target!"); -static const u8 sText_SwitchedDefAndSpDef[] = _("{B_ATK_NAME_WITH_PREFIX} switched all its\nchanges to its Defense and\pSp. Def with the target!"); -static const u8 sText_PkmnAcquiredAbility[] = _("{B_DEF_NAME_WITH_PREFIX} acquired\n{B_DEF_ABILITY}!"); -static const u8 sText_PoisonSpikesScattered[] = _("Poison Spikes were scattered all\naround {B_DEF_TEAM2} team's feet!"); -static const u8 sText_PkmnSwitchedStatChanges[] = _("{B_ATK_NAME_WITH_PREFIX} switched stat changes\nwith the target!"); -static const u8 sText_PkmnSurroundedWithVeilOfWater[] = _("{B_ATK_NAME_WITH_PREFIX} surrounded itself\nwith a veil of water!"); -static const u8 sText_PkmnLevitatedOnElectromagnetism[] = _("{B_ATK_NAME_WITH_PREFIX} levitated on\nelectromagnetism!"); -static const u8 sText_PkmnTwistedDimensions[] = _("{B_ATK_NAME_WITH_PREFIX} twisted\nthe dimensions!"); -static const u8 sText_DimensionsWereTwisted[] = _("The dimensions were\ntwisted!"); -static const u8 sText_PointedStonesFloat[] =_("Pointed stones float in the air\naround {B_DEF_TEAM2} team!"); -static const u8 sText_CloakedInMysticalMoonlight[] =_("It became cloaked in mystical\nmoonlight!"); -static const u8 sText_TrappedBySwirlingMagma[] =_("{B_DEF_NAME_WITH_PREFIX} became\ntrapped by swirling magma!"); -static const u8 sText_VanishedInstantly[] =_("{B_ATK_NAME_WITH_PREFIX} vanished\ninstantly!"); -static const u8 sText_ProtectedTeam[] =_("{B_CURRENT_MOVE} protected\n{B_ATK_TEAM2} team!"); -static const u8 sText_SharedItsGuard[] =_("{B_ATK_NAME_WITH_PREFIX} shared its\nguard with the target!"); -static const u8 sText_SharedItsPower[] =_("{B_ATK_NAME_WITH_PREFIX} shared its\npower with the target!"); -static const u8 sText_SwapsDefAndSpDefOfAllPkmn[] =_("It created a bizarre area in which the\nDefense and Sp. Def stats are swapped!"); -static const u8 sText_BizzareAreaCreated[] =_("A bizarre area was created in which the\nDefense and Sp. Def stats are swapped!"); -static const u8 sText_BecameNimble[] =_("{B_ATK_NAME_WITH_PREFIX} became nimble!"); -static const u8 sText_HurledIntoTheAir[] =_("{B_DEF_NAME_WITH_PREFIX} was hurled\ninto the air!"); -static const u8 sText_HeldItemsLoseEffects[] =_("It created a bizarre area in which\nPokémon's held items lose their effects!"); -static const u8 sText_BizarreArenaCreated[] =_("A bizarre area was created!\nHold items lost their effects!"); -static const u8 sText_FellStraightDown[] =_("{B_DEF_NAME_WITH_PREFIX} fell\nstraight down!"); -static const u8 sText_TargetChangedType[] =_("{B_DEF_NAME_WITH_PREFIX} transformed\ninto the {B_BUFF1} type!"); -static const u8 sText_PkmnAcquiredSimple[] =_("{B_DEF_NAME_WITH_PREFIX} acquired\nSimple!"); -static const u8 sText_KindOffer[] =_("{B_DEF_NAME_WITH_PREFIX}\ntook the kind offer!"); -static const u8 sText_ResetsTargetsStatLevels[] =_("{B_DEF_NAME_WITH_PREFIX}'s stat changes\nwere removed!"); -static const u8 sText_AllySwitchPosition[] =_("{B_ATK_NAME_WITH_PREFIX} and\n{B_SCR_ACTIVE_NAME_WITH_PREFIX} switched places!"); -static const u8 sText_RestoreTargetsHealth[] =_("{B_DEF_NAME_WITH_PREFIX}'s HP was restored!"); -static const u8 sText_TookPkmnIntoTheSky[] =_("{B_ATK_NAME_WITH_PREFIX} took\n{B_DEF_NAME_WITH_PREFIX} into the sky!"); -static const u8 sText_FreedFromSkyDrop[] =_("{B_DEF_NAME_WITH_PREFIX} was freed\nfrom the Sky Drop!"); -static const u8 sText_PostponeTargetMove[] =_("{B_DEF_NAME_WITH_PREFIX}'s move\nwas postponed!"); -static const u8 sText_ReflectTargetsType[] =_("{B_ATK_NAME_WITH_PREFIX}'s type\nchanged to match the {B_DEF_NAME_WITH_PREFIX}'s!"); -static const u8 sText_TransferHeldItem[] =_("{B_DEF_NAME_WITH_PREFIX} received {B_LAST_ITEM}\nfrom {B_ATK_NAME_WITH_PREFIX}"); -static const u8 sText_EmbargoEnds[] = _("{B_ATK_NAME_WITH_PREFIX} can\nuse items again!"); -static const u8 sText_Electromagnetism[] = _("electromagnetism"); -static const u8 sText_BufferEnds[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1}\nwore off!"); -static const u8 sText_ThroatChopEnds[] = _("{B_ATK_NAME_WITH_PREFIX} can\nuse sound-based moves again!"); -static const u8 sText_TelekinesisEnds[] = _("{B_ATK_NAME_WITH_PREFIX} was freed\nfrom the telekinesis!"); -static const u8 sText_TailwindEnds[] = _("{B_ATK_TEAM1} team's tailwind\npetered out!"); -static const u8 sText_LuckyChantEnds[] = _("{B_ATK_TEAM1} team's Lucky Chant\nwore off!"); -static const u8 sText_TrickRoomEnds[] = _("The twisted dimensions returned to\nnormal!"); -static const u8 sText_WonderRoomEnds[] = _("Wonder Room wore off, and Defense\nand Sp. Def stats returned to normal!"); -static const u8 sText_MagicRoomEnds[] = _("Magic Room wore off, and held items'\neffects returned to normal!"); -static const u8 sText_MudSportEnds[] = _("The effects of Mud Sport have faded."); -static const u8 sText_WaterSportEnds[] = _("The effects of Water Sport have faded."); -static const u8 sText_GravityEnds[] = _("Gravity returned to normal!"); -static const u8 sText_AquaRingHeal[] = _("Aqua Ring restored\n{B_ATK_NAME_WITH_PREFIX}'s HP!"); -static const u8 sText_TargetAbilityRaisedStat[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nraised its {B_BUFF1}!"); -static const u8 sText_TargetAbilityLoweredStat[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}\nlowered its {B_BUFF1}!"); -static const u8 sText_AttackerAbilityRaisedStat[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nraised its {B_BUFF1}!"); -static const u8 sText_ScriptingAbilityRaisedStat[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nraised its {B_BUFF1}!"); -static const u8 sText_ElectricTerrainEnds[] = _("The electricity disappeared\nfrom the battlefield."); -static const u8 sText_MistyTerrainEnds[] = _("The mist disappeared\nfrom the battlefield."); -static const u8 sText_PsychicTerrainEnds[] = _("The weirdness disappeared\nfrom the battlefield."); -static const u8 sText_GrassyTerrainEnds[] = _("The grass disappeared\nfrom the battlefield."); -static const u8 sText_TargetsStatWasMaxedOut[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} maxed\nits {B_BUFF1}!"); -static const u8 sText_PoisonHealHpUp[] = _("The poisoning healed {B_ATK_NAME_WITH_PREFIX}\na little bit!"); -static const u8 sText_BadDreamsDmg[] = _("{B_DEF_NAME_WITH_PREFIX} is tormented!"); -static const u8 sText_MoldBreakerEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} breaks the mold!"); -static const u8 sText_TeravoltEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is radiating\na bursting aura!"); -static const u8 sText_TurboblazeEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is radiating\na blazing aura!"); -static const u8 sText_SlowStartEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} can't get it going!"); -static const u8 sText_SlowStartEnd[] = _("{B_ATK_NAME_WITH_PREFIX} finally got\nits act together!"); -static const u8 sText_SolarPowerHpDrop[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\ntakes its toll!"); -static const u8 sText_AftermathDmg[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt!"); -static const u8 sText_AnticipationActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} shuddered\nin anticipation!"); -static const u8 sText_ForewarnActivates[] = _("{B_SCR_ACTIVE_ABILITY} alerted {B_SCR_ACTIVE_NAME_WITH_PREFIX}\nto {B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}!"); -static const u8 sText_IceBodyHpGain[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY}\nhealed it a little bit!"); -static const u8 sText_SnowWarningHail[] = _("It started to hail!"); -static const u8 sText_SnowWarningSnow[] = _("It started to snow!"); -static const u8 sText_FriskActivates[] = _("{B_ATK_NAME_WITH_PREFIX} frisked {B_DEF_NAME_WITH_PREFIX} and\nfound its {B_LAST_ITEM}!"); -static const u8 sText_UnnerveEnters[] = _("The opposing team is too nervous\nto eat Berries!"); -static const u8 sText_HarvestBerry[] = _("{B_ATK_NAME_WITH_PREFIX} harvested\nits {B_LAST_ITEM}!"); -static const u8 sText_LastAbilityRaisedBuff1[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}\nraised its {B_BUFF1}!"); -static const u8 sText_MagicBounceActivates[] = _("The {B_DEF_NAME_WITH_PREFIX} bounced the\n{B_ATK_NAME_WITH_PREFIX} back!"); -static const u8 sText_ProteanTypeChange[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} transformed\nit into the {B_BUFF1} type!"); -static const u8 sText_SymbiosisItemPass[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} passed its {B_LAST_ITEM}\nto {B_ATK_NAME_WITH_PREFIX} through {B_LAST_ABILITY}!"); -static const u8 sText_StealthRockDmg[] = _("Pointed stones dug into\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}!"); -static const u8 sText_ToxicSpikesAbsorbed[] = _("The poison spikes disappeared\nfrom around {B_DEF_TEAM2} team's feet!"); -static const u8 sText_ToxicSpikesPoisoned[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} was poisoned!"); -static const u8 sText_StickyWebSwitchIn[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} was\ncaught in a Sticky Web!"); -static const u8 sText_HealingWishCameTrue[] = _("The healing wish came true\nfor {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_HealingWishHealed[] = _("{B_ATK_NAME_WITH_PREFIX} regained health!"); -static const u8 sText_LunarDanceCameTrue[] = _("{B_ATK_NAME_WITH_PREFIX} became cloaked\nin mystical moonlight!"); -static const u8 sText_CursedBodyDisabled[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} was disabled\nby {B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY}!"); -static const u8 sText_AttackerAquiredAbility[] = _("{B_ATK_NAME_WITH_PREFIX} acquired\n{B_LAST_ABILITY}!"); -static const u8 sText_TargetStatWontGoHigher[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1}\nwon't go higher!"); -static const u8 sText_PkmnMoveBouncedViaAbility[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE} was\nbounced back by {B_DEF_NAME_WITH_PREFIX}'s\l{B_DEF_ABILITY}!"); -static const u8 sText_ImposterTransform[] = _("{B_ATK_NAME_WITH_PREFIX} transformed into\n{B_DEF_NAME_WITH_PREFIX} using {B_LAST_ABILITY}!"); -static const u8 sText_NotDoneYet[] = _("This move effect is not done yet!\p"); -static const u8 sText_PkmnBlewAwayToxicSpikes[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nToxic Spikes!"); -static const u8 sText_PkmnBlewAwayStickyWeb[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nSticky Web!"); -static const u8 sText_PkmnBlewAwayStealthRock[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nStealth Rock!"); -static const u8 sText_SpikesDisappearedFromTeam[] = _("The spikes disappeared from\nthe ground around {B_ATK_TEAM2} team!"); -static const u8 sText_ToxicSpikesDisappearedFromTeam[] = _("The poison spikes disappeared from\nthe ground around {B_ATK_TEAM2} team!"); -static const u8 sText_StealthRockDisappearedFromTeam[] = _("The pointed stones disappeared\nfrom around {B_ATK_TEAM2} team!"); -static const u8 sText_StickyWebDisappearedFromTeam[] = _("The sticky web has disappeared from\nthe ground around {B_ATK_TEAM2} team!"); -static const u8 sText_StickyWebUsed[] = _("A sticky web spreads out on the\nground around {B_DEF_TEAM2} team!"); -static const u8 sText_QuashSuccess[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nmove was postponed!"); -static const u8 sText_IonDelugeOn[] = _("A deluge of ions showers\nthe battlefield!"); -static const u8 sText_TopsyTurvySwitchedStats[] = _("{B_DEF_NAME_WITH_PREFIX}'s stat changes were\nall reversed!"); -static const u8 sText_TerrainBecomesMisty[] = _("Mist swirled about\nthe battlefield!"); -static const u8 sText_TerrainBecomesGrassy[] = _("Grass grew to cover\nthe battlefield!"); -static const u8 sText_TerrainBecomesElectric[] = _("An electric current runs across\nthe battlefield!"); -static const u8 sText_TerrainBecomesPsychic[] = _("The battlefield got weird!"); -static const u8 sText_TargetElectrified[] = _("{B_DEF_NAME_WITH_PREFIX}'s moves\nhave been electrified!"); -static const u8 sText_AssaultVestDoesntAllow[] = _("{B_LAST_ITEM}'s effects prevent\nstatus moves from being used!\p"); -static const u8 sText_GravityPreventsUsage[] = _("{B_ATK_NAME_WITH_PREFIX} can't use {B_CURRENT_MOVE}\nbecause of gravity!\p"); -static const u8 sText_HealBlockPreventsUsage[] = _("{B_ATK_NAME_WITH_PREFIX} was\nprevented from healing!\p"); -static const u8 sText_MegaEvoReacting[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ITEM} is\nreacting to {B_ATK_TRAINER_NAME}'s Mega Ring!"); -static const u8 sText_FerventWishReached[] = _("{B_ATK_TRAINER_NAME}'s fervent wish\nhas reached {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_MegaEvoEvolved[] = _("{B_ATK_NAME_WITH_PREFIX} has Mega Evolved into\nMega {B_BUFF1}!"); -static const u8 sText_drastically[] = _("drastically "); -static const u8 sText_severely[] = _("severely "); -static const u8 sText_Infestation[] = _("{B_DEF_NAME_WITH_PREFIX} has been afflicted\nwith an infestation by {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_NoEffectOnTarget[] = _("It had no effect\non {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_BurstingFlames[] = _("The bursting flames\nhit {B_SCR_ACTIVE_NAME_WITH_PREFIX}!"); -static const u8 sText_BestowItemGiving[] = _("{B_DEF_NAME_WITH_PREFIX} received {B_LAST_ITEM}\nfrom {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_ThirdTypeAdded[] = _("{B_BUFF1} type was added to\n{B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_FellForFeint[] = _("{B_DEF_NAME_WITH_PREFIX} fell for\nthe feint!"); -static const u8 sText_PokemonCannotUseMove[] = _("{B_ATK_NAME_WITH_PREFIX} cannot\nuse {B_CURRENT_MOVE}!"); -static const u8 sText_CoveredInPowder[] = _("{B_DEF_NAME_WITH_PREFIX} is covered in powder!"); -static const u8 sText_PowderExplodes[] = _("When the flame touched the powder\non the Pokémon, it exploded!"); -static const u8 sText_BelchCantUse[] = _("Belch cannot be used!\p"); -static const u8 sText_SpectralThiefSteal[] = _("{B_ATK_NAME_WITH_PREFIX} stole the target's\nboosted stats!"); -static const u8 sText_GravityGrounding[] = _("{B_DEF_NAME_WITH_PREFIX} can't stay airborne\nbecause of gravity!"); -static const u8 sText_MistyTerrainPreventsStatus[] = _("{B_DEF_NAME_WITH_PREFIX} surrounds itself\nwith a protective mist!"); -static const u8 sText_GrassyTerrainHeals[] = _("{B_ATK_NAME_WITH_PREFIX} is healed\nby the grassy terrain!"); -static const u8 sText_ElectricTerrainPreventsSleep[] = _("{B_DEF_NAME_WITH_PREFIX} surrounds itself\nwith electrified terrain!"); -static const u8 sText_PsychicTerrainPreventsPriority[] = _("{B_DEF_NAME_WITH_PREFIX} surrounds itself\nwith psychic terrain!"); -static const u8 sText_SafetyGogglesProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is not affected\nthanks to its {B_LAST_ITEM}!"); -static const u8 sText_FlowerVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrounded itself\nwith a veil of petals!"); -static const u8 sText_SweetVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} surrounded itself\nwith a veil of sweetness!"); -static const u8 sText_AromaVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is protected\nby an aromatic veil!"); -static const u8 sText_CelebrateMessage[] = _("Congratulations, {B_PLAYER_NAME}!"); -static const u8 sText_UsedInstructedMove[] = _("{B_ATK_NAME_WITH_PREFIX} used the move\ninstructed by {B_BUFF1}!"); -static const u8 sText_LaserFocusMessage[] = _("{B_ATK_NAME_WITH_PREFIX}\nconcentrated intensely!"); -static const u8 sText_GemActivates[] = _("{B_LAST_ITEM} strengthened\n{B_ATK_NAME_WITH_PREFIX}'s power!"); -static const u8 sText_BerryDmgReducing[] = _("{B_LAST_ITEM} weakened the damage\nto {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_TargetAteItem[] = _("{B_DEF_NAME_WITH_PREFIX} ate its {B_LAST_ITEM}!"); -static const u8 sText_AirBalloonFloat[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} floats in the air\nwith its {B_LAST_ITEM}!"); -static const u8 sText_AirBalloonPop[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} popped!"); -static const u8 sText_IncinerateBurn[] = _("{B_EFF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}\nwas burnt up!"); -static const u8 sText_BugBite[] = _("{B_ATK_NAME_WITH_PREFIX} stole and ate\n{B_EFF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); -static const u8 sText_IllusionWoreOff[] = _("{B_DEF_NAME_WITH_PREFIX}'s Illusion wore off!"); -static const u8 sText_AttackerCuredTargetStatus[] = _("{B_ATK_NAME_WITH_PREFIX} cured\n{B_DEF_NAME_WITH_PREFIX}'s problem!"); -static const u8 sText_AttackerLostFireType[] = _("{B_ATK_NAME_WITH_PREFIX} burned itself out!"); -static const u8 sText_HealerCure[] = _("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}\ncured {B_SCR_ACTIVE_NAME_WITH_PREFIX}'s problem!"); -static const u8 sText_ReceiverAbilityTakeOver[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nwas taken over!"); -static const u8 sText_PkmnAbsorbingPower[] = _("{B_ATK_NAME_WITH_PREFIX} is absorbing power!"); -static const u8 sText_NoOneWillBeAbleToRun[] = _("No one will be able to run away\nduring the next turn!"); -static const u8 sText_DestinyKnotActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} fell in love\nfrom the {B_LAST_ITEM}!"); -static const u8 sText_CloakedInAFreezingLight[] = _("{B_ATK_NAME_WITH_PREFIX} became cloaked\nin a freezing light!"); -static const u8 sText_ClearAmuletWontLowerStats[] = _("{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} prevents\nits stats from being lowered!"); -static const u8 sText_AuraFlaredToLife[] = _("{B_DEF_NAME_WITH_PREFIX}'s aura flared to life!"); -static const u8 sText_AirLockActivates[] = _("The effects of weather\ndisappeared."); -static const u8 sText_PressureActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is exerting its\npressure!"); -static const u8 sText_DarkAuraActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is radiating\na dark aura!"); -static const u8 sText_FairyAuraActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is radiating\na fairy aura!"); -static const u8 sText_AuraBreakActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} reversed all\nother Pokémon's auras!"); -static const u8 sText_ComatoseActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is drowsing!"); -static const u8 sText_ScreenCleanerActivates[] = _("All screens on the field were\ncleansed!"); -static const u8 sText_FetchedPokeBall[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} found\na {B_LAST_ITEM}!"); -static const u8 sText_BattlerAbilityRaisedStat[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nraised its {B_BUFF1}!"); -static const u8 sText_ASandstormKickedUp[] = _("A sandstorm kicked up!"); -static const u8 sText_PkmnsWillPerishIn3Turns[] = _("Both Pokémon will perish\nin three turns!"); -static const u8 sText_AbilityRaisedStatDrastically[] = _("{B_DEF_ABILITY} raised {B_DEF_NAME_WITH_PREFIX}'s\n{B_BUFF1} drastically!"); -static const u8 sText_AsOneEnters[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} has two Abilities!"); -static const u8 sText_PkmnMadeShellGleam[] = _("{B_DEF_NAME_WITH_PREFIX} made its shell gleam!\nIt's distorting type matchups!"); -static const u8 sText_CuriousMedicineEnters[] = _("{B_EFF_NAME_WITH_PREFIX}'s\nstat changes were reset!"); -static const u8 sText_CanActFaster[] = _("{B_ATK_NAME_WITH_PREFIX} can act faster,\nthanks to {B_BUFF1}!"); -static const u8 sText_MicleBerryActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted the accuracy of its\nnext move using {B_LAST_ITEM}!"); -static const u8 sText_PkmnShookOffTheTaunt[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} shook off\nthe taunt!"); -static const u8 sText_PkmnGotOverItsInfatuation[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} got over\nits infatuation!"); -static const u8 sText_ZPowerSurrounds[] = _("{B_ATK_NAME_WITH_PREFIX} surrounds\nitself with its Z-Power!"); -static const u8 sText_ZPowerUnleashed[] = _("{B_ATK_NAME_WITH_PREFIX} unleashes\nits full-force Z-Move!"); -static const u8 sText_ZMoveResetsStats[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} returned its\ndecreased stats to normal using\lits Z-Power!"); -static const u8 sText_ZMoveAllStatsUp[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted all\nof its stats using its Z-Power!"); -static const u8 sText_ZMoveBoostCrit[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted its\ncritical-hit ratio using its Z-Power!"); -static const u8 sText_ZMoveRestoreHp[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} restored its\nHP using its Z-Power!"); -static const u8 sText_ZMoveStatUp[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} boosted\nits stats using its Z-Power!"); -static const u8 sText_ZMoveHpSwitchInTrap[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s HP was restored by the Z-Power!"); -static const u8 sText_TerrainReturnedToNormal[] = _("The terrain returned to\nnormal!"); -static const u8 sText_ItemCannotBeRemoved[] = _("{B_ATK_NAME_WITH_PREFIX}'s item cannot be removed!"); -static const u8 sText_StickyBarbTransfer[] = _("The {B_LAST_ITEM} attached itself to\n{B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnBurnHealed[] = _("{B_DEF_NAME_WITH_PREFIX}'s\nburn was healed."); -static const u8 sText_RedCardActivate[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} held up its {B_LAST_ITEM}\nagainst {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_EjectButtonActivate[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is switched\nout with the {B_LAST_ITEM}!"); -static const u8 sText_AttackerGotOverInfatuation[] =_("{B_ATK_NAME_WITH_PREFIX} got over\nits infatuation!"); -static const u8 sText_TormentedNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is\ntormented no more!"); -static const u8 sText_HealBlockedNoMore[] = _("{B_ATK_NAME_WITH_PREFIX} is cured of\nits heal block!"); -static const u8 sText_AttackerBecameFullyCharged[] = _("{B_ATK_NAME_WITH_PREFIX} became fully charged\ndue to its bond with its trainer!\p"); -static const u8 sText_AttackerBecameAshSpecies[] = _("{B_ATK_NAME_WITH_PREFIX} became Ash-{B_BUFF1}!\p"); -static const u8 sText_ExtremelyHarshSunlight[] = _("The sunlight turned\nextremely harsh!"); -static const u8 sText_ExtremeSunlightFaded[] = _("The extreme sunlight faded.{PAUSE 64}"); -static const u8 sText_MoveEvaporatedInTheHarshSunlight[] = _("The Water-type attack evaporated\nin the harsh sunlight!"); -static const u8 sText_ExtremelyHarshSunlightWasNotLessened[] = _("The extremely harsh sunlight\nwas not lessened at all!"); -static const u8 sText_HeavyRain[] = _("A heavy rain began to fall!"); -static const u8 sText_HeavyRainLifted[] = _("The heavy rain has lifted!{PAUSE 64}"); -static const u8 sText_MoveFizzledOutInTheHeavyRain[] = _("The Fire-type attack fizzled out\nin the heavy rain!"); -static const u8 sText_NoReliefFromHeavyRain[] = _("There is no relief from\nthis heavy rain!"); -static const u8 sText_MysteriousAirCurrent[] = _("A mysterious air current is\nprotecting Flying-type Pokémon!"); -static const u8 sText_StrongWindsDissipated[] = _("The mysterious strong winds\nhave dissipated!{PAUSE 64}"); -static const u8 sText_MysteriousAirCurrentBlowsOn[] = _("The mysterious air current\nblows on regardless!"); -static const u8 sText_AttackWeakenedByStrongWinds[] = _("The mysterious strong winds\nweakened the attack!"); -static const u8 sText_StuffCheeksCantSelect[] = _("Stuff Cheeks cannot be\nselected without a Berry!\p"); -static const u8 sText_PkmnRevertedToPrimal[] = _("{B_ATK_NAME_WITH_PREFIX}'s Primal Reversion!\nIt reverted to its primal form!"); -static const u8 sText_ButPokemonCantUseTheMove[] = _("But {B_ATK_NAME_WITH_PREFIX} can't\nuse the move!"); -static const u8 sText_ButHoopaCantUseIt[] = _("But Hoopa can't use it\nthe way it is now!"); -static const u8 sText_BrokeThroughProtection[] = _("It broke through\n{B_DEF_NAME_WITH_PREFIX}'s protection!"); -static const u8 sText_AbilityAllowsOnlyMove[] = _("{B_ATK_ABILITY} allows the\nuse of only {B_CURRENT_MOVE}!\p"); -static const u8 sText_SwappedAbilities[] = _("{B_DEF_NAME_WITH_PREFIX} swapped Abilities\nwith its target!"); -static const u8 sText_PastelVeilProtected[] = _("{B_DEF_NAME_WITH_PREFIX} is protected\nby a pastel veil!"); -static const u8 sText_PastelVeilEnters[] = _("{B_DEF_NAME_WITH_PREFIX} was cured\nof its poisoning!"); -static const u8 sText_BattlerTypeChangedTo[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s type\nchanged to {B_BUFF1}!"); -static const u8 sText_BothCanNoLongerEscape[] = _("Neither Pokémon can run away!"); -static const u8 sText_CantEscapeDueToUsedMove[] = _("{B_ATK_NAME_WITH_PREFIX} can no longer escape\nbecause it used {B_CURRENT_MOVE}!"); -static const u8 sText_PkmnBecameWeakerToFire[] = _("{B_DEF_NAME_WITH_PREFIX} became\nweaker to fire!"); -static const u8 sText_PkmnAboutToBeAttackedByItsItem[] = _("{B_DEF_NAME_WITH_PREFIX} is about\nto be attacked by its {B_BUFF1}!"); -static const u8 sText_CantEscapeBecauseOfCurrentMove[] = _("{B_DEF_NAME_WITH_PREFIX} can no longer escape\nbecause of {B_CURRENT_MOVE}!"); -static const u8 sText_NeutralizingGasEnters[] = _("Neutralizing Gas filled the area!"); -static const u8 sText_NeutralizingGasOver[] = _("The effects of Neutralizing\nGas wore off!"); -static const u8 sText_PkmnTookTargetHigh[] = _("{B_ATK_NAME_WITH_PREFIX} took {B_DEF_NAME_WITH_PREFIX}\ninto the air!"); -static const u8 sText_TargetTooHeavy[] = _("But the target\nwas too heavy!"); -static const u8 sText_MeteorBeamCharging[] = _("{B_ATK_NAME_WITH_PREFIX} is overflowing\nwith space energy!"); -static const u8 sText_HeatingUpBeak[] = _("{B_ATK_NAME_WITH_PREFIX} started\nheating up its beak!"); -static const u8 sText_CourtChange[] = _("{B_ATK_NAME_WITH_PREFIX} swapped the battle\neffects affecting each side!"); -static const u8 sText_AttackerExpelledThePoison[] = _("{B_ATK_NAME_WITH_PREFIX} managed to\nexpel the poison!"); -static const u8 sText_AttackerShookItselfAwake[] = _("{B_ATK_NAME_WITH_PREFIX} shook itself awake!"); -static const u8 sText_AttackerBrokeThroughParalysis[] = _("{B_ATK_NAME_WITH_PREFIX} gathered all its energy\nto overcome its paralysis!"); -static const u8 sText_AttackerHealedItsBurn[] = _("{B_ATK_NAME_WITH_PREFIX} healed its burn with\nits sheer determination!"); -static const u8 sText_AttackerHealedItsFrostbite[] = _("{B_ATK_NAME_WITH_PREFIX} healed its frostbite with\nits sheer determination!"); //not used, "melted the ice" is used instead in PLA -static const u8 sText_AttackerMeltedTheIce[] = _("{B_ATK_NAME_WITH_PREFIX} melted the ice with\nits fiery determination!"); -static const u8 sText_TargetToughedItOut[] = _("{B_DEF_NAME_WITH_PREFIX} toughed it out\nto show you its best side!"); -static const u8 sText_AttackerLostElectricType[] = _("{B_ATK_NAME_WITH_PREFIX} used up all\nof its electricity!"); -static const u8 sText_AttackerSwitchedStatWithTarget[] = _("{B_ATK_NAME_WITH_PREFIX} switched {B_BUFF1}\nwith its target!"); -static const u8 sText_BeingHitChargedPkmnWithPower[] = _("Being hit by {B_CURRENT_MOVE}\ncharged {B_DEF_NAME_WITH_PREFIX} with power!"); -static const u8 sText_SunlightActivatedAbility[] = _("The harsh sunlight activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!"); -static const u8 sText_StatWasHeightened[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_BUFF1}\nwas heightened!"); -static const u8 sText_BoosterEnergyActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used its\n{B_LAST_ITEM} to activate\l{B_SCR_ACTIVE_ABILITY}!"); -static const u8 sText_ElectricTerrainActivatedAbility[] = _("The Electric Terrain activated\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_LAST_ABILITY}!"); -static const u8 sText_AbilityWeakenedSurroundingMonsStat[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY}\nweakened the {B_BUFF1} of\lall surrounding Pokémon!\p"); -static const u8 sText_AttackerGainedStrengthFromTheFallen[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} gained strength\nfrom the fallen!"); -static const u8 sText_PrepareShellTrap[] = _("{B_ATK_NAME_WITH_PREFIX} set a shell trap!"); -static const u8 sText_ShellTrapDidntWork[] = _("{B_ATK_NAME_WITH_PREFIX}'s shell trap didn't work!"); -static const u8 sText_SharpSteelFloats[] = _("Sharp-pointed steel floats\naround {B_DEF_TEAM2} team!"); -static const u8 sText_SharpSteelDmg[] = _("Sharp steel bit into {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_PkmnBlewAwaySharpSteel[] = _("{B_ATK_NAME_WITH_PREFIX} blew away\nsharp steel!"); -static const u8 sText_SharpSteelDisappearedFromTeam[] = _("The sharp steel disappeared from\nthe ground around {B_ATK_TEAM2} team!"); -static const u8 sText_TeamTrappedWithVines[] = _("{B_DEF_TEAM1} team got trapped\nwith vines!"); -static const u8 sText_PkmnHurtByVines[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt by\nG-Max Vine Lash's ferocious beating!"); -static const u8 sText_TeamCaughtInVortex[] = _("{B_DEF_TEAM1} team got caught\nin a vortex of water!"); -static const u8 sText_PkmnHurtByVortex[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt by\nG-Max Cannonade's vortex!"); -static const u8 sText_TeamSurroundedByFire[] = _("{B_DEF_TEAM1} team was surrounded\nby flames!"); -static const u8 sText_PkmnBurningUp[] = _("{B_ATK_NAME_WITH_PREFIX} is burning up\nwithin G-Max Wildfire's flames!"); -static const u8 sText_TeamSurroundedByRocks[] = _("{B_DEF_TEAM1} team was surrounded\nby rocks!"); -static const u8 sText_PkmnHurtByRocksThrown[] = _("{B_ATK_NAME_WITH_PREFIX} is hurt by\nrocks thrown out by G-Max Volcalith!"); -static const u8 sText_CouldntFullyProtect[] = _("{B_DEF_NAME_WITH_PREFIX} couldn't fully protect\nitself and got hurt!"); -static const u8 sText_StockpiledEffectWoreOff[] = _("{B_ATK_NAME_WITH_PREFIX}'s stockpiled\neffect wore off!"); -static const u8 sText_MoveBlockedByDynamax[] = _("The move was blocked by\nthe power of Dynamax!"); -static const u8 sText_PkmnRevivedReadyToFight[] = _("{B_BUFF1} was revived and\nis ready to fight again!"); -static const u8 sText_ItemRestoredSpeciesHealth[] = _("{B_BUFF1} had its\nHP restored!"); -static const u8 sText_ItemCuredSpeciesStatus[] = _("{B_BUFF1} had\nits status healed!"); -static const u8 sText_ItemRestoredSpeciesPP[] = _("{B_BUFF1} had its\nPP restored!"); -static const u8 sText_AtkTrappedDef[] = _("{B_ATK_NAME_WITH_PREFIX} trapped\nthe {B_DEF_NAME_WITH_PREFIX}!"); -static const u8 sText_MirrorHerbCopied[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} used its {B_LAST_ITEM}\nto mirror its opponent's stat changes!"); -static const u8 sText_PkmnItemMelted[] = _("{B_ATK_NAME_WITH_PREFIX} corroded\n{B_DEF_NAME_WITH_PREFIX}'s {B_LAST_ITEM}!"); -static const u8 sText_UltraBurstReacting[] = _("Bright light is about to\nburst out of {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_UltraBurstCompleted[] = _("{B_ATK_NAME_WITH_PREFIX} regained its\ntrue power through Ultra Burst!"); -static const u8 sText_TeamGainedEXP[] = _("The rest of your team gained EXP.\nPoints thanks to the {B_LAST_ITEM}!\p"); -static const u8 sText_CurrentMoveCantSelect[] = _("{B_BUFF1} cannot be used!\p"); -static const u8 sText_TargetIsBeingSaltCured[] = _("{B_DEF_NAME_WITH_PREFIX} is being salt cured!"); -static const u8 sText_TargetIsHurtBySaltCure[] = _("{B_DEF_NAME_WITH_PREFIX} is hurt by {B_BUFF1}!"); -static const u8 sText_TargetCoveredInStickyCandySyrup[] = _("{B_DEF_NAME_WITH_PREFIX} got covered\nin sticky syrup!"); -static const u8 sText_PkmnTellChillingReceptionJoke[] = _("{B_ATK_NAME_WITH_PREFIX} is preparing to tell a\nchillingly bad joke!"); -static const u8 sText_ZeroToHeroTransformation[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} underwent a heroic\ntransformation!"); -static const u8 sText_CommanderActivates[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} was swallowed by Dondozo\nand became Dondozo's commander!"); -static const u8 sText_TheTwoMovesBecomeOne[] = _("The two moves become one!\nIt's a combined move!{PAUSE 16}"); -static const u8 sText_ARainbowAppearedOnSide[] = _("A rainbow appeared in the sky\non {B_ATK_TEAM2} team's side!"); -static const u8 sText_TheRainbowDisappeared[] = _("The rainbow on {B_ATK_TEAM2}\nside disappeared!"); -static const u8 sText_WaitingForPartnersMove[] = _("{B_ATK_NAME_WITH_PREFIX} is waiting\nfor {B_ATK_PARTNER_NAME}'s move…{PAUSE 16}"); -static const u8 sText_SeaOfFireEnvelopedSide[] = _("A sea of fire enveloped\n{B_DEF_TEAM2} team!"); -static const u8 sText_HurtByTheSeaOfFire[] = _("{B_ATK_TEAM1} {B_ATK_NAME_WITH_PREFIX} was hurt\nby the sea of fire!"); -static const u8 sText_TheSeaOfFireDisappeared[] = _("The sea of fire around {B_ATK_TEAM2}\nteam disappeared!"); -static const u8 sText_SwampEnvelopedSide[] = _("A swamp enveloped\n{B_DEF_TEAM2} team!"); -static const u8 sText_TheSwampDisappeared[] = _("The swamp around {B_ATK_TEAM2}\nteam disappeared!"); -static const u8 sText_HospitalityRestoration[] = _("{B_ATK_PARTNER_NAME} drank down all the\nmatcha that {B_ATK_NAME_WITH_PREFIX} made!"); -static const u8 sText_ElectroShotCharging[] = _("{B_ATK_NAME_WITH_PREFIX} absorbed\nelectricity!"); -static const u8 sText_ItemWasUsedUp[] = _("The {B_LAST_ITEM}\nwas used up..."); -static const u8 sText_AttackerLostItsType[] = _("{B_ATK_NAME_WITH_PREFIX} lost\nits {B_BUFF1} type!"); -static const u8 sText_ShedItsTail[] = _("{B_ATK_NAME_WITH_PREFIX} shed its tail\nto create a decoy!"); -static const u8 sText_PkmnTerastallizedInto[] = _("{B_ATK_NAME_WITH_PREFIX} terastallized\ninto the {B_BUFF1} type!"); -static const u8 sText_SupersweetAromaWafts[] = _("A supersweet aroma is wafting from\nthe syrup covering {B_ATK_NAME_WITH_PREFIX}!"); -static const u8 sText_TidyingUpComplete[] = _("Tidying up complete!"); -static const u8 sText_FickleBeamDoubled[] = _("{B_ATK_NAME_WITH_PREFIX} is going all\nout for this attack!"); +const u8 gText_drastically[] = _("drastically "); +const u8 gText_severely[] = _("severely "); +static const u8 sText_TerrainReturnedToNormal[] = _("The terrain returned to normal!"); // Unused const u8 *const gBattleStringsTable[BATTLESTRINGS_COUNT] = { - [STRINGID_FICKLEBEAMDOUBLED - BATTLESTRINGS_TABLE_START] = sText_FickleBeamDoubled, - [STRINGID_PKMNTERASTALLIZEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTerastallizedInto, - [STRINGID_TIDYINGUPCOMPLETE - BATTLESTRINGS_TABLE_START] = sText_TidyingUpComplete, - [STRINGID_SUPERSWEETAROMAWAFTS - BATTLESTRINGS_TABLE_START] = sText_SupersweetAromaWafts, - [STRINGID_SHEDITSTAIL - BATTLESTRINGS_TABLE_START] = sText_ShedItsTail, - [STRINGID_ELECTROSHOTCHARGING - BATTLESTRINGS_TABLE_START] = sText_ElectroShotCharging, - [STRINGID_HOSPITALITYRESTORATION - BATTLESTRINGS_TABLE_START] = sText_HospitalityRestoration, - [STRINGID_THESWAMPDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheSwampDisappeared, - [STRINGID_SWAMPENVELOPEDSIDE - BATTLESTRINGS_TABLE_START] = sText_SwampEnvelopedSide, - [STRINGID_THESEAOFFIREDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheSeaOfFireDisappeared, - [STRINGID_HURTBYTHESEAOFFIRE - BATTLESTRINGS_TABLE_START] = sText_HurtByTheSeaOfFire, - [STRINGID_SEAOFFIREENVELOPEDSIDE - BATTLESTRINGS_TABLE_START] = sText_SeaOfFireEnvelopedSide, - [STRINGID_WAITINGFORPARTNERSMOVE - BATTLESTRINGS_TABLE_START] = sText_WaitingForPartnersMove, - [STRINGID_THERAINBOWDISAPPEARED - BATTLESTRINGS_TABLE_START] = sText_TheRainbowDisappeared, - [STRINGID_ARAINBOWAPPEAREDONSIDE - BATTLESTRINGS_TABLE_START] = sText_ARainbowAppearedOnSide, - [STRINGID_THETWOMOVESBECOMEONE - BATTLESTRINGS_TABLE_START] = sText_TheTwoMovesBecomeOne, - [STRINGID_ZEROTOHEROTRANSFORMATION - BATTLESTRINGS_TABLE_START] = sText_ZeroToHeroTransformation, - [STRINGID_COMMANDERACTIVATES - BATTLESTRINGS_TABLE_START] = sText_CommanderActivates, - [STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnTellChillingReceptionJoke, - [STRINGID_MOVEBLOCKEDBYDYNAMAX - BATTLESTRINGS_TABLE_START] = sText_MoveBlockedByDynamax, - [STRINGID_TARGETISHURTBYSALTCURE - BATTLESTRINGS_TABLE_START] = sText_TargetIsHurtBySaltCure, - [STRINGID_TARGETISBEINGSALTCURED - BATTLESTRINGS_TABLE_START] = sText_TargetIsBeingSaltCured, - [STRINGID_CURRENTMOVECANTSELECT - BATTLESTRINGS_TABLE_START] = sText_CurrentMoveCantSelect, - [STRINGID_PKMNITEMMELTED - BATTLESTRINGS_TABLE_START] = sText_PkmnItemMelted, - [STRINGID_MIRRORHERBCOPIED - BATTLESTRINGS_TABLE_START] = sText_MirrorHerbCopied, - [STRINGID_THUNDERCAGETRAPPED - BATTLESTRINGS_TABLE_START] = sText_AtkTrappedDef, - [STRINGID_ITEMRESTOREDSPECIESHEALTH - BATTLESTRINGS_TABLE_START] = sText_ItemRestoredSpeciesHealth, - [STRINGID_ITEMCUREDSPECIESSTATUS - BATTLESTRINGS_TABLE_START] = sText_ItemCuredSpeciesStatus, - [STRINGID_ITEMRESTOREDSPECIESPP - BATTLESTRINGS_TABLE_START] = sText_ItemRestoredSpeciesPP, - [STRINGID_PKMNREVIVEDREADYTOFIGHT - BATTLESTRINGS_TABLE_START] = sText_PkmnRevivedReadyToFight, - [STRINGID_STOCKPILEDEFFECTWOREOFF - BATTLESTRINGS_TABLE_START] = sText_StockpiledEffectWoreOff, - [STRINGID_COULDNTFULLYPROTECT - BATTLESTRINGS_TABLE_START] = sText_CouldntFullyProtect, - [STRINGID_PKMNHURTBYROCKSTHROWN - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByRocksThrown, - [STRINGID_TEAMSURROUNDEDBYROCKS - BATTLESTRINGS_TABLE_START] = sText_TeamSurroundedByRocks, - [STRINGID_PKMNBURNINGUP - BATTLESTRINGS_TABLE_START] = sText_PkmnBurningUp, - [STRINGID_TEAMSURROUNDEDBYFIRE - BATTLESTRINGS_TABLE_START] = sText_TeamSurroundedByFire, - [STRINGID_PKMNHURTBYVORTEX - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByVortex, - [STRINGID_TEAMCAUGHTINVORTEX - BATTLESTRINGS_TABLE_START] = sText_TeamCaughtInVortex, - [STRINGID_PKMNHURTBYVINES - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByVines, - [STRINGID_TEAMTRAPPEDWITHVINES - BATTLESTRINGS_TABLE_START] = sText_TeamTrappedWithVines, - [STRINGID_PKMNBLEWAWAYSHARPSTEEL - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwaySharpSteel, - [STRINGID_SHARPSTEELDMG - BATTLESTRINGS_TABLE_START] = sText_SharpSteelDmg, - [STRINGID_SHARPSTEELFLOATS - BATTLESTRINGS_TABLE_START] = sText_SharpSteelFloats, - [STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN - BATTLESTRINGS_TABLE_START] = sText_AttackerGainedStrengthFromTheFallen, - [STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT - BATTLESTRINGS_TABLE_START] = sText_AbilityWeakenedSurroundingMonsStat, - [STRINGID_ELECTRICTERRAINACTIVATEDABILITY - BATTLESTRINGS_TABLE_START] = sText_ElectricTerrainActivatedAbility, - [STRINGID_STATWASHEIGHTENED - BATTLESTRINGS_TABLE_START] = sText_StatWasHeightened, - [STRINGID_BOOSTERENERGYACTIVATES - BATTLESTRINGS_TABLE_START] = sText_BoosterEnergyActivates, - [STRINGID_SUNLIGHTACTIVATEDABILITY - BATTLESTRINGS_TABLE_START] = sText_SunlightActivatedAbility, - [STRINGID_BEINGHITCHARGEDPKMNWITHPOWER - BATTLESTRINGS_TABLE_START] = sText_BeingHitChargedPkmnWithPower, - [STRINGID_ATTACKERSWITCHEDSTATWITHTARGET - BATTLESTRINGS_TABLE_START] = sText_AttackerSwitchedStatWithTarget, - [STRINGID_TARGETTOUGHEDITOUT - BATTLESTRINGS_TABLE_START] = sText_TargetToughedItOut, - [STRINGID_ATTACKERMELTEDTHEICE - BATTLESTRINGS_TABLE_START] = sText_AttackerMeltedTheIce, - [STRINGID_ATTACKERHEALEDITSBURN - BATTLESTRINGS_TABLE_START] = sText_AttackerHealedItsBurn, - [STRINGID_ATTACKERBROKETHROUGHPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_AttackerBrokeThroughParalysis, - [STRINGID_ATTACKERSHOOKITSELFAWAKE - BATTLESTRINGS_TABLE_START] = sText_AttackerShookItselfAwake, - [STRINGID_ATTACKEREXPELLEDTHEPOISON - BATTLESTRINGS_TABLE_START] = sText_AttackerExpelledThePoison, - [STRINGID_ZPOWERSURROUNDS - BATTLESTRINGS_TABLE_START] = sText_ZPowerSurrounds, - [STRINGID_ZMOVEUNLEASHED - BATTLESTRINGS_TABLE_START] = sText_ZPowerUnleashed, - [STRINGID_ZMOVERESETSSTATS - BATTLESTRINGS_TABLE_START] = sText_ZMoveResetsStats, - [STRINGID_ZMOVEALLSTATSUP - BATTLESTRINGS_TABLE_START] = sText_ZMoveAllStatsUp, - [STRINGID_ZMOVEZBOOSTCRIT - BATTLESTRINGS_TABLE_START] = sText_ZMoveBoostCrit, - [STRINGID_ZMOVERESTOREHP - BATTLESTRINGS_TABLE_START] = sText_ZMoveRestoreHp, - [STRINGID_ZMOVESTATUP - BATTLESTRINGS_TABLE_START] = sText_ZMoveStatUp, - [STRINGID_ZMOVEHPTRAP - BATTLESTRINGS_TABLE_START] = sText_ZMoveHpSwitchInTrap, - [STRINGID_PLAYERLOSTTOENEMYTRAINER - BATTLESTRINGS_TABLE_START] = sText_PlayerLostToEnemyTrainer, - [STRINGID_PLAYERPAIDPRIZEMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerPaidPrizeMoney, - [STRINGID_SHELLTRAPDIDNTWORK - BATTLESTRINGS_TABLE_START] = sText_ShellTrapDidntWork, - [STRINGID_PREPARESHELLTRAP - BATTLESTRINGS_TABLE_START] = sText_PrepareShellTrap, - [STRINGID_COURTCHANGE - BATTLESTRINGS_TABLE_START] = sText_CourtChange, - [STRINGID_HEATUPBEAK - BATTLESTRINGS_TABLE_START] = sText_HeatingUpBeak, - [STRINGID_METEORBEAMCHARGING - BATTLESTRINGS_TABLE_START] = sText_MeteorBeamCharging, - [STRINGID_PKMNINSNAPTRAP - BATTLESTRINGS_TABLE_START] = sText_PkmnInSnapTrap, - [STRINGID_NEUTRALIZINGGASOVER - BATTLESTRINGS_TABLE_START] = sText_NeutralizingGasOver, - [STRINGID_NEUTRALIZINGGASENTERS - BATTLESTRINGS_TABLE_START] = sText_NeutralizingGasEnters, - [STRINGID_BATTLERTYPECHANGEDTO - BATTLESTRINGS_TABLE_START] = sText_BattlerTypeChangedTo, - [STRINGID_PASTELVEILENTERS - BATTLESTRINGS_TABLE_START] = sText_PastelVeilEnters, - [STRINGID_PASTELVEILPROTECTED - BATTLESTRINGS_TABLE_START] = sText_PastelVeilProtected, - [STRINGID_SWAPPEDABILITIES - BATTLESTRINGS_TABLE_START] = sText_SwappedAbilities, - [STRINGID_ABILITYALLOWSONLYMOVE - BATTLESTRINGS_TABLE_START] = sText_AbilityAllowsOnlyMove, - [STRINGID_BROKETHROUGHPROTECTION - BATTLESTRINGS_TABLE_START] = sText_BrokeThroughProtection, - [STRINGID_BUTPOKEMONCANTUSETHEMOVE - BATTLESTRINGS_TABLE_START] = sText_ButPokemonCantUseTheMove, - [STRINGID_BUTHOOPACANTUSEIT - BATTLESTRINGS_TABLE_START] = sText_ButHoopaCantUseIt, - [STRINGID_PKMNREVERTEDTOPRIMAL - BATTLESTRINGS_TABLE_START] = sText_PkmnRevertedToPrimal, - [STRINGID_STUFFCHEEKSCANTSELECT - BATTLESTRINGS_TABLE_START] = sText_StuffCheeksCantSelect, - [STRINGID_ATTACKWEAKENEDBSTRONGWINDS - BATTLESTRINGS_TABLE_START] = sText_AttackWeakenedByStrongWinds, - [STRINGID_MYSTERIOUSAIRCURRENTBLOWSON - BATTLESTRINGS_TABLE_START] = sText_MysteriousAirCurrentBlowsOn, - [STRINGID_STRONGWINDSDISSIPATED - BATTLESTRINGS_TABLE_START] = sText_StrongWindsDissipated, - [STRINGID_MYSTERIOUSAIRCURRENT - BATTLESTRINGS_TABLE_START] = sText_MysteriousAirCurrent, - [STRINGID_NORELIEFROMHEAVYRAIN - BATTLESTRINGS_TABLE_START] = sText_NoReliefFromHeavyRain, - [STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN - BATTLESTRINGS_TABLE_START] = sText_MoveFizzledOutInTheHeavyRain, - [STRINGID_HEAVYRAINLIFTED - BATTLESTRINGS_TABLE_START] = sText_HeavyRainLifted, - [STRINGID_HEAVYRAIN - BATTLESTRINGS_TABLE_START] = sText_HeavyRain, - [STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED - BATTLESTRINGS_TABLE_START] = sText_ExtremelyHarshSunlightWasNotLessened, - [STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT - BATTLESTRINGS_TABLE_START] = sText_MoveEvaporatedInTheHarshSunlight, - [STRINGID_EXTREMESUNLIGHTFADED - BATTLESTRINGS_TABLE_START] = sText_ExtremeSunlightFaded, - [STRINGID_EXTREMELYHARSHSUNLIGHT - BATTLESTRINGS_TABLE_START] = sText_ExtremelyHarshSunlight, - [STRINGID_ATTACKERBECAMEASHSPECIES - BATTLESTRINGS_TABLE_START] = sText_AttackerBecameAshSpecies, - [STRINGID_ATTACKERBECAMEFULLYCHARGED - BATTLESTRINGS_TABLE_START] = sText_AttackerBecameFullyCharged, - [STRINGID_HEALBLOCKEDNOMORE - BATTLESTRINGS_TABLE_START] = sText_HealBlockedNoMore, - [STRINGID_TORMENTEDNOMORE - BATTLESTRINGS_TABLE_START] = sText_TormentedNoMore, - [STRINGID_ATKGOTOVERINFATUATION - BATTLESTRINGS_TABLE_START] = sText_AttackerGotOverInfatuation, - [STRINGID_EJECTBUTTONACTIVATE - BATTLESTRINGS_TABLE_START] = sText_EjectButtonActivate, - [STRINGID_REDCARDACTIVATE - BATTLESTRINGS_TABLE_START] = sText_RedCardActivate, - [STRINGID_PKMNBURNHEALED - BATTLESTRINGS_TABLE_START] = sText_PkmnBurnHealed, - [STRINGID_STICKYBARBTRANSFER - BATTLESTRINGS_TABLE_START] = sText_StickyBarbTransfer, - [STRINGID_ITEMCANNOTBEREMOVED - BATTLESTRINGS_TABLE_START] = sText_ItemCannotBeRemoved, - [STRINGID_PKMNGOTOVERITSINFATUATION - BATTLESTRINGS_TABLE_START] = sText_PkmnGotOverItsInfatuation, - [STRINGID_PKMNSHOOKOFFTHETAUNT - BATTLESTRINGS_TABLE_START] = sText_PkmnShookOffTheTaunt, - [STRINGID_MICLEBERRYACTIVATES - BATTLESTRINGS_TABLE_START] = sText_MicleBerryActivates, - [STRINGID_CANACTFASTERTHANKSTO - BATTLESTRINGS_TABLE_START] = sText_CanActFaster, - [STRINGID_CURIOUSMEDICINEENTERS - BATTLESTRINGS_TABLE_START] = sText_CuriousMedicineEnters, - [STRINGID_ASONEENTERS - BATTLESTRINGS_TABLE_START] = sText_AsOneEnters, - [STRINGID_PKMNMADESHELLGLEAM - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeShellGleam, - [STRINGID_ABILITYRAISEDSTATDRASTICALLY - BATTLESTRINGS_TABLE_START] = sText_AbilityRaisedStatDrastically, - [STRINGID_PKMNSWILLPERISHIN3TURNS - BATTLESTRINGS_TABLE_START] = sText_PkmnsWillPerishIn3Turns, - [STRINGID_ASANDSTORMKICKEDUP - BATTLESTRINGS_TABLE_START] = sText_ASandstormKickedUp, - [STRINGID_BATTLERABILITYRAISEDSTAT - BATTLESTRINGS_TABLE_START] = sText_BattlerAbilityRaisedStat, - [STRINGID_FETCHEDPOKEBALL - BATTLESTRINGS_TABLE_START] = sText_FetchedPokeBall, - [STRINGID_CLEARAMULETWONTLOWERSTATS - BATTLESTRINGS_TABLE_START] = sText_ClearAmuletWontLowerStats, - [STRINGID_CLOAKEDINAFREEZINGLIGHT - BATTLESTRINGS_TABLE_START] = sText_CloakedInAFreezingLight, - [STRINGID_DESTINYKNOTACTIVATES - BATTLESTRINGS_TABLE_START] = sText_DestinyKnotActivates, - [STRINGID_NOONEWILLBEABLETORUNAWAY - BATTLESTRINGS_TABLE_START] = sText_NoOneWillBeAbleToRun, - [STRINGID_PKNMABSORBINGPOWER - BATTLESTRINGS_TABLE_START] = sText_PkmnAbsorbingPower, - [STRINGID_RECEIVERABILITYTAKEOVER - BATTLESTRINGS_TABLE_START] = sText_ReceiverAbilityTakeOver, - [STRINGID_SCRIPTINGABILITYSTATRAISE - BATTLESTRINGS_TABLE_START] = sText_ScriptingAbilityRaisedStat, - [STRINGID_HEALERCURE - BATTLESTRINGS_TABLE_START] = sText_HealerCure, - [STRINGID_ATTACKERLOSTFIRETYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostFireType, - [STRINGID_ATTACKERCUREDTARGETSTATUS - BATTLESTRINGS_TABLE_START] = sText_AttackerCuredTargetStatus, - [STRINGID_ILLUSIONWOREOFF - BATTLESTRINGS_TABLE_START] = sText_IllusionWoreOff, - [STRINGID_BUGBITE - BATTLESTRINGS_TABLE_START] = sText_BugBite, - [STRINGID_INCINERATEBURN - BATTLESTRINGS_TABLE_START] = sText_IncinerateBurn, - [STRINGID_AIRBALLOONPOP - BATTLESTRINGS_TABLE_START] = sText_AirBalloonPop, - [STRINGID_AIRBALLOONFLOAT - BATTLESTRINGS_TABLE_START] = sText_AirBalloonFloat, - [STRINGID_TARGETATEITEM - BATTLESTRINGS_TABLE_START] = sText_TargetAteItem, - [STRINGID_BERRYDMGREDUCES - BATTLESTRINGS_TABLE_START] = sText_BerryDmgReducing, - [STRINGID_GEMACTIVATES - BATTLESTRINGS_TABLE_START] = sText_GemActivates, - [STRINGID_LASERFOCUS - BATTLESTRINGS_TABLE_START] = sText_LaserFocusMessage, - [STRINGID_THROATCHOPENDS - BATTLESTRINGS_TABLE_START] = sText_ThroatChopEnds, - [STRINGID_PKMNCANTUSEMOVETHROATCHOP - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveThroatChop, - [STRINGID_USEDINSTRUCTEDMOVE - BATTLESTRINGS_TABLE_START] = sText_UsedInstructedMove, - [STRINGID_CELEBRATEMESSAGE - BATTLESTRINGS_TABLE_START] = sText_CelebrateMessage, - [STRINGID_AROMAVEILPROTECTED - BATTLESTRINGS_TABLE_START] = sText_AromaVeilProtected, - [STRINGID_SWEETVEILPROTECTED - BATTLESTRINGS_TABLE_START] = sText_SweetVeilProtected, - [STRINGID_FLOWERVEILPROTECTED - BATTLESTRINGS_TABLE_START] = sText_FlowerVeilProtected, - [STRINGID_SAFETYGOGGLESPROTECTED - BATTLESTRINGS_TABLE_START] = sText_SafetyGogglesProtected, - [STRINGID_SPECTRALTHIEFSTEAL - BATTLESTRINGS_TABLE_START] = sText_SpectralThiefSteal, - [STRINGID_BELCHCANTSELECT - BATTLESTRINGS_TABLE_START] = sText_BelchCantUse, - [STRINGID_TRAINER1LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1LoseText, - [STRINGID_PKMNGAINEDEXP - BATTLESTRINGS_TABLE_START] = sText_PkmnGainedEXP, - [STRINGID_PKMNGREWTOLV - BATTLESTRINGS_TABLE_START] = sText_PkmnGrewToLv, - [STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnLearnedMove, - [STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove1, - [STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove2, - [STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START] = sText_TryToLearnMove3, - [STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnForgotMove, - [STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START] = sText_StopLearningMove, - [STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START] = sText_DidNotLearnMove, - [STRINGID_PKMNLEARNEDMOVE2 - BATTLESTRINGS_TABLE_START] = sText_PkmnLearnedMove2, - [STRINGID_ATTACKMISSED - BATTLESTRINGS_TABLE_START] = sText_AttackMissed, - [STRINGID_PKMNPROTECTEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedItself, - [STRINGID_STATSWONTINCREASE2 - BATTLESTRINGS_TABLE_START] = sText_StatsWontIncrease2, - [STRINGID_AVOIDEDDAMAGE - BATTLESTRINGS_TABLE_START] = sText_AvoidedDamage, - [STRINGID_ITDOESNTAFFECT - BATTLESTRINGS_TABLE_START] = sText_ItDoesntAffect, - [STRINGID_ATTACKERFAINTED - BATTLESTRINGS_TABLE_START] = sText_AttackerFainted, - [STRINGID_TARGETFAINTED - BATTLESTRINGS_TABLE_START] = sText_TargetFainted, - [STRINGID_PLAYERGOTMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerGotMoney, - [STRINGID_PLAYERWHITEOUT - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout, - [STRINGID_PLAYERWHITEOUT2 - BATTLESTRINGS_TABLE_START] = sText_PlayerWhiteout2, - [STRINGID_PREVENTSESCAPE - BATTLESTRINGS_TABLE_START] = sText_PreventsEscape, - [STRINGID_HITXTIMES - BATTLESTRINGS_TABLE_START] = sText_HitXTimes, - [STRINGID_PKMNFELLASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnFellAsleep, - [STRINGID_PKMNMADESLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSleep, - [STRINGID_PKMNALREADYASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyAsleep, - [STRINGID_PKMNALREADYASLEEP2 - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyAsleep2, - [STRINGID_PKMNWASNTAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasntAffected, - [STRINGID_PKMNWASPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasPoisoned, - [STRINGID_PKMNPOISONEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnPoisonedBy, - [STRINGID_PKMNHURTBYPOISON - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByPoison, - [STRINGID_PKMNALREADYPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyPoisoned, - [STRINGID_PKMNBADLYPOISONED - BATTLESTRINGS_TABLE_START] = sText_PkmnBadlyPoisoned, - [STRINGID_PKMNENERGYDRAINED - BATTLESTRINGS_TABLE_START] = sText_PkmnEnergyDrained, - [STRINGID_PKMNWASBURNED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasBurned, - [STRINGID_PKMNBURNEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnBurnedBy, - [STRINGID_PKMNHURTBYBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByBurn, - [STRINGID_PKMNWASFROZEN - BATTLESTRINGS_TABLE_START] = sText_PkmnWasFrozen, - [STRINGID_PKMNFROZENBY - BATTLESTRINGS_TABLE_START] = sText_PkmnFrozenBy, - [STRINGID_PKMNISFROZEN - BATTLESTRINGS_TABLE_START] = sText_PkmnIsFrozen, - [STRINGID_PKMNWASDEFROSTED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrosted, - [STRINGID_PKMNWASDEFROSTED2 - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrosted2, - [STRINGID_PKMNWASDEFROSTEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDefrostedBy, - [STRINGID_PKMNWASPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasParalyzed, - [STRINGID_PKMNWASPARALYZEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasParalyzedBy, - [STRINGID_PKMNISPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsParalyzed, - [STRINGID_PKMNISALREADYPARALYZED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsAlreadyParalyzed, - [STRINGID_PKMNHEALEDPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_PkmnHealedParalysis, - [STRINGID_PKMNDREAMEATEN - BATTLESTRINGS_TABLE_START] = sText_PkmnDreamEaten, - [STRINGID_STATSWONTINCREASE - BATTLESTRINGS_TABLE_START] = sText_StatsWontIncrease, - [STRINGID_STATSWONTDECREASE - BATTLESTRINGS_TABLE_START] = sText_StatsWontDecrease, - [STRINGID_TEAMSTOPPEDWORKING - BATTLESTRINGS_TABLE_START] = sText_TeamStoppedWorking, - [STRINGID_FOESTOPPEDWORKING - BATTLESTRINGS_TABLE_START] = sText_FoeStoppedWorking, - [STRINGID_PKMNISCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnIsConfused, - [STRINGID_PKMNHEALEDCONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnHealedConfusion, - [STRINGID_PKMNWASCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnWasConfused, - [STRINGID_PKMNALREADYCONFUSED - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyConfused, - [STRINGID_PKMNFELLINLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnFellInLove, - [STRINGID_PKMNINLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnInLove, - [STRINGID_PKMNIMMOBILIZEDBYLOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnImmobilizedByLove, - [STRINGID_PKMNBLOWNAWAY - BATTLESTRINGS_TABLE_START] = sText_PkmnBlownAway, - [STRINGID_PKMNCHANGEDTYPE - BATTLESTRINGS_TABLE_START] = sText_PkmnChangedType, - [STRINGID_PKMNFLINCHED - BATTLESTRINGS_TABLE_START] = sText_PkmnFlinched, - [STRINGID_PKMNREGAINEDHEALTH - BATTLESTRINGS_TABLE_START] = sText_PkmnRegainedHealth, - [STRINGID_PKMNHPFULL - BATTLESTRINGS_TABLE_START] = sText_PkmnHPFull, - [STRINGID_PKMNRAISEDSPDEF - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpDef, - [STRINGID_PKMNRAISEDDEF - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedDef, - [STRINGID_PKMNCOVEREDBYVEIL - BATTLESTRINGS_TABLE_START] = sText_PkmnCoveredByVeil, - [STRINGID_PKMNUSEDSAFEGUARD - BATTLESTRINGS_TABLE_START] = sText_PkmnUsedSafeguard, - [STRINGID_PKMNSAFEGUARDEXPIRED - BATTLESTRINGS_TABLE_START] = sText_PkmnSafeguardExpired, - [STRINGID_PKMNWENTTOSLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnWentToSleep, - [STRINGID_PKMNSLEPTHEALTHY - BATTLESTRINGS_TABLE_START] = sText_PkmnSleptHealthy, - [STRINGID_PKMNWHIPPEDWHIRLWIND - BATTLESTRINGS_TABLE_START] = sText_PkmnWhippedWhirlwind, - [STRINGID_PKMNTOOKSUNLIGHT - BATTLESTRINGS_TABLE_START] = sText_PkmnTookSunlight, - [STRINGID_PKMNLOWEREDHEAD - BATTLESTRINGS_TABLE_START] = sText_PkmnLoweredHead, - [STRINGID_PKMNISGLOWING - BATTLESTRINGS_TABLE_START] = sText_PkmnIsGlowing, - [STRINGID_PKMNFLEWHIGH - BATTLESTRINGS_TABLE_START] = sText_PkmnFlewHigh, - [STRINGID_PKMNDUGHOLE - BATTLESTRINGS_TABLE_START] = sText_PkmnDugHole, - [STRINGID_PKMNSQUEEZEDBYBIND - BATTLESTRINGS_TABLE_START] = sText_PkmnSqueezedByBind, - [STRINGID_PKMNTRAPPEDINVORTEX - BATTLESTRINGS_TABLE_START] = sText_PkmnTrappedInVortex, - [STRINGID_PKMNWRAPPEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnWrappedBy, - [STRINGID_PKMNCLAMPED - BATTLESTRINGS_TABLE_START] = sText_PkmnClamped, - [STRINGID_PKMNHURTBY - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtBy, - [STRINGID_PKMNFREEDFROM - BATTLESTRINGS_TABLE_START] = sText_PkmnFreedFrom, - [STRINGID_PKMNCRASHED - BATTLESTRINGS_TABLE_START] = sText_PkmnCrashed, - [STRINGID_PKMNSHROUDEDINMIST - BATTLESTRINGS_TABLE_START] = gText_PkmnShroudedInMist, - [STRINGID_PKMNPROTECTEDBYMIST - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedByMist, - [STRINGID_PKMNGETTINGPUMPED - BATTLESTRINGS_TABLE_START] = gText_PkmnGettingPumped, - [STRINGID_PKMNHITWITHRECOIL - BATTLESTRINGS_TABLE_START] = sText_PkmnHitWithRecoil, - [STRINGID_PKMNPROTECTEDITSELF2 - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedItself2, - [STRINGID_PKMNBUFFETEDBYSANDSTORM - BATTLESTRINGS_TABLE_START] = sText_PkmnBuffetedBySandstorm, - [STRINGID_PKMNPELTEDBYHAIL - BATTLESTRINGS_TABLE_START] = sText_PkmnPeltedByHail, - [STRINGID_PKMNSEEDED - BATTLESTRINGS_TABLE_START] = sText_PkmnSeeded, - [STRINGID_PKMNEVADEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnEvadedAttack, - [STRINGID_PKMNSAPPEDBYLEECHSEED - BATTLESTRINGS_TABLE_START] = sText_PkmnSappedByLeechSeed, - [STRINGID_PKMNFASTASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnFastAsleep, - [STRINGID_PKMNWOKEUP - BATTLESTRINGS_TABLE_START] = sText_PkmnWokeUp, - [STRINGID_PKMNUPROARKEPTAWAKE - BATTLESTRINGS_TABLE_START] = sText_PkmnUproarKeptAwake, - [STRINGID_PKMNWOKEUPINUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnWokeUpInUproar, - [STRINGID_PKMNCAUSEDUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnCausedUproar, - [STRINGID_PKMNMAKINGUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnMakingUproar, - [STRINGID_PKMNCALMEDDOWN - BATTLESTRINGS_TABLE_START] = sText_PkmnCalmedDown, - [STRINGID_PKMNCANTSLEEPINUPROAR - BATTLESTRINGS_TABLE_START] = sText_PkmnCantSleepInUproar, - [STRINGID_PKMNSTOCKPILED - BATTLESTRINGS_TABLE_START] = sText_PkmnStockpiled, - [STRINGID_PKMNCANTSTOCKPILE - BATTLESTRINGS_TABLE_START] = sText_PkmnCantStockpile, - [STRINGID_PKMNCANTSLEEPINUPROAR2 - BATTLESTRINGS_TABLE_START] = sText_PkmnCantSleepInUproar2, - [STRINGID_UPROARKEPTPKMNAWAKE - BATTLESTRINGS_TABLE_START] = sText_UproarKeptPkmnAwake, - [STRINGID_PKMNSTAYEDAWAKEUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnStayedAwakeUsing, - [STRINGID_PKMNSTORINGENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnStoringEnergy, - [STRINGID_PKMNUNLEASHEDENERGY - BATTLESTRINGS_TABLE_START] = sText_PkmnUnleashedEnergy, - [STRINGID_PKMNFATIGUECONFUSION - BATTLESTRINGS_TABLE_START] = sText_PkmnFatigueConfusion, - [STRINGID_PLAYERPICKEDUPMONEY - BATTLESTRINGS_TABLE_START] = sText_PlayerPickedUpMoney, - [STRINGID_PKMNUNAFFECTED - BATTLESTRINGS_TABLE_START] = sText_PkmnUnaffected, - [STRINGID_PKMNTRANSFORMEDINTO - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformedInto, - [STRINGID_PKMNMADESUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeSubstitute, - [STRINGID_PKMNHASSUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_PkmnHasSubstitute, - [STRINGID_SUBSTITUTEDAMAGED - BATTLESTRINGS_TABLE_START] = sText_SubstituteDamaged, - [STRINGID_PKMNSUBSTITUTEFADED - BATTLESTRINGS_TABLE_START] = sText_PkmnSubstituteFaded, - [STRINGID_PKMNMUSTRECHARGE - BATTLESTRINGS_TABLE_START] = sText_PkmnMustRecharge, - [STRINGID_PKMNRAGEBUILDING - BATTLESTRINGS_TABLE_START] = sText_PkmnRageBuilding, - [STRINGID_PKMNMOVEWASDISABLED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveWasDisabled, - [STRINGID_PKMNMOVEISDISABLED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveIsDisabled, - [STRINGID_PKMNMOVEDISABLEDNOMORE - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveDisabledNoMore, - [STRINGID_PKMNGOTENCORE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotEncore, - [STRINGID_PKMNENCOREENDED - BATTLESTRINGS_TABLE_START] = sText_PkmnEncoreEnded, - [STRINGID_PKMNTOOKAIM - BATTLESTRINGS_TABLE_START] = sText_PkmnTookAim, - [STRINGID_PKMNSKETCHEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSketchedMove, - [STRINGID_PKMNTRYINGTOTAKEFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnTryingToTakeFoe, - [STRINGID_PKMNTOOKFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnTookFoe, - [STRINGID_PKMNREDUCEDPP - BATTLESTRINGS_TABLE_START] = sText_PkmnReducedPP, - [STRINGID_PKMNSTOLEITEM - BATTLESTRINGS_TABLE_START] = sText_PkmnStoleItem, - [STRINGID_TARGETCANTESCAPENOW - BATTLESTRINGS_TABLE_START] = sText_TargetCantEscapeNow, - [STRINGID_PKMNFELLINTONIGHTMARE - BATTLESTRINGS_TABLE_START] = sText_PkmnFellIntoNightmare, - [STRINGID_PKMNLOCKEDINNIGHTMARE - BATTLESTRINGS_TABLE_START] = sText_PkmnLockedInNightmare, - [STRINGID_PKMNLAIDCURSE - BATTLESTRINGS_TABLE_START] = sText_PkmnLaidCurse, - [STRINGID_PKMNAFFLICTEDBYCURSE - BATTLESTRINGS_TABLE_START] = sText_PkmnAfflictedByCurse, - [STRINGID_SPIKESSCATTERED - BATTLESTRINGS_TABLE_START] = sText_SpikesScattered, - [STRINGID_PKMNHURTBYSPIKES - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtBySpikes, - [STRINGID_PKMNIDENTIFIED - BATTLESTRINGS_TABLE_START] = sText_PkmnIdentified, - [STRINGID_PKMNPERISHCOUNTFELL - BATTLESTRINGS_TABLE_START] = sText_PkmnPerishCountFell, - [STRINGID_PKMNBRACEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnBracedItself, - [STRINGID_PKMNENDUREDHIT - BATTLESTRINGS_TABLE_START] = sText_PkmnEnduredHit, - [STRINGID_MAGNITUDESTRENGTH - BATTLESTRINGS_TABLE_START] = sText_MagnitudeStrength, - [STRINGID_PKMNCUTHPMAXEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnCutHPMaxedAttack, - [STRINGID_PKMNCOPIEDSTATCHANGES - BATTLESTRINGS_TABLE_START] = sText_PkmnCopiedStatChanges, - [STRINGID_PKMNGOTFREE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotFree, - [STRINGID_PKMNSHEDLEECHSEED - BATTLESTRINGS_TABLE_START] = sText_PkmnShedLeechSeed, - [STRINGID_PKMNBLEWAWAYSPIKES - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwaySpikes, - [STRINGID_PKMNFLEDFROMBATTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnFledFromBattle, - [STRINGID_PKMNFORESAWATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnForesawAttack, - [STRINGID_PKMNTOOKATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnTookAttack, - [STRINGID_PKMNATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnAttack, - [STRINGID_PKMNCENTERATTENTION - BATTLESTRINGS_TABLE_START] = sText_PkmnCenterAttention, - [STRINGID_PKMNCHARGINGPOWER - BATTLESTRINGS_TABLE_START] = sText_PkmnChargingPower, - [STRINGID_NATUREPOWERTURNEDINTO - BATTLESTRINGS_TABLE_START] = sText_NaturePowerTurnedInto, - [STRINGID_PKMNSTATUSNORMAL - BATTLESTRINGS_TABLE_START] = sText_PkmnStatusNormal, - [STRINGID_PKMNHASNOMOVESLEFT - BATTLESTRINGS_TABLE_START] = sText_PkmnHasNoMovesLeft, - [STRINGID_PKMNSUBJECTEDTOTORMENT - BATTLESTRINGS_TABLE_START] = sText_PkmnSubjectedToTorment, - [STRINGID_PKMNCANTUSEMOVETORMENT - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveTorment, - [STRINGID_PKMNTIGHTENINGFOCUS - BATTLESTRINGS_TABLE_START] = sText_PkmnTighteningFocus, - [STRINGID_PKMNFELLFORTAUNT - BATTLESTRINGS_TABLE_START] = sText_PkmnFellForTaunt, - [STRINGID_PKMNCANTUSEMOVETAUNT - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveTaunt, - [STRINGID_PKMNREADYTOHELP - BATTLESTRINGS_TABLE_START] = sText_PkmnReadyToHelp, - [STRINGID_PKMNSWITCHEDITEMS - BATTLESTRINGS_TABLE_START] = sText_PkmnSwitchedItems, - [STRINGID_PKMNCOPIEDFOE - BATTLESTRINGS_TABLE_START] = sText_PkmnCopiedFoe, - [STRINGID_PKMNMADEWISH - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeWish, - [STRINGID_PKMNWISHCAMETRUE - BATTLESTRINGS_TABLE_START] = sText_PkmnWishCameTrue, - [STRINGID_PKMNPLANTEDROOTS - BATTLESTRINGS_TABLE_START] = sText_PkmnPlantedRoots, - [STRINGID_PKMNABSORBEDNUTRIENTS - BATTLESTRINGS_TABLE_START] = sText_PkmnAbsorbedNutrients, - [STRINGID_PKMNANCHOREDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnAnchoredItself, - [STRINGID_PKMNWASMADEDROWSY - BATTLESTRINGS_TABLE_START] = sText_PkmnWasMadeDrowsy, - [STRINGID_PKMNKNOCKEDOFF - BATTLESTRINGS_TABLE_START] = sText_PkmnKnockedOff, - [STRINGID_PKMNSWAPPEDABILITIES - BATTLESTRINGS_TABLE_START] = sText_PkmnSwappedAbilities, - [STRINGID_PKMNSEALEDOPPONENTMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSealedOpponentMove, - [STRINGID_PKMNCANTUSEMOVESEALED - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseMoveSealed, - [STRINGID_PKMNWANTSGRUDGE - BATTLESTRINGS_TABLE_START] = sText_PkmnWantsGrudge, - [STRINGID_PKMNLOSTPPGRUDGE - BATTLESTRINGS_TABLE_START] = sText_PkmnLostPPGrudge, - [STRINGID_PKMNSHROUDEDITSELF - BATTLESTRINGS_TABLE_START] = sText_PkmnShroudedItself, - [STRINGID_PKMNMOVEBOUNCED - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveBounced, - [STRINGID_PKMNWAITSFORTARGET - BATTLESTRINGS_TABLE_START] = sText_PkmnWaitsForTarget, - [STRINGID_PKMNSNATCHEDMOVE - BATTLESTRINGS_TABLE_START] = sText_PkmnSnatchedMove, - [STRINGID_PKMNMADEITRAIN - BATTLESTRINGS_TABLE_START] = sText_PkmnMadeItRain, - [STRINGID_PKMNRAISEDSPEED - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpeed, - [STRINGID_PKMNPROTECTEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnProtectedBy, - [STRINGID_PKMNPREVENTSUSAGE - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsUsage, - [STRINGID_PKMNRESTOREDHPUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnRestoredHPUsing, - [STRINGID_PKMNCHANGEDTYPEWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnChangedTypeWith, - [STRINGID_PKMNPREVENTSPARALYSISWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsParalysisWith, - [STRINGID_PKMNPREVENTSROMANCEWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsRomanceWith, - [STRINGID_PKMNPREVENTSPOISONINGWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsPoisoningWith, - [STRINGID_PKMNPREVENTSCONFUSIONWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsConfusionWith, - [STRINGID_PKMNRAISEDFIREPOWERWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedFirePowerWith, - [STRINGID_PKMNANCHORSITSELFWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnAnchorsItselfWith, - [STRINGID_PKMNCUTSATTACKWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnCutsAttackWith, - [STRINGID_PKMNPREVENTSSTATLOSSWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventsStatLossWith, - [STRINGID_PKMNHURTSWITH - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtsWith, - [STRINGID_PKMNTRACED - BATTLESTRINGS_TABLE_START] = sText_PkmnTraced, - [STRINGID_STATSHARPLY - BATTLESTRINGS_TABLE_START] = gText_StatSharply, - [STRINGID_STATROSE - BATTLESTRINGS_TABLE_START] = gText_StatRose, - [STRINGID_STATHARSHLY - BATTLESTRINGS_TABLE_START] = sText_StatHarshly, - [STRINGID_STATFELL - BATTLESTRINGS_TABLE_START] = sText_StatFell, - [STRINGID_ATTACKERSSTATROSE - BATTLESTRINGS_TABLE_START] = sText_AttackersStatRose, - [STRINGID_DEFENDERSSTATROSE - BATTLESTRINGS_TABLE_START] = gText_DefendersStatRose, - [STRINGID_ATTACKERSSTATFELL - BATTLESTRINGS_TABLE_START] = sText_AttackersStatFell, - [STRINGID_DEFENDERSSTATFELL - BATTLESTRINGS_TABLE_START] = sText_DefendersStatFell, - [STRINGID_CRITICALHIT - BATTLESTRINGS_TABLE_START] = sText_CriticalHit, - [STRINGID_ONEHITKO - BATTLESTRINGS_TABLE_START] = sText_OneHitKO, - [STRINGID_123POOF - BATTLESTRINGS_TABLE_START] = sText_123Poof, - [STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START] = sText_AndEllipsis, - [STRINGID_NOTVERYEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_NotVeryEffective, - [STRINGID_SUPEREFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_SuperEffective, - [STRINGID_GOTAWAYSAFELY - BATTLESTRINGS_TABLE_START] = sText_GotAwaySafely, - [STRINGID_WILDPKMNFLED - BATTLESTRINGS_TABLE_START] = sText_WildPkmnFled, - [STRINGID_NORUNNINGFROMTRAINERS - BATTLESTRINGS_TABLE_START] = sText_NoRunningFromTrainers, - [STRINGID_CANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_CantEscape, - [STRINGID_DONTLEAVEBIRCH - BATTLESTRINGS_TABLE_START] = sText_DontLeaveBirch, - [STRINGID_BUTNOTHINGHAPPENED - BATTLESTRINGS_TABLE_START] = sText_ButNothingHappened, - [STRINGID_BUTITFAILED - BATTLESTRINGS_TABLE_START] = sText_ButItFailed, - [STRINGID_ITHURTCONFUSION - BATTLESTRINGS_TABLE_START] = sText_ItHurtConfusion, - [STRINGID_MIRRORMOVEFAILED - BATTLESTRINGS_TABLE_START] = sText_MirrorMoveFailed, - [STRINGID_STARTEDTORAIN - BATTLESTRINGS_TABLE_START] = sText_StartedToRain, - [STRINGID_DOWNPOURSTARTED - BATTLESTRINGS_TABLE_START] = sText_DownpourStarted, - [STRINGID_RAINCONTINUES - BATTLESTRINGS_TABLE_START] = sText_RainContinues, - [STRINGID_DOWNPOURCONTINUES - BATTLESTRINGS_TABLE_START] = sText_DownpourContinues, - [STRINGID_RAINSTOPPED - BATTLESTRINGS_TABLE_START] = sText_RainStopped, - [STRINGID_SANDSTORMBREWED - BATTLESTRINGS_TABLE_START] = sText_SandstormBrewed, - [STRINGID_SANDSTORMRAGES - BATTLESTRINGS_TABLE_START] = sText_SandstormRages, - [STRINGID_SANDSTORMSUBSIDED - BATTLESTRINGS_TABLE_START] = sText_SandstormSubsided, - [STRINGID_SUNLIGHTGOTBRIGHT - BATTLESTRINGS_TABLE_START] = sText_SunlightGotBright, - [STRINGID_SUNLIGHTSTRONG - BATTLESTRINGS_TABLE_START] = sText_SunlightStrong, - [STRINGID_SUNLIGHTFADED - BATTLESTRINGS_TABLE_START] = sText_SunlightFaded, - [STRINGID_STARTEDHAIL - BATTLESTRINGS_TABLE_START] = sText_StartedHail, - [STRINGID_HAILCONTINUES - BATTLESTRINGS_TABLE_START] = sText_HailContinues, - [STRINGID_HAILSTOPPED - BATTLESTRINGS_TABLE_START] = sText_HailStopped, - [STRINGID_STARTEDSNOW - BATTLESTRINGS_TABLE_START] = sText_StartedSnow, - [STRINGID_SNOWCONTINUES -BATTLESTRINGS_TABLE_START] = sText_SnowContinues, - [STRINGID_SNOWSTOPPED - BATTLESTRINGS_TABLE_START] = sText_SnowStopped, - [STRINGID_FOGCREPTUP - BATTLESTRINGS_TABLE_START] = sText_FogCreptUp, - [STRINGID_FOGISDEEP - BATTLESTRINGS_TABLE_START] = sText_FogIsDeep, - [STRINGID_FOGLIFTED - BATTLESTRINGS_TABLE_START] = sText_FogLifted, - [STRINGID_FAILEDTOSPITUP - BATTLESTRINGS_TABLE_START] = sText_FailedToSpitUp, - [STRINGID_FAILEDTOSWALLOW - BATTLESTRINGS_TABLE_START] = sText_FailedToSwallow, - [STRINGID_WINDBECAMEHEATWAVE - BATTLESTRINGS_TABLE_START] = sText_WindBecameHeatWave, - [STRINGID_STATCHANGESGONE - BATTLESTRINGS_TABLE_START] = sText_StatChangesGone, - [STRINGID_COINSSCATTERED - BATTLESTRINGS_TABLE_START] = sText_CoinsScattered, - [STRINGID_TOOWEAKFORSUBSTITUTE - BATTLESTRINGS_TABLE_START] = sText_TooWeakForSubstitute, - [STRINGID_SHAREDPAIN - BATTLESTRINGS_TABLE_START] = sText_SharedPain, - [STRINGID_BELLCHIMED - BATTLESTRINGS_TABLE_START] = sText_BellChimed, - [STRINGID_FAINTINTHREE - BATTLESTRINGS_TABLE_START] = sText_FaintInThree, - [STRINGID_NOPPLEFT - BATTLESTRINGS_TABLE_START] = sText_NoPPLeft, - [STRINGID_BUTNOPPLEFT - BATTLESTRINGS_TABLE_START] = sText_ButNoPPLeft, - [STRINGID_PLAYERUSEDITEM - BATTLESTRINGS_TABLE_START] = sText_PlayerUsedItem, - [STRINGID_WALLYUSEDITEM - BATTLESTRINGS_TABLE_START] = sText_WallyUsedItem, - [STRINGID_TRAINERBLOCKEDBALL - BATTLESTRINGS_TABLE_START] = sText_TrainerBlockedBall, - [STRINGID_DONTBEATHIEF - BATTLESTRINGS_TABLE_START] = sText_DontBeAThief, - [STRINGID_ITDODGEDBALL - BATTLESTRINGS_TABLE_START] = sText_ItDodgedBall, - [STRINGID_YOUMISSEDPKMN - BATTLESTRINGS_TABLE_START] = sText_YouMissedPkmn, - [STRINGID_PKMNBROKEFREE - BATTLESTRINGS_TABLE_START] = sText_PkmnBrokeFree, - [STRINGID_ITAPPEAREDCAUGHT - BATTLESTRINGS_TABLE_START] = sText_ItAppearedCaught, - [STRINGID_AARGHALMOSTHADIT - BATTLESTRINGS_TABLE_START] = sText_AarghAlmostHadIt, - [STRINGID_SHOOTSOCLOSE - BATTLESTRINGS_TABLE_START] = sText_ShootSoClose, - [STRINGID_GOTCHAPKMNCAUGHTPLAYER - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaughtPlayer, - [STRINGID_GOTCHAPKMNCAUGHTWALLY - BATTLESTRINGS_TABLE_START] = sText_GotchaPkmnCaughtWally, - [STRINGID_GIVENICKNAMECAPTURED - BATTLESTRINGS_TABLE_START] = sText_GiveNicknameCaptured, - [STRINGID_PKMNSENTTOPC - BATTLESTRINGS_TABLE_START] = sText_PkmnSentToPC, - [STRINGID_PKMNDATAADDEDTODEX - BATTLESTRINGS_TABLE_START] = sText_PkmnDataAddedToDex, - [STRINGID_ITISRAINING - BATTLESTRINGS_TABLE_START] = sText_ItIsRaining, - [STRINGID_SANDSTORMISRAGING - BATTLESTRINGS_TABLE_START] = sText_SandstormIsRaging, - [STRINGID_CANTESCAPE2 - BATTLESTRINGS_TABLE_START] = sText_CantEscape2, - [STRINGID_PKMNIGNORESASLEEP - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoresAsleep, - [STRINGID_PKMNIGNOREDORDERS - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoredOrders, - [STRINGID_PKMNBEGANTONAP - BATTLESTRINGS_TABLE_START] = sText_PkmnBeganToNap, - [STRINGID_PKMNLOAFING - BATTLESTRINGS_TABLE_START] = sText_PkmnLoafing, - [STRINGID_PKMNWONTOBEY - BATTLESTRINGS_TABLE_START] = sText_PkmnWontObey, - [STRINGID_PKMNTURNEDAWAY - BATTLESTRINGS_TABLE_START] = sText_PkmnTurnedAway, - [STRINGID_PKMNPRETENDNOTNOTICE - BATTLESTRINGS_TABLE_START] = sText_PkmnPretendNotNotice, - [STRINGID_ENEMYABOUTTOSWITCHPKMN - BATTLESTRINGS_TABLE_START] = sText_EnemyAboutToSwitchPkmn, - [STRINGID_CREPTCLOSER - BATTLESTRINGS_TABLE_START] = sText_CreptCloser, - [STRINGID_CANTGETCLOSER - BATTLESTRINGS_TABLE_START] = sText_CantGetCloser, - [STRINGID_PKMNWATCHINGCAREFULLY - BATTLESTRINGS_TABLE_START] = sText_PkmnWatchingCarefully, - [STRINGID_PKMNCURIOUSABOUTX - BATTLESTRINGS_TABLE_START] = sText_PkmnCuriousAboutX, - [STRINGID_PKMNENTHRALLEDBYX - BATTLESTRINGS_TABLE_START] = sText_PkmnEnthralledByX, - [STRINGID_PKMNIGNOREDX - BATTLESTRINGS_TABLE_START] = sText_PkmnIgnoredX, - [STRINGID_THREWPOKEBLOCKATPKMN - BATTLESTRINGS_TABLE_START] = sText_ThrewPokeblockAtPkmn, - [STRINGID_OUTOFSAFARIBALLS - BATTLESTRINGS_TABLE_START] = sText_OutOfSafariBalls, - [STRINGID_PKMNSITEMCUREDPARALYSIS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredParalysis, - [STRINGID_PKMNSITEMCUREDPOISON - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredPoison, - [STRINGID_PKMNSITEMHEALEDBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemHealedBurn, - [STRINGID_PKMNSITEMDEFROSTEDIT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemDefrostedIt, - [STRINGID_PKMNSITEMWOKEIT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemWokeIt, - [STRINGID_PKMNSITEMSNAPPEDOUT - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemSnappedOut, - [STRINGID_PKMNSITEMCUREDPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemCuredProblem, - [STRINGID_PKMNSITEMRESTOREDHEALTH - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredHealth, - [STRINGID_PKMNSITEMRESTOREDPP - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredPP, - [STRINGID_PKMNSITEMRESTOREDSTATUS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredStatus, - [STRINGID_PKMNSITEMRESTOREDHPALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemRestoredHPALittle, - [STRINGID_ITEMALLOWSONLYYMOVE - BATTLESTRINGS_TABLE_START] = sText_ItemAllowsOnlyYMove, - [STRINGID_PKMNHUNGONWITHX - BATTLESTRINGS_TABLE_START] = sText_PkmnHungOnWithX, - [STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START] = gText_EmptyString3, - [STRINGID_PKMNSXPREVENTSBURNS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsBurns, - [STRINGID_PKMNSXBLOCKSY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXBlocksY, - [STRINGID_PKMNSXRESTOREDHPALITTLE2 - BATTLESTRINGS_TABLE_START] = sText_PkmnsXRestoredHPALittle2, - [STRINGID_PKMNSXWHIPPEDUPSANDSTORM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXWhippedUpSandstorm, - [STRINGID_PKMNSXPREVENTSYLOSS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsYLoss, - [STRINGID_PKMNSXINFATUATEDY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXInfatuatedY, - [STRINGID_PKMNSXMADEYINEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeYIneffective, - [STRINGID_PKMNSXCUREDYPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXCuredYProblem, - [STRINGID_ITSUCKEDLIQUIDOOZE - BATTLESTRINGS_TABLE_START] = sText_ItSuckedLiquidOoze, - [STRINGID_PKMNTRANSFORMED - BATTLESTRINGS_TABLE_START] = sText_PkmnTransformed, - [STRINGID_ELECTRICITYWEAKENED - BATTLESTRINGS_TABLE_START] = sText_ElectricityWeakened, - [STRINGID_FIREWEAKENED - BATTLESTRINGS_TABLE_START] = sText_FireWeakened, - [STRINGID_PKMNHIDUNDERWATER - BATTLESTRINGS_TABLE_START] = sText_PkmnHidUnderwater, - [STRINGID_PKMNSPRANGUP - BATTLESTRINGS_TABLE_START] = sText_PkmnSprangUp, - [STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START] = sText_HMMovesCantBeForgotten, - [STRINGID_XFOUNDONEY - BATTLESTRINGS_TABLE_START] = sText_XFoundOneY, - [STRINGID_PLAYERDEFEATEDTRAINER1 - BATTLESTRINGS_TABLE_START] = sText_PlayerDefeatedLinkTrainerTrainer1, - [STRINGID_SOOTHINGAROMA - BATTLESTRINGS_TABLE_START] = sText_SoothingAroma, - [STRINGID_ITEMSCANTBEUSEDNOW - BATTLESTRINGS_TABLE_START] = sText_ItemsCantBeUsedNow, - [STRINGID_FORXCOMMAYZ - BATTLESTRINGS_TABLE_START] = sText_ForXCommaYZ, - [STRINGID_USINGITEMSTATOFPKMNROSE - BATTLESTRINGS_TABLE_START] = sText_UsingItemTheStatOfPkmnRose, - [STRINGID_PKMNUSEDXTOGETPUMPED - BATTLESTRINGS_TABLE_START] = sText_PkmnUsedXToGetPumped, - [STRINGID_PKMNSXMADEYUSELESS - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeYUseless, - [STRINGID_PKMNTRAPPEDBYSANDTOMB - BATTLESTRINGS_TABLE_START] = sText_PkmnTrappedBySandTomb, - [STRINGID_EMPTYSTRING4 - BATTLESTRINGS_TABLE_START] = sText_EmptyString4, - [STRINGID_ABOOSTED - BATTLESTRINGS_TABLE_START] = sText_ABoosted, - [STRINGID_PKMNSXINTENSIFIEDSUN - BATTLESTRINGS_TABLE_START] = sText_PkmnsXIntensifiedSun, - [STRINGID_PKMNMAKESGROUNDMISS - BATTLESTRINGS_TABLE_START] = sText_PkmnMakesGroundMiss, - [STRINGID_YOUTHROWABALLNOWRIGHT - BATTLESTRINGS_TABLE_START] = sText_YouThrowABallNowRight, - [STRINGID_PKMNSXTOOKATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnsXTookAttack, - [STRINGID_PKMNCHOSEXASDESTINY - BATTLESTRINGS_TABLE_START] = sText_PkmnChoseXAsDestiny, - [STRINGID_PKMNLOSTFOCUS - BATTLESTRINGS_TABLE_START] = sText_PkmnLostFocus, - [STRINGID_USENEXTPKMN - BATTLESTRINGS_TABLE_START] = sText_UseNextPkmn, - [STRINGID_PKMNFLEDUSINGITS - BATTLESTRINGS_TABLE_START] = sText_PkmnFledUsingIts, - [STRINGID_PKMNFLEDUSING - BATTLESTRINGS_TABLE_START] = sText_PkmnFledUsing, - [STRINGID_PKMNWASDRAGGEDOUT - BATTLESTRINGS_TABLE_START] = sText_PkmnWasDraggedOut, - [STRINGID_PREVENTEDFROMWORKING - BATTLESTRINGS_TABLE_START] = sText_PreventedFromWorking, - [STRINGID_PKMNSITEMNORMALIZEDSTATUS - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemNormalizedStatus, - [STRINGID_TRAINER1USEDITEM - BATTLESTRINGS_TABLE_START] = sText_Trainer1UsedItem, - [STRINGID_BOXISFULL - BATTLESTRINGS_TABLE_START] = sText_BoxIsFull, - [STRINGID_PKMNAVOIDEDATTACK - BATTLESTRINGS_TABLE_START] = sText_PkmnAvoidedAttack, - [STRINGID_PKMNSXMADEITINEFFECTIVE - BATTLESTRINGS_TABLE_START] = sText_PkmnsXMadeItIneffective, - [STRINGID_PKMNSXPREVENTSFLINCHING - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsFlinching, - [STRINGID_PKMNALREADYHASBURN - BATTLESTRINGS_TABLE_START] = sText_PkmnAlreadyHasBurn, - [STRINGID_STATSWONTDECREASE2 - BATTLESTRINGS_TABLE_START] = sText_StatsWontDecrease2, - [STRINGID_PKMNSXBLOCKSY2 - BATTLESTRINGS_TABLE_START] = sText_PkmnsXBlocksY2, - [STRINGID_PKMNSXWOREOFF - BATTLESTRINGS_TABLE_START] = sText_PkmnsXWoreOff, - [STRINGID_PKMNRAISEDDEFALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedDefALittle, - [STRINGID_PKMNRAISEDSPDEFALITTLE - BATTLESTRINGS_TABLE_START] = sText_PkmnRaisedSpDefALittle, - [STRINGID_THEWALLSHATTERED - BATTLESTRINGS_TABLE_START] = sText_TheWallShattered, - [STRINGID_PKMNSXPREVENTSYSZ - BATTLESTRINGS_TABLE_START] = sText_PkmnsXPreventsYsZ, - [STRINGID_PKMNSXCUREDITSYPROBLEM - BATTLESTRINGS_TABLE_START] = sText_PkmnsXCuredItsYProblem, - [STRINGID_ATTACKERCANTESCAPE - BATTLESTRINGS_TABLE_START] = sText_AttackerCantEscape, - [STRINGID_PKMNOBTAINEDX - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedX, - [STRINGID_PKMNOBTAINEDX2 - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedX2, - [STRINGID_PKMNOBTAINEDXYOBTAINEDZ - BATTLESTRINGS_TABLE_START] = sText_PkmnObtainedXYObtainedZ, - [STRINGID_BUTNOEFFECT - BATTLESTRINGS_TABLE_START] = sText_ButNoEffect, - [STRINGID_PKMNSXHADNOEFFECTONY - BATTLESTRINGS_TABLE_START] = sText_PkmnsXHadNoEffectOnY, - [STRINGID_TWOENEMIESDEFEATED - BATTLESTRINGS_TABLE_START] = sText_TwoInGameTrainersDefeated, - [STRINGID_TRAINER2LOSETEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2LoseText, - [STRINGID_PKMNINCAPABLEOFPOWER - BATTLESTRINGS_TABLE_START] = sText_PkmnIncapableOfPower, - [STRINGID_GLINTAPPEARSINEYE - BATTLESTRINGS_TABLE_START] = sText_GlintAppearsInEye, - [STRINGID_PKMNGETTINGINTOPOSITION - BATTLESTRINGS_TABLE_START] = sText_PkmnGettingIntoPosition, - [STRINGID_PKMNBEGANGROWLINGDEEPLY - BATTLESTRINGS_TABLE_START] = sText_PkmnBeganGrowlingDeeply, - [STRINGID_PKMNEAGERFORMORE - BATTLESTRINGS_TABLE_START] = sText_PkmnEagerForMore, - [STRINGID_DEFEATEDOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_DefeatedOpponentByReferee, - [STRINGID_LOSTTOOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_LostToOpponentByReferee, - [STRINGID_TIEDOPPONENTBYREFEREE - BATTLESTRINGS_TABLE_START] = sText_TiedOpponentByReferee, - [STRINGID_QUESTIONFORFEITMATCH - BATTLESTRINGS_TABLE_START] = sText_QuestionForfeitMatch, - [STRINGID_FORFEITEDMATCH - BATTLESTRINGS_TABLE_START] = sText_ForfeitedMatch, - [STRINGID_PKMNTRANSFERREDSOMEONESPC - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredSomeonesPC, - [STRINGID_PKMNTRANSFERREDLANETTESPC - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredLanettesPC, - [STRINGID_PKMNBOXSOMEONESPCFULL - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredSomeonesPCBoxFull, - [STRINGID_PKMNBOXLANETTESPCFULL - BATTLESTRINGS_TABLE_START] = gText_PkmnTransferredLanettesPCBoxFull, - [STRINGID_TRAINER1WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer1WinText, - [STRINGID_TRAINER2WINTEXT - BATTLESTRINGS_TABLE_START] = sText_Trainer2WinText, - [STRINGID_ENDUREDSTURDY - BATTLESTRINGS_TABLE_START] = sText_EnduredViaSturdy, - [STRINGID_POWERHERB - BATTLESTRINGS_TABLE_START] = sText_PowerHerbActivation, - [STRINGID_HURTBYITEM - BATTLESTRINGS_TABLE_START] = sText_HurtByItem, - [STRINGID_PSNBYITEM - BATTLESTRINGS_TABLE_START] = sText_BadlyPoisonedByItem, - [STRINGID_BRNBYITEM - BATTLESTRINGS_TABLE_START] = sText_BurnedByItem, - [STRINGID_DEFABILITYIN - BATTLESTRINGS_TABLE_START] = sText_TargetAbilityActivates, - [STRINGID_GRAVITYINTENSIFIED - BATTLESTRINGS_TABLE_START] = sText_GravityIntensified, - [STRINGID_TARGETIDENTIFIED - BATTLESTRINGS_TABLE_START] = sText_TargetIdentified, - [STRINGID_TARGETWOKEUP - BATTLESTRINGS_TABLE_START] = sText_TargetWokeUp, - [STRINGID_PKMNSTOLEANDATEITEM - BATTLESTRINGS_TABLE_START] = sText_PkmnStoleAndAteItem, - [STRINGID_TAILWINDBLEW - BATTLESTRINGS_TABLE_START] = sText_TailWindBlew, - [STRINGID_PKMNWENTBACK - BATTLESTRINGS_TABLE_START] = sText_PkmnWentBack, - [STRINGID_PKMNCANTUSEITEMSANYMORE - BATTLESTRINGS_TABLE_START] = sText_PkmnCantUseItemsAnymore, - [STRINGID_PKMNFLUNG - BATTLESTRINGS_TABLE_START] = sText_PkmnFlung, - [STRINGID_PKMNPREVENTEDFROMHEALING - BATTLESTRINGS_TABLE_START] = sText_PkmnPreventedFromHealing, - [STRINGID_PKMNSWITCHEDATKANDDEF - BATTLESTRINGS_TABLE_START] = sText_PkmnSwitchedAtkAndDef, - [STRINGID_PKMNSABILITYSUPPRESSED - BATTLESTRINGS_TABLE_START] = sText_PkmnsAbilitySuppressed, - [STRINGID_SHIELDEDFROMCRITICALHITS - BATTLESTRINGS_TABLE_START] = sText_ShieldedFromCriticalHits, - [STRINGID_SWITCHEDATKANDSPATK - BATTLESTRINGS_TABLE_START] = sText_SwitchedAtkAndSpAtk, - [STRINGID_SWITCHEDDEFANDSPDEF - BATTLESTRINGS_TABLE_START] = sText_SwitchedDefAndSpDef, - [STRINGID_PKMNACQUIREDABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnAcquiredAbility, - [STRINGID_POISONSPIKESSCATTERED - BATTLESTRINGS_TABLE_START] = sText_PoisonSpikesScattered, - [STRINGID_PKMNSWITCHEDSTATCHANGES - BATTLESTRINGS_TABLE_START] = sText_PkmnSwitchedStatChanges, - [STRINGID_PKMNSURROUNDEDWITHVEILOFWATER - BATTLESTRINGS_TABLE_START] = sText_PkmnSurroundedWithVeilOfWater, - [STRINGID_PKMNLEVITATEDONELECTROMAGNETISM - BATTLESTRINGS_TABLE_START] = sText_PkmnLevitatedOnElectromagnetism, - [STRINGID_PKMNTWISTEDDIMENSIONS - BATTLESTRINGS_TABLE_START] = sText_PkmnTwistedDimensions, - [STRINGID_DIMENSIONSWERETWISTED - BATTLESTRINGS_TABLE_START] = sText_DimensionsWereTwisted, - [STRINGID_POINTEDSTONESFLOAT - BATTLESTRINGS_TABLE_START] = sText_PointedStonesFloat, - [STRINGID_CLOAKEDINMYSTICALMOONLIGHT - BATTLESTRINGS_TABLE_START] = sText_CloakedInMysticalMoonlight, - [STRINGID_TRAPPEDBYSWIRLINGMAGMA - BATTLESTRINGS_TABLE_START] = sText_TrappedBySwirlingMagma, - [STRINGID_VANISHEDINSTANTLY - BATTLESTRINGS_TABLE_START] = sText_VanishedInstantly, - [STRINGID_PROTECTEDTEAM - BATTLESTRINGS_TABLE_START] = sText_ProtectedTeam, - [STRINGID_SHAREDITSGUARD - BATTLESTRINGS_TABLE_START] = sText_SharedItsGuard, - [STRINGID_SHAREDITSPOWER - BATTLESTRINGS_TABLE_START] = sText_SharedItsPower, - [STRINGID_SWAPSDEFANDSPDEFOFALLPOKEMON - BATTLESTRINGS_TABLE_START] = sText_SwapsDefAndSpDefOfAllPkmn, - [STRINGID_BIZARREAREACREATED - BATTLESTRINGS_TABLE_START] = sText_BizzareAreaCreated, - [STRINGID_BECAMENIMBLE - BATTLESTRINGS_TABLE_START] = sText_BecameNimble, - [STRINGID_HURLEDINTOTHEAIR - BATTLESTRINGS_TABLE_START] = sText_HurledIntoTheAir, - [STRINGID_HELDITEMSLOSEEFFECTS - BATTLESTRINGS_TABLE_START] = sText_HeldItemsLoseEffects, - [STRINGID_BIZARREARENACREATED - BATTLESTRINGS_TABLE_START] = sText_BizarreArenaCreated, - [STRINGID_FELLSTRAIGHTDOWN - BATTLESTRINGS_TABLE_START] = sText_FellStraightDown, - [STRINGID_TARGETCHANGEDTYPE - BATTLESTRINGS_TABLE_START] = sText_TargetChangedType, - [STRINGID_PKMNACQUIREDSIMPLE - BATTLESTRINGS_TABLE_START] = sText_PkmnAcquiredSimple, - [STRINGID_EMPTYSTRING5 - BATTLESTRINGS_TABLE_START] = sText_EmptyString4, - [STRINGID_KINDOFFER - BATTLESTRINGS_TABLE_START] = sText_KindOffer, - [STRINGID_RESETSTARGETSSTATLEVELS - BATTLESTRINGS_TABLE_START] = sText_ResetsTargetsStatLevels, - [STRINGID_EMPTYSTRING6 - BATTLESTRINGS_TABLE_START] = sText_EmptyString4, - [STRINGID_ALLYSWITCHPOSITION - BATTLESTRINGS_TABLE_START] = sText_AllySwitchPosition, - [STRINGID_RESTORETARGETSHEALTH - BATTLESTRINGS_TABLE_START] = sText_RestoreTargetsHealth, - [STRINGID_TOOKPJMNINTOTHESKY - BATTLESTRINGS_TABLE_START] = sText_TookPkmnIntoTheSky, - [STRINGID_FREEDFROMSKYDROP - BATTLESTRINGS_TABLE_START] = sText_FreedFromSkyDrop, - [STRINGID_POSTPONETARGETMOVE - BATTLESTRINGS_TABLE_START] = sText_PostponeTargetMove, - [STRINGID_REFLECTTARGETSTYPE - BATTLESTRINGS_TABLE_START] = sText_ReflectTargetsType, - [STRINGID_TRANSFERHELDITEM - BATTLESTRINGS_TABLE_START] = sText_TransferHeldItem, - [STRINGID_EMBARGOENDS - BATTLESTRINGS_TABLE_START] = sText_EmbargoEnds, - [STRINGID_ELECTROMAGNETISM - BATTLESTRINGS_TABLE_START] = sText_Electromagnetism, - [STRINGID_BUFFERENDS - BATTLESTRINGS_TABLE_START] = sText_BufferEnds, - [STRINGID_TELEKINESISENDS - BATTLESTRINGS_TABLE_START] = sText_TelekinesisEnds, - [STRINGID_TAILWINDENDS - BATTLESTRINGS_TABLE_START] = sText_TailwindEnds, - [STRINGID_LUCKYCHANTENDS - BATTLESTRINGS_TABLE_START] = sText_LuckyChantEnds, - [STRINGID_TRICKROOMENDS - BATTLESTRINGS_TABLE_START] = sText_TrickRoomEnds, - [STRINGID_WONDERROOMENDS - BATTLESTRINGS_TABLE_START] = sText_WonderRoomEnds, - [STRINGID_MAGICROOMENDS - BATTLESTRINGS_TABLE_START] = sText_MagicRoomEnds, - [STRINGID_MUDSPORTENDS - BATTLESTRINGS_TABLE_START] = sText_MudSportEnds, - [STRINGID_WATERSPORTENDS - BATTLESTRINGS_TABLE_START] = sText_WaterSportEnds, - [STRINGID_GRAVITYENDS - BATTLESTRINGS_TABLE_START] = sText_GravityEnds, - [STRINGID_AQUARINGHEAL - BATTLESTRINGS_TABLE_START] = sText_AquaRingHeal, - [STRINGID_ELECTRICTERRAINENDS - BATTLESTRINGS_TABLE_START] = sText_ElectricTerrainEnds, - [STRINGID_MISTYTERRAINENDS - BATTLESTRINGS_TABLE_START] = sText_MistyTerrainEnds, - [STRINGID_PSYCHICTERRAINENDS - BATTLESTRINGS_TABLE_START] = sText_PsychicTerrainEnds, - [STRINGID_GRASSYTERRAINENDS - BATTLESTRINGS_TABLE_START] = sText_GrassyTerrainEnds, - [STRINGID_TARGETABILITYSTATRAISE - BATTLESTRINGS_TABLE_START] = sText_TargetAbilityRaisedStat, - [STRINGID_TARGETSSTATWASMAXEDOUT - BATTLESTRINGS_TABLE_START] = sText_TargetsStatWasMaxedOut, - [STRINGID_ATTACKERABILITYSTATRAISE - BATTLESTRINGS_TABLE_START] = sText_AttackerAbilityRaisedStat, - [STRINGID_POISONHEALHPUP - BATTLESTRINGS_TABLE_START] = sText_PoisonHealHpUp, - [STRINGID_BADDREAMSDMG - BATTLESTRINGS_TABLE_START] = sText_BadDreamsDmg, - [STRINGID_MOLDBREAKERENTERS - BATTLESTRINGS_TABLE_START] = sText_MoldBreakerEnters, - [STRINGID_TERAVOLTENTERS - BATTLESTRINGS_TABLE_START] = sText_TeravoltEnters, - [STRINGID_TURBOBLAZEENTERS - BATTLESTRINGS_TABLE_START] = sText_TurboblazeEnters, - [STRINGID_SLOWSTARTENTERS - BATTLESTRINGS_TABLE_START] = sText_SlowStartEnters, - [STRINGID_SLOWSTARTEND - BATTLESTRINGS_TABLE_START] = sText_SlowStartEnd, - [STRINGID_SOLARPOWERHPDROP - BATTLESTRINGS_TABLE_START] = sText_SolarPowerHpDrop, - [STRINGID_AFTERMATHDMG - BATTLESTRINGS_TABLE_START] = sText_AftermathDmg, - [STRINGID_ANTICIPATIONACTIVATES - BATTLESTRINGS_TABLE_START] = sText_AnticipationActivates, - [STRINGID_FOREWARNACTIVATES - BATTLESTRINGS_TABLE_START] = sText_ForewarnActivates, - [STRINGID_ICEBODYHPGAIN - BATTLESTRINGS_TABLE_START] = sText_IceBodyHpGain, - [STRINGID_SNOWWARNINGHAIL - BATTLESTRINGS_TABLE_START] = sText_SnowWarningHail, - [STRINGID_SNOWWARNINGSNOW - BATTLESTRINGS_TABLE_START] = sText_SnowWarningSnow, - [STRINGID_FRISKACTIVATES - BATTLESTRINGS_TABLE_START] = sText_FriskActivates, - [STRINGID_UNNERVEENTERS - BATTLESTRINGS_TABLE_START] = sText_UnnerveEnters, - [STRINGID_HARVESTBERRY - BATTLESTRINGS_TABLE_START] = sText_HarvestBerry, - [STRINGID_LASTABILITYRAISEDSTAT - BATTLESTRINGS_TABLE_START] = sText_LastAbilityRaisedBuff1, - [STRINGID_MAGICBOUNCEACTIVATES - BATTLESTRINGS_TABLE_START] = sText_MagicBounceActivates, - [STRINGID_PROTEANTYPECHANGE - BATTLESTRINGS_TABLE_START] = sText_ProteanTypeChange, - [STRINGID_SYMBIOSISITEMPASS - BATTLESTRINGS_TABLE_START] = sText_SymbiosisItemPass, - [STRINGID_STEALTHROCKDMG - BATTLESTRINGS_TABLE_START] = sText_StealthRockDmg, - [STRINGID_TOXICSPIKESABSORBED - BATTLESTRINGS_TABLE_START] = sText_ToxicSpikesAbsorbed, - [STRINGID_TOXICSPIKESPOISONED - BATTLESTRINGS_TABLE_START] = sText_ToxicSpikesPoisoned, - [STRINGID_STICKYWEBSWITCHIN - BATTLESTRINGS_TABLE_START] = sText_StickyWebSwitchIn, - [STRINGID_HEALINGWISHCAMETRUE - BATTLESTRINGS_TABLE_START] = sText_HealingWishCameTrue, - [STRINGID_HEALINGWISHHEALED - BATTLESTRINGS_TABLE_START] = sText_HealingWishHealed, - [STRINGID_LUNARDANCECAMETRUE - BATTLESTRINGS_TABLE_START] = sText_LunarDanceCameTrue, - [STRINGID_CUSEDBODYDISABLED - BATTLESTRINGS_TABLE_START] = sText_CursedBodyDisabled, - [STRINGID_ATTACKERACQUIREDABILITY - BATTLESTRINGS_TABLE_START] = sText_AttackerAquiredAbility, - [STRINGID_TARGETABILITYSTATLOWER - BATTLESTRINGS_TABLE_START] = sText_TargetAbilityLoweredStat, - [STRINGID_TARGETSTATWONTGOHIGHER - BATTLESTRINGS_TABLE_START] = sText_TargetStatWontGoHigher, - [STRINGID_PKMNMOVEBOUNCEDABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnMoveBouncedViaAbility, - [STRINGID_IMPOSTERTRANSFORM - BATTLESTRINGS_TABLE_START] = sText_ImposterTransform, - [STRINGID_ASSAULTVESTDOESNTALLOW - BATTLESTRINGS_TABLE_START] = sText_AssaultVestDoesntAllow, - [STRINGID_GRAVITYPREVENTSUSAGE - BATTLESTRINGS_TABLE_START] = sText_GravityPreventsUsage, - [STRINGID_HEALBLOCKPREVENTSUSAGE - BATTLESTRINGS_TABLE_START] = sText_HealBlockPreventsUsage, - [STRINGID_NOTDONEYET - BATTLESTRINGS_TABLE_START] = sText_NotDoneYet, - [STRINGID_STICKYWEBUSED - BATTLESTRINGS_TABLE_START] = sText_StickyWebUsed, - [STRINGID_QUASHSUCCESS - BATTLESTRINGS_TABLE_START] = sText_QuashSuccess, - [STRINGID_PKMNBLEWAWAYTOXICSPIKES - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwayToxicSpikes, - [STRINGID_PKMNBLEWAWAYSTICKYWEB - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwayStickyWeb, - [STRINGID_PKMNBLEWAWAYSTEALTHROCK - BATTLESTRINGS_TABLE_START] = sText_PkmnBlewAwayStealthRock, - [STRINGID_SPIKESDISAPPEAREDFROMTEAM - BATTLESTRINGS_TABLE_START] = sText_SpikesDisappearedFromTeam, - [STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM - BATTLESTRINGS_TABLE_START] = sText_ToxicSpikesDisappearedFromTeam, - [STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM - BATTLESTRINGS_TABLE_START] = sText_StealthRockDisappearedFromTeam, - [STRINGID_STICKYWEBDISAPPEAREDFROMTEAM - BATTLESTRINGS_TABLE_START] = sText_StickyWebDisappearedFromTeam, - [STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM - BATTLESTRINGS_TABLE_START] = sText_SharpSteelDisappearedFromTeam, - [STRINGID_IONDELUGEON - BATTLESTRINGS_TABLE_START] = sText_IonDelugeOn, - [STRINGID_TOPSYTURVYSWITCHEDSTATS - BATTLESTRINGS_TABLE_START] = sText_TopsyTurvySwitchedStats, - [STRINGID_TERRAINBECOMESMISTY - BATTLESTRINGS_TABLE_START] = sText_TerrainBecomesMisty, - [STRINGID_TERRAINBECOMESGRASSY - BATTLESTRINGS_TABLE_START] = sText_TerrainBecomesGrassy, - [STRINGID_TERRAINBECOMESELECTRIC - BATTLESTRINGS_TABLE_START] = sText_TerrainBecomesElectric, - [STRINGID_TERRAINBECOMESPSYCHIC - BATTLESTRINGS_TABLE_START] = sText_TerrainBecomesPsychic, - [STRINGID_TARGETELECTRIFIED - BATTLESTRINGS_TABLE_START] = sText_TargetElectrified, - [STRINGID_MEGAEVOREACTING - BATTLESTRINGS_TABLE_START] = sText_MegaEvoReacting, - [STRINGID_FERVENTWISHREACHED - BATTLESTRINGS_TABLE_START] = sText_FerventWishReached, - [STRINGID_MEGAEVOEVOLVED - BATTLESTRINGS_TABLE_START] = sText_MegaEvoEvolved, - [STRINGID_DRASTICALLY - BATTLESTRINGS_TABLE_START] = sText_drastically, - [STRINGID_SEVERELY - BATTLESTRINGS_TABLE_START] = sText_severely, - [STRINGID_INFESTATION - BATTLESTRINGS_TABLE_START] = sText_Infestation, - [STRINGID_NOEFFECTONTARGET - BATTLESTRINGS_TABLE_START] = sText_NoEffectOnTarget, - [STRINGID_BURSTINGFLAMESHIT - BATTLESTRINGS_TABLE_START] = sText_BurstingFlames, - [STRINGID_BESTOWITEMGIVING - BATTLESTRINGS_TABLE_START] = sText_BestowItemGiving, - [STRINGID_THIRDTYPEADDED - BATTLESTRINGS_TABLE_START] = sText_ThirdTypeAdded, - [STRINGID_FELLFORFEINT - BATTLESTRINGS_TABLE_START] = sText_FellForFeint, - [STRINGID_POKEMONCANNOTUSEMOVE - BATTLESTRINGS_TABLE_START] = sText_PokemonCannotUseMove, - [STRINGID_COVEREDINPOWDER - BATTLESTRINGS_TABLE_START] = sText_CoveredInPowder, - [STRINGID_POWDEREXPLODES - BATTLESTRINGS_TABLE_START] = sText_PowderExplodes, - [STRINGID_GRAVITYGROUNDING - BATTLESTRINGS_TABLE_START] = sText_GravityGrounding, - [STRINGID_MISTYTERRAINPREVENTS - BATTLESTRINGS_TABLE_START] = sText_MistyTerrainPreventsStatus, - [STRINGID_GRASSYTERRAINHEALS - BATTLESTRINGS_TABLE_START] = sText_GrassyTerrainHeals, - [STRINGID_ELECTRICTERRAINPREVENTS - BATTLESTRINGS_TABLE_START] = sText_ElectricTerrainPreventsSleep, - [STRINGID_PSYCHICTERRAINPREVENTS - BATTLESTRINGS_TABLE_START] = sText_PsychicTerrainPreventsPriority, - [STRINGID_AURAFLAREDTOLIFE - BATTLESTRINGS_TABLE_START] = sText_AuraFlaredToLife, - [STRINGID_AIRLOCKACTIVATES - BATTLESTRINGS_TABLE_START] = sText_AirLockActivates, - [STRINGID_PRESSUREENTERS - BATTLESTRINGS_TABLE_START] = sText_PressureActivates, - [STRINGID_DARKAURAENTERS - BATTLESTRINGS_TABLE_START] = sText_DarkAuraActivates, - [STRINGID_FAIRYAURAENTERS - BATTLESTRINGS_TABLE_START] = sText_FairyAuraActivates, - [STRINGID_AURABREAKENTERS - BATTLESTRINGS_TABLE_START] = sText_AuraBreakActivates, - [STRINGID_COMATOSEENTERS - BATTLESTRINGS_TABLE_START] = sText_ComatoseActivates, - [STRINGID_SCREENCLEANERENTERS - BATTLESTRINGS_TABLE_START] = sText_ScreenCleanerActivates, - [STRINGID_BOTHCANNOLONGERESCAPE - BATTLESTRINGS_TABLE_START] = sText_BothCanNoLongerEscape, - [STRINGID_CANTESCAPEDUETOUSEDMOVE - BATTLESTRINGS_TABLE_START] = sText_CantEscapeDueToUsedMove, - [STRINGID_PKMNBECAMEWEAKERTOFIRE - BATTLESTRINGS_TABLE_START] = sText_PkmnBecameWeakerToFire, - [STRINGID_ABOUTTOUSEPOLTERGEIST - BATTLESTRINGS_TABLE_START] = sText_PkmnAboutToBeAttackedByItsItem, - [STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE - BATTLESTRINGS_TABLE_START] = sText_CantEscapeBecauseOfCurrentMove, - [STRINGID_PKMNTOOKTARGETHIGH - BATTLESTRINGS_TABLE_START] = sText_PkmnTookTargetHigh, - [STRINGID_TARGETTOOHEAVY - BATTLESTRINGS_TABLE_START] = sText_TargetTooHeavy, - [STRINGID_ATTACKERLOSTELECTRICTYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostElectricType, - [STRINGID_PKMNSABILITYPREVENTSABILITY - BATTLESTRINGS_TABLE_START] = sText_PkmnsAbilityPreventsAbility, - [STRINGID_PKMNHURTBYFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnHurtByFrostbite, - [STRINGID_PKMNGOTFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnGotFrostbite, - [STRINGID_PKMNSITEMHEALEDFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_PkmnsItemHealedFrostbite, - [STRINGID_ATTACKERHEALEDITSFROSTBITE - BATTLESTRINGS_TABLE_START] = sText_AttackerHealedItsFrostbite, - [STRINGID_PKMNFROSTBITEHEALED - BATTLESTRINGS_TABLE_START] = sText_PkmnFrostbiteHealed, - [STRINGID_PKMNFROSTBITEHEALED2 - BATTLESTRINGS_TABLE_START] = sText_PkmnFrostbiteHealed2, - [STRINGID_PKMNFROSTBITEHEALEDBY - BATTLESTRINGS_TABLE_START] = sText_PkmnFrostbiteHealedBy, - [STRINGID_ULTRABURSTREACTING - BATTLESTRINGS_TABLE_START] = sText_UltraBurstReacting, - [STRINGID_ULTRABURSTCOMPLETED - BATTLESTRINGS_TABLE_START] = sText_UltraBurstCompleted, - [STRINGID_TEAMGAINEDEXP - BATTLESTRINGS_TABLE_START] = sText_TeamGainedEXP, - [STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP - BATTLESTRINGS_TABLE_START] = sText_TargetCoveredInStickyCandySyrup, - [STRINGID_ITEMWASUSEDUP - BATTLESTRINGS_TABLE_START] = sText_ItemWasUsedUp, - [STRINGID_ATTACKERLOSTITSTYPE - BATTLESTRINGS_TABLE_START] = sText_AttackerLostItsType, - [STRINGID_CLOAKEDINAHARSHLIGHT - BATTLESTRINGS_TABLE_START] = sText_PkmnIsCloakedInAHarshLight, - [STRINGID_POKEFLUTECATCHY - BATTLESTRINGS_TABLE_START] = sText_PlayedFluteCatchyTune, - [STRINGID_POKEFLUTE - BATTLESTRINGS_TABLE_START] = sText_PlayedThe, - [STRINGID_MONHEARINGFLUTEAWOKE - BATTLESTRINGS_TABLE_START] = sText_PkmnHearingFluteAwoke, + [STRINGID_TRAINER1LOSETEXT] = COMPOUND_STRING("{B_TRAINER1_LOSE_TEXT}"), + [STRINGID_PKMNGAINEDEXP] = COMPOUND_STRING("{B_BUFF1} gained{B_BUFF2} {B_BUFF3} Exp. Points!\p"), + [STRINGID_PKMNGREWTOLV] = COMPOUND_STRING("{B_BUFF1} grew to Lv. {B_BUFF2}!{WAIT_SE}\p"), + [STRINGID_PKMNLEARNEDMOVE] = COMPOUND_STRING("{B_BUFF1} learned {B_BUFF2}!{WAIT_SE}\p"), + [STRINGID_TRYTOLEARNMOVE1] = COMPOUND_STRING("{B_BUFF1} wants to learn the move {B_BUFF2}.\p"), + [STRINGID_TRYTOLEARNMOVE2] = COMPOUND_STRING("However, {B_BUFF1} already knows four moves.\p"), + [STRINGID_TRYTOLEARNMOVE3] = COMPOUND_STRING("Should another move be forgotten and replaced with {B_BUFF2}?"), + [STRINGID_PKMNFORGOTMOVE] = COMPOUND_STRING("{B_BUFF1} forgot {B_BUFF2}…\p"), + [STRINGID_STOPLEARNINGMOVE] = COMPOUND_STRING("{PAUSE 32}Do you want to give up on having {B_BUFF1} learn {B_BUFF2}?"), + [STRINGID_DIDNOTLEARNMOVE] = COMPOUND_STRING("{B_BUFF1} did not learn {B_BUFF2}.\p"), + [STRINGID_PKMNLEARNEDMOVE2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} learned {B_BUFF1}!"), + [STRINGID_ATTACKMISSED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s attack missed!"), + [STRINGID_PKMNPROTECTEDITSELF] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} protected itself!"), + [STRINGID_STATSWONTINCREASE2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s stats won't go any higher!"), + [STRINGID_AVOIDEDDAMAGE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} avoided damage with {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_ITDOESNTAFFECT] = COMPOUND_STRING("It doesn't affect {B_DEF_NAME_WITH_PREFIX2}…"), + [STRINGID_ATTACKERFAINTED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} fainted!\p"), + [STRINGID_TARGETFAINTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fainted!\p"), + [STRINGID_PLAYERGOTMONEY] = COMPOUND_STRING("You got ¥{B_BUFF1} for winning!\p"), + [STRINGID_PLAYERWHITEOUT] = COMPOUND_STRING("You have no more Pokémon that can fight!\p"), +#if B_WHITEOUT_MONEY >= GEN_4 + [STRINGID_PLAYERWHITEOUT2] = COMPOUND_STRING("You panicked and dropped ¥{B_BUFF1}…\pYou were overwhelmed by your defeat!{PAUSE_UNTIL_PRESS}"), +#else + [STRINGID_PLAYERWHITEOUT2] = COMPOUND_STRING("You were overwhelmed by your defeat!{PAUSE_UNTIL_PRESS}"), +#endif + [STRINGID_PREVENTSESCAPE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} prevents escape with {B_SCR_ACTIVE_ABILITY}!\p"), + [STRINGID_HITXTIMES] = COMPOUND_STRING("The Pokémon was hit {B_BUFF1} time(s)!"), //SV has dynamic plural here + [STRINGID_PKMNFELLASLEEP] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} fell asleep!"), + [STRINGID_PKMNMADESLEEP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_BUFF1} made {B_EFF_NAME_WITH_PREFIX2} sleep!"), //not in gen 5+, ability popup + [STRINGID_PKMNALREADYASLEEP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is already asleep!"), + [STRINGID_PKMNALREADYASLEEP2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is already asleep!"), + [STRINGID_PKMNWASNTAFFECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} wasn't affected!"), //not in gen 5+, ability popup + [STRINGID_PKMNWASPOISONED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was poisoned!"), + [STRINGID_PKMNPOISONEDBY] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was poisoned by {B_SCR_NAME_WITH_PREFIX2}'s {B_BUFF1}!"), //not in gen 5+, ability popup + [STRINGID_PKMNHURTBYPOISON] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by its poisoning!"), + [STRINGID_PKMNALREADYPOISONED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is already poisoned!"), + [STRINGID_PKMNBADLYPOISONED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was badly poisoned!"), + [STRINGID_PKMNENERGYDRAINED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} had its energy drained!"), + [STRINGID_PKMNWASBURNED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was burned!"), + [STRINGID_PKMNBURNEDBY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_BUFF1} burned {B_EFF_NAME_WITH_PREFIX2}!"), //not in gen 5+, ability popup + [STRINGID_PKMNHURTBYBURN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by its burn!"), + [STRINGID_PKMNWASFROZEN] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was frozen solid!"), + [STRINGID_PKMNFROZENBY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_BUFF1} froze {B_EFF_NAME_WITH_PREFIX2} solid!"), //not in gen 5+, ability popup + [STRINGID_PKMNISFROZEN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is frozen solid!"), + [STRINGID_PKMNWASDEFROSTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} thawed out!"), + [STRINGID_PKMNWASDEFROSTED2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} thawed out!"), + [STRINGID_PKMNWASDEFROSTEDBY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE} melted the ice!"), + [STRINGID_PKMNWASPARALYZED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} is paralyzed, so it may be unable to move!"), + [STRINGID_PKMNWASPARALYZEDBY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_BUFF1} paralyzed {B_EFF_NAME_WITH_PREFIX2}, so it may be unable to move!"), //not in gen 5+, ability popup + [STRINGID_PKMNISPARALYZED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} couldn't move because it's paralyzed!"), + [STRINGID_PKMNISALREADYPARALYZED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is already paralyzed!"), + [STRINGID_PKMNHEALEDPARALYSIS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was cured of paralysis!"), + [STRINGID_PKMNDREAMEATEN] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s dream was eaten!"), //not in gen 5+, expansion doesn't use anymore + [STRINGID_STATSWONTINCREASE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} won't go any higher!"), + [STRINGID_STATSWONTDECREASE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1} won't go any lower!"), + [STRINGID_TEAMSTOPPEDWORKING] = COMPOUND_STRING("Your team's {B_BUFF1} stopped working!"), //unused + [STRINGID_FOESTOPPEDWORKING] = COMPOUND_STRING("The foe's {B_BUFF1} stopped working!"), //unused + [STRINGID_PKMNISCONFUSED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is confused!"), + [STRINGID_PKMNHEALEDCONFUSION] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} snapped out of its confusion!"), + [STRINGID_PKMNWASCONFUSED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} became confused!"), + [STRINGID_PKMNALREADYCONFUSED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is already confused!"), + [STRINGID_PKMNFELLINLOVE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fell in love!"), + [STRINGID_PKMNINLOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is in love with {B_SCR_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNIMMOBILIZEDBYLOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is immobilized by love!"), + [STRINGID_PKMNBLOWNAWAY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was blown away!"), //unused + [STRINGID_PKMNCHANGEDTYPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} transformed into the {B_BUFF1} type!"), + [STRINGID_PKMNFLINCHED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} flinched and couldn't move!"), + [STRINGID_PKMNREGAINEDHEALTH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s HP was restored."), + [STRINGID_PKMNHPFULL] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s HP is full!"), + [STRINGID_PKMNRAISEDSPDEF] = COMPOUND_STRING("Light Screen made {B_ATK_TEAM2} team stronger against special moves!"), + [STRINGID_PKMNRAISEDDEF] = COMPOUND_STRING("Reflect made {B_ATK_TEAM2} team stronger against physical moves!"), + [STRINGID_PKMNCOVEREDBYVEIL] = COMPOUND_STRING("{B_ATK_TEAM1} team cloaked itself in a mystical veil!"), + [STRINGID_PKMNUSEDSAFEGUARD] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is protected by Safeguard!"), + [STRINGID_PKMNSAFEGUARDEXPIRED] = COMPOUND_STRING("{B_ATK_TEAM1} team is no longer protected by Safeguard!"), + [STRINGID_PKMNWENTTOSLEEP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} went to sleep!"), //not in gen 5+ + [STRINGID_PKMNSLEPTHEALTHY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} slept and restored its HP!"), + [STRINGID_PKMNWHIPPEDWHIRLWIND] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} whipped up a whirlwind!"), + [STRINGID_PKMNTOOKSUNLIGHT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} absorbed light!"), + [STRINGID_PKMNLOWEREDHEAD] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} tucked in its head!"), + [STRINGID_PKMNISGLOWING] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became cloaked in a harsh light!"), + [STRINGID_PKMNFLEWHIGH] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} flew up high!"), + [STRINGID_PKMNDUGHOLE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} burrowed its way under the ground!"), + [STRINGID_PKMNSQUEEZEDBYBIND] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was squeezed by {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNTRAPPEDINVORTEX] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} became trapped in the vortex!"), + [STRINGID_PKMNWRAPPEDBY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was wrapped by {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNCLAMPED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} clamped down on {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNHURTBY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is hurt by {B_BUFF1}!"), + [STRINGID_PKMNFREEDFROM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was freed from {B_BUFF1}!"), + [STRINGID_PKMNCRASHED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} kept going and crashed!"), + [STRINGID_PKMNSHROUDEDINMIST] = gText_PkmnShroudedInMist, + [STRINGID_PKMNPROTECTEDBYMIST] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is protected by the mist!"), + [STRINGID_PKMNGETTINGPUMPED] = gText_PkmnGettingPumped, + [STRINGID_PKMNHITWITHRECOIL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was damaged by the recoil!"), + [STRINGID_PKMNPROTECTEDITSELF2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} protected itself!"), + [STRINGID_PKMNBUFFETEDBYSANDSTORM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is buffeted by the sandstorm!"), + [STRINGID_PKMNPELTEDBYHAIL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is buffeted by the hail!"), + [STRINGID_PKMNSEEDED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was seeded!"), + [STRINGID_PKMNEVADEDATTACK] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} avoided the attack!"), + [STRINGID_PKMNSAPPEDBYLEECHSEED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s health is sapped by Leech Seed!"), + [STRINGID_PKMNFASTASLEEP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is fast asleep."), + [STRINGID_PKMNWOKEUP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} woke up!"), + [STRINGID_PKMNUPROARKEPTAWAKE] = COMPOUND_STRING("But the uproar kept {B_SCR_NAME_WITH_PREFIX2} awake!"), + [STRINGID_PKMNWOKEUPINUPROAR] = COMPOUND_STRING("The uproar woke {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNCAUSEDUPROAR] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} caused an uproar!"), + [STRINGID_PKMNMAKINGUPROAR] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is making an uproar!"), + [STRINGID_PKMNCALMEDDOWN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} calmed down."), + [STRINGID_PKMNCANTSLEEPINUPROAR] = COMPOUND_STRING("But {B_DEF_NAME_WITH_PREFIX2} can't sleep in an uproar!"), + [STRINGID_PKMNSTOCKPILED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} stockpiled {B_BUFF1}!"), + [STRINGID_PKMNCANTSTOCKPILE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't stockpile any more!"), //I think this was replaced with just "But it failed!" + [STRINGID_PKMNCANTSLEEPINUPROAR2] = COMPOUND_STRING("But {B_DEF_NAME_WITH_PREFIX2} can't sleep in an uproar!"), + [STRINGID_UPROARKEPTPKMNAWAKE] = COMPOUND_STRING("But the uproar kept {B_DEF_NAME_WITH_PREFIX2} awake!"), + [STRINGID_PKMNSTAYEDAWAKEUSING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} stayed awake using its {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_PKMNSTORINGENERGY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is storing energy!"), + [STRINGID_PKMNUNLEASHEDENERGY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} unleashed its energy!"), + [STRINGID_PKMNFATIGUECONFUSION] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became confused due to fatigue!"), + [STRINGID_PLAYERPICKEDUPMONEY] = COMPOUND_STRING("You picked up ¥{B_BUFF1}!\p"), + [STRINGID_PKMNUNAFFECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is unaffected!"), + [STRINGID_PKMNTRANSFORMEDINTO] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} transformed into {B_BUFF1}!"), + [STRINGID_PKMNMADESUBSTITUTE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} put in a substitute!"), + [STRINGID_PKMNHASSUBSTITUTE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} already has a substitute!"), + [STRINGID_SUBSTITUTEDAMAGED] = COMPOUND_STRING("The substitute took damage for {B_DEF_NAME_WITH_PREFIX2}!\p"), + [STRINGID_PKMNSUBSTITUTEFADED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s substitute faded!\p"), + [STRINGID_PKMNMUSTRECHARGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} must recharge!"), + [STRINGID_PKMNRAGEBUILDING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s rage is building!"), + [STRINGID_PKMNMOVEWASDISABLED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1} was disabled!"), + [STRINGID_PKMNMOVEISDISABLED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE} is disabled!\p"), + [STRINGID_PKMNMOVEDISABLEDNOMORE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s move is no longer disabled!"), + [STRINGID_PKMNGOTENCORE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} must do an encore!"), + [STRINGID_PKMNENCOREENDED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} ended its encore!"), + [STRINGID_PKMNTOOKAIM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} took aim at {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNSKETCHEDMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} sketched {B_BUFF1}!"), + [STRINGID_PKMNTRYINGTOTAKEFOE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is hoping to take its attacker down with it!"), + [STRINGID_PKMNTOOKFOE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} took its attacker down with it!"), + [STRINGID_PKMNREDUCEDPP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s PP was reduced!"), + [STRINGID_PKMNSTOLEITEM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} stole {B_DEF_NAME_WITH_PREFIX2}'s {B_LAST_ITEM}!"), + [STRINGID_TARGETCANTESCAPENOW] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} can no longer escape!"), + [STRINGID_PKMNFELLINTONIGHTMARE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} began having a nightmare!"), + [STRINGID_PKMNLOCKEDINNIGHTMARE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is locked in a nightmare!"), + [STRINGID_PKMNLAIDCURSE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cut its own HP and put a curse on {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNAFFLICTEDBYCURSE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is afflicted by the curse!"), + [STRINGID_SPIKESSCATTERED] = COMPOUND_STRING("Spikes were scattered on the ground all around {B_DEF_TEAM2} team!"), + [STRINGID_PKMNHURTBYSPIKES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} was hurt by the spikes!"), + [STRINGID_PKMNIDENTIFIED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was identified!"), + [STRINGID_PKMNPERISHCOUNTFELL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s perish count fell to {B_BUFF1}!"), + [STRINGID_PKMNBRACEDITSELF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} braced itself!"), + [STRINGID_PKMNENDUREDHIT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} endured the hit!"), + [STRINGID_MAGNITUDESTRENGTH] = COMPOUND_STRING("Magnitude {B_BUFF1}!"), + [STRINGID_PKMNCUTHPMAXEDATTACK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cut its own HP and maximized its Attack!"), + [STRINGID_PKMNCOPIEDSTATCHANGES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} copied {B_DEF_NAME_WITH_PREFIX2}'s stat changes!"), + [STRINGID_PKMNGOTFREE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} got free of {B_DEF_NAME_WITH_PREFIX2}'s {B_BUFF1}!"), //not in gen 5+, generic rapid spin? + [STRINGID_PKMNSHEDLEECHSEED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shed Leech Seed!"), //not in gen 5+, generic rapid spin? + [STRINGID_PKMNBLEWAWAYSPIKES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} blew away Spikes!"), //not in gen 5+, generic rapid spin? + [STRINGID_PKMNFLEDFROMBATTLE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} fled from battle!"), + [STRINGID_PKMNFORESAWATTACK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} foresaw an attack!"), + [STRINGID_PKMNTOOKATTACK] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} took the {B_BUFF1} attack!"), + [STRINGID_PKMNATTACK] = COMPOUND_STRING("{B_BUFF1}'s attack!"), //not in gen 5+, expansion doesn't use anymore + [STRINGID_PKMNCENTERATTENTION] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} became the center of attention!"), + [STRINGID_PKMNCHARGINGPOWER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} began charging power!"), + [STRINGID_NATUREPOWERTURNEDINTO] = COMPOUND_STRING("Nature Power turned into {B_CURRENT_MOVE}!"), + [STRINGID_PKMNSTATUSNORMAL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s status returned to normal!"), + [STRINGID_PKMNHASNOMOVESLEFT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} has no moves left that it can use!\p"), + [STRINGID_PKMNSUBJECTEDTOTORMENT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was subjected to torment!"), + [STRINGID_PKMNCANTUSEMOVETORMENT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't use the same move twice in a row due to the torment!\p"), + [STRINGID_PKMNTIGHTENINGFOCUS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is tightening its focus!"), + [STRINGID_PKMNFELLFORTAUNT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fell for the taunt!"), + [STRINGID_PKMNCANTUSEMOVETAUNT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't use {B_CURRENT_MOVE} after the taunt!\p"), + [STRINGID_PKMNREADYTOHELP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is ready to help {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNSWITCHEDITEMS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched items with its target!"), + [STRINGID_PKMNCOPIEDFOE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} copied {B_DEF_NAME_WITH_PREFIX2}'s Ability!"), + [STRINGID_PKMNMADEWISH] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} made a wish!"), //unused + [STRINGID_PKMNWISHCAMETRUE] = COMPOUND_STRING("{B_BUFF1}'s wish came true!"), + [STRINGID_PKMNPLANTEDROOTS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} planted its roots!"), + [STRINGID_PKMNABSORBEDNUTRIENTS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} absorbed nutrients with its roots!"), + [STRINGID_PKMNANCHOREDITSELF] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} anchored itself with its roots!"), + [STRINGID_PKMNWASMADEDROWSY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} grew drowsy!"), + [STRINGID_PKMNKNOCKEDOFF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} knocked off {B_DEF_NAME_WITH_PREFIX2}'s {B_LAST_ITEM}!"), + [STRINGID_PKMNSWAPPEDABILITIES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} swapped Abilities with its target!"), + [STRINGID_PKMNSEALEDOPPONENTMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} sealed any moves its target shares with it!"), + [STRINGID_PKMNCANTUSEMOVESEALED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't use its sealed {B_CURRENT_MOVE}!\p"), + [STRINGID_PKMNWANTSGRUDGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} wants its target to bear a grudge!"), + [STRINGID_PKMNLOSTPPGRUDGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} lost all its PP due to the grudge!"), + [STRINGID_PKMNSHROUDEDITSELF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shrouded itself with Magic Coat!"), + [STRINGID_PKMNMOVEBOUNCED] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} bounced the {B_CURRENT_MOVE} back!"), + [STRINGID_PKMNWAITSFORTARGET] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} waits for a target to make a move!"), + [STRINGID_PKMNSNATCHEDMOVE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} snatched {B_SCR_NAME_WITH_PREFIX2}'s move!"), + [STRINGID_PKMNMADEITRAIN] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} made it rain!"), //not in gen 5+, ability popup + [STRINGID_PKMNRAISEDSPEED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} raised its Speed!"), //not in gen 5+, ability popup + [STRINGID_PKMNPROTECTEDBY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was protected by {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSUSAGE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevents {B_ATK_NAME_WITH_PREFIX2} from using {B_CURRENT_MOVE}!"), //I don't see this in SV text + [STRINGID_PKMNRESTOREDHPUSING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} restored HP using its {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_PKMNCHANGEDTYPEWITH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} made it the {B_BUFF1} type!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSPARALYSISWITH] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevents paralysis!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSROMANCEWITH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevents romance!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSPOISONINGWITH] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevents poisoning!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSCONFUSIONWITH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevents confusion!"), //not in gen 5+, ability popup + [STRINGID_PKMNRAISEDFIREPOWERWITH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} raised the power of Fire-type moves!"), //not in gen 5+, ability popup + [STRINGID_PKMNANCHORSITSELFWITH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} anchors itself with {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_PKMNCUTSATTACKWITH] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} cuts {B_DEF_NAME_WITH_PREFIX2}'s Attack!"), //not in gen 5+, ability popup + [STRINGID_PKMNPREVENTSSTATLOSSWITH] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} prevents stat loss!"), //not in gen 5+, ability popup + [STRINGID_PKMNHURTSWITH] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by {B_DEF_NAME_WITH_PREFIX2}'s {B_BUFF1}!"), + [STRINGID_PKMNTRACED] = COMPOUND_STRING("It traced {B_BUFF1}'s {B_BUFF2}!"), + [STRINGID_STATSHARPLY] = gText_StatSharply, + [STRINGID_STATROSE] = gText_StatRose, + [STRINGID_STATHARSHLY] = COMPOUND_STRING("harshly "), + [STRINGID_STATFELL] = gText_StatFell, + [STRINGID_ATTACKERSSTATROSE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} {B_BUFF2}"), + [STRINGID_DEFENDERSSTATROSE] = gText_DefendersStatRose, + [STRINGID_ATTACKERSSTATFELL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} {B_BUFF2}"), + [STRINGID_DEFENDERSSTATFELL] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1} {B_BUFF2}"), + [STRINGID_CRITICALHIT] = COMPOUND_STRING("A critical hit!"), + [STRINGID_ONEHITKO] = COMPOUND_STRING("It's a one-hit KO!"), + [STRINGID_123POOF] = COMPOUND_STRING("One…{PAUSE 10}two…{PAUSE 10}and…{PAUSE 10}{PAUSE 20}{PLAY_SE SE_BALL_BOUNCE_1}ta-da!\p"), + [STRINGID_ANDELLIPSIS] = COMPOUND_STRING("And…\p"), + [STRINGID_NOTVERYEFFECTIVE] = COMPOUND_STRING("It's not very effective…"), + [STRINGID_SUPEREFFECTIVE] = COMPOUND_STRING("It's super effective!"), + [STRINGID_GOTAWAYSAFELY] = sText_GotAwaySafely, + [STRINGID_WILDPKMNFLED] = COMPOUND_STRING("{PLAY_SE SE_FLEE}The wild {B_BUFF1} fled!"), + [STRINGID_NORUNNINGFROMTRAINERS] = COMPOUND_STRING("No! There's no running from a Trainer battle!\p"), + [STRINGID_CANTESCAPE] = COMPOUND_STRING("You can't escape!\p"), + [STRINGID_DONTLEAVEBIRCH] = COMPOUND_STRING("PROF. BIRCH: Don't leave me like this!\p"), //no decapitalize until it is everywhere + [STRINGID_BUTNOTHINGHAPPENED] = COMPOUND_STRING("But nothing happened!"), + [STRINGID_BUTITFAILED] = COMPOUND_STRING("But it failed!"), + [STRINGID_ITHURTCONFUSION] = COMPOUND_STRING("It hurt itself in its confusion!"), + [STRINGID_MIRRORMOVEFAILED] = COMPOUND_STRING("The Mirror Move failed!"), //not in gen 5+, uses "but it failed" + [STRINGID_STARTEDTORAIN] = COMPOUND_STRING("It started to rain!"), + [STRINGID_DOWNPOURSTARTED] = COMPOUND_STRING("A downpour started!"), // corresponds to DownpourText in pokegold and pokecrystal and is used by Rain Dance in GSC + [STRINGID_RAINCONTINUES] = COMPOUND_STRING("Rain continues to fall."), //not in gen 5+ + [STRINGID_DOWNPOURCONTINUES] = COMPOUND_STRING("The downpour continues."), // unused + [STRINGID_RAINSTOPPED] = COMPOUND_STRING("The rain stopped."), + [STRINGID_SANDSTORMBREWED] = COMPOUND_STRING("A sandstorm kicked up!"), + [STRINGID_SANDSTORMRAGES] = COMPOUND_STRING("The sandstorm is raging."), + [STRINGID_SANDSTORMSUBSIDED] = COMPOUND_STRING("The sandstorm subsided."), + [STRINGID_SUNLIGHTGOTBRIGHT] = COMPOUND_STRING("The sunlight turned harsh!"), + [STRINGID_SUNLIGHTSTRONG] = COMPOUND_STRING("The sunlight is strong."), //not in gen 5+ + [STRINGID_SUNLIGHTFADED] = COMPOUND_STRING("The sunlight faded."), + [STRINGID_STARTEDHAIL] = COMPOUND_STRING("It started to hail!"), + [STRINGID_HAILCONTINUES] = COMPOUND_STRING("The hail is crashing down."), + [STRINGID_HAILSTOPPED] = COMPOUND_STRING("The hail stopped."), + [STRINGID_FAILEDTOSPITUP] = COMPOUND_STRING("But it failed to spit up a thing!"), //not in gen 5+, uses "but it failed" + [STRINGID_FAILEDTOSWALLOW] = COMPOUND_STRING("But it failed to swallow a thing!"), //not in gen 5+, uses "but it failed" + [STRINGID_WINDBECAMEHEATWAVE] = COMPOUND_STRING("The wind turned into a Heat Wave!"), //unused + [STRINGID_STATCHANGESGONE] = COMPOUND_STRING("All stat changes were eliminated!"), + [STRINGID_COINSSCATTERED] = COMPOUND_STRING("Coins were scattered everywhere!"), + [STRINGID_TOOWEAKFORSUBSTITUTE] = COMPOUND_STRING("But it does not have enough HP left to make a substitute!"), + [STRINGID_SHAREDPAIN] = COMPOUND_STRING("The battlers shared their pain!"), + [STRINGID_BELLCHIMED] = COMPOUND_STRING("A bell chimed!"), + [STRINGID_FAINTINTHREE] = COMPOUND_STRING("All Pokémon that heard the song will faint in three turns!"), + [STRINGID_NOPPLEFT] = COMPOUND_STRING("There's no PP left for this move!\p"), //not in gen 5+ + [STRINGID_BUTNOPPLEFT] = COMPOUND_STRING("But there was no PP left for the move!"), + [STRINGID_PLAYERUSEDITEM] = COMPOUND_STRING("You used {B_LAST_ITEM}!"), + [STRINGID_WALLYUSEDITEM] = COMPOUND_STRING("WALLY used {B_LAST_ITEM}!"), //no decapitalize until it is everywhere + [STRINGID_TRAINERBLOCKEDBALL] = COMPOUND_STRING("The Trainer blocked your Poké Ball!"), + [STRINGID_DONTBEATHIEF] = COMPOUND_STRING("Don't be a thief!"), + [STRINGID_ITDODGEDBALL] = COMPOUND_STRING("It dodged your thrown Poké Ball! This Pokémon can't be caught!"), + [STRINGID_YOUMISSEDPKMN] = COMPOUND_STRING("You missed the Pokémon!"), + [STRINGID_PKMNBROKEFREE] = COMPOUND_STRING("Oh no! The Pokémon broke free!"), + [STRINGID_ITAPPEAREDCAUGHT] = COMPOUND_STRING("Aww! It appeared to be caught!"), + [STRINGID_AARGHALMOSTHADIT] = COMPOUND_STRING("Aargh! Almost had it!"), + [STRINGID_SHOOTSOCLOSE] = COMPOUND_STRING("Gah! It was so close, too!"), + [STRINGID_GOTCHAPKMNCAUGHTPLAYER] = COMPOUND_STRING("Gotcha! {B_DEF_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}\p"), + [STRINGID_GOTCHAPKMNCAUGHTWALLY] = COMPOUND_STRING("Gotcha! {B_DEF_NAME} was caught!{WAIT_SE}{PLAY_BGM MUS_CAUGHT}{PAUSE 127}"), + [STRINGID_GIVENICKNAMECAPTURED] = COMPOUND_STRING("Would you like to give {B_DEF_NAME} a nickname?"), + [STRINGID_PKMNSENTTOPC] = COMPOUND_STRING("{B_DEF_NAME} has been sent to {B_PC_CREATOR_NAME} PC!"), //Still used lanette's pc since terminology is different + [STRINGID_PKMNDATAADDEDTODEX] = COMPOUND_STRING("{B_DEF_NAME}'s data has been added to the Pokédex!\p"), + [STRINGID_ITISRAINING] = COMPOUND_STRING("It's raining!"), + [STRINGID_SANDSTORMISRAGING] = COMPOUND_STRING("The sandstorm is raging!"), + [STRINGID_CANTESCAPE2] = COMPOUND_STRING("You couldn't get away!\p"), + [STRINGID_PKMNIGNORESASLEEP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} ignored orders and kept sleeping!"), + [STRINGID_PKMNIGNOREDORDERS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} ignored orders!"), + [STRINGID_PKMNBEGANTONAP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} began to nap!"), + [STRINGID_PKMNLOAFING] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is loafing around!"), + [STRINGID_PKMNWONTOBEY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} won't obey!"), + [STRINGID_PKMNTURNEDAWAY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} turned away!"), + [STRINGID_PKMNPRETENDNOTNOTICE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} pretended not to notice!"), + [STRINGID_ENEMYABOUTTOSWITCHPKMN] = COMPOUND_STRING("{B_TRAINER1_NAME_WITH_CLASS} is about to send out {B_BUFF2}.\pWill you switch your Pokémon?"), + [STRINGID_CREPTCLOSER] = COMPOUND_STRING("{B_PLAYER_NAME} crept closer to {B_OPPONENT_MON1_NAME}!"), //safari + [STRINGID_CANTGETCLOSER] = COMPOUND_STRING("{B_PLAYER_NAME} can't get any closer!"), //safari + [STRINGID_PKMNWATCHINGCAREFULLY] = COMPOUND_STRING("{B_OPPONENT_MON1_NAME} is watching carefully!"), //safari + [STRINGID_PKMNCURIOUSABOUTX] = COMPOUND_STRING("{B_OPPONENT_MON1_NAME} is curious about the {B_BUFF1}!"), //safari + [STRINGID_PKMNENTHRALLEDBYX] = COMPOUND_STRING("{B_OPPONENT_MON1_NAME} is enthralled by the {B_BUFF1}!"), //safari + [STRINGID_PKMNIGNOREDX] = COMPOUND_STRING("{B_OPPONENT_MON1_NAME} completely ignored the {B_BUFF1}!"), //safari + [STRINGID_THREWPOKEBLOCKATPKMN] = COMPOUND_STRING("{B_PLAYER_NAME} threw a {POKEBLOCK} at the {B_OPPONENT_MON1_NAME}!"), //safari + [STRINGID_OUTOFSAFARIBALLS] = COMPOUND_STRING("{PLAY_SE SE_DING_DONG}ANNOUNCER: You're out of Safari Balls! Game over!\p"), //safari + [STRINGID_PKMNSITEMCUREDPARALYSIS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} cured its paralysis!"), + [STRINGID_PKMNSITEMCUREDPOISON] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} cured its poison!"), + [STRINGID_PKMNSITEMHEALEDBURN] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} cured its burn!"), + [STRINGID_PKMNSITEMDEFROSTEDIT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} defrosted it!"), + [STRINGID_PKMNSITEMWOKEIT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} woke it up!"), + [STRINGID_PKMNSITEMSNAPPEDOUT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} snapped it out of its confusion!"), + [STRINGID_PKMNSITEMCUREDPROBLEM] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} cured its {B_BUFF1} problem!"), + [STRINGID_PKMNSITEMRESTOREDHEALTH] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} restored its health using its {B_LAST_ITEM}!"), + [STRINGID_PKMNSITEMRESTOREDPP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} restored PP to its move {B_BUFF1} using its {B_LAST_ITEM}!"), + [STRINGID_PKMNSITEMRESTOREDSTATUS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} returned its stats to normal using its {B_LAST_ITEM}!"), + [STRINGID_PKMNSITEMRESTOREDHPALITTLE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} restored a little HP using its {B_LAST_ITEM}!"), + [STRINGID_ITEMALLOWSONLYYMOVE] = COMPOUND_STRING("{B_LAST_ITEM} only allows the use of {B_CURRENT_MOVE}!\p"), + [STRINGID_PKMNHUNGONWITHX] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} hung on using its {B_LAST_ITEM}!"), + [STRINGID_EMPTYSTRING3] = gText_EmptyString3, + [STRINGID_PKMNSXPREVENTSBURNS] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY} prevents burns!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXBLOCKSY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} blocks {B_CURRENT_MOVE}!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXRESTOREDHPALITTLE2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} restored its HP a little!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXWHIPPEDUPSANDSTORM] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} whipped up a sandstorm!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXPREVENTSYLOSS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} prevents {B_BUFF1} loss!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXINFATUATEDY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} infatuated {B_ATK_NAME_WITH_PREFIX2}!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXMADEYINEFFECTIVE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} made {B_CURRENT_MOVE} ineffective!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXCUREDYPROBLEM] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} cured its {B_BUFF1} problem!"), //not in gen 5+, ability popup + [STRINGID_ITSUCKEDLIQUIDOOZE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} sucked up the liquid ooze!"), + [STRINGID_PKMNTRANSFORMED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} transformed!"), + [STRINGID_ELECTRICITYWEAKENED] = COMPOUND_STRING("Electricity's power was weakened!"), + [STRINGID_FIREWEAKENED] = COMPOUND_STRING("Fire's power was weakened!"), + [STRINGID_PKMNHIDUNDERWATER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} hid underwater!"), + [STRINGID_PKMNSPRANGUP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} sprang up!"), + [STRINGID_HMMOVESCANTBEFORGOTTEN] = COMPOUND_STRING("HM moves can't be forgotten now.\p"), + [STRINGID_XFOUNDONEY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} found one {B_LAST_ITEM}!"), + [STRINGID_PLAYERDEFEATEDTRAINER1] = sText_PlayerDefeatedLinkTrainerTrainer1, + [STRINGID_SOOTHINGAROMA] = COMPOUND_STRING("A soothing aroma wafted through the area!"), + [STRINGID_ITEMSCANTBEUSEDNOW] = COMPOUND_STRING("Items can't be used now.{PAUSE 64}"), //not in gen 5+, i think + [STRINGID_FORXCOMMAYZ] = COMPOUND_STRING("For {B_SCR_NAME_WITH_PREFIX2}, {B_LAST_ITEM} {B_BUFF1}"), //not in gen 5+, expansion doesn't use anymore + [STRINGID_USINGITEMSTATOFPKMNROSE] = COMPOUND_STRING("Using {B_LAST_ITEM}, the {B_BUFF1} of {B_SCR_NAME_WITH_PREFIX2} {B_BUFF2}"), //todo: update this, will require code changes + [STRINGID_PKMNUSEDXTOGETPUMPED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} used the {B_LAST_ITEM} to get pumped!"), + [STRINGID_PKMNSXMADEYUSELESS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} made {B_CURRENT_MOVE} useless!"), //not in gen 5+, ability popup + [STRINGID_PKMNTRAPPEDBYSANDTOMB] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} became trapped by the quicksand!"), + [STRINGID_EMPTYSTRING4] = COMPOUND_STRING(""), + [STRINGID_ABOOSTED] = COMPOUND_STRING(" a boosted"), + [STRINGID_PKMNSXINTENSIFIEDSUN] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} intensified the sun's rays!"), //not in gen 5+, ability popup + [STRINGID_PKMNMAKESGROUNDMISS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} makes Ground-type moves miss with {B_DEF_ABILITY}!"), //not in gen 5+, ability popup + [STRINGID_YOUTHROWABALLNOWRIGHT] = COMPOUND_STRING("You throw a Ball now, right? I… I'll do my best!"), + [STRINGID_PKMNSXTOOKATTACK] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} took the attack!"), //In gen 5+ but without naming the ability + [STRINGID_PKMNCHOSEXASDESTINY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} chose Doom Desire as its destiny!"), + [STRINGID_PKMNLOSTFOCUS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} lost its focus and couldn't move!"), + [STRINGID_USENEXTPKMN] = COMPOUND_STRING("Use next Pokémon?"), + [STRINGID_PKMNFLEDUSINGITS] = COMPOUND_STRING("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled using its {B_LAST_ITEM}!\p"), + [STRINGID_PKMNFLEDUSING] = COMPOUND_STRING("{PLAY_SE SE_FLEE}{B_ATK_NAME_WITH_PREFIX} fled using {B_ATK_ABILITY}!\p"), //not in gen 5+ + [STRINGID_PKMNWASDRAGGEDOUT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was dragged out!\p"), + [STRINGID_PREVENTEDFROMWORKING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} prevented {B_SCR_NAME_WITH_PREFIX2}'s {B_BUFF1} from working!"), //unused + [STRINGID_PKMNSITEMNORMALIZEDSTATUS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} normalized its status!"), + [STRINGID_TRAINER1USEDITEM] = COMPOUND_STRING("{B_ATK_TRAINER_NAME_WITH_CLASS} used {B_LAST_ITEM}!"), + [STRINGID_BOXISFULL] = COMPOUND_STRING("The Box is full! You can't catch any more!\p"), + [STRINGID_PKMNAVOIDEDATTACK] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} avoided the attack!"), + [STRINGID_PKMNSXMADEITINEFFECTIVE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} made it ineffective!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXPREVENTSFLINCHING] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_EFF_ABILITY} prevents flinching!"), //not in gen 5+, ability popup + [STRINGID_PKMNALREADYHASBURN] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is already burned!"), + [STRINGID_STATSWONTDECREASE2] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s stats won't go any lower!"), + [STRINGID_PKMNSXBLOCKSY2] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} blocks {B_CURRENT_MOVE}!"), //not in gen 5+, ability popup + [STRINGID_PKMNSXWOREOFF] = COMPOUND_STRING("{B_ATK_TEAM1} team's {B_BUFF1} wore off!"), + [STRINGID_PKMNRAISEDDEFALITTLE] = COMPOUND_STRING("{B_ATK_PREFIX1}'s {B_CURRENT_MOVE} raised DEFENSE a little!"), //expansion doesn't use anymore + [STRINGID_PKMNRAISEDSPDEFALITTLE] = COMPOUND_STRING("{B_ATK_PREFIX1}'s {B_CURRENT_MOVE} raised SP. DEF a little!"), //expansion doesn't use anymore + [STRINGID_THEWALLSHATTERED] = COMPOUND_STRING("The wall shattered!"), //not in gen5+, uses "your teams light screen wore off!" etc instead + [STRINGID_PKMNSXPREVENTSYSZ] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} prevents {B_DEF_NAME_WITH_PREFIX2}'s {B_DEF_ABILITY} from working!"), + [STRINGID_PKMNSXCUREDITSYPROBLEM] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} cured its {B_BUFF1} problem!"), //not in gen 5+, ability popup + [STRINGID_ATTACKERCANTESCAPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't escape!"), + [STRINGID_PKMNOBTAINEDX] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} obtained {B_BUFF1}."), + [STRINGID_PKMNOBTAINEDX2] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} obtained {B_BUFF2}."), + [STRINGID_PKMNOBTAINEDXYOBTAINEDZ] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} obtained {B_BUFF1}.\p{B_DEF_NAME_WITH_PREFIX} obtained {B_BUFF2}."), + [STRINGID_BUTNOEFFECT] = COMPOUND_STRING("But it had no effect!"), + [STRINGID_PKMNSXHADNOEFFECTONY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} had no effect on {B_EFF_NAME_WITH_PREFIX2}!"), //not in gen 5+, ability popup + [STRINGID_TWOENEMIESDEFEATED] = sText_TwoInGameTrainersDefeated, + [STRINGID_TRAINER2LOSETEXT] = COMPOUND_STRING("{B_TRAINER2_LOSE_TEXT}"), + [STRINGID_PKMNINCAPABLEOFPOWER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} appears incapable of using its power!"), + [STRINGID_GLINTAPPEARSINEYE] = COMPOUND_STRING("A glint appears in {B_SCR_NAME_WITH_PREFIX2}'s eyes!"), + [STRINGID_PKMNGETTINGINTOPOSITION] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is getting into position!"), + [STRINGID_PKMNBEGANGROWLINGDEEPLY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} began growling deeply!"), + [STRINGID_PKMNEAGERFORMORE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is eager for more!"), + [STRINGID_DEFEATEDOPPONENTBYREFEREE] = COMPOUND_STRING("{B_PLAYER_MON1_NAME} defeated the opponent {B_OPPONENT_MON1_NAME} in a REFEREE's decision!"), + [STRINGID_LOSTTOOPPONENTBYREFEREE] = COMPOUND_STRING("{B_PLAYER_MON1_NAME} lost to the opponent {B_OPPONENT_MON1_NAME} in a REFEREE's decision!"), + [STRINGID_TIEDOPPONENTBYREFEREE] = COMPOUND_STRING("{B_PLAYER_MON1_NAME} tied the opponent {B_OPPONENT_MON1_NAME} in a REFEREE's decision!"), + [STRINGID_QUESTIONFORFEITMATCH] = COMPOUND_STRING("Would you like to forfeit the match and quit now?"), + [STRINGID_FORFEITEDMATCH] = COMPOUND_STRING("The match was forfeited."), + [STRINGID_PKMNTRANSFERREDSOMEONESPC] = gText_PkmnTransferredSomeonesPC, + [STRINGID_PKMNTRANSFERREDLANETTESPC] = gText_PkmnTransferredLanettesPC, + [STRINGID_PKMNBOXSOMEONESPCFULL] = gText_PkmnTransferredSomeonesPCBoxFull, + [STRINGID_PKMNBOXLANETTESPCFULL] = gText_PkmnTransferredLanettesPCBoxFull, + [STRINGID_TRAINER1WINTEXT] = COMPOUND_STRING("{B_TRAINER1_WIN_TEXT}"), + [STRINGID_TRAINER2WINTEXT] = COMPOUND_STRING("{B_TRAINER2_WIN_TEXT}"), + [STRINGID_ENDUREDSTURDY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} endured the hit using {B_DEF_ABILITY}!"), + [STRINGID_POWERHERB] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became fully charged due to its {B_LAST_ITEM}!"), + [STRINGID_HURTBYITEM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by the {B_LAST_ITEM}!"), + [STRINGID_PSNBYITEM] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was badly poisoned by the {B_LAST_ITEM}!"), + [STRINGID_BRNBYITEM] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} was burned by the {B_LAST_ITEM}!"), + [STRINGID_DEFABILITYIN] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} activates!"), + [STRINGID_GRAVITYINTENSIFIED] = COMPOUND_STRING("Gravity intensified!"), + [STRINGID_TARGETIDENTIFIED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was identified!"), + [STRINGID_TARGETWOKEUP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} woke up!"), + [STRINGID_PKMNSTOLEANDATEITEM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} stole and ate its target's {B_LAST_ITEM}!"), + [STRINGID_TAILWINDBLEW] = COMPOUND_STRING("The Tailwind blew from behind {B_ATK_TEAM2} team!"), + [STRINGID_PKMNWENTBACK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} went back to {B_ATK_TRAINER_NAME}!"), + [STRINGID_PKMNCANTUSEITEMSANYMORE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} can't use items anymore!"), + [STRINGID_PKMNFLUNG] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} flung its {B_LAST_ITEM}!"), + [STRINGID_PKMNPREVENTEDFROMHEALING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was prevented from healing!"), + [STRINGID_PKMNSWITCHEDATKANDDEF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched its Attack and Defense!"), + [STRINGID_PKMNSABILITYSUPPRESSED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s Ability was suppressed!"), + [STRINGID_SHIELDEDFROMCRITICALHITS] = COMPOUND_STRING("Lucky Chant shielded {B_ATK_TEAM2} team from critical hits!"), + [STRINGID_SWITCHEDATKANDSPATK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched all changes to its Attack and Sp. Atk\pwith its target!"), + [STRINGID_SWITCHEDDEFANDSPDEF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched all changes to its Defense and Sp. Def\pwith its target!"), + [STRINGID_PKMNACQUIREDABILITY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} acquired {B_DEF_ABILITY}!"), + [STRINGID_POISONSPIKESSCATTERED] = COMPOUND_STRING("Poison spikes were scattered on the ground all around {B_DEF_TEAM2} team!"), + [STRINGID_PKMNSWITCHEDSTATCHANGES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched stat changes with its target!"), + [STRINGID_PKMNSURROUNDEDWITHVEILOFWATER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} surrounded itself with a veil of water!"), + [STRINGID_PKMNLEVITATEDONELECTROMAGNETISM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} levitated with electromagnetism!"), + [STRINGID_PKMNTWISTEDDIMENSIONS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} twisted the dimensions!"), + [STRINGID_POINTEDSTONESFLOAT] = COMPOUND_STRING("Pointed stones float in the air around {B_DEF_TEAM2} team!"), + [STRINGID_CLOAKEDINMYSTICALMOONLIGHT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became cloaked in mystical moonlight!"), + [STRINGID_TRAPPEDBYSWIRLINGMAGMA] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} became trapped by swirling magma!"), + [STRINGID_VANISHEDINSTANTLY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} vanished instantly!"), + [STRINGID_PROTECTEDTEAM] = COMPOUND_STRING("{B_CURRENT_MOVE} protected {B_ATK_TEAM2} team!"), + [STRINGID_SHAREDITSGUARD] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shared its guard with the target!"), + [STRINGID_SHAREDITSPOWER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shared its power with the target!"), + [STRINGID_SWAPSDEFANDSPDEFOFALLPOKEMON] = COMPOUND_STRING("It created a bizarre area in which Defense and Sp. Def stats are swapped!"), + [STRINGID_BECAMENIMBLE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became nimble!"), + [STRINGID_HURLEDINTOTHEAIR] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was hurled into the air!"), + [STRINGID_HELDITEMSLOSEEFFECTS] = COMPOUND_STRING("It created a bizarre area in which Pokémon's held items lose their effects!"), + [STRINGID_FELLSTRAIGHTDOWN] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fell straight down!"), + [STRINGID_TARGETCHANGEDTYPE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} transformed into the {B_BUFF1} type!"), + [STRINGID_PKMNACQUIREDSIMPLE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} acquired Simple!"), //shouldn't directly use the name + [STRINGID_EMPTYSTRING5] = sText_EmptyString4, + [STRINGID_KINDOFFER] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} took the kind offer!"), + [STRINGID_RESETSTARGETSSTATLEVELS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s stat changes were removed!"), + [STRINGID_EMPTYSTRING6] = sText_EmptyString4, + [STRINGID_ALLYSWITCHPOSITION] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} and {B_SCR_NAME_WITH_PREFIX2} switched places!"), + [STRINGID_RESTORETARGETSHEALTH] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s HP was restored!"), + [STRINGID_TOOKPJMNINTOTHESKY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} took {B_DEF_NAME_WITH_PREFIX2} into the sky!"), + [STRINGID_FREEDFROMSKYDROP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was freed from the Sky Drop!"), + [STRINGID_POSTPONETARGETMOVE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s move was postponed!"), + [STRINGID_REFLECTTARGETSTYPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became the same type as {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_TRANSFERHELDITEM] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} received {B_LAST_ITEM} from {B_ATK_NAME_WITH_PREFIX2}"), + [STRINGID_EMBARGOENDS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can use items again!"), + [STRINGID_ELECTROMAGNETISM] = COMPOUND_STRING("electromagnetism"), + [STRINGID_BUFFERENDS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} wore off!"), + [STRINGID_TELEKINESISENDS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was freed from the telekinesis!"), + [STRINGID_TAILWINDENDS] = COMPOUND_STRING("{B_ATK_TEAM1} team's Tailwind petered out!"), + [STRINGID_LUCKYCHANTENDS] = COMPOUND_STRING("{B_ATK_TEAM1} team's Lucky Chant wore off!"), + [STRINGID_TRICKROOMENDS] = COMPOUND_STRING("The twisted dimensions returned to normal!"), + [STRINGID_WONDERROOMENDS] = COMPOUND_STRING("Wonder Room wore off, and Defense and Sp. Def stats returned to normal!"), + [STRINGID_MAGICROOMENDS] = COMPOUND_STRING("Magic Room wore off, and held items' effects returned to normal!"), + [STRINGID_MUDSPORTENDS] = COMPOUND_STRING("The effects of Mud Sport have faded."), + [STRINGID_WATERSPORTENDS] = COMPOUND_STRING("The effects of Water Sport have faded."), + [STRINGID_GRAVITYENDS] = COMPOUND_STRING("Gravity returned to normal!"), + [STRINGID_AQUARINGHEAL] = COMPOUND_STRING("A veil of water restored {B_ATK_NAME_WITH_PREFIX2}'s HP!"), + [STRINGID_ELECTRICTERRAINENDS] = COMPOUND_STRING("The electricity disappeared from the battlefield."), + [STRINGID_MISTYTERRAINENDS] = COMPOUND_STRING("The mist disappeared from the battlefield."), + [STRINGID_PSYCHICTERRAINENDS] = COMPOUND_STRING("The weirdness disappeared from the battlefield!"), + [STRINGID_GRASSYTERRAINENDS] = COMPOUND_STRING("The grass disappeared from the battlefield."), + [STRINGID_TARGETABILITYSTATRAISE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} raised its {B_BUFF1}!"), + [STRINGID_TARGETSSTATWASMAXEDOUT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} maxed its {B_BUFF1}!"), + [STRINGID_ATTACKERABILITYSTATRAISE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} raised its {B_BUFF1}!"), + [STRINGID_POISONHEALHPUP] = COMPOUND_STRING("The poisoning healed {B_ATK_NAME_WITH_PREFIX2} a little bit!"), //don't think this message is displayed anymore + [STRINGID_BADDREAMSDMG] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is tormented!"), + [STRINGID_MOLDBREAKERENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} breaks the mold!"), + [STRINGID_TERAVOLTENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is radiating a bursting aura!"), + [STRINGID_TURBOBLAZEENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is radiating a blazing aura!"), + [STRINGID_SLOWSTARTENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is slow to get going!"), + [STRINGID_SLOWSTARTEND] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} finally got its act together!"), + [STRINGID_SOLARPOWERHPDROP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} takes its toll!"), //don't think this message is displayed anymore + [STRINGID_AFTERMATHDMG] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt!"), + [STRINGID_ANTICIPATIONACTIVATES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} shuddered!"), + [STRINGID_FOREWARNACTIVATES] = COMPOUND_STRING("{B_SCR_ACTIVE_ABILITY} alerted {B_SCR_NAME_WITH_PREFIX2} to {B_DEF_NAME_WITH_PREFIX2}'s {B_BUFF1}!"), + [STRINGID_ICEBODYHPGAIN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} healed it a little bit!"), //don't think this message is displayed anymore + [STRINGID_SNOWWARNINGHAIL] = COMPOUND_STRING("It started to hail!"), + [STRINGID_FRISKACTIVATES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} frisked {B_DEF_NAME_WITH_PREFIX2} and found its {B_LAST_ITEM}!"), + [STRINGID_UNNERVEENTERS] = COMPOUND_STRING("{B_DEF_TEAM1} team is too nervous to eat Berries!"), + [STRINGID_HARVESTBERRY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} harvested its {B_LAST_ITEM}!"), + [STRINGID_LASTABILITYRAISEDSTAT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY} raised its {B_BUFF1}!"), + [STRINGID_MAGICBOUNCEACTIVATES] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} bounced the {B_ATK_NAME_WITH_PREFIX2} back!"), + [STRINGID_PROTEANTYPECHANGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_ATK_ABILITY} transformed it into the {B_BUFF1} type!"), + [STRINGID_SYMBIOSISITEMPASS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} passed its {B_LAST_ITEM} to {B_ATK_NAME_WITH_PREFIX2} through {B_LAST_ABILITY}!"), + [STRINGID_STEALTHROCKDMG] = COMPOUND_STRING("Pointed stones dug into {B_SCR_NAME_WITH_PREFIX2}!"), + [STRINGID_TOXICSPIKESABSORBED] = COMPOUND_STRING("The poison spikes disappeared from the ground around {B_ATK_TEAM2} team!"), + [STRINGID_TOXICSPIKESPOISONED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} was poisoned!"), + [STRINGID_STICKYWEBSWITCHIN] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} was caught in a sticky web!"), + [STRINGID_HEALINGWISHCAMETRUE] = COMPOUND_STRING("The healing wish came true for {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_HEALINGWISHHEALED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} regained health!"), + [STRINGID_LUNARDANCECAMETRUE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became cloaked in mystical moonlight!"), + [STRINGID_CUSEDBODYDISABLED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_BUFF1} was disabled by {B_DEF_NAME_WITH_PREFIX2}'s {B_DEF_ABILITY}!"), + [STRINGID_ATTACKERACQUIREDABILITY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} acquired {B_ATK_ABILITY}!"), + [STRINGID_TARGETABILITYSTATLOWER] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_DEF_ABILITY} lowered its {B_BUFF1}!"), + [STRINGID_TARGETSTATWONTGOHIGHER] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s {B_BUFF1} won't go any higher!"), + [STRINGID_PKMNMOVEBOUNCEDABILITY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE} was bounced back by {B_DEF_NAME_WITH_PREFIX2}'s {B_DEF_ABILITY}!"), + [STRINGID_IMPOSTERTRANSFORM] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} transformed into {B_DEF_NAME_WITH_PREFIX2} using {B_LAST_ABILITY}!"), + [STRINGID_ASSAULTVESTDOESNTALLOW] = COMPOUND_STRING("The effects of the {B_LAST_ITEM} prevent status moves from being used!\p"), + [STRINGID_GRAVITYPREVENTSUSAGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can't use {B_CURRENT_MOVE} because of gravity!\p"), + [STRINGID_HEALBLOCKPREVENTSUSAGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was prevented from healing!\p"), + [STRINGID_NOTDONEYET] = COMPOUND_STRING("This move effect is not done yet!\p"), + [STRINGID_STICKYWEBUSED] = COMPOUND_STRING("A sticky web has been laid out on the ground around {B_DEF_TEAM2} team!"), + [STRINGID_QUASHSUCCESS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s move was postponed!"), + [STRINGID_PKMNBLEWAWAYTOXICSPIKES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} blew away Toxic Spikes!"), + [STRINGID_PKMNBLEWAWAYSTICKYWEB] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} blew away Sticky Web!"), + [STRINGID_PKMNBLEWAWAYSTEALTHROCK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} blew away Stealth Rock!"), + [STRINGID_IONDELUGEON] = COMPOUND_STRING("A deluge of ions showers the battlefield!"), + [STRINGID_TOPSYTURVYSWITCHEDSTATS] = COMPOUND_STRING("All stat changes on {B_DEF_NAME_WITH_PREFIX2} were inverted!"), + [STRINGID_TERRAINBECOMESMISTY] = COMPOUND_STRING("Mist swirled around the battlefield!"), + [STRINGID_TERRAINBECOMESGRASSY] = COMPOUND_STRING("Grass grew to cover the battlefield!"), + [STRINGID_TERRAINBECOMESELECTRIC] = COMPOUND_STRING("An electric current ran across the battlefield!"), + [STRINGID_TERRAINBECOMESPSYCHIC] = COMPOUND_STRING("The battlefield got weird!"), + [STRINGID_TARGETELECTRIFIED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s moves have been electrified!"), + [STRINGID_MEGAEVOREACTING] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ITEM} is reacting to {B_ATK_TRAINER_NAME}'s Mega Ring!"), //actually displays the type of mega ring in inventory, but we didnt implement them :( + [STRINGID_MEGAEVOEVOLVED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} has Mega Evolved into Mega {B_BUFF1}!"), + [STRINGID_DRASTICALLY] = gText_drastically, + [STRINGID_SEVERELY] = gText_severely, + [STRINGID_INFESTATION] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} has been afflicted with an infestation by {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_NOEFFECTONTARGET] = COMPOUND_STRING("It won't have any effect on {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_BURSTINGFLAMESHIT] = COMPOUND_STRING("The bursting flames hit {B_SCR_NAME_WITH_PREFIX2}!"), + [STRINGID_BESTOWITEMGIVING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} received {B_LAST_ITEM} from {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_THIRDTYPEADDED] = COMPOUND_STRING("{B_BUFF1} type was added to {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_FELLFORFEINT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fell for the feint!"), + [STRINGID_POKEMONCANNOTUSEMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cannot use {B_CURRENT_MOVE}!"), + [STRINGID_COVEREDINPOWDER] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is covered in powder!"), + [STRINGID_POWDEREXPLODES] = COMPOUND_STRING("When the flame touched the powder on the Pokémon, it exploded!"), + [STRINGID_BELCHCANTSELECT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} hasn't eaten any held Berries, so it can't possibly belch!\p"), + [STRINGID_SPECTRALTHIEFSTEAL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} stole the target's boosted stats!"), + [STRINGID_GRAVITYGROUNDING] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} fell from the sky due to the gravity!"), + [STRINGID_MISTYTERRAINPREVENTS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} surrounds itself with a protective mist!"), + [STRINGID_GRASSYTERRAINHEALS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is healed by the grassy terrain!"), + [STRINGID_ELECTRICTERRAINPREVENTS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} surrounds itself with electrified terrain!"), + [STRINGID_PSYCHICTERRAINPREVENTS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} surrounds itself with psychic terrain!"), + [STRINGID_SAFETYGOGGLESPROTECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is not affected thanks to its {B_LAST_ITEM}!"), + [STRINGID_FLOWERVEILPROTECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} surrounded itself with a veil of petals!"), + [STRINGID_SWEETVEILPROTECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} can't fall asleep due to a veil of sweetness!"), + [STRINGID_AROMAVEILPROTECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is protected by an aromatic veil!"), + [STRINGID_CELEBRATEMESSAGE] = COMPOUND_STRING("Congratulations, {B_PLAYER_NAME}!"), + [STRINGID_USEDINSTRUCTEDMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} followed {B_BUFF1}'s instructions!"), + [STRINGID_THROATCHOPENDS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can use sound-based moves again!"), + [STRINGID_PKMNCANTUSEMOVETHROATCHOP] = COMPOUND_STRING("The effects of Throat Chop prevent {B_ATK_NAME_WITH_PREFIX2} from using certain moves!\p"), + [STRINGID_LASERFOCUS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} concentrated intensely!"), + [STRINGID_GEMACTIVATES] = COMPOUND_STRING("The {B_LAST_ITEM} strengthened {B_ATK_NAME_WITH_PREFIX2}'s power!"), + [STRINGID_BERRYDMGREDUCES] = COMPOUND_STRING("The {B_LAST_ITEM} weakened the damage to {B_SCR_NAME_WITH_PREFIX2}!"), + [STRINGID_AIRBALLOONFLOAT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} floats in the air with its Air Balloon!"), + [STRINGID_AIRBALLOONPOP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s Air Balloon popped!"), + [STRINGID_INCINERATEBURN] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s {B_LAST_ITEM} was burnt up!"), + [STRINGID_BUGBITE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} stole and ate its target's {B_LAST_ITEM}!"), + [STRINGID_ILLUSIONWOREOFF] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s illusion wore off!"), + [STRINGID_ATTACKERCUREDTARGETSTATUS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cured {B_DEF_NAME_WITH_PREFIX2}'s problem!"), + [STRINGID_ATTACKERLOSTFIRETYPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} burned itself out!"), + [STRINGID_HEALERCURE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_LAST_ABILITY} cured {B_SCR_NAME_WITH_PREFIX2}'s problem!"), + [STRINGID_SCRIPTINGABILITYSTATRAISE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} raised its {B_BUFF1}!"), + [STRINGID_RECEIVERABILITYTAKEOVER] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} was taken over!"), + [STRINGID_PKNMABSORBINGPOWER] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is absorbing power!"), + [STRINGID_NOONEWILLBEABLETORUNAWAY] = COMPOUND_STRING("No one will be able to run away during the next turn!"), + [STRINGID_DESTINYKNOTACTIVATES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} fell in love because of the {B_LAST_ITEM}!"), + [STRINGID_CLOAKEDINAFREEZINGLIGHT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became cloaked in a freezing light!"), + [STRINGID_CLEARAMULETWONTLOWERSTATS] = COMPOUND_STRING("The effects of the {B_LAST_ITEM} held by {B_DEF_NAME_WITH_PREFIX2} prevents its stats from being lowered!"), + [STRINGID_FERVENTWISHREACHED] = COMPOUND_STRING("{B_ATK_TRAINER_NAME}'s fervent wish has reached {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_AIRLOCKACTIVATES] = COMPOUND_STRING("The effects of the weather disappeared."), + [STRINGID_PRESSUREENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is exerting its pressure!"), + [STRINGID_DARKAURAENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is radiating a dark aura!"), + [STRINGID_FAIRYAURAENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is radiating a fairy aura!"), + [STRINGID_AURABREAKENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} reversed all other Pokémon's auras!"), + [STRINGID_COMATOSEENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is drowsing!"), + [STRINGID_SCREENCLEANERENTERS] = COMPOUND_STRING("All screens on the field were cleansed!"), + [STRINGID_FETCHEDPOKEBALL] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} found a {B_LAST_ITEM}!"), + [STRINGID_BATTLERABILITYRAISEDSTAT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} raised its {B_BUFF1}!"), + [STRINGID_ASANDSTORMKICKEDUP] = COMPOUND_STRING("A sandstorm kicked up!"), + [STRINGID_PKMNSWILLPERISHIN3TURNS] = COMPOUND_STRING("Both Pokémon will perish in three turns!"), //don't think this message is displayed anymore + [STRINGID_ABILITYRAISEDSTATDRASTICALLY] = COMPOUND_STRING("{B_DEF_ABILITY} raised {B_DEF_NAME_WITH_PREFIX2}'s {B_BUFF1} drastically!"), + [STRINGID_AURAFLAREDTOLIFE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s aura flared to life!"), + [STRINGID_ASONEENTERS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} has two Abilities!"), + [STRINGID_CURIOUSMEDICINEENTERS] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX}'s stat changes were removed!"), + [STRINGID_CANACTFASTERTHANKSTO] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can act faster than normal, thanks to its {B_BUFF1}!"), + [STRINGID_MICLEBERRYACTIVATES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} boosted the accuracy of its next move using {B_LAST_ITEM}!"), + [STRINGID_PKMNSHOOKOFFTHETAUNT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} shook off the taunt!"), + [STRINGID_PKMNGOTOVERITSINFATUATION] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} got over its infatuation!"), + [STRINGID_ITEMCANNOTBEREMOVED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s item cannot be removed!"), + [STRINGID_STICKYBARBTRANSFER] = COMPOUND_STRING("The {B_LAST_ITEM} attached itself to {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNBURNHEALED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s burn was cured!"), + [STRINGID_REDCARDACTIVATE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} held up its Red Card against {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_EJECTBUTTONACTIVATE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} is switched out with the {B_LAST_ITEM}!"), + [STRINGID_ATKGOTOVERINFATUATION] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} got over its infatuation!"), + [STRINGID_TORMENTEDNOMORE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is no longer tormented!"), + [STRINGID_HEALBLOCKEDNOMORE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is cured of its heal block!"), + [STRINGID_ATTACKERBECAMEFULLYCHARGED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became fully charged due to its bond with its trainer!\p"), + [STRINGID_ATTACKERBECAMEASHSPECIES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became Ash-Greninja!\p"), + [STRINGID_EXTREMELYHARSHSUNLIGHT] = COMPOUND_STRING("The sunlight turned extremely harsh!"), + [STRINGID_EXTREMESUNLIGHTFADED] = COMPOUND_STRING("The extremely harsh sunlight faded!"), + [STRINGID_MOVEEVAPORATEDINTHEHARSHSUNLIGHT] = COMPOUND_STRING("The Water-type attack evaporated in the extremely harsh sunlight!"), + [STRINGID_EXTREMELYHARSHSUNLIGHTWASNOTLESSENED] = COMPOUND_STRING("The extremely harsh sunlight was not lessened at all!"), + [STRINGID_HEAVYRAIN] = COMPOUND_STRING("A heavy rain began to fall!"), + [STRINGID_HEAVYRAINLIFTED] = COMPOUND_STRING("The heavy rain has lifted!"), + [STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN] = COMPOUND_STRING("The Fire-type attack fizzled out in the heavy rain!"), + [STRINGID_NORELIEFROMHEAVYRAIN] = COMPOUND_STRING("There is no relief from this heavy rain!"), + [STRINGID_MYSTERIOUSAIRCURRENT] = COMPOUND_STRING("Mysterious strong winds are protecting Flying-type Pokémon!"), + [STRINGID_STRONGWINDSDISSIPATED] = COMPOUND_STRING("The mysterious strong winds have dissipated!"), + [STRINGID_MYSTERIOUSAIRCURRENTBLOWSON] = COMPOUND_STRING("The mysterious strong winds blow on regardless!"), + [STRINGID_ATTACKWEAKENEDBSTRONGWINDS] = COMPOUND_STRING("The mysterious strong winds weakened the attack!"), + [STRINGID_STUFFCHEEKSCANTSELECT] = COMPOUND_STRING("It can't use the move because it doesn't have a Berry!\p"), + [STRINGID_PKMNREVERTEDTOPRIMAL] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s Primal Reversion! It reverted to its primal state!"), + [STRINGID_BUTPOKEMONCANTUSETHEMOVE] = COMPOUND_STRING("But {B_ATK_NAME_WITH_PREFIX2} can't use the move!"), + [STRINGID_BUTHOOPACANTUSEIT] = COMPOUND_STRING("But {B_ATK_NAME_WITH_PREFIX2} can't use it the way it is now!"), + [STRINGID_BROKETHROUGHPROTECTION] = COMPOUND_STRING("It broke through {B_DEF_NAME_WITH_PREFIX2}'s protection!"), + [STRINGID_ABILITYALLOWSONLYMOVE] = COMPOUND_STRING("{B_ATK_ABILITY} only allows the use of {B_CURRENT_MOVE}!\p"), + [STRINGID_SWAPPEDABILITIES] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} swapped Abilities with its target!"), + [STRINGID_PASTELVEILPROTECTED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is protected by a pastel veil!"), + [STRINGID_PASTELVEILENTERS] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} was cured of its poisoning!"), + [STRINGID_BATTLERTYPECHANGEDTO] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s type changed to {B_BUFF1}!"), + [STRINGID_BOTHCANNOLONGERESCAPE] = COMPOUND_STRING("Neither Pokémon can run away!"), + [STRINGID_CANTESCAPEDUETOUSEDMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} can no longer escape because it used No Retreat!"), + [STRINGID_PKMNBECAMEWEAKERTOFIRE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} became weaker to fire!"), + [STRINGID_ABOUTTOUSEPOLTERGEIST] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is about to be attacked by its {B_BUFF1}!"), + [STRINGID_CANTESCAPEBECAUSEOFCURRENTMOVE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} can no longer escape because of Octolock!"), + [STRINGID_NEUTRALIZINGGASENTERS] = COMPOUND_STRING("Neutralizing gas filled the area!"), + [STRINGID_NEUTRALIZINGGASOVER] = COMPOUND_STRING("The effects of the neutralizing gas wore off!"), + [STRINGID_TARGETTOOHEAVY] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is too heavy to be lifted!"), + [STRINGID_PKMNTOOKTARGETHIGH] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} took {B_DEF_NAME_WITH_PREFIX2} into the sky!"), + [STRINGID_PKMNINSNAPTRAP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} got trapped by a snap trap!"), + [STRINGID_METEORBEAMCHARGING] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is overflowing with space power!"), + [STRINGID_HEATUPBEAK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} started heating up its beak!"), + [STRINGID_COURTCHANGE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} swapped the battle effects affecting each side of the field!"), + [STRINGID_PLAYERLOSTTOENEMYTRAINER] = COMPOUND_STRING("You have no more Pokémon that can fight!\pYou lost to {B_TRAINER1_NAME_WITH_CLASS}!{PAUSE_UNTIL_PRESS}"), + [STRINGID_PLAYERPAIDPRIZEMONEY] = COMPOUND_STRING("You gave ¥{B_BUFF1} to the winner…\pYou were overwhelmed by your defeat!{PAUSE_UNTIL_PRESS}"), + [STRINGID_ZPOWERSURROUNDS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} surrounded itself with its Z-Power!"), + [STRINGID_ZMOVEUNLEASHED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} unleashes its full-force Z-Move!"), + [STRINGID_ZMOVERESETSSTATS] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} returned its decreased stats to normal using its Z-Power!"), + [STRINGID_ZMOVEALLSTATSUP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} boosted its stats using its Z-Power!"), + [STRINGID_ZMOVEZBOOSTCRIT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} boosted its critical-hit ratio using its Z-Power!"), + [STRINGID_ZMOVERESTOREHP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} restored its HP using its Z-Power!"), + [STRINGID_ZMOVESTATUP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} boosted its stats using its Z-Power!"), + [STRINGID_ZMOVEHPTRAP] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s HP was restored by the Z-Power!"), + [STRINGID_ATTACKEREXPELLEDTHEPOISON] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} managed to expel the poison so you wouldn't worry!"), + [STRINGID_ATTACKERSHOOKITSELFAWAKE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shook itself awake so you wouldn't worry!"), + [STRINGID_ATTACKERBROKETHROUGHPARALYSIS] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} gathered all its energy to break through its paralysis so you wouldn't worry!"), + [STRINGID_ATTACKERHEALEDITSBURN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cured its burn through sheer determination so you wouldn't worry!"), + [STRINGID_ATTACKERMELTEDTHEICE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} melted the ice with its fiery determination so you wouldn't worry!"), + [STRINGID_TARGETTOUGHEDITOUT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} toughed it out so you wouldn't feel sad!"), + [STRINGID_ATTACKERLOSTELECTRICTYPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} used up all its electricity!"), + [STRINGID_ATTACKERSWITCHEDSTATWITHTARGET] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} switched {B_BUFF1} with its target!"), + [STRINGID_BEINGHITCHARGEDPKMNWITHPOWER] = COMPOUND_STRING("Being hit by {B_CURRENT_MOVE} charged {B_DEF_NAME_WITH_PREFIX2} with power!"), + [STRINGID_SUNLIGHTACTIVATEDABILITY] = COMPOUND_STRING("The harsh sunlight activated {B_SCR_NAME_WITH_PREFIX2}'s Protosynthesis!"), + [STRINGID_STATWASHEIGHTENED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_BUFF1} was heightened!"), + [STRINGID_ELECTRICTERRAINACTIVATEDABILITY] = COMPOUND_STRING("The Electric Terrain activated {B_SCR_NAME_WITH_PREFIX2}'s Quark Drive!"), + [STRINGID_ABILITYWEAKENEDSURROUNDINGMONSSTAT] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} weakened the {B_BUFF1} of all surrounding Pokémon!\p"), + [STRINGID_ATTACKERGAINEDSTRENGTHFROMTHEFALLEN] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} gained strength from the fallen!"), + [STRINGID_PKMNSABILITYPREVENTSABILITY] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_SCR_ACTIVE_ABILITY} prevents {B_DEF_NAME_WITH_PREFIX2}'s {B_DEF_ABILITY} from working!"), //not in gen 5+, ability popup + [STRINGID_PREPARESHELLTRAP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} set a shell trap!"), + [STRINGID_SHELLTRAPDIDNTWORK] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s shell trap didn't work!"), + [STRINGID_SPIKESDISAPPEAREDFROMTEAM] = COMPOUND_STRING("The spikes disappeared from the ground around {B_ATK_TEAM2} team!"), + [STRINGID_TOXICSPIKESDISAPPEAREDFROMTEAM] = COMPOUND_STRING("The poison spikes disappeared from the ground around {B_ATK_TEAM2} team!"), + [STRINGID_STICKYWEBDISAPPEAREDFROMTEAM] = COMPOUND_STRING("The sticky web has disappeared from the ground around {B_ATK_TEAM2} team!"), + [STRINGID_STEALTHROCKDISAPPEAREDFROMTEAM] = COMPOUND_STRING("The pointed stones disappeared from around {B_ATK_TEAM2} team!"), + [STRINGID_COULDNTFULLYPROTECT] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} couldn't fully protect itself and got hurt!"), + [STRINGID_STOCKPILEDEFFECTWOREOFF] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s stockpiled effect wore off!"), + [STRINGID_PKMNREVIVEDREADYTOFIGHT] = COMPOUND_STRING("{B_BUFF1} was revived and is ready to fight again!"), + [STRINGID_ITEMRESTOREDSPECIESHEALTH] = COMPOUND_STRING("{B_BUFF1} had its HP restored."), + [STRINGID_ITEMCUREDSPECIESSTATUS] = COMPOUND_STRING("{B_BUFF1} had its status healed!"), + [STRINGID_ITEMRESTOREDSPECIESPP] = COMPOUND_STRING("{B_BUFF1} had its PP restored!"), + [STRINGID_THUNDERCAGETRAPPED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} trapped {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNHURTBYFROSTBITE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by its frostbite!"), + [STRINGID_PKMNGOTFROSTBITE] = COMPOUND_STRING("{B_EFF_NAME_WITH_PREFIX} got frostbite!"), + [STRINGID_PKMNSITEMHEALEDFROSTBITE] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX}'s {B_LAST_ITEM} cured its frostbite!"), + [STRINGID_ATTACKERHEALEDITSFROSTBITE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} cured its frostbite through sheer determination so you wouldn't worry!"), + [STRINGID_PKMNFROSTBITEHEALED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX}'s frostbite was cured!"), + [STRINGID_PKMNFROSTBITEHEALED2] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s frostbite was cured!"), + [STRINGID_PKMNFROSTBITEHEALEDBY] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX}'s {B_CURRENT_MOVE} cured its frostbite!"), + [STRINGID_MIRRORHERBCOPIED] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} used its Mirror Herb to mirror its opponent's stat changes!"), + [STRINGID_STARTEDSNOW] = COMPOUND_STRING("It started to snow!"), + [STRINGID_SNOWCONTINUES] = COMPOUND_STRING("Snow continues to fall."), //not in gen 5+ (lol) + [STRINGID_SNOWSTOPPED] = COMPOUND_STRING("The snow stopped."), + [STRINGID_SNOWWARNINGSNOW] = COMPOUND_STRING("It started to snow!"), + [STRINGID_PKMNITEMMELTED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} corroded {B_DEF_NAME_WITH_PREFIX2}'s {B_LAST_ITEM}!"), + [STRINGID_ULTRABURSTREACTING] = COMPOUND_STRING("Bright light is about to burst out of {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_ULTRABURSTCOMPLETED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} regained its true power through Ultra Burst!"), + [STRINGID_TEAMGAINEDEXP] = COMPOUND_STRING("The rest of your team gained Exp. Points thanks to the Exp. Share!\p"), + [STRINGID_CURRENTMOVECANTSELECT] = COMPOUND_STRING("{B_BUFF1} cannot be used!\p"), + [STRINGID_TARGETISBEINGSALTCURED] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is being salt cured!"), + [STRINGID_TARGETISHURTBYSALTCURE] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} is hurt by {B_BUFF1}!"), + [STRINGID_TARGETCOVEREDINSTICKYCANDYSYRUP] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} got covered in sticky candy syrup!"), + [STRINGID_SHARPSTEELFLOATS] = COMPOUND_STRING("Sharp-pointed pieces of steel started floating around {B_DEF_TEAM2} Pokémon!"), + [STRINGID_SHARPSTEELDMG] = COMPOUND_STRING("The sharp steel bit into {B_DEF_NAME_WITH_PREFIX2}!"), + [STRINGID_PKMNBLEWAWAYSHARPSTEEL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} blew away sharp steel!"), + [STRINGID_SHARPSTEELDISAPPEAREDFROMTEAM] = COMPOUND_STRING("The pieces of steel surrounding {B_ATK_TEAM2} Pokémon disappeared!"), + [STRINGID_TEAMTRAPPEDWITHVINES] = COMPOUND_STRING("{B_DEF_TEAM1} Pokémon got trapped with vines!"), + [STRINGID_PKMNHURTBYVINES] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is hurt by G-Max Vine Lash's ferocious beating!"), + [STRINGID_TEAMCAUGHTINVORTEX] = COMPOUND_STRING("{B_DEF_TEAM1} Pokémon got caught in a vortex of water!"), + [STRINGID_PKMNHURTBYVORTEX] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is hurt by G-Max Cannonade's vortex!"), + [STRINGID_TEAMSURROUNDEDBYFIRE] = COMPOUND_STRING("{B_DEF_TEAM1} Pokémon were surrounded by fire!"), + [STRINGID_PKMNBURNINGUP] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is burning up within G-Max Wildfire's flames!"), + [STRINGID_TEAMSURROUNDEDBYROCKS] = COMPOUND_STRING("{B_DEF_TEAM1} Pokémon became surrounded by rocks!"), + [STRINGID_PKMNHURTBYROCKSTHROWN] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is hurt by rocks thrown out by G-Max Volcalith!"), + [STRINGID_MOVEBLOCKEDBYDYNAMAX] = COMPOUND_STRING("The move was blocked by the power of Dynamax!"), + [STRINGID_ZEROTOHEROTRANSFORMATION] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} underwent a heroic transformation!"), + [STRINGID_THETWOMOVESBECOMEONE] = COMPOUND_STRING("The two moves have become one! It's a combined move!{PAUSE 16}"), + [STRINGID_ARAINBOWAPPEAREDONSIDE] = COMPOUND_STRING("A rainbow appeared in the sky on {B_ATK_TEAM2} team's side!"), + [STRINGID_THERAINBOWDISAPPEARED] = COMPOUND_STRING("The rainbow on {B_ATK_TEAM2} team's side disappeared!"), + [STRINGID_WAITINGFORPARTNERSMOVE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is waiting for {B_ATK_PARTNER_NAME}'s move…{PAUSE 16}"), + [STRINGID_SEAOFFIREENVELOPEDSIDE] = COMPOUND_STRING("A sea of fire enveloped {B_DEF_TEAM2} team!"), + [STRINGID_HURTBYTHESEAOFFIRE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} was hurt by the sea of fire!"), + [STRINGID_THESEAOFFIREDISAPPEARED] = COMPOUND_STRING("The sea of fire around {B_ATK_TEAM2} team disappeared!"), + [STRINGID_SWAMPENVELOPEDSIDE] = COMPOUND_STRING("A swamp enveloped {B_DEF_TEAM2} team!"), + [STRINGID_THESWAMPDISAPPEARED] = COMPOUND_STRING("The swamp around {B_ATK_TEAM2} team disappeared!"), + [STRINGID_PKMNTELLCHILLINGRECEPTIONJOKE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is preparing to tell a chillingly bad joke!"), + [STRINGID_HOSPITALITYRESTORATION] = COMPOUND_STRING("{B_ATK_PARTNER_NAME} drank down all the matcha that {B_ATK_NAME_WITH_PREFIX2} made!"), + [STRINGID_ELECTROSHOTCHARGING] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} absorbed electricity!"), + [STRINGID_ITEMWASUSEDUP] = COMPOUND_STRING("The {B_LAST_ITEM} was used up…"), + [STRINGID_ATTACKERLOSTITSTYPE] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} lost its {B_BUFF1} type!"), + [STRINGID_SHEDITSTAIL] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} shed its tail to create a decoy!"), + [STRINGID_CLOAKEDINAHARSHLIGHT] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} became cloaked in a harsh light!"), + [STRINGID_SUPERSWEETAROMAWAFTS] = COMPOUND_STRING("A supersweet aroma is wafting from the syrup covering {B_ATK_NAME_WITH_PREFIX2}!"), + [STRINGID_DIMENSIONSWERETWISTED] = COMPOUND_STRING("The dimensions were twisted!"), + [STRINGID_BIZARREARENACREATED] = COMPOUND_STRING("A bizarre area was created in which Pokémon's held items lose their effects!"), + [STRINGID_BIZARREAREACREATED] = COMPOUND_STRING("A bizarre area was created in which Defense and Sp. Def stats are swapped!"), + [STRINGID_TIDYINGUPCOMPLETE] = COMPOUND_STRING("Tidying up complete!"), + [STRINGID_PKMNTERASTALLIZEDINTO] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} terastallized into the {B_BUFF1} type!"), + [STRINGID_BOOSTERENERGYACTIVATES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} used its {B_LAST_ITEM} to activate {B_SCR_ACTIVE_ABILITY}!"), + [STRINGID_FOGCREPTUP] = COMPOUND_STRING("Fog crept up as thick as soup!"), + [STRINGID_FOGISDEEP] = COMPOUND_STRING("The fog is deep…"), + [STRINGID_FOGLIFTED] = COMPOUND_STRING("The fog lifted."), + [STRINGID_PKMNMADESHELLGLEAM] = COMPOUND_STRING("{B_DEF_NAME_WITH_PREFIX} made its shell gleam! It's distorting type matchups!"), + [STRINGID_FICKLEBEAMDOUBLED] = COMPOUND_STRING("{B_ATK_NAME_WITH_PREFIX} is going all out for this attack!"), + [STRINGID_COMMANDERACTIVATES] = COMPOUND_STRING("{B_SCR_NAME_WITH_PREFIX} was swallowed by Dondozo and became Dondozo's commander!"), + [STRINGID_POKEFLUTECATCHY] = COMPOUND_STRING("{B_PLAYER_NAME} played the {B_LAST_ITEM}.\pNow, that's a catchy tune!"), + [STRINGID_POKEFLUTE] = COMPOUND_STRING("{B_PLAYER_NAME} played the {B_LAST_ITEM}."), + [STRINGID_MONHEARINGFLUTEAWOKE] = COMPOUND_STRING("The Pokémon hearing the flute awoke!"), + [STRINGID_SUNLIGHTISHARSH] = COMPOUND_STRING("The sunlight is harsh!"), + [STRINGID_ITISHAILING] = COMPOUND_STRING("It's hailing!"), + [STRINGID_ITISSNOWING] = COMPOUND_STRING("It's snowing!"), + [STRINGID_ISCOVEREDWITHGRASS] = COMPOUND_STRING("The battlefield is covered with grass!"), + [STRINGID_MISTSWIRLSAROUND] = COMPOUND_STRING("Mist swirls around the battlefield!"), + [STRINGID_ELECTRICCURRENTISRUNNING] = COMPOUND_STRING("An electric current is running across the battlefield!"), + [STRINGID_SEEMSWEIRD] = COMPOUND_STRING("The battlefield seems weird!"), + [STRINGID_WAGGLINGAFINGER] = COMPOUND_STRING("Waggling a finger let it use {B_CURRENT_MOVE}!"), + [STRINGID_BLOCKEDBYSLEEPCLAUSE] = COMPOUND_STRING("Sleep Clause kept {B_DEF_NAME_WITH_PREFIX2} awake!"), + [STRINGID_SUPEREFFECTIVETWOFOES] = COMPOUND_STRING("It's super effective on {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}!"), + [STRINGID_NOTVERYEFFECTIVETWOFOES] = COMPOUND_STRING("It's not very effective on {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}!"), + [STRINGID_ITDOESNTAFFECTTWOFOES] = COMPOUND_STRING("It doesn't affect {B_DEF_NAME_WITH_PREFIX2} and {B_DEF_PARTNER_NAME}…"), }; const u16 gTrainerUsedItemStringIds[] = @@ -1621,11 +945,6 @@ const u16 gTerrainPreventsStringIds[] = [B_MSG_TERRAINPREVENTS_PSYCHIC] = STRINGID_PSYCHICTERRAINPREVENTS }; -const u16 gMagicCoatBounceStringIds[] = -{ - STRINGID_PKMNMOVEBOUNCED, STRINGID_PKMNMOVEBOUNCEDABILITY -}; - const u16 gHealingWishStringIds[] = { STRINGID_HEALINGWISHCAMETRUE, STRINGID_LUNARDANCECAMETRUE @@ -1742,9 +1061,9 @@ const u16 gReflectLightScreenSafeguardStringIds[] = { [B_MSG_SIDE_STATUS_FAILED] = STRINGID_BUTITFAILED, [B_MSG_SET_REFLECT_SINGLE] = STRINGID_PKMNRAISEDDEF, - [B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEFALITTLE, + [B_MSG_SET_REFLECT_DOUBLE] = STRINGID_PKMNRAISEDDEF, [B_MSG_SET_LIGHTSCREEN_SINGLE] = STRINGID_PKMNRAISEDSPDEF, - [B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEFALITTLE, + [B_MSG_SET_LIGHTSCREEN_DOUBLE] = STRINGID_PKMNRAISEDSPDEF, [B_MSG_SET_SAFEGUARD] = STRINGID_PKMNCOVEREDBYVEIL, }; @@ -1951,7 +1270,7 @@ const u16 gWeatherStartsStringIds[] = [WEATHER_SUNNY_CLOUDS] = STRINGID_ITISRAINING, [WEATHER_SUNNY] = STRINGID_ITISRAINING, [WEATHER_RAIN] = STRINGID_ITISRAINING, - [WEATHER_SNOW] = (B_OVERWORLD_SNOW >= GEN_9 ? STRINGID_STARTEDSNOW : STRINGID_STARTEDHAIL), + [WEATHER_SNOW] = (B_OVERWORLD_SNOW >= GEN_9 ? STRINGID_ITISSNOWING : STRINGID_ITISHAILING), [WEATHER_RAIN_THUNDERSTORM] = STRINGID_ITISRAINING, [WEATHER_FOG_HORIZONTAL] = STRINGID_FOGISDEEP, [WEATHER_VOLCANIC_ASH] = STRINGID_ITISRAINING, @@ -1959,12 +1278,17 @@ const u16 gWeatherStartsStringIds[] = [WEATHER_FOG_DIAGONAL] = STRINGID_FOGISDEEP, [WEATHER_UNDERWATER] = STRINGID_ITISRAINING, [WEATHER_SHADE] = STRINGID_ITISRAINING, - [WEATHER_DROUGHT] = STRINGID_SUNLIGHTSTRONG, + [WEATHER_DROUGHT] = STRINGID_SUNLIGHTISHARSH, [WEATHER_DOWNPOUR] = STRINGID_ITISRAINING, [WEATHER_UNDERWATER_BUBBLES] = STRINGID_ITISRAINING, [WEATHER_ABNORMAL] = STRINGID_ITISRAINING }; +const u16 gTerrainStartsStringIds[] = +{ + STRINGID_MISTSWIRLSAROUND, STRINGID_ELECTRICCURRENTISRUNNING, STRINGID_ISCOVEREDWITHGRASS, STRINGID_SEEMSWEIRD, +}; + const u16 gPrimalWeatherBlocksStringIds[] = { [B_MSG_PRIMAL_WEATHER_FIZZLED_BY_RAIN] = STRINGID_MOVEFIZZLEDOUTINTHEHEAVYRAIN, @@ -2079,12 +1403,12 @@ const u8 gText_PkmnIsEvolving[] = _("What?\n{STR_VAR_1} is evolving!"); const u8 gText_CongratsPkmnEvolved[] = _("Congratulations! Your {STR_VAR_1}\nevolved into {STR_VAR_2}!{WAIT_SE}\p"); const u8 gText_PkmnStoppedEvolving[] = _("Huh? {STR_VAR_1}\nstopped evolving!\p"); const u8 gText_EllipsisQuestionMark[] = _("……?\p"); -const u8 gText_WhatWillPkmnDo[] = _("What will\n{B_BUFF1} do?"); -const u8 gText_WhatWillPkmnDo2[] = _("What will\n{B_PLAYER_NAME} do?"); +const u8 gText_WhatWillPkmnDo[] = _("What will {B_BUFF1} do?"); +const u8 gText_WhatWillPkmnDo2[] = _("What will {B_PLAYER_NAME} do?"); const u8 gText_WhatWillWallyDo[] = _("What will\nWALLY do?"); const u8 gText_LinkStandby[] = _("{PAUSE 16}Link standby…"); -const u8 gText_BattleMenu[] = _("FIGHT{CLEAR_TO 56}BAG\nPOKéMON{CLEAR_TO 56}RUN"); -const u8 gText_SafariZoneMenu[] = _("BALL{CLEAR_TO 56}{POKEBLOCK}\nGO NEAR{CLEAR_TO 56}RUN"); +const u8 gText_BattleMenu[] = _("Battle{CLEAR_TO 56}Bag\nPokémon{CLEAR_TO 56}Run"); +const u8 gText_SafariZoneMenu[] = _("Ball{CLEAR_TO 56}{POKEBLOCK}\nGo Near{CLEAR_TO 56}Run"); const u8 gText_MoveInterfacePP[] = _("PP "); const u8 gText_MoveInterfaceType[] = _("TYPE/"); const u8 gText_MoveInterfacePpType[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNAMIC_COLOR4 DYNAMIC_COLOR5 DYNAMIC_COLOR6}PP\nTYPE/"); @@ -2096,15 +1420,7 @@ const u8 gText_BattleSwitchWhich2[] = _("{PALETTE 5}{COLOR_HIGHLIGHT_SHADOW DYNA const u8 gText_BattleSwitchWhich3[] = _("{UP_ARROW}"); const u8 gText_BattleSwitchWhich4[] = _("{ESCAPE 4}"); const u8 gText_BattleSwitchWhich5[] = _("-"); - -// Unused -static const u8 *const sStatNamesTable2[] = -{ - gText_HP3, gText_SpAtk, gText_Attack, - gText_SpDef, gText_Defense, gText_Speed -}; - -const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GRAY}SAFARI BALLS"); +const u8 gText_SafariBalls[] = _("{HIGHLIGHT DARK_GRAY}Safari Balls"); const u8 gText_SafariBallLeft[] = _("{HIGHLIGHT DARK_GRAY}Left: $" "{HIGHLIGHT DARK_GRAY}"); const u8 gText_Sleep[] = _("sleep"); const u8 gText_Poison[] = _("poison"); @@ -2120,33 +1436,28 @@ const u8 gText_LineBreak[] = _("\l"); const u8 gText_NewLine[] = _("\n"); const u8 gText_Are[] = _("are"); const u8 gText_Are2[] = _("are"); -const u8 gText_BadEgg[] = _("Bad EGG"); +const u8 gText_BadEgg[] = _("Bad Egg"); const u8 gText_BattleWallyName[] = _("WALLY"); const u8 gText_Win[] = _("{HIGHLIGHT TRANSPARENT}Win"); const u8 gText_Loss[] = _("{HIGHLIGHT TRANSPARENT}Loss"); const u8 gText_Draw[] = _("{HIGHLIGHT TRANSPARENT}Draw"); static const u8 sText_SpaceIs[] = _(" is"); static const u8 sText_ApostropheS[] = _("'s"); - const u8 gText_BattleTourney[] = _("BATTLE TOURNEY"); -static const u8 sText_Round1[] = _("Round 1"); -static const u8 sText_Round2[] = _("Round 2"); -static const u8 sText_Semifinal[] = _("Semifinal"); -static const u8 sText_Final[] = _("Final"); const u8 *const gRoundsStringTable[DOME_ROUNDS_COUNT] = { - [DOME_ROUND1] = sText_Round1, - [DOME_ROUND2] = sText_Round2, - [DOME_SEMIFINAL] = sText_Semifinal, - [DOME_FINAL] = sText_Final + [DOME_ROUND1] = COMPOUND_STRING("Round 1"), + [DOME_ROUND2] = COMPOUND_STRING("Round 2"), + [DOME_SEMIFINAL] = COMPOUND_STRING("Semifinal"), + [DOME_FINAL] = COMPOUND_STRING("Final"), }; const u8 gText_TheGreatNewHope[] = _("The great new hope!\p"); const u8 gText_WillChampionshipDreamComeTrue[] = _("Will the championship dream come true?!\p"); -const u8 gText_AFormerChampion[] = _("A former CHAMPION!\p"); -const u8 gText_ThePreviousChampion[] = _("The previous CHAMPION!\p"); -const u8 gText_TheUnbeatenChampion[] = _("The unbeaten CHAMPION!\p"); +const u8 gText_AFormerChampion[] = _("A former champion!\p"); +const u8 gText_ThePreviousChampion[] = _("The previous champion!\p"); +const u8 gText_TheUnbeatenChampion[] = _("The unbeaten champion!\p"); const u8 gText_PlayerMon1Name[] = _("{B_PLAYER_MON1_NAME}"); const u8 gText_Vs[] = _("VS"); const u8 gText_OpponentMon1Name[] = _("{B_OPPONENT_MON1_NAME}"); @@ -2154,17 +1465,10 @@ const u8 gText_Mind[] = _("Mind"); const u8 gText_Skill[] = _("Skill"); const u8 gText_Body[] = _("Body"); const u8 gText_Judgment[] = _("{B_BUFF1}{CLEAR 13}Judgment{CLEAR 13}{B_BUFF2}"); -static const u8 sText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} sent\nout {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_OPPONENT_MON2_NAME}!"); -static const u8 sText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_CLASS} {B_TRAINER2_NAME} sent\nout {B_BUFF1}!"); -static const u8 sText_TwoTrainersWantToBattle[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwant to battle!\p"); -static const u8 sText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_CLASS} {B_PARTNER_NAME} sent\nout {B_PLAYER_MON2_NAME}!\lGo, {B_PLAYER_MON1_NAME}!"); -static const u8 sText_TwoInGameTrainersDefeated[] = _("{B_TRAINER1_CLASS} {B_TRAINER1_NAME} and\n{B_TRAINER2_CLASS} {B_TRAINER2_NAME}\lwere defeated!\p"); -static const u8 sText_Trainer2LoseText[] = _("{B_TRAINER2_LOSE_TEXT}"); -static const u8 sText_PkmnIncapableOfPower[] = _("{B_ATK_NAME_WITH_PREFIX} appears incapable\nof using its power!"); -static const u8 sText_GlintAppearsInEye[] = _("A glint appears in\n{B_SCR_ACTIVE_NAME_WITH_PREFIX}'s eyes!"); -static const u8 sText_PkmnGettingIntoPosition[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is getting into\nposition!"); -static const u8 sText_PkmnBeganGrowlingDeeply[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} began growling deeply!"); -static const u8 sText_PkmnEagerForMore[] = _("{B_SCR_ACTIVE_NAME_WITH_PREFIX} is eager for more!"); +static const u8 sText_TwoTrainersSentPkmn[] = _("{B_TRAINER1_NAME_WITH_CLASS} sent out {B_OPPONENT_MON1_NAME}!\p{B_TRAINER2_NAME_WITH_CLASS} sent out {B_OPPONENT_MON2_NAME}!"); +static const u8 sText_Trainer2SentOutPkmn[] = _("{B_TRAINER2_NAME_WITH_CLASS} sent out {B_BUFF1}!"); +static const u8 sText_TwoTrainersWantToBattle[] = _("You are challenged by {B_TRAINER1_NAME_WITH_CLASS} and {B_TRAINER2_NAME_WITH_CLASS}!\p"); +static const u8 sText_InGamePartnerSentOutZGoN[] = _("{B_PARTNER_NAME_WITH_CLASS} sent out {B_PLAYER_MON2_NAME}! Go, {B_PLAYER_MON1_NAME}!"); const u16 gBattlePalaceFlavorTextTable[] = { @@ -2174,43 +1478,26 @@ const u16 gBattlePalaceFlavorTextTable[] = [B_MSG_EAGER_FOR_MORE] = STRINGID_PKMNEAGERFORMORE, }; -static const u8 sText_RefIfNothingIsDecided[] = _("REFEREE: If nothing is decided in\n3 turns, we will go to judging!"); -static const u8 sText_RefThatsIt[] = _("REFEREE: That's it! We will now go to\njudging to determine the winner!"); -static const u8 sText_RefJudgeMind[] = _("REFEREE: Judging category 1, Mind!\nThe POKéMON showing the most guts!\p"); -static const u8 sText_RefJudgeSkill[] = _("REFEREE: Judging category 2, Skill!\nThe POKéMON using moves the best!\p"); -static const u8 sText_RefJudgeBody[] = _("REFEREE: Judging category 3, Body!\nThe POKéMON with the most vitality!\p"); -static const u8 sText_RefPlayerWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"); -static const u8 sText_RefOpponentWon[] = _("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}!\nThe winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"); -static const u8 sText_RefDraw[] = _("REFEREE: Judgment: 3 to 3!\nWe have a draw!\p"); -static const u8 sText_DefeatedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} defeated the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); -static const u8 sText_LostToOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} lost to the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); -static const u8 sText_TiedOpponentByReferee[] = _("{B_PLAYER_MON1_NAME} tied the opponent\n{B_OPPONENT_MON1_NAME} in a REFEREE's decision!"); -static const u8 sText_RefCommenceBattle[] = _("REFEREE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}!\nCommence battling!"); - const u8 *const gRefereeStringsTable[] = { - [B_MSG_REF_NOTHING_IS_DECIDED] = sText_RefIfNothingIsDecided, - [B_MSG_REF_THATS_IT] = sText_RefThatsIt, - [B_MSG_REF_JUDGE_MIND] = sText_RefJudgeMind, - [B_MSG_REF_JUDGE_SKILL] = sText_RefJudgeSkill, - [B_MSG_REF_JUDGE_BODY] = sText_RefJudgeBody, - [B_MSG_REF_PLAYER_WON] = sText_RefPlayerWon, - [B_MSG_REF_OPPONENT_WON] = sText_RefOpponentWon, - [B_MSG_REF_DRAW] = sText_RefDraw, - [B_MSG_REF_COMMENCE_BATTLE] = sText_RefCommenceBattle, + [B_MSG_REF_NOTHING_IS_DECIDED] = COMPOUND_STRING("REFEREE: If nothing is decided in 3 turns, we will go to judging!"), + [B_MSG_REF_THATS_IT] = COMPOUND_STRING("REFEREE: That's it! We will now go to judging to determine the winner!"), + [B_MSG_REF_JUDGE_MIND] = COMPOUND_STRING("REFEREE: Judging category 1, Mind! The POKéMON showing the most guts!\p"), + [B_MSG_REF_JUDGE_SKILL] = COMPOUND_STRING("REFEREE: Judging category 2, Skill! The POKéMON using moves the best!\p"), + [B_MSG_REF_JUDGE_BODY] = COMPOUND_STRING("REFEREE: Judging category 3, Body! The POKéMON with the most vitality!\p"), + [B_MSG_REF_PLAYER_WON] = COMPOUND_STRING("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}! The winner is {B_PLAYER_NAME}'s {B_PLAYER_MON1_NAME}!\p"), + [B_MSG_REF_OPPONENT_WON] = COMPOUND_STRING("REFEREE: Judgment: {B_BUFF1} to {B_BUFF2}! The winner is {B_TRAINER1_NAME}'s {B_OPPONENT_MON1_NAME}!\p"), + [B_MSG_REF_DRAW] = COMPOUND_STRING("REFEREE: Judgment: 3 to 3! We have a draw!\p"), + [B_MSG_REF_COMMENCE_BATTLE] = COMPOUND_STRING("REFEREE: {B_PLAYER_MON1_NAME} VS {B_OPPONENT_MON1_NAME}! Commence battling!"), }; -static const u8 sText_QuestionForfeitMatch[] = _("Would you like to forfeit the match\nand quit now?"); -static const u8 sText_ForfeitedMatch[] = _("{B_PLAYER_NAME} forfeited the match!"); -static const u8 sText_Trainer1WinText[] = _("{B_TRAINER1_WIN_TEXT}"); -static const u8 sText_Trainer2WinText[] = _("{B_TRAINER2_WIN_TEXT}"); -static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_FLEE}{B_TRAINER1_CLASS} {B_TRAINER1_NAME} fled!"); -static const u8 sText_PlayerLostAgainstTrainer1[] = _("Player lost against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); -static const u8 sText_PlayerBattledToDrawTrainer1[] = _("Player battled to a draw against\n{B_TRAINER1_CLASS} {B_TRAINER1_NAME}!"); -const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your FRONTIER PASS?"); -const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}'s battle result was recorded\non the FRONTIER PASS."); -static const u8 sText_LinkTrainerWantsToBattlePause[] = _("{B_LINK_OPPONENT1_NAME}\nwants to battle!{PAUSE 49}"); -static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("{B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}\nwant to battle!{PAUSE 49}"); +static const u8 sText_Trainer1Fled[] = _( "{PLAY_SE SE_FLEE}{B_TRAINER1_NAME_WITH_CLASS} fled!"); +static const u8 sText_PlayerLostAgainstTrainer1[] = _("You lost to {B_TRAINER1_NAME_WITH_CLASS}!"); +static const u8 sText_PlayerBattledToDrawTrainer1[] = _("You battled to a draw against {B_TRAINER1_NAME_WITH_CLASS}!"); +const u8 gText_RecordBattleToPass[] = _("Would you like to record your battle\non your Frontier Pass?"); +const u8 gText_BattleRecordedOnPass[] = _("{B_PLAYER_NAME}'s battle result was recorded\non the Frontier Pass."); +static const u8 sText_LinkTrainerWantsToBattlePause[] = _("You are challenged by {B_LINK_OPPONENT1_NAME}!\p"); +static const u8 sText_TwoLinkTrainersWantToBattlePause[] = _("You are challenged by {B_LINK_OPPONENT1_NAME} and {B_LINK_OPPONENT2_NAME}!\p"); static const u8 sText_Your1[] = _("Your"); static const u8 sText_Opposing1[] = _("The opposing"); static const u8 sText_Your2[] = _("your"); @@ -3054,7 +2341,7 @@ void BufferStringBattle(u16 stringID, u32 battler) } else { - stringPtr = gBattleStringsTable[stringID - BATTLESTRINGS_TABLE_START]; + stringPtr = gBattleStringsTable[stringID]; } break; } @@ -3064,7 +2351,19 @@ void BufferStringBattle(u16 stringID, u32 battler) u32 BattleStringExpandPlaceholdersToDisplayedString(const u8 *src) { - return BattleStringExpandPlaceholders(src, gDisplayedStringBattle); +#ifndef NDEBUG + u32 j, strWidth; + u32 dstID = BattleStringExpandPlaceholders(src, gDisplayedStringBattle, sizeof(gDisplayedStringBattle)); + for (j = 1;; j++) + { + strWidth = GetStringLineWidth(0, gDisplayedStringBattle, 0, j, sizeof(gDisplayedStringBattle)); + if (strWidth == 0) + break; + } + return dstID; +#else + return BattleStringExpandPlaceholders(src, gDisplayedStringBattle, sizeof(gDisplayedStringBattle)); +#endif } static const u8 *TryGetStatusString(u8 *src) @@ -3108,8 +2407,8 @@ static void GetBattlerNick(u32 battler, u8 *dst) StringGet_Nickname(dst); } -#define HANDLE_NICKNAME_STRING_CASE(battler) \ - if (GetBattlerSide(battler) != B_SIDE_PLAYER) \ +#define HANDLE_NICKNAME_STRING_CASE(battler) \ + if (GetBattlerSide(battler) != B_SIDE_PLAYER) \ { \ if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ toCpy = sText_FoePkmnPrefix; \ @@ -3122,7 +2421,24 @@ static void GetBattlerNick(u32 battler, u8 *dst) toCpy++; \ } \ } \ - GetBattlerNick(battler, text); \ + GetBattlerNick(battler, text); \ + toCpy = text; + +#define HANDLE_NICKNAME_STRING_LOWERCASE(battler) \ + if (GetBattlerSide(battler) != B_SIDE_PLAYER) \ + { \ + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) \ + toCpy = sText_FoePkmnPrefixLower; \ + else \ + toCpy = sText_WildPkmnPrefixLower; \ + while (*toCpy != EOS) \ + { \ + dst[dstID] = *toCpy; \ + dstID++; \ + toCpy++; \ + } \ + } \ + GetBattlerNick(battler, text); \ toCpy = text; static const u8 *BattleStringGetOpponentNameByTrainerId(u16 trainerId, u8 *text, u8 multiplayerId, u8 battler) @@ -3268,25 +2584,39 @@ static const u8 *BattleStringGetOpponentClassByTrainerId(u16 trainerId) // This ensures that custom Enigma Berry names will fit in the text buffer at the top of BattleStringExpandPlaceholders. STATIC_ASSERT(BERRY_NAME_LENGTH + ARRAY_COUNT(sText_BerrySuffix) <= ITEM_NAME_LENGTH, BerryNameTooLong); -u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) +u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst, u32 dstSize) { u32 dstID = 0; // if they used dstID, why not use srcID as well? const u8 *toCpy = NULL; - // This buffer may hold either the name of a trainer, Pokémon, or item. u8 text[max(max(max(32, TRAINER_NAME_LENGTH + 1), POKEMON_NAME_LENGTH + 1), ITEM_NAME_LENGTH)]; + u8 *textStart = &text[0]; u8 multiplayerId; + u8 fontId = FONT_NORMAL; if (gBattleTypeFlags & BATTLE_TYPE_RECORDED_LINK) multiplayerId = gRecordedBattleMultiplayerId; else multiplayerId = GetMultiplayerId(); + // Clear destination first + while (dstID < dstSize) + { + dst[dstID] = EOS; + dstID++; + } + + dstID = 0; while (*src != EOS) { toCpy = NULL; + if (*src == PLACEHOLDER_BEGIN) { src++; + u32 classLength = 0; + u32 nameLength = 0; + const u8 *classString; + const u8 *nameString; switch (*src) { case B_TXT_BUFF1: @@ -3377,6 +2707,10 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) GetBattlerNick(gBattlerTarget, text); toCpy = text; break; + case B_TXT_DEF_PARTNER_NAME: // partner target name + GetBattlerNick(BATTLE_PARTNER(gBattlerTarget), text); + toCpy = text; + break; case B_TXT_EFF_NAME_WITH_PREFIX: // effect battler name with prefix HANDLE_NICKNAME_STRING_CASE(gEffectBattler) break; @@ -3463,6 +2797,27 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER1_NAME: // trainer1 name toCpy = BattleStringGetOpponentNameByTrainerId(gTrainerBattleOpponent_A, text, multiplayerId, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)); break; + case B_TXT_TRAINER1_NAME_WITH_CLASS: // trainer1 name with trainer class + toCpy = textStart; + classString = BattleStringGetOpponentClassByTrainerId(gTrainerBattleOpponent_A); + while (classString[classLength] != EOS) + { + textStart[classLength] = classString[classLength]; + classLength++; + } + textStart[classLength] = CHAR_SPACE; + textStart += classLength + 1; + nameString = BattleStringGetOpponentNameByTrainerId(gTrainerBattleOpponent_A, textStart, multiplayerId, GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT)); + if (nameString != textStart) + { + while (nameString[nameLength] != EOS) + { + textStart[nameLength] = nameString[nameLength]; + nameLength++; + } + textStart[nameLength] = EOS; + } + break; case B_TXT_LINK_PLAYER_NAME: // link player name toCpy = gLinkPlayers[multiplayerId].name; break; @@ -3579,6 +2934,27 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_TRAINER2_NAME: toCpy = BattleStringGetOpponentNameByTrainerId(gTrainerBattleOpponent_B, text, multiplayerId, GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)); break; + case B_TXT_TRAINER2_NAME_WITH_CLASS: + toCpy = textStart; + classString = BattleStringGetOpponentClassByTrainerId(gTrainerBattleOpponent_B); + while (classString[classLength] != EOS) + { + textStart[classLength] = classString[classLength]; + classLength++; + } + textStart[classLength] = CHAR_SPACE; + textStart += classLength + 1; + nameString = BattleStringGetOpponentNameByTrainerId(gTrainerBattleOpponent_B, textStart, multiplayerId, GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)); + if (nameString != textStart) + { + while (nameString[nameLength] != EOS) + { + textStart[nameLength] = nameString[nameLength]; + nameLength++; + } + textStart[nameLength] = EOS; + } + break; case B_TXT_TRAINER2_LOSE_TEXT: if (gBattleTypeFlags & BATTLE_TYPE_FRONTIER) { @@ -3613,6 +2989,27 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) case B_TXT_PARTNER_NAME: toCpy = BattleStringGetPlayerName(text, GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)); break; + case B_TXT_PARTNER_NAME_WITH_CLASS: + toCpy = textStart; + classString = gTrainerClasses[GetFrontierOpponentClass(gPartnerTrainerId)].name; + while (classString[classLength] != EOS) + { + textStart[classLength] = classString[classLength]; + classLength++; + } + textStart[classLength] = CHAR_SPACE; + textStart += classLength + 1; + nameString = BattleStringGetPlayerName(textStart, GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT)); + if (nameString != textStart) + { + while (nameString[nameLength] != EOS) + { + textStart[nameLength] = nameString[nameLength]; + nameLength++; + } + textStart[nameLength] = EOS; + } + break; case B_TXT_ATK_TRAINER_NAME: toCpy = BattleStringGetTrainerName(text, multiplayerId, gBattlerAttacker); break; @@ -3634,6 +3031,52 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) break; } break; + case B_TXT_ATK_TRAINER_NAME_WITH_CLASS: + toCpy = textStart; + if (GetBattlerPosition(gBattlerAttacker) == B_POSITION_PLAYER_LEFT) + { + textStart = StringCopy(textStart, BattleStringGetTrainerName(textStart, multiplayerId, gBattlerAttacker)); + } + else + { + classString = NULL; + switch (GetBattlerPosition(gBattlerAttacker)) + { + case B_POSITION_PLAYER_RIGHT: + if (gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER) + classString = gTrainerClasses[GetFrontierOpponentClass(gPartnerTrainerId)].name; + break; + case B_POSITION_OPPONENT_LEFT: + classString = BattleStringGetOpponentClassByTrainerId(gTrainerBattleOpponent_A); + break; + case B_POSITION_OPPONENT_RIGHT: + if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS && !BATTLE_TWO_VS_ONE_OPPONENT) + classString = BattleStringGetOpponentClassByTrainerId(gTrainerBattleOpponent_B); + else + classString = BattleStringGetOpponentClassByTrainerId(gTrainerBattleOpponent_A); + break; + } + classLength = 0; + nameLength = 0; + while (classString[classLength] != EOS) + { + textStart[classLength] = classString[classLength]; + classLength++; + } + textStart[classLength] = CHAR_SPACE; + textStart += 1 + classLength; + nameString = BattleStringGetTrainerName(textStart, multiplayerId, gBattlerAttacker); + if (nameString != textStart) + { + while (nameString[nameLength] != EOS) + { + textStart[nameLength] = nameString[nameLength]; + nameLength++; + } + textStart[nameLength] = EOS; + } + } + break; case B_TXT_ATK_TEAM1: if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) toCpy = sText_Your1; @@ -3658,6 +3101,18 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) else toCpy = sText_Opposing2; break; + case B_TXT_ATK_NAME_WITH_PREFIX2: + HANDLE_NICKNAME_STRING_LOWERCASE(gBattlerAttacker) + break; + case B_TXT_DEF_NAME_WITH_PREFIX2: + HANDLE_NICKNAME_STRING_LOWERCASE(gBattlerTarget) + break; + case B_TXT_EFF_NAME_WITH_PREFIX2: + HANDLE_NICKNAME_STRING_LOWERCASE(gEffectBattler) + break; + case B_TXT_SCR_ACTIVE_NAME_WITH_PREFIX2: + HANDLE_NICKNAME_STRING_LOWERCASE(gBattleScripting.battler) + break; } if (toCpy != NULL) @@ -3690,6 +3145,8 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst) dst[dstID] = *src; dstID++; + BreakStringAutomatic(dst, BATTLE_MSG_MAX_WIDTH, BATTLE_MSG_MAX_WIDTH, fontId); + return dstID; } @@ -3738,7 +3195,7 @@ void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) { case B_BUFF_STRING: // battle string hword = T1_READ_16(&src[srcID + 1]); - StringAppend(dst, gBattleStringsTable[hword - BATTLESTRINGS_TABLE_START]); + StringAppend(dst, gBattleStringsTable[hword]); srcID += 3; break; case B_BUFF_NUMBER: // int to string @@ -3766,16 +3223,27 @@ void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst) srcID += 2; break; case B_BUFF_MON_NICK_WITH_PREFIX: // poke nick with prefix + case B_BUFF_MON_NICK_WITH_PREFIX_LOWER: // poke nick with lowercase prefix if (GetBattlerSide(src[srcID + 1]) == B_SIDE_PLAYER) { GetMonData(&gPlayerParty[src[srcID + 2]], MON_DATA_NICKNAME, nickname); } else { - if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) - StringAppend(dst, sText_FoePkmnPrefix); + if (src[srcID] == B_BUFF_MON_NICK_WITH_PREFIX_LOWER) + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + StringAppend(dst, sText_FoePkmnPrefixLower); + else + StringAppend(dst, sText_WildPkmnPrefixLower); + } else - StringAppend(dst, sText_WildPkmnPrefix); + { + if (gBattleTypeFlags & BATTLE_TYPE_TRAINER) + StringAppend(dst, sText_FoePkmnPrefix); + else + StringAppend(dst, sText_WildPkmnPrefix); + } GetMonData(&gEnemyParty[src[srcID + 2]], MON_DATA_NICKNAME, nickname); } diff --git a/src/battle_script_commands.c b/src/battle_script_commands.c index 5c7be23e7d..469f9f7eb2 100644 --- a/src/battle_script_commands.c +++ b/src/battle_script_commands.c @@ -397,7 +397,7 @@ static void Cmd_bichalfword(void); static void Cmd_bicword(void); static void Cmd_pause(void); static void Cmd_waitstate(void); -static void Cmd_healthbar_update(void); +static void Cmd_absorb(void); static void Cmd_return(void); static void Cmd_end(void); static void Cmd_end2(void); @@ -479,7 +479,7 @@ static void Cmd_statbuffchange(void); static void Cmd_normalisebuffs(void); static void Cmd_setbide(void); static void Cmd_twoturnmoveschargestringandanimation(void); -static void Cmd_setmultihitcounter(void); +static void Cmd_unused_0x8d(void); static void Cmd_initmultihitstring(void); static void Cmd_forcerandomswitch(void); static void Cmd_tryconversiontypechange(void); @@ -487,7 +487,7 @@ static void Cmd_givepaydaymoney(void); static void Cmd_setlightscreen(void); static void Cmd_tryKO(void); static void Cmd_damagetohalftargethp(void); -static void Cmd_unused_95(void); +static void Cmd_copybidedmg(void); static void Cmd_unused_96(void); static void Cmd_tryinfatuating(void); static void Cmd_updatestatusicon(void); @@ -543,7 +543,7 @@ static void Cmd_trymemento(void); static void Cmd_setforcedtarget(void); static void Cmd_setcharge(void); static void Cmd_callterrainattack(void); -static void Cmd_cureifburnedparalysedorpoisoned(void); +static void Cmd_curestatuswithmove(void); static void Cmd_settorment(void); static void Cmd_jumpifnodamage(void); static void Cmd_settaunt(void); @@ -568,8 +568,8 @@ static void Cmd_switchoutabilities(void); static void Cmd_jumpifhasnohp(void); static void Cmd_jumpifnotcurrentmoveargtype(void); static void Cmd_pickup(void); -static void Cmd_unused3(void); -static void Cmd_unused4(void); +static void Cmd_unused_0xE6(void); +static void Cmd_unused_0xE7(void); static void Cmd_settypebasedhalvers(void); static void Cmd_jumpifsubstituteblocks(void); static void Cmd_tryrecycleitem(void); @@ -656,7 +656,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_bicword, //0x38 Cmd_pause, //0x39 Cmd_waitstate, //0x3A - Cmd_healthbar_update, //0x3B + Cmd_absorb, //0x3B Cmd_return, //0x3C Cmd_end, //0x3D Cmd_end2, //0x3E @@ -738,7 +738,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_normalisebuffs, //0x8A Cmd_setbide, //0x8B Cmd_twoturnmoveschargestringandanimation, //0x8C - Cmd_setmultihitcounter, //0x8D + Cmd_unused_0x8d, //0x8D Cmd_initmultihitstring, //0x8E Cmd_forcerandomswitch, //0x8F Cmd_tryconversiontypechange, //0x90 @@ -746,7 +746,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_setlightscreen, //0x92 Cmd_tryKO, //0x93 Cmd_damagetohalftargethp, //0x94 - Cmd_unused_95, //0x95 + Cmd_copybidedmg, //0x95 Cmd_unused_96, //0x96 Cmd_tryinfatuating, //0x97 Cmd_updatestatusicon, //0x98 @@ -802,7 +802,7 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_setforcedtarget, //0xCA Cmd_setcharge, //0xCB Cmd_callterrainattack, //0xCC - Cmd_cureifburnedparalysedorpoisoned, //0xCD + Cmd_curestatuswithmove, //0xCD Cmd_settorment, //0xCE Cmd_jumpifnodamage, //0xCF Cmd_settaunt, //0xD0 @@ -827,8 +827,8 @@ void (* const gBattleScriptingCommandsTable[])(void) = Cmd_jumpifhasnohp, //0xE3 Cmd_jumpifnotcurrentmoveargtype, //0xE4 Cmd_pickup, //0xE5 - Cmd_unused3, //0xE6 - Cmd_unused4, //0xE7 + Cmd_unused_0xE6, //0xE6 + Cmd_unused_0xE7, //0xE7 Cmd_settypebasedhalvers, //0xE8 Cmd_jumpifsubstituteblocks, //0xE9 Cmd_tryrecycleitem, //0xEA @@ -1125,30 +1125,14 @@ static bool32 NoTargetPresent(u8 battler, u32 move) return FALSE; } -// TODO: Convert this to a proper FORM_CHANGE type. -static bool32 TryAegiFormChange(void) +static bool32 TryFormChangeBeforeMove(void) { - // Only Aegislash with Stance Change can transform, transformed mons cannot. - if (GetBattlerAbility(gBattlerAttacker) != ABILITY_STANCE_CHANGE - || gBattleMons[gBattlerAttacker].status2 & STATUS2_TRANSFORMED) + bool32 result = TryBattleFormChange(gBattlerAttacker, FORM_CHANGE_BATTLE_BEFORE_MOVE); + if (!result) + result = TryBattleFormChange(gBattlerAttacker, FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY); + if (!result) return FALSE; - switch (gBattleMons[gBattlerAttacker].species) - { - default: - return FALSE; - case SPECIES_AEGISLASH_SHIELD: // Shield -> Blade - if (IS_MOVE_STATUS(gCurrentMove)) - return FALSE; - gBattleMons[gBattlerAttacker].species = SPECIES_AEGISLASH_BLADE; - break; - case SPECIES_AEGISLASH_BLADE: // Blade -> Shield - if (gCurrentMove != MOVE_KINGS_SHIELD) - return FALSE; - gBattleMons[gBattlerAttacker].species = SPECIES_AEGISLASH_SHIELD; - break; - } - BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AttackerFormChange; return TRUE; @@ -1171,12 +1155,12 @@ bool32 ProteanTryChangeType(u32 battler, u32 ability, u32 move, u32 moveType) bool32 ShouldTeraShellDistortTypeMatchups(u32 move, u32 battlerDef) { - if (!(gBattleStruct->distortedTypeMatchups & (1u << battlerDef)) - && GetBattlerAbility(battlerDef) == ABILITY_TERA_SHELL + if (!gSpecialStatuses[battlerDef].distortedTypeMatchups && gBattleMons[battlerDef].species == SPECIES_TERAPAGOS_TERASTAL + && gBattleMons[battlerDef].hp == gBattleMons[battlerDef].maxHP && !IS_MOVE_STATUS(move) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[battlerDef].hp == gBattleMons[battlerDef].maxHP) + && MoveResultHasEffect(battlerDef) + && GetBattlerAbility(battlerDef) == ABILITY_TERA_SHELL) return TRUE; return FALSE; @@ -1215,13 +1199,14 @@ static void Cmd_attackcanceler(void) gCurrentActionFuncId = B_ACTION_FINISHED; return; } + if (!IsBattlerAlive(gBattlerAttacker) && gMovesInfo[gCurrentMove].effect != EFFECT_EXPLOSION && !(gHitMarker & HITMARKER_NO_ATTACKSTRING)) { gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; gBattlescriptCurrInstr = BattleScript_MoveEnd; return; } - if (B_STANCE_CHANGE_FAIL < GEN_7 && TryAegiFormChange()) + if (B_STANCE_CHANGE_FAIL < GEN_7 && TryFormChangeBeforeMove()) return; if (AtkCanceller_UnableToUseMove(moveType)) return; @@ -1279,54 +1264,14 @@ static void Cmd_attackcanceler(void) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) { gBattlescriptCurrInstr = BattleScript_NoPPForMove; - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; return; } - if (B_STANCE_CHANGE_FAIL >= GEN_7 && TryAegiFormChange()) + if (B_STANCE_CHANGE_FAIL >= GEN_7 && TryFormChangeBeforeMove()) return; gHitMarker &= ~HITMARKER_ALLOW_NO_PP; - if (!(gHitMarker & HITMARKER_OBEYS) && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) - { - switch (gBattleStruct->obedienceResult) - { - case OBEYS: - break; - case DISOBEYS_LOAFS: - // Randomly select, then print a disobedient string - // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE - gBattleCommunication[MULTISTRING_CHOOSER] = MOD(Random(), NUM_LOAF_STRINGS); - gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; - gMoveResultFlags |= MOVE_RESULT_MISSED; - return; - case DISOBEYS_HITS_SELF: - gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = CalculateMoveDamage(MOVE_NONE, gBattlerAttacker, gBattlerAttacker, TYPE_MYSTERY, 40, FALSE, FALSE, TRUE); - gBattlescriptCurrInstr = BattleScript_IgnoresAndHitsItself; - gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; - gHitMarker |= HITMARKER_OBEYS; - return; - case DISOBEYS_FALL_ASLEEP: - gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; - gMoveResultFlags |= MOVE_RESULT_MISSED; - return; - case DISOBEYS_WHILE_ASLEEP: - gBattlescriptCurrInstr = BattleScript_IgnoresWhileAsleep; - gMoveResultFlags |= MOVE_RESULT_MISSED; - return; - case DISOBEYS_RANDOM_MOVE: - gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; - SetAtkCancellerForCalledMove(); - gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; - gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); - gHitMarker |= HITMARKER_DISOBEDIENT_MOVE; - gHitMarker |= HITMARKER_OBEYS; - return; - } - } - - gHitMarker |= HITMARKER_OBEYS; // Check if no available target present on the field or if Sky Battles ban the move if ((NoTargetPresent(gBattlerAttacker, gCurrentMove) && (!gBattleMoveEffects[gMovesInfo[gCurrentMove].effect].twoTurnEffect || (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS))) @@ -1347,19 +1292,20 @@ static void Cmd_attackcanceler(void) && !gBattleStruct->bouncedMoveIsUsed) { gBattleStruct->bouncedMoveIsUsed = TRUE; - gBattleCommunication[MULTISTRING_CHOOSER] = 0; // Edge case for bouncing a powder move against a grass type pokemon. + + ClearDamageCalcResults(); SetAtkCancellerForCalledMove(); if (BlocksPrankster(gCurrentMove, gBattlerTarget, gBattlerAttacker, TRUE)) { // Opponent used a prankster'd magic coat -> reflected status move should fail against a dark-type attacker gBattlerTarget = gBattlerAttacker; - gBattlescriptCurrInstr = BattleScript_MagicCoatBouncePrankster; + gBattlescriptCurrInstr = BattleScript_MagicCoatPrankster; } else { BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; + gBattlescriptCurrInstr = BattleScript_MagicCoat; } return; } @@ -1382,19 +1328,17 @@ static void Cmd_attackcanceler(void) if (gBattleStruct->bouncedMoveIsUsed) { - gBattleCommunication[MULTISTRING_CHOOSER] = 1; - // Edge case for bouncing a powder move against a grass type pokemon. - SetAtkCancellerForCalledMove(); + ClearDamageCalcResults(); + SetAtkCancellerForCalledMove(); // Edge case for bouncing a powder move against a grass type pokemon. BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_MagicCoatBounce; + gBattlescriptCurrInstr = BattleScript_MagicBounce; gBattlerAbility = battler; return; } } // Z-moves and Max Moves bypass protection, but deal reduced damage (factored in AccumulateOtherModifiers) - if ((IsZMove(gCurrentMove) || IsMaxMove(gCurrentMove)) - && IS_BATTLER_PROTECTED(gBattlerTarget)) + if ((IsZMove(gCurrentMove) || IsMaxMove(gCurrentMove)) && IS_BATTLER_PROTECTED(gBattlerTarget)) { BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_CouldntFullyProtect; @@ -1439,7 +1383,7 @@ static void Cmd_attackcanceler(void) if (IsMoveMakingContact(gCurrentMove, gBattlerAttacker)) gProtectStructs[gBattlerAttacker].touchedProtectLike = TRUE; CancelMultiTurnMoves(gBattlerAttacker); - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gLastLandedMoves[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0; @@ -1465,7 +1409,7 @@ static void Cmd_attackcanceler(void) static bool32 JumpIfMoveFailed(u8 adder, u16 move) { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (!MoveResultHasEffect(gBattlerTarget)) { gLastLandedMoves[gBattlerTarget] = 0; gLastHitByType[gBattlerTarget] = 0; @@ -1488,7 +1432,7 @@ static void Cmd_unused5(void) if (IsBattlerProtected(gBattlerAttacker, gBattlerTarget, gCurrentMove)) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; JumpIfMoveFailed(sizeof(*cmd), MOVE_NONE); gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; } @@ -1498,103 +1442,92 @@ static void Cmd_unused5(void) } } -static bool8 JumpIfMoveAffectedByProtect(u16 move) +static bool32 JumpIfMoveAffectedByProtect(u32 move, u32 battler, u32 shouldJump) { - bool8 affected = FALSE; - if (IsBattlerProtected(gBattlerAttacker, gBattlerTarget, move)) + bool32 affected = IsBattlerProtected(gBattlerAttacker, battler, move); + if (affected) { - gMoveResultFlags |= MOVE_RESULT_MISSED; - JumpIfMoveFailed(7, move); - gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; - affected = TRUE; + gBattleStruct->moveResultFlags[battler] |= MOVE_RESULT_MISSED; + if (shouldJump) + JumpIfMoveFailed(7, move); } return affected; } -static bool32 AccuracyCalcHelper(u16 move) +static bool32 AccuracyCalcHelper(u32 move, u32 battler) { - if ((gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) + u32 effect = FALSE; + u32 ability = ABILITY_NONE; + + if ((gStatuses3[battler] & STATUS3_ALWAYS_HITS && gDisableStructs[battler].battlerWithSureHit == gBattlerAttacker) || (B_TOXIC_NEVER_MISS >= GEN_6 && gMovesInfo[move].effect == EFFECT_TOXIC && IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_POISON)) - || gStatuses4[gBattlerTarget] & STATUS4_GLAIVE_RUSH) + || gStatuses4[battler] & STATUS4_GLAIVE_RUSH) { - JumpIfMoveFailed(7, move); - return TRUE; + effect = TRUE; } // If the attacker has the ability No Guard and they aren't targeting a Pokemon involved in a Sky Drop with the move Sky Drop, move hits. else if (GetBattlerAbility(gBattlerAttacker) == ABILITY_NO_GUARD - && !(gStatuses3[gBattlerTarget] & STATUS3_COMMANDER) - && (gMovesInfo[move].effect != EFFECT_SKY_DROP || gBattleStruct->skyDropTargets[gBattlerTarget] == 0xFF)) + && !(gStatuses3[battler] & STATUS3_COMMANDER) + && (gMovesInfo[move].effect != EFFECT_SKY_DROP || gBattleStruct->skyDropTargets[battler] == 0xFF)) { - if (!JumpIfMoveFailed(7, move)) - RecordAbilityBattle(gBattlerAttacker, ABILITY_NO_GUARD); - return TRUE; + effect = TRUE; + ability = ABILITY_NO_GUARD; } // If the target has the ability No Guard and they aren't involved in a Sky Drop or the current move isn't Sky Drop, move hits. - else if (GetBattlerAbility(gBattlerTarget) == ABILITY_NO_GUARD - && (gMovesInfo[move].effect != EFFECT_SKY_DROP || gBattleStruct->skyDropTargets[gBattlerTarget] == 0xFF)) + else if (GetBattlerAbility(battler) == ABILITY_NO_GUARD + && (gMovesInfo[move].effect != EFFECT_SKY_DROP || gBattleStruct->skyDropTargets[battler] == 0xFF)) { - if (!JumpIfMoveFailed(7, move)) - RecordAbilityBattle(gBattlerTarget, ABILITY_NO_GUARD); - return TRUE; + effect = TRUE; + ability = ABILITY_NO_GUARD; } // If the target is under the effects of Telekinesis, and the move isn't a OH-KO move, move hits. - else if (gStatuses3[gBattlerTarget] & STATUS3_TELEKINESIS - && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE) + else if (gStatuses3[battler] & STATUS3_TELEKINESIS + && !(gStatuses3[battler] & STATUS3_SEMI_INVULNERABLE) && gMovesInfo[move].effect != EFFECT_OHKO) { - JumpIfMoveFailed(7, move); - return TRUE; + effect = TRUE; } - - if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_Z_MOVE && !(gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE)) + else if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_Z_MOVE && !(gStatuses3[battler] & STATUS3_SEMI_INVULNERABLE)) { - JumpIfMoveFailed(7, move); - return TRUE; + effect = TRUE; } - - if ((gStatuses3[gBattlerTarget] & STATUS3_COMMANDER) - || (gStatuses3[gBattlerTarget] & STATUS3_PHANTOM_FORCE) - || ((gStatuses3[gBattlerTarget] & STATUS3_ON_AIR) && !(gMovesInfo[move].damagesAirborne || gMovesInfo[move].damagesAirborneDoubleDamage)) - || ((gStatuses3[gBattlerTarget] & STATUS3_UNDERGROUND) && !gMovesInfo[move].damagesUnderground) - || ((gStatuses3[gBattlerTarget] & STATUS3_UNDERWATER) && !gMovesInfo[move].damagesUnderwater)) + else if ((gStatuses3[battler] & STATUS3_COMMANDER) + || (gStatuses3[battler] & STATUS3_PHANTOM_FORCE) + || ((gStatuses3[battler] & STATUS3_ON_AIR) && !(gMovesInfo[move].damagesAirborne || gMovesInfo[move].damagesAirborneDoubleDamage)) + || ((gStatuses3[battler] & STATUS3_UNDERGROUND) && !gMovesInfo[move].damagesUnderground) + || ((gStatuses3[battler] & STATUS3_UNDERWATER) && !gMovesInfo[move].damagesUnderwater)) { - gMoveResultFlags |= MOVE_RESULT_MISSED; - JumpIfMoveFailed(7, move); - return TRUE; + gBattleStruct->moveResultFlags[battler] |= MOVE_RESULT_MISSED; + effect = TRUE; } if (WEATHER_HAS_EFFECT) { if ((gMovesInfo[move].effect == EFFECT_THUNDER || gMovesInfo[move].effect == EFFECT_RAIN_ALWAYS_HIT) - && IsBattlerWeatherAffected(gBattlerTarget, B_WEATHER_RAIN)) - { - // thunder/hurricane/genie moves ignore acc checks in rain unless target is holding utility umbrella - JumpIfMoveFailed(7, move); - return TRUE; - } + && IsBattlerWeatherAffected(battler, B_WEATHER_RAIN)) + effect = TRUE; else if ((gBattleWeather & (B_WEATHER_HAIL | B_WEATHER_SNOW)) && gMovesInfo[move].effect == EFFECT_BLIZZARD) - { - // Blizzard ignores acc checks in Hail in Gen4+ - JumpIfMoveFailed(7, move); - return TRUE; - } + effect = TRUE; + + if (effect) + return effect; } if (B_MINIMIZE_DMG_ACC >= GEN_6 - && (gStatuses3[gBattlerTarget] & STATUS3_MINIMIZED) + && (gStatuses3[battler] & STATUS3_MINIMIZED) && gMovesInfo[move].minimizeDoubleDamage) { - JumpIfMoveFailed(7, move); - return TRUE; + effect = TRUE; } - - if (gMovesInfo[move].accuracy == 0) + else if (gMovesInfo[move].accuracy == 0) { - JumpIfMoveFailed(7, move); - return TRUE; + effect = TRUE; } - return FALSE; + if (ability != ABILITY_NONE) + RecordAbilityBattle(gBattlerAttacker, ABILITY_NO_GUARD); + + return effect; } u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u32 defAbility, u32 atkHoldEffect, u32 defHoldEffect) @@ -1721,21 +1654,22 @@ u32 GetTotalAccuracy(u32 battlerAtk, u32 battlerDef, u32 move, u32 atkAbility, u static void AccuracyCheck(bool32 recalcDragonDarts, const u8 *nextInstr, const u8 *failInstr, u16 move) { - u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, move); - u32 abilityAtk = GetBattlerAbility(gBattlerAttacker); - u32 abilityDef = GetBattlerAbility(gBattlerTarget); - u32 holdEffectAtk = GetBattlerHoldEffect(gBattlerAttacker, TRUE); + u32 abilityAtk; + u32 holdEffectAtk; if (move == ACC_CURR_MOVE) move = gCurrentMove; + abilityAtk = GetBattlerAbility(gBattlerAttacker); + holdEffectAtk = GetBattlerHoldEffect(gBattlerAttacker, TRUE); + if (move == NO_ACC_CALC_CHECK_LOCK_ON) { if (gStatuses3[gBattlerTarget] & STATUS3_ALWAYS_HITS && gDisableStructs[gBattlerTarget].battlerWithSureHit == gBattlerAttacker) gBattlescriptCurrInstr = nextInstr; else if (gStatuses3[gBattlerTarget] & (STATUS3_SEMI_INVULNERABLE)) gBattlescriptCurrInstr = failInstr; - else if (!JumpIfMoveAffectedByProtect(gCurrentMove)) + else if (!JumpIfMoveAffectedByProtect(gCurrentMove, gBattlerTarget, TRUE)) gBattlescriptCurrInstr = nextInstr; if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_DYNAMAX) { @@ -1755,51 +1689,62 @@ static void AccuracyCheck(bool32 recalcDragonDarts, const u8 *nextInstr, const u } else { - u32 accuracy; - u32 type = GetMoveType(move); + u32 moveType = GetMoveType(move); + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, move); + bool32 calcSpreadMove = IsSpreadMove(moveTarget) && !IS_MOVE_STATUS(move); - if (JumpIfMoveAffectedByProtect(move)) - return; - if (AccuracyCalcHelper(move)) - return; - - accuracy = GetTotalAccuracy( - gBattlerAttacker, - gBattlerTarget, - move, - abilityAtk, - abilityDef, - holdEffectAtk, - GetBattlerHoldEffect(gBattlerTarget, TRUE) - ); - - if (!RandomPercentage(RNG_ACCURACY, accuracy)) + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) { - gMoveResultFlags |= MOVE_RESULT_MISSED; - if (holdEffectAtk == HOLD_EFFECT_BLUNDER_POLICY) - gBattleStruct->blunderPolicy = TRUE; // Only activates from missing through acc/evasion checks + if (gBattleStruct->calculatedSpreadMoveAccuracy) + break; - if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_DARTS - && !recalcDragonDarts // So we don't jump back and forth between targets - && CanTargetPartner(gBattlerAttacker, gBattlerTarget) - && !TargetFullyImmuneToCurrMove(gBattlerAttacker, BATTLE_PARTNER(gBattlerTarget))) + if ((!calcSpreadMove && battlerDef != gBattlerTarget) + || IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || (gBattleStruct->noResultString[battlerDef] && gBattleStruct->noResultString[battlerDef] != DO_ACCURACY_CHECK)) + continue; + + if (JumpIfMoveAffectedByProtect(move, battlerDef, FALSE) || AccuracyCalcHelper(move, battlerDef)) + continue; + + u32 accuracy = GetTotalAccuracy(gBattlerAttacker, + battlerDef, + move, + abilityAtk, + GetBattlerAbility(battlerDef), + holdEffectAtk, + GetBattlerHoldEffect(battlerDef, TRUE)); + + if (!RandomPercentage(RNG_ACCURACY, accuracy)) { - // Smart target to partner if miss - gBattlerTarget = BATTLE_PARTNER(gBattlerTarget); - gMoveResultFlags &= ~MOVE_RESULT_MISSED; - AccuracyCheck(TRUE, nextInstr, failInstr, move); - return; + gBattleStruct->moveResultFlags[battlerDef] = MOVE_RESULT_MISSED; + gBattleStruct->missStringId[battlerDef] = gBattleCommunication[MISS_TYPE] = B_MSG_MISSED; + + if (holdEffectAtk == HOLD_EFFECT_BLUNDER_POLICY) + gBattleStruct->blunderPolicy = TRUE; // Only activates from missing through acc/evasion checks + + if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_DARTS + && !recalcDragonDarts // So we don't jump back and forth between targets + && CanTargetPartner(gBattlerAttacker, battlerDef) + && !TargetFullyImmuneToCurrMove(gBattlerAttacker, BATTLE_PARTNER(battlerDef))) + { + // Smart target to partner if miss + gBattlerTarget = BATTLE_PARTNER(battlerDef); + gBattleStruct->moveResultFlags[battlerDef] &= ~MOVE_RESULT_MISSED; + AccuracyCheck(TRUE, nextInstr, failInstr, move); + return; + } + + if (gMovesInfo[move].power) + CalcTypeEffectivenessMultiplier(move, moveType, gBattlerAttacker, battlerDef, GetBattlerAbility(battlerDef), TRUE); } - - if (IsDoubleBattle() && - (moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY)) - gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_ATK; - else - gBattleCommunication[MISS_TYPE] = B_MSG_MISSED; - - if (gMovesInfo[move].power) - CalcTypeEffectivenessMultiplier(move, type, gBattlerAttacker, gBattlerTarget, abilityDef, TRUE); } + + if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_MISSED) + gBattleStruct->moveResultFlags[gBattlerTarget] = MOVE_RESULT_MISSED; + + if (calcSpreadMove) + gBattleStruct->calculatedSpreadMoveAccuracy = TRUE; + JumpIfMoveFailed(7, move); } } @@ -1884,48 +1829,80 @@ static void Cmd_ppreduce(void) gHitMarker &= ~HITMARKER_NO_PPDEDUCT; gBattlescriptCurrInstr = cmd->nextInstr; - - if (ShouldTeraShellDistortTypeMatchups(gCurrentMove, gBattlerTarget)) - { - gBattleStruct->distortedTypeMatchups |= 1u << gBattlerTarget; - gBattlerAbility = gBattlerTarget; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_TeraShellDistortingTypeMatchups; - } } // The chance is 1/N for each stage. -#if B_CRIT_CHANCE >= GEN_7 - static const u8 sCriticalHitOdds[] = {24, 8, 2, 1, 1}; -#elif B_CRIT_CHANCE == GEN_6 - static const u8 sCriticalHitOdds[] = {16, 8, 2, 1, 1}; -#else - static const u8 sCriticalHitOdds[] = {16, 8, 4, 3, 2}; // Gens 2,3,4,5 -#endif // B_CRIT_CHANCE +static const u32 sGen7CriticalHitOdds[] = {24, 8, 2, 1, 1}; +static const u32 sGen6CriticalHitOdds[] = {16, 8, 2, 1, 1}; +static const u32 sCriticalHitOdds[] = {16, 8, 4, 3, 2}; // Gens 2,3,4,5 -#define BENEFITS_FROM_LEEK(battler, holdEffect)((holdEffect == HOLD_EFFECT_LEEK) && (GET_BASE_SPECIES_ID(gBattleMons[battler].species) == SPECIES_FARFETCHD || gBattleMons[battler].species == SPECIES_SIRFETCHD)) +static inline u32 GetCriticalHitOdds(u32 critChance) +{ + if (B_CRIT_CHANCE >= GEN_7) + return sGen7CriticalHitOdds[critChance]; + if (B_CRIT_CHANCE == GEN_6) + return sGen6CriticalHitOdds[critChance]; + + return sCriticalHitOdds[critChance]; +} + +static inline u32 IsBattlerLeekAffected(u32 battler, u32 holdEffect) +{ + if (holdEffect == HOLD_EFFECT_LEEK) + { + return GET_BASE_SPECIES_ID(gBattleMons[battler].species) == SPECIES_FARFETCHD + || gBattleMons[battler].species == SPECIES_SIRFETCHD; + } + return FALSE; +} + +static inline u32 GetHoldEffectCritChanceIncrease(u32 battler, u32 holdEffect) +{ + u32 critStageIncrease = 0; + + switch (holdEffect) + { + case HOLD_EFFECT_SCOPE_LENS: + critStageIncrease = 1; + break; + case HOLD_EFFECT_LUCKY_PUNCH: + if (gBattleMons[battler].species == SPECIES_CHANSEY) + critStageIncrease = 2; + break; + case HOLD_EFFECT_LEEK: + if (IsBattlerLeekAffected(battler, holdEffect)) + critStageIncrease = 2; + break; + default: + critStageIncrease = 0; + break; + } + + return critStageIncrease; +} + +#define CRITICAL_HIT_BLOCKED -1 +#define CRITICAL_HIT_ALWAYS -2 s32 CalcCritChanceStageArgs(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility, u32 abilityAtk, u32 abilityDef, u32 holdEffectAtk) { s32 critChance = 0; if (gSideStatuses[battlerDef] & SIDE_STATUS_LUCKY_CHANT) { - critChance = -1; + critChance = CRITICAL_HIT_BLOCKED; } else if (gStatuses3[battlerAtk] & STATUS3_LASER_FOCUS - || gMovesInfo[move].alwaysCriticalHit - || (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY)) + || gMovesInfo[move].alwaysCriticalHit + || (abilityAtk == ABILITY_MERCILESS && gBattleMons[battlerDef].status1 & STATUS1_PSN_ANY)) { - critChance = -2; + critChance = CRITICAL_HIT_ALWAYS; } else { critChance = 2 * ((gBattleMons[battlerAtk].status2 & STATUS2_FOCUS_ENERGY) != 0) + 1 * ((gBattleMons[battlerAtk].status2 & STATUS2_DRAGON_CHEER) != 0) + gMovesInfo[move].criticalHitStage - + (holdEffectAtk == HOLD_EFFECT_SCOPE_LENS) - + 2 * (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[battlerAtk].species == SPECIES_CHANSEY) - + 2 * BENEFITS_FROM_LEEK(battlerAtk, holdEffectAtk) + + GetHoldEffectCritChanceIncrease(battlerAtk, holdEffectAtk) + 2 * (B_AFFECTION_MECHANICS == TRUE && GetBattlerAffectionHearts(battlerAtk) == AFFECTION_FIVE_HEARTS) + (abilityAtk == ABILITY_SUPER_LUCK) + gBattleStruct->bonusCritStages[gBattlerAttacker]; @@ -1934,21 +1911,23 @@ s32 CalcCritChanceStageArgs(u32 battlerAtk, u32 battlerDef, u32 move, bool32 rec critChance = ARRAY_COUNT(sCriticalHitOdds) - 1; } - if (critChance != -1 && (abilityDef == ABILITY_BATTLE_ARMOR || abilityDef == ABILITY_SHELL_ARMOR)) + if (critChance != CRITICAL_HIT_BLOCKED && (abilityDef == ABILITY_BATTLE_ARMOR || abilityDef == ABILITY_SHELL_ARMOR)) { // Record ability only if move had 100% chance to get a crit if (recordAbility) { - if (critChance == -2) + if (critChance == CRITICAL_HIT_ALWAYS) RecordAbilityBattle(battlerDef, abilityDef); - else if (sCriticalHitOdds[critChance] == 1) + else if (GetCriticalHitOdds(critChance) == 1) RecordAbilityBattle(battlerDef, abilityDef); } - critChance = -1; + critChance = CRITICAL_HIT_BLOCKED; } return critChance; } +#undef CRIT_BLOCKED +#undef ALWAYS_CRITS s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility) { @@ -1963,7 +1942,7 @@ s32 CalcCritChanceStage(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordA // Threshold = Base Speed / 2 // High crit move = 8 * (Base Speed / 2) // Focus Energy = 4 * (Base Speed / 2) -s32 CalcCritChanceStageGen1(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recordAbility) +s32 CalcCritChanceStageGen1(u32 battlerAtk, u32 battlerDef, u32 move, bool32 recordAbility) { // Vanilla u32 focusEnergyScaler = 4; @@ -1973,13 +1952,13 @@ s32 CalcCritChanceStageGen1(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recor u32 superLuckScaler = 4; u32 scopeLensScaler = 4; u32 luckyPunchScaler = 8; - u32 farfetchedLeekScaler = 8; + u32 farfetchdLeekScaler = 8; s32 critChance = 0; s32 moveCritStage = gMovesInfo[gCurrentMove].criticalHitStage; - s32 bonusCritStage = gBattleStruct->bonusCritStages[gBattlerAttacker]; // G-Max Chi Strike - u32 abilityAtk = GetBattlerAbility(gBattlerAttacker); - u32 abilityDef = GetBattlerAbility(gBattlerTarget); + s32 bonusCritStage = gBattleStruct->bonusCritStages[battlerAtk]; // G-Max Chi Strike + u32 abilityAtk = GetBattlerAbility(battlerAtk); + u32 abilityDef = GetBattlerAbility(battlerDef); u32 holdEffectAtk = GetBattlerHoldEffect(battlerAtk, TRUE); u16 baseSpeed = gSpeciesInfo[gBattleMons[battlerAtk].species].baseSpeed; @@ -1992,17 +1971,15 @@ s32 CalcCritChanceStageGen1(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recor if (bonusCritStage > 0) critChance = critChance * bonusCritStage; - if ((gBattleMons[gBattlerAttacker].status2 & STATUS2_FOCUS_ENERGY_ANY) != 0) + if ((gBattleMons[battlerAtk].status2 & STATUS2_FOCUS_ENERGY_ANY) != 0) critChance = critChance * focusEnergyScaler; if (holdEffectAtk == HOLD_EFFECT_SCOPE_LENS) critChance = critChance * scopeLensScaler; - - if (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[gBattlerAttacker].species == SPECIES_CHANSEY) + else if (holdEffectAtk == HOLD_EFFECT_LUCKY_PUNCH && gBattleMons[battlerAtk].species == SPECIES_CHANSEY) critChance = critChance * luckyPunchScaler; - - if (BENEFITS_FROM_LEEK(battlerAtk, holdEffectAtk)) - critChance = critChance * farfetchedLeekScaler; + else if (IsBattlerLeekAffected(battlerAtk, holdEffectAtk)) + critChance = critChance * farfetchdLeekScaler; if (abilityAtk == ABILITY_SUPER_LUCK) critChance = critChance * superLuckScaler; @@ -2030,67 +2007,132 @@ s32 CalcCritChanceStageGen1(u8 battlerAtk, u8 battlerDef, u32 move, bool32 recor return critChance; } -#undef BENEFITS_FROM_LEEK s32 GetCritHitOdds(s32 critChanceIndex) { if (critChanceIndex < 0) return -1; else - return sCriticalHitOdds[critChanceIndex]; + return GetCriticalHitOdds(critChanceIndex); } static void Cmd_critcalc(void) { CMD_ARGS(); - u16 partySlot; - s32 critChance; - - if (B_CRIT_CHANCE == GEN_1) - critChance = CalcCritChanceStageGen1(gBattlerAttacker, gBattlerTarget, gCurrentMove, TRUE); - else - critChance = CalcCritChanceStage(gBattlerAttacker, gBattlerTarget, gCurrentMove, TRUE); - + u32 partySlot = gBattlerPartyIndexes[gBattlerAttacker]; + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + bool32 calcSpreadMoveDamage = IsSpreadMove(moveTarget) && !IS_MOVE_STATUS(gCurrentMove); gPotentialItemEffectBattler = gBattlerAttacker; - if (gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) - gIsCriticalHit = FALSE; - else if (critChance == -1) - gIsCriticalHit = FALSE; - else if (critChance == -2) - gIsCriticalHit = TRUE; - else + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) { + if (gBattleStruct->calculatedDamageDone) + break; + + if (!calcSpreadMoveDamage && battlerDef != gBattlerTarget) + continue; + + if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || gBattleStruct->noResultString[battlerDef] + || gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT) + continue; + if (B_CRIT_CHANCE == GEN_1) - { - u8 critRoll = RandomUniform(RNG_CRITICAL_HIT, 1, 256); - if (critRoll <= critChance) - gIsCriticalHit = 1; - else - gIsCriticalHit = 0; - } + gBattleStruct->critChance[battlerDef] = CalcCritChanceStageGen1(gBattlerAttacker, battlerDef, gCurrentMove, TRUE); else - gIsCriticalHit = RandomChance(RNG_CRITICAL_HIT, 1, sCriticalHitOdds[critChance]); + gBattleStruct->critChance[battlerDef] = CalcCritChanceStage(gBattlerAttacker, battlerDef, gCurrentMove, TRUE); + + if (gBattleTypeFlags & (BATTLE_TYPE_WALLY_TUTORIAL | BATTLE_TYPE_FIRST_BATTLE)) + gSpecialStatuses[battlerDef].criticalHit = FALSE; + else if (gBattleStruct->critChance[battlerDef] == -1) + gSpecialStatuses[battlerDef].criticalHit = FALSE; + else if (gBattleStruct->critChance[battlerDef] == -2) + gSpecialStatuses[battlerDef].criticalHit = TRUE; + else + { + if (B_CRIT_CHANCE == GEN_1) + { + u32 critRoll = RandomUniform(RNG_CRITICAL_HIT, 1, 256); + if (critRoll <= gBattleStruct->critChance[battlerDef]) + gSpecialStatuses[battlerDef].criticalHit = TRUE; + else + gSpecialStatuses[battlerDef].criticalHit = FALSE; + } + else + { + gSpecialStatuses[battlerDef].criticalHit = RandomChance(RNG_CRITICAL_HIT, 1, GetCriticalHitOdds(gBattleStruct->critChance[battlerDef])); + } + } + + // Counter for EVO_CRITICAL_HITS. + if (gSpecialStatuses[battlerDef].criticalHit && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER + && !(gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gBattlerAttacker) == B_POSITION_PLAYER_LEFT)) + gPartyCriticalHits[partySlot]++; } - // Counter for EVO_CRITICAL_HITS. - partySlot = gBattlerPartyIndexes[gBattlerAttacker]; - if (gIsCriticalHit && GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER - && !(gBattleTypeFlags & BATTLE_TYPE_MULTI && GetBattlerPosition(gBattlerAttacker) == B_POSITION_PLAYER_LEFT)) - gPartyCriticalHits[partySlot]++; - gBattlescriptCurrInstr = cmd->nextInstr; } +static inline void GetShellSideArmCategory(u32 battlerDef) +{ + if (gMovesInfo[gCurrentMove].effect == EFFECT_SHELL_SIDE_ARM) + gBattleStruct->swapDamageCategory = (gBattleStruct->shellSideArmCategory[gBattlerAttacker][battlerDef] != gMovesInfo[gCurrentMove].category); +} + static void Cmd_damagecalc(void) { CMD_ARGS(); - u32 moveType = GetMoveType(gCurrentMove); - if (gMovesInfo[gCurrentMove].effect == EFFECT_SHELL_SIDE_ARM) - gBattleStruct->swapDamageCategory = (gBattleStruct->shellSideArmCategory[gBattlerAttacker][gBattlerTarget] != gMovesInfo[gCurrentMove].category); - gBattleMoveDamage = CalculateMoveDamage(gCurrentMove, gBattlerAttacker, gBattlerTarget, moveType, 0, gIsCriticalHit, TRUE, TRUE); + if (gBattleStruct->calculatedDamageDone) + { + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } + + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + + struct DamageCalculationData damageCalcData; + damageCalcData.battlerAtk = gBattlerAttacker; + damageCalcData.move = gCurrentMove; + damageCalcData.moveType = GetMoveType(gCurrentMove); + damageCalcData.randomFactor = TRUE; + damageCalcData.updateFlags = TRUE; + + if (IsSpreadMove(moveTarget)) + { + u32 battlerDef; + for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || gBattleStruct->noResultString[battlerDef] + || gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT) + continue; + + if (ShouldTeraShellDistortTypeMatchups(gCurrentMove, battlerDef)) + { + gSpecialStatuses[battlerDef].distortedTypeMatchups = TRUE; + gSpecialStatuses[battlerDef].teraShellAbilityDone = TRUE; + } + GetShellSideArmCategory(battlerDef); + damageCalcData.battlerDef = battlerDef; + damageCalcData.isCrit = gSpecialStatuses[battlerDef].criticalHit; + gBattleStruct->moveDamage[battlerDef] = CalculateMoveDamage(&damageCalcData, 0); + } + } + else + { + if (ShouldTeraShellDistortTypeMatchups(gCurrentMove, gBattlerTarget)) + { + gSpecialStatuses[gBattlerTarget].distortedTypeMatchups = TRUE; + gSpecialStatuses[gBattlerTarget].teraShellAbilityDone = TRUE; + } + GetShellSideArmCategory(gBattlerTarget); + damageCalcData.battlerDef = gBattlerTarget; + damageCalcData.isCrit = gSpecialStatuses[gBattlerTarget].criticalHit; + gBattleStruct->moveDamage[gBattlerTarget] = CalculateMoveDamage(&damageCalcData, 0); + } + gBattlescriptCurrInstr = cmd->nextInstr; } @@ -2098,8 +2140,11 @@ static void Cmd_typecalc(void) { CMD_ARGS(); - u32 moveType = GetMoveType(gCurrentMove); - CalcTypeEffectivenessMultiplier(gCurrentMove, moveType, gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget), TRUE); + if (!IsSpreadMove(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove))) // Handled in CANCELLER_MULTI_TARGET_MOVES for Spread Moves + { + u32 moveType = GetMoveType(gCurrentMove); + CalcTypeEffectivenessMultiplier(gCurrentMove, moveType, gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget), TRUE); + } gBattlescriptCurrInstr = cmd->nextInstr; } @@ -2109,109 +2154,118 @@ static void Cmd_adjustdamage(void) CMD_ARGS(); u8 holdEffect, param; - u32 affectionScore = GetBattlerAffectionHearts(gBattlerTarget); + u32 battlerDef; u32 rand = Random() % 100; - u32 moveType = GetMoveType(gCurrentMove); + u32 affectionScore = GetBattlerAffectionHearts(gBattlerTarget); + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + bool32 calcSpreadMoveDamage = IsSpreadMove(moveTarget) && !IS_MOVE_STATUS(gCurrentMove); - if (DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove)) - goto END; - if (DoesDisguiseBlockMove(gBattlerTarget, gCurrentMove)) + for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) { - gBattleStruct->enduredDamage |= 1u << gBattlerTarget; - goto END; - } - if (GetBattlerAbility(gBattlerTarget) == ABILITY_ICE_FACE && IS_MOVE_PHYSICAL(gCurrentMove) && gBattleMons[gBattlerTarget].species == SPECIES_EISCUE) - { - // Damage deals typeless 0 HP. - gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE); - gBattleMoveDamage = 0; - RecordAbilityBattle(gBattlerTarget, ABILITY_ICE_FACE); - gBattleResources->flags->flags[gBattlerTarget] |= RESOURCE_FLAG_ICE_FACE; - // Form change will be done after attack animation in Cmd_resultmessage. - goto END; - } - if (gBattleMons[gBattlerTarget].hp > gBattleMoveDamage) - goto END; + if (gBattleStruct->calculatedDamageDone) + break; - holdEffect = GetBattlerHoldEffect(gBattlerTarget, TRUE); - param = GetBattlerHoldEffectParam(gBattlerTarget); + if (!calcSpreadMoveDamage && battlerDef != gBattlerTarget) + continue; - gPotentialItemEffectBattler = gBattlerTarget; + if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || gBattleStruct->noResultString[battlerDef]) + continue; - if (holdEffect == HOLD_EFFECT_FOCUS_BAND && rand < param) - { - RecordItemEffectBattle(gBattlerTarget, holdEffect); - gSpecialStatuses[gBattlerTarget].focusBanded = TRUE; - } - else if (B_STURDY >= GEN_5 && GetBattlerAbility(gBattlerTarget) == ABILITY_STURDY && BATTLER_MAX_HP(gBattlerTarget)) - { - RecordAbilityBattle(gBattlerTarget, ABILITY_STURDY); - gSpecialStatuses[gBattlerTarget].sturdied = TRUE; - } - else if (holdEffect == HOLD_EFFECT_FOCUS_SASH && BATTLER_MAX_HP(gBattlerTarget)) - { - RecordItemEffectBattle(gBattlerTarget, holdEffect); - gSpecialStatuses[gBattlerTarget].focusSashed = TRUE; - } - else if (B_AFFECTION_MECHANICS == TRUE && GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER && affectionScore >= AFFECTION_THREE_HEARTS) - { - if ((affectionScore == AFFECTION_FIVE_HEARTS && rand < 20) - || (affectionScore == AFFECTION_FOUR_HEARTS && rand < 15) - || (affectionScore == AFFECTION_THREE_HEARTS && rand < 10)) - gSpecialStatuses[gBattlerTarget].affectionEndured = TRUE; + if (DoesSubstituteBlockMove(gBattlerAttacker, battlerDef, gCurrentMove)) + goto END; + + if (DoesDisguiseBlockMove(battlerDef, gCurrentMove)) + { + gBattleStruct->enduredDamage |= 1u << battlerDef; + goto END; + } + if (GetBattlerAbility(battlerDef) == ABILITY_ICE_FACE && IS_MOVE_PHYSICAL(gCurrentMove) && gBattleMons[battlerDef].species == SPECIES_EISCUE) + { + // Damage deals typeless 0 HP. + gBattleStruct->moveResultFlags[battlerDef] &= ~(MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_NOT_VERY_EFFECTIVE); + gBattleStruct->moveDamage[battlerDef] = 0; + RecordAbilityBattle(gBattlerTarget, ABILITY_ICE_FACE); + gBattleResources->flags->flags[battlerDef] |= RESOURCE_FLAG_ICE_FACE; + // Form change will be done after attack animation in Cmd_resultmessage. + goto END; + } + if (gBattleMons[gBattlerTarget].hp > gBattleStruct->moveDamage[battlerDef]) + goto END; + + holdEffect = GetBattlerHoldEffect(battlerDef, TRUE); + param = GetBattlerHoldEffectParam(battlerDef); + + gPotentialItemEffectBattler = battlerDef; + + if (holdEffect == HOLD_EFFECT_FOCUS_BAND && rand < param) + { + RecordItemEffectBattle(battlerDef, holdEffect); + gSpecialStatuses[battlerDef].focusBanded = TRUE; + } + else if (B_STURDY >= GEN_5 && GetBattlerAbility(battlerDef) == ABILITY_STURDY && BATTLER_MAX_HP(battlerDef)) + { + RecordAbilityBattle(battlerDef, ABILITY_STURDY); + gSpecialStatuses[battlerDef].sturdied = TRUE; + } + else if (holdEffect == HOLD_EFFECT_FOCUS_SASH && BATTLER_MAX_HP(battlerDef)) + { + RecordItemEffectBattle(battlerDef, holdEffect); + gSpecialStatuses[battlerDef].focusSashed = TRUE; + } + else if (B_AFFECTION_MECHANICS == TRUE && GetBattlerSide(battlerDef) == B_SIDE_PLAYER && affectionScore >= AFFECTION_THREE_HEARTS) + { + if ((affectionScore == AFFECTION_FIVE_HEARTS && rand < 20) + || (affectionScore == AFFECTION_FOUR_HEARTS && rand < 15) + || (affectionScore == AFFECTION_THREE_HEARTS && rand < 10)) + gSpecialStatuses[battlerDef].affectionEndured = TRUE; + } + + if (gMovesInfo[gCurrentMove].effect != EFFECT_FALSE_SWIPE + && !gProtectStructs[battlerDef].endured + && !gSpecialStatuses[battlerDef].focusBanded + && !gSpecialStatuses[battlerDef].focusSashed + && (B_AFFECTION_MECHANICS == FALSE || !gSpecialStatuses[battlerDef].affectionEndured) + && !gSpecialStatuses[battlerDef].sturdied) + goto END; + + // Handle reducing the dmg to 1 hp. + gBattleStruct->moveDamage[battlerDef] = gBattleMons[battlerDef].hp - 1; + gBattleStruct->enduredDamage |= 1u << battlerDef; + + if (gProtectStructs[battlerDef].endured) + { + gBattleStruct->moveResultFlags[battlerDef] |= MOVE_RESULT_FOE_ENDURED; + } + else if (gSpecialStatuses[battlerDef].focusBanded || gSpecialStatuses[battlerDef].focusSashed) + { + gBattleStruct->moveResultFlags[battlerDef] |= MOVE_RESULT_FOE_HUNG_ON; + gLastUsedItem = gBattleMons[battlerDef].item; + gSpecialStatuses[battlerDef].focusBanded = FALSE; + gSpecialStatuses[battlerDef].focusSashed = FALSE; + } + else if (gSpecialStatuses[battlerDef].sturdied) + { + gBattleStruct->moveResultFlags[battlerDef] |= MOVE_RESULT_STURDIED; + gLastUsedAbility = ABILITY_STURDY; + } + else if (B_AFFECTION_MECHANICS == TRUE && gSpecialStatuses[battlerDef].affectionEndured) + { + gBattleStruct->moveResultFlags[battlerDef] |= MOVE_RESULT_FOE_ENDURED_AFFECTION; + } + + END: + if (!(gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT) && gBattleStruct->moveDamage[battlerDef] >= 1) + gSpecialStatuses[gBattlerAttacker].damagedMons |= 1u << battlerDef; } - if (gMovesInfo[gCurrentMove].effect != EFFECT_FALSE_SWIPE - && !gProtectStructs[gBattlerTarget].endured - && !gSpecialStatuses[gBattlerTarget].focusBanded - && !gSpecialStatuses[gBattlerTarget].focusSashed - && (B_AFFECTION_MECHANICS == FALSE || !gSpecialStatuses[gBattlerTarget].affectionEndured) - && !gSpecialStatuses[gBattlerTarget].sturdied) - goto END; - - // Handle reducing the dmg to 1 hp. - gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - gBattleStruct->enduredDamage |= 1u << gBattlerTarget; - - if (gProtectStructs[gBattlerTarget].endured) - { - gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; - } - else if (gSpecialStatuses[gBattlerTarget].focusBanded || gSpecialStatuses[gBattlerTarget].focusSashed) - { - gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; - gLastUsedItem = gBattleMons[gBattlerTarget].item; - gSpecialStatuses[gBattlerTarget].focusBanded = FALSE; - gSpecialStatuses[gBattlerTarget].focusSashed = FALSE; - - } - else if (gSpecialStatuses[gBattlerTarget].sturdied) - { - gMoveResultFlags |= MOVE_RESULT_STURDIED; - gLastUsedAbility = ABILITY_STURDY; - } - else if (B_AFFECTION_MECHANICS == TRUE && gSpecialStatuses[gBattlerTarget].affectionEndured) - { - gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED_AFFECTION; - } - -END: + if (calcSpreadMoveDamage) + gBattleStruct->calculatedDamageDone = TRUE; gBattlescriptCurrInstr = cmd->nextInstr; - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) && gBattleMoveDamage >= 1) - gSpecialStatuses[gBattlerAttacker].damagedMons |= (1 << (gBattlerTarget)); - - // Check gems and damage reducing berries. - if (gSpecialStatuses[gBattlerTarget].berryReduced - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gBattleMons[gBattlerTarget].item) - { - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_BerryReduceDmg; - gLastUsedItem = gBattleMons[gBattlerTarget].item; - } if (gSpecialStatuses[gBattlerAttacker].gemBoost - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) + && !(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) && gBattleMons[gBattlerAttacker].item && gMovesInfo[gCurrentMove].effect != EFFECT_PLEDGE && gCurrentMove != MOVE_STRUGGLE) @@ -2220,23 +2274,6 @@ END: gBattlescriptCurrInstr = BattleScript_GemActivates; gLastUsedItem = gBattleMons[gBattlerAttacker].item; } - - // B_WEATHER_STRONG_WINDS prints a string when it's about to reduce the power - // of a move that is Super Effective against a Flying-type Pokémon. - if (gBattleWeather & B_WEATHER_STRONG_WINDS) - { - if ((GetBattlerType(gBattlerTarget, 0, FALSE) == TYPE_FLYING - && GetTypeModifier(moveType, GetBattlerType(gBattlerTarget, 0, FALSE)) >= UQ_4_12(2.0)) - || (GetBattlerType(gBattlerTarget, 1, FALSE) == TYPE_FLYING - && GetTypeModifier(moveType, GetBattlerType(gBattlerTarget, 1, FALSE)) >= UQ_4_12(2.0)) - || (GetBattlerType(gBattlerTarget, 2, FALSE) == TYPE_FLYING - && GetTypeModifier(moveType, GetBattlerType(gBattlerTarget, 2, FALSE)) >= UQ_4_12(2.0))) - { - gBattlerAbility = gBattlerTarget; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_AttackWeakenedByStrongWinds; - } - } } static void Cmd_multihitresultmessage(void) @@ -2246,21 +2283,22 @@ static void Cmd_multihitresultmessage(void) if (gBattleControllerExecFlags) return; - if (!(gMoveResultFlags & MOVE_RESULT_FAILED) && !(gMoveResultFlags & MOVE_RESULT_FOE_ENDURED)) + if (!(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FAILED) + && !(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FOE_ENDURED)) { - if (gMoveResultFlags & MOVE_RESULT_STURDIED) + if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_STURDIED) { - gMoveResultFlags &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON); + gBattleStruct->moveResultFlags[gBattlerTarget] &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON); gSpecialStatuses[gBattlerTarget].sturdied = FALSE; // Delete this line to make Sturdy last for the duration of the whole move turn. BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SturdiedMsg; return; } - else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) + else if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FOE_HUNG_ON) { gLastUsedItem = gBattleMons[gBattlerTarget].item; gPotentialItemEffectBattler = gBattlerTarget; - gMoveResultFlags &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON); + gBattleStruct->moveResultFlags[gBattlerTarget] &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_HUNG_ON); gSpecialStatuses[gBattlerTarget].focusBanded = FALSE; // Delete this line to make Focus Band last for the duration of the whole move turn. gSpecialStatuses[gBattlerTarget].focusSashed = FALSE; // Delete this line to make Focus Sash last for the duration of the whole move turn. BattleScriptPushCursor(); @@ -2269,27 +2307,166 @@ static void Cmd_multihitresultmessage(void) } } gBattlescriptCurrInstr = cmd->nextInstr; +} - // Print berry reducing message after result message. - if (gSpecialStatuses[gBattlerTarget].berryReduced - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) +static inline bool32 DoesBattlerNegateDamage(u32 battler) +{ + u32 species = gBattleMons[battler].species; + u32 ability = GetBattlerAbility(battler); + + if (gBattleMons[battler].status2 & STATUS2_TRANSFORMED) + return FALSE; + if (ability == ABILITY_DISGUISE && species == SPECIES_MIMIKYU) + return TRUE; + if (ability == ABILITY_ICE_FACE && species == SPECIES_EISCUE && GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_SPECIAL) + return TRUE; + + return FALSE; +} + +static u32 UpdateEffectivenessResultFlagsForDoubleSpreadMoves(u32 resultFlags) +{ + // Only play the "best" sound + for (u32 sound = 0; sound < 3; sound++) { - gBattleStruct->ateBerry[gBattlerTarget & BIT_SIDE] |= 1u << gBattlerPartyIndexes[gBattlerTarget]; - gSpecialStatuses[gBattlerTarget].berryReduced = FALSE; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_PrintBerryReduceString; + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if ((gBattleStruct->moveResultFlags[battlerDef] & (MOVE_RESULT_MISSED | MOVE_RESULT_NO_EFFECT) + || gBattleStruct->noResultString[battlerDef])) + continue; + + switch (sound) + { + case 0: + if (gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_SUPER_EFFECTIVE + && !DoesBattlerNegateDamage(battlerDef)) + return gBattleStruct->moveResultFlags[battlerDef]; + break; + case 1: + if (gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NOT_VERY_EFFECTIVE + && !DoesBattlerNegateDamage(battlerDef)) + return gBattleStruct->moveResultFlags[battlerDef]; + break; + case 2: + if (DoesBattlerNegateDamage(battlerDef)) + return 0; //Normal effectiveness + return gBattleStruct->moveResultFlags[battlerDef]; + } + } } + + return resultFlags; +} + +static inline bool32 TryStrongWindsWeakenAttack(u32 battlerDef, u32 moveType) +{ + if (gBattleWeather & B_WEATHER_STRONG_WINDS && WEATHER_HAS_EFFECT) + { + if (gMovesInfo[gCurrentMove].category != DAMAGE_CATEGORY_STATUS + && IS_BATTLER_OF_TYPE(battlerDef, TYPE_FLYING) + && gTypeEffectivenessTable[moveType][TYPE_FLYING] >= UQ_4_12(2.0) + && !gBattleStruct->printedStrongWindsWeakenedAttack) + { + gBattleStruct->printedStrongWindsWeakenedAttack = TRUE; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_AttackWeakenedByStrongWinds; + return TRUE; + } + } + + return FALSE; +} + +static inline bool32 TryTeraShellDistortTypeMatchups(u32 battlerDef) +{ + if (gSpecialStatuses[battlerDef].teraShellAbilityDone) + { + gSpecialStatuses[battlerDef].teraShellAbilityDone = FALSE; + gBattleScripting.battler = battlerDef; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_TeraShellDistortingTypeMatchups; + return TRUE; + } + return FALSE; +} + +// According to Gen5 Weakness berry activation happens after the attackanimation. +// It doesn't have any impact on gameplay and is only a visual thing which can be adjusted later. +static inline bool32 TryActivateWeakenessBerry(u32 battlerDef) +{ + if (gSpecialStatuses[battlerDef].berryReduced && gBattleMons[battlerDef].item != ITEM_NONE) + { + gSpecialStatuses[battlerDef].berryReduced = FALSE; + gBattleScripting.battler = battlerDef; + gLastUsedItem = gBattleMons[battlerDef].item; + gBattleStruct->ateBerry[battlerDef & BIT_SIDE] |= 1u << gBattlerPartyIndexes[battlerDef]; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryReduceDmg; + return TRUE; + } + + return FALSE; +} + +static bool32 ProcessPreAttackAnimationFuncs(void) +{ + u32 moveType = GetMoveType(gCurrentMove); + if (IsDoubleSpreadMove()) + { + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + if (!gBattleStruct->printedStrongWindsWeakenedAttack) + { + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || (battlerDef == BATTLE_PARTNER(gBattlerAttacker) && !(moveTarget & MOVE_TARGET_FOES_AND_ALLY)) + || (gBattleStruct->noResultString[battlerDef] && gBattleStruct->noResultString[battlerDef] != DO_ACCURACY_CHECK)) + continue; + + if (TryStrongWindsWeakenAttack(battlerDef, moveType)) + return TRUE; + } + } + + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (IsBattlerInvalidForSpreadMove(gBattlerAttacker, battlerDef, moveTarget) + || (battlerDef == BATTLE_PARTNER(gBattlerAttacker) && !(moveTarget & MOVE_TARGET_FOES_AND_ALLY)) + || (gBattleStruct->noResultString[battlerDef] && gBattleStruct->noResultString[battlerDef] != DO_ACCURACY_CHECK)) + continue; + + if (TryTeraShellDistortTypeMatchups(battlerDef)) + return TRUE; + if (TryActivateWeakenessBerry(battlerDef)) + return TRUE; + } + } + else + { + if (TryStrongWindsWeakenAttack(gBattlerTarget, moveType)) + return TRUE; + if (TryTeraShellDistortTypeMatchups(gBattlerTarget)) + return TRUE; + if (TryActivateWeakenessBerry(gBattlerTarget)) + return TRUE; + } + + return FALSE; } static void Cmd_attackanimation(void) { CMD_ARGS(); - u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); - - if (gBattleControllerExecFlags) + if (gBattleControllerExecFlags || ProcessPreAttackAnimationFuncs()) return; + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + u32 moveResultFlags = gBattleStruct->moveResultFlags[gBattlerTarget]; + + if (IsDoubleSpreadMove()) + moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]); + if ((gHitMarker & (HITMARKER_NO_ANIMATIONS | HITMARKER_DISABLE_ANIMATION)) && gCurrentMove != MOVE_TRANSFORM && gCurrentMove != MOVE_SUBSTITUTE @@ -2318,15 +2495,14 @@ static void Cmd_attackanimation(void) gBattlescriptCurrInstr = cmd->nextInstr; return; } - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (!(moveResultFlags & MOVE_RESULT_NO_EFFECT)) { - u8 multihit; - + u32 multihit; if (gBattleMons[gBattlerTarget].status2 & STATUS2_SUBSTITUTE) multihit = gMultiHitCounter; else if (gMultiHitCounter != 0 && gMultiHitCounter != 1) { - if (gBattleMons[gBattlerTarget].hp <= gBattleMoveDamage) + if (gBattleMons[gBattlerTarget].hp <= gBattleStruct->moveDamage[gBattlerTarget]) multihit = 1; else multihit = gMultiHitCounter; @@ -2334,7 +2510,15 @@ static void Cmd_attackanimation(void) else multihit = gMultiHitCounter; - BtlController_EmitMoveAnimation(gBattlerAttacker, BUFFER_A, gCurrentMove, gBattleScripting.animTurn, gBattleMovePower, gBattleMoveDamage, gBattleMons[gBattlerAttacker].friendship, &gDisableStructs[gBattlerAttacker], multihit); + BtlController_EmitMoveAnimation(gBattlerAttacker, + BUFFER_A, + gCurrentMove, + gBattleScripting.animTurn, + gBattleMovePower, + gBattleStruct->moveDamage[gBattlerTarget], + gBattleMons[gBattlerAttacker].friendship, + &gDisableStructs[gBattlerAttacker], + multihit); gBattleScripting.animTurn++; gBattleScripting.animTargetsHit++; MarkBattlerForControllerExec(gBattlerAttacker); @@ -2356,32 +2540,71 @@ static void Cmd_waitanimation(void) gBattlescriptCurrInstr = cmd->nextInstr; } +static void DoublesHPBarReduction(void) +{ + if (gBattleStruct->doneDoublesSpreadHit + || gHitMarker & (HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE)) + return; + + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT + || gBattleStruct->moveDamage[battlerDef] == 0 + || gBattleStruct->noResultString[battlerDef] + || DoesSubstituteBlockMove(gBattlerAttacker, battlerDef, gCurrentMove) + || DoesDisguiseBlockMove(battlerDef, gCurrentMove)) + continue; + + s32 currDmg = gBattleStruct->moveDamage[battlerDef]; + s32 healthValue = min(currDmg, 10000); // Max damage (10000) not present in R/S, ensures that huge damage values don't change sign + BtlController_EmitHealthBarUpdate(battlerDef, BUFFER_A, healthValue); + MarkBattlerForControllerExec(battlerDef); + + if (GetBattlerSide(battlerDef) == B_SIDE_PLAYER && currDmg > 0) + gBattleResults.playerMonWasDamaged = TRUE; + } + + gBattleStruct->doneDoublesSpreadHit = TRUE; +} + static void Cmd_healthbarupdate(void) { CMD_ARGS(u8 battler); + u32 battler = GetBattlerForBattleScript(cmd->battler); if (gBattleControllerExecFlags) return; - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) + if (MoveResultHasEffect(battler) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) { - u32 battler = GetBattlerForBattleScript(cmd->battler); - if (DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) && gDisableStructs[battler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { PrepareStringBattle(STRINGID_SUBSTITUTEDAMAGED, battler); + if (IsDoubleSpreadMove()) + DoublesHPBarReduction(); } else if (!DoesDisguiseBlockMove(battler, gCurrentMove)) { - s16 healthValue = min(gBattleMoveDamage, 10000); // Max damage (10000) not present in R/S, ensures that huge damage values don't change sign + if (IsDoubleSpreadMove()) + { + DoublesHPBarReduction(); + } + else + { + s16 healthValue = min(gBattleStruct->moveDamage[battler], 10000); // Max damage (10000) not present in R/S, ensures that huge damage values don't change sign - BtlController_EmitHealthBarUpdate(battler, BUFFER_A, healthValue); - MarkBattlerForControllerExec(battler); + BtlController_EmitHealthBarUpdate(battler, BUFFER_A, healthValue); + MarkBattlerForControllerExec(battler); - if (GetBattlerSide(battler) == B_SIDE_PLAYER && gBattleMoveDamage > 0) - gBattleResults.playerMonWasDamaged = TRUE; + if (GetBattlerSide(battler) == B_SIDE_PLAYER && gBattleStruct->moveDamage[battler] > 0) + gBattleResults.playerMonWasDamaged = TRUE; + } } } + else if (IsDoubleSpreadMove()) + { + DoublesHPBarReduction(); + } gBattlescriptCurrInstr = cmd->nextInstr; } @@ -2391,22 +2614,21 @@ static void Cmd_datahpupdate(void) { CMD_ARGS(u8 battler); - u32 battler; - if (gBattleControllerExecFlags) return; - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) + u32 battler = GetBattlerForBattleScript(cmd->battler); + + if (MoveResultHasEffect(battler) || (gHitMarker & HITMARKER_PASSIVE_DAMAGE)) { - battler = GetBattlerForBattleScript(cmd->battler); if (DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) && gDisableStructs[battler].substituteHP && !(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE)) { - if (gDisableStructs[battler].substituteHP >= gBattleMoveDamage) + if (gDisableStructs[battler].substituteHP >= gBattleStruct->moveDamage[battler]) { if (gSpecialStatuses[battler].shellBellDmg == 0) - gSpecialStatuses[battler].shellBellDmg = gBattleMoveDamage; - gDisableStructs[battler].substituteHP -= gBattleMoveDamage; - gHpDealt = gBattleMoveDamage; + gSpecialStatuses[battler].shellBellDmg = gBattleStruct->moveDamage[battler]; + gDisableStructs[battler].substituteHP -= gBattleStruct->moveDamage[battler]; + gHpDealt = gBattleStruct->moveDamage[battler]; } else { @@ -2436,7 +2658,7 @@ static void Cmd_datahpupdate(void) else gBattleMons[battler].species = SPECIES_MIMIKYU_BUSTED; if (B_DISGUISE_HP_LOSS >= GEN_8) - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; BattleScriptPush(cmd->nextInstr); gBattlescriptCurrInstr = BattleScript_TargetFormChange; return; @@ -2444,10 +2666,10 @@ static void Cmd_datahpupdate(void) else { gHitMarker &= ~HITMARKER_IGNORE_SUBSTITUTE; - if (gBattleMoveDamage < 0) + if (gBattleStruct->moveDamage[battler] < 0) { // Negative damage is HP gain - gBattleMons[battler].hp += -gBattleMoveDamage; + gBattleMons[battler].hp += -gBattleStruct->moveDamage[battler]; if (gBattleMons[battler].hp > gBattleMons[battler].maxHP) gBattleMons[battler].hp = gBattleMons[battler].maxHP; } @@ -2459,7 +2681,7 @@ static void Cmd_datahpupdate(void) } else { - gBideDmg[battler] += gBattleMoveDamage; + gBideDmg[battler] += gBattleStruct->moveDamage[battler]; if (cmd->battler == BS_TARGET) gBideTarget[battler] = gBattlerAttacker; else @@ -2467,10 +2689,10 @@ static void Cmd_datahpupdate(void) } // Deal damage to the battler - if (gBattleMons[battler].hp > gBattleMoveDamage) + if (gBattleMons[battler].hp > gBattleStruct->moveDamage[battler]) { - gBattleMons[battler].hp -= gBattleMoveDamage; - gHpDealt = gBattleMoveDamage; + gBattleMons[battler].hp -= gBattleStruct->moveDamage[battler]; + gHpDealt = gBattleStruct->moveDamage[battler]; } else { @@ -2518,7 +2740,6 @@ static void Cmd_datahpupdate(void) } } gHitMarker &= ~HITMARKER_PASSIVE_DAMAGE; - // Send updated HP BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_HP_BATTLE, 0, sizeof(gBattleMons[battler].hp), &gBattleMons[battler].hp); MarkBattlerForControllerExec(battler); @@ -2540,7 +2761,7 @@ static void Cmd_critmessage(void) if (gBattleControllerExecFlags == 0) { - if (gIsCriticalHit == TRUE && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (gSpecialStatuses[gBattlerTarget].criticalHit && MoveResultHasEffect(gBattlerTarget)) { PrepareStringBattle(STRINGID_CRITICALHIT, gBattlerAttacker); @@ -2561,9 +2782,25 @@ static void Cmd_effectivenesssound(void) if (gBattleControllerExecFlags) return; - if (!(gMoveResultFlags & MOVE_RESULT_MISSED)) + u32 moveResultFlags = gBattleStruct->moveResultFlags[gBattlerTarget]; + + if (IsDoubleSpreadMove()) { - switch (gMoveResultFlags & ~MOVE_RESULT_MISSED) + if (gBattleStruct->doneDoublesSpreadHit + || !gBattleStruct->calculatedDamageDone //The attack animation didn't play yet - only play sound after animation + || GetBattleMoveCategory(gCurrentMove) == DAMAGE_CATEGORY_STATUS) //To handle Dark Void missing basically + { + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } + moveResultFlags = UpdateEffectivenessResultFlagsForDoubleSpreadMoves(gBattleStruct->moveResultFlags[gBattlerTarget]); + } + else if (MoveResultHasEffect(gBattlerTarget) && DoesBattlerNegateDamage(gBattlerTarget)) + moveResultFlags = 0; + + if (!(moveResultFlags & MOVE_RESULT_MISSED)) + { + switch (moveResultFlags & ~MOVE_RESULT_MISSED) { case MOVE_RESULT_SUPER_EFFECTIVE: BtlController_EmitPlaySE(gBattlerTarget, BUFFER_A, SE_SUPER_EFFECTIVE); @@ -2582,17 +2819,17 @@ static void Cmd_effectivenesssound(void) case MOVE_RESULT_FOE_HUNG_ON: case MOVE_RESULT_STURDIED: default: - if (gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + if (moveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) { BtlController_EmitPlaySE(gBattlerTarget, BUFFER_A, SE_SUPER_EFFECTIVE); MarkBattlerForControllerExec(gBattlerTarget); } - else if (gMoveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) + else if (moveResultFlags & MOVE_RESULT_NOT_VERY_EFFECTIVE) { BtlController_EmitPlaySE(gBattlerTarget, BUFFER_A, SE_NOT_EFFECTIVE); MarkBattlerForControllerExec(gBattlerTarget); } - else if (!(gMoveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) + else if (!(moveResultFlags & (MOVE_RESULT_DOESNT_AFFECT_FOE | MOVE_RESULT_FAILED))) { BtlController_EmitPlaySE(gBattlerTarget, BUFFER_A, SE_EFFECTIVE); MarkBattlerForControllerExec(gBattlerTarget); @@ -2603,11 +2840,27 @@ static void Cmd_effectivenesssound(void) gBattlescriptCurrInstr = cmd->nextInstr; } +static inline bool32 ShouldPrintTwoFoesMessage(u32 moveResult) +{ + return gBattlerTarget == BATTLE_OPPOSITE(gBattlerAttacker) + && gBattleStruct->moveResultFlags[BATTLE_PARTNER(gBattlerTarget)] & moveResult + && !gBattleStruct->noResultString[BATTLE_PARTNER(gBattlerTarget)]; +} + +static inline bool32 ShouldRelyOnTwoFoesMessage(u32 moveResult) +{ + return gBattlerTarget == BATTLE_PARTNER(BATTLE_OPPOSITE(gBattlerAttacker)) + && gBattleStruct->moveResultFlags[BATTLE_OPPOSITE(gBattlerAttacker)] & moveResult + && !(gBattleStruct->moveResultFlags[BATTLE_OPPOSITE(gBattlerAttacker)] & MOVE_RESULT_MISSED && gBattleStruct->missStringId[BATTLE_OPPOSITE(gBattlerAttacker)] > B_MSG_AVOIDED_ATK) + && !gBattleStruct->noResultString[BATTLE_OPPOSITE(gBattlerAttacker)]; +} + static void Cmd_resultmessage(void) { CMD_ARGS(); u32 stringId = 0; + u16 *moveResultFlags = &gBattleStruct->moveResultFlags[gBattlerTarget]; if (gBattleControllerExecFlags) return; @@ -2624,31 +2877,62 @@ static void Cmd_resultmessage(void) return; } - if (gMoveResultFlags & MOVE_RESULT_MISSED && (!(gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK)) + if (*moveResultFlags & MOVE_RESULT_MISSED + && (!(*moveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) || gBattleStruct->missStringId[gBattlerTarget] > B_MSG_AVOIDED_ATK)) { - if (gBattleCommunication[MISS_TYPE] > B_MSG_AVOIDED_ATK) // Wonder Guard or Levitate - show the ability pop-up - CreateAbilityPopUp(gBattlerTarget, gBattleMons[gBattlerTarget].ability, (IsDoubleBattle()) != 0); - stringId = gMissStringIds[gBattleCommunication[MISS_TYPE]]; + if (gMultiHitCounter && gMultiHitCounter < gMovesInfo[gCurrentMove].strikeCount) + { + gMultiHitCounter = 0; + *moveResultFlags &= ~MOVE_RESULT_MISSED; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_MultiHitPrintStrings; + return; + } + + if (gBattleStruct->missStringId[gBattlerTarget] > B_MSG_AVOIDED_ATK) // Wonder Guard or Levitate - show the ability pop-up + CreateAbilityPopUp(gBattlerTarget, gBattleMons[gBattlerTarget].ability, IsDoubleBattle()); gBattleCommunication[MSG_DISPLAY] = 1; + stringId = gMissStringIds[gBattleStruct->missStringId[gBattlerTarget]]; } else { gBattleCommunication[MSG_DISPLAY] = 1; - switch (gMoveResultFlags & ~MOVE_RESULT_MISSED) + switch (*moveResultFlags & ~MOVE_RESULT_MISSED) { case MOVE_RESULT_SUPER_EFFECTIVE: - if (!gMultiHitCounter) // Don't print effectiveness on each hit in a multi hit attack + if (IsDoubleSpreadMove()) + { + if (ShouldPrintTwoFoesMessage(MOVE_RESULT_SUPER_EFFECTIVE)) + stringId = STRINGID_SUPEREFFECTIVETWOFOES; + else if (ShouldRelyOnTwoFoesMessage(MOVE_RESULT_SUPER_EFFECTIVE)) + stringId = 0; // Was handled or will be handled as a double string + else + stringId = STRINGID_SUPEREFFECTIVE; + } + else if (!gMultiHitCounter) // Don't print effectiveness on each hit in a multi hit attack + { + stringId = STRINGID_SUPEREFFECTIVE; + } + if (stringId) // Signal for the trainer slide-in system { - // Signal for the trainer slide-in system. if (GetBattlerSide(gBattlerTarget) != B_SIDE_PLAYER && gBattleStruct->trainerSlideFirstSuperEffectiveHitMsgState != 2) gBattleStruct->trainerSlideFirstSuperEffectiveHitMsgState = 1; - - stringId = STRINGID_SUPEREFFECTIVE; } break; case MOVE_RESULT_NOT_VERY_EFFECTIVE: - if (!gMultiHitCounter) + if (IsDoubleSpreadMove()) + { + if (ShouldPrintTwoFoesMessage(MOVE_RESULT_NOT_VERY_EFFECTIVE)) + stringId = STRINGID_NOTVERYEFFECTIVETWOFOES; + else if (ShouldRelyOnTwoFoesMessage(MOVE_RESULT_NOT_VERY_EFFECTIVE)) + stringId = 0; // Was handled or will be handled as a double string + else + stringId = STRINGID_NOTVERYEFFECTIVE; // Needs a string + } + else if (!gMultiHitCounter) + { stringId = STRINGID_NOTVERYEFFECTIVE; + } break; case MOVE_RESULT_ONE_HIT_KO: stringId = STRINGID_ONEHITKO; @@ -2660,86 +2944,85 @@ static void Cmd_resultmessage(void) stringId = STRINGID_BUTITFAILED; break; case MOVE_RESULT_DOESNT_AFFECT_FOE: - stringId = STRINGID_ITDOESNTAFFECT; + if (IsDoubleSpreadMove()) + { + if (ShouldPrintTwoFoesMessage(MOVE_RESULT_DOESNT_AFFECT_FOE)) + { + stringId = STRINGID_ITDOESNTAFFECTTWOFOES; + } + else if (ShouldRelyOnTwoFoesMessage(MOVE_RESULT_DOESNT_AFFECT_FOE)) + { + stringId = 0; // Was handled or will be handled as a double string + } + else + stringId = STRINGID_ITDOESNTAFFECT; + } + else + { + stringId = STRINGID_ITDOESNTAFFECT; + } break; case MOVE_RESULT_FOE_HUNG_ON: gLastUsedItem = gBattleMons[gBattlerTarget].item; gPotentialItemEffectBattler = gBattlerTarget; - gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); + *moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; default: - if (gMoveResultFlags & MOVE_RESULT_DOESNT_AFFECT_FOE) + if (*moveResultFlags & MOVE_RESULT_ONE_HIT_KO) { - stringId = STRINGID_ITDOESNTAFFECT; - } - else if (gMoveResultFlags & MOVE_RESULT_ONE_HIT_KO) - { - gMoveResultFlags &= ~MOVE_RESULT_ONE_HIT_KO; - gMoveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; - gMoveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; + *moveResultFlags &= ~MOVE_RESULT_ONE_HIT_KO; + *moveResultFlags &= ~MOVE_RESULT_SUPER_EFFECTIVE; + *moveResultFlags &= ~MOVE_RESULT_NOT_VERY_EFFECTIVE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_OneHitKOMsg; return; } - else if (gMoveResultFlags & MOVE_RESULT_STURDIED) + else if (*moveResultFlags & MOVE_RESULT_STURDIED) { - gMoveResultFlags &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); + *moveResultFlags &= ~(MOVE_RESULT_STURDIED | MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); gSpecialStatuses[gBattlerTarget].sturdied = FALSE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SturdiedMsg; return; } - else if (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED) + else if (*moveResultFlags & MOVE_RESULT_FOE_ENDURED) { - gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); + *moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_EnduredMsg; return; } - else if (gMoveResultFlags & MOVE_RESULT_FOE_HUNG_ON) + else if (*moveResultFlags & MOVE_RESULT_FOE_HUNG_ON) { gLastUsedItem = gBattleMons[gBattlerTarget].item; gPotentialItemEffectBattler = gBattlerTarget; - gMoveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); + *moveResultFlags &= ~(MOVE_RESULT_FOE_ENDURED | MOVE_RESULT_FOE_HUNG_ON); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_HangedOnMsg; return; } - else if (gMoveResultFlags & MOVE_RESULT_FAILED) + else if (*moveResultFlags & MOVE_RESULT_FAILED) { stringId = STRINGID_BUTITFAILED; } - else if (B_AFFECTION_MECHANICS == TRUE && (gMoveResultFlags & MOVE_RESULT_FOE_ENDURED_AFFECTION)) + else if (B_AFFECTION_MECHANICS == TRUE && (*moveResultFlags & MOVE_RESULT_FOE_ENDURED_AFFECTION)) { gSpecialStatuses[gBattlerTarget].affectionEndured = FALSE; - gMoveResultFlags &= ~MOVE_RESULT_FOE_ENDURED_AFFECTION; + *moveResultFlags &= ~MOVE_RESULT_FOE_ENDURED_AFFECTION; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AffectionBasedEndurance; return; } - else - { - gBattleCommunication[MSG_DISPLAY] = 0; - } } } - if (stringId) PrepareStringBattle(stringId, gBattlerAttacker); + else + gBattleCommunication[MSG_DISPLAY] = 0; gBattlescriptCurrInstr = cmd->nextInstr; - - // Print berry reducing message after result message. - if (gSpecialStatuses[gBattlerTarget].berryReduced - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) - { - gBattleStruct->ateBerry[gBattlerTarget & BIT_SIDE] |= 1u << gBattlerPartyIndexes[gBattlerTarget]; - gSpecialStatuses[gBattlerTarget].berryReduced = FALSE; - BattleScriptPushCursor(); - gBattlescriptCurrInstr = BattleScript_PrintBerryReduceString; - } } static void Cmd_printstring(void) @@ -2983,7 +3266,7 @@ void SetMoveEffect(bool32 primary, bool32 certain) if (i != gBattlersCount) break; - if (!CanBeSlept(gEffectBattler, GetBattlerAbility(gEffectBattler))) + if (!CanBeSlept(gEffectBattler, GetBattlerAbility(gEffectBattler), BLOCKED_BY_SLEEP_CLAUSE) && !(gBattleStruct->sleepClauseEffectExempt & (1u << gEffectBattler))) break; cancelMultiTurnMovesResult = CancelMultiTurnMoves(gEffectBattler); @@ -3176,7 +3459,7 @@ void SetMoveEffect(bool32 primary, bool32 certain) } else { - gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_DOESNT_AFFECT_FOE; } break; case STATUS1_FROSTBITE: @@ -3202,6 +3485,8 @@ void SetMoveEffect(bool32 primary, bool32 certain) gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 1, 3)); else gBattleMons[gEffectBattler].status1 |= STATUS1_SLEEP_TURN(1 + RandomUniform(RNG_SLEEP_TURNS, 2, 5)); + + TryActivateSleepClause(gEffectBattler, gBattlerPartyIndexes[gEffectBattler]); } else { @@ -3335,8 +3620,7 @@ void SetMoveEffect(bool32 primary, bool32 certain) // For a move that hits multiple targets (i.e. Make it Rain) // we only want to print the message on the final hit - if (!((moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY) - && GetNextTarget(moveTarget, TRUE) != MAX_BATTLERS_COUNT)) + if (!(IsSpreadMove(moveTarget) && GetNextTarget(moveTarget, TRUE) != MAX_BATTLERS_COUNT)) { BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_MoveEffectPayDay; @@ -3580,11 +3864,11 @@ void SetMoveEffect(bool32 primary, bool32 certain) } break; case MOVE_EFFECT_RECOIL_HP_25: // Struggle - gBattleMoveDamage = (gBattleMons[gEffectBattler].maxHP) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gEffectBattler] = (gBattleMons[gEffectBattler].maxHP) / 4; + if (gBattleStruct->moveDamage[gEffectBattler] == 0) + gBattleStruct->moveDamage[gEffectBattler] = 1; if (GetBattlerAbility(gEffectBattler) == ABILITY_PARENTAL_BOND) - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[gEffectBattler] *= 2; BattleScriptPush(gBattlescriptCurrInstr + 1); gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; @@ -3618,13 +3902,14 @@ void SetMoveEffect(bool32 primary, bool32 certain) break; case MOVE_EFFECT_FLAME_BURST: if (IsBattlerAlive(BATTLE_PARTNER(gBattlerTarget)) - && !(gStatuses3[BATTLE_PARTNER(gBattlerTarget)] & STATUS3_SEMI_INVULNERABLE) - && GetBattlerAbility(BATTLE_PARTNER(gBattlerTarget)) != ABILITY_MAGIC_GUARD) + && !(gStatuses3[BATTLE_PARTNER(gBattlerTarget)] & STATUS3_SEMI_INVULNERABLE) + && GetBattlerAbility(BATTLE_PARTNER(gBattlerTarget)) != ABILITY_MAGIC_GUARD) { - gBattleScripting.savedBattler = BATTLE_PARTNER(gBattlerTarget); - gBattleMoveDamage = gBattleMons[BATTLE_PARTNER(gBattlerTarget)].maxHP / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + i = BATTLE_PARTNER(gBattlerTarget); + gBattleScripting.savedBattler = i; + gBattleStruct->moveDamage[i] = gBattleMons[i].maxHP / 16; + if (gBattleStruct->moveDamage[i] == 0) + gBattleStruct->moveDamage[i] = 1; gBattlescriptCurrInstr = BattleScript_MoveEffectFlameBurst; } break; @@ -3975,11 +4260,12 @@ void SetMoveEffect(bool32 primary, bool32 certain) static bool32 CanApplyAdditionalEffect(const struct AdditionalEffect *additionalEffect) { + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + // Self-targeting move effects only apply after the last mon has been hit - u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); if (additionalEffect->self - && (moveTarget == MOVE_TARGET_BOTH || moveTarget == MOVE_TARGET_FOES_AND_ALLY) - && GetNextTarget(moveTarget, TRUE) != MAX_BATTLERS_COUNT) + && IsSpreadMove(moveTarget) + && GetNextTarget(moveTarget, TRUE) != MAX_BATTLERS_COUNT) return FALSE; // Certain move effects only apply if the target raised stats this turn (e.g. Burning Jealousy) @@ -3997,7 +4283,7 @@ static void Cmd_setadditionaleffects(void) { CMD_ARGS(); - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (MoveResultHasEffect(gBattlerTarget)) { if (gMovesInfo[gCurrentMove].numAdditionalEffects > gBattleStruct->additionalEffectsCounter) { @@ -4103,6 +4389,15 @@ static void Cmd_tryfaintmon(void) } else { + if (gBattleMons[battler].ability == ABILITY_NEUTRALIZING_GAS + && !(gAbsentBattlerFlags & (1u << battler)) + && !IsBattlerAlive(battler)) + { + gBattleMons[battler].ability = ABILITY_NONE; + BattleScriptPush(gBattlescriptCurrInstr); + gBattlescriptCurrInstr = BattleScript_NeutralizingGasExits; + return; + } if (cmd->battler == BS_ATTACKER) { destinyBondBattler = gBattlerTarget; @@ -4139,7 +4434,7 @@ static void Cmd_tryfaintmon(void) { gHitMarker &= ~HITMARKER_DESTINYBOND; BattleScriptPush(gBattlescriptCurrInstr); - gBattleMoveDamage = gBattleMons[destinyBondBattler].hp; + gBattleStruct->moveDamage[destinyBondBattler] = gBattleMons[destinyBondBattler].hp; gBattlescriptCurrInstr = BattleScript_DestinyBondTakesLife; } if ((gStatuses3[gBattlerTarget] & STATUS3_GRUDGE) @@ -4158,6 +4453,8 @@ static void Cmd_tryfaintmon(void) PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleMons[gBattlerAttacker].moves[moveIndex]) } + + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); } else { @@ -4505,13 +4802,13 @@ static void Cmd_getexp(void) || GetMonData(&gPlayerParty[*expMonId], MON_DATA_SPECIES_OR_EGG) == SPECIES_EGG) { gBattleScripting.getexpState = 5; - gBattleMoveDamage = 0; // used for exp + gBattleStruct->battlerExpReward = 0; } else if ((gBattleTypeFlags & BATTLE_TYPE_INGAME_PARTNER && *expMonId >= 3) || GetMonData(&gPlayerParty[*expMonId], MON_DATA_LEVEL) == MAX_LEVEL) { gBattleScripting.getexpState = 5; - gBattleMoveDamage = 0; // used for exp + gBattleStruct->battlerExpReward = 0; if (B_MAX_LEVEL_EV_GAINS >= GEN_5) MonGainEVs(&gPlayerParty[*expMonId], gBattleMons[gBattlerFainted].species); } @@ -4532,28 +4829,28 @@ static void Cmd_getexp(void) if (IsValidForBattle(&gPlayerParty[*expMonId])) { if (wasSentOut) - gBattleMoveDamage = GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expValue); + gBattleStruct->battlerExpReward = GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expValue); else - gBattleMoveDamage = 0; + gBattleStruct->battlerExpReward = 0; if ((holdEffect == HOLD_EFFECT_EXP_SHARE || IsGen6ExpShareEnabled()) - && (B_SPLIT_EXP < GEN_6 || gBattleMoveDamage == 0)) // only give exp share bonus in later gens if the mon wasn't sent out + && (B_SPLIT_EXP < GEN_6 || gBattleStruct->battlerExpReward == 0)) // only give exp share bonus in later gens if the mon wasn't sent out { - gBattleMoveDamage += GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expShareExpValue);; + gBattleStruct->battlerExpReward += GetSoftLevelCapExpValue(gPlayerParty[*expMonId].level, gBattleStruct->expShareExpValue);; } - ApplyExperienceMultipliers(&gBattleMoveDamage, *expMonId, gBattlerFainted); + ApplyExperienceMultipliers(&gBattleStruct->battlerExpReward, *expMonId, gBattlerFainted); - if (B_EXP_CAP_TYPE == EXP_CAP_HARD && gBattleMoveDamage != 0) + if (B_EXP_CAP_TYPE == EXP_CAP_HARD && gBattleStruct->battlerExpReward != 0) { u32 growthRate = gSpeciesInfo[GetMonData(&gPlayerParty[*expMonId], MON_DATA_SPECIES)].growthRate; u32 currentExp = GetMonData(&gPlayerParty[*expMonId], MON_DATA_EXP); u32 levelCap = GetCurrentLevelCap(); if (GetMonData(&gPlayerParty[*expMonId], MON_DATA_LEVEL) >= levelCap) - gBattleMoveDamage = 0; - else if (gExperienceTables[growthRate][levelCap] < currentExp + gBattleMoveDamage) - gBattleMoveDamage = gExperienceTables[growthRate][levelCap] - currentExp; + gBattleStruct->battlerExpReward = 0; + else if (gExperienceTables[growthRate][levelCap] < currentExp + gBattleStruct->battlerExpReward) + gBattleStruct->battlerExpReward = gExperienceTables[growthRate][levelCap] - currentExp; } if (IsTradedMon(&gPlayerParty[*expMonId])) @@ -4590,7 +4887,7 @@ static void Cmd_getexp(void) PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, gBattleStruct->expGetterBattlerId, *expMonId); // buffer 'gained' or 'gained a boosted' PREPARE_STRING_BUFFER(gBattleTextBuff2, i); - PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 6, gBattleMoveDamage); + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 6, gBattleStruct->battlerExpReward); if (wasSentOut || holdEffect == HOLD_EFFECT_EXP_SHARE) { @@ -4622,7 +4919,7 @@ static void Cmd_getexp(void) gBattleResources->beforeLvlUp->stats[STAT_SPATK] = GetMonData(&gPlayerParty[*expMonId], MON_DATA_SPATK); gBattleResources->beforeLvlUp->stats[STAT_SPDEF] = GetMonData(&gPlayerParty[*expMonId], MON_DATA_SPDEF); - BtlController_EmitExpUpdate(gBattleStruct->expGetterBattlerId, BUFFER_A, *expMonId, gBattleMoveDamage); + BtlController_EmitExpUpdate(gBattleStruct->expGetterBattlerId, BUFFER_A, *expMonId, gBattleStruct->battlerExpReward); MarkBattlerForControllerExec(gBattleStruct->expGetterBattlerId); } gBattleScripting.getexpState++; @@ -4644,7 +4941,7 @@ static void Cmd_getexp(void) BattleScriptPushCursor(); gLeveledUpInBattle |= 1 << *expMonId; gBattlescriptCurrInstr = BattleScript_LevelUp; - gBattleMoveDamage = T1_READ_32(&gBattleResources->bufferB[expBattler][2]); + gBattleStruct->battlerExpReward = T1_READ_32(&gBattleResources->bufferB[expBattler][2]); AdjustFriendship(&gPlayerParty[*expMonId], FRIENDSHIP_EVENT_GROW_LEVEL); // update battle mon structure after level up @@ -4664,13 +4961,13 @@ static void Cmd_getexp(void) } else { - gBattleMoveDamage = 0; + gBattleStruct->battlerExpReward = 0; gBattleScripting.getexpState = 5; } } break; case 5: // looper increment - if (gBattleMoveDamage) // there is exp to give, goto case 3 that gives exp + if (gBattleStruct->battlerExpReward) // there is exp to give, goto case 3 that gives exp { gBattleScripting.getexpState = 3; } @@ -4808,8 +5105,6 @@ static void Cmd_checkteamslost(void) static void MoveValuesCleanUp(void) { - gMoveResultFlags = 0; - gIsCriticalHit = FALSE; gBattleScripting.moveEffect = 0; gBattleCommunication[MISS_TYPE] = 0; if (!gMultiHitCounter) @@ -5162,18 +5457,20 @@ static void Cmd_waitstate(void) gBattlescriptCurrInstr = cmd->nextInstr; } -static void Cmd_healthbar_update(void) +static void Cmd_absorb(void) { CMD_ARGS(u8 battler); - u32 battler; - if (cmd->battler == BS_TARGET) - battler = gBattlerTarget; - else - battler = gBattlerAttacker; + if (gBattleControllerExecFlags) + return; - BtlController_EmitHealthBarUpdate(battler, BUFFER_A, gBattleMoveDamage); + u32 battler = GetBattlerForBattleScript(cmd->battler); + BtlController_EmitHealthBarUpdate(battler, BUFFER_A, gBattleStruct->moveDamage[battler]); MarkBattlerForControllerExec(battler); + + if (GetBattlerSide(battler) == B_SIDE_PLAYER && gBattleStruct->moveDamage[battler] > 0) + gBattleResults.playerMonWasDamaged = TRUE; + gBattlescriptCurrInstr = cmd->nextInstr; } @@ -5189,7 +5486,6 @@ static void Cmd_end(void) if (gBattleTypeFlags & BATTLE_TYPE_ARENA) BattleArena_AddSkillPoints(gBattlerAttacker); - gMoveResultFlags = 0; gCurrentActionFuncId = B_ACTION_TRY_FINISH; } @@ -5580,9 +5876,9 @@ static void Cmd_moveend(void) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE; - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SPIKY_SHIELD); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_SpikyShieldEffect; @@ -5645,7 +5941,7 @@ static void Cmd_moveend(void) // Not strictly a protect effect, but works the same way else if (gProtectStructs[gBattlerTarget].beakBlastCharge && CanBeBurned(gBattlerAttacker, GetBattlerAbility(gBattlerAttacker)) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && MoveResultHasEffect(gBattlerTarget)) { gProtectStructs[gBattlerAttacker].touchedProtectLike = FALSE; gBattleMons[gBattlerAttacker].status1 = STATUS1_BURN; @@ -5658,12 +5954,44 @@ static void Cmd_moveend(void) } gBattleScripting.moveendState++; break; + case MOVEEND_ABSORB: + if (gMovesInfo[gCurrentMove].effect == EFFECT_ABSORB) + { + if (gStatuses3[gBattlerAttacker] & STATUS3_HEAL_BLOCK && gMovesInfo[gCurrentMove].healingMove) + { + gBattleScripting.moveendState++; + break; + } + else if (IsBattlerAlive(gBattlerAttacker) && MoveResultHasEffect(gBattlerTarget)) + { + gBattleStruct->moveDamage[gBattlerAttacker] = max(1, (gBattleStruct->moveDamage[gBattlerTarget] * gMovesInfo[gCurrentMove].argument / 100)); + gBattleStruct->moveDamage[gBattlerAttacker] = GetDrainedBigRootHp(gBattlerAttacker, gBattleStruct->moveDamage[gBattlerAttacker]); + gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_IGNORE_DISGUISE; + effect = TRUE; + if (GetBattlerAbility(gBattlerTarget) == ABILITY_LIQUID_OOZE) + { + gBattleStruct->moveDamage[gBattlerAttacker] *= -1; + gHitMarker |= HITMARKER_PASSIVE_DAMAGE; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABSORB_OOZE; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_EffectAbsorbLiquidOoze; + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_ABSORB; + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_EffectAbsorb; + } + } + } + gBattleScripting.moveendState++; + break; case MOVEEND_RAGE: // rage check if (gBattleMons[gBattlerTarget].status2 & STATUS2_RAGE && IsBattlerAlive(gBattlerTarget) && gBattlerAttacker != gBattlerTarget && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) && TARGET_TURN_DAMAGED && gMovesInfo[gCurrentMove].power != 0 && CompareStat(gBattlerTarget, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN)) @@ -5680,7 +6008,7 @@ static void Cmd_moveend(void) && IsBattlerAlive(gBattlerTarget) && gBattlerAttacker != gBattlerTarget && (moveType == TYPE_FIRE || CanBurnHitThaw(gCurrentMove)) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && MoveResultHasEffect(gBattlerTarget)) { gBattleMons[gBattlerTarget].status1 &= ~STATUS1_FREEZE; BtlController_EmitSetMonData(gBattlerTarget, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1); @@ -5693,7 +6021,7 @@ static void Cmd_moveend(void) && IsBattlerAlive(gBattlerTarget) && gBattlerAttacker != gBattlerTarget && gMovesInfo[originallyUsedMove].thawsUser - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && MoveResultHasEffect(gBattlerTarget)) { gBattleMons[gBattlerTarget].status1 &= ~STATUS1_FROSTBITE; BtlController_EmitSetMonData(gBattlerTarget, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerTarget].status1), &gBattleMons[gBattlerTarget].status1); @@ -5711,18 +6039,18 @@ static void Cmd_moveend(void) break; } else if (gMovesInfo[gCurrentMove].recoil > 0 - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && gBattleScripting.savedDmg != 0) // Some checks may be redundant alongside this one { - gBattleMoveDamage = max(1, gBattleScripting.savedDmg * max(1, gMovesInfo[gCurrentMove].recoil) / 100); + gBattleStruct->moveDamage[gBattlerAttacker] = max(1, gBattleScripting.savedDmg * max(1, gMovesInfo[gCurrentMove].recoil) / 100); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MoveEffectRecoil; effect = TRUE; } else if (gMovesInfo[gCurrentMove].effect == EFFECT_EXPLOSION && !IsAbilityOnField(ABILITY_DAMP)) { - gBattleMoveDamage = 0; + gBattleStruct->moveDamage[gBattlerAttacker] = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_FaintAttackerForExplosion; effect = TRUE; @@ -5730,10 +6058,10 @@ static void Cmd_moveend(void) else if ((gMovesInfo[gCurrentMove].effect == EFFECT_MAX_HP_50_RECOIL || gMovesInfo[gCurrentMove].effect == EFFECT_MIND_BLOWN) && IsBattlerAlive(gBattlerAttacker) - && !(gMoveResultFlags & MOVE_RESULT_FAILED) + && !(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FAILED) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = (GetNonDynamaxMaxHP(gBattlerAttacker) + 1) / 2; // Half of Max HP Rounded UP + gBattleStruct->moveDamage[gBattlerAttacker] = (GetNonDynamaxMaxHP(gBattlerAttacker) + 1) / 2; // Half of Max HP Rounded UP BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MaxHp50Recoil; effect = TRUE; @@ -5787,7 +6115,7 @@ static void Cmd_moveend(void) { if ((gMovesInfo[gChosenMove].effect == EFFECT_BATON_PASS || gMovesInfo[gChosenMove].effect == EFFECT_HEALING_WISH) - && !(gMoveResultFlags & MOVE_RESULT_FAILED)) + && !(gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_FAILED)) { gBattleScripting.moveendState++; break; @@ -5864,12 +6192,14 @@ static void Cmd_moveend(void) MarkBattlerForControllerExec(gBattlerTarget); effect = TRUE; BattleScriptPush(gBattlescriptCurrInstr); + switch (gMovesInfo[gCurrentMove].argument) { case STATUS1_PARALYSIS: gBattlescriptCurrInstr = BattleScript_TargetPRLZHeal; break; case STATUS1_SLEEP: + TryDeactivateSleepClause(GetBattlerSide(gBattlerTarget), gBattlerPartyIndexes[gBattlerTarget]); gBattlescriptCurrInstr = BattleScript_TargetWokeUp; break; case STATUS1_BURN: @@ -5918,7 +6248,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_ATTACKER_VISIBLE: // make attacker sprite visible - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT + if (!MoveResultHasEffect(gBattlerTarget) || !(gStatuses3[gBattlerAttacker] & (STATUS3_SEMI_INVULNERABLE)) || WasUnableToUseMove(gBattlerAttacker)) { @@ -5946,7 +6276,7 @@ static void Cmd_moveend(void) case MOVEEND_NUM_HITS: if (gBattlerAttacker != gBattlerTarget && gMovesInfo[gCurrentMove].category != DAMAGE_CATEGORY_STATUS - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) && TARGET_TURN_DAMAGED) { gBattleStruct->timesGotHit[GetBattlerSide(gBattlerTarget)][gBattlerPartyIndexes[gBattlerTarget]]++; @@ -5989,7 +6319,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_UPDATE_LAST_MOVES: - if ((gMoveResultFlags & (MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE)) + if ((gBattleStruct->moveResultFlags[gBattlerTarget] & (MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE)) || (gBattleMons[gBattlerAttacker].status2 & (STATUS2_FLINCHED)) || gProtectStructs[gBattlerAttacker].prlzImmobility) gBattleStruct->lastMoveFailed |= 1u << gBattlerAttacker; @@ -6055,7 +6385,7 @@ static void Cmd_moveend(void) if (!(gHitMarker & HITMARKER_FAINTED(gBattlerTarget))) gLastHitBy[gBattlerTarget] = gBattlerAttacker; - if (gHitMarker & HITMARKER_OBEYS && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (gHitMarker & HITMARKER_OBEYS && MoveResultHasEffect(gBattlerTarget)) { if (gChosenMove == MOVE_UNAVAILABLE) { @@ -6081,7 +6411,7 @@ static void Cmd_moveend(void) && gHitMarker & HITMARKER_OBEYS && gBattlerAttacker != gBattlerTarget && !(gHitMarker & HITMARKER_FAINTED(gBattlerTarget)) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && MoveResultHasEffect(gBattlerTarget)) { gBattleStruct->lastTakenMove[gBattlerTarget] = gChosenMove; gBattleStruct->lastTakenMoveFrom[gBattlerTarget][gBattlerAttacker] = gChosenMove; @@ -6093,7 +6423,7 @@ static void Cmd_moveend(void) u16 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); // Set a flag if move hits either target (for throat spray that can't check damage) if (!(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + && MoveResultHasEffect(gBattlerTarget)) gProtectStructs[gBattlerAttacker].targetAffected = TRUE; gBattleStruct->targetsDone[gBattlerAttacker] |= 1u << gBattlerTarget; @@ -6154,10 +6484,10 @@ static void Cmd_moveend(void) } case MOVEEND_MULTIHIT_MOVE: { - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && !(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) - && gMultiHitCounter - && !(gMovesInfo[gCurrentMove].effect == EFFECT_PRESENT && gBattleStruct->presentBasePower == 0)) // Silly edge case + if (MoveResultHasEffect(gBattlerTarget) + && !(gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) + && gMultiHitCounter + && !(gMovesInfo[gCurrentMove].effect == EFFECT_PRESENT && gBattleStruct->presentBasePower == 0)) // Silly edge case { gMultiHitCounter--; if (!IsBattlerAlive(gBattlerTarget) && gMovesInfo[gCurrentMove].effect != EFFECT_DRAGON_DARTS) @@ -6233,7 +6563,7 @@ static void Cmd_moveend(void) && !gSpecialStatuses[gBattlerAttacker].gemBoost // In base game, gems are consumed after magician would activate. && !(gWishFutureKnock.knockedOffMons[GetBattlerSide(gBattlerTarget)] & (1u << gBattlerPartyIndexes[gBattlerTarget])) && !DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) && (GetBattlerAbility(gBattlerTarget) != ABILITY_STICKY_HOLD || !IsBattlerAlive(gBattlerTarget))) { StealTargetItem(gBattlerAttacker, gBattlerTarget); @@ -6307,11 +6637,19 @@ static void Cmd_moveend(void) } else // Eject Pack { - gBattlescriptCurrInstr = BattleScript_EjectPackActivates; - AI_DATA->ejectPackSwitch = TRUE; - // Are these 2 lines below needed? - gProtectStructs[battler].statFell = FALSE; - gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage = TRUE; + if (gBattleResources->flags->flags[gBattlerTarget] & RESOURCE_FLAG_EMERGENCY_EXIT) + { + gBattlescriptCurrInstr = BattleScript_EjectPackMissesTiming; + gProtectStructs[battler].statFell = FALSE; + } + else + { + gBattlescriptCurrInstr = BattleScript_EjectPackActivates; + AI_DATA->ejectPackSwitch = TRUE; + // Are these 2 lines below needed? + gProtectStructs[battler].statFell = FALSE; + gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage = TRUE; + } } break; // Only the fastest Eject item activates } @@ -6368,6 +6706,7 @@ static void Cmd_moveend(void) SaveBattlerTarget(battler); // save battler with red card gBattleScripting.battler = battler; gEffectBattler = gBattlerAttacker; + gBattleStruct->redCardActivates = TRUE; if (gMovesInfo[gCurrentMove].effect == EFFECT_HIT_ESCAPE) gBattlescriptCurrInstr = BattleScript_MoveEnd; // Prevent user switch-in selection BattleScriptPushCursor(); @@ -6399,7 +6738,7 @@ static void Cmd_moveend(void) && !(gWishFutureKnock.knockedOffMons[GetBattlerSide(gBattlerAttacker)] & (1u << gBattlerPartyIndexes[gBattlerAttacker])) // But not knocked off && !(TestIfSheerForceAffected(gBattlerAttacker, gCurrentMove)) // Pickpocket doesn't activate for sheer force && IsMoveMakingContact(gCurrentMove, gBattlerAttacker) // Pickpocket requires contact - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) // Obviously attack needs to have worked + && MoveResultHasEffect(gBattlerTarget)) // Obviously attack needs to have worked { u8 battlers[4] = {0, 1, 2, 3}; SortBattlersBySpeed(battlers, FALSE); // Pickpocket activates for fastest mon without item @@ -6446,7 +6785,7 @@ static void Cmd_moveend(void) } } - if (!(gMoveResultFlags & (MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE) + if (!(gBattleStruct->moveResultFlags[gBattlerTarget] & (MOVE_RESULT_FAILED | MOVE_RESULT_DOESNT_AFFECT_FOE) || (gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE && !hasDancerTriggered) || (!gSpecialStatuses[gBattlerAttacker].dancerUsedMove && gBattleStruct->bouncedMoveIsUsed))) { // Dance move succeeds @@ -6467,6 +6806,8 @@ static void Cmd_moveend(void) } if (nextDancer && AbilityBattleEffects(ABILITYEFFECT_MOVE_END_OTHER, nextDancer & 0x3, 0, 0, 0)) effect = TRUE; + + ClearDamageCalcResults(); } } gBattleScripting.moveendState++; @@ -6474,6 +6815,11 @@ static void Cmd_moveend(void) case MOVEEND_EMERGENCY_EXIT: // Special case, because moves hitting multiple opponents stop after switching out for (i = 0; i < gBattlersCount; i++) { + if (gBattleStruct->redCardActivates) + { + gBattleResources->flags->flags[i] &= ~RESOURCE_FLAG_EMERGENCY_EXIT; + continue; + } if (gBattleResources->flags->flags[i] & RESOURCE_FLAG_EMERGENCY_EXIT) { gBattleResources->flags->flags[i] &= ~RESOURCE_FLAG_EMERGENCY_EXIT; @@ -6518,7 +6864,7 @@ static void Cmd_moveend(void) gBattleScripting.moveendState++; break; case MOVEEND_SAME_MOVE_TURNS: - if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (gCurrentMove != gLastResultingMoves[gBattlerAttacker] || gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NO_EFFECT) gBattleStruct->sameMoveTurns[gBattlerAttacker] = 0; else if (gCurrentMove == gLastResultingMoves[gBattlerAttacker] && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT) gBattleStruct->sameMoveTurns[gBattlerAttacker]++; @@ -6538,7 +6884,7 @@ static void Cmd_moveend(void) if (B_RAMPAGE_CANCELLING >= GEN_5 && MoveHasAdditionalEffectSelf(gCurrentMove, MOVE_EFFECT_THRASH) // If we're rampaging - && (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) // And it is unusable + && !MoveResultHasEffect(gBattlerTarget) // And it is unusable && (gBattleMons[gBattlerAttacker].status2 & STATUS2_LOCK_CONFUSE) != STATUS2_LOCK_CONFUSE_TURN(1)) // And won't end this turn CancelMultiTurnMoves(gBattlerAttacker); // Cancel it @@ -6567,6 +6913,7 @@ static void Cmd_moveend(void) gSpecialStatuses[gBattlerAttacker].damagedMons = 0; gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage = 0; gSpecialStatuses[gBattlerTarget].berryReduced = FALSE; + gSpecialStatuses[gBattlerTarget].distortedTypeMatchups = FALSE; gBattleScripting.moveEffect = 0; gBattleStruct->hitSwitchTargetFailed = FALSE; gBattleStruct->isAtkCancelerForCalledMove = FALSE; @@ -6578,7 +6925,7 @@ static void Cmd_moveend(void) gBattleStruct->additionalEffectsCounter = 0; gBattleStruct->poisonPuppeteerConfusion = FALSE; gBattleStruct->fickleBeamBoosted = FALSE; - gBattleStruct->distortedTypeMatchups = 0; + gBattleStruct->redCardActivates = FALSE; gBattleStruct->usedMicleBerry &= ~(1u << gBattlerAttacker); if (gHitMarker & HITMARKER_UNABLE_TO_USE_MOVE) gBattleStruct->pledgeMove = FALSE; @@ -6587,6 +6934,7 @@ static void Cmd_moveend(void) if (B_CHARGE <= GEN_8 || moveType == TYPE_ELECTRIC) gStatuses3[gBattlerAttacker] &= ~(STATUS3_CHARGED_UP); memset(gQueuedStatBoosts, 0, sizeof(gQueuedStatBoosts)); + ClearDamageCalcResults(); for (i = 0; i < gBattlersCount; i++) { @@ -6997,126 +7345,53 @@ static void Cmd_openpartyscreen(void) } else if (IsDoubleBattle()) { - bool8 hasReplacement_0, hasReplacement_1, hasReplacement_2, hasReplacement_3; + bool32 hasReplacement; hitmarkerFaintBits = gHitMarker >> 28; + for (i = 0; i < gBattlersCount; i++) + { + if (((1u << i) & hitmarkerFaintBits)) + { + if (i > 1 && ((1u << BATTLE_PARTNER(i)) & hitmarkerFaintBits)) + continue; - if (1u & hitmarkerFaintBits) - { - battler = 0; - if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) - { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[2]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; - } - else - { - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); - flags |= 1; - } - } - if (4u & hitmarkerFaintBits && !(1u & hitmarkerFaintBits)) - { - battler = 2; - if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) - { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[0]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; - } - else if (!(flags & 1)) - { - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); - } - } - if (2 & hitmarkerFaintBits) - { - battler = 1; - if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) - { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[3]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; - } - else - { - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); - flags |= 2; - } - } - if (8 & hitmarkerFaintBits && !(2 & hitmarkerFaintBits)) - { - battler = 3; - if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) - { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[1]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; - } - else if (!(flags & 2)) - { - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); + battler = i; + if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) + { + gAbsentBattlerFlags |= 1u << battler; + gHitMarker &= ~HITMARKER_FAINTED(battler); + BtlController_EmitCantSwitch(battler, BUFFER_A); + MarkBattlerForControllerExec(battler); + } + else if (!gSpecialStatuses[battler].faintedHasReplacement) + { + ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[BATTLE_PARTNER(battler)]); + gSpecialStatuses[battler].faintedHasReplacement = TRUE; + } + else if (battler < 2 || (battler > 1 && !(flags & BATTLE_PARTNER(battler)))) + { + BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); + MarkBattlerForControllerExec(battler); + flags |= battler; + } } } - hasReplacement_0 = gSpecialStatuses[0].faintedHasReplacement; - if (!hasReplacement_0) + for (i = 0; i < NUM_BATTLE_SIDES; i++) { - hasReplacement_2 = gSpecialStatuses[2].faintedHasReplacement; - if (!hasReplacement_2 && hitmarkerFaintBits != 0) + if (!(gSpecialStatuses[i].faintedHasReplacement)) { - if (gAbsentBattlerFlags & 1) - battler = 2; - else - battler = 0; + hasReplacement = gSpecialStatuses[BATTLE_PARTNER(i)].faintedHasReplacement; + if (!hasReplacement && hitmarkerFaintBits != 0) + { + if (gAbsentBattlerFlags & (1 << i)) + battler = BATTLE_PARTNER(i); + else + battler = i; - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); - } - - } - hasReplacement_1 = gSpecialStatuses[1].faintedHasReplacement; - if (!hasReplacement_1) - { - hasReplacement_3 = gSpecialStatuses[3].faintedHasReplacement; - if (!hasReplacement_3 && hitmarkerFaintBits != 0) - { - if (gAbsentBattlerFlags & 2) - battler = 3; - else - battler = 1; - - BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); - MarkBattlerForControllerExec(battler); + BtlController_EmitLinkStandbyMsg(battler, BUFFER_A, LINK_STANDBY_MSG_ONLY, FALSE); + MarkBattlerForControllerExec(battler); + } } } } @@ -7129,36 +7404,23 @@ static void Cmd_openpartyscreen(void) if (IsDoubleBattle()) { hitmarkerFaintBits = gHitMarker >> 28; - if (4 & hitmarkerFaintBits && 1 & hitmarkerFaintBits) + for (i = 0; i < NUM_BATTLE_SIDES; i++) { - battler = 2; - if (HasNoMonsToSwitch(battler, gBattleResources->bufferB[0][1], PARTY_SIZE)) + if ((1 << BATTLE_PARTNER(i)) & hitmarkerFaintBits && (1 << i) & hitmarkerFaintBits) { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[0]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; - } - } - if (8u & hitmarkerFaintBits && hitmarkerFaintBits & 2u) - { - battler = 3; - if (HasNoMonsToSwitch(battler, gBattleResources->bufferB[1][1], PARTY_SIZE)) - { - gAbsentBattlerFlags |= 1u << battler; - gHitMarker &= ~HITMARKER_FAINTED(battler); - BtlController_EmitCantSwitch(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - } - else if (!gSpecialStatuses[battler].faintedHasReplacement) - { - ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[1]); - gSpecialStatuses[battler].faintedHasReplacement = TRUE; + battler = BATTLE_PARTNER(i); + if (HasNoMonsToSwitch(battler, PARTY_SIZE, PARTY_SIZE)) + { + gAbsentBattlerFlags |= (1u << battler); + gHitMarker &= ~(HITMARKER_FAINTED(battler)); + BtlController_EmitCantSwitch(battler, BUFFER_A); + MarkBattlerForControllerExec(battler); + } + else if (!gSpecialStatuses[battler].faintedHasReplacement) + { + ChooseMonToSendOut(battler, gBattleStruct->monToSwitchIntoId[i]); + gSpecialStatuses[battler].faintedHasReplacement = TRUE; + } } } gBattlescriptCurrInstr = cmd->nextInstr; @@ -7387,9 +7649,9 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler) && IsBattlerGrounded(battler)) { u8 spikesDmg = (5 - gSideTimers[GetBattlerSide(battler)].spikesAmount) * 2; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (spikesDmg); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (spikesDmg); + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; gDisableStructs[battler].spikesDone = TRUE; SetDmgHazardsBattlescript(battler, B_MSG_PKMNHURTBYSPIKES); @@ -7400,9 +7662,9 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler) && GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD) { gDisableStructs[battler].stealthRockDone = TRUE; - gBattleMoveDamage = GetStealthHazardDamage(gMovesInfo[MOVE_STEALTH_ROCK].type, battler); + gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(gMovesInfo[MOVE_STEALTH_ROCK].type, battler); - if (gBattleMoveDamage != 0) + if (gBattleStruct->moveDamage[battler] != 0) SetDmgHazardsBattlescript(battler, B_MSG_STEALTHROCKDMG); } else if (!(gDisableStructs[battler].toxicSpikesDone) @@ -7459,15 +7721,15 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler) && GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD) { gDisableStructs[battler].steelSurgeDone = TRUE; - gBattleMoveDamage = GetStealthHazardDamage(gMovesInfo[MOVE_G_MAX_STEELSURGE].type, battler); + gBattleStruct->moveDamage[battler] = GetStealthHazardDamage(gMovesInfo[MOVE_G_MAX_STEELSURGE].type, battler); - if (gBattleMoveDamage != 0) + if (gBattleStruct->moveDamage[battler] != 0) SetDmgHazardsBattlescript(battler, B_MSG_SHARPSTEELDMG); } else if (gBattleMons[battler].hp != gBattleMons[battler].maxHP && gBattleStruct->zmove.healReplacement) { gBattleStruct->zmove.healReplacement = FALSE; - gBattleMoveDamage = -1 * (gBattleMons[battler].maxHP); + gBattleStruct->moveDamage[battler] = -1 * (gBattleMons[battler].maxHP); gBattleScripting.battler = battler; BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_Z_HP_TRAP; @@ -7505,7 +7767,6 @@ static bool32 DoSwitchInEffectsForBattler(u32 battler) break; case ABILITY_FORECAST: case ABILITY_FLOWER_GIFT: - case ABILITY_ICE_FACE: case ABILITY_PROTOSYNTHESIS: if (AbilityBattleEffects(ABILITYEFFECT_ON_WEATHER, i, 0, 0, 0)) return TRUE; @@ -7869,21 +8130,41 @@ static void Cmd_hitanimation(void) { CMD_ARGS(u8 battler); - u32 battler = GetBattlerForBattleScript(cmd->battler); - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (!IsDoubleSpreadMove()) { - gBattlescriptCurrInstr = cmd->nextInstr; + u32 battler = GetBattlerForBattleScript(cmd->battler); + + if (MoveResultHasEffect(battler)) + { + if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) + || !(DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove)) + || gDisableStructs[battler].substituteHP == 0) + { + BtlController_EmitHitAnimation(battler, BUFFER_A); + MarkBattlerForControllerExec(battler); + } + } } - else if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) || !(DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove)) || gDisableStructs[battler].substituteHP == 0) + else if (!gBattleStruct->doneDoublesSpreadHit) { - BtlController_EmitHitAnimation(battler, BUFFER_A); - MarkBattlerForControllerExec(battler); - gBattlescriptCurrInstr = cmd->nextInstr; - } - else - { - gBattlescriptCurrInstr = cmd->nextInstr; + u32 battlerDef; + for (battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (gBattleStruct->moveResultFlags[battlerDef] & MOVE_RESULT_NO_EFFECT + || gBattleStruct->noResultString[battlerDef]) + continue; + + if (!(gHitMarker & HITMARKER_IGNORE_SUBSTITUTE) + || !(DoesSubstituteBlockMove(gBattlerAttacker, battlerDef, gCurrentMove)) + || gDisableStructs[battlerDef].substituteHP == 0) + { + BtlController_EmitHitAnimation(battlerDef, BUFFER_A); + MarkBattlerForControllerExec(battlerDef); + } + } } + + gBattlescriptCurrInstr = cmd->nextInstr; } static u32 GetTrainerMoneyToGive(u16 trainerId) @@ -7902,7 +8183,7 @@ static u32 GetTrainerMoneyToGive(u16 trainerId) if (party == NULL) return 20; lastMonLevel = party[GetTrainerPartySizeFromId(trainerId) - 1].lvl; - trainerMoney = gTrainerClasses[GetTrainerClassFromId(trainerId)].money; + trainerMoney = gTrainerClasses[GetTrainerClassFromId(trainerId)].money ?: 5; if (gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) moneyReward = 4 * lastMonLevel * gBattleStruct->moneyMultiplier * trainerMoney; @@ -8204,10 +8485,10 @@ static bool32 TryCheekPouch(u32 battler, u32 itemId) && gBattleStruct->ateBerry[GetBattlerSide(battler)] & (1u << gBattlerPartyIndexes[battler]) && !BATTLER_MAX_HP(battler)) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 3; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 3; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; gBattlerAbility = battler; BattleScriptPush(gBattlescriptCurrInstr + 2); gBattlescriptCurrInstr = BattleScript_CheekPouchActivates; @@ -8703,7 +8984,7 @@ static void Cmd_useitemonopponent(void) static bool32 HasAttackerFaintedTarget(void) { - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && gMovesInfo[gCurrentMove].power != 0 && (gLastHitBy[gBattlerTarget] == 0xFF || gLastHitBy[gBattlerTarget] == gBattlerAttacker) && gBattleStruct->moveTarget[gBattlerAttacker] == gBattlerTarget @@ -8718,7 +8999,7 @@ static bool32 HasAttackerFaintedTarget(void) bool32 CanPoisonType(u8 battlerAttacker, u8 battlerTarget) { return GetBattlerAbility(battlerAttacker) == ABILITY_CORROSION - || (!IS_BATTLER_OF_TYPE(battlerTarget, TYPE_STEEL) && !IS_BATTLER_OF_TYPE(battlerTarget, TYPE_POISON)); + || !IS_BATTLER_ANY_TYPE(battlerTarget, TYPE_POISON, TYPE_STEEL); } bool32 CanParalyzeType(u8 battlerAttacker, u8 battlerTarget) @@ -8788,6 +9069,7 @@ static void RemoveAllTerrains(void) break; } gFieldStatuses &= ~STATUS_FIELD_TERRAIN_ANY; // remove the terrain + TryToRevertMimicryAndFlags(); } #define DEFOG_CLEAR(status, structField, battlescript, move)\ @@ -8942,7 +9224,7 @@ u32 GetHighestStatId(u32 battler) } if (gBattleMons[battler].speed > highestStat) highestId = STAT_SPEED; - + return highestId; } @@ -9151,7 +9433,7 @@ static void Cmd_various(void) struct Pokemon *mon; s32 i; u8 data[10]; - u32 side, battler, bits; + u32 battler, bits; if (gBattleControllerExecFlags) return; @@ -9162,6 +9444,7 @@ static void Cmd_various(void) { // Roar will fail in a double wild battle when used by the player against one of the two alive wild mons. // Also when an opposing wild mon uses it againt its partner. + // Also when B_FLAG_NO_RUNNING is enabled. case VARIOUS_JUMP_IF_ROAR_FAILS: { VARIOUS_ARGS(const u8 *jumpInstr); @@ -9174,6 +9457,8 @@ static void Cmd_various(void) && GetBattlerSide(gBattlerAttacker) == B_SIDE_OPPONENT && GetBattlerSide(gBattlerTarget) == B_SIDE_OPPONENT) gBattlescriptCurrInstr = cmd->jumpInstr; + else if (FlagGet(B_FLAG_NO_RUNNING)) + gBattlescriptCurrInstr = cmd->jumpInstr; else gBattlescriptCurrInstr = cmd->nextInstr; return; @@ -9260,9 +9545,9 @@ static void Cmd_various(void) { VARIOUS_ARGS(u8 stat); i = cmd->stat; - gBattleMoveDamage = *(u16 *)(&gBattleMons[battler].attack) + (i - 1); - gBattleMoveDamage *= gStatStageRatios[gBattleMons[battler].statStages[i]][0]; - gBattleMoveDamage /= gStatStageRatios[gBattleMons[battler].statStages[i]][1]; + gBattleStruct->moveDamage[gBattlerAttacker] = *(u16 *)(&gBattleMons[battler].attack) + (i - 1); + gBattleStruct->moveDamage[gBattlerAttacker] *= gStatStageRatios[gBattleMons[battler].statStages[i]][0]; + gBattleStruct->moveDamage[gBattlerAttacker] /= gStatStageRatios[gBattleMons[battler].statStages[i]][1]; gBattlescriptCurrInstr = cmd->nextInstr; return; } @@ -9379,10 +9664,10 @@ static void Cmd_various(void) } else { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -9462,18 +9747,6 @@ static void Cmd_various(void) } break; } - case VARIOUS_SET_MAGIC_COAT_TARGET: - { - VARIOUS_ARGS(); - gBattleStruct->attackerBeforeBounce = battler; - gBattlerAttacker = gBattlerTarget; - side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); - if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove)) - gBattlerTarget = gSideTimers[side].followmeTarget; - else - gBattlerTarget = battler; - break; - } case VARIOUS_IS_RUNNING_IMPOSSIBLE: { VARIOUS_ARGS(); @@ -9937,6 +10210,7 @@ static void Cmd_various(void) if (gBattleMons[gBattlerTarget].ability == ABILITY_NEUTRALIZING_GAS) gSpecialStatuses[gBattlerTarget].neutralizingGasRemoved = TRUE; + gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = ABILITY_SIMPLE; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -10040,9 +10314,10 @@ static void Cmd_various(void) case VARIOUS_TRY_SOAK: { VARIOUS_ARGS(const u8 *failInstr); - if ((GetBattlerType(gBattlerTarget, 0, FALSE) == gMovesInfo[gCurrentMove].type - && GetBattlerType(gBattlerTarget, 1, FALSE) == gMovesInfo[gCurrentMove].type) - || GetActiveGimmick(gBattlerTarget) == GIMMICK_TERA) + u32 types[3]; + GetBattlerTypes(gBattlerTarget, FALSE, types); + if ((types[0] == gMovesInfo[gCurrentMove].type && types[1] == gMovesInfo[gCurrentMove].type) + || GetActiveGimmick(gBattlerTarget) == GIMMICK_TERA) { gBattlescriptCurrInstr = cmd->failInstr; } @@ -10094,27 +10369,9 @@ static void Cmd_various(void) case VARIOUS_SET_ARG_TO_BATTLE_DAMAGE: { VARIOUS_ARGS(); - gBattleMoveDamage = gMovesInfo[gCurrentMove].argument; + gBattleStruct->moveDamage[gBattlerTarget] = gMovesInfo[gCurrentMove].argument; break; } - case VARIOUS_TRY_HIT_SWITCH_TARGET: - { - VARIOUS_ARGS(const u8 *failInstr); - if (IsBattlerAlive(gBattlerAttacker) - && IsBattlerAlive(gBattlerTarget) - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && TARGET_TURN_DAMAGED - && GetBattlerAbility(gBattlerTarget) != ABILITY_GUARD_DOG) - { - gBattleScripting.switchCase = B_SWITCH_HIT; - gBattlescriptCurrInstr = cmd->nextInstr; - } - else - { - gBattlescriptCurrInstr = cmd->failInstr; - } - return; - } case VARIOUS_TRY_AUTOTOMIZE: { VARIOUS_ARGS(const u8 *failInstr); @@ -10207,7 +10464,7 @@ static void Cmd_various(void) } case VARIOUS_PSYCHO_SHIFT: { - VARIOUS_ARGS(const u8 *failInstr); + VARIOUS_ARGS(const u8 *failInstr, const u8 *sleepClauseFailInstr); u32 targetAbility = GetBattlerAbility(gBattlerTarget); // Psycho shift works if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_POISON) && CanBePoisoned(gBattlerAttacker, gBattlerTarget, targetAbility)) @@ -10218,10 +10475,15 @@ static void Cmd_various(void) gBattleCommunication[MULTISTRING_CHOOSER] = 2; else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_PARALYSIS) && CanBeParalyzed(gBattlerTarget, targetAbility)) gBattleCommunication[MULTISTRING_CHOOSER] = 3; - else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && CanBeSlept(gBattlerTarget, targetAbility)) + else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) && CanBeSlept(gBattlerTarget, targetAbility, BLOCKED_BY_SLEEP_CLAUSE)) gBattleCommunication[MULTISTRING_CHOOSER] = 4; else if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_FROSTBITE) && CanGetFrostbite(gBattlerTarget)) gBattleCommunication[MULTISTRING_CHOOSER] = 5; + else if (IsSleepClauseActiveForSide(GetBattlerSide(battler))) + { + gBattlescriptCurrInstr = cmd->sleepClauseFailInstr; + return; + } else { gBattlescriptCurrInstr = cmd->failInstr; @@ -10232,11 +10494,16 @@ static void Cmd_various(void) BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[battler].status1), &gBattleMons[battler].status1); MarkBattlerForControllerExec(battler); gBattlescriptCurrInstr = cmd->nextInstr; + TryActivateSleepClause(battler, gBattlerPartyIndexes[battler]); return; } case VARIOUS_CURE_STATUS: { VARIOUS_ARGS(); + + if (gBattleMons[battler].status1 & STATUS1_SLEEP) + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); + gBattleMons[battler].status1 = 0; BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[battler].status1), &gBattleMons[battler].status1); MarkBattlerForControllerExec(battler); @@ -10352,7 +10619,7 @@ static void Cmd_various(void) if (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_AURORA_VEIL || !(WEATHER_HAS_EFFECT && gBattleWeather & (B_WEATHER_HAIL | B_WEATHER_SNOW))) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = 0; } else @@ -10461,16 +10728,16 @@ static void Cmd_various(void) switch (GetBattlerHoldEffectParam(battler)) { case HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, item, FALSE); + effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, item, ITEMEFFECT_NONE); break; case HOLD_EFFECT_PARAM_GRASSY_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, item, FALSE); + effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, item, ITEMEFFECT_NONE); break; case HOLD_EFFECT_PARAM_MISTY_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, item, FALSE); + effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_NONE); break; case HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, item, FALSE); + effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, item, ITEMEFFECT_NONE); break; } @@ -10561,10 +10828,10 @@ static void Cmd_various(void) case VARIOUS_TRY_HEAL_QUARTER_HP: { VARIOUS_ARGS(const u8 *failInstr); - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 4; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; if (gBattleMons[battler].hp == gBattleMons[battler].maxHP) gBattlescriptCurrInstr = cmd->failInstr; // fail @@ -10572,12 +10839,6 @@ static void Cmd_various(void) gBattlescriptCurrInstr = cmd->nextInstr; // can heal return; } - case VARIOUS_REMOVE_TERRAIN: - { - VARIOUS_ARGS(); - RemoveAllTerrains(); - break; - } case VARIOUS_JUMP_IF_UNDER_200: { VARIOUS_ARGS(const u8 *jumpInstr); @@ -10854,7 +11115,7 @@ static void Cmd_various(void) } if (atLeastOneStatBoosted && gBattleMons[gBattlerAttacker].hp > hpFraction) { - gBattleMoveDamage = hpFraction; + gBattleStruct->moveDamage[gBattlerAttacker] = hpFraction; gBattlescriptCurrInstr = cmd->nextInstr; } else @@ -10895,17 +11156,6 @@ static void Cmd_various(void) } return; } - case VARIOUS_CAN_TAR_SHOT_WORK: - { - VARIOUS_ARGS(const u8 *failInstr); - // Tar Shot will fail if it's already been used on the target and its speed can't be lowered further - if (!gDisableStructs[battler].tarShot - && CompareStat(battler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN)) - gBattlescriptCurrInstr = cmd->nextInstr; - else - gBattlescriptCurrInstr = cmd->failInstr; - return; - } case VARIOUS_CURE_CERTAIN_STATUSES: { VARIOUS_ARGS(); @@ -10998,12 +11248,6 @@ static void Cmd_various(void) gBattleMons[battler].item = gLastUsedItem; break; } - case VARIOUS_SET_BEAK_BLAST: - { - VARIOUS_ARGS(); - gProtectStructs[battler].beakBlastCharge = TRUE; - break; - } case VARIOUS_SWAP_SIDE_STATUSES: { VARIOUS_ARGS(); @@ -11159,7 +11403,7 @@ static void Cmd_setprotectlike(void) { gDisableStructs[gBattlerAttacker].protectUses = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_PROTECT_FAILED; - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; } gBattlescriptCurrInstr = cmd->nextInstr; @@ -11172,7 +11416,7 @@ static void Cmd_tryexplosion(void) if (gBattleControllerExecFlags) return; - gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp; + gBattleStruct->moveDamage[gBattlerAttacker] = gBattleMons[gBattlerAttacker].hp; BtlController_EmitHealthBarUpdate(gBattlerAttacker, BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr = cmd->nextInstr; @@ -11221,10 +11465,10 @@ static void Cmd_tryhealhalfhealth(void) if (cmd->battler == BS_ATTACKER) gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerTarget) / 2; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxMaxHP(gBattlerTarget) / 2; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; + gBattleStruct->moveDamage[gBattlerTarget] *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = failInstr; @@ -11295,7 +11539,7 @@ static void Cmd_setfieldweather(void) if (!TryChangeBattleWeather(gBattlerAttacker, weather, FALSE)) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WEATHER_FAILED; gBattlescriptCurrInstr = cmd->nextInstr; return; @@ -11329,7 +11573,7 @@ static void Cmd_setreflect(void) if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_REFLECT) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else @@ -11353,14 +11597,14 @@ static void Cmd_setseeded(void) { CMD_ARGS(); - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) + if (gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_NO_EFFECT || gStatuses3[gBattlerTarget] & STATUS3_LEECHSEED) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_MISS; } else if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_GRASS)) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_FAIL; } else @@ -11373,6 +11617,7 @@ static void Cmd_setseeded(void) gBattlescriptCurrInstr = cmd->nextInstr; } +// TODO: Needs tests for everything static void Cmd_manipulatedamage(void) { CMD_ARGS(u8 mode); @@ -11380,44 +11625,44 @@ static void Cmd_manipulatedamage(void) switch (cmd->mode) { case DMG_CHANGE_SIGN: - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[gBattlerAttacker] *= -1; break; case DMG_RECOIL_FROM_MISS: if (B_RECOIL_IF_MISS_DMG >= GEN_5) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; } else if (B_RECOIL_IF_MISS_DMG == GEN_4) { - if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleMoveDamage) - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerTarget) / 2; + if ((gBattleMons[gBattlerTarget].maxHP / 2) < gBattleStruct->moveDamage[gBattlerTarget]) + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerTarget) / 2; } else { - gBattleMoveDamage /= 2; + gBattleStruct->moveDamage[gBattlerAttacker] = gBattleStruct->moveDamage[gBattlerTarget] /= 2; } - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; break; case DMG_DOUBLED: - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[gBattlerTarget] *= 2; break; case DMG_1_8_TARGET_HP: - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerTarget) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxMaxHP(gBattlerTarget) / 8; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; break; case DMG_FULL_ATTACKER_HP: - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker); - break; - case DMG_CURR_ATTACKER_HP: - gBattleMoveDamage = GetNonDynamaxHP(gBattlerAttacker); + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxMaxHP(gBattlerAttacker); break; case DMG_BIG_ROOT: - gBattleMoveDamage = GetDrainedBigRootHp(gBattlerAttacker, gBattleMoveDamage); + gBattleStruct->moveDamage[gBattlerAttacker] = GetDrainedBigRootHp(gBattlerAttacker, gBattleStruct->moveDamage[gBattlerAttacker]); + break; + case DMG_CURR_ATTACKER_HP: + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxHP(gBattlerAttacker); break; case DMG_RECOIL_FROM_IMMUNE: - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerTarget) / 2; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerTarget) / 2; break; } @@ -11430,7 +11675,7 @@ static void Cmd_trysetrest(void) const u8 *failInstr = cmd->failInstr; gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP * (-1); + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].maxHP * (-1); if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) { @@ -11488,10 +11733,11 @@ static void Cmd_setmiracleeye(void) bool8 UproarWakeUpCheck(u8 battler) { s32 i; + bool32 hasSoundproof = (B_UPROAR_IGNORE_SOUNDPROOF < GEN_5 && GetBattlerAbility(battler) == ABILITY_SOUNDPROOF); for (i = 0; i < gBattlersCount; i++) { - if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || (GetBattlerAbility(battler) == ABILITY_SOUNDPROOF && B_UPROAR_IGNORE_SOUNDPROOF < GEN_5)) + if (!(gBattleMons[i].status2 & STATUS2_UPROAR) || hasSoundproof) continue; gBattleScripting.battler = i; @@ -11531,7 +11777,7 @@ static void Cmd_stockpile(void) case 0: if (gDisableStructs[gBattlerAttacker].stockpileCounter >= 3) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CANT_STOCKPILE; } else @@ -11544,7 +11790,7 @@ static void Cmd_stockpile(void) } break; case 1: // Save def/sp def stats. - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (MoveResultHasEffect(gBattlerTarget)) { gDisableStructs[gBattlerAttacker].stockpileDef += gBattleMons[gBattlerAttacker].statStages[STAT_DEF] - gDisableStructs[gBattlerAttacker].stockpileBeforeDef; gDisableStructs[gBattlerAttacker].stockpileSpDef += gBattleMons[gBattlerAttacker].statStages[STAT_SPDEF] - gDisableStructs[gBattlerAttacker].stockpileBeforeSpDef; @@ -11601,19 +11847,19 @@ static void Cmd_stockpiletohpheal(void) { if (gDisableStructs[gBattlerAttacker].stockpileCounter > 0) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter)); + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / (1 << (3 - gDisableStructs[gBattlerAttacker].stockpileCounter)); gBattleScripting.animTurn = gDisableStructs[gBattlerAttacker].stockpileCounter; gBattleStruct->moveEffect2 = MOVE_EFFECT_STOCKPILE_WORE_OFF; } else // Snatched move { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; gBattleScripting.animTurn = 1; } - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; + gBattleStruct->moveDamage[gBattlerAttacker] *= -1; gBattlescriptCurrInstr = cmd->nextInstr; gBattlerTarget = gBattlerAttacker; @@ -11627,12 +11873,12 @@ static void Cmd_setdrainedhp(void) CMD_ARGS(); if (gMovesInfo[gCurrentMove].argument != 0) - gBattleMoveDamage = (gHpDealt * gMovesInfo[gCurrentMove].argument / 100); + gBattleStruct->moveDamage[gBattlerAttacker] = (gHpDealt * gMovesInfo[gCurrentMove].argument / 100); else - gBattleMoveDamage = (gHpDealt / 2); + gBattleStruct->moveDamage[gBattlerAttacker] = (gHpDealt / 2); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -11774,7 +12020,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr return STAT_CHANGE_DIDNT_WORK; } else if (gCurrentMove != MOVE_CURSE - && notProtectAffected != TRUE && JumpIfMoveAffectedByProtect(gCurrentMove)) + && notProtectAffected != TRUE && JumpIfMoveAffectedByProtect(gCurrentMove, gBattlerTarget, TRUE)) { gBattlescriptCurrInstr = BattleScript_ButItFailed; return STAT_CHANGE_DIDNT_WORK; @@ -11975,7 +12221,7 @@ static u32 ChangeStatBuffs(s8 statValue, u32 statId, u32 flags, const u8 *BS_ptr gBattleMons[battler].statStages[statId] = MAX_STAT_STAGE; if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && flags & STAT_CHANGE_ALLOW_PTR) - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; if (gBattleCommunication[MULTISTRING_CHOOSER] == B_MSG_STAT_WONT_INCREASE && !(flags & STAT_CHANGE_ALLOW_PTR)) return STAT_CHANGE_DIDNT_WORK; @@ -12051,33 +12297,8 @@ static void Cmd_twoturnmoveschargestringandanimation(void) gBattlescriptCurrInstr = cmd->nextInstr; } -static void Cmd_setmultihitcounter(void) +static void Cmd_unused_0x8d(void) { - CMD_ARGS(u8 value); - - if (cmd->value) - { - gMultiHitCounter = cmd->value; - } - else - { - if (GetBattlerAbility(gBattlerAttacker) == ABILITY_SKILL_LINK) - { - gMultiHitCounter = 5; - } - else - { - // WARNING: These seem to be unused, see SetRandomMultiHitCounter. - if (B_MULTI_HIT_CHANCE >= GEN_5) - // 35%: 2 hits, 35%: 3 hits, 15% 4 hits, 15% 5 hits. - gMultiHitCounter = RandomWeighted(RNG_HITS, 0, 0, 7, 7, 3, 3); - else - // 37.5%: 2 hits, 37.5%: 3 hits, 12.5% 4 hits, 12.5% 5 hits. - gMultiHitCounter = RandomWeighted(RNG_HITS, 0, 0, 3, 3, 1, 1); - } - } - - gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_initmultihitstring(void) @@ -12399,7 +12620,7 @@ static void Cmd_setlightscreen(void) if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_LIGHTSCREEN) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else @@ -12431,7 +12652,7 @@ static void Cmd_tryKO(void) // Dynamaxed Pokemon cannot be hit by OHKO moves. if ((GetActiveGimmick(gBattlerTarget) == GIMMICK_DYNAMAX)) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_UNAFFECTED; gBattlescriptCurrInstr = cmd->failInstr; return; @@ -12452,7 +12673,7 @@ static void Cmd_tryKO(void) if (targetAbility == ABILITY_STURDY) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gLastUsedAbility = ABILITY_STURDY; gBattlescriptCurrInstr = BattleScript_SturdyPreventsOHKO; gBattlerAbility = gBattlerTarget; @@ -12480,30 +12701,30 @@ static void Cmd_tryKO(void) { if (gProtectStructs[gBattlerTarget].endured) { - gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].hp - 1; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FOE_ENDURED; } else if (gSpecialStatuses[gBattlerTarget].focusBanded || gSpecialStatuses[gBattlerTarget].focusSashed) { - gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - gMoveResultFlags |= MOVE_RESULT_FOE_HUNG_ON; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].hp - 1; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FOE_HUNG_ON; gLastUsedItem = gBattleMons[gBattlerTarget].item; } else if (B_AFFECTION_MECHANICS == TRUE && gSpecialStatuses[gBattlerTarget].affectionEndured) { - gBattleMoveDamage = gBattleMons[gBattlerTarget].hp - 1; - gMoveResultFlags |= MOVE_RESULT_FOE_ENDURED_AFFECTION; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].hp - 1; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FOE_ENDURED_AFFECTION; } else { - gBattleMoveDamage = gBattleMons[gBattlerTarget].hp; - gMoveResultFlags |= MOVE_RESULT_ONE_HIT_KO; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerTarget].hp; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_ONE_HIT_KO; } gBattlescriptCurrInstr = cmd->nextInstr; } else { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; if (gBattleMons[gBattlerAttacker].level >= gBattleMons[gBattlerTarget].level) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_KO_MISS; else @@ -12518,15 +12739,18 @@ static void Cmd_damagetohalftargethp(void) { CMD_ARGS(); - gBattleMoveDamage = GetNonDynamaxHP(gBattlerTarget) / 2; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxHP(gBattlerTarget) / 2; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; gBattlescriptCurrInstr = cmd->nextInstr; } -static void Cmd_unused_95(void) +static void Cmd_copybidedmg(void) { + CMD_ARGS(); + gBattleStruct->moveDamage[gBattlerTarget] = gBideDmg[gBattlerAttacker] * 2; + gBattlescriptCurrInstr = cmd->nextInstr; } static void Cmd_unused_96(void) @@ -12612,7 +12836,7 @@ static void Cmd_setmist(void) if (gSideTimers[GetBattlerSide(gBattlerAttacker)].mistTimer) { - gMoveResultFlags |= MOVE_RESULT_FAILED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_MIST_FAILED; } else @@ -12633,7 +12857,7 @@ static void Cmd_setfocusenergy(void) if ((gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && (!(IsDoubleBattle()) || (gAbsentBattlerFlags & (1u << battler)))) || gBattleMons[battler].status2 & STATUS2_FOCUS_ENERGY_ANY) { - gMoveResultFlags |= MOVE_RESULT_FAILED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_FOCUS_ENERGY_FAILED; } else if (gMovesInfo[gCurrentMove].effect == EFFECT_DRAGON_CHEER && !IS_BATTLER_OF_TYPE(battler, TYPE_DRAGON)) @@ -12659,7 +12883,7 @@ static void Cmd_transformdataexecution(void) || gBattleStruct->illusion[gBattlerTarget].on || gStatuses3[gBattlerTarget] & STATUS3_SEMI_INVULNERABLE_NO_COMMANDER) { - gMoveResultFlags |= MOVE_RESULT_FAILED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_FAILED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TRANSFORM_FAILED; } else @@ -12723,18 +12947,18 @@ static void Cmd_setsubstitute(void) if (gBattleMons[gBattlerAttacker].hp <= hp) { - gBattleMoveDamage = 0; + gBattleStruct->moveDamage[gBattlerAttacker] = 0; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SUBSTITUTE_FAILED; } else { - gBattleMoveDamage = hp; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = hp; // one bit value will only work for Pokémon which max hp can go to 1020(which is more than possible in games) + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; gBattleMons[gBattlerAttacker].status2 |= STATUS2_SUBSTITUTE; gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_WRAPPED; - gDisableStructs[gBattlerAttacker].substituteHP = gBattleMoveDamage; + gDisableStructs[gBattlerAttacker].substituteHP = gBattleStruct->moveDamage[gBattlerAttacker]; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SET_SUBSTITUTE; gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE; } @@ -12815,8 +13039,8 @@ static void Cmd_metronome(void) #endif gCurrentMove = RandomUniformExcept(RNG_METRONOME, 1, moveCount - 1, InvalidMetronomeMove); - gHitMarker &= ~HITMARKER_ATTACKSTRING_PRINTED; SetAtkCancellerForCalledMove(); + PrepareStringBattle(STRINGID_WAGGLINGAFINGER, gBattlerAttacker); gBattlescriptCurrInstr = GET_MOVE_BATTLESCRIPT(gCurrentMove); gBattlerTarget = GetMoveTarget(gCurrentMove, NO_TARGET_OVERRIDE); } @@ -12825,7 +13049,7 @@ static void Cmd_dmgtolevel(void) { CMD_ARGS(); - gBattleMoveDamage = gBattleMons[gBattlerAttacker].level; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerAttacker].level; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -12834,7 +13058,7 @@ static void Cmd_psywavedamageeffect(void) CMD_ARGS(); s32 randDamage = B_PSYWAVE_DMG >= GEN_6 ? (Random() % 101) : ((Random() % 11) * 10); - gBattleMoveDamage = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleMons[gBattlerAttacker].level * (randDamage + 50) / 100; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -12849,7 +13073,7 @@ static void Cmd_counterdamagecalculator(void) && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 2; + gBattleStruct->moveDamage[gBattlerTarget] = gProtectStructs[gBattlerAttacker].physicalDmg * 2; if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget, gCurrentMove)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; @@ -12876,7 +13100,7 @@ static void Cmd_mirrorcoatdamagecalculator(void) && sideAttacker != sideTarget && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 2; + gBattleStruct->moveDamage[gBattlerTarget] = gProtectStructs[gBattlerAttacker].specialDmg * 2; if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget, gCurrentMove)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; @@ -12977,17 +13201,11 @@ static void Cmd_painsplitdmgcalc(void) if (!(DoesSubstituteBlockMove(gBattlerAttacker, gBattlerTarget, gCurrentMove))) { s32 hpDiff = (gBattleMons[gBattlerAttacker].hp + GetNonDynamaxHP(gBattlerTarget)) / 2; - s32 painSplitHp = gBattleMoveDamage = GetNonDynamaxHP(gBattlerTarget) - hpDiff; - u8 *storeLoc = (void *)(&gBattleScripting.painSplitHp); - storeLoc[0] = (painSplitHp); - storeLoc[1] = (painSplitHp & 0x0000FF00) >> 8; - storeLoc[2] = (painSplitHp & 0x00FF0000) >> 16; - storeLoc[3] = (painSplitHp & 0xFF000000) >> 24; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxHP(gBattlerTarget) - hpDiff; + gBattleStruct->moveDamage[gBattlerAttacker] = gBattleMons[gBattlerAttacker].hp - hpDiff; - gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp - hpDiff; gSpecialStatuses[gBattlerTarget].shellBellDmg = IGNORE_SHELL_BELL; - gBattlescriptCurrInstr = cmd->nextInstr; } else @@ -13352,12 +13570,11 @@ static void Cmd_healpartystatus(void) u32 zero = 0; u32 partner = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerAttacker))); u8 toHeal = 0; + struct Pokemon *party = GetBattlerParty(gBattlerAttacker); + s32 i; if (gCurrentMove == MOVE_HEAL_BELL) { - struct Pokemon *party = GetBattlerParty(gBattlerAttacker); - s32 i; - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_BELL; if (GetBattlerAbility(gBattlerAttacker) != ABILITY_SOUNDPROOF @@ -13423,7 +13640,10 @@ static void Cmd_healpartystatus(void) } if (ability != ABILITY_SOUNDPROOF) + { toHeal |= (1 << i); + TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), i); + } } } } @@ -13432,6 +13652,11 @@ static void Cmd_healpartystatus(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SOOTHING_AROMA; toHeal = (1 << PARTY_SIZE) - 1; + for (i = 0; i < PARTY_SIZE; i++) + { + TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), i); + } + gBattleMons[gBattlerAttacker].status1 = 0; gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; @@ -13464,9 +13689,9 @@ static void Cmd_cursetarget(void) else { gBattleMons[gBattlerTarget].status2 |= STATUS2_CURSED; - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -13531,7 +13756,7 @@ static void Cmd_handlerollout(void) { CMD_ARGS(); - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (!MoveResultHasEffect(gBattlerTarget)) { CancelMultiTurnMoves(gBattlerAttacker); gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13569,7 +13794,7 @@ static void Cmd_handlefurycutter(void) { CMD_ARGS(); - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (!MoveResultHasEffect(gBattlerTarget)) { gDisableStructs[gBattlerAttacker].furyCutterCounter = 0; gBattlescriptCurrInstr = BattleScript_MoveMissedPause; @@ -13637,10 +13862,11 @@ static void Cmd_presentdamagecalculation(void) } else { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerTarget) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + // TODO: Check if this is correct + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxMaxHP(gBattlerTarget) / 4; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; + gBattleStruct->moveDamage[gBattlerTarget] *= -1; gBattleStruct->presentBasePower = 0; } } @@ -13655,7 +13881,7 @@ static void Cmd_presentdamagecalculation(void) } else { - gMoveResultFlags &= ~MOVE_RESULT_DOESNT_AFFECT_FOE; + gBattleStruct->moveResultFlags[gBattlerTarget] &= ~MOVE_RESULT_DOESNT_AFFECT_FOE; gBattlescriptCurrInstr = BattleScript_PresentHealTarget; } } @@ -13666,7 +13892,7 @@ static void Cmd_setsafeguard(void) if (gSideStatuses[GetBattlerSide(gBattlerAttacker)] & SIDE_STATUS_SAFEGUARD) { - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_SIDE_STATUS_FAILED; } else @@ -13797,9 +14023,9 @@ static void Cmd_halvehp(void) if (gBattleMons[gBattlerAttacker].hp > halfHp) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -13905,23 +14131,23 @@ static void Cmd_recoverbasedonsunlight(void) if (gCurrentMove == MOVE_SHORE_UP) { if (WEATHER_HAS_EFFECT && gBattleWeather & B_WEATHER_SANDSTORM) - gBattleMoveDamage = 20 * GetNonDynamaxMaxHP(gBattlerAttacker) / 30; + gBattleStruct->moveDamage[gBattlerAttacker] = 20 * GetNonDynamaxMaxHP(gBattlerAttacker) / 30; else - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; } else { if (!(gBattleWeather & B_WEATHER_ANY) || !WEATHER_HAS_EFFECT || GetBattlerHoldEffect(gBattlerAttacker, TRUE) == HOLD_EFFECT_UTILITY_UMBRELLA) - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 2; else if (gBattleWeather & B_WEATHER_SUN) - gBattleMoveDamage = 20 * GetNonDynamaxMaxHP(gBattlerAttacker) / 30; + gBattleStruct->moveDamage[gBattlerAttacker] = 20 * GetNonDynamaxMaxHP(gBattlerAttacker) / 30; else // not sunny weather - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; } - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; + gBattleStruct->moveDamage[gBattlerAttacker] *= -1; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -14022,13 +14248,13 @@ static void Cmd_trydobeatup(void) gBattlescriptCurrInstr = cmd->nextInstr; - gBattleMoveDamage = gSpeciesInfo[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; - gBattleMoveDamage *= gMovesInfo[gCurrentMove].power; - gBattleMoveDamage *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); - gBattleMoveDamage /= gSpeciesInfo[gBattleMons[gBattlerTarget].species].baseDefense; - gBattleMoveDamage = (gBattleMoveDamage / 50) + 2; + gBattleStruct->moveDamage[gBattlerTarget] = gSpeciesInfo[GetMonData(&party[gBattleCommunication[0]], MON_DATA_SPECIES)].baseAttack; + gBattleStruct->moveDamage[gBattlerTarget] *= gMovesInfo[gCurrentMove].power; + gBattleStruct->moveDamage[gBattlerTarget] *= (GetMonData(&party[gBattleCommunication[0]], MON_DATA_LEVEL) * 2 / 5 + 2); + gBattleStruct->moveDamage[gBattlerTarget] /= gSpeciesInfo[gBattleMons[gBattlerTarget].species].baseDefense; + gBattleStruct->moveDamage[gBattlerTarget] = (gBattleStruct->moveDamage[gBattlerTarget] / 50) + 2; if (gProtectStructs[gBattlerAttacker].helpingHand) - gBattleMoveDamage = gBattleMoveDamage * 15 / 10; + gBattleStruct->moveDamage[gBattlerTarget] = gBattleStruct->moveDamage[gBattlerTarget] * 15 / 10; gBattleCommunication[0]++; } @@ -14127,7 +14353,7 @@ static void Cmd_trymemento(void) else { // Success, drop user's HP bar to 0 - gBattleMoveDamage = gBattleMons[gBattlerAttacker].hp; + gBattleStruct->moveDamage[gBattlerAttacker] = gBattleMons[gBattlerAttacker].hp; BtlController_EmitHealthBarUpdate(gBattlerAttacker, BUFFER_A, INSTANT_HP_BAR_DROP); MarkBattlerForControllerExec(gBattlerAttacker); gBattlescriptCurrInstr = cmd->nextInstr; @@ -14194,13 +14420,21 @@ u32 GetNaturePowerMove(u32 battler) return move; } -// Refresh -static void Cmd_cureifburnedparalysedorpoisoned(void) +static void Cmd_curestatuswithmove(void) { CMD_ARGS(const u8 *failInstr); + u32 shouldHeal; - if (gBattleMons[gBattlerAttacker].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE)) + if (gMovesInfo[gCurrentMove].effect == EFFECT_REFRESH) + shouldHeal = gBattleMons[gBattlerAttacker].status1 & STATUS1_REFRESH; + else // Take Heart + shouldHeal = gBattleMons[gBattlerAttacker].status1 & STATUS1_ANY; + + if (shouldHeal) { + if (gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) + TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), gBattlerPartyIndexes[gBattlerAttacker]); + gBattleMons[gBattlerAttacker].status1 = 0; gBattlescriptCurrInstr = cmd->nextInstr; BtlController_EmitSetMonData(gBattlerAttacker, BUFFER_A, REQUEST_STATUS_BATTLE, 0, sizeof(gBattleMons[gBattlerAttacker].status1), &gBattleMons[gBattlerAttacker].status1); @@ -14416,7 +14650,7 @@ static void Cmd_trycopyability(void) if (gBattleMons[battler].ability == defAbility || defAbility == ABILITY_NONE || gAbilitiesInfo[gBattleMons[battler].ability].cantBeSuppressed - || gAbilitiesInfo[gBattleMons[BATTLE_PARTNER(battler)].ability].cantBeSuppressed + || (IsBattlerAlive(BATTLE_PARTNER(battler)) && gAbilitiesInfo[gBattleMons[BATTLE_PARTNER(battler)].ability].cantBeSuppressed && gMovesInfo[gCurrentMove].effect == EFFECT_DOODLE) || gAbilitiesInfo[defAbility].cantBeCopied) { gBattlescriptCurrInstr = cmd->failInstr; @@ -14453,16 +14687,16 @@ static void Cmd_trywish(void) if (B_WISH_HP_SOURCE >= GEN_5) { if (GetBattlerSide(gBattlerTarget) == B_SIDE_PLAYER) - gBattleMoveDamage = max(1, GetMonData(&gPlayerParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); + gBattleStruct->moveDamage[gBattlerTarget] = max(1, GetMonData(&gPlayerParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); else - gBattleMoveDamage = max(1, GetMonData(&gEnemyParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); + gBattleStruct->moveDamage[gBattlerTarget] = max(1, GetMonData(&gEnemyParty[gWishFutureKnock.wishPartyId[gBattlerTarget]], MON_DATA_MAX_HP) / 2); } else { - gBattleMoveDamage = max(1, GetNonDynamaxMaxHP(gBattlerAttacker) / 2); + gBattleStruct->moveDamage[gBattlerTarget] = max(1, GetNonDynamaxMaxHP(gBattlerAttacker) / 2); } - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[gBattlerTarget] *= -1; if (gBattleMons[gBattlerTarget].hp == gBattleMons[gBattlerTarget].maxHP) gBattlescriptCurrInstr = cmd->failInstr; else @@ -14545,7 +14779,7 @@ static void Cmd_setdamagetohealthdifference(void) } else { - gBattleMoveDamage = GetNonDynamaxHP(gBattlerTarget) - gBattleMons[gBattlerAttacker].hp; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxHP(gBattlerTarget) - gBattleMons[gBattlerAttacker].hp; gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -14606,15 +14840,17 @@ static void Cmd_tryswapabilities(void) } else { - if (gMoveResultFlags & MOVE_RESULT_NO_EFFECT || (GetActiveGimmick(gBattlerTarget) == GIMMICK_DYNAMAX)) + if (!MoveResultHasEffect(gBattlerTarget) || (GetActiveGimmick(gBattlerTarget) == GIMMICK_DYNAMAX)) { gBattlescriptCurrInstr = cmd->failInstr; } else { - u16 abilityAtk = gBattleMons[gBattlerAttacker].ability; - gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; - gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = abilityAtk; + if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) + gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerAttacker].ability; + gLastUsedAbility = gBattleMons[gBattlerTarget].ability; + gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gLastUsedAbility; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -14807,6 +15043,9 @@ static void Cmd_switchoutabilities(void) switch (GetBattlerAbility(battler)) { case ABILITY_NATURAL_CURE: + if (gBattleMons[battler].status1 & STATUS1_SLEEP) + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); + gBattleMons[battler].status1 = 0; BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_STATUS_BATTLE, 1u << *(gBattleStruct->battlerPartyIndexes + battler), @@ -14815,17 +15054,19 @@ static void Cmd_switchoutabilities(void) MarkBattlerForControllerExec(battler); break; case ABILITY_REGENERATOR: - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 3; - gBattleMoveDamage += gBattleMons[battler].hp; - if (gBattleMoveDamage > gBattleMons[battler].maxHP) - gBattleMoveDamage = gBattleMons[battler].maxHP; + { + u32 regenerate = GetNonDynamaxMaxHP(gBattlerAttacker) / 3; + regenerate += gBattleMons[battler].hp; + if (gBattleStruct->moveDamage[gBattlerAttacker] > gBattleMons[battler].maxHP) + gBattleStruct->moveDamage[gBattlerAttacker] = gBattleMons[battler].maxHP; BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_HP_BATTLE, 1u << *(gBattleStruct->battlerPartyIndexes + battler), - sizeof(gBattleMoveDamage), - &gBattleMoveDamage); + sizeof(regenerate), + ®enerate); MarkBattlerForControllerExec(battler); break; } + } gBattlescriptCurrInstr = cmd->nextInstr; } @@ -14929,11 +15170,11 @@ static void Cmd_pickup(void) gBattlescriptCurrInstr = cmd->nextInstr; } -static void Cmd_unused3(void) +static void Cmd_unused_0xE6(void) { } -static void Cmd_unused4(void) +static void Cmd_unused_0xE7(void) { } @@ -15154,7 +15395,7 @@ static void Cmd_removelightscreenreflect(void) side = GetBattlerSide(gBattlerAttacker) ^ BIT_SIDE; if (B_BRICK_BREAK >= GEN_5) - failed = (gMoveResultFlags & MOVE_RESULT_NO_EFFECT); + failed = !MoveResultHasEffect(gBattlerTarget); else failed = FALSE; @@ -15216,10 +15457,10 @@ static void Cmd_handleballthrow(void) else { u32 odds, i; - u8 catchRate; + u32 catchRate; + u32 ballId = ItemIdToBallId(gLastUsedItem); - gLastThrownBall = gLastUsedItem; - gBallToDisplay = gLastThrownBall; + gBallToDisplay = gLastThrownBall = gLastUsedItem; if (gBattleTypeFlags & BATTLE_TYPE_SAFARI) catchRate = gBattleStruct->safariCatchFactor * 1275 / 100; else @@ -15227,39 +15468,39 @@ static void Cmd_handleballthrow(void) if (gSpeciesInfo[gBattleMons[gBattlerTarget].species].isUltraBeast) { - if (gLastUsedItem == ITEM_BEAST_BALL) + if (ballId == BALL_BEAST) ballMultiplier = 500; else ballMultiplier = 10; } else { - switch (gLastUsedItem) + switch (ballId) { - case ITEM_ULTRA_BALL: + case BALL_ULTRA: ballMultiplier = 200; break; - case ITEM_SPORT_BALL: + case BALL_SPORT: if (B_SPORT_BALL_MODIFIER <= GEN_7) ballMultiplier = 150; break; - case ITEM_GREAT_BALL: + case BALL_GREAT: ballMultiplier = 150; break; - case ITEM_SAFARI_BALL: + case BALL_SAFARI: if (B_SAFARI_BALL_MODIFIER <= GEN_7) ballMultiplier = 150; break; - case ITEM_NET_BALL: - if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_WATER) || IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_BUG)) + case BALL_NET: + if (IS_BATTLER_ANY_TYPE(gBattlerTarget, TYPE_WATER, TYPE_BUG)) ballMultiplier = B_NET_BALL_MODIFIER >= GEN_7 ? 350 : 300; break; - case ITEM_DIVE_BALL: + case BALL_DIVE: if (GetCurrentMapType() == MAP_TYPE_UNDERWATER || (B_DIVE_BALL_MODIFIER >= GEN_4 && (gIsFishingEncounter || gIsSurfingEncounter))) ballMultiplier = 350; break; - case ITEM_NEST_BALL: + case BALL_NEST: if (B_NEST_BALL_MODIFIER >= GEN_6) { //((41 - Pokémon's level) ÷ 10)× if Pokémon's level is between 1 and 29, 1× otherwise. @@ -15280,25 +15521,25 @@ static void Cmd_handleballthrow(void) ballMultiplier = 100; } break; - case ITEM_REPEAT_BALL: + case BALL_REPEAT: if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(gBattleMons[gBattlerTarget].species), FLAG_GET_CAUGHT)) ballMultiplier = (B_REPEAT_BALL_MODIFIER >= GEN_7 ? 350 : 300); break; - case ITEM_TIMER_BALL: + case BALL_TIMER: ballMultiplier = 100 + (gBattleResults.battleTurnCounter * (B_TIMER_BALL_MODIFIER >= GEN_5 ? 30 : 10)); if (ballMultiplier > 400) ballMultiplier = 400; break; - case ITEM_DUSK_BALL: + case BALL_DUSK: i = GetTimeOfDay(); if (i == TIME_EVENING || i == TIME_NIGHT || gMapHeader.cave || gMapHeader.mapType == MAP_TYPE_UNDERGROUND) ballMultiplier = (B_DUSK_BALL_MODIFIER >= GEN_7 ? 300 : 350); break; - case ITEM_QUICK_BALL: + case BALL_QUICK: if (gBattleResults.battleTurnCounter == 0) ballMultiplier = (B_QUICK_BALL_MODIFIER >= GEN_5 ? 500 : 400); break; - case ITEM_LEVEL_BALL: + case BALL_LEVEL: if (gBattleMons[gBattlerAttacker].level >= 4 * gBattleMons[gBattlerTarget].level) ballMultiplier = 800; else if (gBattleMons[gBattlerAttacker].level > 2 * gBattleMons[gBattlerTarget].level) @@ -15306,7 +15547,7 @@ static void Cmd_handleballthrow(void) else if (gBattleMons[gBattlerAttacker].level > gBattleMons[gBattlerTarget].level) ballMultiplier = 200; break; - case ITEM_LURE_BALL: + case BALL_LURE: if (gIsFishingEncounter) { if (B_LURE_BALL_MODIFIER >= GEN_8) @@ -15317,7 +15558,7 @@ static void Cmd_handleballthrow(void) ballMultiplier = 300; } break; - case ITEM_MOON_BALL: + case BALL_MOON: { const struct Evolution *evolutions = GetSpeciesEvolutions(gBattleMons[gBattlerTarget].species); if (evolutions == NULL) @@ -15330,7 +15571,7 @@ static void Cmd_handleballthrow(void) } } break; - case ITEM_LOVE_BALL: + case BALL_LOVE: if (gBattleMons[gBattlerTarget].species == gBattleMons[gBattlerAttacker].species) { u8 gender1 = GetMonGender(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); @@ -15340,11 +15581,11 @@ static void Cmd_handleballthrow(void) ballMultiplier = 800; } break; - case ITEM_FAST_BALL: + case BALL_FAST: if (gSpeciesInfo[gBattleMons[gBattlerTarget].species].baseSpeed >= 100) ballMultiplier = 400; break; - case ITEM_HEAVY_BALL: + case BALL_HEAVY: i = GetSpeciesWeight(gBattleMons[gBattlerTarget].species); if (B_HEAVY_BALL_MODIFIER >= GEN_7) { @@ -15382,11 +15623,11 @@ static void Cmd_handleballthrow(void) ballAddition = 40; } break; - case ITEM_DREAM_BALL: + case BALL_DREAM: if (B_DREAM_BALL_MODIFIER >= GEN_8 && (gBattleMons[gBattlerTarget].status1 & STATUS1_SLEEP || GetBattlerAbility(gBattlerTarget) == ABILITY_COMATOSE)) ballMultiplier = 400; break; - case ITEM_BEAST_BALL: + case BALL_BEAST: ballMultiplier = 10; break; } @@ -15407,8 +15648,8 @@ static void Cmd_handleballthrow(void) if (gBattleMons[gBattlerTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON | STATUS1_FROSTBITE)) odds = (odds * 15) / 10; - if (gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL] < 255) - gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL]++; + if (gBattleResults.catchAttempts[ballId] < 255) + gBattleResults.catchAttempts[ballId]++; if (odds > 254) // mon caught { @@ -15416,14 +15657,14 @@ static void Cmd_handleballthrow(void) MarkBattlerForControllerExec(gBattlerAttacker); TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &ballId); if (CalculatePlayerPartyCount() == PARTY_SIZE) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gLastUsedItem == ITEM_HEAL_BALL) + if (gLastUsedItem == BALL_HEAL) { MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget); @@ -15449,7 +15690,7 @@ static void Cmd_handleballthrow(void) maxShakes = BALL_3_SHAKES_SUCCESS; } - if (gLastUsedItem == ITEM_MASTER_BALL) + if (ballId == BALL_MASTER) { shakes = maxShakes; } @@ -15470,14 +15711,14 @@ static void Cmd_handleballthrow(void) TryBattleFormChange(gBattlerTarget, FORM_CHANGE_END_BATTLE); gBattlescriptCurrInstr = BattleScript_SuccessBallThrow; - SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &gLastUsedItem); + SetMonData(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], MON_DATA_POKEBALL, &ballId); if (CalculatePlayerPartyCount() == PARTY_SIZE) gBattleCommunication[MULTISTRING_CHOOSER] = 0; else gBattleCommunication[MULTISTRING_CHOOSER] = 1; - if (gLastUsedItem == ITEM_HEAL_BALL) + if (ballId == BALL_HEAL) { MonRestorePP(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]]); HealStatusConditions(&gEnemyParty[gBattlerPartyIndexes[gBattlerTarget]], STATUS1_ANY, gBattlerTarget); @@ -15760,7 +16001,7 @@ static void Cmd_subattackerhpbydmg(void) { CMD_ARGS(); - gBattleMons[gBattlerAttacker].hp -= gBattleMoveDamage; + gBattleMons[gBattlerAttacker].hp -= gBattleStruct->moveDamage[gBattlerTarget]; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -15906,6 +16147,7 @@ static void Cmd_tryworryseed(void) } else { + gBattleScripting.abilityPopupOverwrite = gBattleMons[gBattlerTarget].ability; gBattleMons[gBattlerTarget].ability = gBattleStruct->overwrittenAbilities[gBattlerTarget] = ABILITY_INSOMNIA; gBattlescriptCurrInstr = cmd->nextInstr; } @@ -15999,7 +16241,7 @@ void BS_CalcMetalBurstDmg(void) && sideAttacker != (sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].physicalBattlerId)) && gBattleMons[gProtectStructs[gBattlerAttacker].physicalBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBattlerAttacker].physicalDmg * 150 / 100; + gBattleStruct->moveDamage[gBattlerTarget] = gProtectStructs[gBattlerAttacker].physicalDmg * 150 / 100; if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget, gCurrentMove)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; @@ -16012,7 +16254,7 @@ void BS_CalcMetalBurstDmg(void) && sideAttacker != (sideTarget = GetBattlerSide(gProtectStructs[gBattlerAttacker].specialBattlerId)) && gBattleMons[gProtectStructs[gBattlerAttacker].specialBattlerId].hp) { - gBattleMoveDamage = gProtectStructs[gBattlerAttacker].specialDmg * 150 / 100; + gBattleStruct->moveDamage[gBattlerTarget] = gProtectStructs[gBattlerAttacker].specialDmg * 150 / 100; if (IsAffectedByFollowMe(gBattlerAttacker, sideTarget, gCurrentMove)) gBattlerTarget = gSideTimers[sideTarget].followmeTarget; @@ -16395,7 +16637,7 @@ void BS_ItemRestoreHP(void) // Heal is applied as move damage if battler is active. if (battler != MAX_BATTLERS_COUNT && hp != 0) { - gBattleMoveDamage = -healAmount; + gBattleStruct->moveDamage[gBattlerAttacker] = -healAmount; gBattlescriptCurrInstr = cmd->restoreBattlerInstr; } else @@ -16697,9 +16939,8 @@ void BS_TryReflectType(void) { NATIVE_ARGS(const u8 *failInstr); u16 targetBaseSpecies = GET_BASE_SPECIES_ID(gBattleMons[gBattlerTarget].species); - u8 targetType1 = GetBattlerType(gBattlerTarget, 0, FALSE); - u8 targetType2 = GetBattlerType(gBattlerTarget, 1, FALSE); - u8 targetType3 = GetBattlerType(gBattlerTarget, 2, FALSE); + u32 targetTypes[3]; + GetBattlerTypes(gBattlerTarget, FALSE, targetTypes); if (targetBaseSpecies == SPECIES_ARCEUS || targetBaseSpecies == SPECIES_SILVALLY) { @@ -16713,32 +16954,32 @@ void BS_TryReflectType(void) { gBattlescriptCurrInstr = cmd->failInstr; } - else if (targetType1 == TYPE_MYSTERY && targetType2 == TYPE_MYSTERY && targetType3 != TYPE_MYSTERY) + else if (targetTypes[0] == TYPE_MYSTERY && targetTypes[1] == TYPE_MYSTERY && targetTypes[2] != TYPE_MYSTERY) { gBattleMons[gBattlerAttacker].types[0] = TYPE_NORMAL; gBattleMons[gBattlerAttacker].types[1] = TYPE_NORMAL; - gBattleMons[gBattlerAttacker].types[2] = targetType3; + gBattleMons[gBattlerAttacker].types[2] = targetTypes[2]; gBattlescriptCurrInstr = cmd->nextInstr; } - else if (targetType1 == TYPE_MYSTERY && targetType2 != TYPE_MYSTERY) + else if (targetTypes[0] == TYPE_MYSTERY && targetTypes[1] != TYPE_MYSTERY) { - gBattleMons[gBattlerAttacker].types[0] = targetType2; - gBattleMons[gBattlerAttacker].types[1] = targetType2; - gBattleMons[gBattlerAttacker].types[2] = targetType3; + gBattleMons[gBattlerAttacker].types[0] = targetTypes[1]; + gBattleMons[gBattlerAttacker].types[1] = targetTypes[1]; + gBattleMons[gBattlerAttacker].types[2] = targetTypes[2]; gBattlescriptCurrInstr = cmd->nextInstr; } - else if (targetType1 != TYPE_MYSTERY && targetType2 == TYPE_MYSTERY) + else if (targetTypes[0] != TYPE_MYSTERY && targetTypes[1] == TYPE_MYSTERY) { - gBattleMons[gBattlerAttacker].types[0] = targetType1; - gBattleMons[gBattlerAttacker].types[1] = targetType1; - gBattleMons[gBattlerAttacker].types[2] = targetType3; + gBattleMons[gBattlerAttacker].types[0] = targetTypes[0]; + gBattleMons[gBattlerAttacker].types[1] = targetTypes[0]; + gBattleMons[gBattlerAttacker].types[2] = targetTypes[2]; gBattlescriptCurrInstr = cmd->nextInstr; } else { - gBattleMons[gBattlerAttacker].types[0] = targetType1; - gBattleMons[gBattlerAttacker].types[1] = targetType2; - gBattleMons[gBattlerAttacker].types[2] = targetType3; + gBattleMons[gBattlerAttacker].types[0] = targetTypes[0]; + gBattleMons[gBattlerAttacker].types[1] = targetTypes[1]; + gBattleMons[gBattlerAttacker].types[2] = targetTypes[2]; gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -16958,14 +17199,14 @@ void BS_TryHealPulse(void) else { if (GetBattlerAbility(gBattlerAttacker) == ABILITY_MEGA_LAUNCHER && gMovesInfo[gCurrentMove].pulseMove) - gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) * 75 / 100); + gBattleStruct->moveDamage[gBattlerTarget] = -(GetNonDynamaxMaxHP(gBattlerTarget) * 75 / 100); else if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN && gMovesInfo[gCurrentMove].argument == MOVE_EFFECT_FLORAL_HEALING) - gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) * 2 / 3); + gBattleStruct->moveDamage[gBattlerTarget] = -(GetNonDynamaxMaxHP(gBattlerTarget) * 2 / 3); else - gBattleMoveDamage = -(GetNonDynamaxMaxHP(gBattlerTarget) / 2); + gBattleStruct->moveDamage[gBattlerTarget] = -(GetNonDynamaxMaxHP(gBattlerTarget) / 2); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = -1; gBattlescriptCurrInstr = cmd->nextInstr; } } @@ -17152,10 +17393,10 @@ void BS_TryUpdateRecoilTracker(void) switch(gender) { case MON_MALE: - TryUpdateEvolutionTracker(EVO_RECOIL_DAMAGE_MALE, gBattleMoveDamage, MOVE_NONE); + TryUpdateEvolutionTracker(EVO_RECOIL_DAMAGE_MALE, gBattleStruct->moveDamage[gBattlerAttacker], MOVE_NONE); break; case MON_FEMALE: - TryUpdateEvolutionTracker(EVO_RECOIL_DAMAGE_FEMALE, gBattleMoveDamage, MOVE_NONE); + TryUpdateEvolutionTracker(EVO_RECOIL_DAMAGE_FEMALE, gBattleStruct->moveDamage[gBattlerAttacker], MOVE_NONE); break; } @@ -17206,7 +17447,7 @@ void BS_TryActivateGulpMissile(void) { NATIVE_ARGS(); - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && gBattleMons[gBattlerTarget].species != SPECIES_CRAMORANT @@ -17214,9 +17455,9 @@ void BS_TryActivateGulpMissile(void) { if (GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerTarget] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; } switch(gBattleMons[gBattlerTarget].species) @@ -17318,13 +17559,32 @@ void BS_ApplyTerastallization(void) void BS_DamageToQuarterTargetHP(void) { NATIVE_ARGS(); - gBattleMoveDamage = (3 * GetNonDynamaxHP(gBattlerTarget)) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerTarget] = (3 * GetNonDynamaxHP(gBattlerTarget)) / 4; + if (gBattleStruct->moveDamage[gBattlerTarget] == 0) + gBattleStruct->moveDamage[gBattlerTarget] = 1; gBattlescriptCurrInstr = cmd->nextInstr; } +void BS_JumpIfSleepClause(void) +{ + NATIVE_ARGS(const u8 *jumpInstr); + + // Can freely sleep own partner + if (IsDoubleBattle() && IsSleepClauseEnabled() && GetBattlerSide(gBattlerAttacker) == GetBattlerSide(gBattlerTarget)) + { + gBattleStruct->sleepClauseEffectExempt |= (1u << gBattlerTarget); + gBattlescriptCurrInstr = cmd->nextInstr; + return; + } + gBattleStruct->sleepClauseEffectExempt &= ~(1u << gBattlerTarget); + // Can't sleep if clause is active otherwise + if (IsSleepClauseActiveForSide(GetBattlerSide(gBattlerTarget))) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + void BS_FickleBeamDamageCalculation(void) { NATIVE_ARGS(); @@ -17355,6 +17615,17 @@ void BS_TryTarShot(void) } } +void BS_CanTarShotWork(void) +{ + NATIVE_ARGS(const u8 *failInstr); + // Tar Shot will fail if it's already been used on the target and its speed can't be lowered further + if (!gDisableStructs[gBattlerTarget].tarShot + && CompareStat(gBattlerTarget, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN)) + gBattlescriptCurrInstr = cmd->nextInstr; + else + gBattlescriptCurrInstr = cmd->failInstr; +} + void BS_JumpIfBlockedBySoundproof(void) { NATIVE_ARGS(u8 battler, const u8 *jumpInstr); @@ -17372,6 +17643,41 @@ void BS_JumpIfBlockedBySoundproof(void) } } +void BS_TryHitSwitchTarget(void) +{ + NATIVE_ARGS(const u8 *failInstr); + + if (IsBattlerAlive(gBattlerAttacker) + && IsBattlerAlive(gBattlerTarget) + && MoveResultHasEffect(gBattlerTarget) + && TARGET_TURN_DAMAGED + && gSpecialStatuses[gBattlerAttacker].parentalBondState != PARENTAL_BOND_1ST_HIT + && GetBattlerAbility(gBattlerTarget) != ABILITY_GUARD_DOG) + { + gBattleScripting.switchCase = B_SWITCH_HIT; + gBattlescriptCurrInstr = cmd->nextInstr; + } + else + { + gBattlescriptCurrInstr = cmd->failInstr; + } +} + +void BS_SetMagicCoatTarget(void) +{ + NATIVE_ARGS(); + u32 side; + gBattleStruct->attackerBeforeBounce = gBattleScripting.battler = gBattlerAttacker; + gBattlerAttacker = gBattlerTarget; + side = BATTLE_OPPOSITE(GetBattlerSide(gBattlerAttacker)); + if (IsAffectedByFollowMe(gBattlerAttacker, side, gCurrentMove)) + gBattlerTarget = gSideTimers[side].followmeTarget; + else + gBattlerTarget = gBattleStruct->attackerBeforeBounce; + + gBattlescriptCurrInstr = cmd->nextInstr; +} + void BS_TeatimeInvul(void) { NATIVE_ARGS(u8 battler, const u8 *jumpInstr); @@ -17483,7 +17789,10 @@ void BS_TryRevivalBlessing(void) if (IsDoubleBattle() && gBattlerPartyIndexes[BATTLE_PARTNER(gBattlerAttacker)] == gSelectedMonPartyId) { - gBattleScripting.battler = BATTLE_PARTNER(gBattlerAttacker); + u32 i = BATTLE_PARTNER(gBattlerAttacker); + gAbsentBattlerFlags &= ~(1u << i); + gBattleStruct->monToSwitchIntoId[i] = gSelectedMonPartyId; + gBattleScripting.battler = i; gBattleCommunication[MULTIUSE_STATE] = TRUE; } @@ -17568,3 +17877,51 @@ void BS_WaitFanfare(void) gBattlescriptCurrInstr = cmd->nextInstr; } + +void BS_SetBeakBlast(void) +{ + NATIVE_ARGS(); + gProtectStructs[gBattlerAttacker].beakBlastCharge = TRUE; + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_RemoveTerrain(void) +{ + NATIVE_ARGS(); + RemoveAllTerrains(); + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_SetMoveResultFlags(void) +{ + NATIVE_ARGS(u16 value); + gBattleStruct->moveResultFlags[gBattlerTarget] |= cmd->value; + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_ClearMoveResultFlags(void) +{ + NATIVE_ARGS(u16 value); + gBattleStruct->moveResultFlags[gBattlerTarget] &= ~(cmd->value); + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_JumpIfMoveResultFlags(void) +{ + NATIVE_ARGS(u16 value, const u8 *jumpInstr); + + if (gBattleStruct->moveResultFlags[gBattlerTarget] & cmd->value) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; +} + +void BS_JumpIfCriticalHit(void) +{ + NATIVE_ARGS(const u8 *jumpInstr); + + if (gSpecialStatuses[gBattlerTarget].criticalHit) + gBattlescriptCurrInstr = cmd->jumpInstr; + else + gBattlescriptCurrInstr = cmd->nextInstr; +} diff --git a/src/battle_setup.c b/src/battle_setup.c index 54c4f99b92..0c13fcdd09 100644 --- a/src/battle_setup.c +++ b/src/battle_setup.c @@ -927,7 +927,7 @@ 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; @@ -1729,7 +1729,7 @@ static inline bool32 DoesCurrentMapMatchRematchTrainerMap(s32 i, const struct Re bool32 TrainerIsMatchCallRegistered(s32 i) { - return FlagGet(FLAG_MATCH_CALL_REGISTERED + i); + return FlagGet(TRAINER_REGISTERED_FLAGS_START + i); } #if FREE_MATCH_CALL == FALSE @@ -1887,7 +1887,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/battle_tower.c b/src/battle_tower.c index 72858a854c..6f80823b98 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 TrainerMon *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/battle_transition.c b/src/battle_transition.c index 6fc7d1ea47..297bb54491 100644 --- a/src/battle_transition.c +++ b/src/battle_transition.c @@ -1874,7 +1874,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); diff --git a/src/battle_tv.c b/src/battle_tv.c index 22e5ab1c31..b03eee1ca9 100644 --- a/src/battle_tv.c +++ b/src/battle_tv.c @@ -1242,7 +1242,7 @@ static void TrySetBattleSeminarShow(void) if (sVariableDmgMoves[i] != TABLE_END) return; - dmgByMove[gMoveSelectionCursor[gBattlerAttacker]] = gBattleMoveDamage; + dmgByMove[gMoveSelectionCursor[gBattlerAttacker]] = gBattleStruct->moveDamage[gBattlerTarget]; // TODO: Not sure currMoveSaved = gCurrentMove; for (i = 0; i < MAX_MON_MOVES; i++) { @@ -1250,9 +1250,17 @@ static void TrySetBattleSeminarShow(void) powerOverride = 0; if (ShouldCalculateDamage(gCurrentMove, &dmgByMove[i], &powerOverride)) { - gBattleMoveDamage = CalculateMoveDamage(gCurrentMove, gBattlerAttacker, gBattlerTarget, gMovesInfo[gCurrentMove].type, powerOverride, FALSE, FALSE, FALSE); - dmgByMove[i] = gBattleMoveDamage; - if (dmgByMove[i] == 0 && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + struct DamageCalculationData damageCalcData; + damageCalcData.battlerAtk = gBattlerAttacker; + damageCalcData.battlerDef = gBattlerTarget; + damageCalcData.move = gCurrentMove; + damageCalcData.moveType = gMovesInfo[gCurrentMove].type; + damageCalcData.isCrit = FALSE; + damageCalcData.randomFactor = FALSE; + damageCalcData.updateFlags = FALSE; + gBattleStruct->moveDamage[gBattlerTarget] = CalculateMoveDamage(&damageCalcData, powerOverride); + dmgByMove[i] = gBattleStruct->moveDamage[gBattlerTarget]; + if (dmgByMove[i] == 0 && MoveResultHasEffect(gBattlerTarget)) dmgByMove[i] = 1; } } @@ -1282,7 +1290,7 @@ static void TrySetBattleSeminarShow(void) } } - gBattleMoveDamage = dmgByMove[gMoveSelectionCursor[gBattlerAttacker]]; + gBattleStruct->moveDamage[gBattlerTarget] = dmgByMove[gMoveSelectionCursor[gBattlerAttacker]]; gCurrentMove = currMoveSaved; } @@ -1353,11 +1361,7 @@ u8 GetBattlerMoveSlotId(u8 battlerId, u16 moveId) { s32 i; struct Pokemon *party; - - if (GetBattlerSide(battlerId) == B_SIDE_PLAYER) - party = gPlayerParty; - else - party = gEnemyParty; + party = GetBattlerParty(battlerId); i = 0; while (1) diff --git a/src/battle_util.c b/src/battle_util.c index bac1d33325..4b764776e2 100644 --- a/src/battle_util.c +++ b/src/battle_util.c @@ -138,17 +138,14 @@ void HandleAction_UseMove(void) return; } - gIsCriticalHit = FALSE; gBattleStruct->atkCancellerTracker = 0; - gMoveResultFlags = 0; + ClearDamageCalcResults(); gMultiHitCounter = 0; gBattleScripting.savedDmg = 0; gBattleCommunication[MISS_TYPE] = 0; gBattleScripting.savedMoveEffect = 0; gCurrMovePos = gChosenMovePos = *(gBattleStruct->chosenMovePositions + gBattlerAttacker); - gBattleStruct->obedienceResult = GetAttackerObedienceForAction(); - // choose move if (gProtectStructs[gBattlerAttacker].noValidMoves) { @@ -251,20 +248,7 @@ void HandleAction_UseMove(void) { if (moveTarget & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) - { - if (Random() & 1) - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - else - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - } - else - { - if (Random() & 1) - gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - else - gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - } + gBattlerTarget = SetRandomTarget(gBattlerAttacker); } else if (moveTarget & MOVE_TARGET_FOES_AND_ALLY) { @@ -281,18 +265,9 @@ void HandleAction_UseMove(void) gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker); } - if (!IsBattlerAlive(gBattlerTarget)) + if (!IsBattlerAlive(gBattlerTarget) && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { - if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) - { - gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); - } - else - { - gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker))); - if (!IsBattlerAlive(gBattlerTarget)) - gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); - } + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } } else @@ -311,21 +286,7 @@ void HandleAction_UseMove(void) } else if (IsDoubleBattle() && moveTarget & MOVE_TARGET_RANDOM) { - if (GetBattlerSide(gBattlerAttacker) == B_SIDE_PLAYER) - { - if (Random() & 1) - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_LEFT); - else - gBattlerTarget = GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT); - } - else - { - if (Random() & 1) - gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_LEFT); - else - gBattlerTarget = GetBattlerAtPosition(B_POSITION_PLAYER_RIGHT); - } - + gBattlerTarget = SetRandomTarget(gBattlerAttacker); if (gAbsentBattlerFlags & (1u << gBattlerTarget) && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) { @@ -352,18 +313,11 @@ void HandleAction_UseMove(void) else { gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker); - if (!IsBattlerAlive(gBattlerTarget) && moveTarget != MOVE_TARGET_OPPONENTS_FIELD) + if (!IsBattlerAlive(gBattlerTarget) + && moveTarget != MOVE_TARGET_OPPONENTS_FIELD + && (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))) { - if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)) - { - gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); - } - else - { - gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker))); - if (!IsBattlerAlive(gBattlerTarget)) - gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); - } + gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget))); } } @@ -387,8 +341,9 @@ void HandleAction_UseMove(void) gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; } } - // Edge case: moves targeting the ally fail after a successful Ally Switch. - else if (moveTarget == MOVE_TARGET_ALLY && gProtectStructs[BATTLE_PARTNER(gBattlerAttacker)].usedAllySwitch) + + if ((GetBattlerSide(gBattlerAttacker) == GetBattlerSide(gBattlerTarget)) + && (!IsBattlerAlive(gBattlerTarget) || gProtectStructs[BATTLE_PARTNER(gBattlerAttacker)].usedAllySwitch)) { gBattlescriptCurrInstr = BattleScript_FailedFromAtkCanceler; } @@ -450,6 +405,10 @@ bool32 TryRunFromBattle(u32 battler) u8 pyramidMultiplier; u8 speedVar; + // If this flag is set, running will never be successful under any circumstances. + if (FlagGet(B_FLAG_NO_RUNNING)) + return effect; + if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY_E_READER) holdEffect = gEnigmaBerries[battler].holdEffect; else @@ -733,14 +692,10 @@ void HandleAction_ActionFinished(void) { ExpendTypeStellarBoost(gBattlerAttacker, moveType); } - + ClearDamageCalcResults(); gCurrentMove = 0; - gBattleMoveDamage = 0; - gMoveResultFlags = 0; gBattleScripting.animTurn = 0; gBattleScripting.animTargetsHit = 0; - gLastLandedMoves[gBattlerAttacker] = 0; - gLastHitByType[gBattlerAttacker] = 0; gBattleStruct->dynamicMoveType = 0; gBattleScripting.moveendState = 0; gBattleCommunication[3] = 0; @@ -1631,7 +1586,7 @@ u32 GetBattlerAffectionHearts(u32 battler) return GetMonAffectionHearts(&party[gBattlerPartyIndexes[battler]]); } -static void TryToRevertMimicryAndFlags(void) +void TryToRevertMimicryAndFlags(void) { u32 i; @@ -2337,14 +2292,14 @@ s32 GetDrainedBigRootHp(u32 battler, s32 hp) return hp * -1; } -#define MAGIC_GUARD_CHECK \ -if (ability == ABILITY_MAGIC_GUARD) \ -{\ - RecordAbilityBattle(battler, ability);\ - gBattleStruct->turnEffectsTracker++;\ - break;\ -} +static inline bool32 IsBattlerProtectedByMagicGuard(u32 battler, u32 ability) +{ + if (ability != ABILITY_MAGIC_GUARD) + return FALSE; + RecordAbilityBattle(battler, ability); + return TRUE; +} u8 DoBattlerEndTurnEffects(void) { @@ -2375,16 +2330,14 @@ u8 DoBattlerEndTurnEffects(void) && ability != ABILITY_SAND_FORCE && ability != ABILITY_SAND_RUSH && ability != ABILITY_OVERCOAT - && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_ROCK) - && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_GROUND) - && !IS_BATTLER_OF_TYPE(gBattlerAttacker, TYPE_STEEL) + && !IS_BATTLER_ANY_TYPE(gBattlerAttacker, TYPE_ROCK, TYPE_GROUND, TYPE_STEEL) && !(gStatuses3[gBattlerAttacker] & (STATUS3_UNDERGROUND | STATUS3_UNDERWATER)) && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_SAFETY_GOGGLES) { gBattleScripting.battler = battler; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_DamagingWeather); effect++; } @@ -2395,7 +2348,7 @@ u8 DoBattlerEndTurnEffects(void) && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { gBattleScripting.battler = battler; - gBattleMoveDamage = -1 * max(1, GetNonDynamaxMaxHP(battler) / 16); + gBattleStruct->moveDamage[battler] = -1 * max(1, GetNonDynamaxMaxHP(battler) / 16); BattleScriptExecute(BattleScript_IceBodyHeal); effect++; } @@ -2408,9 +2361,9 @@ u8 DoBattlerEndTurnEffects(void) && GetBattlerHoldEffect(battler, TRUE) != HOLD_EFFECT_SAFETY_GOGGLES) { gBattleScripting.battler = battler; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_DamagingWeather); effect++; } @@ -2422,7 +2375,7 @@ u8 DoBattlerEndTurnEffects(void) && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK) && IsBattlerAlive(battler)) { - gBattleMoveDamage = GetDrainedBigRootHp(battler, GetNonDynamaxMaxHP(battler) / 16); + gBattleStruct->moveDamage[battler] = GetDrainedBigRootHp(battler, GetNonDynamaxMaxHP(battler) / 16); BattleScriptExecute(BattleScript_IngrainTurnHeal); effect++; } @@ -2434,7 +2387,7 @@ u8 DoBattlerEndTurnEffects(void) && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK) && IsBattlerAlive(battler)) { - gBattleMoveDamage = GetDrainedBigRootHp(battler, GetNonDynamaxMaxHP(battler) / 16); + gBattleStruct->moveDamage[battler] = GetDrainedBigRootHp(battler, GetNonDynamaxMaxHP(battler) / 16); BattleScriptExecute(BattleScript_AquaRingHeal); effect++; } @@ -2472,44 +2425,57 @@ u8 DoBattlerEndTurnEffects(void) case ENDTURN_LEECH_SEED: // leech seed if ((gStatuses3[battler] & STATUS3_LEECHSEED) && IsBattlerAlive(gStatuses3[battler] & STATUS3_LEECHSEED_BATTLER) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - gBattlerTarget = gStatuses3[battler] & STATUS3_LEECHSEED_BATTLER; // Notice gBattlerTarget is actually the HP receiver. - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattlerAttacker = battler; gBattleScripting.animArg1 = gBattlerTarget; gBattleScripting.animArg2 = gBattlerAttacker; - BattleScriptExecute(BattleScript_LeechSeedTurnDrain); + gBattleStruct->moveDamage[gBattlerAttacker] = max(1, GetNonDynamaxMaxHP(battler) / 8); + gBattleStruct->moveDamage[gBattlerTarget] = GetDrainedBigRootHp(gBattlerAttacker, gBattleStruct->moveDamage[gBattlerAttacker]); + gHitMarker |= HITMARKER_IGNORE_SUBSTITUTE | HITMARKER_PASSIVE_DAMAGE; + if (GetBattlerAbility(battler) == ABILITY_LIQUID_OOZE) + { + gBattleStruct->moveDamage[gBattlerTarget] = gBattleStruct->moveDamage[gBattlerTarget] * -1; + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_OOZE; + BattleScriptExecute(BattleScript_LeechSeedTurnDrainLiquidOoze); + } + else if (gStatuses3[gBattlerTarget] & STATUS3_HEAL_BLOCK) + { + BattleScriptExecute(BattleScript_LeechSeedTurnDrainHealBlock); + } + else + { + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LEECH_SEED_DRAIN; + BattleScriptExecute(BattleScript_LeechSeedTurnDrainRecovery); + } effect++; } gBattleStruct->turnEffectsTracker++; break; case ENDTURN_POISON: // poison if ((gBattleMons[battler].status1 & STATUS1_POISON) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - if (ability == ABILITY_POISON_HEAL) { if (!BATTLER_MAX_HP(battler) && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; BattleScriptExecute(BattleScript_PoisonHealActivates); effect++; } } else { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_PoisonTurnDmg); effect++; } @@ -2518,30 +2484,29 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_BAD_POISON: // toxic poison if ((gBattleMons[battler].status1 & STATUS1_TOXIC_POISON) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - if (ability == ABILITY_POISON_HEAL) { if (!BATTLER_MAX_HP(battler) && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; BattleScriptExecute(BattleScript_PoisonHealActivates); effect++; } } else { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; if ((gBattleMons[battler].status1 & STATUS1_TOXIC_COUNTER) != STATUS1_TOXIC_TURN(15)) // not 16 turns gBattleMons[battler].status1 += STATUS1_TOXIC_TURN(1); - gBattleMoveDamage *= (gBattleMons[battler].status1 & STATUS1_TOXIC_COUNTER) >> 8; + gBattleStruct->moveDamage[battler] *= (gBattleMons[battler].status1 & STATUS1_TOXIC_COUNTER) >> 8; BattleScriptExecute(BattleScript_PoisonTurnDmg); effect++; } @@ -2550,18 +2515,18 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_BURN: // burn if ((gBattleMons[battler].status1 & STATUS1_BURN) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); if (ability == ABILITY_HEATPROOF) { - if (gBattleMoveDamage > (gBattleMoveDamage / 2) + 1) // Record ability if the burn takes less damage than it normally would. + if (gBattleStruct->moveDamage[battler] > (gBattleStruct->moveDamage[battler] / 2) + 1) // Record ability if the burn takes less damage than it normally would. RecordAbilityBattle(battler, ABILITY_HEATPROOF); - gBattleMoveDamage /= 2; + gBattleStruct->moveDamage[battler] /= 2; } - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_BurnTurnDmg); effect++; } @@ -2569,12 +2534,12 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_FROSTBITE: // burn if ((gBattleMons[battler].status1 & STATUS1_FROSTBITE) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (B_BURN_DAMAGE >= GEN_7 ? 16 : 8); + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_FrostbiteTurnDmg); effect++; } @@ -2582,16 +2547,16 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_NIGHTMARES: // spooky nightmares if ((gBattleMons[battler].status2 & STATUS2_NIGHTMARE) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; // R/S does not perform this sleep check, which causes the nightmare effect to // persist even after the affected Pokémon has been awakened by Shed Skin. if (gBattleMons[battler].status1 & STATUS1_SLEEP) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 4; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_NightmareTurnDmg); effect++; } @@ -2604,12 +2569,12 @@ u8 DoBattlerEndTurnEffects(void) break; case ENDTURN_CURSE: // curse if ((gBattleMons[battler].status2 & STATUS2_CURSED) - && IsBattlerAlive(battler)) + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { - MAGIC_GUARD_CHECK; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 4; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_CurseTurnDmg); effect++; } @@ -2620,19 +2585,23 @@ u8 DoBattlerEndTurnEffects(void) { if (--gDisableStructs[battler].wrapTurns != 0) // damaged by wrap { - MAGIC_GUARD_CHECK; + if (IsBattlerProtectedByMagicGuard(battler, ability)) + { + gBattleStruct->turnEffectsTracker++; + break; + } gBattleScripting.animArg1 = gBattleStruct->wrappedMove[battler]; gBattleScripting.animArg2 = gBattleStruct->wrappedMove[battler] >> 8; PREPARE_MOVE_BUFFER(gBattleTextBuff1, gBattleStruct->wrappedMove[battler]); gBattlescriptCurrInstr = BattleScript_WrapTurnDmg; if (GetBattlerHoldEffect(gBattleStruct->wrappedBy[battler], TRUE) == HOLD_EFFECT_BINDING_BAND) - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8); + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 6 : 8); else - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16); + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (B_BINDING_DAMAGE >= GEN_6 ? 8 : 16); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; } else // broke free { @@ -2662,7 +2631,7 @@ u8 DoBattlerEndTurnEffects(void) for (gBattlerAttacker = 0; gBattlerAttacker < gBattlersCount; gBattlerAttacker++) { if ((gBattleMons[gBattlerAttacker].status1 & STATUS1_SLEEP) - && GetBattlerAbility(gBattlerAttacker) != ABILITY_SOUNDPROOF) + && (B_UPROAR_IGNORE_SOUNDPROOF >= GEN_5 || GetBattlerAbility(gBattlerAttacker) != ABILITY_SOUNDPROOF)) { gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP; gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; @@ -2802,7 +2771,7 @@ u8 DoBattlerEndTurnEffects(void) && !IsLeafGuardProtected(battler)) { CancelMultiTurnMoves(battler); - gEffectBattler = battler; + gEffectBattler = gBattlerTarget = battler; if (IsBattlerTerrainAffected(battler, STATUS_FIELD_ELECTRIC_TERRAIN)) { gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TERRAINPREVENTS_ELECTRIC; @@ -2813,6 +2782,10 @@ u8 DoBattlerEndTurnEffects(void) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_TERRAINPREVENTS_MISTY; BattleScriptExecute(BattleScript_TerrainPreventsEnd2); } + else if (IsSleepClauseActiveForSide(GetBattlerSide(battler))) + { + BattleScriptExecute(BattleScript_SleepClausePreventsEnd); + } else { if (B_SLEEP_TURNS >= GEN_5) @@ -2820,6 +2793,7 @@ u8 DoBattlerEndTurnEffects(void) else gBattleMons[battler].status1 |= ((Random() % 4) + 3); + TryActivateSleepClause(battler, gBattlerPartyIndexes[battler]); BtlController_EmitSetMonData(battler, BUFFER_A, REQUEST_STATUS_BATTLE, 0, 4, &gBattleMons[battler].status1); MarkBattlerForControllerExec(battler); BattleScriptExecute(BattleScript_YawnMakesAsleep); @@ -2924,15 +2898,17 @@ u8 DoBattlerEndTurnEffects(void) gBattleStruct->turnEffectsTracker++; break; case ENDTURN_SALT_CURE: - if (gStatuses4[battler] & STATUS4_SALT_CURE && IsBattlerAlive(battler)) + if (gStatuses4[battler] & STATUS4_SALT_CURE + && IsBattlerAlive(battler) + && !IsBattlerProtectedByMagicGuard(battler, ability)) { gBattlerTarget = battler; - if (IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_STEEL) || IS_BATTLER_OF_TYPE(gBattlerTarget, TYPE_WATER)) - gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 4; + if (IS_BATTLER_ANY_TYPE(battler, TYPE_STEEL, TYPE_WATER)) + gBattleStruct->moveDamage[battler] = gBattleMons[battler].maxHP / 4; else - gBattleMoveDamage = gBattleMons[gBattlerTarget].maxHP / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = gBattleMons[battler].maxHP / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; PREPARE_MOVE_BUFFER(gBattleTextBuff1, MOVE_SALT_CURE); BattleScriptExecute(BattleScript_SaltCureExtraDamage); effect++; @@ -2982,7 +2958,7 @@ u8 DoBattlerEndTurnEffects(void) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { gBattleScripting.battler = battler; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 6; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 6; ChooseDamageNonTypesString(gSideTimers[side].damageNonTypesType); BattleScriptExecute(BattleScript_DamageNonTypesContinues); effect++; @@ -2993,7 +2969,7 @@ u8 DoBattlerEndTurnEffects(void) case ENDTURN_SEA_OF_FIRE_DAMAGE: if (IsBattlerAlive(battler) && gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_SEA_OF_FIRE) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; BtlController_EmitStatusAnimation(battler, BUFFER_A, FALSE, STATUS1_BURN); MarkBattlerForControllerExec(battler); BattleScriptExecute(BattleScript_HurtByTheSeaOfFire); @@ -3084,7 +3060,7 @@ bool32 HandleWishPerishSongOnTurnEnd(void) if (gDisableStructs[battler].perishSongTimer == 0) { gStatuses3[battler] &= ~STATUS3_PERISH_SONG; - gBattleMoveDamage = gBattleMons[battler].hp; + gBattleStruct->moveDamage[battler] = gBattleMons[battler].hp; gBattlescriptCurrInstr = BattleScript_PerishSongTakesLife; } else @@ -3238,7 +3214,8 @@ void SetAtkCancellerForCalledMove(void) u8 AtkCanceller_UnableToUseMove(u32 moveType) { - u8 effect = 0; + u32 effect = 0; + u32 obedienceResult; do { switch (gBattleStruct->atkCancellerTracker) @@ -3264,6 +3241,7 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) { if (UproarWakeUpCheck(gBattlerAttacker)) { + TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), gBattlerPartyIndexes[gBattlerAttacker]); gBattleMons[gBattlerAttacker].status1 &= ~STATUS1_SLEEP; gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; BattleScriptPushCursor(); @@ -3293,6 +3271,7 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) } else { + TryDeactivateSleepClause(GetBattlerSide(gBattlerAttacker), gBattlerPartyIndexes[gBattlerAttacker]); gBattleMons[gBattlerAttacker].status2 &= ~STATUS2_NIGHTMARE; BattleScriptPushCursor(); gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_WOKE_UP; @@ -3322,6 +3301,62 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) } gBattleStruct->atkCancellerTracker++; break; + case CANCELLER_OBEDIENCE: + obedienceResult = GetAttackerObedienceForAction(); + if (obedienceResult != OBEYS + && !(gHitMarker & HITMARKER_NO_PPDEDUCT) // Don't check obedience after first hit of multi target move or multi hit moves + && !(gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS)) + { + switch (obedienceResult) + { + case DISOBEYS_LOAFS: + // Randomly select, then print a disobedient string + // B_MSG_LOAFING, B_MSG_WONT_OBEY, B_MSG_TURNED_AWAY, or B_MSG_PRETEND_NOT_NOTICE + gBattleCommunication[MULTISTRING_CHOOSER] = MOD(Random(), NUM_LOAF_STRINGS); + gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; + break; + case DISOBEYS_HITS_SELF: + gBattlerTarget = gBattlerAttacker; + struct DamageCalculationData damageCalcData; + damageCalcData.battlerAtk = damageCalcData.battlerDef = gBattlerAttacker; + damageCalcData.move = MOVE_NONE; + damageCalcData.moveType = TYPE_MYSTERY; + damageCalcData.isCrit = FALSE; + damageCalcData.randomFactor = FALSE; + damageCalcData.updateFlags = TRUE; + gBattleStruct->moveDamage[gBattlerAttacker] = CalculateMoveDamage(&damageCalcData, 40); + gBattlescriptCurrInstr = BattleScript_IgnoresAndHitsItself; + gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; + gHitMarker |= HITMARKER_OBEYS; + break; + case DISOBEYS_FALL_ASLEEP: + if (IsSleepClauseEnabled()) + gBattleStruct->sleepClauseEffectExempt |= (1u << gBattlerAttacker); + gBattlescriptCurrInstr = BattleScript_IgnoresAndFallsAsleep; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; + break; + case DISOBEYS_WHILE_ASLEEP: + gBattlescriptCurrInstr = BattleScript_IgnoresWhileAsleep; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; + break; + case DISOBEYS_RANDOM_MOVE: + gCalledMove = gBattleMons[gBattlerAttacker].moves[gCurrMovePos]; + SetAtkCancellerForCalledMove(); + gBattlescriptCurrInstr = BattleScript_IgnoresAndUsesRandomMove; + gBattlerTarget = GetMoveTarget(gCalledMove, NO_TARGET_OVERRIDE); + gHitMarker |= HITMARKER_DISOBEDIENT_MOVE; + gHitMarker |= HITMARKER_OBEYS; + break; + } + effect = 1; + } + else + { + gHitMarker |= HITMARKER_OBEYS; + } + gBattleStruct->atkCancellerTracker++; + break; case CANCELLER_TRUANT: // truant if (GetBattlerAbility(gBattlerAttacker) == ABILITY_TRUANT && gDisableStructs[gBattlerAttacker].truantCounter) { @@ -3330,7 +3365,7 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_LOAFING; gBattlerAbility = gBattlerAttacker; gBattlescriptCurrInstr = BattleScript_TruantLoafingAround; - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[gBattlerTarget] |= MOVE_RESULT_MISSED; effect = 1; } gBattleStruct->atkCancellerTracker++; @@ -3428,7 +3463,14 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) { gBattleCommunication[MULTISTRING_CHOOSER] = TRUE; gBattlerTarget = gBattlerAttacker; - gBattleMoveDamage = CalculateMoveDamage(MOVE_NONE, gBattlerAttacker, gBattlerAttacker, TYPE_MYSTERY, 40, FALSE, FALSE, TRUE); + struct DamageCalculationData damageCalcData; + damageCalcData.battlerAtk = damageCalcData.battlerDef = gBattlerAttacker; + damageCalcData.move = MOVE_NONE; + damageCalcData.moveType = TYPE_MYSTERY; + damageCalcData.isCrit = FALSE; + damageCalcData.randomFactor = FALSE; + damageCalcData.updateFlags = TRUE; + gBattleStruct->moveDamage[gBattlerAttacker] = CalculateMoveDamage(&damageCalcData, 40); gProtectStructs[gBattlerAttacker].confusionSelfDmg = TRUE; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; } @@ -3495,7 +3537,6 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) if (gBideDmg[gBattlerAttacker]) { gCurrentMove = MOVE_BIDE; - gBattleScripting.bideDmg = gBideDmg[gBattlerAttacker] * 2; gBattlerTarget = gBideTarget[gBattlerAttacker]; if (gAbsentBattlerFlags & (1u << gBattlerTarget)) gBattlerTarget = GetMoveTarget(MOVE_BIDE, MOVE_TARGET_SELECTED + 1); @@ -3567,10 +3608,9 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) gProtectStructs[gBattlerAttacker].powderSelfDmg = TRUE; if (GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD && (B_POWDER_RAIN < GEN_7 || !IsBattlerWeatherAffected(gBattlerAttacker, B_WEATHER_RAIN_PRIMAL))) - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; if (GetActiveGimmick(gBattlerAttacker) != GIMMICK_Z_MOVE - || gBattleStruct->obedienceResult != OBEYS || HasTrainerUsedGimmick(gBattlerAttacker, GIMMICK_Z_MOVE)) gBattlescriptCurrInstr = BattleScript_MoveUsedPowder; gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE; @@ -3591,8 +3631,7 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) gBattleStruct->atkCancellerTracker++; break; case CANCELLER_Z_MOVES: - if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_Z_MOVE - && gBattleStruct->obedienceResult == OBEYS) + if (GetActiveGimmick(gBattlerAttacker) == GIMMICK_Z_MOVE) { // For Z-Mirror Move, so it doesn't play the animation twice. bool32 alreadyUsed = HasTrainerUsedGimmick(gBattlerAttacker, GIMMICK_Z_MOVE); @@ -3707,6 +3746,53 @@ u8 AtkCanceller_UnableToUseMove(u32 moveType) } gBattleStruct->atkCancellerTracker++; break; + case CANCELLER_MULTI_TARGET_MOVES: + if (!IsDoubleBattle()) + { + gBattleStruct->atkCancellerTracker++; + break; + } + + u32 moveTarget = GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove); + if (IsSpreadMove(moveTarget)) + { + for (u32 battlerDef = 0; battlerDef < gBattlersCount; battlerDef++) + { + if (gBattleStruct->bouncedMoveIsUsed && B_SIDE_OPPONENT == GetBattlerSide(battlerDef)) + continue; + + if (gBattlerAttacker == battlerDef + || !IsBattlerAlive(battlerDef) + || (moveTarget == MOVE_TARGET_BOTH && gBattlerAttacker == BATTLE_PARTNER(battlerDef)) + || IsBattlerProtected(gBattlerAttacker, battlerDef, gCurrentMove)) // Missing Invulnerable check + { + gBattleStruct->moveResultFlags[battlerDef] = MOVE_RESULT_NO_EFFECT; + gBattleStruct->noResultString[battlerDef] = TRUE; + } + else if (AbilityBattleEffects(ABILITYEFFECT_WOULD_BLOCK, battlerDef, 0, 0, 0) + || (IsBattlerTerrainAffected(gBattlerAttacker, STATUS_FIELD_PSYCHIC_TERRAIN) && GetMovePriority(gBattlerAttacker, gCurrentMove) > 0)) + { + gBattleStruct->moveResultFlags[battlerDef] = 0; + gBattleStruct->noResultString[battlerDef] = TRUE; + } + else if (AbilityBattleEffects(ABILITYEFFECT_WOULD_ABSORB, battlerDef, 0, 0, gCurrentMove)) + { + gBattleStruct->moveResultFlags[battlerDef] = 0; + gBattleStruct->noResultString[battlerDef] = DO_ACCURACY_CHECK; + } + else + { + CalcTypeEffectivenessMultiplier(gCurrentMove, gMovesInfo[gCurrentMove].type, gBattlerAttacker, battlerDef, GetBattlerAbility(battlerDef), TRUE); + } + } + if (moveTarget == MOVE_TARGET_BOTH) + gBattleStruct->numSpreadTargets = CountAliveMonsInBattle(BATTLE_ALIVE_SIDE, gBattlerAttacker); + else + gBattleStruct->numSpreadTargets = CountAliveMonsInBattle(BATTLE_ALIVE_EXCEPT_BATTLER, gBattlerAttacker); + + } + gBattleStruct->atkCancellerTracker++; + break; case CANCELLER_END: break; } @@ -4109,12 +4195,125 @@ static void ChooseStatBoostAnimation(u32 battler) #undef ANIM_STAT_ACC #undef ANIM_STAT_EVASION +u32 CanAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef) +{ + enum MoveBlocked effect = MOVE_BLOCKED_BY_NO_ABILITY; + + switch (abilityDef) + { + case ABILITY_SOUNDPROOF: + if (gMovesInfo[move].soundMove && !(GetBattlerMoveTargetType(battlerAtk, move) & MOVE_TARGET_USER)) + effect = MOVE_BLOCKED_BY_SOUNDPROOF_OR_BULLETPROOF; + break; + case ABILITY_BULLETPROOF: + if (gMovesInfo[move].ballisticMove) + effect = MOVE_BLOCKED_BY_SOUNDPROOF_OR_BULLETPROOF; + break; + case ABILITY_DAZZLING: + case ABILITY_QUEENLY_MAJESTY: + case ABILITY_ARMOR_TAIL: + if (GetBattlerSide(battlerAtk) != GetBattlerSide(battlerDef)) + { + u32 priority = AI_DATA->aiCalcInProgress ? GetMovePriority(battlerAtk, move) : GetChosenMovePriority(battlerAtk); + if (priority > 0) + effect = MOVE_BLOCKED_BY_DAZZLING; + } + break; + case ABILITY_GOOD_AS_GOLD: + if (IS_MOVE_STATUS(move)) + { + u32 moveTarget = GetBattlerMoveTargetType(battlerAtk, move); + if (!(moveTarget & MOVE_TARGET_OPPONENTS_FIELD) && !(moveTarget & MOVE_TARGET_ALL_BATTLERS)) + effect = MOVE_BLOCKED_BY_GOOD_AS_GOLD; + } + break; + } + + if (!effect) + effect = CanPartnerAbilityBlockMove(battlerAtk, battlerDef, move, GetBattlerAbility(BATTLE_PARTNER(battlerDef))); + + return effect; +} + +u32 CanPartnerAbilityBlockMove(u32 battlerAtk, u32 battlerDef, u32 move, u32 abilityDef) +{ + switch (abilityDef) + { + case ABILITY_DAZZLING: + case ABILITY_QUEENLY_MAJESTY: + case ABILITY_ARMOR_TAIL: + if (GetBattlerSide(battlerAtk) != GetBattlerSide(battlerDef)) + { + s32 priority = AI_DATA->aiCalcInProgress ? GetMovePriority(battlerAtk, move) : GetChosenMovePriority(battlerAtk); + if (priority > 0) + return MOVE_BLOCKED_BY_PARTNER_DAZZLING; + } + break; + } + return MOVE_BLOCKED_BY_NO_ABILITY; +} + +u32 CanAbilityAbsorbMove(u32 battlerAtk, u32 battlerDef, u32 abilityDef, u32 move, u32 moveType) +{ + enum MoveAbsorbed effect = MOVE_ABSORBED_BY_NO_ABILITY; + + switch (abilityDef) + { + default: + effect = MOVE_ABSORBED_BY_NO_ABILITY; + break; + case ABILITY_VOLT_ABSORB: + if (moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) + effect = MOVE_ABSORBED_BY_DRAIN_HP_ABILITY; + break; + case ABILITY_WATER_ABSORB: + case ABILITY_DRY_SKIN: + if (moveType == TYPE_WATER) + effect = MOVE_ABSORBED_BY_DRAIN_HP_ABILITY; + break; + case ABILITY_EARTH_EATER: + if (moveType == TYPE_GROUND) + effect = MOVE_ABSORBED_BY_DRAIN_HP_ABILITY; + break; + case ABILITY_MOTOR_DRIVE: + if (moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) // Potential bug in singles (might be solved with simu hp reudction) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_LIGHTNING_ROD: + if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) // Potential bug in singles (might be solved with simu hp reudction) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_STORM_DRAIN: + if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_WATER) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_SAP_SIPPER: + if (moveType == TYPE_GRASS) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_WELL_BAKED_BODY: + if (moveType == TYPE_FIRE) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_WIND_RIDER: + if (gMovesInfo[move].windMove && !(GetBattlerMoveTargetType(battlerAtk, move) & MOVE_TARGET_USER)) + effect = MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY; + break; + case ABILITY_FLASH_FIRE: + if (moveType == TYPE_FIRE && (B_FLASH_FIRE_FROZEN >= GEN_5 || !(gBattleMons[battlerDef].status1 & STATUS1_FREEZE))) + effect = MOVE_ABSORBED_BY_BOOST_FLASH_FIRE; + break; + } + + return effect; +} + u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 moveArg) { u32 effect = 0; - u32 moveType, move; - u32 side; - u32 i, j; + u32 moveType = 0, move = 0; + u32 side = 0; + u32 i = 0, j = 0; u32 partner = 0; struct Pokemon *mon; @@ -4396,7 +4595,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 RecordAbilityBattle(chosenTarget, gLastUsedAbility); // Record the opposing battler has this ability gBattlerAbility = battler; - PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, chosenTarget, gBattlerPartyIndexes[chosenTarget]) + PREPARE_MON_NICK_WITH_PREFIX_LOWER_BUFFER(gBattleTextBuff1, chosenTarget, gBattlerPartyIndexes[chosenTarget]) PREPARE_ABILITY_BUFFER(gBattleTextBuff2, gLastUsedAbility) } } @@ -4892,10 +5091,10 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && CountBattlerStatIncreases(BATTLE_PARTNER(battler), FALSE)) { gSpecialStatuses[battler].switchInAbilityDone = TRUE; - gBattlerAttacker = battler; + gBattlerAttacker = gBattlerAbility = battler; for (i = 0; i < NUM_BATTLE_STATS; i++) gBattleMons[battler].statStages[i] = gBattleMons[BATTLE_PARTNER(battler)].statStages[i]; - gBattlerTarget = BATTLE_PARTNER(battler); + gBattleScripting.battler = BATTLE_PARTNER(battler); BattleScriptPushCursorAndCallback(BattleScript_CostarActivates); effect++; } @@ -4925,7 +5124,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattlerTarget = partner; gBattlerAttacker = battler; gSpecialStatuses[battler].switchInAbilityDone = TRUE; - gBattleMoveDamage = (GetNonDynamaxMaxHP(partner) / 4) * -1; + gBattleStruct->moveDamage[partner] = (GetNonDynamaxMaxHP(partner) / 4) * -1; BattleScriptPushCursorAndCallback(BattleScript_HospitalityActivates); effect++; } @@ -5043,10 +5242,10 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 && !(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { BattleScriptPushCursorAndCallback(BattleScript_RainDishActivates); - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / (gLastUsedAbility == ABILITY_RAIN_DISH ? 16 : 8); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / (gLastUsedAbility == ABILITY_RAIN_DISH ? 16 : 8); + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; effect++; } break; @@ -5059,13 +5258,17 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_SHED_SKIN: if ((gBattleMons[battler].status1 & STATUS1_ANY) - && (B_ABILITY_TRIGGER_CHANCE >= GEN_4 ? RandomPercentage(RNG_SHED_SKIN, 30) : RandomChance(RNG_SHED_SKIN, 1, 3))) + && (B_ABILITY_TRIGGER_CHANCE == GEN_4 ? RandomPercentage(RNG_SHED_SKIN, 30) : RandomChance(RNG_SHED_SKIN, 1, 3))) { ABILITY_HEAL_MON_STATUS: if (gBattleMons[battler].status1 & (STATUS1_POISON | STATUS1_TOXIC_POISON)) StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); if (gBattleMons[battler].status1 & STATUS1_SLEEP) + { StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); + } + if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); if (gBattleMons[battler].status1 & STATUS1_BURN) @@ -5142,9 +5345,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 { SOLAR_POWER_HP_DROP: BattleScriptPushCursorAndCallback(BattleScript_SolarPowerActivates); - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; effect++; } break; @@ -5152,7 +5355,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 gBattleScripting.battler = BATTLE_PARTNER(battler); if (IsBattlerAlive(gBattleScripting.battler) && gBattleMons[gBattleScripting.battler].status1 & STATUS1_ANY - && (Random() % 100) < 30) + && RandomPercentage(RNG_HEALER, 30)) { BattleScriptPushCursorAndCallback(BattleScript_HealerActivates); effect++; @@ -5208,153 +5411,87 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } } break; - case ABILITYEFFECT_MOVES_BLOCK: case ABILITYEFFECT_WOULD_BLOCK: + effect = CanAbilityBlockMove(gBattlerAttacker, battler, move, gLastUsedAbility); + if (effect && gLastUsedAbility != 0xFFFF) + RecordAbilityBattle(battler, gLastUsedAbility); + break; + case ABILITYEFFECT_MOVES_BLOCK: { - u16 moveTarget = GetBattlerMoveTargetType(battler, move); + effect = CanAbilityBlockMove(gBattlerAttacker, battler, move, gLastUsedAbility); const u8 * battleScriptBlocksMove = NULL; - - switch (gLastUsedAbility) - { - case ABILITY_SOUNDPROOF: - if (gMovesInfo[move].soundMove && !(moveTarget & MOVE_TARGET_USER)) - effect = 1; - break; - case ABILITY_BULLETPROOF: - if (gMovesInfo[move].ballisticMove) - effect = 1; - break; - case ABILITY_DAZZLING: - case ABILITY_QUEENLY_MAJESTY: - case ABILITY_ARMOR_TAIL: - if (GetChosenMovePriority(gBattlerAttacker) > 0 && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(battler)) - effect = 2; - break; - case ABILITY_GOOD_AS_GOLD: - if (IS_MOVE_STATUS(gCurrentMove) - && !(moveTarget & MOVE_TARGET_OPPONENTS_FIELD) - && !(moveTarget & MOVE_TARGET_ALL_BATTLERS)) - effect = 3; - break; - } - - if (!effect) - { - switch (GetBattlerAbility(BATTLE_PARTNER(battler))) - { - case ABILITY_DAZZLING: - case ABILITY_QUEENLY_MAJESTY: - case ABILITY_ARMOR_TAIL: - if (GetChosenMovePriority(gBattlerAttacker) > 0 && GetBattlerSide(gBattlerAttacker) != GetBattlerSide(battler)) - effect = 4; - break; - } - } - - if (effect == 1) + switch (effect) { + case MOVE_BLOCKED_BY_SOUNDPROOF_OR_BULLETPROOF: if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; battleScriptBlocksMove = BattleScript_SoundproofProtected; - } - else if (effect == 2 || effect == 4) - { - if (effect == 4) + break; + case MOVE_BLOCKED_BY_DAZZLING: + case MOVE_BLOCKED_BY_PARTNER_DAZZLING: + if (effect == MOVE_BLOCKED_BY_PARTNER_DAZZLING) gBattleScripting.battler = BATTLE_PARTNER(battler); else gBattleScripting.battler = battler; - if (gBattleMons[gBattlerAttacker].status2 & STATUS2_MULTIPLETURNS) gHitMarker |= HITMARKER_NO_PPDEDUCT; battleScriptBlocksMove = BattleScript_DazzlingProtected; - } - else if (effect == 3) - { + break; + case MOVE_BLOCKED_BY_GOOD_AS_GOLD: battleScriptBlocksMove = BattleScript_GoodAsGoldActivates; + break; + default: + if (GetChosenMovePriority(gBattlerAttacker) > 0 + && BlocksPrankster(move, gBattlerAttacker, gBattlerTarget, TRUE) + && !(IS_MOVE_STATUS(move) && (gLastUsedAbility == ABILITY_MAGIC_BOUNCE || gProtectStructs[gBattlerTarget].bounceMove))) + { + if (!IsDoubleBattle() + || !(GetBattlerMoveTargetType(gBattlerAttacker, move) & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) + CancelMultiTurnMoves(gBattlerAttacker); // Don't cancel moves that can hit two targets bc one target might not be protected + gBattleScripting.battler = gBattlerAbility = gBattlerTarget; + battleScriptBlocksMove = BattleScript_DarkTypePreventsPrankster; + effect = 1; + } } - else if (GetChosenMovePriority(gBattlerAttacker) > 0 - && BlocksPrankster(move, gBattlerAttacker, gBattlerTarget, TRUE) - && !(IS_MOVE_STATUS(move) && (gLastUsedAbility == ABILITY_MAGIC_BOUNCE || gProtectStructs[gBattlerTarget].bounceMove))) - { - if (!IsDoubleBattle() || !(moveTarget & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY))) - CancelMultiTurnMoves(gBattlerAttacker); // Don't cancel moves that can hit two targets bc one target might not be protected - gBattleScripting.battler = gBattlerAbility = gBattlerTarget; - battleScriptBlocksMove = BattleScript_DarkTypePreventsPrankster; - effect = 1; - } - if (caseID == ABILITYEFFECT_WOULD_BLOCK) - { - if (effect && gLastUsedAbility != 0xFFFF) - RecordAbilityBattle(battler, gLastUsedAbility); - - return effect; - } - else if (effect) - { + if (effect) gBattlescriptCurrInstr = battleScriptBlocksMove; - } - break; } - case ABILITYEFFECT_ABSORBING: + break; case ABILITYEFFECT_WOULD_ABSORB: - if (move != MOVE_NONE) + effect = CanAbilityAbsorbMove(gBattlerAttacker, battler, gLastUsedAbility, move, moveType); + gBattleStruct->pledgeMove = FALSE; + if (effect && gLastUsedAbility != 0xFFFF) + RecordAbilityBattle(battler, gLastUsedAbility); + return effect; + case ABILITYEFFECT_ABSORBING: { - u8 statId = 0; - u8 statAmount = 1; - switch (gLastUsedAbility) + u32 statId = 0; + u32 statAmount = 1; + effect = CanAbilityAbsorbMove(gBattlerAttacker, battler, gLastUsedAbility, move, moveType); + if (effect) { - case ABILITY_VOLT_ABSORB: - if (moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) - effect = 1; - break; - case ABILITY_WATER_ABSORB: - case ABILITY_DRY_SKIN: - if (moveType == TYPE_WATER) - effect = 1; - break; - case ABILITY_MOTOR_DRIVE: - if (moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) - effect = 2, statId = STAT_SPEED; - break; - case ABILITY_LIGHTNING_ROD: - if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_ELECTRIC && gMovesInfo[move].target != MOVE_TARGET_ALL_BATTLERS) - effect = 2, statId = STAT_SPATK; - break; - case ABILITY_STORM_DRAIN: - if (B_REDIRECT_ABILITY_IMMUNITY >= GEN_5 && moveType == TYPE_WATER) - effect = 2, statId = STAT_SPATK; - break; - case ABILITY_SAP_SIPPER: - if (moveType == TYPE_GRASS) - effect = 2, statId = STAT_ATK; - break; - case ABILITY_FLASH_FIRE: - if (moveType == TYPE_FIRE && (B_FLASH_FIRE_FROZEN >= GEN_5 || !(gBattleMons[battler].status1 & STATUS1_FREEZE))) - effect = 3; - break; - case ABILITY_WELL_BAKED_BODY: - if (moveType == TYPE_FIRE) - effect = 2, statId = STAT_DEF, statAmount = 2; - break; - case ABILITY_WIND_RIDER: - if (gMovesInfo[gCurrentMove].windMove && !(GetBattlerMoveTargetType(gBattlerAttacker, gCurrentMove) & MOVE_TARGET_USER)) - effect = 2, statId = STAT_ATK; - break; - case ABILITY_EARTH_EATER: - if (moveType == TYPE_GROUND) - effect = 1; - break; + switch(gLastUsedAbility) + { + case ABILITY_MOTOR_DRIVE: + statId = STAT_SPEED; + break; + case ABILITY_LIGHTNING_ROD: + case ABILITY_STORM_DRAIN: + statId = STAT_SPATK; + break; + case ABILITY_SAP_SIPPER: + case ABILITY_WIND_RIDER: + statId = STAT_ATK; + break; + case ABILITY_WELL_BAKED_BODY: + statAmount = 2; + statId = STAT_DEF; + break; + } } - if (caseID == ABILITYEFFECT_WOULD_ABSORB) - { - gBattleStruct->pledgeMove = FALSE; - if (effect && gLastUsedAbility != 0xFFFF) - RecordAbilityBattle(battler, gLastUsedAbility); - - return effect; - } - else if (effect == 1) // Drain Hp ability. + switch (effect) { + case MOVE_ABSORBED_BY_DRAIN_HP_ABILITY: gBattleStruct->pledgeMove = FALSE; if (BATTLER_MAX_HP(battler) || (B_HEAL_BLOCKING >= GEN_5 && gStatuses3[battler] & STATUS3_HEAL_BLOCK)) { @@ -5370,14 +5507,13 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 else gBattlescriptCurrInstr = BattleScript_MoveHPDrain_PPLoss; - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 4; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; } - } - else if (effect == 2) // Boost Stat ability; - { + break; + case MOVE_ABSORBED_BY_STAT_INCREASE_ABILITY: gBattleStruct->pledgeMove = FALSE; if (!CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN)) { @@ -5397,9 +5533,8 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (B_ABSORBING_ABILITY_STRING < GEN_5) PREPARE_STAT_BUFFER(gBattleTextBuff1, statId); } - } - else if (effect == 3) - { + break; + case MOVE_ABSORBED_BY_BOOST_FLASH_FIRE: gBattleStruct->pledgeMove = FALSE; if (!(gBattleResources->flags->flags[battler] & RESOURCE_FLAG_FLASH_FIRE)) { @@ -5418,17 +5553,18 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 else gBattlescriptCurrInstr = BattleScript_FlashFireBoost_PPLoss; } + break; } - if (effect) gMultiHitCounter = 0; // Prevent multi-hit moves from hitting more than once after move has been absorbed. + } break; case ABILITYEFFECT_MOVE_END: // Think contact abilities. switch (gLastUsedAbility) { case ABILITY_JUSTIFIED: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && moveType == TYPE_DARK @@ -5442,7 +5578,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_RATTLED: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && (moveType == TYPE_DARK || moveType == TYPE_BUG || moveType == TYPE_GHOST) @@ -5456,7 +5592,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_WATER_COMPACTION: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && moveType == TYPE_WATER @@ -5470,7 +5606,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_STAMINA: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && gBattlerAttacker != gBattlerTarget && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) @@ -5484,7 +5620,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_BERSERK: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && HadMoreThanHalfHpNowDoesnt(battler) @@ -5501,7 +5637,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_EMERGENCY_EXIT: case ABILITY_WIMP_OUT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) // Had more than half of hp before, now has less @@ -5519,7 +5655,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_WEAK_ARMOR: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && IS_MOVE_PHYSICAL(gCurrentMove) @@ -5535,7 +5671,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_CURSED_BODY: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && TARGET_TURN_DAMAGED && gDisableStructs[gBattlerAttacker].disabledMove == MOVE_NONE && IsBattlerAlive(gBattlerAttacker) @@ -5554,7 +5690,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_LINGERING_AROMA: case ABILITY_MUMMY: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS @@ -5570,7 +5706,8 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; } - gLastUsedAbility = gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; + gLastUsedAbility = gBattleMons[gBattlerAttacker].ability; + gBattleMons[gBattlerAttacker].ability = gBattleStruct->overwrittenAbilities[gBattlerAttacker] = gBattleMons[gBattlerTarget].ability; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_MummyActivates; effect++; @@ -5578,7 +5715,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_WANDERING_SPIRIT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && IsBattlerAlive(gBattlerAttacker) && TARGET_TURN_DAMAGED && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS @@ -5602,8 +5739,8 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_ANGER_POINT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) - && gIsCriticalHit + if (MoveResultHasEffect(battler) + && gSpecialStatuses[battler].criticalHit && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && CompareStat(battler, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN)) @@ -5615,7 +5752,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_COLOR_CHANGE: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(battler) && move != MOVE_STRUGGLE && gMovesInfo[move].power != 0 && TARGET_TURN_DAMAGED @@ -5633,7 +5770,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_GOOEY: case ABILITY_TANGLING_HAIR: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && (CompareStat(gBattlerAttacker, STAT_SPEED, MIN_STAT_STAGE, CMP_GREATER_THAN) || GetBattlerAbility(gBattlerAttacker) == ABILITY_MIRROR_ARMOR) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg @@ -5651,16 +5788,16 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; case ABILITY_ROUGH_SKIN: case ABILITY_IRON_BARBS: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS && IsMoveMakingContact(move, gBattlerAttacker)) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / (B_ROUGH_SKIN_DMG >= GEN_4 ? 8 : 16); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / (B_ROUGH_SKIN_DMG >= GEN_4 ? 8 : 16); + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RoughSkinActivates; @@ -5668,13 +5805,12 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_AFTERMATH: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !IsBattlerAlive(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS && IsMoveMakingContact(move, gBattlerAttacker)) { - u32 battler; if ((battler = IsAbilityOnField(ABILITY_DAMP))) { gBattleScripting.battler = battler - 1; @@ -5683,9 +5819,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } else { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AftermathDmg; } @@ -5693,11 +5829,11 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_INNARDS_OUT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !IsBattlerAlive(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker)) { - gBattleMoveDamage = gSpecialStatuses[gBattlerTarget].shellBellDmg; + gBattleStruct->moveDamage[gBattlerAttacker] = gSpecialStatuses[gBattlerTarget].shellBellDmg; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_AftermathDmg; effect++; @@ -5731,14 +5867,16 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 goto STATIC; // Sleep if (i < sleep - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + && MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED - && CanBeSlept(gBattlerAttacker, ability) + && CanBeSlept(gBattlerAttacker, ability, NOT_BLOCKED_BY_SLEEP_CLAUSE) && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS && IsMoveMakingContact(move, gBattlerAttacker)) { + if (IsSleepClauseEnabled()) + gBattleStruct->sleepClauseEffectExempt |= (1u << gBattlerAttacker); gBattleScripting.moveEffect = MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_SLEEP; PREPARE_ABILITY_BUFFER(gBattleTextBuff1, gLastUsedAbility); BattleScriptPushCursor(); @@ -5753,7 +5891,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (B_ABILITY_TRIGGER_CHANCE >= GEN_4 ? RandomPercentage(RNG_POISON_POINT, 30) : RandomChance(RNG_POISON_POINT, 1, 3)) { POISON_POINT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED @@ -5774,7 +5912,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 if (B_ABILITY_TRIGGER_CHANCE >= GEN_4 ? RandomPercentage(RNG_STATIC, 30) : RandomChance(RNG_STATIC, 1, 3)) { STATIC: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED @@ -5792,7 +5930,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_FLAME_BODY: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS @@ -5810,7 +5948,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_CUTE_CHARM: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED @@ -5838,7 +5976,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_COTTON_DOWN: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerAttacker) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED) @@ -5850,7 +5988,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_STEAM_ENGINE: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) && CompareStat(battler, STAT_SPEED, MAX_STAT_STAGE, CMP_LESS_THAN) @@ -5864,7 +6002,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_SAND_SPIT: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && !(gBattleWeather & B_WEATHER_SANDSTORM && WEATHER_HAS_EFFECT)) @@ -5885,7 +6023,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_PERISH_BODY: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) @@ -5906,7 +6044,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_GULP_MISSILE: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && IsBattlerAlive(battler) @@ -5914,9 +6052,9 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 { if (GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 4; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; } switch(gBattleMons[gBattlerTarget].species) @@ -5937,7 +6075,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_SEED_SOWER: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && IsBattlerAlive(gBattlerTarget) @@ -5949,7 +6087,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_THERMAL_EXCHANGE: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && TARGET_TURN_DAMAGED && IsBattlerAlive(gBattlerTarget) && CompareStat(gBattlerTarget, STAT_ATK, MAX_STAT_STAGE, CMP_LESS_THAN) @@ -5963,7 +6101,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_ANGER_SHELL: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && (gMultiHitCounter == 0 || gMultiHitCounter == 1) // Activates after all hits from a multi-hit move. @@ -5981,7 +6119,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 break; // fall through case ABILITY_ELECTROMORPHOSIS: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && TARGET_TURN_DAMAGED && IsBattlerAlive(gBattlerTarget)) @@ -5992,7 +6130,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_TOXIC_DEBRIS: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && (!gBattleStruct->isSkyBattle) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && IS_MOVE_PHYSICAL(gCurrentMove) @@ -6011,7 +6149,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 switch (gLastUsedAbility) { case ABILITY_POISON_TOUCH: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && CanBePoisoned(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget)) @@ -6029,7 +6167,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_TOXIC_CHAIN: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && CanBePoisoned(gBattlerAttacker, gBattlerTarget, GetBattlerAbility(gBattlerTarget)) @@ -6045,7 +6183,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_STENCH: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (MoveResultHasEffect(gBattlerTarget) && IsBattlerAlive(gBattlerTarget) && !gProtectStructs[gBattlerAttacker].confusionSelfDmg && RandomChance(RNG_STENCH, 1, 10) @@ -6171,6 +6309,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 case ABILITY_VITAL_SPIRIT: if (gBattleMons[battler].status1 & STATUS1_SLEEP) { + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); effect = 1; @@ -6350,7 +6489,7 @@ u32 AbilityBattleEffects(u32 caseID, u32 battler, u32 ability, u32 special, u32 } break; case ABILITY_PROTOSYNTHESIS: - if (!gDisableStructs[battler].weatherAbilityDone + if (!gDisableStructs[battler].weatherAbilityDone && (gBattleWeather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT && !(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) && !(gBattleStruct->boosterEnergyActivates & (1u << battler))) @@ -6408,17 +6547,8 @@ bool32 TryPrimalReversion(u32 battler) if (GetBattlerHoldEffect(battler, FALSE) == HOLD_EFFECT_PRIMAL_ORB && GetBattleFormChangeTargetSpecies(battler, FORM_CHANGE_BATTLE_PRIMAL_REVERSION) != SPECIES_NONE) { - if (gBattlerAttacker == battler) - { - BattleScriptPushCursorAndCallback(BattleScript_PrimalReversion); - } - else - { - // edge case for scenarios like a switch-in after activated eject button - gBattleScripting.savedBattler = gBattlerAttacker; - gBattlerAttacker = battler; - BattleScriptPushCursorAndCallback(BattleScript_PrimalReversionRestoreAttacker); - } + gBattleScripting.battler = battler; + BattleScriptPushCursorAndCallback(BattleScript_PrimalReversion); return TRUE; } return FALSE; @@ -6602,8 +6732,11 @@ bool32 IsBattlerTerrainAffected(u32 battler, u32 terrainFlag) return IsBattlerGrounded(battler); } -bool32 CanBeSlept(u32 battler, u32 ability) +bool32 CanBeSlept(u32 battler, u32 ability, enum SleepClauseBlock isBlockedBySleepClause) { + if(IsSleepClauseActiveForSide(GetBattlerSide(battler)) && isBlockedBySleepClause) + return FALSE; + if (ability == ABILITY_INSOMNIA || ability == ABILITY_VITAL_SPIRIT || ability == ABILITY_COMATOSE @@ -6727,25 +6860,25 @@ bool32 HasEnoughHpToEatBerry(u32 battler, u32 hpFraction, u32 itemId) return FALSE; } -static u8 HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId, bool32 end2) +static u32 HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId, enum ItemEffect caseID) { if (HasEnoughHpToEatBerry(battler, (B_CONFUSE_BERRIES_HEAL >= GEN_7 ? 4 : 2), itemId) && (B_HEAL_BLOCKING < GEN_5 || !(gStatuses3[battler] & STATUS3_HEAL_BLOCK))) { PREPARE_FLAVOR_BUFFER(gBattleTextBuff1, flavorId); - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / GetBattlerItemHoldEffectParam(battler, itemId); - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / GetBattlerItemHoldEffectParam(battler, itemId); + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; if (GetBattlerAbility(battler) == ABILITY_RIPEN) { - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[battler] *= 2; gBattlerAbility = battler; } gBattleScripting.battler = battler; - if (end2) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { if (GetFlavorRelationByPersonality(gBattleMons[battler].personality, flavorId) < 0) BattleScriptExecute(BattleScript_BerryConfuseHealEnd2); @@ -6766,7 +6899,7 @@ static u8 HealConfuseBerry(u32 battler, u32 itemId, u32 flavorId, bool32 end2) return 0; } -static u8 StatRaiseBerry(u32 battler, u32 itemId, u32 statId, bool32 end2) +static u32 StatRaiseBerry(u32 battler, u32 itemId, u32 statId, enum ItemEffect caseID) { if (CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN) && HasEnoughHpToEatBerry(battler, GetBattlerItemHoldEffectParam(battler, itemId), itemId)) { @@ -6780,7 +6913,7 @@ static u8 StatRaiseBerry(u32 battler, u32 itemId, u32 statId, bool32 end2) gBattleScripting.animArg1 = STAT_ANIM_PLUS1 + statId; gBattleScripting.animArg2 = 0; - if (end2) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); } @@ -6791,10 +6924,10 @@ static u8 StatRaiseBerry(u32 battler, u32 itemId, u32 statId, bool32 end2) } return ITEM_STATS_CHANGE; } - return 0; + return ITEM_NO_EFFECT; } -static u8 RandomStatRaiseBerry(u32 battler, u32 itemId, bool32 end2) +static u32 RandomStatRaiseBerry(u32 battler, u32 itemId, enum ItemEffect caseID) { s32 i; u16 stringId; @@ -6830,7 +6963,7 @@ static u8 RandomStatRaiseBerry(u32 battler, u32 itemId, bool32 end2) gBattleScripting.animArg1 = STAT_ANIM_PLUS2 + i + 1; gBattleScripting.animArg2 = 0; - if (end2) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); } @@ -6845,12 +6978,12 @@ static u8 RandomStatRaiseBerry(u32 battler, u32 itemId, bool32 end2) return 0; } -static u8 TrySetMicleBerry(u32 battler, u32 itemId, bool32 end2) +static u32 TrySetMicleBerry(u32 battler, u32 itemId, enum ItemEffect caseID) { if (HasEnoughHpToEatBerry(battler, 4, itemId)) { gBattleStruct->usedMicleBerry |= 1u << battler; - if (end2) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_MicleBerryActivateEnd2); } @@ -6868,14 +7001,14 @@ static u8 TrySetEnigmaBerry(u32 battler) { if (IsBattlerAlive(battler) && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) - && ((TARGET_TURN_DAMAGED && gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) || gBattleScripting.overrideBerryRequirements) + && ((BATTLER_TURN_DAMAGED(battler) && gBattleStruct->moveResultFlags[battler] & MOVE_RESULT_SUPER_EFFECTIVE) || gBattleScripting.overrideBerryRequirements) && !(gBattleScripting.overrideBerryRequirements && gBattleMons[battler].hp == gBattleMons[battler].maxHP) && (B_HEAL_BLOCKING < GEN_5 || !(gStatuses3[battler] & STATUS3_HEAL_BLOCK))) { gBattleScripting.battler = battler; - gBattleMoveDamage = (gBattleMons[battler].maxHP * 25 / 100) * -1; + gBattleStruct->moveDamage[battler] = (gBattleMons[battler].maxHP * 25 / 100) * -1; if (GetBattlerAbility(battler) == ABILITY_RIPEN) - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[battler] *= 2; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_RemoveItemRet; @@ -6892,7 +7025,7 @@ static u8 DamagedStatBoostBerryEffect(u32 battler, u8 statId, u8 category) || (!DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) && GetBattleMoveCategory(gCurrentMove) == category && battler != gBattlerAttacker - && TARGET_TURN_DAMAGED)) + && BATTLER_TURN_DAMAGED(battler))) ) { BufferStatChange(battler, statId, STRINGID_STATROSE); @@ -6913,7 +7046,7 @@ static u8 DamagedStatBoostBerryEffect(u32 battler, u8 statId, u8 category) return 0; } -u8 TryHandleSeed(u32 battler, u32 terrainFlag, u8 statId, u16 itemId, bool32 execute) +u32 TryHandleSeed(u32 battler, u32 terrainFlag, u32 statId, u32 itemId, enum ItemEffect caseID) { if (gFieldStatuses & terrainFlag && CompareStat(battler, statId, MAX_STAT_STAGE, CMP_LESS_THAN)) { @@ -6923,7 +7056,7 @@ u8 TryHandleSeed(u32 battler, u32 terrainFlag, u8 statId, u16 itemId, bool32 exe SET_STATCHANGER(statId, 1, FALSE); gBattleScripting.animArg1 = STAT_ANIM_PLUS1 + statId; gBattleScripting.animArg2 = 0; - if (execute) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_BerryStatRaiseEnd2); } @@ -6937,7 +7070,7 @@ u8 TryHandleSeed(u32 battler, u32 terrainFlag, u8 statId, u16 itemId, bool32 exe return 0; } -static u32 ItemRestorePp(u32 battler, u32 itemId, bool32 execute) +static u32 ItemRestorePp(u32 battler, u32 itemId, enum ItemEffect caseID) { struct Pokemon *party = GetBattlerParty(battler); struct Pokemon *mon = &party[gBattlerPartyIndexes[battler]]; @@ -6965,7 +7098,7 @@ static u32 ItemRestorePp(u32 battler, u32 itemId, bool32 execute) PREPARE_MOVE_BUFFER(gBattleTextBuff1, move); - if (execute) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_BerryPPHealEnd2); } @@ -6984,23 +7117,23 @@ static u32 ItemRestorePp(u32 battler, u32 itemId, bool32 execute) return 0; } -static u8 ItemHealHp(u32 battler, u32 itemId, bool32 end2, bool32 percentHeal) +static u32 ItemHealHp(u32 battler, u32 itemId, enum ItemEffect caseID, bool32 percentHeal) { if (!(gBattleScripting.overrideBerryRequirements && gBattleMons[battler].hp == gBattleMons[battler].maxHP) && (B_HEAL_BLOCKING < GEN_5 || !(gStatuses3[battler] & STATUS3_HEAL_BLOCK)) && HasEnoughHpToEatBerry(battler, 2, itemId)) { if (percentHeal) - gBattleMoveDamage = (GetNonDynamaxMaxHP(battler) * GetBattlerItemHoldEffectParam(battler, itemId) / 100) * -1; + gBattleStruct->moveDamage[battler] = (GetNonDynamaxMaxHP(battler) * GetBattlerItemHoldEffectParam(battler, itemId) / 100) * -1; else - gBattleMoveDamage = GetBattlerItemHoldEffectParam(battler, itemId) * -1; + gBattleStruct->moveDamage[battler] = GetBattlerItemHoldEffectParam(battler, itemId) * -1; // check ripen if (ItemId_GetPocket(itemId) == POCKET_BERRIES && GetBattlerAbility(battler) == ABILITY_RIPEN) - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[battler] *= 2; gBattlerAbility = battler; // in SWSH, berry juice shows ability pop up but has no effect. This is mimicked here - if (end2) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_ItemHealHP_RemoveItemEnd2); } @@ -7081,9 +7214,9 @@ static bool32 GetMentalHerbEffect(u32 battler) return ret; } -static u8 TryConsumeMirrorHerb(u32 battler, bool32 execute) +static u32 TryConsumeMirrorHerb(u32 battler, enum ItemEffect caseID) { - u8 effect = 0; + u32 effect = 0; if (gProtectStructs[battler].eatMirrorHerb) { @@ -7092,7 +7225,7 @@ static u8 TryConsumeMirrorHerb(u32 battler, bool32 execute) gBattleScripting.battler = battler; gProtectStructs[battler].eatMirrorHerb = 0; ChooseStatBoostAnimation(battler); - if (execute) + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) { BattleScriptExecute(BattleScript_MirrorHerbCopyStatChangeEnd2); } @@ -7106,6 +7239,32 @@ static u8 TryConsumeMirrorHerb(u32 battler, bool32 execute) return effect; } +static inline u32 TryBoosterEnergy(u32 battler, enum ItemEffect caseID) +{ + if (gBattleStruct->boosterEnergyActivates & (1u << battler) || gBattleMons[battler].status2 & STATUS2_TRANSFORMED) + return ITEM_NO_EFFECT; + + if (((GetBattlerAbility(battler) == ABILITY_PROTOSYNTHESIS) && !((gBattleWeather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT)) + || ((GetBattlerAbility(battler) == ABILITY_QUARK_DRIVE) && !(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN))) + { + PREPARE_STAT_BUFFER(gBattleTextBuff1, GetHighestStatId(battler)); + gBattlerAbility = gBattleScripting.battler = battler; + gBattleStruct->boosterEnergyActivates |= 1u << battler; + if (caseID == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseID == ITEMEFFECT_NORMAL) + { + BattleScriptExecute(BattleScript_BoosterEnergyEnd2); + } + else + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BoosterEnergyRet; + } + return ITEM_EFFECT_OTHER; + } + + return ITEM_NO_EFFECT; +} + static u32 RestoreWhiteHerbStats(u32 battler) { u32 i, effect = 0; @@ -7134,59 +7293,59 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) { case HOLD_EFFECT_MICLE_BERRY: if (B_HP_BERRIES >= GEN_4) - effect = TrySetMicleBerry(battler, gLastUsedItem, FALSE); + effect = TrySetMicleBerry(battler, gLastUsedItem, ITEMEFFECT_NONE); break; case HOLD_EFFECT_RESTORE_HP: if (B_HP_BERRIES >= GEN_4) - effect = ItemHealHp(battler, gLastUsedItem, FALSE, FALSE); + effect = ItemHealHp(battler, gLastUsedItem, ITEMEFFECT_NONE, FALSE); break; case HOLD_EFFECT_RESTORE_PCT_HP: if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battler, gLastUsedItem, FALSE, TRUE); + effect = ItemHealHp(battler, gLastUsedItem, ITEMEFFECT_NONE, TRUE); break; case HOLD_EFFECT_RESTORE_PP: if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemRestorePp(battler, gLastUsedItem, FALSE); + effect = ItemRestorePp(battler, gLastUsedItem, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CONFUSE_SPICY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, FALSE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CONFUSE_DRY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, FALSE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CONFUSE_SWEET: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, FALSE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CONFUSE_BITTER: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, FALSE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CONFUSE_SOUR: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, FALSE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, ITEMEFFECT_NONE); break; case HOLD_EFFECT_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, FALSE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, ITEMEFFECT_NONE); break; case HOLD_EFFECT_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, FALSE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, ITEMEFFECT_NONE); break; case HOLD_EFFECT_SPEED_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, FALSE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, ITEMEFFECT_NONE); break; case HOLD_EFFECT_SP_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, FALSE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, ITEMEFFECT_NONE); break; case HOLD_EFFECT_SP_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, FALSE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, ITEMEFFECT_NONE); break; case HOLD_EFFECT_ENIGMA_BERRY: // consume and heal if hit by super effective move if (B_BERRIES_INSTANT >= GEN_4) @@ -7202,7 +7361,7 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) break; case HOLD_EFFECT_RANDOM_STAT_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = RandomStatRaiseBerry(battler, gLastUsedItem, FALSE); + effect = RandomStatRaiseBerry(battler, gLastUsedItem, ITEMEFFECT_NONE); break; case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battler].status1 & STATUS1_PARALYSIS && !UnnerveOn(battler, gLastUsedItem)) @@ -7255,6 +7414,7 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_BerryCureSlpRet; effect = ITEM_STATUS_CHANGE; + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); } break; case HOLD_EFFECT_CURE_CONFUSION: @@ -7286,6 +7446,7 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) { gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); } if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) @@ -7337,20 +7498,80 @@ static u8 ItemEffectMoveEnd(u32 battler, u16 holdEffect) effect = ITEM_STATS_CHANGE; break; case HOLD_EFFECT_MIRROR_HERB: - effect = TryConsumeMirrorHerb(battler, FALSE); + effect = TryConsumeMirrorHerb(battler, ITEMEFFECT_NONE); break; } return effect; } -u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) +static inline bool32 TryCureStatus(u32 battler, enum ItemEffect caseId) { - int i = 0, moveType; - u8 effect = ITEM_NO_EFFECT; - u32 battlerHoldEffect = 0, atkHoldEffect; - u8 atkHoldEffectParam; - u16 atkItem; + u32 effect = ITEM_NO_EFFECT; + u32 string = 0; + + if ((gBattleMons[battler].status1 & STATUS1_ANY || gBattleMons[battler].status2 & STATUS2_CONFUSION) && !UnnerveOn(battler, gLastUsedItem)) + { + if (gBattleMons[battler].status1 & STATUS1_PSN_ANY) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); + string++; + } + if (gBattleMons[battler].status1 & STATUS1_SLEEP) + { + gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; + StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); + string++; + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); + } + if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); + string++; + } + if (gBattleMons[battler].status1 & STATUS1_BURN) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); + string++; + } + if (gBattleMons[battler].status1 & STATUS1_FREEZE || gBattleMons[battler].status1 & STATUS1_FROSTBITE) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); + string++; + } + if (gBattleMons[battler].status2 & STATUS2_CONFUSION) + { + StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); + string++; + } + if (string <= 1) + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; + else + gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; + gBattleMons[battler].status1 = 0; + RemoveConfusionStatus(battler); + if (caseId == ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN || caseId == ITEMEFFECT_NORMAL) + { + BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); + } + else + { + BattleScriptPushCursor(); + gBattlescriptCurrInstr = BattleScript_BerryCureChosenStatusRet; + } + effect = ITEM_STATUS_CHANGE; + } + + return effect; +} + +u32 ItemBattleEffects(enum ItemEffect caseID, u32 battler, bool32 moveTurn) +{ + u32 moveType = 0; + u32 effect = ITEM_NO_EFFECT; + u32 battlerHoldEffect = 0, atkHoldEffect = 0; + u32 atkHoldEffectParam = 0; + u32 atkItem = 0; if (caseID != ITEMEFFECT_USE_LAST_ITEM) { @@ -7364,7 +7585,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) switch (caseID) { + case ITEMEFFECT_NONE: + break; case ITEMEFFECT_ON_SWITCH_IN: + case ITEMEFFECT_ON_SWITCH_IN_FIRST_TURN: if (!gSpecialStatuses[battler].switchInItemDone) { switch (battlerHoldEffect) @@ -7386,43 +7610,43 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_CONFUSE_SPICY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, caseID); break; case HOLD_EFFECT_CONFUSE_DRY: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, caseID); break; case HOLD_EFFECT_CONFUSE_SWEET: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, caseID); break; case HOLD_EFFECT_CONFUSE_BITTER: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, caseID); break; case HOLD_EFFECT_CONFUSE_SOUR: if (B_BERRIES_INSTANT >= GEN_4) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, caseID); break; case HOLD_EFFECT_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, caseID); break; case HOLD_EFFECT_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, caseID); break; case HOLD_EFFECT_SPEED_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, caseID); break; case HOLD_EFFECT_SP_ATTACK_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, caseID); break; case HOLD_EFFECT_SP_DEFENSE_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, caseID); break; case HOLD_EFFECT_CRITICAL_UP: if (B_BERRIES_INSTANT >= GEN_4 @@ -7437,7 +7661,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_RANDOM_STAT_UP: if (B_BERRIES_INSTANT >= GEN_4) - effect = RandomStatRaiseBerry(battler, gLastUsedItem, TRUE); + effect = RandomStatRaiseBerry(battler, gLastUsedItem, caseID); break; case HOLD_EFFECT_CURE_PAR: if (B_BERRIES_INSTANT >= GEN_4 @@ -7496,62 +7720,20 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; BattleScriptExecute(BattleScript_BerryCureSlpEnd2); effect = ITEM_STATUS_CHANGE; + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); } break; case HOLD_EFFECT_CURE_STATUS: - if (B_BERRIES_INSTANT >= GEN_4 - && (gBattleMons[battler].status1 & STATUS1_ANY || gBattleMons[battler].status2 & STATUS2_CONFUSION) - && !UnnerveOn(battler, gLastUsedItem)) - { - i = 0; - if (gBattleMons[battler].status1 & STATUS1_PSN_ANY) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_SLEEP) - { - gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_FREEZE || gBattleMons[battler].status1 & STATUS1_FROSTBITE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - i++; - } - if (gBattleMons[battler].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - i++; - } - if (i <= 1) - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; - else - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; - gBattleMons[battler].status1 = 0; - RemoveConfusionStatus(battler); - BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); - effect = ITEM_STATUS_CHANGE; - } + if (B_BERRIES_INSTANT >= GEN_4) + effect = TryCureStatus(battler, caseID); break; case HOLD_EFFECT_RESTORE_HP: if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battler, gLastUsedItem, TRUE, FALSE); + effect = ItemHealHp(battler, gLastUsedItem, caseID, FALSE); break; case HOLD_EFFECT_RESTORE_PCT_HP: if (B_BERRIES_INSTANT >= GEN_4) - effect = ItemHealHp(battler, gLastUsedItem, TRUE, TRUE); + effect = ItemHealHp(battler, gLastUsedItem, caseID, TRUE); break; case HOLD_EFFECT_AIR_BALLOON: effect = ITEM_EFFECT_OTHER; @@ -7570,16 +7752,16 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) switch (GetBattlerHoldEffectParam(battler)) { case HOLD_EFFECT_PARAM_ELECTRIC_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, gLastUsedItem, TRUE); + effect = TryHandleSeed(battler, STATUS_FIELD_ELECTRIC_TERRAIN, STAT_DEF, gLastUsedItem, caseID); break; case HOLD_EFFECT_PARAM_GRASSY_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, gLastUsedItem, TRUE); + effect = TryHandleSeed(battler, STATUS_FIELD_GRASSY_TERRAIN, STAT_DEF, gLastUsedItem, caseID); break; case HOLD_EFFECT_PARAM_MISTY_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, gLastUsedItem, TRUE); + effect = TryHandleSeed(battler, STATUS_FIELD_MISTY_TERRAIN, STAT_SPDEF, gLastUsedItem, caseID); break; case HOLD_EFFECT_PARAM_PSYCHIC_TERRAIN: - effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, gLastUsedItem, TRUE); + effect = TryHandleSeed(battler, STATUS_FIELD_PSYCHIC_TERRAIN, STAT_SPDEF, gLastUsedItem, caseID); break; } break; @@ -7619,20 +7801,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) effect = ITEM_STATS_CHANGE; break; case HOLD_EFFECT_MIRROR_HERB: - effect = TryConsumeMirrorHerb(battler, TRUE); + effect = TryConsumeMirrorHerb(battler, caseID); break; case HOLD_EFFECT_BOOSTER_ENERGY: - if (!(gBattleStruct->boosterEnergyActivates & (1u << battler)) - && !(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) - && (((GetBattlerAbility(battler) == ABILITY_PROTOSYNTHESIS) && !((gBattleWeather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT)) - || ((GetBattlerAbility(battler) == ABILITY_QUARK_DRIVE) && !(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)))) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, GetHighestStatId(battler)); - gBattleScripting.battler = battler; - gBattleStruct->boosterEnergyActivates |= 1u << battler; - BattleScriptExecute(BattleScript_BoosterEnergyEnd2); - effect = ITEM_EFFECT_OTHER; - } + effect = TryBoosterEnergy(battler, caseID); break; } if (effect != 0) @@ -7656,15 +7828,15 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) { case HOLD_EFFECT_RESTORE_HP: if (!moveTurn) - effect = ItemHealHp(battler, gLastUsedItem, TRUE, FALSE); + effect = ItemHealHp(battler, gLastUsedItem, caseID, FALSE); break; case HOLD_EFFECT_RESTORE_PCT_HP: if (!moveTurn) - effect = ItemHealHp(battler, gLastUsedItem, TRUE, TRUE); + effect = ItemHealHp(battler, gLastUsedItem, caseID, TRUE); break; case HOLD_EFFECT_RESTORE_PP: if (!moveTurn) - effect = ItemRestorePp(battler, gLastUsedItem, TRUE); + effect = ItemRestorePp(battler, gLastUsedItem, caseID); break; case HOLD_EFFECT_RESTORE_STATS: effect = RestoreWhiteHerbStats(battler); @@ -7681,9 +7853,9 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) } else if (GetBattlerAbility(battler) != ABILITY_MAGIC_GUARD && !moveTurn) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_ItemHurtEnd2); effect = ITEM_HP_CHANGE; RecordItemEffectBattle(battler, battlerHoldEffect); @@ -7695,10 +7867,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) if (gBattleMons[battler].hp < gBattleMons[battler].maxHP && !moveTurn && (B_HEAL_BLOCKING < GEN_5 || !(gStatuses3[battler] & STATUS3_HEAL_BLOCK))) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 16; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; - gBattleMoveDamage *= -1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 16; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; + gBattleStruct->moveDamage[battler] *= -1; BattleScriptExecute(BattleScript_ItemHealHP_End2); effect = ITEM_HP_CHANGE; RecordItemEffectBattle(battler, battlerHoldEffect); @@ -7706,43 +7878,43 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_CONFUSE_SPICY: if (!moveTurn) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SPICY, caseID); break; case HOLD_EFFECT_CONFUSE_DRY: if (!moveTurn) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_DRY, caseID); break; case HOLD_EFFECT_CONFUSE_SWEET: if (!moveTurn) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SWEET, caseID); break; case HOLD_EFFECT_CONFUSE_BITTER: if (!moveTurn) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_BITTER, caseID); break; case HOLD_EFFECT_CONFUSE_SOUR: if (!moveTurn) - effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, TRUE); + effect = HealConfuseBerry(battler, gLastUsedItem, FLAVOR_SOUR, caseID); break; case HOLD_EFFECT_ATTACK_UP: if (!moveTurn) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_ATK, caseID); break; case HOLD_EFFECT_DEFENSE_UP: if (!moveTurn) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_DEF, caseID); break; case HOLD_EFFECT_SPEED_UP: if (!moveTurn) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPEED, caseID); break; case HOLD_EFFECT_SP_ATTACK_UP: if (!moveTurn) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPATK, caseID); break; case HOLD_EFFECT_SP_DEFENSE_UP: if (!moveTurn) - effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, TRUE); + effect = StatRaiseBerry(battler, gLastUsedItem, STAT_SPDEF, caseID); break; case HOLD_EFFECT_CRITICAL_UP: if (!moveTurn && !(gBattleMons[battler].status2 & STATUS2_FOCUS_ENERGY_ANY) @@ -7756,7 +7928,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_RANDOM_STAT_UP: if (!moveTurn) - effect = RandomStatRaiseBerry(battler, gLastUsedItem, TRUE); + effect = RandomStatRaiseBerry(battler, gLastUsedItem, caseID); break; case HOLD_EFFECT_CURE_PAR: if (gBattleMons[battler].status1 & STATUS1_PARALYSIS && !UnnerveOn(battler, gLastUsedItem)) @@ -7803,6 +7975,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; BattleScriptExecute(BattleScript_BerryCureSlpEnd2); effect = ITEM_STATUS_CHANGE; + TryDeactivateSleepClause(GetBattlerSide(battler), gBattlerPartyIndexes[battler]); } break; case HOLD_EFFECT_CURE_CONFUSION: @@ -7814,49 +7987,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) } break; case HOLD_EFFECT_CURE_STATUS: - if ((gBattleMons[battler].status1 & STATUS1_ANY || gBattleMons[battler].status2 & STATUS2_CONFUSION) && !UnnerveOn(battler, gLastUsedItem)) - { - i = 0; - if (gBattleMons[battler].status1 & STATUS1_PSN_ANY) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_PoisonJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_SLEEP) - { - gBattleMons[battler].status2 &= ~STATUS2_NIGHTMARE; - StringCopy(gBattleTextBuff1, gStatusConditionString_SleepJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_PARALYSIS) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ParalysisJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_BURN) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_BurnJpn); - i++; - } - if (gBattleMons[battler].status1 & STATUS1_FREEZE || gBattleMons[battler].status1 & STATUS1_FROSTBITE) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_IceJpn); - i++; - } - if (gBattleMons[battler].status2 & STATUS2_CONFUSION) - { - StringCopy(gBattleTextBuff1, gStatusConditionString_ConfusionJpn); - i++; - } - if (i <= 1) - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_CURED_PROBLEM; - else - gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_NORMALIZED_STATUS; - gBattleMons[battler].status1 = 0; - RemoveConfusionStatus(battler); - BattleScriptExecute(BattleScript_BerryCureChosenStatusEnd2); - effect = ITEM_STATUS_CHANGE; - } + effect = TryCureStatus(battler, caseID); break; case HOLD_EFFECT_MENTAL_HERB: if (GetMentalHerbEffect(battler)) @@ -7869,7 +8000,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_MICLE_BERRY: if (!moveTurn) - effect = TrySetMicleBerry(battler, gLastUsedItem, TRUE); + effect = TrySetMicleBerry(battler, gLastUsedItem, caseID); break; case HOLD_EFFECT_BERSERK_GENE: BufferStatChange(battler, STAT_ATK, STRINGID_STATROSE); @@ -7887,20 +8018,10 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) effect = ITEM_STATS_CHANGE; break; case HOLD_EFFECT_MIRROR_HERB: - effect = TryConsumeMirrorHerb(battler, TRUE); + effect = TryConsumeMirrorHerb(battler, caseID); break; case HOLD_EFFECT_BOOSTER_ENERGY: - if (!(gBattleStruct->boosterEnergyActivates & (1u << battler)) - && !(gBattleMons[battler].status2 & STATUS2_TRANSFORMED) - && (((GetBattlerAbility(battler) == ABILITY_PROTOSYNTHESIS) && !((gBattleWeather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT)) - || ((GetBattlerAbility(battler) == ABILITY_QUARK_DRIVE) && !(gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN)))) - { - PREPARE_STAT_BUFFER(gBattleTextBuff1, GetHighestStatId(battler)); - gBattlerAbility = gBattleScripting.battler = battler; - gBattleStruct->boosterEnergyActivates |= 1u << battler; - BattleScriptExecute(BattleScript_BoosterEnergyEnd2); - effect = ITEM_EFFECT_OTHER; - } + effect = TryBoosterEnergy(battler, caseID); break; } @@ -7959,8 +8080,8 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) atkHoldEffectParam *= 2; if (gSideStatuses[GetBattlerSide(battler)] & SIDE_STATUS_RAINBOW && gCurrentMove != MOVE_SECRET_POWER) atkHoldEffectParam *= 2; - if (gBattleMoveDamage != 0 // Need to have done damage - && !(gMoveResultFlags & MOVE_RESULT_NO_EFFECT) + if (gBattleStruct->moveDamage[battler] != 0 // Need to have done damage + && MoveResultHasEffect(gBattlerTarget) && TARGET_TURN_DAMAGED && !gMovesInfo[gCurrentMove].ignoresKingsRock && gBattleMons[gBattlerTarget].hp @@ -8003,9 +8124,9 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) gLastUsedItem = atkItem; gPotentialItemEffectBattler = gBattlerAttacker; gBattleScripting.battler = gBattlerAttacker; - gBattleMoveDamage = (gSpecialStatuses[gBattlerTarget].shellBellDmg / atkHoldEffectParam) * -1; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = -1; + gBattleStruct->moveDamage[gBattlerAttacker] = (gSpecialStatuses[gBattlerTarget].shellBellDmg / atkHoldEffectParam) * -1; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = -1; gSpecialStatuses[gBattlerTarget].shellBellDmg = 0; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHealHP_Ret; @@ -8020,9 +8141,9 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) && !gSpecialStatuses[gBattlerAttacker].preventLifeOrbDamage && gSpecialStatuses[gBattlerAttacker].damagedMons) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 10; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 10; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; effect = ITEM_HP_CHANGE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_ItemHurtRet; @@ -8047,7 +8168,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) } break; case ITEMEFFECT_TARGET: - if (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) + if (MoveResultHasEffect(gBattlerTarget)) { moveType = GetMoveType(gCurrentMove); switch (battlerHoldEffect) @@ -8067,9 +8188,9 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) && IsBattlerAlive(gBattlerAttacker) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 6; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 6; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; effect = ITEM_HP_CHANGE; BattleScriptPushCursor(); gBattlescriptCurrInstr = BattleScript_RockyHelmetActivates; @@ -8080,7 +8201,7 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) case HOLD_EFFECT_WEAKNESS_POLICY: if (IsBattlerAlive(battler) && TARGET_TURN_DAMAGED - && gMoveResultFlags & MOVE_RESULT_SUPER_EFFECTIVE) + && gBattleStruct->moveResultFlags[gBattlerTarget] & MOVE_RESULT_SUPER_EFFECTIVE) { effect = ITEM_STATS_CHANGE; BattleScriptPushCursor(); @@ -8141,11 +8262,11 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) && IS_MOVE_PHYSICAL(gCurrentMove) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; if (GetBattlerAbility(battler) == ABILITY_RIPEN) - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[gBattlerAttacker] *= 2; effect = ITEM_HP_CHANGE; BattleScriptPushCursor(); @@ -8161,11 +8282,11 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) && IS_MOVE_SPECIAL(gCurrentMove) && GetBattlerAbility(gBattlerAttacker) != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[gBattlerAttacker] = GetNonDynamaxMaxHP(gBattlerAttacker) / 8; + if (gBattleStruct->moveDamage[gBattlerAttacker] == 0) + gBattleStruct->moveDamage[gBattlerAttacker] = 1; if (GetBattlerAbility(battler) == ABILITY_RIPEN) - gBattleMoveDamage *= 2; + gBattleStruct->moveDamage[gBattlerAttacker] *= 2; effect = ITEM_HP_CHANGE; BattleScriptPushCursor(); @@ -8194,13 +8315,13 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) break; case HOLD_EFFECT_STICKY_BARB: if (TARGET_TURN_DAMAGED - && (!(gMoveResultFlags & MOVE_RESULT_NO_EFFECT)) - && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS - && IsMoveMakingContact(gCurrentMove, gBattlerAttacker) - && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) - && IsBattlerAlive(gBattlerAttacker) - && CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item) - && gBattleMons[gBattlerAttacker].item == ITEM_NONE) + && MoveResultHasEffect(gBattlerTarget) + && GetBattlerHoldEffect(gBattlerAttacker, TRUE) != HOLD_EFFECT_PROTECTIVE_PADS + && IsMoveMakingContact(gCurrentMove, gBattlerAttacker) + && !DoesSubstituteBlockMove(gBattlerAttacker, battler, gCurrentMove) + && IsBattlerAlive(gBattlerAttacker) + && CanStealItem(gBattlerAttacker, gBattlerTarget, gBattleMons[gBattlerTarget].item) + && gBattleMons[gBattlerAttacker].item == ITEM_NONE) { // No sticky hold checks. gEffectBattler = battler; // gEffectBattler = target @@ -8239,9 +8360,9 @@ u8 ItemBattleEffects(u8 caseID, u32 battler, bool32 moveTurn) case HOLD_EFFECT_STICKY_BARB: // Not an orb per se, but similar effect, and needs to NOT activate with pickpocket if (battlerAbility != ABILITY_MAGIC_GUARD) { - gBattleMoveDamage = GetNonDynamaxMaxHP(battler) / 8; - if (gBattleMoveDamage == 0) - gBattleMoveDamage = 1; + gBattleStruct->moveDamage[battler] = GetNonDynamaxMaxHP(battler) / 8; + if (gBattleStruct->moveDamage[battler] == 0) + gBattleStruct->moveDamage[battler] = 1; BattleScriptExecute(BattleScript_ItemHurtEnd2); effect = ITEM_HP_CHANGE; RecordItemEffectBattle(battler, battlerHoldEffect); @@ -8293,7 +8414,7 @@ void HandleAction_RunBattleScript(void) // identical to RunBattleScriptCommands gBattleScriptingCommandsTable[*gBattlescriptCurrInstr](); } -u32 SetRandomTarget(u32 battler) +u32 SetRandomTarget(u32 battlerAtk) { u32 target; static const u8 targets[2][2] = @@ -8304,13 +8425,13 @@ u32 SetRandomTarget(u32 battler) if (IsDoubleBattle()) { - target = GetBattlerAtPosition(targets[GetBattlerSide(battler)][Random() % 2]); + target = GetBattlerAtPosition(targets[GetBattlerSide(battlerAtk)][RandomUniform(RNG_RANDOM_TARGET, 0, 1)]); if (!IsBattlerAlive(target)) target ^= BIT_FLANK; } else { - target = GetBattlerAtPosition(targets[GetBattlerSide(battler)][0]); + target = GetBattlerAtPosition(targets[GetBattlerSide(battlerAtk)][0]); } return target; @@ -8477,7 +8598,7 @@ u8 GetAttackerObedienceForAction() obedienceLevel = levelReferenced - obedienceLevel; calc = ((rnd >> 16) & 255); - if (calc < obedienceLevel && CanBeSlept(gBattlerAttacker, GetBattlerAbility(gBattlerAttacker))) + if (calc < obedienceLevel && CanBeSlept(gBattlerAttacker, GetBattlerAbility(gBattlerAttacker), NOT_BLOCKED_BY_SLEEP_CLAUSE)) { // try putting asleep int i; @@ -8565,63 +8686,55 @@ bool32 IsMoveMakingContact(u32 move, u32 battlerAtk) bool32 IsBattlerProtected(u32 battlerAtk, u32 battlerDef, u32 move) { - // Decorate bypasses protect and detect, but not crafty shield - if (move == MOVE_DECORATE) - { - if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_CRAFTY_SHIELD) - return TRUE; - else if (gProtectStructs[battlerDef].protected) - return FALSE; - } + bool32 isProtected = FALSE; - // Z-Moves and Max Moves bypass protection (except Max Guard). if ((IsZMove(move) || IsMaxMove(move)) - && (!gProtectStructs[battlerDef].maxGuarded - || gMovesInfo[move].argument == MAX_EFFECT_BYPASS_PROTECT)) - return FALSE; - - // Max Guard is silly about the moves it blocks, including Teatime. - if (gProtectStructs[battlerDef].maxGuarded && IsMoveBlockedByMaxGuard(move)) - return TRUE; - - if (!gProtectStructs[battlerDef].maxGuarded // Max Guard cannot be bypassed by Unseen Fist - && IsMoveMakingContact(move, gBattlerAttacker) - && GetBattlerAbility(gBattlerAttacker) == ABILITY_UNSEEN_FIST) - return FALSE; - else if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_CRAFTY_SHIELD - && IS_MOVE_STATUS(move)) - return TRUE; + && (!gProtectStructs[battlerDef].maxGuarded || gMovesInfo[move].argument == MAX_EFFECT_BYPASS_PROTECT)) + isProtected = FALSE; // Z-Moves and Max Moves bypass protection (except Max Guard). + else if (gProtectStructs[battlerDef].maxGuarded && IsMoveBlockedByMaxGuard(move)) + isProtected = TRUE; + else if (!gProtectStructs[battlerDef].maxGuarded // Max Guard cannot be bypassed by Unseen Fist + && IsMoveMakingContact(move, gBattlerAttacker) + && GetBattlerAbility(gBattlerAttacker) == ABILITY_UNSEEN_FIST) + isProtected = FALSE; + else if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_CRAFTY_SHIELD && IS_MOVE_STATUS(move)) + isProtected = TRUE; else if (gMovesInfo[move].ignoresProtect) - return FALSE; + isProtected = FALSE; else if (gProtectStructs[battlerDef].protected) - return TRUE; + isProtected = TRUE; else if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_WIDE_GUARD && GetBattlerMoveTargetType(gBattlerAttacker, move) & (MOVE_TARGET_BOTH | MOVE_TARGET_FOES_AND_ALLY)) - return TRUE; + isProtected = TRUE; else if (gProtectStructs[battlerDef].banefulBunkered) - return TRUE; + isProtected = TRUE; else if (gProtectStructs[battlerDef].burningBulwarked) - return TRUE; + isProtected = TRUE; else if ((gProtectStructs[battlerDef].obstructed || gProtectStructs[battlerDef].silkTrapped) && !IS_MOVE_STATUS(move)) - return TRUE; + isProtected = TRUE; else if (gProtectStructs[battlerDef].spikyShielded) - return TRUE; + isProtected = TRUE; else if (gProtectStructs[battlerDef].kingsShielded && gMovesInfo[move].power != 0) - return TRUE; + isProtected = TRUE; else if (gProtectStructs[battlerDef].maxGuarded) - return TRUE; + isProtected = TRUE; else if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_QUICK_GUARD && GetChosenMovePriority(gBattlerAttacker) > 0) - return TRUE; + isProtected = TRUE; else if (gSideStatuses[GetBattlerSide(battlerDef)] & SIDE_STATUS_MAT_BLOCK && !IS_MOVE_STATUS(move)) - return TRUE; + isProtected = TRUE; else - return FALSE; + isProtected = FALSE; + + if (isProtected) + gBattleStruct->missStringId[battlerDef] = gBattleCommunication[MISS_TYPE] = B_MSG_PROTECTED; + + return isProtected; } // Only called directly when calculating damage type effectiveness -static bool32 IsBattlerGrounded2(u32 battler, bool32 considerInverse) +static bool32 IsBattlerGroundedInverseCheck(u32 battler, bool32 considerInverse) { u32 holdEffect = GetBattlerHoldEffect(battler, TRUE); @@ -8639,7 +8752,7 @@ static bool32 IsBattlerGrounded2(u32 battler, bool32 considerInverse) return FALSE; if (holdEffect == HOLD_EFFECT_AIR_BALLOON) return FALSE; - if (GetBattlerAbility(battler) == ABILITY_LEVITATE) + if ((AI_DATA->aiCalcInProgress ? AI_DATA->abilities[battler] : GetBattlerAbility(battler)) == ABILITY_LEVITATE) return FALSE; if (IS_BATTLER_OF_TYPE(battler, TYPE_FLYING) && (!considerInverse || !FlagGet(B_FLAG_INVERSE_BATTLE))) return FALSE; @@ -8648,7 +8761,7 @@ static bool32 IsBattlerGrounded2(u32 battler, bool32 considerInverse) bool32 IsBattlerGrounded(u32 battler) { - return IsBattlerGrounded2(battler, FALSE); + return IsBattlerGroundedInverseCheck(battler, FALSE); } bool32 IsBattlerAlive(u32 battler) @@ -8725,8 +8838,12 @@ u32 CountBattlerStatIncreases(u32 battler, bool32 countEvasionAcc) return count; } -u32 GetMoveTargetCount(u32 move, u32 battlerAtk, u32 battlerDef) +u32 GetMoveTargetCount(struct DamageCalculationData *damageCalcData) { + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + switch (GetBattlerMoveTargetType(battlerAtk, move)) { case MOVE_TARGET_BOTH: @@ -8864,8 +8981,12 @@ u32 CalcFuryCutterBasePower(u32 basePower, u32 furyCutterCounter) return basePower; } -static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u32 abilityDef, u32 weather) +static inline u32 CalcMoveBasePower(struct DamageCalculationData *damageCalcData, u32 abilityDef, u32 weather) { + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 i; u32 basePower = gMovesInfo[move].power; u32 weight, hpFraction, speed; @@ -8885,7 +9006,7 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 case EFFECT_FLING: basePower = GetFlingPowerFromItemId(gBattleMons[battlerAtk].item); break; - case EFFECT_ERUPTION: + case EFFECT_POWER_BASED_ON_USER_HP: basePower = gBattleMons[battlerAtk].hp * basePower / gBattleMons[battlerAtk].maxHP; break; case EFFECT_FLAIL: @@ -8947,8 +9068,8 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 basePower *= 2; } break; - case EFFECT_VARY_POWER_BASED_ON_HP: - basePower = gMovesInfo[move].argument * gBattleMons[battlerDef].hp / gBattleMons[battlerDef].maxHP; + case EFFECT_POWER_BASED_ON_TARGET_HP: + basePower = gBattleMons[battlerDef].hp * basePower / gBattleMons[battlerDef].maxHP; break; case EFFECT_ASSURANCE: if (gProtectStructs[battlerDef].physicalDmg != 0 || gProtectStructs[battlerDef].specialDmg != 0 || gProtectStructs[battlerDef].confusionSelfDmg) @@ -9127,11 +9248,16 @@ static inline u32 CalcMoveBasePower(u32 move, u32 battlerAtk, u32 battlerDef, u3 return basePower; } -static inline u32 CalcMoveBasePowerAfterModifiers(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, bool32 updateFlags, u32 atkAbility, u32 defAbility, u32 holdEffectAtk, u32 weather) +static inline u32 CalcMoveBasePowerAfterModifiers(struct DamageCalculationData *damageCalcData, u32 atkAbility, u32 defAbility, u32 holdEffectAtk, u32 weather) { u32 i; u32 holdEffectParamAtk; - u32 basePower = CalcMoveBasePower(move, battlerAtk, battlerDef, defAbility, weather); + u32 basePower = CalcMoveBasePower(damageCalcData, defAbility, weather); + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; + uq4_12_t holdEffectModifier; uq4_12_t modifier = UQ_4_12(1.0); u32 atkSide = GetBattlerSide(battlerAtk); @@ -9287,53 +9413,6 @@ static inline u32 CalcMoveBasePowerAfterModifiers(u32 move, u32 battlerAtk, u32 if (moveType == TYPE_STEEL) modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); break; - case ABILITY_TRANSISTOR: - if (moveType == TYPE_ELECTRIC) - { - if (B_TRANSISTOR_BOOST >= GEN_9) - modifier = uq4_12_multiply(modifier, UQ_4_12(5325 / 4096)); - else - modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); - } - break; - case ABILITY_DRAGONS_MAW: - if (moveType == TYPE_DRAGON) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); - break; - case ABILITY_GORILLA_TACTICS: - if (IS_MOVE_PHYSICAL(move)) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); - break; - case ABILITY_ROCKY_PAYLOAD: - if (moveType == TYPE_ROCK) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); - break; - case ABILITY_PROTOSYNTHESIS: - { - u8 atkHighestStat = GetHighestStatId(battlerAtk); - if (((weather & B_WEATHER_SUN && WEATHER_HAS_EFFECT) || gBattleStruct->boosterEnergyActivates & (1u << battlerAtk)) - && ((IS_MOVE_PHYSICAL(move) && atkHighestStat == STAT_ATK) || (IS_MOVE_SPECIAL(move) && atkHighestStat == STAT_SPATK)) - && !(gBattleMons[battlerAtk].status2 & STATUS2_TRANSFORMED)) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); - } - break; - case ABILITY_QUARK_DRIVE: - { - u8 atkHighestStat = GetHighestStatId(battlerAtk); - if ((gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN || gBattleStruct->boosterEnergyActivates & (1u << battlerAtk)) - && ((IS_MOVE_PHYSICAL(move) && atkHighestStat == STAT_ATK) || (IS_MOVE_SPECIAL(move) && atkHighestStat == STAT_SPATK)) - && !(gBattleMons[battlerAtk].status2 & STATUS2_TRANSFORMED)) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); - } - break; - case ABILITY_ORICHALCUM_PULSE: - if (weather & B_WEATHER_SUN && WEATHER_HAS_EFFECT && IS_MOVE_PHYSICAL(move)) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); - break; - case ABILITY_HADRON_ENGINE: - if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && IS_MOVE_SPECIAL(move)) - modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); - break; case ABILITY_SHARPNESS: if (gMovesInfo[move].slicingMove) modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); @@ -9380,7 +9459,7 @@ static inline u32 CalcMoveBasePowerAfterModifiers(u32 move, u32 battlerAtk, u32 if (moveType == TYPE_FIRE) { modifier = uq4_12_multiply(modifier, UQ_4_12(0.5)); - if (updateFlags) + if (damageCalcData->updateFlags) RecordAbilityBattle(battlerDef, defAbility); } break; @@ -9500,12 +9579,16 @@ static inline u32 CalcMoveBasePowerAfterModifiers(u32 move, u32 battlerAtk, u32 return uq4_12_multiply_by_int_half_down(modifier, basePower); } -static inline u32 CalcAttackStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, bool32 isCrit, bool32 updateFlags, u32 atkAbility, u32 defAbility, u32 holdEffectAtk) +static inline u32 CalcAttackStat(struct DamageCalculationData *damageCalcData, u32 atkAbility, u32 defAbility, u32 holdEffectAtk, u32 weather) { u8 atkStage; u32 atkStat; uq4_12_t modifier; u16 atkBaseSpeciesId; + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; atkBaseSpeciesId = GET_BASE_SPECIES_ID(gBattleMons[battlerAtk].species); @@ -9554,7 +9637,7 @@ static inline u32 CalcAttackStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 m } // critical hits ignore attack stat's stage drops - if (isCrit && atkStage < DEFAULT_STAT_STAGE) + if (damageCalcData->isCrit && atkStage < DEFAULT_STAT_STAGE) atkStage = DEFAULT_STAT_STAGE; // pokemon with unaware ignore attack stat changes while taking damage if (defAbility == ABILITY_UNAWARE) @@ -9640,6 +9723,57 @@ static inline u32 CalcAttackStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 m if (gBattleMons[battlerAtk].status1 & STATUS1_ANY && IS_MOVE_PHYSICAL(move)) modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(1.5)); break; + case ABILITY_TRANSISTOR: + if (moveType == TYPE_ELECTRIC) + { + if (B_TRANSISTOR_BOOST >= GEN_9) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); + else + modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); + } + break; + case ABILITY_DRAGONS_MAW: + if (moveType == TYPE_DRAGON) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); + break; + case ABILITY_GORILLA_TACTICS: + if (IS_MOVE_PHYSICAL(move)) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); + break; + case ABILITY_ROCKY_PAYLOAD: + if (moveType == TYPE_ROCK) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.5)); + break; + case ABILITY_PROTOSYNTHESIS: + if (!(gBattleMons[battlerAtk].status2 & STATUS2_TRANSFORMED)) + { + u32 atkHighestStat = GetHighestStatId(battlerAtk); + if (((weather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT) || gBattleStruct->boosterEnergyActivates & (1u << battlerAtk)) + { + if ((IS_MOVE_PHYSICAL(move) && atkHighestStat == STAT_ATK) || (IS_MOVE_SPECIAL(move) && atkHighestStat == STAT_SPATK)) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); + } + } + break; + case ABILITY_QUARK_DRIVE: + if (!(gBattleMons[battlerAtk].status2 & STATUS2_TRANSFORMED)) + { + u32 atkHighestStat = GetHighestStatId(battlerAtk); + if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN || gBattleStruct->boosterEnergyActivates & (1u << battlerAtk)) + { + if ((IS_MOVE_PHYSICAL(move) && atkHighestStat == STAT_ATK) || (IS_MOVE_SPECIAL(move) && atkHighestStat == STAT_SPATK)) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.3)); + } + } + break; + case ABILITY_ORICHALCUM_PULSE: + if ((weather & B_WEATHER_SUN) && WEATHER_HAS_EFFECT && IS_MOVE_PHYSICAL(move)) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.33)); + break; + case ABILITY_HADRON_ENGINE: + if (gFieldStatuses & STATUS_FIELD_ELECTRIC_TERRAIN && IS_MOVE_SPECIAL(move)) + modifier = uq4_12_multiply(modifier, UQ_4_12(1.33)); + break; } // target's abilities @@ -9649,7 +9783,7 @@ static inline u32 CalcAttackStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 m if (moveType == TYPE_FIRE || moveType == TYPE_ICE) { modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(0.5)); - if (updateFlags) + if (damageCalcData->updateFlags) RecordAbilityBattle(battlerDef, ABILITY_THICK_FAT); } break; @@ -9726,12 +9860,15 @@ static bool32 CanEvolve(u32 species) return FALSE; } -static inline u32 CalcDefenseStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, bool32 isCrit, bool32 updateFlags, u32 atkAbility, u32 defAbility, u32 holdEffectDef, u32 weather) +static inline u32 CalcDefenseStat(struct DamageCalculationData *damageCalcData, u32 atkAbility, u32 defAbility, u32 holdEffectDef, u32 weather) { bool32 usesDefStat; u8 defStage; u32 defStat, def, spDef; uq4_12_t modifier; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; if (gFieldStatuses & STATUS_FIELD_WONDER_ROOM) // the defense stats are swapped { @@ -9762,7 +9899,7 @@ static inline u32 CalcDefenseStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 defStat /= 2; // critical hits ignore positive stat changes - if (isCrit && defStage > DEFAULT_STAT_STAGE) + if (damageCalcData->isCrit && defStage > DEFAULT_STAT_STAGE) defStage = DEFAULT_STAT_STAGE; // pokemon with unaware ignore defense stat changes while dealing damage if (atkAbility == ABILITY_UNAWARE) @@ -9784,7 +9921,7 @@ static inline u32 CalcDefenseStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 if (gBattleMons[battlerDef].status1 & STATUS1_ANY && usesDefStat) { modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(1.5)); - if (updateFlags) + if (damageCalcData->updateFlags) RecordAbilityBattle(battlerDef, ABILITY_MARVEL_SCALE); } break; @@ -9792,7 +9929,7 @@ static inline u32 CalcDefenseStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 if (usesDefStat) { modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(2.0)); - if (updateFlags) + if (damageCalcData->updateFlags) RecordAbilityBattle(battlerDef, ABILITY_FUR_COAT); } break; @@ -9800,7 +9937,7 @@ static inline u32 CalcDefenseStat(u32 move, u32 battlerAtk, u32 battlerDef, u32 if (gFieldStatuses & STATUS_FIELD_GRASSY_TERRAIN && usesDefStat) { modifier = uq4_12_multiply_half_down(modifier, UQ_4_12(1.5)); - if (updateFlags) + if (damageCalcData->updateFlags) RecordAbilityBattle(battlerDef, ABILITY_GRASS_PELT); } break; @@ -9884,9 +10021,9 @@ static inline s32 CalculateBaseDamage(u32 power, u32 userFinalAttack, u32 level, return power * userFinalAttack * (2 * level / 5 + 2) / targetFinalDefense / 50 + 2; } -static inline uq4_12_t GetTargetDamageModifier(u32 move, u32 battlerAtk, u32 battlerDef) +static inline uq4_12_t GetTargetDamageModifier(struct DamageCalculationData *damageCalcData) { - if (IsDoubleBattle() && GetMoveTargetCount(move, battlerAtk, battlerDef) >= 2) + if (IsDoubleBattle() && GetMoveTargetCount(damageCalcData) >= 2) return B_MULTIPLE_TARGETS_DMG >= GEN_4 ? UQ_4_12(0.75) : UQ_4_12(0.5); return UQ_4_12(1.0); } @@ -9898,8 +10035,12 @@ static inline uq4_12_t GetParentalBondModifier(u32 battlerAtk) return B_PARENTAL_BOND_DMG >= GEN_7 ? UQ_4_12(0.25) : UQ_4_12(0.5); } -static inline uq4_12_t GetSameTypeAttackBonusModifier(u32 battlerAtk, u32 moveType, u32 move, u32 abilityAtk) +static inline uq4_12_t GetSameTypeAttackBonusModifier(struct DamageCalculationData *damageCalcData, u32 abilityAtk) { + u32 battlerAtk = damageCalcData->battlerAtk; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; + if (moveType == TYPE_MYSTERY) return UQ_4_12(1.0); else if (gBattleStruct->pledgeMove && IS_BATTLER_OF_TYPE(BATTLE_PARTNER(battlerAtk), moveType)) @@ -9910,8 +10051,11 @@ static inline uq4_12_t GetSameTypeAttackBonusModifier(u32 battlerAtk, u32 moveTy } // Utility Umbrella holders take normal damage from what would be rain- and sun-weakened attacks. -static uq4_12_t GetWeatherDamageModifier(u32 battlerAtk, u32 move, u32 moveType, u32 holdEffectAtk, u32 holdEffectDef, u32 weather) +static uq4_12_t GetWeatherDamageModifier(struct DamageCalculationData *damageCalcData, u32 holdEffectAtk, u32 holdEffectDef, u32 weather) { + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; + if (weather == B_WEATHER_NONE) return UQ_4_12(1.0); if (gMovesInfo[move].effect == EFFECT_HYDRO_STEAM && (weather & B_WEATHER_SUN) && holdEffectAtk != HOLD_EFFECT_UTILITY_UMBRELLA) @@ -9934,8 +10078,11 @@ static uq4_12_t GetWeatherDamageModifier(u32 battlerAtk, u32 move, u32 moveType, return UQ_4_12(1.0); } -static inline uq4_12_t GetBurnOrFrostBiteModifier(u32 battlerAtk, u32 move, u32 abilityAtk) +static inline uq4_12_t GetBurnOrFrostBiteModifier(struct DamageCalculationData *damageCalcData, u32 abilityAtk) { + u32 battlerAtk = damageCalcData->battlerAtk; + u32 move = damageCalcData->move; + if (gBattleMons[battlerAtk].status1 & STATUS1_BURN && IS_MOVE_PHYSICAL(move) && (B_BURN_FACADE_DMG < GEN_6 || gMovesInfo[move].effect != EFFECT_FACADE) @@ -9962,9 +10109,9 @@ static inline uq4_12_t GetGlaiveRushModifier(u32 battlerDef) return UQ_4_12(1.0); } -static inline uq4_12_t GetZMaxMoveAgainstProtectionModifier(u32 battlerDef, u32 move) +static inline uq4_12_t GetZMaxMoveAgainstProtectionModifier(struct DamageCalculationData *damageCalcData) { - if ((IsZMove(move) || IsMaxMove(move)) && IS_BATTLER_PROTECTED(battlerDef)) + if ((IsZMove(damageCalcData->move) || IsMaxMove(damageCalcData->move)) && IS_BATTLER_PROTECTED(damageCalcData->battlerDef)) return UQ_4_12(0.25); return UQ_4_12(1.0); } @@ -10105,8 +10252,11 @@ static inline uq4_12_t GetAttackerItemsModifier(u32 battlerAtk, uq4_12_t typeEff return UQ_4_12(1.0); } -static inline uq4_12_t GetDefenderItemsModifier(u32 moveType, u32 battlerDef, uq4_12_t typeEffectivenessModifier, bool32 updateFlags, u32 abilityDef, u32 holdEffectDef) +static inline uq4_12_t GetDefenderItemsModifier(struct DamageCalculationData *damageCalcData, uq4_12_t typeEffectivenessModifier, u32 abilityDef, u32 holdEffectDef) { + u32 battlerDef = damageCalcData->battlerDef; + u32 moveType = damageCalcData->moveType; + u32 holdEffectDefParam = GetBattlerHoldEffectParam(battlerDef); u32 itemDef = gBattleMons[battlerDef].item; @@ -10117,7 +10267,7 @@ static inline uq4_12_t GetDefenderItemsModifier(u32 moveType, u32 battlerDef, uq return UQ_4_12(1.0); if (moveType == holdEffectDefParam && (moveType == TYPE_NORMAL || typeEffectivenessModifier >= UQ_4_12(2.0))) { - if (updateFlags) + if (damageCalcData->updateFlags) gSpecialStatuses[battlerDef].berryReduced = TRUE; return (abilityDef == ABILITY_RIPEN) ? UQ_4_12(0.25) : UQ_4_12(0.5); } @@ -10136,9 +10286,15 @@ static inline uq4_12_t GetDefenderItemsModifier(u32 moveType, u32 battlerDef, uq // https://bulbapedia.bulbagarden.net/wiki/Damage#Generation_V_onward // Please Note: Fixed Point Multiplication is not associative. // The order of operations is relevant. -static inline uq4_12_t GetOtherModifiers(u32 move, u32 moveType, u32 battlerAtk, u32 battlerDef, bool32 isCrit, uq4_12_t typeEffectivenessModifier, bool32 updateFlags, +static inline uq4_12_t GetOtherModifiers(struct DamageCalculationData *damageCalcData, uq4_12_t typeEffectivenessModifier, u32 abilityAtk, u32 abilityDef, u32 holdEffectAtk, u32 holdEffectDef) { + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; + u32 isCrit = damageCalcData->isCrit; + uq4_12_t finalModifier = UQ_4_12(1.0); u32 battlerDefPartner = BATTLE_PARTNER(battlerDef); u32 unmodifiedAttackerSpeed = gBattleMons[battlerAtk].speed; @@ -10157,14 +10313,14 @@ static inline uq4_12_t GetOtherModifiers(u32 move, u32 moveType, u32 battlerAtk, DAMAGE_MULTIPLY_MODIFIER(GetDefenderAbilitiesModifier(move, moveType, battlerAtk, battlerDef, typeEffectivenessModifier, abilityDef)); DAMAGE_MULTIPLY_MODIFIER(GetDefenderPartnerAbilitiesModifier(battlerDefPartner)); DAMAGE_MULTIPLY_MODIFIER(GetAttackerItemsModifier(battlerAtk, typeEffectivenessModifier, holdEffectAtk)); - DAMAGE_MULTIPLY_MODIFIER(GetDefenderItemsModifier(moveType, battlerDef, typeEffectivenessModifier, updateFlags, abilityDef, holdEffectDef)); + DAMAGE_MULTIPLY_MODIFIER(GetDefenderItemsModifier(damageCalcData, typeEffectivenessModifier, abilityDef, holdEffectDef)); } else { DAMAGE_MULTIPLY_MODIFIER(GetDefenderAbilitiesModifier(move, moveType, battlerAtk, battlerDef, typeEffectivenessModifier, abilityDef)); DAMAGE_MULTIPLY_MODIFIER(GetDefenderPartnerAbilitiesModifier(battlerDefPartner)); DAMAGE_MULTIPLY_MODIFIER(GetAttackerAbilitiesModifier(battlerAtk, typeEffectivenessModifier, isCrit, abilityAtk)); - DAMAGE_MULTIPLY_MODIFIER(GetDefenderItemsModifier(moveType, battlerDef, typeEffectivenessModifier, updateFlags, abilityDef, holdEffectDef)); + DAMAGE_MULTIPLY_MODIFIER(GetDefenderItemsModifier(damageCalcData, typeEffectivenessModifier, abilityDef, holdEffectDef)); DAMAGE_MULTIPLY_MODIFIER(GetAttackerItemsModifier(battlerAtk, typeEffectivenessModifier, holdEffectAtk)); } return finalModifier; @@ -10176,73 +10332,75 @@ static inline uq4_12_t GetOtherModifiers(u32 move, u32 moveType, u32 battlerAtk, dmg = uq4_12_multiply_by_int_half_down(modifier, dmg); \ } while (0) -static inline s32 DoMoveDamageCalcVars(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, - bool32 isCrit, bool32 randomFactor, bool32 updateFlags, uq4_12_t typeEffectivenessModifier, u32 weather, - u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef) +static inline s32 DoMoveDamageCalcVars(struct DamageCalculationData *damageCalcData, u32 fixedBasePower, uq4_12_t typeEffectivenessModifier, u32 weather, + u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef) { s32 dmg; u32 userFinalAttack; u32 targetFinalDefense; + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; if (fixedBasePower) gBattleMovePower = fixedBasePower; else - gBattleMovePower = CalcMoveBasePowerAfterModifiers(move, battlerAtk, battlerDef, moveType, updateFlags, abilityAtk, abilityDef, holdEffectAtk, weather); + gBattleMovePower = CalcMoveBasePowerAfterModifiers(damageCalcData, abilityAtk, abilityDef, holdEffectAtk, weather); - userFinalAttack = CalcAttackStat(move, battlerAtk, battlerDef, moveType, isCrit, updateFlags, abilityAtk, abilityDef, holdEffectAtk); - targetFinalDefense = CalcDefenseStat(move, battlerAtk, battlerDef, moveType, isCrit, updateFlags, abilityAtk, abilityDef, holdEffectDef, weather); + userFinalAttack = CalcAttackStat(damageCalcData, abilityAtk, abilityDef, holdEffectAtk, weather); + targetFinalDefense = CalcDefenseStat(damageCalcData, abilityAtk, abilityDef, holdEffectDef, weather); dmg = CalculateBaseDamage(gBattleMovePower, userFinalAttack, gBattleMons[battlerAtk].level, targetFinalDefense); - DAMAGE_APPLY_MODIFIER(GetTargetDamageModifier(move, battlerAtk, battlerDef)); + DAMAGE_APPLY_MODIFIER(GetTargetDamageModifier(damageCalcData)); DAMAGE_APPLY_MODIFIER(GetParentalBondModifier(battlerAtk)); - DAMAGE_APPLY_MODIFIER(GetWeatherDamageModifier(battlerAtk, move, moveType, holdEffectAtk, holdEffectDef, weather)); - DAMAGE_APPLY_MODIFIER(GetCriticalModifier(isCrit)); + DAMAGE_APPLY_MODIFIER(GetWeatherDamageModifier(damageCalcData, holdEffectAtk, holdEffectDef, weather)); + DAMAGE_APPLY_MODIFIER(GetCriticalModifier(damageCalcData->isCrit)); DAMAGE_APPLY_MODIFIER(GetGlaiveRushModifier(battlerDef)); - if (randomFactor) + if (damageCalcData->randomFactor) { dmg *= DMG_ROLL_PERCENT_HI - RandomUniform(RNG_DAMAGE_MODIFIER, 0, DMG_ROLL_PERCENT_HI - DMG_ROLL_PERCENT_LO); dmg /= 100; } if (GetActiveGimmick(battlerAtk) == GIMMICK_TERA) - DAMAGE_APPLY_MODIFIER(GetTeraMultiplier(battlerAtk, moveType)); + DAMAGE_APPLY_MODIFIER(GetTeraMultiplier(battlerAtk, damageCalcData->moveType)); else - DAMAGE_APPLY_MODIFIER(GetSameTypeAttackBonusModifier(battlerAtk, moveType, move, abilityAtk)); + DAMAGE_APPLY_MODIFIER(GetSameTypeAttackBonusModifier(damageCalcData, abilityAtk)); DAMAGE_APPLY_MODIFIER(typeEffectivenessModifier); - DAMAGE_APPLY_MODIFIER(GetBurnOrFrostBiteModifier(battlerAtk, move, abilityAtk)); - DAMAGE_APPLY_MODIFIER(GetZMaxMoveAgainstProtectionModifier(battlerDef, move)); - DAMAGE_APPLY_MODIFIER(GetOtherModifiers(move, moveType, battlerAtk, battlerDef, isCrit, typeEffectivenessModifier, updateFlags, abilityAtk, abilityDef, holdEffectAtk, holdEffectDef)); + DAMAGE_APPLY_MODIFIER(GetBurnOrFrostBiteModifier(damageCalcData, abilityAtk)); + DAMAGE_APPLY_MODIFIER(GetZMaxMoveAgainstProtectionModifier(damageCalcData)); + DAMAGE_APPLY_MODIFIER(GetOtherModifiers(damageCalcData, typeEffectivenessModifier, abilityAtk, abilityDef, holdEffectAtk, holdEffectDef)); if (dmg == 0) dmg = 1; return dmg; } -static inline s32 DoMoveDamageCalc(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, - bool32 isCrit, bool32 randomFactor, bool32 updateFlags, uq4_12_t typeEffectivenessModifier, u32 weather) +static inline s32 DoMoveDamageCalc(struct DamageCalculationData *damageCalcData, u32 fixedBasePower, uq4_12_t typeEffectivenessModifier, u32 weather) { u32 holdEffectAtk, holdEffectDef, abilityAtk, abilityDef; if (typeEffectivenessModifier == UQ_4_12(0.0)) return 0; - holdEffectAtk = GetBattlerHoldEffect(battlerAtk, TRUE); - holdEffectDef = GetBattlerHoldEffect(battlerDef, TRUE); - abilityAtk = GetBattlerAbility(battlerAtk); - abilityDef = GetBattlerAbility(battlerDef); + holdEffectAtk = GetBattlerHoldEffect(damageCalcData->battlerAtk, TRUE); + holdEffectDef = GetBattlerHoldEffect(damageCalcData->battlerDef, TRUE); + abilityAtk = GetBattlerAbility(damageCalcData->battlerAtk); + abilityDef = GetBattlerAbility(damageCalcData->battlerDef); - return DoMoveDamageCalcVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, isCrit, randomFactor, - updateFlags, typeEffectivenessModifier, weather, holdEffectAtk, holdEffectDef, abilityAtk, abilityDef); + return DoMoveDamageCalcVars(damageCalcData, fixedBasePower, typeEffectivenessModifier, weather, holdEffectAtk, holdEffectDef, abilityAtk, abilityDef); } -static inline s32 DoFutureSightAttackDamageCalcVars(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, - bool32 isCrit, bool32 randomFactor, bool32 updateFlags, uq4_12_t typeEffectivenessModifier, u32 weather, - u32 holdEffectDef, u32 abilityDef) +static inline s32 DoFutureSightAttackDamageCalcVars(struct DamageCalculationData *damageCalcData, uq4_12_t typeEffectivenessModifier, + u32 weather, u32 holdEffectDef, u32 abilityDef) { s32 dmg; u32 userFinalAttack; u32 targetFinalDefense; + u32 battlerAtk = damageCalcData->battlerAtk; + u32 battlerDef = damageCalcData->battlerDef; + u32 move = damageCalcData->move; + u32 moveType = damageCalcData->moveType; struct Pokemon *party = GetSideParty(GetBattlerSide(battlerAtk)); struct Pokemon *partyMon = &party[gWishFutureKnock.futureSightPartyIndex[battlerDef]]; @@ -10255,12 +10413,12 @@ static inline s32 DoFutureSightAttackDamageCalcVars(u32 move, u32 battlerAtk, u3 else userFinalAttack = GetMonData(partyMon, MON_DATA_SPATK, NULL); - targetFinalDefense = CalcDefenseStat(move, battlerAtk, battlerDef, moveType, isCrit, updateFlags, ABILITY_NONE, abilityDef, holdEffectDef, weather); + targetFinalDefense = CalcDefenseStat(damageCalcData, ABILITY_NONE, abilityDef, holdEffectDef, weather); dmg = CalculateBaseDamage(gBattleMovePower, userFinalAttack, partyMonLevel, targetFinalDefense); - DAMAGE_APPLY_MODIFIER(GetCriticalModifier(isCrit)); + DAMAGE_APPLY_MODIFIER(GetCriticalModifier(damageCalcData->isCrit)); - if (randomFactor) + if (damageCalcData->randomFactor) { dmg *= DMG_ROLL_PERCENT_HI - RandomUniform(RNG_DAMAGE_MODIFIER, 0, DMG_ROLL_PERCENT_HI - DMG_ROLL_PERCENT_LO); dmg /= 100; @@ -10281,19 +10439,17 @@ static inline s32 DoFutureSightAttackDamageCalcVars(u32 move, u32 battlerAtk, u3 return dmg; } -static inline s32 DoFutureSightAttackDamageCalc(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, - bool32 isCrit, bool32 randomFactor, bool32 updateFlags, uq4_12_t typeEffectivenessModifier, u32 weather) +static inline s32 DoFutureSightAttackDamageCalc(struct DamageCalculationData *damageCalcData, uq4_12_t typeEffectivenessModifier, u32 weather) { u32 holdEffectDef, abilityDef; if (typeEffectivenessModifier == UQ_4_12(0.0)) return 0; - holdEffectDef = GetBattlerHoldEffect(battlerDef, TRUE); - abilityDef = GetBattlerAbility(battlerDef); + holdEffectDef = GetBattlerHoldEffect(damageCalcData->battlerDef, TRUE); + abilityDef = GetBattlerAbility(damageCalcData->battlerDef); - return DoFutureSightAttackDamageCalcVars(move, battlerAtk, battlerDef, moveType, isCrit, randomFactor, - updateFlags, typeEffectivenessModifier, weather, holdEffectDef, abilityDef); + return DoFutureSightAttackDamageCalcVars(damageCalcData, typeEffectivenessModifier, weather, holdEffectDef, abilityDef); } #undef DAMAGE_APPLY_MODIFIER @@ -10306,31 +10462,37 @@ static u32 GetWeather(void) return gBattleWeather; } -s32 CalculateMoveDamage(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, bool32 isCrit, bool32 randomFactor, bool32 updateFlags) +static inline bool32 IsFutureSightAttackerInParty(struct DamageCalculationData *damageCalcData) { - struct Pokemon *party = GetSideParty(GetBattlerSide(gBattlerAttacker)); + if (gMovesInfo[damageCalcData->move].effect != EFFECT_FUTURE_SIGHT) + return FALSE; - if (gMovesInfo[move].effect == EFFECT_FUTURE_SIGHT - && (&party[gWishFutureKnock.futureSightPartyIndex[battlerDef]] != &party[gBattlerPartyIndexes[battlerAtk]]) ) - { - return DoFutureSightAttackDamageCalc(move, battlerAtk, battlerDef, moveType, isCrit, randomFactor, - updateFlags, CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, GetBattlerAbility(battlerDef), updateFlags), - GetWeather()); - } - else - { - return DoMoveDamageCalc(move, battlerAtk, battlerDef, moveType, fixedBasePower, isCrit, randomFactor, - updateFlags, CalcTypeEffectivenessMultiplier(move, moveType, battlerAtk, battlerDef, GetBattlerAbility(battlerDef), updateFlags), - GetWeather()); - } + struct Pokemon *party = GetSideParty(GetBattlerSide(gBattlerAttacker)); + return &party[gWishFutureKnock.futureSightPartyIndex[damageCalcData->battlerDef]] + != &party[gBattlerPartyIndexes[damageCalcData->battlerAtk]]; +} + +s32 CalculateMoveDamage(struct DamageCalculationData *damageCalcData, u32 fixedBasePower) +{ + u32 typeEffectivenessMultiplier = CalcTypeEffectivenessMultiplier(damageCalcData->move, + damageCalcData->moveType, + damageCalcData->battlerAtk, + damageCalcData->battlerDef, + GetBattlerAbility(damageCalcData->battlerDef), + damageCalcData->updateFlags); + + if (IsFutureSightAttackerInParty(damageCalcData)) + return DoFutureSightAttackDamageCalc(damageCalcData, typeEffectivenessMultiplier, GetWeather()); + + return DoMoveDamageCalc(damageCalcData, fixedBasePower, typeEffectivenessMultiplier, GetWeather()); } // for AI so that typeEffectivenessModifier, weather, abilities and holdEffects are calculated only once -s32 CalculateMoveDamageVars(u32 move, u32 battlerAtk, u32 battlerDef, u32 moveType, s32 fixedBasePower, uq4_12_t typeEffectivenessModifier, - u32 weather, bool32 isCrit, u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef) +s32 CalculateMoveDamageVars(struct DamageCalculationData *damageCalcData, u32 fixedBasePower, uq4_12_t typeEffectivenessModifier, + u32 weather, u32 holdEffectAtk, u32 holdEffectDef, u32 abilityAtk, u32 abilityDef) { - return DoMoveDamageCalcVars(move, battlerAtk, battlerDef, moveType, fixedBasePower, isCrit, FALSE, FALSE, - typeEffectivenessModifier, weather, holdEffectAtk, holdEffectDef, abilityAtk, abilityDef); + return DoMoveDamageCalcVars(damageCalcData, fixedBasePower, typeEffectivenessModifier, weather, + holdEffectAtk, holdEffectDef, abilityAtk, abilityDef); } static inline void MulByTypeEffectiveness(uq4_12_t *modifier, u32 move, u32 moveType, u32 battlerDef, u32 defType, u32 battlerAtk, bool32 recordAbilities) @@ -10373,7 +10535,7 @@ static inline void MulByTypeEffectiveness(uq4_12_t *modifier, u32 move, u32 move mod = UQ_4_12(1.0); } - if (gBattleStruct->distortedTypeMatchups & (1u << battlerDef) || (gBattleStruct->aiCalcInProgress && ShouldTeraShellDistortTypeMatchups(move, battlerDef))) + if (gSpecialStatuses[battlerDef].distortedTypeMatchups || (AI_DATA->aiCalcInProgress && ShouldTeraShellDistortTypeMatchups(move, battlerDef))) { mod = UQ_4_12(0.5); if (recordAbilities) @@ -10395,39 +10557,41 @@ static inline void TryNoticeIllusionInTypeEffectiveness(u32 move, u32 moveType, RecordAbilityBattle(battlerDef, ABILITY_ILLUSION); } -static void UpdateMoveResultFlags(uq4_12_t modifier) +static void UpdateMoveResultFlags(uq4_12_t modifier, u32 battler) { if (modifier == UQ_4_12(0.0)) { - gMoveResultFlags |= MOVE_RESULT_DOESNT_AFFECT_FOE; - gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE); + gBattleStruct->moveResultFlags[battler] |= MOVE_RESULT_DOESNT_AFFECT_FOE; + gBattleStruct->moveResultFlags[battler] &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE); + gBattleStruct->blunderPolicy = FALSE; // Don't activate if missed } else if (modifier == UQ_4_12(1.0)) { - gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); + gBattleStruct->moveResultFlags[battler] &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); } else if (modifier > UQ_4_12(1.0)) { - gMoveResultFlags |= MOVE_RESULT_SUPER_EFFECTIVE; - gMoveResultFlags &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); + gBattleStruct->moveResultFlags[battler] |= MOVE_RESULT_SUPER_EFFECTIVE; + gBattleStruct->moveResultFlags[battler] &= ~(MOVE_RESULT_NOT_VERY_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); } else //if (modifier < UQ_4_12(1.0)) { - gMoveResultFlags |= MOVE_RESULT_NOT_VERY_EFFECTIVE; - gMoveResultFlags &= ~(MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); + gBattleStruct->moveResultFlags[battler] |= MOVE_RESULT_NOT_VERY_EFFECTIVE; + gBattleStruct->moveResultFlags[battler] &= ~(MOVE_RESULT_SUPER_EFFECTIVE | MOVE_RESULT_DOESNT_AFFECT_FOE); } } static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(u32 move, u32 moveType, u32 battlerAtk, u32 battlerDef, bool32 recordAbilities, uq4_12_t modifier, u32 defAbility) { u32 illusionSpecies; + u32 types[3]; + GetBattlerTypes(battlerDef, FALSE, types); - MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, GetBattlerType(battlerDef, 0, FALSE), battlerAtk, recordAbilities); - if (GetBattlerType(battlerDef, 1, FALSE) != GetBattlerType(battlerDef, 0, FALSE)) - MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, GetBattlerType(battlerDef, 1, FALSE), battlerAtk, recordAbilities); - if (GetBattlerType(battlerDef, 2, FALSE) != TYPE_MYSTERY && GetBattlerType(battlerDef, 2, FALSE) != GetBattlerType(battlerDef, 1, FALSE) - && GetBattlerType(battlerDef, 2, FALSE) != GetBattlerType(battlerDef, 0, FALSE)) - MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, GetBattlerType(battlerDef, 2, FALSE), battlerAtk, recordAbilities); + MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, types[0], battlerAtk, recordAbilities); + if (types[1] != types[0]) + MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, types[1], battlerAtk, recordAbilities); + if (types[2] != TYPE_MYSTERY && types[2] != types[1] && types[2] != types[0]) + MulByTypeEffectiveness(&modifier, move, moveType, battlerDef, types[2], battlerAtk, recordAbilities); if (moveType == TYPE_FIRE && gDisableStructs[battlerDef].tarShot) modifier = uq4_12_multiply(modifier, UQ_4_12(2.0)); @@ -10440,15 +10604,15 @@ static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(u32 move, u32 mov if (B_GLARE_GHOST < GEN_4 && move == MOVE_GLARE && IS_BATTLER_OF_TYPE(battlerDef, TYPE_GHOST)) modifier = UQ_4_12(0.0); } - else if (moveType == TYPE_GROUND && !IsBattlerGrounded2(battlerDef, TRUE) && !(gMovesInfo[move].ignoreTypeIfFlyingAndUngrounded)) + else if (moveType == TYPE_GROUND && !IsBattlerGroundedInverseCheck(battlerDef, TRUE) && !(gMovesInfo[move].ignoreTypeIfFlyingAndUngrounded)) { modifier = UQ_4_12(0.0); if (recordAbilities && defAbility == ABILITY_LEVITATE) { + gBattleStruct->moveResultFlags[battlerDef] |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastUsedAbility = ABILITY_LEVITATE; - gMoveResultFlags |= (MOVE_RESULT_MISSED | MOVE_RESULT_DOESNT_AFFECT_FOE); gLastLandedMoves[battlerDef] = 0; - gBattleCommunication[MISS_TYPE] = B_MSG_GROUND_MISS; + gBattleStruct->missStringId[battlerDef] = B_MSG_GROUND_MISS; RecordAbilityBattle(battlerDef, ABILITY_LEVITATE); } } @@ -10458,8 +10622,9 @@ static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(u32 move, u32 mov } // Thousand Arrows ignores type modifiers for flying mons - if (!IsBattlerGrounded(battlerDef) && (gMovesInfo[move].ignoreTypeIfFlyingAndUngrounded) - && (GetBattlerType(battlerDef, 0, FALSE) == TYPE_FLYING || GetBattlerType(battlerDef, 1, FALSE) == TYPE_FLYING || GetBattlerType(battlerDef, 2, FALSE) == TYPE_FLYING)) + if (!IsBattlerGrounded(battlerDef) + && (gMovesInfo[move].ignoreTypeIfFlyingAndUngrounded) + && IS_BATTLER_OF_TYPE(battlerDef, TYPE_FLYING)) { modifier = UQ_4_12(1.0); } @@ -10472,9 +10637,9 @@ static inline uq4_12_t CalcTypeEffectivenessMultiplierInternal(u32 move, u32 mov if (recordAbilities) { gLastUsedAbility = gBattleMons[battlerDef].ability; - gMoveResultFlags |= MOVE_RESULT_MISSED; + gBattleStruct->moveResultFlags[battlerDef] |= MOVE_RESULT_MISSED; gLastLandedMoves[battlerDef] = 0; - gBattleCommunication[MISS_TYPE] = B_MSG_AVOIDED_DMG; + gBattleStruct->missStringId[battlerDef] = B_MSG_AVOIDED_DMG; RecordAbilityBattle(battlerDef, gBattleMons[battlerDef].ability); } } @@ -10498,7 +10663,7 @@ uq4_12_t CalcTypeEffectivenessMultiplier(u32 move, u32 moveType, u32 battlerAtk, } if (recordAbilities) - UpdateMoveResultFlags(modifier); + UpdateMoveResultFlags(modifier, battlerDef); return modifier; } @@ -10519,7 +10684,7 @@ uq4_12_t CalcPartyMonTypeEffectivenessMultiplier(u16 move, u16 speciesDef, u16 a modifier = UQ_4_12(0.0); } - UpdateMoveResultFlags(modifier); + UpdateMoveResultFlags(modifier, speciesDef); return modifier; } @@ -10657,6 +10822,7 @@ bool32 DoesSpeciesUseHoldItemToChangeForm(u16 species, u16 heldItemId) case FORM_CHANGE_BATTLE_PRIMAL_REVERSION: case FORM_CHANGE_BATTLE_ULTRA_BURST: case FORM_CHANGE_ITEM_HOLD: + case FORM_CHANGE_BEGIN_BATTLE: if (formChanges[i].param1 == heldItemId) return TRUE; break; @@ -10877,6 +11043,16 @@ u16 GetBattleFormChangeTargetSpecies(u32 battler, u16 method) if (GetBattlerTeraType(battler) == formChanges[i].param1) targetSpecies = formChanges[i].targetSpecies; break; + case FORM_CHANGE_BATTLE_BEFORE_MOVE: + if (formChanges[i].param1 == gCurrentMove + && (formChanges[i].param2 == ABILITY_NONE || formChanges[i].param2 == GetBattlerAbility(battler))) + targetSpecies = formChanges[i].targetSpecies; + break; + case FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY: + if (formChanges[i].param1 == GetBattleMoveCategory(gCurrentMove) + && (formChanges[i].param2 == ABILITY_NONE || formChanges[i].param2 == GetBattlerAbility(battler))) + targetSpecies = formChanges[i].targetSpecies; + break; } } } @@ -10963,8 +11139,9 @@ bool32 TryBattleFormChange(u32 battler, u32 method) bool32 DoBattlersShareType(u32 battler1, u32 battler2) { s32 i; - u8 types1[3] = {GetBattlerType(battler1, 0, FALSE), GetBattlerType(battler1, 1, FALSE), GetBattlerType(battler1, 2, FALSE)}; - u8 types2[3] = {GetBattlerType(battler2, 0, FALSE), GetBattlerType(battler2, 1, FALSE), GetBattlerType(battler2, 2, FALSE)}; + u32 types1[3], types2[3]; + GetBattlerTypes(battler1, FALSE, types1); + GetBattlerTypes(battler2, FALSE, types2); if (types1[2] == TYPE_MYSTERY) types1[2] = types1[0]; @@ -11735,31 +11912,40 @@ bool8 IsMonBannedFromSkyBattles(u16 species) } } -u8 GetBattlerType(u32 battler, u8 typeIndex, bool32 ignoreTera) +void GetBattlerTypes(u32 battler, bool32 ignoreTera, u32 types[static 3]) { - u32 teraType = GetBattlerTeraType(battler); - u16 types[3] = {0}; + // Terastallization. + bool32 isTera = GetActiveGimmick(battler) == GIMMICK_TERA; + if (!ignoreTera && isTera) + { + u32 teraType = GetBattlerTeraType(battler); + if (teraType != TYPE_STELLAR) + { + types[0] = types[1] = types[2] = teraType; + return; + } + } + types[0] = gBattleMons[battler].types[0]; types[1] = gBattleMons[battler].types[1]; types[2] = gBattleMons[battler].types[2]; - // Handle Terastallization - if (GetActiveGimmick(battler) == GIMMICK_TERA && teraType != TYPE_STELLAR && !ignoreTera) - return GetBattlerTeraType(battler); - - // Handle Roost's Flying-type suppression - if (typeIndex == 0 || typeIndex == 1) + // Roost. + if (!isTera && (gBattleResources->flags->flags[battler] & RESOURCE_FLAG_ROOST)) { - if (gBattleResources->flags->flags[battler] & RESOURCE_FLAG_ROOST - && GetActiveGimmick(battler) != GIMMICK_TERA) - { - if (types[0] == TYPE_FLYING && types[1] == TYPE_FLYING) - return B_ROOST_PURE_FLYING >= GEN_5 ? TYPE_NORMAL : TYPE_MYSTERY; - else - return types[typeIndex] == TYPE_FLYING ? TYPE_MYSTERY : types[typeIndex]; - } + if (types[0] == TYPE_FLYING && types[1] == TYPE_FLYING) + types[0] = types[1] = B_ROOST_PURE_FLYING >= GEN_5 ? TYPE_NORMAL : TYPE_MYSTERY; + else if (types[0] == TYPE_FLYING) + types[0] = TYPE_MYSTERY; + else if (types[1] == TYPE_FLYING) + types[1] = TYPE_MYSTERY; } +} +u32 GetBattlerType(u32 battler, u32 typeIndex, bool32 ignoreTera) +{ + u32 types[3]; + GetBattlerTypes(battler, ignoreTera, types); return types[typeIndex]; } @@ -11857,3 +12043,59 @@ u32 GetMoveType(u32 move) return TYPE_MYSTERY; return gMovesInfo[move].type; } + +void TryActivateSleepClause(u32 battler, u32 indexInParty) +{ + if (gBattleStruct->sleepClauseEffectExempt & (1u << battler)) + { + gBattleStruct->sleepClauseEffectExempt &= ~(1u << battler); + return; + } + + if (IsSleepClauseEnabled()) + gBattleStruct->monCausingSleepClause[GetBattlerSide(battler)] = indexInParty; +} + +void TryDeactivateSleepClause(u32 battlerSide, u32 indexInParty) +{ + // If the pokemon on the given side at the given index in the party is the one causing Sleep Clause to be active, + // set monCausingSleepClause[battlerSide] = PARTY_SIZE, which means Sleep Clause is not active for the given side + if (IsSleepClauseEnabled() && gBattleStruct->monCausingSleepClause[battlerSide] == indexInParty) + gBattleStruct->monCausingSleepClause[battlerSide] = PARTY_SIZE; +} + +bool32 IsSleepClauseActiveForSide(u32 battlerSide) +{ + // If monCausingSleepClause[battlerSide] == PARTY_SIZE, Sleep Clause is not active for the given side. + // If monCausingSleepClause[battlerSide] < PARTY_SIZE, it means it is storing the index of the mon that is causing Sleep Clause to be active, + // from which it follows that Sleep Clause is active. + return (IsSleepClauseEnabled() && (gBattleStruct->monCausingSleepClause[battlerSide] < PARTY_SIZE)); +} + +bool32 IsSleepClauseEnabled() +{ + if (B_SLEEP_CLAUSE) + return TRUE; + if (FlagGet(B_FLAG_SLEEP_CLAUSE)) + return TRUE; + return FALSE; +} + +void ClearDamageCalcResults(void) +{ + for (u32 battler = 0; battler < MAX_BATTLERS_COUNT; battler++) + { + gBattleStruct->moveDamage[battler] = 0; + gBattleStruct->critChance[battler] = 0; + gBattleStruct->moveResultFlags[battler] = 0; + gBattleStruct->noResultString[battler] = 0; + gBattleStruct->missStringId[battler] = 0; + gSpecialStatuses[battler].criticalHit = FALSE; + } + + gBattleStruct->doneDoublesSpreadHit = FALSE; + gBattleStruct->calculatedDamageDone = FALSE; + gBattleStruct->calculatedSpreadMoveAccuracy = FALSE; + gBattleStruct->printedStrongWindsWeakenedAttack = FALSE; + gBattleStruct->numSpreadTargets = 0; +} diff --git a/src/battle_z_move.c b/src/battle_z_move.c index 436ffb8428..53a39b6a79 100644 --- a/src/battle_z_move.c +++ b/src/battle_z_move.c @@ -79,7 +79,7 @@ static const struct SignatureZMove sSignatureZMoves[] = {SPECIES_PIKACHU_UNOVA, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, {SPECIES_PIKACHU_KALOS, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, {SPECIES_PIKACHU_ALOLA, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, - {SPECIES_PIKACHU_PARTNER_CAP, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, + {SPECIES_PIKACHU_PARTNER, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, {SPECIES_PIKACHU_WORLD, ITEM_PIKASHUNIUM_Z, MOVE_THUNDERBOLT, MOVE_10000000_VOLT_THUNDERBOLT}, {SPECIES_PRIMARINA, ITEM_PRIMARIUM_Z, MOVE_SPARKLING_ARIA, MOVE_OCEANIC_OPERETTA}, {SPECIES_SOLGALEO, ITEM_SOLGANIUM_Z, MOVE_SUNSTEEL_STRIKE, MOVE_SEARING_SUNRAZE_SMASH}, @@ -503,7 +503,7 @@ void SetZEffect(void) case Z_EFFECT_RECOVER_HP: if (gBattleMons[gBattlerAttacker].hp != gBattleMons[gBattlerAttacker].maxHP) { - gBattleMoveDamage = (-1) * gBattleMons[gBattlerAttacker].maxHP; + gBattleStruct->moveDamage[gBattlerAttacker] = (-1) * gBattleMons[gBattlerAttacker].maxHP; gBattleCommunication[MULTISTRING_CHOOSER] = B_MSG_Z_RECOVER_HP; BattleScriptPush(gBattlescriptCurrInstr + Z_EFFECT_BS_LENGTH); gBattlescriptCurrInstr = BattleScript_RecoverHPZMove; diff --git a/src/berry.c b/src/berry.c index 1f41973e74..88278db47b 100644 --- a/src/berry.c +++ b/src/berry.c @@ -2388,6 +2388,8 @@ static u8 GetTreeMutationValue(u8 id) myMutation.asField.a = tree->mutationA; myMutation.asField.b = tree->mutationB; myMutation.asField.unused = 0; + if (myMutation.value == 0) // no mutation + return 0; return sBerryMutations[myMutation.value - 1][2]; #else return 0; diff --git a/src/berry_blender.c b/src/berry_blender.c index a34afcf998..bf094b6fb9 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/gflib/bg.c b/src/bg.c similarity index 99% rename from gflib/bg.c rename to src/bg.c index 08bc402f71..27a5fb0501 100644 --- a/gflib/bg.c +++ b/src/bg.c @@ -38,7 +38,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/gflib/blit.c b/src/blit.c similarity index 100% rename from gflib/blit.c rename to src/blit.c diff --git a/src/braille_puzzles.c b/src/braille_puzzles.c index ab0f610fd7..757cac43b8 100644 --- a/src/braille_puzzles.c +++ b/src/braille_puzzles.c @@ -87,7 +87,6 @@ void DoBrailleDigEffect(void) DrawWholeMapView(); PlaySE(SE_BANG); FlagSet(FLAG_SYS_BRAILLE_DIG); - UnlockPlayerFieldControls(); } bool8 CheckRelicanthWailord(void) diff --git a/src/cable_car.c b/src/cable_car.c index 347f4e87e8..b5d3d0f53f 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; diff --git a/src/contest.c b/src/contest.c index be8bb3e92b..e03d5e8b3b 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. -rng_value_t gContestRngValue; +COMMON_DATA rng_value_t gContestRngValue = {0}; extern const u8 gText_LinkStandby4[]; extern const u8 gText_BDot[]; @@ -949,23 +949,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 } }; diff --git a/src/contest_painting.c b/src/contest_painting.c index 922b878531..8b647be12f 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/data/abilities.h b/src/data/abilities.h index 30a34ffe90..9e60122d2c 100644 --- a/src/data/abilities.h +++ b/src/data/abilities.h @@ -1514,7 +1514,7 @@ const struct Ability gAbilitiesInfo[ABILITIES_COUNT] = [ABILITY_SLUSH_RUSH] = { .name = _("Slush Rush"), - .description = COMPOUND_STRING("Raises Speed in Hail or Snow."), + .description = COMPOUND_STRING("Raises Speed in Hail/Snow."), .aiRating = 5, }, @@ -2381,7 +2381,7 @@ const struct Ability gAbilitiesInfo[ABILITIES_COUNT] = [ABILITY_TERA_SHELL] = { .name = _("Tera Shell"), - .description = COMPOUND_STRING("Resistant to types at full HP."), + .description = COMPOUND_STRING("Resists all at full HP."), .aiRating = 10, .cantBeCopied = TRUE, .cantBeSwapped = TRUE, @@ -2392,7 +2392,7 @@ const struct Ability gAbilitiesInfo[ABILITIES_COUNT] = [ABILITY_TERAFORM_ZERO] = { .name = _("Teraform Zero"), - .description = COMPOUND_STRING("Removes weather and terrain."), + .description = COMPOUND_STRING("Zeroes weather and terrain."), .aiRating = 10, .cantBeCopied = TRUE, .cantBeSwapped = TRUE, diff --git a/src/data/bard_music/moves.h b/src/data/bard_music/moves.h index 3fd16697d1..ce6713c346 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 a2ca35aa7d..268127ffdd 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, diff --git a/src/data/battle_anim.h b/src/data/battle_anim.h index 2ab982d2d7..a09c8d72c8 100644 --- a/src/data/battle_anim.h +++ b/src/data/battle_anim.h @@ -1465,6 +1465,7 @@ const struct CompressedSpriteSheet gBattleAnimPicTable[] = {gBattleAnimSpriteGfx_RedExplosion, 0x0800, ANIM_TAG_RED_EXPLOSION}, {gBattleAnimSpriteGfx_Beam, 0x0800, ANIM_TAG_BEAM}, {gBattleAnimSpriteGfx_PurpleChain, 0x1000, ANIM_TAG_PURPLE_CHAIN}, + {gBattleAnimSpriteGfx_PinkVioletOrb, 0x0080, ANIM_TAG_PINKVIO_ORB}, }; const struct CompressedSpritePalette gBattleAnimPaletteTable[] = @@ -1931,6 +1932,7 @@ const struct CompressedSpritePalette gBattleAnimPaletteTable[] = {gBattleAnimSpritePal_RedExplosion, ANIM_TAG_RED_EXPLOSION}, {gBattleAnimSpritePal_Beam, ANIM_TAG_BEAM}, {gBattleAnimSpritePal_PurpleChain, ANIM_TAG_PURPLE_CHAIN}, + {gBattleAnimSpritePal_PinkVioletOrb, ANIM_TAG_PINKVIO_ORB}, }; const struct BattleAnimBackground gBattleAnimBackgroundTable[] = diff --git a/src/data/battle_move_effects.h b/src/data/battle_move_effects.h index 776563bbec..ab70de3681 100644 --- a/src/data/battle_move_effects.h +++ b/src/data/battle_move_effects.h @@ -24,7 +24,7 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = [EFFECT_ABSORB] = { - .battleScript = BattleScript_EffectAbsorb, + .battleScript = BattleScript_EffectHit, .battleTvScore = 4, }, @@ -425,6 +425,27 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = .encourageEncore = TRUE, }, + [EFFECT_HOLD_HANDS] = + { + .battleScript = BattleScript_EffectHoldHands, + .battleTvScore = 1, + .encourageEncore = TRUE, + }, + + [EFFECT_CELEBRATE] = + { + .battleScript = BattleScript_EffectCelebrate, + .battleTvScore = 1, + .encourageEncore = TRUE, + }, + + [EFFECT_HAPPY_HOUR] = + { + .battleScript = BattleScript_EffectHappyHour, + .battleTvScore = 1, + .encourageEncore = TRUE, + }, + [EFFECT_DISABLE] = { .battleScript = BattleScript_EffectDisable, @@ -1011,7 +1032,7 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = .battleTvScore = 1, }, - [EFFECT_ERUPTION] = + [EFFECT_POWER_BASED_ON_USER_HP] = { .battleScript = BattleScript_EffectHit, .battleTvScore = 1, @@ -1144,7 +1165,7 @@ const struct BattleMoveEffect gBattleMoveEffects[NUM_BATTLE_MOVE_EFFECTS] = .encourageEncore = TRUE, }, - [EFFECT_VARY_POWER_BASED_ON_HP] = + [EFFECT_POWER_BASED_ON_TARGET_HP] = { .battleScript = BattleScript_EffectHit, .battleTvScore = 0, // TODO: Assign points 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/graphics/items.h b/src/data/graphics/items.h index 45e3ec0e2c..b508df90a1 100644 --- a/src/data/graphics/items.h +++ b/src/data/graphics/items.h @@ -6,6 +6,9 @@ const u32 gItemIconPalette_ReturnToFieldArrow[] = INCBIN_U32("graphics/items/ico // Poké Balls +const u32 gItemIcon_StrangeBall[] = INCBIN_U32("graphics/items/icons/strange_ball.4bpp.lz"); +const u32 gItemIconPalette_StrangeBall[] = INCBIN_U32("graphics/items/icon_palettes/strange_ball.gbapal.lz"); + const u32 gItemIcon_PokeBall[] = INCBIN_U32("graphics/items/icons/poke_ball.4bpp.lz"); const u32 gItemIconPalette_PokeBall[] = INCBIN_U32("graphics/items/icon_palettes/poke_ball.gbapal.lz"); diff --git a/src/data/graphics/pokeballs.h b/src/data/graphics/pokeballs.h index 44f47cde48..f09d635d21 100644 --- a/src/data/graphics/pokeballs.h +++ b/src/data/graphics/pokeballs.h @@ -1,3 +1,6 @@ +const u32 gBallGfx_Strange[] = INCBIN_U32("graphics/balls/strange.4bpp.lz"); +const u32 gBallPal_Strange[] = INCBIN_U32("graphics/balls/strange.gbapal.lz"); + const u32 gBallGfx_Poke[] = INCBIN_U32("graphics/balls/poke.4bpp.lz"); const u32 gBallPal_Poke[] = INCBIN_U32("graphics/balls/poke.gbapal.lz"); diff --git a/src/data/graphics/pokemon.h b/src/data/graphics/pokemon.h index 9a3c1d1711..39b11560d4 100644 --- a/src/data/graphics/pokemon.h +++ b/src/data/graphics/pokemon.h @@ -10,16 +10,31 @@ const u32 gMonPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/quest const u32 gMonShinyPalette_CircledQuestionMark[] = INCBIN_U32("graphics/pokemon/question_mark/circled/shiny.gbapal.lz"); const u8 gMonIcon_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/icon.4bpp"); #if P_FOOTPRINTS -const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); +#if !P_GBA_STYLE_SPECIES_FOOTPRINTS + const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint.1bpp"); +#else + const u8 gMonFootprint_QuestionMark[] = INCBIN_U8("graphics/pokemon/question_mark/footprint_gba.1bpp"); +#endif //P_GBA_STYLE_SPECIES_FOOTPRINTS #endif //P_FOOTPRINTS const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_mark/overworld.4bpp"); #if P_FAMILY_BULBASAUR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front.4bpp.lz"); const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal.gbapal.lz"); const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back.4bpp.lz"); const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Bulbasaur[] = INCBIN_U32("graphics/pokemon/bulbasaur/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon.4bpp"); +#else + const u8 gMonIcon_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Bulbasaur[] = INCBIN_U8("graphics/pokemon/bulbasaur/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -31,11 +46,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front.4bpp.lz"); const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal.gbapal.lz"); const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back.4bpp.lz"); const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ivysaur[] = INCBIN_U32("graphics/pokemon/ivysaur/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon.4bpp"); +#else + const u8 gMonIcon_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ivysaur[] = INCBIN_U8("graphics/pokemon/ivysaur/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -47,11 +73,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front.4bpp.lz"); const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal.gbapal.lz"); const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back.4bpp.lz"); const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Venusaur[] = INCBIN_U32("graphics/pokemon/venusaur/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon.4bpp"); +#else + const u8 gMonIcon_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Venusaur[] = INCBIN_U8("graphics/pokemon/venusaur/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -63,11 +100,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/anim_frontf.4bpp.lz"); const u32 gMonBackPic_VenusaurF[] = INCBIN_U32("graphics/pokemon/venusaur/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_VenusaurF[] = INCBIN_COMP("graphics/pokemon/venusaur/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_VenusaurMega[] = INCBIN_U32("graphics/pokemon/venusaur/mega/front.4bpp.lz"); @@ -85,27 +124,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_VenusaurGigantamax[] = INCBIN_U8("graphics/pokemon/venusaur/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/front.4bpp.lz"); + const u32 gMonBackPic_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/back.4bpp.lz"); + const u32 gMonPalette_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_VenusaurGmax[] = INCBIN_U8("graphics/pokemon/venusaur/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_VenusaurGigantamax[] = INCBIN_COMP("graphics/pokemon/venusaur/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_VenusaurGmax[] = INCBIN_COMP("graphics/pokemon/venusaur/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_VenusaurGigantamax[] = INCBIN_U32("graphics/pokemon/venusaur/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_VenusaurGmax[] = INCBIN_U32("graphics/pokemon/venusaur/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR #if P_FAMILY_CHARMANDER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front.4bpp.lz"); const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal.gbapal.lz"); const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back.4bpp.lz"); const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Charmander[] = INCBIN_U32("graphics/pokemon/charmander/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon.4bpp"); +#else + const u8 gMonIcon_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Charmander[] = INCBIN_U8("graphics/pokemon/charmander/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -117,11 +167,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front.4bpp.lz"); const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal.gbapal.lz"); const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back.4bpp.lz"); const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Charmeleon[] = INCBIN_U32("graphics/pokemon/charmeleon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon.4bpp"); +#else + const u8 gMonIcon_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Charmeleon[] = INCBIN_U8("graphics/pokemon/charmeleon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -133,11 +194,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front.4bpp.lz"); const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal.gbapal.lz"); const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back.4bpp.lz"); const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Charizard[] = INCBIN_U32("graphics/pokemon/charizard/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon.4bpp"); +#else + const u8 gMonIcon_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Charizard[] = INCBIN_U8("graphics/pokemon/charizard/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -178,27 +250,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CharizardGigantamax[] = INCBIN_U8("graphics/pokemon/charizard/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/back.4bpp.lz"); + const u32 gMonPalette_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CharizardGmax[] = INCBIN_U8("graphics/pokemon/charizard/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CharizardGigantamax[] = INCBIN_COMP("graphics/pokemon/charizard/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CharizardGmax[] = INCBIN_COMP("graphics/pokemon/charizard/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CharizardGigantamax[] = INCBIN_U32("graphics/pokemon/charizard/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CharizardGmax[] = INCBIN_U32("graphics/pokemon/charizard/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER #if P_FAMILY_SQUIRTLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front.4bpp.lz"); const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal.gbapal.lz"); const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back.4bpp.lz"); const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Squirtle[] = INCBIN_U32("graphics/pokemon/squirtle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon.4bpp"); +#else + const u8 gMonIcon_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Squirtle[] = INCBIN_U8("graphics/pokemon/squirtle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -210,11 +293,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front.4bpp.lz"); const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal.gbapal.lz"); const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back.4bpp.lz"); const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wartortle[] = INCBIN_U32("graphics/pokemon/wartortle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon.4bpp"); +#else + const u8 gMonIcon_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wartortle[] = INCBIN_U8("graphics/pokemon/wartortle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -226,11 +320,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front.4bpp.lz"); const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal.gbapal.lz"); const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back.4bpp.lz"); const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Blastoise[] = INCBIN_U32("graphics/pokemon/blastoise/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon.4bpp"); +#else + const u8 gMonIcon_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Blastoise[] = INCBIN_U8("graphics/pokemon/blastoise/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -258,27 +363,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_BlastoiseGigantamax[] = INCBIN_U8("graphics/pokemon/blastoise/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/front.4bpp.lz"); + const u32 gMonBackPic_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/back.4bpp.lz"); + const u32 gMonPalette_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_BlastoiseGmax[] = INCBIN_U8("graphics/pokemon/blastoise/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_BlastoiseGigantamax[] = INCBIN_COMP("graphics/pokemon/blastoise/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_BlastoiseGmax[] = INCBIN_COMP("graphics/pokemon/blastoise/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_BlastoiseGigantamax[] = INCBIN_U32("graphics/pokemon/blastoise/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_BlastoiseGmax[] = INCBIN_U32("graphics/pokemon/blastoise/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE #if P_FAMILY_CATERPIE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front.4bpp.lz"); const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal.gbapal.lz"); const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back.4bpp.lz"); const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Caterpie[] = INCBIN_U32("graphics/pokemon/caterpie/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon.4bpp"); +#else + const u8 gMonIcon_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Caterpie[] = INCBIN_U8("graphics/pokemon/caterpie/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -290,10 +406,17 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front.4bpp.lz"); const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal.gbapal.lz"); const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back.4bpp.lz"); const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Metapod[] = INCBIN_U32("graphics/pokemon/metapod/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX const u8 gMonIcon_Metapod[] = INCBIN_U8( "graphics/pokemon/metapod/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Metapod[] = INCBIN_U8("graphics/pokemon/metapod/footprint.1bpp"); @@ -306,11 +429,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front.4bpp.lz"); const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal.gbapal.lz"); const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back.4bpp.lz"); const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Butterfree[] = INCBIN_U32("graphics/pokemon/butterfree/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon.4bpp"); +#else + const u8 gMonIcon_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Butterfree[] = INCBIN_U8("graphics/pokemon/butterfree/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -322,34 +456,47 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ButterfreeF[] = INCBIN_U32("graphics/pokemon/butterfree/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ButterfreeF[] = INCBIN_COMP("graphics/pokemon/butterfree/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_ButterfreeGigantamax[] = INCBIN_U8("graphics/pokemon/butterfree/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/front.4bpp.lz"); + const u32 gMonBackPic_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/back.4bpp.lz"); + const u32 gMonPalette_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_ButterfreeGmax[] = INCBIN_U8("graphics/pokemon/butterfree/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_ButterfreeGigantamax[] = INCBIN_COMP("graphics/pokemon/butterfree/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_ButterfreeGmax[] = INCBIN_COMP("graphics/pokemon/butterfree/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_ButterfreeGigantamax[] = INCBIN_U32("graphics/pokemon/butterfree/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_ButterfreeGmax[] = INCBIN_U32("graphics/pokemon/butterfree/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE #if P_FAMILY_WEEDLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front.4bpp.lz"); const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal.gbapal.lz"); const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back.4bpp.lz"); const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Weedle[] = INCBIN_U32("graphics/pokemon/weedle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon.4bpp"); +#else + const u8 gMonIcon_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Weedle[] = INCBIN_U8("graphics/pokemon/weedle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -361,11 +508,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front.4bpp.lz"); const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal.gbapal.lz"); const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back.4bpp.lz"); const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kakuna[] = INCBIN_U32("graphics/pokemon/kakuna/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon.4bpp"); +#else + const u8 gMonIcon_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kakuna[] = INCBIN_U8("graphics/pokemon/kakuna/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -377,11 +535,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front.4bpp.lz"); const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal.gbapal.lz"); const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back.4bpp.lz"); const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Beedrill[] = INCBIN_U32("graphics/pokemon/beedrill/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon.4bpp"); +#else + const u8 gMonIcon_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Beedrill[] = INCBIN_U8("graphics/pokemon/beedrill/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -410,11 +579,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_WEEDLE #if P_FAMILY_PIDGEY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front.4bpp.lz"); const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal.gbapal.lz"); const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pidgey[] = INCBIN_U32("graphics/pokemon/pidgey/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon.4bpp"); +#else + const u8 gMonIcon_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pidgey[] = INCBIN_U8("graphics/pokemon/pidgey/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -426,11 +606,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front.4bpp.lz"); const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal.gbapal.lz"); const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pidgeotto[] = INCBIN_U32("graphics/pokemon/pidgeotto/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon.4bpp"); +#else + const u8 gMonIcon_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pidgeotto[] = INCBIN_U8("graphics/pokemon/pidgeotto/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -442,11 +633,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front.4bpp.lz"); const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal.gbapal.lz"); const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back.4bpp.lz"); const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pidgeot[] = INCBIN_U32("graphics/pokemon/pidgeot/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon.4bpp"); +#else + const u8 gMonIcon_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pidgeot[] = INCBIN_U8("graphics/pokemon/pidgeot/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -475,11 +677,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PIDGEY #if P_FAMILY_RATTATA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front.4bpp.lz"); const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal.gbapal.lz"); const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back.4bpp.lz"); const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Rattata[] = INCBIN_U32("graphics/pokemon/rattata/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon.4bpp"); +#else + const u8 gMonIcon_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Rattata[] = INCBIN_U8("graphics/pokemon/rattata/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -491,17 +704,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RattataF[] = INCBIN_U32("graphics/pokemon/rattata/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RattataF[] = INCBIN_COMP("graphics/pokemon/rattata/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front.4bpp.lz"); const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal.gbapal.lz"); const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back.4bpp.lz"); const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Raticate[] = INCBIN_U32("graphics/pokemon/raticate/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon.4bpp"); +#else + const u8 gMonIcon_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Raticate[] = INCBIN_U8("graphics/pokemon/raticate/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -513,47 +739,60 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RaticateF[] = INCBIN_U32("graphics/pokemon/raticate/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RaticateF[] = INCBIN_COMP("graphics/pokemon/raticate/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_ALOLAN_FORMS - const u32 gMonFrontPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/front.4bpp.lz"); - const u32 gMonPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_RattataAlolan[] = INCBIN_U8("graphics/pokemon/rattata/alolan/icon.4bpp"); + const u32 gMonFrontPic_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/front.4bpp.lz"); + const u32 gMonPalette_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/normal.gbapal.lz"); + const u32 gMonBackPic_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/shiny.gbapal.lz"); + const u8 gMonIcon_RattataAlola[] = INCBIN_U8("graphics/pokemon/rattata/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_RattataAlolan[] = INCBIN_COMP("graphics/pokemon/rattata/alolan/overworld.4bpp"); + const u32 gObjectEventPic_RattataAlola[] = INCBIN_COMP("graphics/pokemon/rattata/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_RattataAlolan[] = INCBIN_U32("graphics/pokemon/rattata/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_RattataAlola[] = INCBIN_U32("graphics/pokemon/rattata/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/front.4bpp.lz"); - const u32 gMonPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_RaticateAlolan[] = INCBIN_U8("graphics/pokemon/raticate/alolan/icon.4bpp"); + const u32 gMonFrontPic_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/front.4bpp.lz"); + const u32 gMonPalette_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/normal.gbapal.lz"); + const u32 gMonBackPic_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/shiny.gbapal.lz"); + const u8 gMonIcon_RaticateAlola[] = INCBIN_U8("graphics/pokemon/raticate/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_RaticateAlolan[] = INCBIN_COMP("graphics/pokemon/raticate/alolan/overworld.4bpp"); + const u32 gObjectEventPic_RaticateAlola[] = INCBIN_COMP("graphics/pokemon/raticate/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_RaticateAlolan[] = INCBIN_U32("graphics/pokemon/raticate/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_RaticateAlola[] = INCBIN_U32("graphics/pokemon/raticate/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA #if P_FAMILY_SPEAROW +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front.4bpp.lz"); const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal.gbapal.lz"); const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back.4bpp.lz"); const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Spearow[] = INCBIN_U32("graphics/pokemon/spearow/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon.4bpp"); +#else + const u8 gMonIcon_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Spearow[] = INCBIN_U8("graphics/pokemon/spearow/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -565,11 +804,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front.4bpp.lz"); const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal.gbapal.lz"); const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back.4bpp.lz"); const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Fearow[] = INCBIN_U32("graphics/pokemon/fearow/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon.4bpp"); +#else + const u8 gMonIcon_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Fearow[] = INCBIN_U8("graphics/pokemon/fearow/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -583,11 +833,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SPEAROW #if P_FAMILY_EKANS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front.4bpp.lz"); const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal.gbapal.lz"); const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back.4bpp.lz"); const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ekans[] = INCBIN_U32("graphics/pokemon/ekans/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon.4bpp"); +#else + const u8 gMonIcon_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ekans[] = INCBIN_U8("graphics/pokemon/ekans/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -599,11 +860,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front.4bpp.lz"); const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal.gbapal.lz"); const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back.4bpp.lz"); const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Arbok[] = INCBIN_U32("graphics/pokemon/arbok/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon.4bpp"); +#else + const u8 gMonIcon_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Arbok[] = INCBIN_U8("graphics/pokemon/arbok/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -618,11 +890,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_PIKACHU #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front.4bpp.lz"); const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal.gbapal.lz"); const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back.4bpp.lz"); const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pichu[] = INCBIN_U32("graphics/pokemon/pichu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon.4bpp"); +#else + const u8 gMonIcon_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pichu[] = INCBIN_U8("graphics/pokemon/pichu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -648,11 +931,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front.4bpp.lz"); const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal.gbapal.lz"); const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back.4bpp.lz"); const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pikachu[] = INCBIN_U32("graphics/pokemon/pikachu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon.4bpp"); +#else + const u8 gMonIcon_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pikachu[] = INCBIN_U8("graphics/pokemon/pikachu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -664,6 +958,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PikachuF[] = INCBIN_U32("graphics/pokemon/pikachu/backf.4bpp.lz"); #if P_CUSTOM_GENDER_DIFF_ICONS @@ -672,6 +967,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_PikachuF[] = INCBIN_COMP("graphics/pokemon/pikachu/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_COSPLAY_PIKACHU_FORMS const u32 gMonFrontPic_PikachuCosplay[] = INCBIN_U32("graphics/pokemon/pikachu/cosplay/front.4bpp.lz"); @@ -698,11 +994,11 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gMonShinyPalette_PikachuPopStar[] = INCBIN_U32("graphics/pokemon/pikachu/pop_star/shiny.gbapal.lz"); const u8 gMonIcon_PikachuPopStar[] = INCBIN_U8("graphics/pokemon/pikachu/pop_star/icon.4bpp"); - const u32 gMonFrontPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/front.4bpp.lz"); - const u32 gMonPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/ph_d/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuPhD[] = INCBIN_U8("graphics/pokemon/pikachu/ph_d/icon.4bpp"); + const u32 gMonFrontPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/phd/front.4bpp.lz"); + const u32 gMonPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/phd/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/phd/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuPhD[] = INCBIN_U32("graphics/pokemon/pikachu/phd/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuPhD[] = INCBIN_U8("graphics/pokemon/pikachu/phd/icon.4bpp"); const u32 gMonFrontPic_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/front.4bpp.lz"); const u32 gMonPalette_PikachuLibre[] = INCBIN_U32("graphics/pokemon/pikachu/libre/normal.gbapal.lz"); @@ -715,97 +1011,108 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ // const u32 gObjectEventPic_PikachuRockStar[] = INCBIN_COMP("graphics/pokemon/pikachu/rock_star/overworld.4bpp"); // const u32 gObjectEventPic_PikachuBelle[] = INCBIN_COMP("graphics/pokemon/pikachu/belle/overworld.4bpp"); // const u32 gObjectEventPic_PikachuPopStar[] = INCBIN_COMP("graphics/pokemon/pikachu/pop_star/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuPhD[] = INCBIN_COMP("graphics/pokemon/pikachu/ph_d/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuPhD[] = INCBIN_COMP("graphics/pokemon/pikachu/phd/overworld.4bpp"); // const u32 gObjectEventPic_PikachuLibre[] = INCBIN_COMP("graphics/pokemon/pikachu/libre/overworld.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS - const u32 gMonFrontPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuOriginalCap[] = INCBIN_U32("graphics/pokemon/pikachu/original_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuOriginalCap[] = INCBIN_U8("graphics/pokemon/pikachu/original_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuOriginal[] = INCBIN_U32("graphics/pokemon/pikachu/original/front.4bpp.lz"); + const u32 gMonPalette_PikachuOriginal[] = INCBIN_U32("graphics/pokemon/pikachu/original/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuOriginal[] = INCBIN_U32("graphics/pokemon/pikachu/original/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuOriginal[] = INCBIN_U32("graphics/pokemon/pikachu/original/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuOriginal[] = INCBIN_U8("graphics/pokemon/pikachu/original/icon.4bpp"); - const u32 gMonFrontPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuHoennCap[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuHoennCap[] = INCBIN_U8("graphics/pokemon/pikachu/hoenn_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuHoenn[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn/front.4bpp.lz"); + const u32 gMonPalette_PikachuHoenn[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuHoenn[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuHoenn[] = INCBIN_U32("graphics/pokemon/pikachu/hoenn/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuHoenn[] = INCBIN_U8("graphics/pokemon/pikachu/hoenn/icon.4bpp"); - const u32 gMonFrontPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuSinnohCap[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuSinnohCap[] = INCBIN_U8("graphics/pokemon/pikachu/sinnoh_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuSinnoh[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh/front.4bpp.lz"); + const u32 gMonPalette_PikachuSinnoh[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuSinnoh[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuSinnoh[] = INCBIN_U32("graphics/pokemon/pikachu/sinnoh/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuSinnoh[] = INCBIN_U8("graphics/pokemon/pikachu/sinnoh/icon.4bpp"); - const u32 gMonFrontPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuUnovaCap[] = INCBIN_U32("graphics/pokemon/pikachu/unova_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuUnovaCap[] = INCBIN_U8("graphics/pokemon/pikachu/unova_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuUnova[] = INCBIN_U32("graphics/pokemon/pikachu/unova/front.4bpp.lz"); + const u32 gMonPalette_PikachuUnova[] = INCBIN_U32("graphics/pokemon/pikachu/unova/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuUnova[] = INCBIN_U32("graphics/pokemon/pikachu/unova/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuUnova[] = INCBIN_U32("graphics/pokemon/pikachu/unova/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuUnova[] = INCBIN_U8("graphics/pokemon/pikachu/unova/icon.4bpp"); - const u32 gMonFrontPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuKalosCap[] = INCBIN_U32("graphics/pokemon/pikachu/kalos_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuKalosCap[] = INCBIN_U8("graphics/pokemon/pikachu/kalos_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuKalos[] = INCBIN_U32("graphics/pokemon/pikachu/kalos/front.4bpp.lz"); + const u32 gMonPalette_PikachuKalos[] = INCBIN_U32("graphics/pokemon/pikachu/kalos/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuKalos[] = INCBIN_U32("graphics/pokemon/pikachu/kalos/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuKalos[] = INCBIN_U32("graphics/pokemon/pikachu/kalos/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuKalos[] = INCBIN_U8("graphics/pokemon/pikachu/kalos/icon.4bpp"); - const u32 gMonFrontPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuAlolaCap[] = INCBIN_U32("graphics/pokemon/pikachu/alola_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuAlolaCap[] = INCBIN_U8("graphics/pokemon/pikachu/alola_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuAlola[] = INCBIN_U32("graphics/pokemon/pikachu/alola/front.4bpp.lz"); + const u32 gMonPalette_PikachuAlola[] = INCBIN_U32("graphics/pokemon/pikachu/alola/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuAlola[] = INCBIN_U32("graphics/pokemon/pikachu/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuAlola[] = INCBIN_U32("graphics/pokemon/pikachu/alola/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuAlola[] = INCBIN_U8("graphics/pokemon/pikachu/alola/icon.4bpp"); - const u32 gMonFrontPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuPartnerCap[] = INCBIN_U32("graphics/pokemon/pikachu/partner_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuPartnerCap[] = INCBIN_U8("graphics/pokemon/pikachu/partner_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuPartner[] = INCBIN_U32("graphics/pokemon/pikachu/partner/front.4bpp.lz"); + const u32 gMonPalette_PikachuPartner[] = INCBIN_U32("graphics/pokemon/pikachu/partner/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuPartner[] = INCBIN_U32("graphics/pokemon/pikachu/partner/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuPartner[] = INCBIN_U32("graphics/pokemon/pikachu/partner/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuPartner[] = INCBIN_U8("graphics/pokemon/pikachu/partner/icon.4bpp"); - const u32 gMonFrontPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/front.4bpp.lz"); - const u32 gMonPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/normal.gbapal.lz"); - const u32 gMonBackPic_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/back.4bpp.lz"); - const u32 gMonShinyPalette_PikachuWorldCap[] = INCBIN_U32("graphics/pokemon/pikachu/world_cap/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuWorldCap[] = INCBIN_U8("graphics/pokemon/pikachu/world_cap/icon.4bpp"); + const u32 gMonFrontPic_PikachuWorld[] = INCBIN_U32("graphics/pokemon/pikachu/world/front.4bpp.lz"); + const u32 gMonPalette_PikachuWorld[] = INCBIN_U32("graphics/pokemon/pikachu/world/normal.gbapal.lz"); + const u32 gMonBackPic_PikachuWorld[] = INCBIN_U32("graphics/pokemon/pikachu/world/back.4bpp.lz"); + const u32 gMonShinyPalette_PikachuWorld[] = INCBIN_U32("graphics/pokemon/pikachu/world/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuWorld[] = INCBIN_U8("graphics/pokemon/pikachu/world/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_PikachuOriginalCap[] = INCBIN_COMP("graphics/pokemon/pikachu/original_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuHoennCap[] = INCBIN_COMP("graphics/pokemon/pikachu/hoenn_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuSinnohCap[] = INCBIN_COMP("graphics/pokemon/pikachu/sinnoh_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuUnovaCap[] = INCBIN_COMP("graphics/pokemon/pikachu/unova_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuKalosCap[] = INCBIN_COMP("graphics/pokemon/pikachu/kalos_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuAlolaCap[] = INCBIN_COMP("graphics/pokemon/pikachu/alola_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuPartnerCap[] = INCBIN_COMP("graphics/pokemon/pikachu/partner_cap/overworld.4bpp"); - // const u32 gObjectEventPic_PikachuWorldCap[] = INCBIN_COMP("graphics/pokemon/pikachu/world_cap/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuOriginal[] = INCBIN_COMP("graphics/pokemon/pikachu/original/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuHoenn[] = INCBIN_COMP("graphics/pokemon/pikachu/hoenn/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuSinnoh[] = INCBIN_COMP("graphics/pokemon/pikachu/sinnoh/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuUnova[] = INCBIN_COMP("graphics/pokemon/pikachu/unova/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuKalos[] = INCBIN_COMP("graphics/pokemon/pikachu/kalos/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuAlola[] = INCBIN_COMP("graphics/pokemon/pikachu/alola/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuPartner[] = INCBIN_COMP("graphics/pokemon/pikachu/partner/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuWorld[] = INCBIN_COMP("graphics/pokemon/pikachu/world/overworld.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_CAP_PIKACHU_FORMS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_PikachuGigantamax[] = INCBIN_U8("graphics/pokemon/pikachu/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/front.4bpp.lz"); + const u32 gMonBackPic_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/back.4bpp.lz"); + const u32 gMonPalette_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_PikachuGmax[] = INCBIN_U8("graphics/pokemon/pikachu/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_PikachuGigantamax[] = INCBIN_COMP("graphics/pokemon/pikachu/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_PikachuGmax[] = INCBIN_COMP("graphics/pokemon/pikachu/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_PikachuGigantamax[] = INCBIN_U32("graphics/pokemon/pikachu/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_PikachuGmax[] = INCBIN_U32("graphics/pokemon/pikachu/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS - const u8 gMonIcon_PikachuPartner[] = INCBIN_U8("graphics/pokemon/pikachu/partner/icon.4bpp"); - #if P_CUSTOM_GENDER_DIFF_ICONS - const u8 gMonIcon_PikachuPartnerF[] = INCBIN_U8("graphics/pokemon/pikachu/partner/iconf.4bpp"); - #endif + const u8 gMonIcon_PikachuStarter[] = INCBIN_U8("graphics/pokemon/pikachu/starter/icon.4bpp"); +#if P_GENDER_DIFFERENCES && P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_PikachuStarterF[] = INCBIN_U8("graphics/pokemon/pikachu/starter/iconf.4bpp"); +#endif //P_GENDER_DIFFERENCES && P_CUSTOM_GENDER_DIFF_ICONS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front.4bpp.lz"); const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal.gbapal.lz"); const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back.4bpp.lz"); const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Raichu[] = INCBIN_U32("graphics/pokemon/raichu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon.4bpp"); +#else + const u8 gMonIcon_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Raichu[] = INCBIN_U8("graphics/pokemon/raichu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -817,33 +1124,46 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RaichuF[] = INCBIN_U32("graphics/pokemon/raichu/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RaichuF[] = INCBIN_COMP("graphics/pokemon/raichu/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_ALOLAN_FORMS - const u32 gMonFrontPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/front.4bpp.lz"); - const u32 gMonPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_RaichuAlolan[] = INCBIN_U8("graphics/pokemon/raichu/alolan/icon.4bpp"); + const u32 gMonFrontPic_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/front.4bpp.lz"); + const u32 gMonPalette_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/normal.gbapal.lz"); + const u32 gMonBackPic_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/shiny.gbapal.lz"); + const u8 gMonIcon_RaichuAlola[] = INCBIN_U8("graphics/pokemon/raichu/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_RaichuAlolan[] = INCBIN_COMP("graphics/pokemon/raichu/alolan/overworld.4bpp"); + const u32 gObjectEventPic_RaichuAlola[] = INCBIN_COMP("graphics/pokemon/raichu/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_RaichuAlolan[] = INCBIN_U32("graphics/pokemon/raichu/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_RaichuAlola[] = INCBIN_U32("graphics/pokemon/raichu/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU #if P_FAMILY_SANDSHREW +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front.4bpp.lz"); const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal.gbapal.lz"); const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back.4bpp.lz"); const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sandshrew[] = INCBIN_U32("graphics/pokemon/sandshrew/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon.4bpp"); +#else + const u8 gMonIcon_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sandshrew[] = INCBIN_U8("graphics/pokemon/sandshrew/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -855,11 +1175,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front.4bpp.lz"); const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal.gbapal.lz"); const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back.4bpp.lz"); const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sandslash[] = INCBIN_U32("graphics/pokemon/sandslash/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon.4bpp"); +#else + const u8 gMonIcon_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sandslash[] = INCBIN_U8("graphics/pokemon/sandslash/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -872,40 +1203,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/front.4bpp.lz"); - const u32 gMonPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_SandshrewAlolan[] = INCBIN_U8("graphics/pokemon/sandshrew/alolan/icon.4bpp"); + const u32 gMonFrontPic_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/front.4bpp.lz"); + const u32 gMonPalette_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/normal.gbapal.lz"); + const u32 gMonBackPic_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/shiny.gbapal.lz"); + const u8 gMonIcon_SandshrewAlola[] = INCBIN_U8("graphics/pokemon/sandshrew/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SandshrewAlolan[] = INCBIN_COMP("graphics/pokemon/sandshrew/alolan/overworld.4bpp"); + const u32 gObjectEventPic_SandshrewAlola[] = INCBIN_COMP("graphics/pokemon/sandshrew/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SandshrewAlolan[] = INCBIN_U32("graphics/pokemon/sandshrew/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SandshrewAlola[] = INCBIN_U32("graphics/pokemon/sandshrew/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/front.4bpp.lz"); - const u32 gMonPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_SandslashAlolan[] = INCBIN_U8("graphics/pokemon/sandslash/alolan/icon.4bpp"); + const u32 gMonFrontPic_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/front.4bpp.lz"); + const u32 gMonPalette_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/normal.gbapal.lz"); + const u32 gMonBackPic_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/shiny.gbapal.lz"); + const u8 gMonIcon_SandslashAlola[] = INCBIN_U8("graphics/pokemon/sandslash/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SandslashAlolan[] = INCBIN_COMP("graphics/pokemon/sandslash/alolan/overworld.4bpp"); + const u32 gObjectEventPic_SandslashAlola[] = INCBIN_COMP("graphics/pokemon/sandslash/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SandslashAlolan[] = INCBIN_U32("graphics/pokemon/sandslash/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SandslashAlola[] = INCBIN_U32("graphics/pokemon/sandslash/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW #if P_FAMILY_NIDORAN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front.4bpp.lz"); const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal.gbapal.lz"); const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back.4bpp.lz"); const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/normal_gba.gbapal.lz"); + const u32 gMonBackPic_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_NidoranF[] = INCBIN_U32("graphics/pokemon/nidoran_f/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon.4bpp"); +#else + const u8 gMonIcon_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_NidoranF[] = INCBIN_U8("graphics/pokemon/nidoran_f/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -917,11 +1259,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front.4bpp.lz"); const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal.gbapal.lz"); const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back.4bpp.lz"); const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nidorina[] = INCBIN_U32("graphics/pokemon/nidorina/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon.4bpp"); +#else + const u8 gMonIcon_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nidorina[] = INCBIN_U8("graphics/pokemon/nidorina/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -933,11 +1286,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front.4bpp.lz"); const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal.gbapal.lz"); const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back.4bpp.lz"); const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nidoqueen[] = INCBIN_U32("graphics/pokemon/nidoqueen/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon.4bpp"); +#else + const u8 gMonIcon_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nidoqueen[] = INCBIN_U8("graphics/pokemon/nidoqueen/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -949,11 +1313,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front.4bpp.lz"); const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal.gbapal.lz"); const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back.4bpp.lz"); const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/normal_gba.gbapal.lz"); + const u32 gMonBackPic_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_NidoranM[] = INCBIN_U32("graphics/pokemon/nidoran_m/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon.4bpp"); +#else + const u8 gMonIcon_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_NidoranM[] = INCBIN_U8("graphics/pokemon/nidoran_m/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -965,11 +1340,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front.4bpp.lz"); const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal.gbapal.lz"); const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back.4bpp.lz"); const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nidorino[] = INCBIN_U32("graphics/pokemon/nidorino/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon.4bpp"); +#else + const u8 gMonIcon_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nidorino[] = INCBIN_U8("graphics/pokemon/nidorino/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -981,11 +1367,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front.4bpp.lz"); const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal.gbapal.lz"); const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back.4bpp.lz"); const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nidoking[] = INCBIN_U32("graphics/pokemon/nidoking/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon.4bpp"); +#else + const u8 gMonIcon_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nidoking[] = INCBIN_U8("graphics/pokemon/nidoking/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1000,11 +1397,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_CLEFAIRY #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front.4bpp.lz"); const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal.gbapal.lz"); const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back.4bpp.lz"); const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cleffa[] = INCBIN_U32("graphics/pokemon/cleffa/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon.4bpp"); +#else + const u8 gMonIcon_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cleffa[] = INCBIN_U8("graphics/pokemon/cleffa/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1017,11 +1425,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front.4bpp.lz"); const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal.gbapal.lz"); const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back.4bpp.lz"); const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Clefairy[] = INCBIN_U32("graphics/pokemon/clefairy/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon.4bpp"); +#else + const u8 gMonIcon_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Clefairy[] = INCBIN_U8("graphics/pokemon/clefairy/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1033,11 +1452,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front.4bpp.lz"); const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal.gbapal.lz"); const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back.4bpp.lz"); const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Clefable[] = INCBIN_U32("graphics/pokemon/clefable/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon.4bpp"); +#else + const u8 gMonIcon_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Clefable[] = INCBIN_U8("graphics/pokemon/clefable/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1051,11 +1481,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CLEFAIRY #if P_FAMILY_VULPIX +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front.4bpp.lz"); const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal.gbapal.lz"); const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back.4bpp.lz"); const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Vulpix[] = INCBIN_U32("graphics/pokemon/vulpix/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon.4bpp"); +#else + const u8 gMonIcon_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Vulpix[] = INCBIN_U8("graphics/pokemon/vulpix/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1067,11 +1508,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front.4bpp.lz"); const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal.gbapal.lz"); const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back.4bpp.lz"); const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ninetales[] = INCBIN_U32("graphics/pokemon/ninetales/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon.4bpp"); +#else + const u8 gMonIcon_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ninetales[] = INCBIN_U8("graphics/pokemon/ninetales/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1084,29 +1536,29 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/front.4bpp.lz"); - const u32 gMonPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_VulpixAlolan[] = INCBIN_U8("graphics/pokemon/vulpix/alolan/icon.4bpp"); + const u32 gMonFrontPic_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/front.4bpp.lz"); + const u32 gMonPalette_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/normal.gbapal.lz"); + const u32 gMonBackPic_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/shiny.gbapal.lz"); + const u8 gMonIcon_VulpixAlola[] = INCBIN_U8("graphics/pokemon/vulpix/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_VulpixAlolan[] = INCBIN_COMP("graphics/pokemon/vulpix/alolan/overworld.4bpp"); + const u32 gObjectEventPic_VulpixAlola[] = INCBIN_COMP("graphics/pokemon/vulpix/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_VulpixAlolan[] = INCBIN_U32("graphics/pokemon/vulpix/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_VulpixAlola[] = INCBIN_U32("graphics/pokemon/vulpix/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/front.4bpp.lz"); - const u32 gMonPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_NinetalesAlolan[] = INCBIN_U8("graphics/pokemon/ninetales/alolan/icon.4bpp"); + const u32 gMonFrontPic_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/front.4bpp.lz"); + const u32 gMonPalette_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/normal.gbapal.lz"); + const u32 gMonBackPic_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/shiny.gbapal.lz"); + const u8 gMonIcon_NinetalesAlola[] = INCBIN_U8("graphics/pokemon/ninetales/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_NinetalesAlolan[] = INCBIN_COMP("graphics/pokemon/ninetales/alolan/overworld.4bpp"); + const u32 gObjectEventPic_NinetalesAlola[] = INCBIN_COMP("graphics/pokemon/ninetales/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_NinetalesAlolan[] = INCBIN_U32("graphics/pokemon/ninetales/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_NinetalesAlola[] = INCBIN_U32("graphics/pokemon/ninetales/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS @@ -1114,11 +1566,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_JIGGLYPUFF #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front.4bpp.lz"); const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal.gbapal.lz"); const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back.4bpp.lz"); const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Igglybuff[] = INCBIN_U32("graphics/pokemon/igglybuff/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon.4bpp"); +#else + const u8 gMonIcon_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Igglybuff[] = INCBIN_U8("graphics/pokemon/igglybuff/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1131,11 +1594,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front.4bpp.lz"); const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal.gbapal.lz"); const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back.4bpp.lz"); const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Jigglypuff[] = INCBIN_U32("graphics/pokemon/jigglypuff/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon.4bpp"); +#else + const u8 gMonIcon_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Jigglypuff[] = INCBIN_U8("graphics/pokemon/jigglypuff/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1147,11 +1621,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front.4bpp.lz"); const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal.gbapal.lz"); const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back.4bpp.lz"); const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wigglytuff[] = INCBIN_U32("graphics/pokemon/wigglytuff/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon.4bpp"); +#else + const u8 gMonIcon_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wigglytuff[] = INCBIN_U8("graphics/pokemon/wigglytuff/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1165,11 +1650,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_JIGGLYPUFF #if P_FAMILY_ZUBAT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front.4bpp.lz"); const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal.gbapal.lz"); const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back.4bpp.lz"); const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Zubat[] = INCBIN_U32("graphics/pokemon/zubat/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon.4bpp"); +#else + const u8 gMonIcon_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Zubat[] = INCBIN_U8("graphics/pokemon/zubat/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1181,17 +1677,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ZubatF[] = INCBIN_U32("graphics/pokemon/zubat/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ZubatF[] = INCBIN_COMP("graphics/pokemon/zubat/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front.4bpp.lz"); const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal.gbapal.lz"); const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back.4bpp.lz"); const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Golbat[] = INCBIN_U32("graphics/pokemon/golbat/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon.4bpp"); +#else + const u8 gMonIcon_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Golbat[] = INCBIN_U8("graphics/pokemon/golbat/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1203,18 +1712,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GolbatF[] = INCBIN_U32("graphics/pokemon/golbat/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GolbatF[] = INCBIN_COMP("graphics/pokemon/golbat/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front.4bpp.lz"); const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal.gbapal.lz"); const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back.4bpp.lz"); const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Crobat[] = INCBIN_U32("graphics/pokemon/crobat/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon.4bpp"); +#else + const u8 gMonIcon_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Crobat[] = INCBIN_U8("graphics/pokemon/crobat/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1229,11 +1751,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ZUBAT #if P_FAMILY_ODDISH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front.4bpp.lz"); const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal.gbapal.lz"); const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back.4bpp.lz"); const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Oddish[] = INCBIN_U32("graphics/pokemon/oddish/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon.4bpp"); +#else + const u8 gMonIcon_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Oddish[] = INCBIN_U8("graphics/pokemon/oddish/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1245,11 +1778,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front.4bpp.lz"); const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal.gbapal.lz"); const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back.4bpp.lz"); const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gloom[] = INCBIN_U32("graphics/pokemon/gloom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon.4bpp"); +#else + const u8 gMonIcon_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gloom[] = INCBIN_U8("graphics/pokemon/gloom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1261,17 +1805,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GloomF[] = INCBIN_U32("graphics/pokemon/gloom/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GloomF[] = INCBIN_COMP("graphics/pokemon/gloom/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front.4bpp.lz"); const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal.gbapal.lz"); const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back.4bpp.lz"); const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Vileplume[] = INCBIN_U32("graphics/pokemon/vileplume/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon.4bpp"); +#else + const u8 gMonIcon_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Vileplume[] = INCBIN_U8("graphics/pokemon/vileplume/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1283,18 +1840,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/anim_frontf.4bpp.lz"); const u32 gMonBackPic_VileplumeF[] = INCBIN_U32("graphics/pokemon/vileplume/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_VileplumeF[] = INCBIN_COMP("graphics/pokemon/vileplume/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front.4bpp.lz"); const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal.gbapal.lz"); const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back.4bpp.lz"); const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Bellossom[] = INCBIN_U32("graphics/pokemon/bellossom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon.4bpp"); +#else + const u8 gMonIcon_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Bellossom[] = INCBIN_U8("graphics/pokemon/bellossom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1309,11 +1879,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ODDISH #if P_FAMILY_PARAS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front.4bpp.lz"); const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal.gbapal.lz"); const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back.4bpp.lz"); const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Paras[] = INCBIN_U32("graphics/pokemon/paras/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Paras[] = INCBIN_U32("graphics/pokemon/paras/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon.4bpp"); +#else + const u8 gMonIcon_Paras[] = INCBIN_U8("graphics/pokemon/paras/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Paras[] = INCBIN_U8("graphics/pokemon/paras/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1325,11 +1906,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front.4bpp.lz"); const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal.gbapal.lz"); const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back.4bpp.lz"); const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Parasect[] = INCBIN_U32("graphics/pokemon/parasect/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon.4bpp"); +#else + const u8 gMonIcon_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Parasect[] = INCBIN_U8("graphics/pokemon/parasect/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1343,11 +1935,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PARAS #if P_FAMILY_VENONAT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front.4bpp.lz"); const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal.gbapal.lz"); const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back.4bpp.lz"); const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Venonat[] = INCBIN_U32("graphics/pokemon/venonat/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon.4bpp"); +#else + const u8 gMonIcon_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Venonat[] = INCBIN_U8("graphics/pokemon/venonat/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1359,11 +1962,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front.4bpp.lz"); const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal.gbapal.lz"); const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back.4bpp.lz"); const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Venomoth[] = INCBIN_U32("graphics/pokemon/venomoth/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon.4bpp"); +#else + const u8 gMonIcon_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Venomoth[] = INCBIN_U8("graphics/pokemon/venomoth/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1377,11 +1991,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_VENONAT #if P_FAMILY_DIGLETT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front.4bpp.lz"); const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal.gbapal.lz"); const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back.4bpp.lz"); const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Diglett[] = INCBIN_U32("graphics/pokemon/diglett/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon.4bpp"); +#else + const u8 gMonIcon_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Diglett[] = INCBIN_U8("graphics/pokemon/diglett/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1393,11 +2018,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front.4bpp.lz"); const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal.gbapal.lz"); const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back.4bpp.lz"); const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dugtrio[] = INCBIN_U32("graphics/pokemon/dugtrio/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon.4bpp"); +#else + const u8 gMonIcon_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dugtrio[] = INCBIN_U8("graphics/pokemon/dugtrio/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1410,40 +2046,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/front.4bpp.lz"); - const u32 gMonPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_DiglettAlolan[] = INCBIN_U8("graphics/pokemon/diglett/alolan/icon.4bpp"); + const u32 gMonFrontPic_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/front.4bpp.lz"); + const u32 gMonPalette_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/normal.gbapal.lz"); + const u32 gMonBackPic_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/shiny.gbapal.lz"); + const u8 gMonIcon_DiglettAlola[] = INCBIN_U8("graphics/pokemon/diglett/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DiglettAlolan[] = INCBIN_COMP("graphics/pokemon/diglett/alolan/overworld.4bpp"); + const u32 gObjectEventPic_DiglettAlola[] = INCBIN_COMP("graphics/pokemon/diglett/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DiglettAlolan[] = INCBIN_U32("graphics/pokemon/diglett/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DiglettAlola[] = INCBIN_U32("graphics/pokemon/diglett/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/front.4bpp.lz"); - const u32 gMonPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_DugtrioAlolan[] = INCBIN_U8("graphics/pokemon/dugtrio/alolan/icon.4bpp"); + const u32 gMonFrontPic_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/front.4bpp.lz"); + const u32 gMonPalette_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/normal.gbapal.lz"); + const u32 gMonBackPic_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/shiny.gbapal.lz"); + const u8 gMonIcon_DugtrioAlola[] = INCBIN_U8("graphics/pokemon/dugtrio/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DugtrioAlolan[] = INCBIN_COMP("graphics/pokemon/dugtrio/alolan/overworld.4bpp"); + const u32 gObjectEventPic_DugtrioAlola[] = INCBIN_COMP("graphics/pokemon/dugtrio/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DugtrioAlolan[] = INCBIN_U32("graphics/pokemon/dugtrio/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DugtrioAlola[] = INCBIN_U32("graphics/pokemon/dugtrio/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT #if P_FAMILY_MEOWTH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front.4bpp.lz"); const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal.gbapal.lz"); const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back.4bpp.lz"); const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Meowth[] = INCBIN_U32("graphics/pokemon/meowth/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon.4bpp"); +#else + const u8 gMonIcon_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Meowth[] = INCBIN_U8("graphics/pokemon/meowth/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1455,11 +2102,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front.4bpp.lz"); const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal.gbapal.lz"); const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back.4bpp.lz"); const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Persian[] = INCBIN_U32("graphics/pokemon/persian/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Persian[] = INCBIN_U32("graphics/pokemon/persian/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon.4bpp"); +#else + const u8 gMonIcon_Persian[] = INCBIN_U8("graphics/pokemon/persian/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Persian[] = INCBIN_U8("graphics/pokemon/persian/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1472,44 +2130,44 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/front.4bpp.lz"); - const u32 gMonPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_MeowthAlolan[] = INCBIN_U8("graphics/pokemon/meowth/alolan/icon.4bpp"); + const u32 gMonFrontPic_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/front.4bpp.lz"); + const u32 gMonPalette_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/normal.gbapal.lz"); + const u32 gMonBackPic_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthAlola[] = INCBIN_U8("graphics/pokemon/meowth/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MeowthAlolan[] = INCBIN_COMP("graphics/pokemon/meowth/alolan/overworld.4bpp"); + const u32 gObjectEventPic_MeowthAlola[] = INCBIN_COMP("graphics/pokemon/meowth/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MeowthAlolan[] = INCBIN_U32("graphics/pokemon/meowth/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MeowthAlola[] = INCBIN_U32("graphics/pokemon/meowth/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/front.4bpp.lz"); - const u32 gMonPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_PersianAlolan[] = INCBIN_U8("graphics/pokemon/persian/alolan/icon.4bpp"); + const u32 gMonFrontPic_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/front.4bpp.lz"); + const u32 gMonPalette_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/normal.gbapal.lz"); + const u32 gMonBackPic_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/shiny.gbapal.lz"); + const u8 gMonIcon_PersianAlola[] = INCBIN_U8("graphics/pokemon/persian/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_PersianAlolan[] = INCBIN_COMP("graphics/pokemon/persian/alolan/overworld.4bpp"); + const u32 gObjectEventPic_PersianAlola[] = INCBIN_COMP("graphics/pokemon/persian/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_PersianAlolan[] = INCBIN_U32("graphics/pokemon/persian/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_PersianAlola[] = INCBIN_U32("graphics/pokemon/persian/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/front.4bpp.lz"); - const u32 gMonPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_MeowthGalarian[] = INCBIN_U8("graphics/pokemon/meowth/galarian/icon.4bpp"); + const u32 gMonFrontPic_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/front.4bpp.lz"); + const u32 gMonPalette_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/normal.gbapal.lz"); + const u32 gMonBackPic_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthGalar[] = INCBIN_U8("graphics/pokemon/meowth/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MeowthGalarian[] = INCBIN_COMP("graphics/pokemon/meowth/galarian/overworld.4bpp"); + const u32 gObjectEventPic_MeowthGalar[] = INCBIN_COMP("graphics/pokemon/meowth/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MeowthGalarian[] = INCBIN_U32("graphics/pokemon/meowth/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MeowthGalar[] = INCBIN_U32("graphics/pokemon/meowth/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -1531,27 +2189,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_MeowthGigantamax[] = INCBIN_U8("graphics/pokemon/meowth/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/front.4bpp.lz"); + const u32 gMonBackPic_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/back.4bpp.lz"); + const u32 gMonPalette_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_MeowthGmax[] = INCBIN_U8("graphics/pokemon/meowth/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_MeowthGigantamax[] = INCBIN_COMP("graphics/pokemon/meowth/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_MeowthGmax[] = INCBIN_COMP("graphics/pokemon/meowth/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_MeowthGigantamax[] = INCBIN_U32("graphics/pokemon/meowth/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_MeowthGmax[] = INCBIN_U32("graphics/pokemon/meowth/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MEOWTH #if P_FAMILY_PSYDUCK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front.4bpp.lz"); const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal.gbapal.lz"); const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back.4bpp.lz"); const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Psyduck[] = INCBIN_U32("graphics/pokemon/psyduck/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon.4bpp"); +#else + const u8 gMonIcon_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Psyduck[] = INCBIN_U8("graphics/pokemon/psyduck/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1563,11 +2232,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front.4bpp.lz"); const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal.gbapal.lz"); const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back.4bpp.lz"); const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Golduck[] = INCBIN_U32("graphics/pokemon/golduck/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon.4bpp"); +#else + const u8 gMonIcon_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Golduck[] = INCBIN_U8("graphics/pokemon/golduck/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1581,11 +2261,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PSYDUCK #if P_FAMILY_MANKEY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front.4bpp.lz"); const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal.gbapal.lz"); const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back.4bpp.lz"); const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mankey[] = INCBIN_U32("graphics/pokemon/mankey/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon.4bpp"); +#else + const u8 gMonIcon_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mankey[] = INCBIN_U8("graphics/pokemon/mankey/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1597,11 +2288,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front.4bpp.lz"); const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal.gbapal.lz"); const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back.4bpp.lz"); const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Primeape[] = INCBIN_U32("graphics/pokemon/primeape/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon.4bpp"); +#else + const u8 gMonIcon_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Primeape[] = INCBIN_U8("graphics/pokemon/primeape/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1633,11 +2335,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MANKEY #if P_FAMILY_GROWLITHE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front.4bpp.lz"); const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal.gbapal.lz"); const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back.4bpp.lz"); const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Growlithe[] = INCBIN_U32("graphics/pokemon/growlithe/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon.4bpp"); +#else + const u8 gMonIcon_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Growlithe[] = INCBIN_U8("graphics/pokemon/growlithe/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1649,11 +2362,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front.4bpp.lz"); const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal.gbapal.lz"); const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back.4bpp.lz"); const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Arcanine[] = INCBIN_U32("graphics/pokemon/arcanine/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon.4bpp"); +#else + const u8 gMonIcon_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Arcanine[] = INCBIN_U8("graphics/pokemon/arcanine/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1666,40 +2390,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/front.4bpp.lz"); - const u32 gMonPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_GrowlitheHisuian[] = INCBIN_U8("graphics/pokemon/growlithe/hisuian/icon.4bpp"); + const u32 gMonFrontPic_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/front.4bpp.lz"); + const u32 gMonPalette_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_GrowlitheHisui[] = INCBIN_U8("graphics/pokemon/growlithe/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GrowlitheHisuian[] = INCBIN_COMP("graphics/pokemon/growlithe/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_GrowlitheHisui[] = INCBIN_COMP("graphics/pokemon/growlithe/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GrowlitheHisuian[] = INCBIN_U32("graphics/pokemon/growlithe/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GrowlitheHisui[] = INCBIN_U32("graphics/pokemon/growlithe/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/front.4bpp.lz"); - const u32 gMonPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_ArcanineHisuian[] = INCBIN_U8("graphics/pokemon/arcanine/hisuian/icon.4bpp"); + const u32 gMonFrontPic_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/front.4bpp.lz"); + const u32 gMonPalette_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_ArcanineHisui[] = INCBIN_U8("graphics/pokemon/arcanine/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ArcanineHisuian[] = INCBIN_COMP("graphics/pokemon/arcanine/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_ArcanineHisui[] = INCBIN_COMP("graphics/pokemon/arcanine/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ArcanineHisuian[] = INCBIN_U32("graphics/pokemon/arcanine/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ArcanineHisui[] = INCBIN_U32("graphics/pokemon/arcanine/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE #if P_FAMILY_POLIWAG +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front.4bpp.lz"); const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal.gbapal.lz"); const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Poliwag[] = INCBIN_U32("graphics/pokemon/poliwag/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon.4bpp"); +#else + const u8 gMonIcon_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Poliwag[] = INCBIN_U8("graphics/pokemon/poliwag/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1711,11 +2446,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front.4bpp.lz"); const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal.gbapal.lz"); const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Poliwhirl[] = INCBIN_U32("graphics/pokemon/poliwhirl/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon.4bpp"); +#else + const u8 gMonIcon_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Poliwhirl[] = INCBIN_U8("graphics/pokemon/poliwhirl/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1727,11 +2473,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front.4bpp.lz"); const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal.gbapal.lz"); const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back.4bpp.lz"); const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Poliwrath[] = INCBIN_U32("graphics/pokemon/poliwrath/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon.4bpp"); +#else + const u8 gMonIcon_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Poliwrath[] = INCBIN_U8("graphics/pokemon/poliwrath/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1744,11 +2501,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front.4bpp.lz"); const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal.gbapal.lz"); const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back.4bpp.lz"); const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Politoed[] = INCBIN_U32("graphics/pokemon/politoed/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon.4bpp"); +#else + const u8 gMonIcon_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Politoed[] = INCBIN_U8("graphics/pokemon/politoed/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1760,20 +2528,33 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PolitoedF[] = INCBIN_U32("graphics/pokemon/politoed/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_PolitoedF[] = INCBIN_COMP("graphics/pokemon/politoed/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_POLIWAG #if P_FAMILY_ABRA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front.4bpp.lz"); const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal.gbapal.lz"); const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back.4bpp.lz"); const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Abra[] = INCBIN_U32("graphics/pokemon/abra/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Abra[] = INCBIN_U32("graphics/pokemon/abra/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon.4bpp"); +#else + const u8 gMonIcon_Abra[] = INCBIN_U8("graphics/pokemon/abra/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Abra[] = INCBIN_U8("graphics/pokemon/abra/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1785,11 +2566,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front.4bpp.lz"); const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal.gbapal.lz"); const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back.4bpp.lz"); const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kadabra[] = INCBIN_U32("graphics/pokemon/kadabra/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon.4bpp"); +#else + const u8 gMonIcon_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kadabra[] = INCBIN_U8("graphics/pokemon/kadabra/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1801,17 +2593,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KadabraF[] = INCBIN_U32("graphics/pokemon/kadabra/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_KadabraF[] = INCBIN_COMP("graphics/pokemon/kadabra/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front.4bpp.lz"); const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal.gbapal.lz"); const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back.4bpp.lz"); const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Alakazam[] = INCBIN_U32("graphics/pokemon/alakazam/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon.4bpp"); +#else + const u8 gMonIcon_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Alakazam[] = INCBIN_U8("graphics/pokemon/alakazam/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1823,11 +2628,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AlakazamF[] = INCBIN_U32("graphics/pokemon/alakazam/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_AlakazamF[] = INCBIN_COMP("graphics/pokemon/alakazam/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AlakazamMega[] = INCBIN_U32("graphics/pokemon/alakazam/mega/front.4bpp.lz"); @@ -1846,11 +2653,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ABRA #if P_FAMILY_MACHOP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front.4bpp.lz"); const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal.gbapal.lz"); const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back.4bpp.lz"); const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Machop[] = INCBIN_U32("graphics/pokemon/machop/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Machop[] = INCBIN_U32("graphics/pokemon/machop/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon.4bpp"); +#else + const u8 gMonIcon_Machop[] = INCBIN_U8("graphics/pokemon/machop/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Machop[] = INCBIN_U8("graphics/pokemon/machop/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1862,11 +2680,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front.4bpp.lz"); const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal.gbapal.lz"); const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back.4bpp.lz"); const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Machoke[] = INCBIN_U32("graphics/pokemon/machoke/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon.4bpp"); +#else + const u8 gMonIcon_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Machoke[] = INCBIN_U8("graphics/pokemon/machoke/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1878,11 +2707,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front.4bpp.lz"); const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal.gbapal.lz"); const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back.4bpp.lz"); const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Machamp[] = INCBIN_U32("graphics/pokemon/machamp/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon.4bpp"); +#else + const u8 gMonIcon_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Machamp[] = INCBIN_U8("graphics/pokemon/machamp/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1895,27 +2735,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_MachampGigantamax[] = INCBIN_U8("graphics/pokemon/machamp/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/front.4bpp.lz"); + const u32 gMonBackPic_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/back.4bpp.lz"); + const u32 gMonPalette_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_MachampGmax[] = INCBIN_U8("graphics/pokemon/machamp/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_MachampGigantamax[] = INCBIN_COMP("graphics/pokemon/machamp/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_MachampGmax[] = INCBIN_COMP("graphics/pokemon/machamp/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_MachampGigantamax[] = INCBIN_U32("graphics/pokemon/machamp/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_MachampGmax[] = INCBIN_U32("graphics/pokemon/machamp/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP #if P_FAMILY_BELLSPROUT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front.4bpp.lz"); const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal.gbapal.lz"); const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back.4bpp.lz"); const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Bellsprout[] = INCBIN_U32("graphics/pokemon/bellsprout/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon.4bpp"); +#else + const u8 gMonIcon_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Bellsprout[] = INCBIN_U8("graphics/pokemon/bellsprout/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1927,11 +2778,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front.4bpp.lz"); const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal.gbapal.lz"); const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back.4bpp.lz"); const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Weepinbell[] = INCBIN_U32("graphics/pokemon/weepinbell/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon.4bpp"); +#else + const u8 gMonIcon_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Weepinbell[] = INCBIN_U8("graphics/pokemon/weepinbell/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1943,11 +2805,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front.4bpp.lz"); const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal.gbapal.lz"); const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back.4bpp.lz"); const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Victreebel[] = INCBIN_U32("graphics/pokemon/victreebel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon.4bpp"); +#else + const u8 gMonIcon_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Victreebel[] = INCBIN_U8("graphics/pokemon/victreebel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1961,11 +2834,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_BELLSPROUT #if P_FAMILY_TENTACOOL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front.4bpp.lz"); const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal.gbapal.lz"); const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back.4bpp.lz"); const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tentacool[] = INCBIN_U32("graphics/pokemon/tentacool/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon.4bpp"); +#else + const u8 gMonIcon_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tentacool[] = INCBIN_U8("graphics/pokemon/tentacool/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1977,11 +2861,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front.4bpp.lz"); const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal.gbapal.lz"); const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back.4bpp.lz"); const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tentacruel[] = INCBIN_U32("graphics/pokemon/tentacruel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon.4bpp"); +#else + const u8 gMonIcon_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tentacruel[] = INCBIN_U8("graphics/pokemon/tentacruel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -1995,11 +2890,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TENTACOOL #if P_FAMILY_GEODUDE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front.4bpp.lz"); const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal.gbapal.lz"); const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back.4bpp.lz"); const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Geodude[] = INCBIN_U32("graphics/pokemon/geodude/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon.4bpp"); +#else + const u8 gMonIcon_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Geodude[] = INCBIN_U8("graphics/pokemon/geodude/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2011,11 +2917,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front.4bpp.lz"); const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal.gbapal.lz"); const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back.4bpp.lz"); const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Graveler[] = INCBIN_U32("graphics/pokemon/graveler/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon.4bpp"); +#else + const u8 gMonIcon_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Graveler[] = INCBIN_U8("graphics/pokemon/graveler/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2027,13 +2944,28 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front.4bpp.lz"); const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal.gbapal.lz"); const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back.4bpp.lz"); const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Golem[] = INCBIN_U32("graphics/pokemon/golem/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Golem[] = INCBIN_U32("graphics/pokemon/golem/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon.4bpp"); +#else + const u8 gMonIcon_Golem[] = INCBIN_U8("graphics/pokemon/golem/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS +#if !P_GBA_STYLE_SPECIES_FOOTPRINTS const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint.1bpp"); +#else + const u8 gMonFootprint_Golem[] = INCBIN_U8("graphics/pokemon/golem/footprint_gba.1bpp"); +#endif //P_GBA_STYLE_SPECIES_FOOTPRINTS #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_Golem[] = INCBIN_COMP("graphics/pokemon/golem/overworld.4bpp"); @@ -2044,53 +2976,64 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/front.4bpp.lz"); - const u32 gMonPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_GeodudeAlolan[] = INCBIN_U8("graphics/pokemon/geodude/alolan/icon.4bpp"); + const u32 gMonFrontPic_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/front.4bpp.lz"); + const u32 gMonPalette_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/normal.gbapal.lz"); + const u32 gMonBackPic_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/shiny.gbapal.lz"); + const u8 gMonIcon_GeodudeAlola[] = INCBIN_U8("graphics/pokemon/geodude/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GeodudeAlolan[] = INCBIN_COMP("graphics/pokemon/geodude/alolan/overworld.4bpp"); + const u32 gObjectEventPic_GeodudeAlola[] = INCBIN_COMP("graphics/pokemon/geodude/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GeodudeAlolan[] = INCBIN_U32("graphics/pokemon/geodude/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GeodudeAlola[] = INCBIN_U32("graphics/pokemon/geodude/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/front.4bpp.lz"); - const u32 gMonPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_GravelerAlolan[] = INCBIN_U8("graphics/pokemon/graveler/alolan/icon.4bpp"); + const u32 gMonFrontPic_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/front.4bpp.lz"); + const u32 gMonPalette_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/normal.gbapal.lz"); + const u32 gMonBackPic_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/shiny.gbapal.lz"); + const u8 gMonIcon_GravelerAlola[] = INCBIN_U8("graphics/pokemon/graveler/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GravelerAlolan[] = INCBIN_COMP("graphics/pokemon/graveler/alolan/overworld.4bpp"); + const u32 gObjectEventPic_GravelerAlola[] = INCBIN_COMP("graphics/pokemon/graveler/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GravelerAlolan[] = INCBIN_U32("graphics/pokemon/graveler/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GravelerAlola[] = INCBIN_U32("graphics/pokemon/graveler/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/front.4bpp.lz"); - const u32 gMonPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_GolemAlolan[] = INCBIN_U8("graphics/pokemon/golem/alolan/icon.4bpp"); + const u32 gMonFrontPic_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/front.4bpp.lz"); + const u32 gMonPalette_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/normal.gbapal.lz"); + const u32 gMonBackPic_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/shiny.gbapal.lz"); + const u8 gMonIcon_GolemAlola[] = INCBIN_U8("graphics/pokemon/golem/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GolemAlolan[] = INCBIN_COMP("graphics/pokemon/golem/alolan/overworld.4bpp"); + const u32 gObjectEventPic_GolemAlola[] = INCBIN_COMP("graphics/pokemon/golem/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GolemAlolan[] = INCBIN_U32("graphics/pokemon/golem/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GolemAlola[] = INCBIN_U32("graphics/pokemon/golem/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE #if P_FAMILY_PONYTA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front.4bpp.lz"); const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal.gbapal.lz"); const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back.4bpp.lz"); const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ponyta[] = INCBIN_U32("graphics/pokemon/ponyta/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon.4bpp"); +#else + const u8 gMonIcon_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ponyta[] = INCBIN_U8("graphics/pokemon/ponyta/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2102,11 +3045,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front.4bpp.lz"); const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal.gbapal.lz"); const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back.4bpp.lz"); const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Rapidash[] = INCBIN_U32("graphics/pokemon/rapidash/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon.4bpp"); +#else + const u8 gMonIcon_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Rapidash[] = INCBIN_U8("graphics/pokemon/rapidash/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2119,40 +3073,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/front.4bpp.lz"); - const u32 gMonPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_PonytaGalarian[] = INCBIN_U8("graphics/pokemon/ponyta/galarian/icon.4bpp"); + const u32 gMonFrontPic_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/front.4bpp.lz"); + const u32 gMonPalette_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/normal.gbapal.lz"); + const u32 gMonBackPic_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/shiny.gbapal.lz"); + const u8 gMonIcon_PonytaGalar[] = INCBIN_U8("graphics/pokemon/ponyta/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_PonytaGalarian[] = INCBIN_COMP("graphics/pokemon/ponyta/galarian/overworld.4bpp"); + const u32 gObjectEventPic_PonytaGalar[] = INCBIN_COMP("graphics/pokemon/ponyta/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_PonytaGalarian[] = INCBIN_U32("graphics/pokemon/ponyta/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_PonytaGalar[] = INCBIN_U32("graphics/pokemon/ponyta/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/front.4bpp.lz"); - const u32 gMonPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_RapidashGalarian[] = INCBIN_U8("graphics/pokemon/rapidash/galarian/icon.4bpp"); + const u32 gMonFrontPic_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/front.4bpp.lz"); + const u32 gMonPalette_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/normal.gbapal.lz"); + const u32 gMonBackPic_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/shiny.gbapal.lz"); + const u8 gMonIcon_RapidashGalar[] = INCBIN_U8("graphics/pokemon/rapidash/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_RapidashGalarian[] = INCBIN_COMP("graphics/pokemon/rapidash/galarian/overworld.4bpp"); + const u32 gObjectEventPic_RapidashGalar[] = INCBIN_COMP("graphics/pokemon/rapidash/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_RapidashGalarian[] = INCBIN_U32("graphics/pokemon/rapidash/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_RapidashGalar[] = INCBIN_U32("graphics/pokemon/rapidash/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA #if P_FAMILY_SLOWPOKE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front.4bpp.lz"); const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal.gbapal.lz"); const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back.4bpp.lz"); const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slowpoke[] = INCBIN_U32("graphics/pokemon/slowpoke/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon.4bpp"); +#else + const u8 gMonIcon_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slowpoke[] = INCBIN_U8("graphics/pokemon/slowpoke/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2164,11 +3129,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front.4bpp.lz"); const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal.gbapal.lz"); const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back.4bpp.lz"); const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slowbro[] = INCBIN_U32("graphics/pokemon/slowbro/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon.4bpp"); +#else + const u8 gMonIcon_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slowbro[] = INCBIN_U8("graphics/pokemon/slowbro/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2181,11 +3157,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front.4bpp.lz"); const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal.gbapal.lz"); const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back.4bpp.lz"); const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slowking[] = INCBIN_U32("graphics/pokemon/slowking/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon.4bpp"); +#else + const u8 gMonIcon_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slowking[] = INCBIN_U8("graphics/pokemon/slowking/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2214,43 +3201,43 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/front.4bpp.lz"); - const u32 gMonPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_SlowpokeGalarian[] = INCBIN_U8("graphics/pokemon/slowpoke/galarian/icon.4bpp"); + const u32 gMonFrontPic_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/front.4bpp.lz"); + const u32 gMonPalette_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/normal.gbapal.lz"); + const u32 gMonBackPic_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/shiny.gbapal.lz"); + const u8 gMonIcon_SlowpokeGalar[] = INCBIN_U8("graphics/pokemon/slowpoke/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SlowpokeGalarian[] = INCBIN_COMP("graphics/pokemon/slowpoke/galarian/overworld.4bpp"); + const u32 gObjectEventPic_SlowpokeGalar[] = INCBIN_COMP("graphics/pokemon/slowpoke/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SlowpokeGalarian[] = INCBIN_U32("graphics/pokemon/slowpoke/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SlowpokeGalar[] = INCBIN_U32("graphics/pokemon/slowpoke/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/front.4bpp.lz"); - const u32 gMonPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_SlowbroGalarian[] = INCBIN_U8("graphics/pokemon/slowbro/galarian/icon.4bpp"); + const u32 gMonFrontPic_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/front.4bpp.lz"); + const u32 gMonPalette_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/normal.gbapal.lz"); + const u32 gMonBackPic_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/shiny.gbapal.lz"); + const u8 gMonIcon_SlowbroGalar[] = INCBIN_U8("graphics/pokemon/slowbro/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SlowbroGalarian[] = INCBIN_COMP("graphics/pokemon/slowbro/galarian/overworld.4bpp"); + const u32 gObjectEventPic_SlowbroGalar[] = INCBIN_COMP("graphics/pokemon/slowbro/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SlowbroGalarian[] = INCBIN_U32("graphics/pokemon/slowbro/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SlowbroGalar[] = INCBIN_U32("graphics/pokemon/slowbro/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS - const u32 gMonFrontPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/front.4bpp.lz"); - const u32 gMonPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_SlowkingGalarian[] = INCBIN_U8("graphics/pokemon/slowking/galarian/icon.4bpp"); + const u32 gMonFrontPic_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/front.4bpp.lz"); + const u32 gMonPalette_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/normal.gbapal.lz"); + const u32 gMonBackPic_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/shiny.gbapal.lz"); + const u8 gMonIcon_SlowkingGalar[] = INCBIN_U8("graphics/pokemon/slowking/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SlowkingGalarian[] = INCBIN_COMP("graphics/pokemon/slowking/galarian/overworld.4bpp"); + const u32 gObjectEventPic_SlowkingGalar[] = INCBIN_COMP("graphics/pokemon/slowking/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SlowkingGalarian[] = INCBIN_U32("graphics/pokemon/slowking/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SlowkingGalar[] = INCBIN_U32("graphics/pokemon/slowking/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS @@ -2258,11 +3245,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SLOWPOKE #if P_FAMILY_MAGNEMITE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front.4bpp.lz"); const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal.gbapal.lz"); const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back.4bpp.lz"); const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magnemite[] = INCBIN_U32("graphics/pokemon/magnemite/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon.4bpp"); +#else + const u8 gMonIcon_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magnemite[] = INCBIN_U8("graphics/pokemon/magnemite/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2274,11 +3272,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front.4bpp.lz"); const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal.gbapal.lz"); const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back.4bpp.lz"); const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magneton[] = INCBIN_U32("graphics/pokemon/magneton/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon.4bpp"); +#else + const u8 gMonIcon_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magneton[] = INCBIN_U8("graphics/pokemon/magneton/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2310,11 +3319,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MAGNEMITE #if P_FAMILY_FARFETCHD +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/anim_front.4bpp.lz"); const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/normal.gbapal.lz"); const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back.4bpp.lz"); const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Farfetchd[] = INCBIN_U32("graphics/pokemon/farfetchd/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon.4bpp"); +#else + const u8 gMonIcon_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Farfetchd[] = INCBIN_U8("graphics/pokemon/farfetchd/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2327,16 +3347,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/front.4bpp.lz"); - const u32 gMonPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_FarfetchdGalarian[] = INCBIN_U8("graphics/pokemon/farfetchd/galarian/icon.4bpp"); + const u32 gMonFrontPic_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/front.4bpp.lz"); + const u32 gMonPalette_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/normal.gbapal.lz"); + const u32 gMonBackPic_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/shiny.gbapal.lz"); + const u8 gMonIcon_FarfetchdGalar[] = INCBIN_U8("graphics/pokemon/farfetchd/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_FarfetchdGalarian[] = INCBIN_COMP("graphics/pokemon/farfetchd/galarian/overworld.4bpp"); + const u32 gObjectEventPic_FarfetchdGalar[] = INCBIN_COMP("graphics/pokemon/farfetchd/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_FarfetchdGalarian[] = INCBIN_U32("graphics/pokemon/farfetchd/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_FarfetchdGalar[] = INCBIN_U32("graphics/pokemon/farfetchd/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -2359,11 +3379,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_FARFETCHD #if P_FAMILY_DODUO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front.4bpp.lz"); const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal.gbapal.lz"); const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back.4bpp.lz"); const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Doduo[] = INCBIN_U32("graphics/pokemon/doduo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon.4bpp"); +#else + const u8 gMonIcon_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Doduo[] = INCBIN_U8("graphics/pokemon/doduo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2375,17 +3406,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DoduoF[] = INCBIN_U32("graphics/pokemon/doduo/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_DoduoF[] = INCBIN_COMP("graphics/pokemon/doduo/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front.4bpp.lz"); const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal.gbapal.lz"); const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back.4bpp.lz"); const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dodrio[] = INCBIN_U32("graphics/pokemon/dodrio/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon.4bpp"); +#else + const u8 gMonIcon_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dodrio[] = INCBIN_U8("graphics/pokemon/dodrio/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2397,19 +3441,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DodrioF[] = INCBIN_U32("graphics/pokemon/dodrio/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_DodrioF[] = INCBIN_COMP("graphics/pokemon/dodrio/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_DODUO #if P_FAMILY_SEEL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front.4bpp.lz"); const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal.gbapal.lz"); const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back.4bpp.lz"); const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Seel[] = INCBIN_U32("graphics/pokemon/seel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Seel[] = INCBIN_U32("graphics/pokemon/seel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon.4bpp"); +#else + const u8 gMonIcon_Seel[] = INCBIN_U8("graphics/pokemon/seel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Seel[] = INCBIN_U8("graphics/pokemon/seel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2421,11 +3478,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front.4bpp.lz"); const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal.gbapal.lz"); const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back.4bpp.lz"); const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dewgong[] = INCBIN_U32("graphics/pokemon/dewgong/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon.4bpp"); +#else + const u8 gMonIcon_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dewgong[] = INCBIN_U8("graphics/pokemon/dewgong/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2439,11 +3507,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SEEL #if P_FAMILY_GRIMER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front.4bpp.lz"); const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal.gbapal.lz"); const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back.4bpp.lz"); const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Grimer[] = INCBIN_U32("graphics/pokemon/grimer/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon.4bpp"); +#else + const u8 gMonIcon_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Grimer[] = INCBIN_U8("graphics/pokemon/grimer/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2455,11 +3534,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front.4bpp.lz"); const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal.gbapal.lz"); const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back.4bpp.lz"); const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Muk[] = INCBIN_U32("graphics/pokemon/muk/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Muk[] = INCBIN_U32("graphics/pokemon/muk/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon.4bpp"); +#else + const u8 gMonIcon_Muk[] = INCBIN_U8("graphics/pokemon/muk/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Muk[] = INCBIN_U8("graphics/pokemon/muk/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2472,40 +3562,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/front.4bpp.lz"); - const u32 gMonPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_GrimerAlolan[] = INCBIN_U8("graphics/pokemon/grimer/alolan/icon.4bpp"); + const u32 gMonFrontPic_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/front.4bpp.lz"); + const u32 gMonPalette_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/normal.gbapal.lz"); + const u32 gMonBackPic_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/shiny.gbapal.lz"); + const u8 gMonIcon_GrimerAlola[] = INCBIN_U8("graphics/pokemon/grimer/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GrimerAlolan[] = INCBIN_COMP("graphics/pokemon/grimer/alolan/overworld.4bpp"); + const u32 gObjectEventPic_GrimerAlola[] = INCBIN_COMP("graphics/pokemon/grimer/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GrimerAlolan[] = INCBIN_U32("graphics/pokemon/grimer/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GrimerAlola[] = INCBIN_U32("graphics/pokemon/grimer/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/front.4bpp.lz"); - const u32 gMonPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_MukAlolan[] = INCBIN_U8("graphics/pokemon/muk/alolan/icon.4bpp"); + const u32 gMonFrontPic_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/front.4bpp.lz"); + const u32 gMonPalette_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/normal.gbapal.lz"); + const u32 gMonBackPic_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/shiny.gbapal.lz"); + const u8 gMonIcon_MukAlola[] = INCBIN_U8("graphics/pokemon/muk/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MukAlolan[] = INCBIN_COMP("graphics/pokemon/muk/alolan/overworld.4bpp"); + const u32 gObjectEventPic_MukAlola[] = INCBIN_COMP("graphics/pokemon/muk/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MukAlolan[] = INCBIN_U32("graphics/pokemon/muk/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MukAlola[] = INCBIN_U32("graphics/pokemon/muk/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER #if P_FAMILY_SHELLDER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front.4bpp.lz"); const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal.gbapal.lz"); const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back.4bpp.lz"); const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shellder[] = INCBIN_U32("graphics/pokemon/shellder/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon.4bpp"); +#else + const u8 gMonIcon_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shellder[] = INCBIN_U8("graphics/pokemon/shellder/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2517,11 +3618,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front.4bpp.lz"); const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal.gbapal.lz"); const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back.4bpp.lz"); const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cloyster[] = INCBIN_U32("graphics/pokemon/cloyster/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon.4bpp"); +#else + const u8 gMonIcon_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cloyster[] = INCBIN_U8("graphics/pokemon/cloyster/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2535,11 +3647,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SHELLDER #if P_FAMILY_GASTLY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front.4bpp.lz"); const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal.gbapal.lz"); const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back.4bpp.lz"); const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gastly[] = INCBIN_U32("graphics/pokemon/gastly/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon.4bpp"); +#else + const u8 gMonIcon_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gastly[] = INCBIN_U8("graphics/pokemon/gastly/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2551,11 +3674,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front.4bpp.lz"); const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal.gbapal.lz"); const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back.4bpp.lz"); const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Haunter[] = INCBIN_U32("graphics/pokemon/haunter/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon.4bpp"); +#else + const u8 gMonIcon_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Haunter[] = INCBIN_U8("graphics/pokemon/haunter/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2567,11 +3701,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front.4bpp.lz"); const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal.gbapal.lz"); const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back.4bpp.lz"); const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gengar[] = INCBIN_U32("graphics/pokemon/gengar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon.4bpp"); +#else + const u8 gMonIcon_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gengar[] = INCBIN_U8("graphics/pokemon/gengar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2599,27 +3744,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_GengarGigantamax[] = INCBIN_U8("graphics/pokemon/gengar/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/front.4bpp.lz"); + const u32 gMonBackPic_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/back.4bpp.lz"); + const u32 gMonPalette_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_GengarGmax[] = INCBIN_U8("graphics/pokemon/gengar/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_GengarGigantamax[] = INCBIN_COMP("graphics/pokemon/gengar/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_GengarGmax[] = INCBIN_COMP("graphics/pokemon/gengar/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_GengarGigantamax[] = INCBIN_U32("graphics/pokemon/gengar/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_GengarGmax[] = INCBIN_U32("graphics/pokemon/gengar/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY #if P_FAMILY_ONIX +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front.4bpp.lz"); const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal.gbapal.lz"); const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back.4bpp.lz"); const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Onix[] = INCBIN_U32("graphics/pokemon/onix/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Onix[] = INCBIN_U32("graphics/pokemon/onix/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon.4bpp"); +#else + const u8 gMonIcon_Onix[] = INCBIN_U8("graphics/pokemon/onix/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Onix[] = INCBIN_U8("graphics/pokemon/onix/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2632,11 +3788,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front.4bpp.lz"); const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal.gbapal.lz"); const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back.4bpp.lz"); const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Steelix[] = INCBIN_U32("graphics/pokemon/steelix/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon.4bpp"); +#else + const u8 gMonIcon_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Steelix[] = INCBIN_U8("graphics/pokemon/steelix/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2648,11 +3815,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SteelixF[] = INCBIN_U32("graphics/pokemon/steelix/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SteelixF[] = INCBIN_COMP("graphics/pokemon/steelix/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_SteelixMega[] = INCBIN_U32("graphics/pokemon/steelix/mega/front.4bpp.lz"); @@ -2672,11 +3841,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ONIX #if P_FAMILY_DROWZEE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front.4bpp.lz"); const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal.gbapal.lz"); const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back.4bpp.lz"); const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Drowzee[] = INCBIN_U32("graphics/pokemon/drowzee/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon.4bpp"); +#else + const u8 gMonIcon_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Drowzee[] = INCBIN_U8("graphics/pokemon/drowzee/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2688,11 +3868,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front.4bpp.lz"); const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal.gbapal.lz"); const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back.4bpp.lz"); const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hypno[] = INCBIN_U32("graphics/pokemon/hypno/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon.4bpp"); +#else + const u8 gMonIcon_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hypno[] = INCBIN_U8("graphics/pokemon/hypno/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2704,19 +3895,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HypnoF[] = INCBIN_U32("graphics/pokemon/hypno/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_HypnoF[] = INCBIN_COMP("graphics/pokemon/hypno/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_DROWZEE #if P_FAMILY_KRABBY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front.4bpp.lz"); const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal.gbapal.lz"); const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back.4bpp.lz"); const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Krabby[] = INCBIN_U32("graphics/pokemon/krabby/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon.4bpp"); +#else + const u8 gMonIcon_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Krabby[] = INCBIN_U8("graphics/pokemon/krabby/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2728,11 +3932,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front.4bpp.lz"); const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal.gbapal.lz"); const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back.4bpp.lz"); const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kingler[] = INCBIN_U32("graphics/pokemon/kingler/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon.4bpp"); +#else + const u8 gMonIcon_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kingler[] = INCBIN_U8("graphics/pokemon/kingler/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2745,27 +3960,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_KinglerGigantamax[] = INCBIN_U8("graphics/pokemon/kingler/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/front.4bpp.lz"); + const u32 gMonBackPic_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/back.4bpp.lz"); + const u32 gMonPalette_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_KinglerGmax[] = INCBIN_U8("graphics/pokemon/kingler/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_KinglerGigantamax[] = INCBIN_COMP("graphics/pokemon/kingler/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_KinglerGmax[] = INCBIN_COMP("graphics/pokemon/kingler/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_KinglerGigantamax[] = INCBIN_U32("graphics/pokemon/kingler/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_KinglerGmax[] = INCBIN_U32("graphics/pokemon/kingler/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY #if P_FAMILY_VOLTORB +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front.4bpp.lz"); const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal.gbapal.lz"); const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back.4bpp.lz"); const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Voltorb[] = INCBIN_U32("graphics/pokemon/voltorb/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon.4bpp"); +#else + const u8 gMonIcon_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Voltorb[] = INCBIN_U8("graphics/pokemon/voltorb/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2777,11 +4003,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front.4bpp.lz"); const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal.gbapal.lz"); const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back.4bpp.lz"); const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Electrode[] = INCBIN_U32("graphics/pokemon/electrode/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon.4bpp"); +#else + const u8 gMonIcon_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Electrode[] = INCBIN_U8("graphics/pokemon/electrode/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2794,40 +4031,51 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/front.4bpp.lz"); - const u32 gMonPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_VoltorbHisuian[] = INCBIN_U8("graphics/pokemon/voltorb/hisuian/icon.4bpp"); + const u32 gMonFrontPic_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/front.4bpp.lz"); + const u32 gMonPalette_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_VoltorbHisui[] = INCBIN_U8("graphics/pokemon/voltorb/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_VoltorbHisuian[] = INCBIN_COMP("graphics/pokemon/voltorb/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_VoltorbHisui[] = INCBIN_COMP("graphics/pokemon/voltorb/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_VoltorbHisuian[] = INCBIN_U32("graphics/pokemon/voltorb/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_VoltorbHisui[] = INCBIN_U32("graphics/pokemon/voltorb/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/front.4bpp.lz"); - const u32 gMonPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_ElectrodeHisuian[] = INCBIN_U8("graphics/pokemon/electrode/hisuian/icon.4bpp"); + const u32 gMonFrontPic_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/front.4bpp.lz"); + const u32 gMonPalette_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_ElectrodeHisui[] = INCBIN_U8("graphics/pokemon/electrode/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ElectrodeHisuian[] = INCBIN_COMP("graphics/pokemon/electrode/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_ElectrodeHisui[] = INCBIN_COMP("graphics/pokemon/electrode/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ElectrodeHisuian[] = INCBIN_U32("graphics/pokemon/electrode/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ElectrodeHisui[] = INCBIN_U32("graphics/pokemon/electrode/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB #if P_FAMILY_EXEGGCUTE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front.4bpp.lz"); const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal.gbapal.lz"); const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back.4bpp.lz"); const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Exeggcute[] = INCBIN_U32("graphics/pokemon/exeggcute/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon.4bpp"); +#else + const u8 gMonIcon_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Exeggcute[] = INCBIN_U8("graphics/pokemon/exeggcute/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2839,11 +4087,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front.4bpp.lz"); const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal.gbapal.lz"); const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back.4bpp.lz"); const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Exeggutor[] = INCBIN_U32("graphics/pokemon/exeggutor/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon.4bpp"); +#else + const u8 gMonIcon_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Exeggutor[] = INCBIN_U8("graphics/pokemon/exeggutor/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2856,27 +4115,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/anim_front.4bpp.lz"); - const u32 gMonPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_ExeggutorAlolan[] = INCBIN_U8("graphics/pokemon/exeggutor/alolan/icon.4bpp"); + const u32 gMonFrontPic_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/anim_front.4bpp.lz"); + const u32 gMonPalette_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/normal.gbapal.lz"); + const u32 gMonBackPic_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/shiny.gbapal.lz"); + const u8 gMonIcon_ExeggutorAlola[] = INCBIN_U8("graphics/pokemon/exeggutor/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ExeggutorAlolan[] = INCBIN_COMP("graphics/pokemon/exeggutor/alolan/overworld.4bpp"); + const u32 gObjectEventPic_ExeggutorAlola[] = INCBIN_COMP("graphics/pokemon/exeggutor/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ExeggutorAlolan[] = INCBIN_U32("graphics/pokemon/exeggutor/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ExeggutorAlola[] = INCBIN_U32("graphics/pokemon/exeggutor/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE #if P_FAMILY_CUBONE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front.4bpp.lz"); const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal.gbapal.lz"); const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back.4bpp.lz"); const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cubone[] = INCBIN_U32("graphics/pokemon/cubone/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon.4bpp"); +#else + const u8 gMonIcon_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cubone[] = INCBIN_U8("graphics/pokemon/cubone/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2888,11 +4158,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front.4bpp.lz"); const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal.gbapal.lz"); const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back.4bpp.lz"); const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Marowak[] = INCBIN_U32("graphics/pokemon/marowak/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon.4bpp"); +#else + const u8 gMonIcon_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Marowak[] = INCBIN_U8("graphics/pokemon/marowak/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2905,16 +4186,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_ALOLAN_FORMS - const u32 gMonFrontPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/front.4bpp.lz"); - const u32 gMonPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/normal.gbapal.lz"); - const u32 gMonBackPic_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/back.4bpp.lz"); - const u32 gMonShinyPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/shiny.gbapal.lz"); - const u8 gMonIcon_MarowakAlolan[] = INCBIN_U8("graphics/pokemon/marowak/alolan/icon.4bpp"); + const u32 gMonFrontPic_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/front.4bpp.lz"); + const u32 gMonPalette_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/normal.gbapal.lz"); + const u32 gMonBackPic_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/back.4bpp.lz"); + const u32 gMonShinyPalette_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/shiny.gbapal.lz"); + const u8 gMonIcon_MarowakAlola[] = INCBIN_U8("graphics/pokemon/marowak/alola/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MarowakAlolan[] = INCBIN_COMP("graphics/pokemon/marowak/alolan/overworld.4bpp"); + const u32 gObjectEventPic_MarowakAlola[] = INCBIN_COMP("graphics/pokemon/marowak/alola/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MarowakAlolan[] = INCBIN_U32("graphics/pokemon/marowak/alolan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MarowakAlola[] = INCBIN_U32("graphics/pokemon/marowak/alola/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_ALOLAN_FORMS @@ -2922,11 +4203,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_HITMONS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front.4bpp.lz"); const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal.gbapal.lz"); const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back.4bpp.lz"); const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tyrogue[] = INCBIN_U32("graphics/pokemon/tyrogue/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon.4bpp"); +#else + const u8 gMonIcon_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tyrogue[] = INCBIN_U8("graphics/pokemon/tyrogue/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2939,11 +4231,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front.4bpp.lz"); const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal.gbapal.lz"); const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hitmonlee[] = INCBIN_U32("graphics/pokemon/hitmonlee/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon.4bpp"); +#else + const u8 gMonIcon_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hitmonlee[] = INCBIN_U8("graphics/pokemon/hitmonlee/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2955,11 +4258,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front.4bpp.lz"); const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal.gbapal.lz"); const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hitmonchan[] = INCBIN_U32("graphics/pokemon/hitmonchan/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon.4bpp"); +#else + const u8 gMonIcon_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hitmonchan[] = INCBIN_U8("graphics/pokemon/hitmonchan/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2972,11 +4286,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front.4bpp.lz"); const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal.gbapal.lz"); const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back.4bpp.lz"); const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hitmontop[] = INCBIN_U32("graphics/pokemon/hitmontop/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon.4bpp"); +#else + const u8 gMonIcon_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hitmontop[] = INCBIN_U8("graphics/pokemon/hitmontop/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -2991,11 +4316,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HITMONS #if P_FAMILY_LICKITUNG +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front.4bpp.lz"); const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal.gbapal.lz"); const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back.4bpp.lz"); const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lickitung[] = INCBIN_U32("graphics/pokemon/lickitung/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon.4bpp"); +#else + const u8 gMonIcon_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lickitung[] = INCBIN_U8("graphics/pokemon/lickitung/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3027,11 +4363,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LICKITUNG #if P_FAMILY_KOFFING +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front.4bpp.lz"); const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal.gbapal.lz"); const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back.4bpp.lz"); const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Koffing[] = INCBIN_U32("graphics/pokemon/koffing/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon.4bpp"); +#else + const u8 gMonIcon_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Koffing[] = INCBIN_U8("graphics/pokemon/koffing/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3043,11 +4390,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front.4bpp.lz"); const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal.gbapal.lz"); const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back.4bpp.lz"); const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Weezing[] = INCBIN_U32("graphics/pokemon/weezing/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon.4bpp"); +#else + const u8 gMonIcon_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Weezing[] = INCBIN_U8("graphics/pokemon/weezing/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3060,27 +4418,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/front.4bpp.lz"); - const u32 gMonPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_WeezingGalarian[] = INCBIN_U8("graphics/pokemon/weezing/galarian/icon.4bpp"); + const u32 gMonFrontPic_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/front.4bpp.lz"); + const u32 gMonPalette_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/normal.gbapal.lz"); + const u32 gMonBackPic_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/shiny.gbapal.lz"); + const u8 gMonIcon_WeezingGalar[] = INCBIN_U8("graphics/pokemon/weezing/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_WeezingGalarian[] = INCBIN_COMP("graphics/pokemon/weezing/galarian/overworld.4bpp"); + const u32 gObjectEventPic_WeezingGalar[] = INCBIN_COMP("graphics/pokemon/weezing/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_WeezingGalarian[] = INCBIN_U32("graphics/pokemon/weezing/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_WeezingGalar[] = INCBIN_U32("graphics/pokemon/weezing/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING #if P_FAMILY_RHYHORN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front.4bpp.lz"); const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal.gbapal.lz"); const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back.4bpp.lz"); const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Rhyhorn[] = INCBIN_U32("graphics/pokemon/rhyhorn/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon.4bpp"); +#else + const u8 gMonIcon_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Rhyhorn[] = INCBIN_U8("graphics/pokemon/rhyhorn/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3092,17 +4461,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhyhornF[] = INCBIN_U32("graphics/pokemon/rhyhorn/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RhyhornF[] = INCBIN_COMP("graphics/pokemon/rhyhorn/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front.4bpp.lz"); const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal.gbapal.lz"); const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back.4bpp.lz"); const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Rhydon[] = INCBIN_U32("graphics/pokemon/rhydon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon.4bpp"); +#else + const u8 gMonIcon_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Rhydon[] = INCBIN_U8("graphics/pokemon/rhydon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3114,11 +4496,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhydonF[] = INCBIN_U32("graphics/pokemon/rhydon/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RhydonF[] = INCBIN_COMP("graphics/pokemon/rhydon/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Rhyperior[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_front.4bpp.lz"); @@ -3137,11 +4521,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RhyperiorF[] = INCBIN_U32("graphics/pokemon/rhyperior/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RhyperiorF[] = INCBIN_COMP("graphics/pokemon/rhyperior/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RHYHORN @@ -3164,11 +4550,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front.4bpp.lz"); const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal.gbapal.lz"); const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back.4bpp.lz"); const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Chansey[] = INCBIN_U32("graphics/pokemon/chansey/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon.4bpp"); +#else + const u8 gMonIcon_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Chansey[] = INCBIN_U8("graphics/pokemon/chansey/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3181,11 +4578,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front.4bpp.lz"); const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal.gbapal.lz"); const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back.4bpp.lz"); const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Blissey[] = INCBIN_U32("graphics/pokemon/blissey/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon.4bpp"); +#else + const u8 gMonIcon_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Blissey[] = INCBIN_U8("graphics/pokemon/blissey/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3200,11 +4608,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CHANSEY #if P_FAMILY_TANGELA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front.4bpp.lz"); const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal.gbapal.lz"); const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back.4bpp.lz"); const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tangela[] = INCBIN_U32("graphics/pokemon/tangela/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon.4bpp"); +#else + const u8 gMonIcon_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tangela[] = INCBIN_U8("graphics/pokemon/tangela/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3233,19 +4652,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_TangrowthF[] = INCBIN_U32("graphics/pokemon/tangrowth/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_TangrowthF[] = INCBIN_COMP("graphics/pokemon/tangrowth/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TANGELA #if P_FAMILY_KANGASKHAN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front.4bpp.lz"); const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal.gbapal.lz"); const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back.4bpp.lz"); const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kangaskhan[] = INCBIN_U32("graphics/pokemon/kangaskhan/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon.4bpp"); +#else + const u8 gMonIcon_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kangaskhan[] = INCBIN_U8("graphics/pokemon/kangaskhan/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3274,11 +4706,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_KANGASKHAN #if P_FAMILY_HORSEA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front.4bpp.lz"); const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal.gbapal.lz"); const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back.4bpp.lz"); const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Horsea[] = INCBIN_U32("graphics/pokemon/horsea/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon.4bpp"); +#else + const u8 gMonIcon_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Horsea[] = INCBIN_U8("graphics/pokemon/horsea/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3290,11 +4733,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front.4bpp.lz"); const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal.gbapal.lz"); const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back.4bpp.lz"); const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Seadra[] = INCBIN_U32("graphics/pokemon/seadra/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon.4bpp"); +#else + const u8 gMonIcon_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Seadra[] = INCBIN_U8("graphics/pokemon/seadra/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3307,11 +4761,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front.4bpp.lz"); const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal.gbapal.lz"); const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back.4bpp.lz"); const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kingdra[] = INCBIN_U32("graphics/pokemon/kingdra/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon.4bpp"); +#else + const u8 gMonIcon_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kingdra[] = INCBIN_U8("graphics/pokemon/kingdra/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3326,11 +4791,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HORSEA #if P_FAMILY_GOLDEEN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front.4bpp.lz"); const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal.gbapal.lz"); const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back.4bpp.lz"); const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Goldeen[] = INCBIN_U32("graphics/pokemon/goldeen/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon.4bpp"); +#else + const u8 gMonIcon_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Goldeen[] = INCBIN_U8("graphics/pokemon/goldeen/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3342,17 +4818,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GoldeenF[] = INCBIN_U32("graphics/pokemon/goldeen/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GoldeenF[] = INCBIN_COMP("graphics/pokemon/goldeen/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front.4bpp.lz"); const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal.gbapal.lz"); const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back.4bpp.lz"); const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Seaking[] = INCBIN_U32("graphics/pokemon/seaking/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon.4bpp"); +#else + const u8 gMonIcon_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Seaking[] = INCBIN_U8("graphics/pokemon/seaking/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3364,19 +4853,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SeakingF[] = INCBIN_U32("graphics/pokemon/seaking/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SeakingF[] = INCBIN_COMP("graphics/pokemon/seaking/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_GOLDEEN #if P_FAMILY_STARYU +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front.4bpp.lz"); const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal.gbapal.lz"); const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back.4bpp.lz"); const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Staryu[] = INCBIN_U32("graphics/pokemon/staryu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon.4bpp"); +#else + const u8 gMonIcon_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Staryu[] = INCBIN_U8("graphics/pokemon/staryu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3388,11 +4890,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front.4bpp.lz"); const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal.gbapal.lz"); const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back.4bpp.lz"); const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Starmie[] = INCBIN_U32("graphics/pokemon/starmie/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon.4bpp"); +#else + const u8 gMonIcon_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Starmie[] = INCBIN_U8("graphics/pokemon/starmie/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3424,11 +4937,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front.4bpp.lz"); const u32 gMonPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal.gbapal.lz"); const u32 gMonBackPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/back.4bpp.lz"); const u32 gMonShinyPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/normal_gba.gbapal.lz"); + const u32 gMonBackPic_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_MrMime[] = INCBIN_U32("graphics/pokemon/mr_mime/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon.4bpp"); +#else + const u8 gMonIcon_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_MrMime[] = INCBIN_U8("graphics/pokemon/mr_mime/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3441,16 +4965,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/front.4bpp.lz"); - const u32 gMonPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_MrMimeGalarian[] = INCBIN_U8("graphics/pokemon/mr_mime/galarian/icon.4bpp"); + const u32 gMonFrontPic_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/front.4bpp.lz"); + const u32 gMonPalette_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/normal.gbapal.lz"); + const u32 gMonBackPic_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/shiny.gbapal.lz"); + const u8 gMonIcon_MrMimeGalar[] = INCBIN_U8("graphics/pokemon/mr_mime/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MrMimeGalarian[] = INCBIN_COMP("graphics/pokemon/mr_mime/galarian/overworld.4bpp"); + const u32 gObjectEventPic_MrMimeGalar[] = INCBIN_COMP("graphics/pokemon/mr_mime/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MrMimeGalarian[] = INCBIN_U32("graphics/pokemon/mr_mime/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MrMimeGalar[] = INCBIN_U32("graphics/pokemon/mr_mime/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -3473,11 +4997,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MR_MIME #if P_FAMILY_SCYTHER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front.4bpp.lz"); const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal.gbapal.lz"); const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back.4bpp.lz"); const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Scyther[] = INCBIN_U32("graphics/pokemon/scyther/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon.4bpp"); +#else + const u8 gMonIcon_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Scyther[] = INCBIN_U8("graphics/pokemon/scyther/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3489,17 +5024,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ScytherF[] = INCBIN_U32("graphics/pokemon/scyther/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ScytherF[] = INCBIN_COMP("graphics/pokemon/scyther/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front.4bpp.lz"); const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal.gbapal.lz"); const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back.4bpp.lz"); const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Scizor[] = INCBIN_U32("graphics/pokemon/scizor/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon.4bpp"); +#else + const u8 gMonIcon_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Scizor[] = INCBIN_U8("graphics/pokemon/scizor/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3511,10 +5059,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ScizorF[] = INCBIN_U32("graphics/pokemon/scizor/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ScizorF[] = INCBIN_COMP("graphics/pokemon/scizor/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_ScizorMega[] = INCBIN_U32("graphics/pokemon/scizor/mega/front.4bpp.lz"); @@ -3553,11 +5103,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_JYNX #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front.4bpp.lz"); const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal.gbapal.lz"); const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back.4bpp.lz"); const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Smoochum[] = INCBIN_U32("graphics/pokemon/smoochum/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon.4bpp"); +#else + const u8 gMonIcon_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Smoochum[] = INCBIN_U8("graphics/pokemon/smoochum/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3570,11 +5131,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front.4bpp.lz"); const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal.gbapal.lz"); const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back.4bpp.lz"); const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Jynx[] = INCBIN_U32("graphics/pokemon/jynx/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon.4bpp"); +#else + const u8 gMonIcon_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Jynx[] = INCBIN_U8("graphics/pokemon/jynx/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3589,11 +5161,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_ELECTABUZZ #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front.4bpp.lz"); const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal.gbapal.lz"); const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back.4bpp.lz"); const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Elekid[] = INCBIN_U32("graphics/pokemon/elekid/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon.4bpp"); +#else + const u8 gMonIcon_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Elekid[] = INCBIN_U8("graphics/pokemon/elekid/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3606,11 +5189,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front.4bpp.lz"); const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal.gbapal.lz"); const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back.4bpp.lz"); const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Electabuzz[] = INCBIN_U32("graphics/pokemon/electabuzz/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon.4bpp"); +#else + const u8 gMonIcon_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Electabuzz[] = INCBIN_U8("graphics/pokemon/electabuzz/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3643,11 +5237,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_MAGMAR #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front.4bpp.lz"); const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal.gbapal.lz"); const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back.4bpp.lz"); const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magby[] = INCBIN_U32("graphics/pokemon/magby/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magby[] = INCBIN_U32("graphics/pokemon/magby/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon.4bpp"); +#else + const u8 gMonIcon_Magby[] = INCBIN_U8("graphics/pokemon/magby/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magby[] = INCBIN_U8("graphics/pokemon/magby/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3660,11 +5265,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front.4bpp.lz"); const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal.gbapal.lz"); const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back.4bpp.lz"); const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magmar[] = INCBIN_U32("graphics/pokemon/magmar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon.4bpp"); +#else + const u8 gMonIcon_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magmar[] = INCBIN_U8("graphics/pokemon/magmar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3696,11 +5312,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MAGMAR #if P_FAMILY_PINSIR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front.4bpp.lz"); const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal.gbapal.lz"); const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back.4bpp.lz"); const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pinsir[] = INCBIN_U32("graphics/pokemon/pinsir/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon.4bpp"); +#else + const u8 gMonIcon_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pinsir[] = INCBIN_U8("graphics/pokemon/pinsir/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3729,11 +5356,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PINSIR #if P_FAMILY_TAUROS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front.4bpp.lz"); const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal.gbapal.lz"); const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back.4bpp.lz"); const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tauros[] = INCBIN_U32("graphics/pokemon/tauros/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon.4bpp"); +#else + const u8 gMonIcon_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tauros[] = INCBIN_U8("graphics/pokemon/tauros/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3746,46 +5384,57 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_PALDEAN_FORMS - const u32 gMonFrontPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/front.4bpp.lz"); - const u32 gMonPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/normal.gbapal.lz"); - const u32 gMonBackPic_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/back.4bpp.lz"); - const u32 gMonShinyPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/shiny.gbapal.lz"); - const u8 gMonIcon_TaurosPaldeanCombatBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_combat_breed/icon.4bpp"); + const u32 gMonFrontPic_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeaCombat[] = INCBIN_U8("graphics/pokemon/tauros/paldea_combat/icon.4bpp"); - const u32 gMonFrontPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/front.4bpp.lz"); - const u32 gMonPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/normal.gbapal.lz"); - const u32 gMonBackPic_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/back.4bpp.lz"); - const u32 gMonShinyPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/shiny.gbapal.lz"); - const u8 gMonIcon_TaurosPaldeanBlazeBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_blaze_breed/icon.4bpp"); + const u32 gMonFrontPic_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeaBlaze[] = INCBIN_U8("graphics/pokemon/tauros/paldea_blaze/icon.4bpp"); - const u32 gMonFrontPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/front.4bpp.lz"); - const u32 gMonPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/normal.gbapal.lz"); - const u32 gMonBackPic_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/back.4bpp.lz"); - const u32 gMonShinyPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/shiny.gbapal.lz"); - const u8 gMonIcon_TaurosPaldeanAquaBreed[] = INCBIN_U8("graphics/pokemon/tauros/paldean_aqua_breed/icon.4bpp"); + const u32 gMonFrontPic_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/front.4bpp.lz"); + const u32 gMonPalette_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/normal.gbapal.lz"); + const u32 gMonBackPic_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/back.4bpp.lz"); + const u32 gMonShinyPalette_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/shiny.gbapal.lz"); + const u8 gMonIcon_TaurosPaldeaAqua[] = INCBIN_U8("graphics/pokemon/tauros/paldea_aqua/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_TaurosPaldeanCombatBreed[] = INCBIN_COMP("graphics/pokemon/tauros/paldean_combat_breed/overworld.4bpp"); - const u32 gObjectEventPic_TaurosPaldeanBlazeBreed[] = INCBIN_COMP("graphics/pokemon/tauros/paldean_blaze_breed/overworld.4bpp"); - const u32 gObjectEventPic_TaurosPaldeanAquaBreed[] = INCBIN_COMP("graphics/pokemon/tauros/paldean_aqua_breed/overworld.4bpp"); + const u32 gObjectEventPic_TaurosPaldeaCombat[] = INCBIN_COMP("graphics/pokemon/tauros/paldea_combat/overworld.4bpp"); + const u32 gObjectEventPic_TaurosPaldeaBlaze[] = INCBIN_COMP("graphics/pokemon/tauros/paldea_blaze/overworld.4bpp"); + const u32 gObjectEventPic_TaurosPaldeaAqua[] = INCBIN_COMP("graphics/pokemon/tauros/paldea_aqua/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_TaurosPaldeanCombatBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_combat_breed/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_TaurosPaldeanBlazeBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_blaze_breed/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_TaurosPaldeanAquaBreed[] = INCBIN_U32("graphics/pokemon/tauros/paldean_aqua_breed/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_TaurosPaldeaCombat[] = INCBIN_U32("graphics/pokemon/tauros/paldea_combat/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_TaurosPaldeaBlaze[] = INCBIN_U32("graphics/pokemon/tauros/paldea_blaze/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_TaurosPaldeaAqua[] = INCBIN_U32("graphics/pokemon/tauros/paldea_aqua/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS #if P_FAMILY_MAGIKARP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front.4bpp.lz"); const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal.gbapal.lz"); const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back.4bpp.lz"); const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magikarp[] = INCBIN_U32("graphics/pokemon/magikarp/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon.4bpp"); +#else + const u8 gMonIcon_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magikarp[] = INCBIN_U8("graphics/pokemon/magikarp/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3797,17 +5446,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MagikarpF[] = INCBIN_U32("graphics/pokemon/magikarp/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MagikarpF[] = INCBIN_COMP("graphics/pokemon/magikarp/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front.4bpp.lz"); const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal.gbapal.lz"); const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back.4bpp.lz"); const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gyarados[] = INCBIN_U32("graphics/pokemon/gyarados/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon.4bpp"); +#else + const u8 gMonIcon_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gyarados[] = INCBIN_U8("graphics/pokemon/gyarados/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3819,11 +5481,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GyaradosF[] = INCBIN_U32("graphics/pokemon/gyarados/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GyaradosF[] = INCBIN_COMP("graphics/pokemon/gyarados/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GyaradosMega[] = INCBIN_U32("graphics/pokemon/gyarados/mega/front.4bpp.lz"); @@ -3842,11 +5506,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MAGIKARP #if P_FAMILY_LAPRAS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front.4bpp.lz"); const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal.gbapal.lz"); const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back.4bpp.lz"); const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lapras[] = INCBIN_U32("graphics/pokemon/lapras/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon.4bpp"); +#else + const u8 gMonIcon_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lapras[] = INCBIN_U8("graphics/pokemon/lapras/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3859,27 +5534,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_LaprasGigantamax[] = INCBIN_U8("graphics/pokemon/lapras/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/front.4bpp.lz"); + const u32 gMonBackPic_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/back.4bpp.lz"); + const u32 gMonPalette_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_LaprasGmax[] = INCBIN_U8("graphics/pokemon/lapras/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_LaprasGigantamax[] = INCBIN_COMP("graphics/pokemon/lapras/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_LaprasGmax[] = INCBIN_COMP("graphics/pokemon/lapras/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_LaprasGigantamax[] = INCBIN_U32("graphics/pokemon/lapras/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_LaprasGmax[] = INCBIN_U32("graphics/pokemon/lapras/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS #if P_FAMILY_DITTO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front.4bpp.lz"); const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal.gbapal.lz"); const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back.4bpp.lz"); const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ditto[] = INCBIN_U32("graphics/pokemon/ditto/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon.4bpp"); +#else + const u8 gMonIcon_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ditto[] = INCBIN_U8("graphics/pokemon/ditto/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3893,11 +5579,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_DITTO #if P_FAMILY_EEVEE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front.4bpp.lz"); const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal.gbapal.lz"); const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back.4bpp.lz"); const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Eevee[] = INCBIN_U32("graphics/pokemon/eevee/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon.4bpp"); +#else + const u8 gMonIcon_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Eevee[] = INCBIN_U8("graphics/pokemon/eevee/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3909,37 +5606,50 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/anim_frontf.4bpp.lz"); const u32 gMonBackPic_EeveeF[] = INCBIN_U32("graphics/pokemon/eevee/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_EeveeF[] = INCBIN_COMP("graphics/pokemon/eevee/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_EeveeGigantamax[] = INCBIN_U8("graphics/pokemon/eevee/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/front.4bpp.lz"); + const u32 gMonBackPic_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/back.4bpp.lz"); + const u32 gMonPalette_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_EeveeGmax[] = INCBIN_U8("graphics/pokemon/eevee/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_EeveeGigantamax[] = INCBIN_COMP("graphics/pokemon/eevee/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_EeveeGmax[] = INCBIN_COMP("graphics/pokemon/eevee/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_EeveeGigantamax[] = INCBIN_U32("graphics/pokemon/eevee/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_EeveeGmax[] = INCBIN_U32("graphics/pokemon/eevee/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS const u8 gMonIcon_EeveePartner[] = INCBIN_U8("graphics/pokemon/eevee/partner/icon.4bpp"); - #if P_CUSTOM_GENDER_DIFF_ICONS - const u8 gMonIcon_EeveePartnerF[] = INCBIN_U8("graphics/pokemon/eevee/partner/iconf.4bpp"); - #endif +#if P_GENDER_DIFFERENCES && P_CUSTOM_GENDER_DIFF_ICONS + const u8 gMonIcon_EeveePartnerF[] = INCBIN_U8("graphics/pokemon/eevee/partner/iconf.4bpp"); +#endif //P_GENDER_DIFFERENCES && P_CUSTOM_GENDER_DIFF_ICONS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front.4bpp.lz"); const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal.gbapal.lz"); const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back.4bpp.lz"); const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Vaporeon[] = INCBIN_U32("graphics/pokemon/vaporeon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon.4bpp"); +#else + const u8 gMonIcon_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Vaporeon[] = INCBIN_U8("graphics/pokemon/vaporeon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3951,11 +5661,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front.4bpp.lz"); const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal.gbapal.lz"); const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back.4bpp.lz"); const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Jolteon[] = INCBIN_U32("graphics/pokemon/jolteon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon.4bpp"); +#else + const u8 gMonIcon_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Jolteon[] = INCBIN_U8("graphics/pokemon/jolteon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3967,11 +5688,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front.4bpp.lz"); const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal.gbapal.lz"); const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back.4bpp.lz"); const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Flareon[] = INCBIN_U32("graphics/pokemon/flareon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon.4bpp"); +#else + const u8 gMonIcon_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Flareon[] = INCBIN_U8("graphics/pokemon/flareon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -3984,11 +5716,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front.4bpp.lz"); const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal.gbapal.lz"); const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back.4bpp.lz"); const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Espeon[] = INCBIN_U32("graphics/pokemon/espeon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon.4bpp"); +#else + const u8 gMonIcon_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Espeon[] = INCBIN_U8("graphics/pokemon/espeon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4000,11 +5743,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front.4bpp.lz"); const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal.gbapal.lz"); const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back.4bpp.lz"); const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Umbreon[] = INCBIN_U32("graphics/pokemon/umbreon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon.4bpp"); +#else + const u8 gMonIcon_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Umbreon[] = INCBIN_U8("graphics/pokemon/umbreon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4071,11 +5825,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_EEVEE #if P_FAMILY_PORYGON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front.4bpp.lz"); const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal.gbapal.lz"); const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back.4bpp.lz"); const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Porygon[] = INCBIN_U32("graphics/pokemon/porygon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon.4bpp"); +#else + const u8 gMonIcon_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Porygon[] = INCBIN_U8("graphics/pokemon/porygon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4088,11 +5853,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GEN_2_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front.4bpp.lz"); const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal.gbapal.lz"); const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back.4bpp.lz"); const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Porygon2[] = INCBIN_U32("graphics/pokemon/porygon2/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon.4bpp"); +#else + const u8 gMonIcon_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Porygon2[] = INCBIN_U8("graphics/pokemon/porygon2/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4125,11 +5901,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PORYGON #if P_FAMILY_OMANYTE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front.4bpp.lz"); const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal.gbapal.lz"); const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back.4bpp.lz"); const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Omanyte[] = INCBIN_U32("graphics/pokemon/omanyte/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon.4bpp"); +#else + const u8 gMonIcon_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Omanyte[] = INCBIN_U8("graphics/pokemon/omanyte/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4141,11 +5928,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front.4bpp.lz"); const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal.gbapal.lz"); const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back.4bpp.lz"); const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Omastar[] = INCBIN_U32("graphics/pokemon/omastar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon.4bpp"); +#else + const u8 gMonIcon_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Omastar[] = INCBIN_U8("graphics/pokemon/omastar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4159,11 +5957,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_OMANYTE #if P_FAMILY_KABUTO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front.4bpp.lz"); const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal.gbapal.lz"); const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back.4bpp.lz"); const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kabuto[] = INCBIN_U32("graphics/pokemon/kabuto/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon.4bpp"); +#else + const u8 gMonIcon_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kabuto[] = INCBIN_U8("graphics/pokemon/kabuto/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4175,11 +5984,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front.4bpp.lz"); const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal.gbapal.lz"); const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back.4bpp.lz"); const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kabutops[] = INCBIN_U32("graphics/pokemon/kabutops/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon.4bpp"); +#else + const u8 gMonIcon_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kabutops[] = INCBIN_U8("graphics/pokemon/kabutops/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4193,11 +6013,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_KABUTO #if P_FAMILY_AERODACTYL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front.4bpp.lz"); const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal.gbapal.lz"); const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back.4bpp.lz"); const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Aerodactyl[] = INCBIN_U32("graphics/pokemon/aerodactyl/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon.4bpp"); +#else + const u8 gMonIcon_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Aerodactyl[] = INCBIN_U8("graphics/pokemon/aerodactyl/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4244,11 +6075,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front.4bpp.lz"); const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal.gbapal.lz"); const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back.4bpp.lz"); const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Snorlax[] = INCBIN_U32("graphics/pokemon/snorlax/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon.4bpp"); +#else + const u8 gMonIcon_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Snorlax[] = INCBIN_U8("graphics/pokemon/snorlax/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4261,27 +6103,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_SnorlaxGigantamax[] = INCBIN_U8("graphics/pokemon/snorlax/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/front.4bpp.lz"); + const u32 gMonBackPic_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/back.4bpp.lz"); + const u32 gMonPalette_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_SnorlaxGmax[] = INCBIN_U8("graphics/pokemon/snorlax/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_SnorlaxGigantamax[] = INCBIN_COMP("graphics/pokemon/snorlax/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_SnorlaxGmax[] = INCBIN_COMP("graphics/pokemon/snorlax/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_SnorlaxGigantamax[] = INCBIN_U32("graphics/pokemon/snorlax/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_SnorlaxGmax[] = INCBIN_U32("graphics/pokemon/snorlax/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX #if P_FAMILY_ARTICUNO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front.4bpp.lz"); const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal.gbapal.lz"); const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back.4bpp.lz"); const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Articuno[] = INCBIN_U32("graphics/pokemon/articuno/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon.4bpp"); +#else + const u8 gMonIcon_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Articuno[] = INCBIN_U8("graphics/pokemon/articuno/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4294,27 +6147,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/front.4bpp.lz"); - const u32 gMonPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_ArticunoGalarian[] = INCBIN_U8("graphics/pokemon/articuno/galarian/icon.4bpp"); + const u32 gMonFrontPic_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/front.4bpp.lz"); + const u32 gMonPalette_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/normal.gbapal.lz"); + const u32 gMonBackPic_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/shiny.gbapal.lz"); + const u8 gMonIcon_ArticunoGalar[] = INCBIN_U8("graphics/pokemon/articuno/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ArticunoGalarian[] = INCBIN_COMP("graphics/pokemon/articuno/galarian/overworld.4bpp"); + const u32 gObjectEventPic_ArticunoGalar[] = INCBIN_COMP("graphics/pokemon/articuno/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ArticunoGalarian[] = INCBIN_U32("graphics/pokemon/articuno/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ArticunoGalar[] = INCBIN_U32("graphics/pokemon/articuno/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO #if P_FAMILY_ZAPDOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front.4bpp.lz"); const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal.gbapal.lz"); const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back.4bpp.lz"); const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Zapdos[] = INCBIN_U32("graphics/pokemon/zapdos/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon.4bpp"); +#else + const u8 gMonIcon_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Zapdos[] = INCBIN_U8("graphics/pokemon/zapdos/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4327,27 +6191,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/front.4bpp.lz"); - const u32 gMonPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_ZapdosGalarian[] = INCBIN_U8("graphics/pokemon/zapdos/galarian/icon.4bpp"); + const u32 gMonFrontPic_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/front.4bpp.lz"); + const u32 gMonPalette_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/normal.gbapal.lz"); + const u32 gMonBackPic_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/shiny.gbapal.lz"); + const u8 gMonIcon_ZapdosGalar[] = INCBIN_U8("graphics/pokemon/zapdos/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZapdosGalarian[] = INCBIN_COMP("graphics/pokemon/zapdos/galarian/overworld.4bpp"); + const u32 gObjectEventPic_ZapdosGalar[] = INCBIN_COMP("graphics/pokemon/zapdos/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZapdosGalarian[] = INCBIN_U32("graphics/pokemon/zapdos/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZapdosGalar[] = INCBIN_U32("graphics/pokemon/zapdos/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS #if P_FAMILY_MOLTRES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front.4bpp.lz"); const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal.gbapal.lz"); const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back.4bpp.lz"); const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Moltres[] = INCBIN_U32("graphics/pokemon/moltres/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon.4bpp"); +#else + const u8 gMonIcon_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Moltres[] = INCBIN_U8("graphics/pokemon/moltres/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4360,27 +6235,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/front.4bpp.lz"); - const u32 gMonPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_MoltresGalarian[] = INCBIN_U8("graphics/pokemon/moltres/galarian/icon.4bpp"); + const u32 gMonFrontPic_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/front.4bpp.lz"); + const u32 gMonPalette_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/normal.gbapal.lz"); + const u32 gMonBackPic_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/shiny.gbapal.lz"); + const u8 gMonIcon_MoltresGalar[] = INCBIN_U8("graphics/pokemon/moltres/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MoltresGalarian[] = INCBIN_COMP("graphics/pokemon/moltres/galarian/overworld.4bpp"); + const u32 gObjectEventPic_MoltresGalar[] = INCBIN_COMP("graphics/pokemon/moltres/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MoltresGalarian[] = INCBIN_U32("graphics/pokemon/moltres/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MoltresGalar[] = INCBIN_U32("graphics/pokemon/moltres/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES #if P_FAMILY_DRATINI +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front.4bpp.lz"); const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal.gbapal.lz"); const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back.4bpp.lz"); const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dratini[] = INCBIN_U32("graphics/pokemon/dratini/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon.4bpp"); +#else + const u8 gMonIcon_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dratini[] = INCBIN_U8("graphics/pokemon/dratini/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4392,11 +6278,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front.4bpp.lz"); const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal.gbapal.lz"); const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back.4bpp.lz"); const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dragonair[] = INCBIN_U32("graphics/pokemon/dragonair/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon.4bpp"); +#else + const u8 gMonIcon_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dragonair[] = INCBIN_U8("graphics/pokemon/dragonair/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4408,11 +6305,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front.4bpp.lz"); const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal.gbapal.lz"); const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back.4bpp.lz"); const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dragonite[] = INCBIN_U32("graphics/pokemon/dragonite/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon.4bpp"); +#else + const u8 gMonIcon_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dragonite[] = INCBIN_U8("graphics/pokemon/dragonite/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4426,11 +6334,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_DRATINI #if P_FAMILY_MEWTWO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front.4bpp.lz"); const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal.gbapal.lz"); const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back.4bpp.lz"); const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mewtwo[] = INCBIN_U32("graphics/pokemon/mewtwo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon.4bpp"); +#else + const u8 gMonIcon_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mewtwo[] = INCBIN_U8("graphics/pokemon/mewtwo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4472,11 +6391,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MEWTWO #if P_FAMILY_MEW +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front.4bpp.lz"); const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal.gbapal.lz"); const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back.4bpp.lz"); const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mew[] = INCBIN_U32("graphics/pokemon/mew/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mew[] = INCBIN_U32("graphics/pokemon/mew/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon.4bpp"); +#else + const u8 gMonIcon_Mew[] = INCBIN_U8("graphics/pokemon/mew/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mew[] = INCBIN_U8("graphics/pokemon/mew/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4490,11 +6420,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MEW #if P_FAMILY_CHIKORITA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front.4bpp.lz"); const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal.gbapal.lz"); const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back.4bpp.lz"); const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Chikorita[] = INCBIN_U32("graphics/pokemon/chikorita/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon.4bpp"); +#else + const u8 gMonIcon_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Chikorita[] = INCBIN_U8("graphics/pokemon/chikorita/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4506,11 +6447,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front.4bpp.lz"); const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal.gbapal.lz"); const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back.4bpp.lz"); const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Bayleef[] = INCBIN_U32("graphics/pokemon/bayleef/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon.4bpp"); +#else + const u8 gMonIcon_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Bayleef[] = INCBIN_U8("graphics/pokemon/bayleef/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4522,11 +6474,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front.4bpp.lz"); const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal.gbapal.lz"); const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back.4bpp.lz"); const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Meganium[] = INCBIN_U32("graphics/pokemon/meganium/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon.4bpp"); +#else + const u8 gMonIcon_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Meganium[] = INCBIN_U8("graphics/pokemon/meganium/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4538,19 +6501,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MeganiumF[] = INCBIN_U32("graphics/pokemon/meganium/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MeganiumF[] = INCBIN_COMP("graphics/pokemon/meganium/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CHIKORITA #if P_FAMILY_CYNDAQUIL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front.4bpp.lz"); const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal.gbapal.lz"); const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back.4bpp.lz"); const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cyndaquil[] = INCBIN_U32("graphics/pokemon/cyndaquil/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon.4bpp"); +#else + const u8 gMonIcon_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cyndaquil[] = INCBIN_U8("graphics/pokemon/cyndaquil/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4562,11 +6538,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front.4bpp.lz"); const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal.gbapal.lz"); const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back.4bpp.lz"); const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Quilava[] = INCBIN_U32("graphics/pokemon/quilava/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon.4bpp"); +#else + const u8 gMonIcon_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Quilava[] = INCBIN_U8("graphics/pokemon/quilava/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4578,11 +6565,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front.4bpp.lz"); const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal.gbapal.lz"); const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back.4bpp.lz"); const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Typhlosion[] = INCBIN_U32("graphics/pokemon/typhlosion/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon.4bpp"); +#else + const u8 gMonIcon_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Typhlosion[] = INCBIN_U8("graphics/pokemon/typhlosion/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4595,27 +6593,38 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/front.4bpp.lz"); - const u32 gMonPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_TyphlosionHisuian[] = INCBIN_U8("graphics/pokemon/typhlosion/hisuian/icon.4bpp"); + const u32 gMonFrontPic_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/front.4bpp.lz"); + const u32 gMonPalette_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_TyphlosionHisui[] = INCBIN_U8("graphics/pokemon/typhlosion/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_TyphlosionHisuian[] = INCBIN_COMP("graphics/pokemon/typhlosion/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_TyphlosionHisui[] = INCBIN_COMP("graphics/pokemon/typhlosion/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_TyphlosionHisuian[] = INCBIN_U32("graphics/pokemon/typhlosion/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_TyphlosionHisui[] = INCBIN_U32("graphics/pokemon/typhlosion/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL #if P_FAMILY_TOTODILE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front.4bpp.lz"); const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal.gbapal.lz"); const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back.4bpp.lz"); const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Totodile[] = INCBIN_U32("graphics/pokemon/totodile/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon.4bpp"); +#else + const u8 gMonIcon_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Totodile[] = INCBIN_U8("graphics/pokemon/totodile/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4627,11 +6636,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front.4bpp.lz"); const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal.gbapal.lz"); const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back.4bpp.lz"); const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Croconaw[] = INCBIN_U32("graphics/pokemon/croconaw/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon.4bpp"); +#else + const u8 gMonIcon_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Croconaw[] = INCBIN_U8("graphics/pokemon/croconaw/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4643,11 +6663,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front.4bpp.lz"); const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal.gbapal.lz"); const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back.4bpp.lz"); const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Feraligatr[] = INCBIN_U32("graphics/pokemon/feraligatr/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon.4bpp"); +#else + const u8 gMonIcon_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Feraligatr[] = INCBIN_U8("graphics/pokemon/feraligatr/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4661,11 +6692,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TOTODILE #if P_FAMILY_SENTRET +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front.4bpp.lz"); const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal.gbapal.lz"); const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back.4bpp.lz"); const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sentret[] = INCBIN_U32("graphics/pokemon/sentret/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon.4bpp"); +#else + const u8 gMonIcon_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sentret[] = INCBIN_U8("graphics/pokemon/sentret/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4677,11 +6719,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front.4bpp.lz"); const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal.gbapal.lz"); const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back.4bpp.lz"); const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Furret[] = INCBIN_U32("graphics/pokemon/furret/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Furret[] = INCBIN_U32("graphics/pokemon/furret/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon.4bpp"); +#else + const u8 gMonIcon_Furret[] = INCBIN_U8("graphics/pokemon/furret/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Furret[] = INCBIN_U8("graphics/pokemon/furret/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4695,11 +6748,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SENTRET #if P_FAMILY_HOOTHOOT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front.4bpp.lz"); const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal.gbapal.lz"); const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back.4bpp.lz"); const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hoothoot[] = INCBIN_U32("graphics/pokemon/hoothoot/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon.4bpp"); +#else + const u8 gMonIcon_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hoothoot[] = INCBIN_U8("graphics/pokemon/hoothoot/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4711,11 +6775,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front.4bpp.lz"); const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal.gbapal.lz"); const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back.4bpp.lz"); const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Noctowl[] = INCBIN_U32("graphics/pokemon/noctowl/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon.4bpp"); +#else + const u8 gMonIcon_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Noctowl[] = INCBIN_U8("graphics/pokemon/noctowl/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4729,11 +6804,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HOOTHOOT #if P_FAMILY_LEDYBA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front.4bpp.lz"); const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal.gbapal.lz"); const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back.4bpp.lz"); const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ledyba[] = INCBIN_U32("graphics/pokemon/ledyba/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon.4bpp"); +#else + const u8 gMonIcon_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ledyba[] = INCBIN_U8("graphics/pokemon/ledyba/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4745,17 +6831,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LedybaF[] = INCBIN_U32("graphics/pokemon/ledyba/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LedybaF[] = INCBIN_COMP("graphics/pokemon/ledyba/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front.4bpp.lz"); const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal.gbapal.lz"); const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back.4bpp.lz"); const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ledian[] = INCBIN_U32("graphics/pokemon/ledian/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon.4bpp"); +#else + const u8 gMonIcon_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ledian[] = INCBIN_U8("graphics/pokemon/ledian/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4767,19 +6866,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LedianF[] = INCBIN_U32("graphics/pokemon/ledian/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LedianF[] = INCBIN_COMP("graphics/pokemon/ledian/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LEDYBA #if P_FAMILY_SPINARAK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front.4bpp.lz"); const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal.gbapal.lz"); const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back.4bpp.lz"); const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Spinarak[] = INCBIN_U32("graphics/pokemon/spinarak/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon.4bpp"); +#else + const u8 gMonIcon_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Spinarak[] = INCBIN_U8("graphics/pokemon/spinarak/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4791,11 +6903,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front.4bpp.lz"); const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal.gbapal.lz"); const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back.4bpp.lz"); const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ariados[] = INCBIN_U32("graphics/pokemon/ariados/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon.4bpp"); +#else + const u8 gMonIcon_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ariados[] = INCBIN_U8("graphics/pokemon/ariados/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4809,11 +6932,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SPINARAK #if P_FAMILY_CHINCHOU +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front.4bpp.lz"); const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal.gbapal.lz"); const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back.4bpp.lz"); const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Chinchou[] = INCBIN_U32("graphics/pokemon/chinchou/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon.4bpp"); +#else + const u8 gMonIcon_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Chinchou[] = INCBIN_U8("graphics/pokemon/chinchou/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4825,11 +6959,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front.4bpp.lz"); const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal.gbapal.lz"); const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back.4bpp.lz"); const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lanturn[] = INCBIN_U32("graphics/pokemon/lanturn/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon.4bpp"); +#else + const u8 gMonIcon_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lanturn[] = INCBIN_U8("graphics/pokemon/lanturn/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4843,11 +6988,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CHINCHOU #if P_FAMILY_TOGEPI +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front.4bpp.lz"); const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal.gbapal.lz"); const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back.4bpp.lz"); const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Togepi[] = INCBIN_U32("graphics/pokemon/togepi/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon.4bpp"); +#else + const u8 gMonIcon_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Togepi[] = INCBIN_U8("graphics/pokemon/togepi/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4859,11 +7015,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front.4bpp.lz"); const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal.gbapal.lz"); const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back.4bpp.lz"); const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Togetic[] = INCBIN_U32("graphics/pokemon/togetic/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon.4bpp"); +#else + const u8 gMonIcon_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Togetic[] = INCBIN_U8("graphics/pokemon/togetic/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4895,11 +7062,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TOGEPI #if P_FAMILY_NATU +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front.4bpp.lz"); const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal.gbapal.lz"); const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back.4bpp.lz"); const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Natu[] = INCBIN_U32("graphics/pokemon/natu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Natu[] = INCBIN_U32("graphics/pokemon/natu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon.4bpp"); +#else + const u8 gMonIcon_Natu[] = INCBIN_U8("graphics/pokemon/natu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Natu[] = INCBIN_U8("graphics/pokemon/natu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4911,11 +7089,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front.4bpp.lz"); const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal.gbapal.lz"); const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back.4bpp.lz"); const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Xatu[] = INCBIN_U32("graphics/pokemon/xatu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon.4bpp"); +#else + const u8 gMonIcon_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Xatu[] = INCBIN_U8("graphics/pokemon/xatu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4927,18 +7116,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_XatuF[] = INCBIN_U32("graphics/pokemon/xatu/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_XatuF[] = INCBIN_COMP("graphics/pokemon/xatu/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_NATU #if P_FAMILY_MAREEP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front.4bpp.lz"); const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal.gbapal.lz"); const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back.4bpp.lz"); const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mareep[] = INCBIN_U32("graphics/pokemon/mareep/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon.4bpp"); +#else + const u8 gMonIcon_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mareep[] = INCBIN_U8("graphics/pokemon/mareep/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4950,11 +7152,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front.4bpp.lz"); const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal.gbapal.lz"); const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back.4bpp.lz"); const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Flaaffy[] = INCBIN_U32("graphics/pokemon/flaaffy/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon.4bpp"); +#else + const u8 gMonIcon_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Flaaffy[] = INCBIN_U8("graphics/pokemon/flaaffy/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -4966,11 +7179,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front.4bpp.lz"); const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal.gbapal.lz"); const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back.4bpp.lz"); const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ampharos[] = INCBIN_U32("graphics/pokemon/ampharos/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon.4bpp"); +#else + const u8 gMonIcon_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ampharos[] = INCBIN_U8("graphics/pokemon/ampharos/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5000,11 +7224,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_MARILL #if P_GEN_3_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front.4bpp.lz"); const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal.gbapal.lz"); const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back.4bpp.lz"); const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Azurill[] = INCBIN_U32("graphics/pokemon/azurill/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon.4bpp"); +#else + const u8 gMonIcon_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Azurill[] = INCBIN_U8("graphics/pokemon/azurill/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5017,11 +7252,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_3_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front.4bpp.lz"); const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal.gbapal.lz"); const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back.4bpp.lz"); const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Marill[] = INCBIN_U32("graphics/pokemon/marill/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Marill[] = INCBIN_U32("graphics/pokemon/marill/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon.4bpp"); +#else + const u8 gMonIcon_Marill[] = INCBIN_U8("graphics/pokemon/marill/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Marill[] = INCBIN_U8("graphics/pokemon/marill/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5033,11 +7279,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front.4bpp.lz"); const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal.gbapal.lz"); const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back.4bpp.lz"); const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Azumarill[] = INCBIN_U32("graphics/pokemon/azumarill/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon.4bpp"); +#else + const u8 gMonIcon_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Azumarill[] = INCBIN_U8("graphics/pokemon/azumarill/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5069,11 +7326,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front.4bpp.lz"); const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal.gbapal.lz"); const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back.4bpp.lz"); const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sudowoodo[] = INCBIN_U32("graphics/pokemon/sudowoodo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon.4bpp"); +#else + const u8 gMonIcon_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sudowoodo[] = INCBIN_U8("graphics/pokemon/sudowoodo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5085,19 +7353,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SudowoodoF[] = INCBIN_U32("graphics/pokemon/sudowoodo/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SudowoodoF[] = INCBIN_COMP("graphics/pokemon/sudowoodo/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SUDOWOODO #if P_FAMILY_HOPPIP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front.4bpp.lz"); const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal.gbapal.lz"); const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back.4bpp.lz"); const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hoppip[] = INCBIN_U32("graphics/pokemon/hoppip/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon.4bpp"); +#else + const u8 gMonIcon_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hoppip[] = INCBIN_U8("graphics/pokemon/hoppip/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5109,11 +7390,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front.4bpp.lz"); const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal.gbapal.lz"); const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back.4bpp.lz"); const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Skiploom[] = INCBIN_U32("graphics/pokemon/skiploom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon.4bpp"); +#else + const u8 gMonIcon_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Skiploom[] = INCBIN_U8("graphics/pokemon/skiploom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5125,11 +7417,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front.4bpp.lz"); const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal.gbapal.lz"); const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back.4bpp.lz"); const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Jumpluff[] = INCBIN_U32("graphics/pokemon/jumpluff/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon.4bpp"); +#else + const u8 gMonIcon_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Jumpluff[] = INCBIN_U8("graphics/pokemon/jumpluff/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5143,11 +7446,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HOPPIP #if P_FAMILY_AIPOM +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front.4bpp.lz"); const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal.gbapal.lz"); const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back.4bpp.lz"); const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Aipom[] = INCBIN_U32("graphics/pokemon/aipom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon.4bpp"); +#else + const u8 gMonIcon_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Aipom[] = INCBIN_U8("graphics/pokemon/aipom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5159,11 +7473,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AipomF[] = INCBIN_U32("graphics/pokemon/aipom/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_AipomF[] = INCBIN_COMP("graphics/pokemon/aipom/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Ambipom[] = INCBIN_U32("graphics/pokemon/ambipom/anim_front.4bpp.lz"); @@ -5182,20 +7498,33 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_AmbipomF[] = INCBIN_U32("graphics/pokemon/ambipom/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_AmbipomF[] = INCBIN_COMP("graphics/pokemon/ambipom/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_AIPOM #if P_FAMILY_SUNKERN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front.4bpp.lz"); const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal.gbapal.lz"); const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back.4bpp.lz"); const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sunkern[] = INCBIN_U32("graphics/pokemon/sunkern/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon.4bpp"); +#else + const u8 gMonIcon_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sunkern[] = INCBIN_U8("graphics/pokemon/sunkern/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5207,11 +7536,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front.4bpp.lz"); const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal.gbapal.lz"); const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back.4bpp.lz"); const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sunflora[] = INCBIN_U32("graphics/pokemon/sunflora/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon.4bpp"); +#else + const u8 gMonIcon_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sunflora[] = INCBIN_U8("graphics/pokemon/sunflora/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5225,11 +7565,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SUNKERN #if P_FAMILY_YANMA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front.4bpp.lz"); const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal.gbapal.lz"); const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back.4bpp.lz"); const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Yanma[] = INCBIN_U32("graphics/pokemon/yanma/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon.4bpp"); +#else + const u8 gMonIcon_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Yanma[] = INCBIN_U8("graphics/pokemon/yanma/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5261,11 +7612,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_YANMA #if P_FAMILY_WOOPER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front.4bpp.lz"); const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal.gbapal.lz"); const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back.4bpp.lz"); const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wooper[] = INCBIN_U32("graphics/pokemon/wooper/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon.4bpp"); +#else + const u8 gMonIcon_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wooper[] = INCBIN_U8("graphics/pokemon/wooper/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5277,17 +7639,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WooperF[] = INCBIN_U32("graphics/pokemon/wooper/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_WooperF[] = INCBIN_COMP("graphics/pokemon/wooper/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front.4bpp.lz"); const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal.gbapal.lz"); const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back.4bpp.lz"); const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Quagsire[] = INCBIN_U32("graphics/pokemon/quagsire/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon.4bpp"); +#else + const u8 gMonIcon_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Quagsire[] = INCBIN_U8("graphics/pokemon/quagsire/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5299,23 +7674,25 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/anim_frontf.4bpp.lz"); const u32 gMonBackPic_QuagsireF[] = INCBIN_U32("graphics/pokemon/quagsire/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_QuagsireF[] = INCBIN_COMP("graphics/pokemon/quagsire/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_PALDEAN_FORMS - const u32 gMonFrontPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/front.4bpp.lz"); - const u32 gMonPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/normal.gbapal.lz"); - const u32 gMonBackPic_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/back.4bpp.lz"); - const u32 gMonShinyPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/shiny.gbapal.lz"); - const u8 gMonIcon_WooperPaldean[] = INCBIN_U8("graphics/pokemon/wooper/wooper_paldean/icon.4bpp"); + const u32 gMonFrontPic_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/front.4bpp.lz"); + const u32 gMonPalette_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/normal.gbapal.lz"); + const u32 gMonBackPic_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/back.4bpp.lz"); + const u32 gMonShinyPalette_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/shiny.gbapal.lz"); + const u8 gMonIcon_WooperPaldea[] = INCBIN_U8("graphics/pokemon/wooper/paldea/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_WooperPaldean[] = INCBIN_COMP("graphics/pokemon/wooper/wooper_paldean/overworld.4bpp"); + const u32 gObjectEventPic_WooperPaldea[] = INCBIN_COMP("graphics/pokemon/wooper/paldea/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_WooperPaldean[] = INCBIN_U32("graphics/pokemon/wooper/wooper_paldean/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_WooperPaldea[] = INCBIN_U32("graphics/pokemon/wooper/paldea/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -5338,11 +7715,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_WOOPER #if P_FAMILY_MURKROW +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front.4bpp.lz"); const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal.gbapal.lz"); const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back.4bpp.lz"); const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Murkrow[] = INCBIN_U32("graphics/pokemon/murkrow/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon.4bpp"); +#else + const u8 gMonIcon_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Murkrow[] = INCBIN_U8("graphics/pokemon/murkrow/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5354,11 +7742,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MurkrowF[] = INCBIN_U32("graphics/pokemon/murkrow/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MurkrowF[] = INCBIN_COMP("graphics/pokemon/murkrow/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Honchkrow[] = INCBIN_U32("graphics/pokemon/honchkrow/anim_front.4bpp.lz"); @@ -5380,11 +7770,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MURKROW #if P_FAMILY_MISDREAVUS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front.4bpp.lz"); const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal.gbapal.lz"); const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back.4bpp.lz"); const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Misdreavus[] = INCBIN_U32("graphics/pokemon/misdreavus/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon.4bpp"); +#else + const u8 gMonIcon_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Misdreavus[] = INCBIN_U8("graphics/pokemon/misdreavus/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5526,13 +7927,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gMonBackPic_UnownZ[] = INCBIN_U32("graphics/pokemon/unown/z/back.4bpp.lz"); const u8 gMonIcon_UnownZ[] = INCBIN_U8("graphics/pokemon/unown/z/icon.4bpp"); - const u32 gMonFrontPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/front.4bpp.lz"); - const u32 gMonBackPic_UnownExclamationMark[] = INCBIN_U32("graphics/pokemon/unown/exclamation_mark/back.4bpp.lz"); - const u8 gMonIcon_UnownExclamationMark[] = INCBIN_U8("graphics/pokemon/unown/exclamation_mark/icon.4bpp"); + const u32 gMonFrontPic_UnownExclamation[] = INCBIN_U32("graphics/pokemon/unown/exclamation/front.4bpp.lz"); + const u32 gMonBackPic_UnownExclamation[] = INCBIN_U32("graphics/pokemon/unown/exclamation/back.4bpp.lz"); + const u8 gMonIcon_UnownExclamation[] = INCBIN_U8("graphics/pokemon/unown/exclamation/icon.4bpp"); - const u32 gMonFrontPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/front.4bpp.lz"); - const u32 gMonBackPic_UnownQuestionMark[] = INCBIN_U32("graphics/pokemon/unown/question_mark/back.4bpp.lz"); - const u8 gMonIcon_UnownQuestionMark[] = INCBIN_U8("graphics/pokemon/unown/question_mark/icon.4bpp"); + const u32 gMonFrontPic_UnownQuestion[] = INCBIN_U32("graphics/pokemon/unown/question/front.4bpp.lz"); + const u32 gMonBackPic_UnownQuestion[] = INCBIN_U32("graphics/pokemon/unown/question/back.4bpp.lz"); + const u8 gMonIcon_UnownQuestion[] = INCBIN_U8("graphics/pokemon/unown/question/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_UnownA[] = INCBIN_COMP("graphics/pokemon/unown/overworld.4bpp"); @@ -5561,8 +7962,8 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gObjectEventPic_UnownX[] = INCBIN_COMP("graphics/pokemon/unown/x/overworld.4bpp"); const u32 gObjectEventPic_UnownY[] = INCBIN_COMP("graphics/pokemon/unown/y/overworld.4bpp"); const u32 gObjectEventPic_UnownZ[] = INCBIN_COMP("graphics/pokemon/unown/z/overworld.4bpp"); - const u32 gObjectEventPic_UnownExclamationMark[] = INCBIN_COMP("graphics/pokemon/unown/exclamation_mark/overworld.4bpp"); - const u32 gObjectEventPic_UnownQuestionMark[] = INCBIN_COMP("graphics/pokemon/unown/question_mark/overworld.4bpp"); + const u32 gObjectEventPic_UnownExclamation[] = INCBIN_COMP("graphics/pokemon/unown/exclamation/overworld.4bpp"); + const u32 gObjectEventPic_UnownQuestion[] = INCBIN_COMP("graphics/pokemon/unown/question/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE const u32 gOverworldPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/overworld_normal.gbapal.lz"); const u32 gShinyOverworldPalette_Unown[] = INCBIN_U32("graphics/pokemon/unown/overworld_shiny.gbapal.lz"); @@ -5572,11 +7973,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if P_FAMILY_WOBBUFFET #if P_GEN_3_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front.4bpp.lz"); const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal.gbapal.lz"); const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back.4bpp.lz"); const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wynaut[] = INCBIN_U32("graphics/pokemon/wynaut/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon.4bpp"); +#else + const u8 gMonIcon_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wynaut[] = INCBIN_U8("graphics/pokemon/wynaut/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5589,11 +8001,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_3_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front.4bpp.lz"); const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal.gbapal.lz"); const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back.4bpp.lz"); const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wobbuffet[] = INCBIN_U32("graphics/pokemon/wobbuffet/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon.4bpp"); +#else + const u8 gMonIcon_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wobbuffet[] = INCBIN_U8("graphics/pokemon/wobbuffet/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5605,6 +8028,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WobbuffetF[] = INCBIN_U32("graphics/pokemon/wobbuffet/backf.4bpp.lz"); #if P_CUSTOM_GENDER_DIFF_ICONS @@ -5613,14 +8037,26 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_WobbuffetF[] = INCBIN_COMP("graphics/pokemon/wobbuffet/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_WOBBUFFET #if P_FAMILY_GIRAFARIG +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front.4bpp.lz"); const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal.gbapal.lz"); const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back.4bpp.lz"); const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Girafarig[] = INCBIN_U32("graphics/pokemon/girafarig/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon.4bpp"); +#else + const u8 gMonIcon_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Girafarig[] = INCBIN_U8("graphics/pokemon/girafarig/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5632,11 +8068,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GirafarigF[] = INCBIN_U32("graphics/pokemon/girafarig/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GirafarigF[] = INCBIN_COMP("graphics/pokemon/girafarig/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_9_CROSS_EVOS const u32 gMonFrontPic_Farigiraf[] = INCBIN_U32("graphics/pokemon/farigiraf/front.4bpp.lz"); @@ -5658,11 +8096,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_GIRAFARIG #if P_FAMILY_PINECO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front.4bpp.lz"); const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal.gbapal.lz"); const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back.4bpp.lz"); const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pineco[] = INCBIN_U32("graphics/pokemon/pineco/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon.4bpp"); +#else + const u8 gMonIcon_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pineco[] = INCBIN_U8("graphics/pokemon/pineco/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5674,11 +8123,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front.4bpp.lz"); const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal.gbapal.lz"); const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back.4bpp.lz"); const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Forretress[] = INCBIN_U32("graphics/pokemon/forretress/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon.4bpp"); +#else + const u8 gMonIcon_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Forretress[] = INCBIN_U8("graphics/pokemon/forretress/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5692,11 +8152,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PINECO #if P_FAMILY_DUNSPARCE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front.4bpp.lz"); const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal.gbapal.lz"); const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back.4bpp.lz"); const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dunsparce[] = INCBIN_U32("graphics/pokemon/dunsparce/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon.4bpp"); +#else + const u8 gMonIcon_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dunsparce[] = INCBIN_U8("graphics/pokemon/dunsparce/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5735,11 +8206,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_DUNSPARCE #if P_FAMILY_GLIGAR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front.4bpp.lz"); const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal.gbapal.lz"); const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back.4bpp.lz"); const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gligar[] = INCBIN_U32("graphics/pokemon/gligar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon.4bpp"); +#else + const u8 gMonIcon_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gligar[] = INCBIN_U8("graphics/pokemon/gligar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5751,11 +8233,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GligarF[] = INCBIN_U32("graphics/pokemon/gligar/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GligarF[] = INCBIN_COMP("graphics/pokemon/gligar/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Gliscor[] = INCBIN_U32("graphics/pokemon/gliscor/anim_front.4bpp.lz"); @@ -5777,11 +8261,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_GLIGAR #if P_FAMILY_SNUBBULL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front.4bpp.lz"); const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal.gbapal.lz"); const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back.4bpp.lz"); const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Snubbull[] = INCBIN_U32("graphics/pokemon/snubbull/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon.4bpp"); +#else + const u8 gMonIcon_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Snubbull[] = INCBIN_U8("graphics/pokemon/snubbull/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5793,11 +8288,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front.4bpp.lz"); const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal.gbapal.lz"); const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back.4bpp.lz"); const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Granbull[] = INCBIN_U32("graphics/pokemon/granbull/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon.4bpp"); +#else + const u8 gMonIcon_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Granbull[] = INCBIN_U8("graphics/pokemon/granbull/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5811,11 +8317,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SNUBBULL #if P_FAMILY_QWILFISH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front.4bpp.lz"); const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal.gbapal.lz"); const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back.4bpp.lz"); const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Qwilfish[] = INCBIN_U32("graphics/pokemon/qwilfish/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon.4bpp"); +#else + const u8 gMonIcon_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Qwilfish[] = INCBIN_U8("graphics/pokemon/qwilfish/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5828,16 +8345,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/front.4bpp.lz"); - const u32 gMonPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_QwilfishHisuian[] = INCBIN_U8("graphics/pokemon/qwilfish/hisuian/icon.4bpp"); + const u32 gMonFrontPic_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/front.4bpp.lz"); + const u32 gMonPalette_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_QwilfishHisui[] = INCBIN_U8("graphics/pokemon/qwilfish/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_QwilfishHisuian[] = INCBIN_COMP("graphics/pokemon/qwilfish/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_QwilfishHisui[] = INCBIN_COMP("graphics/pokemon/qwilfish/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_QwilfishHisuian[] = INCBIN_U32("graphics/pokemon/qwilfish/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_QwilfishHisui[] = INCBIN_U32("graphics/pokemon/qwilfish/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -5860,11 +8377,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_QWILFISH #if P_FAMILY_SHUCKLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front.4bpp.lz"); const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal.gbapal.lz"); const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back.4bpp.lz"); const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shuckle[] = INCBIN_U32("graphics/pokemon/shuckle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon.4bpp"); +#else + const u8 gMonIcon_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shuckle[] = INCBIN_U8("graphics/pokemon/shuckle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5878,11 +8406,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SHUCKLE #if P_FAMILY_HERACROSS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front.4bpp.lz"); const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal.gbapal.lz"); const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back.4bpp.lz"); const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Heracross[] = INCBIN_U32("graphics/pokemon/heracross/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon.4bpp"); +#else + const u8 gMonIcon_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Heracross[] = INCBIN_U8("graphics/pokemon/heracross/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5894,11 +8433,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HeracrossF[] = INCBIN_U32("graphics/pokemon/heracross/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_HeracrossF[] = INCBIN_COMP("graphics/pokemon/heracross/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_HeracrossMega[] = INCBIN_U32("graphics/pokemon/heracross/mega/front.4bpp.lz"); @@ -5917,11 +8458,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HERACROSS #if P_FAMILY_SNEASEL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front.4bpp.lz"); const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal.gbapal.lz"); const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back.4bpp.lz"); const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sneasel[] = INCBIN_U32("graphics/pokemon/sneasel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon.4bpp"); +#else + const u8 gMonIcon_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sneasel[] = INCBIN_U8("graphics/pokemon/sneasel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -5933,11 +8485,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SneaselF[] = INCBIN_U32("graphics/pokemon/sneasel/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SneaselF[] = INCBIN_COMP("graphics/pokemon/sneasel/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Weavile[] = INCBIN_U32("graphics/pokemon/weavile/anim_front.4bpp.lz"); @@ -5956,32 +8510,36 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/anim_frontf.4bpp.lz"); const u32 gMonBackPic_WeavileF[] = INCBIN_U32("graphics/pokemon/weavile/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_WeavileF[] = INCBIN_COMP("graphics/pokemon/weavile/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/front.4bpp.lz"); - const u32 gMonPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_SneaselHisuian[] = INCBIN_U8("graphics/pokemon/sneasel/hisuian/icon.4bpp"); + const u32 gMonFrontPic_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/front.4bpp.lz"); + const u32 gMonPalette_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_SneaselHisui[] = INCBIN_U8("graphics/pokemon/sneasel/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SneaselHisuian[] = INCBIN_COMP("graphics/pokemon/sneasel/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_SneaselHisui[] = INCBIN_COMP("graphics/pokemon/sneasel/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SneaselHisuian[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SneaselHisui[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/frontf.4bpp.lz"); - const u32 gMonBackPic_SneaselHisuianF[] = INCBIN_U32("graphics/pokemon/sneasel/hisuian/backf.4bpp.lz"); +#if P_GENDER_DIFFERENCES + const u32 gMonFrontPic_SneaselHisuiF[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/frontf.4bpp.lz"); + const u32 gMonBackPic_SneaselHisuiF[] = INCBIN_U32("graphics/pokemon/sneasel/hisui/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SneaselHisuianF[] = INCBIN_COMP("graphics/pokemon/sneasel/hisuian/overworldf.4bpp"); + const u32 gObjectEventPic_SneaselHisuiF[] = INCBIN_COMP("graphics/pokemon/sneasel/hisui/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/front.4bpp.lz"); const u32 gMonPalette_Sneasler[] = INCBIN_U32("graphics/pokemon/sneasler/normal.gbapal.lz"); @@ -6002,11 +8560,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SNEASEL #if P_FAMILY_TEDDIURSA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front.4bpp.lz"); const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal.gbapal.lz"); const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back.4bpp.lz"); const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Teddiursa[] = INCBIN_U32("graphics/pokemon/teddiursa/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon.4bpp"); +#else + const u8 gMonIcon_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Teddiursa[] = INCBIN_U8("graphics/pokemon/teddiursa/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6018,11 +8587,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front.4bpp.lz"); const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal.gbapal.lz"); const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back.4bpp.lz"); const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ursaring[] = INCBIN_U32("graphics/pokemon/ursaring/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon.4bpp"); +#else + const u8 gMonIcon_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ursaring[] = INCBIN_U8("graphics/pokemon/ursaring/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6034,11 +8614,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/anim_frontf.4bpp.lz"); const u32 gMonBackPic_UrsaringF[] = INCBIN_U32("graphics/pokemon/ursaring/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_UrsaringF[] = INCBIN_COMP("graphics/pokemon/ursaring/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_8_CROSS_EVOS const u32 gMonFrontPic_Ursaluna[] = INCBIN_U32("graphics/pokemon/ursaluna/front.4bpp.lz"); @@ -6073,11 +8655,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TEDDIURSA #if P_FAMILY_SLUGMA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front.4bpp.lz"); const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal.gbapal.lz"); const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back.4bpp.lz"); const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slugma[] = INCBIN_U32("graphics/pokemon/slugma/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon.4bpp"); +#else + const u8 gMonIcon_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slugma[] = INCBIN_U8("graphics/pokemon/slugma/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6089,11 +8682,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front.4bpp.lz"); const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal.gbapal.lz"); const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back.4bpp.lz"); const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Magcargo[] = INCBIN_U32("graphics/pokemon/magcargo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon.4bpp"); +#else + const u8 gMonIcon_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Magcargo[] = INCBIN_U8("graphics/pokemon/magcargo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6107,11 +8711,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SLUGMA #if P_FAMILY_SWINUB +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front.4bpp.lz"); const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal.gbapal.lz"); const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back.4bpp.lz"); const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Swinub[] = INCBIN_U32("graphics/pokemon/swinub/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon.4bpp"); +#else + const u8 gMonIcon_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Swinub[] = INCBIN_U8("graphics/pokemon/swinub/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6123,11 +8738,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front.4bpp.lz"); const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal.gbapal.lz"); const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back.4bpp.lz"); const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Piloswine[] = INCBIN_U32("graphics/pokemon/piloswine/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon.4bpp"); +#else + const u8 gMonIcon_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Piloswine[] = INCBIN_U8("graphics/pokemon/piloswine/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6139,11 +8765,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PiloswineF[] = INCBIN_U32("graphics/pokemon/piloswine/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_PiloswineF[] = INCBIN_COMP("graphics/pokemon/piloswine/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Mamoswine[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_front.4bpp.lz"); @@ -6162,19 +8790,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MamoswineF[] = INCBIN_U32("graphics/pokemon/mamoswine/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MamoswineF[] = INCBIN_COMP("graphics/pokemon/mamoswine/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SWINUB #if P_FAMILY_CORSOLA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front.4bpp.lz"); const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal.gbapal.lz"); const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back.4bpp.lz"); const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Corsola[] = INCBIN_U32("graphics/pokemon/corsola/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon.4bpp"); +#else + const u8 gMonIcon_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Corsola[] = INCBIN_U8("graphics/pokemon/corsola/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6187,16 +8828,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/front.4bpp.lz"); - const u32 gMonPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_CorsolaGalarian[] = INCBIN_U8("graphics/pokemon/corsola/galarian/icon.4bpp"); + const u32 gMonFrontPic_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/front.4bpp.lz"); + const u32 gMonPalette_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/normal.gbapal.lz"); + const u32 gMonBackPic_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/shiny.gbapal.lz"); + const u8 gMonIcon_CorsolaGalar[] = INCBIN_U8("graphics/pokemon/corsola/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_CorsolaGalarian[] = INCBIN_COMP("graphics/pokemon/corsola/galarian/overworld.4bpp"); + const u32 gObjectEventPic_CorsolaGalar[] = INCBIN_COMP("graphics/pokemon/corsola/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_CorsolaGalarian[] = INCBIN_U32("graphics/pokemon/corsola/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_CorsolaGalar[] = INCBIN_U32("graphics/pokemon/corsola/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -6219,11 +8860,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CORSOLA #if P_FAMILY_REMORAID +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front.4bpp.lz"); const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal.gbapal.lz"); const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back.4bpp.lz"); const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Remoraid[] = INCBIN_U32("graphics/pokemon/remoraid/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon.4bpp"); +#else + const u8 gMonIcon_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Remoraid[] = INCBIN_U8("graphics/pokemon/remoraid/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6235,11 +8887,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front.4bpp.lz"); const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal.gbapal.lz"); const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back.4bpp.lz"); const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Octillery[] = INCBIN_U32("graphics/pokemon/octillery/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon.4bpp"); +#else + const u8 gMonIcon_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Octillery[] = INCBIN_U8("graphics/pokemon/octillery/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6251,19 +8914,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/anim_frontf.4bpp.lz"); const u32 gMonBackPic_OctilleryF[] = INCBIN_U32("graphics/pokemon/octillery/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_OctilleryF[] = INCBIN_COMP("graphics/pokemon/octillery/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_REMORAID #if P_FAMILY_DELIBIRD +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front.4bpp.lz"); const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal.gbapal.lz"); const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back.4bpp.lz"); const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Delibird[] = INCBIN_U32("graphics/pokemon/delibird/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon.4bpp"); +#else + const u8 gMonIcon_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Delibird[] = INCBIN_U8("graphics/pokemon/delibird/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6295,11 +8971,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front.4bpp.lz"); const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal.gbapal.lz"); const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back.4bpp.lz"); const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mantine[] = INCBIN_U32("graphics/pokemon/mantine/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon.4bpp"); +#else + const u8 gMonIcon_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mantine[] = INCBIN_U8("graphics/pokemon/mantine/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6313,11 +9000,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MANTINE #if P_FAMILY_SKARMORY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front.4bpp.lz"); const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal.gbapal.lz"); const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back.4bpp.lz"); const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Skarmory[] = INCBIN_U32("graphics/pokemon/skarmory/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon.4bpp"); +#else + const u8 gMonIcon_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Skarmory[] = INCBIN_U8("graphics/pokemon/skarmory/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6331,11 +9029,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SKARMORY #if P_FAMILY_HOUNDOUR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front.4bpp.lz"); const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal.gbapal.lz"); const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back.4bpp.lz"); const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Houndour[] = INCBIN_U32("graphics/pokemon/houndour/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon.4bpp"); +#else + const u8 gMonIcon_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Houndour[] = INCBIN_U8("graphics/pokemon/houndour/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6347,11 +9056,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front.4bpp.lz"); const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal.gbapal.lz"); const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back.4bpp.lz"); const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Houndoom[] = INCBIN_U32("graphics/pokemon/houndoom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon.4bpp"); +#else + const u8 gMonIcon_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Houndoom[] = INCBIN_U8("graphics/pokemon/houndoom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6363,11 +9083,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/anim_frontf.4bpp.lz"); const u32 gMonBackPic_HoundoomF[] = INCBIN_U32("graphics/pokemon/houndoom/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_HoundoomF[] = INCBIN_COMP("graphics/pokemon/houndoom/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_HoundoomMega[] = INCBIN_U32("graphics/pokemon/houndoom/mega/front.4bpp.lz"); @@ -6386,11 +9108,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HOUNDOUR #if P_FAMILY_PHANPY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front.4bpp.lz"); const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal.gbapal.lz"); const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back.4bpp.lz"); const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Phanpy[] = INCBIN_U32("graphics/pokemon/phanpy/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon.4bpp"); +#else + const u8 gMonIcon_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Phanpy[] = INCBIN_U8("graphics/pokemon/phanpy/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6402,11 +9135,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front.4bpp.lz"); const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal.gbapal.lz"); const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back.4bpp.lz"); const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Donphan[] = INCBIN_U32("graphics/pokemon/donphan/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon.4bpp"); +#else + const u8 gMonIcon_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Donphan[] = INCBIN_U8("graphics/pokemon/donphan/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6418,19 +9162,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DonphanF[] = INCBIN_U32("graphics/pokemon/donphan/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_DonphanF[] = INCBIN_COMP("graphics/pokemon/donphan/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PHANPY #if P_FAMILY_STANTLER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front.4bpp.lz"); const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal.gbapal.lz"); const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back.4bpp.lz"); const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Stantler[] = INCBIN_U32("graphics/pokemon/stantler/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon.4bpp"); +#else + const u8 gMonIcon_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Stantler[] = INCBIN_U8("graphics/pokemon/stantler/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6462,11 +9219,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_STANTLER #if P_FAMILY_SMEARGLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front.4bpp.lz"); const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal.gbapal.lz"); const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back.4bpp.lz"); const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Smeargle[] = INCBIN_U32("graphics/pokemon/smeargle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon.4bpp"); +#else + const u8 gMonIcon_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Smeargle[] = INCBIN_U8("graphics/pokemon/smeargle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6480,11 +9248,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SMEARGLE #if P_FAMILY_MILTANK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front.4bpp.lz"); const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal.gbapal.lz"); const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back.4bpp.lz"); const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Miltank[] = INCBIN_U32("graphics/pokemon/miltank/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon.4bpp"); +#else + const u8 gMonIcon_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Miltank[] = INCBIN_U8("graphics/pokemon/miltank/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6498,11 +9277,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MILTANK #if P_FAMILY_RAIKOU +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front.4bpp.lz"); const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal.gbapal.lz"); const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back.4bpp.lz"); const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Raikou[] = INCBIN_U32("graphics/pokemon/raikou/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon.4bpp"); +#else + const u8 gMonIcon_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Raikou[] = INCBIN_U8("graphics/pokemon/raikou/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6516,11 +9306,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_RAIKOU #if P_FAMILY_ENTEI +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front.4bpp.lz"); const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal.gbapal.lz"); const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back.4bpp.lz"); const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Entei[] = INCBIN_U32("graphics/pokemon/entei/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Entei[] = INCBIN_U32("graphics/pokemon/entei/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon.4bpp"); +#else + const u8 gMonIcon_Entei[] = INCBIN_U8("graphics/pokemon/entei/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Entei[] = INCBIN_U8("graphics/pokemon/entei/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6534,11 +9335,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ENTEI #if P_FAMILY_SUICUNE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front.4bpp.lz"); const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal.gbapal.lz"); const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back.4bpp.lz"); const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Suicune[] = INCBIN_U32("graphics/pokemon/suicune/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon.4bpp"); +#else + const u8 gMonIcon_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Suicune[] = INCBIN_U8("graphics/pokemon/suicune/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6552,11 +9364,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SUICUNE #if P_FAMILY_LARVITAR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front.4bpp.lz"); const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal.gbapal.lz"); const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back.4bpp.lz"); const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Larvitar[] = INCBIN_U32("graphics/pokemon/larvitar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon.4bpp"); +#else + const u8 gMonIcon_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Larvitar[] = INCBIN_U8("graphics/pokemon/larvitar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6568,11 +9391,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front.4bpp.lz"); const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal.gbapal.lz"); const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back.4bpp.lz"); const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pupitar[] = INCBIN_U32("graphics/pokemon/pupitar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon.4bpp"); +#else + const u8 gMonIcon_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pupitar[] = INCBIN_U8("graphics/pokemon/pupitar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6584,11 +9418,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front.4bpp.lz"); const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal.gbapal.lz"); const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back.4bpp.lz"); const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tyranitar[] = INCBIN_U32("graphics/pokemon/tyranitar/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon.4bpp"); +#else + const u8 gMonIcon_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tyranitar[] = INCBIN_U8("graphics/pokemon/tyranitar/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6617,11 +9462,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LARVITAR #if P_FAMILY_LUGIA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front.4bpp.lz"); const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal.gbapal.lz"); const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back.4bpp.lz"); const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lugia[] = INCBIN_U32("graphics/pokemon/lugia/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon.4bpp"); +#else + const u8 gMonIcon_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lugia[] = INCBIN_U8("graphics/pokemon/lugia/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6635,11 +9491,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LUGIA #if P_FAMILY_HO_OH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front.4bpp.lz"); const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal.gbapal.lz"); const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back.4bpp.lz"); const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/normal_gba.gbapal.lz"); + const u32 gMonBackPic_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_HoOh[] = INCBIN_U32("graphics/pokemon/ho_oh/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon.4bpp"); +#else + const u8 gMonIcon_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_HoOh[] = INCBIN_U8("graphics/pokemon/ho_oh/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6653,11 +9520,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_HO_OH #if P_FAMILY_CELEBI +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front.4bpp.lz"); const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal.gbapal.lz"); const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back.4bpp.lz"); const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Celebi[] = INCBIN_U32("graphics/pokemon/celebi/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon.4bpp"); +#else + const u8 gMonIcon_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Celebi[] = INCBIN_U8("graphics/pokemon/celebi/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6671,11 +9549,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CELEBI #if P_FAMILY_TREECKO +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front.4bpp.lz"); const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal.gbapal.lz"); const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back.4bpp.lz"); const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Treecko[] = INCBIN_U32("graphics/pokemon/treecko/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon.4bpp"); +#else + const u8 gMonIcon_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Treecko[] = INCBIN_U8("graphics/pokemon/treecko/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6687,11 +9576,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front.4bpp.lz"); const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal.gbapal.lz"); const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back.4bpp.lz"); const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Grovyle[] = INCBIN_U32("graphics/pokemon/grovyle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon.4bpp"); +#else + const u8 gMonIcon_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Grovyle[] = INCBIN_U8("graphics/pokemon/grovyle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6703,11 +9603,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front.4bpp.lz"); const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal.gbapal.lz"); const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back.4bpp.lz"); const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sceptile[] = INCBIN_U32("graphics/pokemon/sceptile/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon.4bpp"); +#else + const u8 gMonIcon_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sceptile[] = INCBIN_U8("graphics/pokemon/sceptile/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6736,11 +9647,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TREECKO #if P_FAMILY_TORCHIC +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front.4bpp.lz"); const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal.gbapal.lz"); const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back.4bpp.lz"); const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Torchic[] = INCBIN_U32("graphics/pokemon/torchic/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon.4bpp"); +#else + const u8 gMonIcon_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Torchic[] = INCBIN_U8("graphics/pokemon/torchic/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6752,16 +9674,29 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonBackPic_TorchicF[] = INCBIN_U32("graphics/pokemon/torchic/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_TorchicF[] = INCBIN_COMP("graphics/pokemon/torchic/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front.4bpp.lz"); const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal.gbapal.lz"); const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back.4bpp.lz"); const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Combusken[] = INCBIN_U32("graphics/pokemon/combusken/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon.4bpp"); +#else + const u8 gMonIcon_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Combusken[] = INCBIN_U8("graphics/pokemon/combusken/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6773,17 +9708,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CombuskenF[] = INCBIN_U32("graphics/pokemon/combusken/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_CombuskenF[] = INCBIN_COMP("graphics/pokemon/combusken/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front.4bpp.lz"); const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal.gbapal.lz"); const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back.4bpp.lz"); const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Blaziken[] = INCBIN_U32("graphics/pokemon/blaziken/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon.4bpp"); +#else + const u8 gMonIcon_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Blaziken[] = INCBIN_U8("graphics/pokemon/blaziken/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6795,11 +9743,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BlazikenF[] = INCBIN_U32("graphics/pokemon/blaziken/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BlazikenF[] = INCBIN_COMP("graphics/pokemon/blaziken/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_BlazikenMega[] = INCBIN_U32("graphics/pokemon/blaziken/mega/front.4bpp.lz"); @@ -6818,11 +9768,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TORCHIC #if P_FAMILY_MUDKIP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front.4bpp.lz"); const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal.gbapal.lz"); const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back.4bpp.lz"); const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mudkip[] = INCBIN_U32("graphics/pokemon/mudkip/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon.4bpp"); +#else + const u8 gMonIcon_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mudkip[] = INCBIN_U8("graphics/pokemon/mudkip/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6834,11 +9795,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front.4bpp.lz"); const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal.gbapal.lz"); const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back.4bpp.lz"); const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Marshtomp[] = INCBIN_U32("graphics/pokemon/marshtomp/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon.4bpp"); +#else + const u8 gMonIcon_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Marshtomp[] = INCBIN_U8("graphics/pokemon/marshtomp/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6850,11 +9822,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front.4bpp.lz"); const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal.gbapal.lz"); const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back.4bpp.lz"); const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Swampert[] = INCBIN_U32("graphics/pokemon/swampert/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon.4bpp"); +#else + const u8 gMonIcon_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Swampert[] = INCBIN_U8("graphics/pokemon/swampert/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6883,11 +9866,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MUDKIP #if P_FAMILY_POOCHYENA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front.4bpp.lz"); const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal.gbapal.lz"); const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back.4bpp.lz"); const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Poochyena[] = INCBIN_U32("graphics/pokemon/poochyena/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon.4bpp"); +#else + const u8 gMonIcon_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Poochyena[] = INCBIN_U8("graphics/pokemon/poochyena/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6899,11 +9893,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front.4bpp.lz"); const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal.gbapal.lz"); const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back.4bpp.lz"); const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mightyena[] = INCBIN_U32("graphics/pokemon/mightyena/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon.4bpp"); +#else + const u8 gMonIcon_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Mightyena[] = INCBIN_U8("graphics/pokemon/mightyena/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6917,11 +9922,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_POOCHYENA #if P_FAMILY_ZIGZAGOON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front.4bpp.lz"); const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal.gbapal.lz"); const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back.4bpp.lz"); const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Zigzagoon[] = INCBIN_U32("graphics/pokemon/zigzagoon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon.4bpp"); +#else + const u8 gMonIcon_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Zigzagoon[] = INCBIN_U8("graphics/pokemon/zigzagoon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6933,11 +9949,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front.4bpp.lz"); const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal.gbapal.lz"); const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back.4bpp.lz"); const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Linoone[] = INCBIN_U32("graphics/pokemon/linoone/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon.4bpp"); +#else + const u8 gMonIcon_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Linoone[] = INCBIN_U8("graphics/pokemon/linoone/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -6950,29 +9977,29 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/front.4bpp.lz"); - const u32 gMonPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_ZigzagoonGalarian[] = INCBIN_U8("graphics/pokemon/zigzagoon/galarian/icon.4bpp"); + const u32 gMonFrontPic_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/front.4bpp.lz"); + const u32 gMonPalette_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/normal.gbapal.lz"); + const u32 gMonBackPic_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/shiny.gbapal.lz"); + const u8 gMonIcon_ZigzagoonGalar[] = INCBIN_U8("graphics/pokemon/zigzagoon/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZigzagoonGalarian[] = INCBIN_COMP("graphics/pokemon/zigzagoon/galarian/overworld.4bpp"); + const u32 gObjectEventPic_ZigzagoonGalar[] = INCBIN_COMP("graphics/pokemon/zigzagoon/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZigzagoonGalarian[] = INCBIN_U32("graphics/pokemon/zigzagoon/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZigzagoonGalar[] = INCBIN_U32("graphics/pokemon/zigzagoon/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/front.4bpp.lz"); - const u32 gMonPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_LinooneGalarian[] = INCBIN_U8("graphics/pokemon/linoone/galarian/icon.4bpp"); + const u32 gMonFrontPic_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/front.4bpp.lz"); + const u32 gMonPalette_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/normal.gbapal.lz"); + const u32 gMonBackPic_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/shiny.gbapal.lz"); + const u8 gMonIcon_LinooneGalar[] = INCBIN_U8("graphics/pokemon/linoone/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_LinooneGalarian[] = INCBIN_COMP("graphics/pokemon/linoone/galarian/overworld.4bpp"); + const u32 gObjectEventPic_LinooneGalar[] = INCBIN_COMP("graphics/pokemon/linoone/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_LinooneGalarian[] = INCBIN_U32("graphics/pokemon/linoone/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_LinooneGalar[] = INCBIN_U32("graphics/pokemon/linoone/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -6995,11 +10022,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ZIGZAGOON #if P_FAMILY_WURMPLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front.4bpp.lz"); const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal.gbapal.lz"); const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back.4bpp.lz"); const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wurmple[] = INCBIN_U32("graphics/pokemon/wurmple/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon.4bpp"); +#else + const u8 gMonIcon_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wurmple[] = INCBIN_U8("graphics/pokemon/wurmple/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7011,11 +10049,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front.4bpp.lz"); const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal.gbapal.lz"); const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back.4bpp.lz"); const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Silcoon[] = INCBIN_U32("graphics/pokemon/silcoon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon.4bpp"); +#else + const u8 gMonIcon_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Silcoon[] = INCBIN_U8("graphics/pokemon/silcoon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7027,11 +10076,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front.4bpp.lz"); const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal.gbapal.lz"); const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back.4bpp.lz"); const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Beautifly[] = INCBIN_U32("graphics/pokemon/beautifly/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon.4bpp"); +#else + const u8 gMonIcon_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Beautifly[] = INCBIN_U8("graphics/pokemon/beautifly/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7043,17 +10103,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BeautiflyF[] = INCBIN_U32("graphics/pokemon/beautifly/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BeautiflyF[] = INCBIN_COMP("graphics/pokemon/beautifly/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front.4bpp.lz"); const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal.gbapal.lz"); const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back.4bpp.lz"); const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cascoon[] = INCBIN_U32("graphics/pokemon/cascoon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon.4bpp"); +#else + const u8 gMonIcon_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cascoon[] = INCBIN_U8("graphics/pokemon/cascoon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7065,11 +10138,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front.4bpp.lz"); const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal.gbapal.lz"); const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back.4bpp.lz"); const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dustox[] = INCBIN_U32("graphics/pokemon/dustox/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon.4bpp"); +#else + const u8 gMonIcon_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dustox[] = INCBIN_U8("graphics/pokemon/dustox/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7081,19 +10165,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/anim_frontf.4bpp.lz"); const u32 gMonBackPic_DustoxF[] = INCBIN_U32("graphics/pokemon/dustox/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_DustoxF[] = INCBIN_COMP("graphics/pokemon/dustox/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_WURMPLE #if P_FAMILY_LOTAD +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front.4bpp.lz"); const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal.gbapal.lz"); const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back.4bpp.lz"); const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lotad[] = INCBIN_U32("graphics/pokemon/lotad/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon.4bpp"); +#else + const u8 gMonIcon_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lotad[] = INCBIN_U8("graphics/pokemon/lotad/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7105,11 +10202,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front.4bpp.lz"); const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal.gbapal.lz"); const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back.4bpp.lz"); const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lombre[] = INCBIN_U32("graphics/pokemon/lombre/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon.4bpp"); +#else + const u8 gMonIcon_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lombre[] = INCBIN_U8("graphics/pokemon/lombre/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7121,13 +10229,28 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front.4bpp.lz"); const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal.gbapal.lz"); const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back.4bpp.lz"); const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ludicolo[] = INCBIN_U32("graphics/pokemon/ludicolo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon.4bpp"); +#else + const u8 gMonIcon_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS +#if !P_GBA_STYLE_SPECIES_FOOTPRINTS const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint.1bpp"); +#else + const u8 gMonFootprint_Ludicolo[] = INCBIN_U8("graphics/pokemon/ludicolo/footprint_gba.1bpp"); +#endif //P_GBA_STYLE_SPECIES_FOOTPRINTS #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_Ludicolo[] = INCBIN_COMP("graphics/pokemon/ludicolo/overworld.4bpp"); @@ -7137,19 +10260,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LudicoloF[] = INCBIN_U32("graphics/pokemon/ludicolo/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LudicoloF[] = INCBIN_COMP("graphics/pokemon/ludicolo/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LOTAD #if P_FAMILY_SEEDOT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front.4bpp.lz"); const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal.gbapal.lz"); const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back.4bpp.lz"); const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Seedot[] = INCBIN_U32("graphics/pokemon/seedot/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon.4bpp"); +#else + const u8 gMonIcon_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Seedot[] = INCBIN_U8("graphics/pokemon/seedot/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7161,11 +10297,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front.4bpp.lz"); const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal.gbapal.lz"); const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back.4bpp.lz"); const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nuzleaf[] = INCBIN_U32("graphics/pokemon/nuzleaf/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon.4bpp"); +#else + const u8 gMonIcon_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nuzleaf[] = INCBIN_U8("graphics/pokemon/nuzleaf/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7177,17 +10324,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/anim_frontf.4bpp.lz"); const u32 gMonBackPic_NuzleafF[] = INCBIN_U32("graphics/pokemon/nuzleaf/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_NuzleafF[] = INCBIN_COMP("graphics/pokemon/nuzleaf/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front.4bpp.lz"); const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal.gbapal.lz"); const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back.4bpp.lz"); const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shiftry[] = INCBIN_U32("graphics/pokemon/shiftry/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon.4bpp"); +#else + const u8 gMonIcon_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shiftry[] = INCBIN_U8("graphics/pokemon/shiftry/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7199,19 +10359,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ShiftryF[] = INCBIN_U32("graphics/pokemon/shiftry/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ShiftryF[] = INCBIN_COMP("graphics/pokemon/shiftry/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SEEDOT #if P_FAMILY_TAILLOW +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front.4bpp.lz"); const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal.gbapal.lz"); const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back.4bpp.lz"); const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Taillow[] = INCBIN_U32("graphics/pokemon/taillow/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon.4bpp"); +#else + const u8 gMonIcon_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Taillow[] = INCBIN_U8("graphics/pokemon/taillow/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7223,11 +10396,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front.4bpp.lz"); const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal.gbapal.lz"); const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back.4bpp.lz"); const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Swellow[] = INCBIN_U32("graphics/pokemon/swellow/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon.4bpp"); +#else + const u8 gMonIcon_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Swellow[] = INCBIN_U8("graphics/pokemon/swellow/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7241,11 +10425,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TAILLOW #if P_FAMILY_WINGULL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front.4bpp.lz"); const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal.gbapal.lz"); const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back.4bpp.lz"); const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wingull[] = INCBIN_U32("graphics/pokemon/wingull/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon.4bpp"); +#else + const u8 gMonIcon_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wingull[] = INCBIN_U8("graphics/pokemon/wingull/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7257,11 +10452,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front.4bpp.lz"); const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal.gbapal.lz"); const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back.4bpp.lz"); const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Pelipper[] = INCBIN_U32("graphics/pokemon/pelipper/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon.4bpp"); +#else + const u8 gMonIcon_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Pelipper[] = INCBIN_U8("graphics/pokemon/pelipper/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7275,11 +10481,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_WINGULL #if P_FAMILY_RALTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front.4bpp.lz"); const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal.gbapal.lz"); const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back.4bpp.lz"); const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ralts[] = INCBIN_U32("graphics/pokemon/ralts/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon.4bpp"); +#else + const u8 gMonIcon_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ralts[] = INCBIN_U8("graphics/pokemon/ralts/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7291,11 +10508,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front.4bpp.lz"); const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal.gbapal.lz"); const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back.4bpp.lz"); const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kirlia[] = INCBIN_U32("graphics/pokemon/kirlia/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon.4bpp"); +#else + const u8 gMonIcon_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kirlia[] = INCBIN_U8("graphics/pokemon/kirlia/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7307,11 +10535,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front.4bpp.lz"); const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal.gbapal.lz"); const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back.4bpp.lz"); const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gardevoir[] = INCBIN_U32("graphics/pokemon/gardevoir/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon.4bpp"); +#else + const u8 gMonIcon_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gardevoir[] = INCBIN_U8("graphics/pokemon/gardevoir/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7373,11 +10612,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_RALTS #if P_FAMILY_SURSKIT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front.4bpp.lz"); const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal.gbapal.lz"); const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back.4bpp.lz"); const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Surskit[] = INCBIN_U32("graphics/pokemon/surskit/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon.4bpp"); +#else + const u8 gMonIcon_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Surskit[] = INCBIN_U8("graphics/pokemon/surskit/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7389,11 +10639,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front.4bpp.lz"); const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal.gbapal.lz"); const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back.4bpp.lz"); const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Masquerain[] = INCBIN_U32("graphics/pokemon/masquerain/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon.4bpp"); +#else + const u8 gMonIcon_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Masquerain[] = INCBIN_U8("graphics/pokemon/masquerain/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7407,13 +10668,28 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SURSKIT #if P_FAMILY_SHROOMISH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front.4bpp.lz"); const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal.gbapal.lz"); const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back.4bpp.lz"); const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shroomish[] = INCBIN_U32("graphics/pokemon/shroomish/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon.4bpp"); +#else + const u8 gMonIcon_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS +#if !P_GBA_STYLE_SPECIES_FOOTPRINTS const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint.1bpp"); +#else + const u8 gMonFootprint_Shroomish[] = INCBIN_U8("graphics/pokemon/shroomish/footprint_gba.1bpp"); +#endif //P_GBA_STYLE_SPECIES_FOOTPRINTS #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_Shroomish[] = INCBIN_COMP("graphics/pokemon/shroomish/overworld.4bpp"); @@ -7423,11 +10699,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front.4bpp.lz"); const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal.gbapal.lz"); const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back.4bpp.lz"); const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Breloom[] = INCBIN_U32("graphics/pokemon/breloom/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon.4bpp"); +#else + const u8 gMonIcon_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Breloom[] = INCBIN_U8("graphics/pokemon/breloom/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7441,11 +10728,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SHROOMISH #if P_FAMILY_SLAKOTH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front.4bpp.lz"); const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal.gbapal.lz"); const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back.4bpp.lz"); const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slakoth[] = INCBIN_U32("graphics/pokemon/slakoth/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon.4bpp"); +#else + const u8 gMonIcon_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slakoth[] = INCBIN_U8("graphics/pokemon/slakoth/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7457,11 +10755,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front.4bpp.lz"); const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal.gbapal.lz"); const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back.4bpp.lz"); const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Vigoroth[] = INCBIN_U32("graphics/pokemon/vigoroth/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon.4bpp"); +#else + const u8 gMonIcon_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Vigoroth[] = INCBIN_U8("graphics/pokemon/vigoroth/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7473,11 +10782,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front.4bpp.lz"); const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal.gbapal.lz"); const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back.4bpp.lz"); const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Slaking[] = INCBIN_U32("graphics/pokemon/slaking/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon.4bpp"); +#else + const u8 gMonIcon_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Slaking[] = INCBIN_U8("graphics/pokemon/slaking/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7491,11 +10811,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SLAKOTH #if P_FAMILY_NINCADA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front.4bpp.lz"); const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal.gbapal.lz"); const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back.4bpp.lz"); const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nincada[] = INCBIN_U32("graphics/pokemon/nincada/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon.4bpp"); +#else + const u8 gMonIcon_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nincada[] = INCBIN_U8("graphics/pokemon/nincada/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7507,11 +10838,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front.4bpp.lz"); const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal.gbapal.lz"); const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back.4bpp.lz"); const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Ninjask[] = INCBIN_U32("graphics/pokemon/ninjask/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon.4bpp"); +#else + const u8 gMonIcon_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Ninjask[] = INCBIN_U8("graphics/pokemon/ninjask/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7523,11 +10865,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front.4bpp.lz"); const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal.gbapal.lz"); const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back.4bpp.lz"); const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shedinja[] = INCBIN_U32("graphics/pokemon/shedinja/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon.4bpp"); +#else + const u8 gMonIcon_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shedinja[] = INCBIN_U8("graphics/pokemon/shedinja/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7541,11 +10894,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_NINCADA #if P_FAMILY_WHISMUR +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front.4bpp.lz"); const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal.gbapal.lz"); const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back.4bpp.lz"); const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Whismur[] = INCBIN_U32("graphics/pokemon/whismur/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon.4bpp"); +#else + const u8 gMonIcon_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Whismur[] = INCBIN_U8("graphics/pokemon/whismur/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7557,11 +10921,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front.4bpp.lz"); const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal.gbapal.lz"); const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back.4bpp.lz"); const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Loudred[] = INCBIN_U32("graphics/pokemon/loudred/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon.4bpp"); +#else + const u8 gMonIcon_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Loudred[] = INCBIN_U8("graphics/pokemon/loudred/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7573,11 +10948,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front.4bpp.lz"); const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal.gbapal.lz"); const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back.4bpp.lz"); const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Exploud[] = INCBIN_U32("graphics/pokemon/exploud/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon.4bpp"); +#else + const u8 gMonIcon_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Exploud[] = INCBIN_U8("graphics/pokemon/exploud/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7591,11 +10977,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_WHISMUR #if P_FAMILY_MAKUHITA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front.4bpp.lz"); const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal.gbapal.lz"); const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back.4bpp.lz"); const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Makuhita[] = INCBIN_U32("graphics/pokemon/makuhita/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon.4bpp"); +#else + const u8 gMonIcon_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Makuhita[] = INCBIN_U8("graphics/pokemon/makuhita/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7607,11 +11004,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front.4bpp.lz"); const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal.gbapal.lz"); const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back.4bpp.lz"); const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Hariyama[] = INCBIN_U32("graphics/pokemon/hariyama/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon.4bpp"); +#else + const u8 gMonIcon_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Hariyama[] = INCBIN_U8("graphics/pokemon/hariyama/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7625,11 +11033,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MAKUHITA #if P_FAMILY_NOSEPASS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front.4bpp.lz"); const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal.gbapal.lz"); const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back.4bpp.lz"); const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Nosepass[] = INCBIN_U32("graphics/pokemon/nosepass/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon.4bpp"); +#else + const u8 gMonIcon_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Nosepass[] = INCBIN_U8("graphics/pokemon/nosepass/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7661,11 +11080,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_NOSEPASS #if P_FAMILY_SKITTY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front.4bpp.lz"); const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal.gbapal.lz"); const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back.4bpp.lz"); const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Skitty[] = INCBIN_U32("graphics/pokemon/skitty/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon.4bpp"); +#else + const u8 gMonIcon_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Skitty[] = INCBIN_U8("graphics/pokemon/skitty/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7677,11 +11107,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front.4bpp.lz"); const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal.gbapal.lz"); const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back.4bpp.lz"); const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Delcatty[] = INCBIN_U32("graphics/pokemon/delcatty/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon.4bpp"); +#else + const u8 gMonIcon_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Delcatty[] = INCBIN_U8("graphics/pokemon/delcatty/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7695,11 +11136,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SKITTY #if P_FAMILY_SABLEYE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front.4bpp.lz"); const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal.gbapal.lz"); const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back.4bpp.lz"); const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sableye[] = INCBIN_U32("graphics/pokemon/sableye/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon.4bpp"); +#else + const u8 gMonIcon_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sableye[] = INCBIN_U8("graphics/pokemon/sableye/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7728,13 +11180,28 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SABLEYE #if P_FAMILY_MAWILE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front.4bpp.lz"); const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal.gbapal.lz"); const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back.4bpp.lz"); const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Mawile[] = INCBIN_U32("graphics/pokemon/mawile/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon.4bpp"); +#else + const u8 gMonIcon_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS +#if !P_GBA_STYLE_SPECIES_FOOTPRINTS const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint.1bpp"); +#else + const u8 gMonFootprint_Mawile[] = INCBIN_U8("graphics/pokemon/mawile/footprint_gba.1bpp"); +#endif //P_GBA_STYLE_SPECIES_FOOTPRINTS #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_Mawile[] = INCBIN_COMP("graphics/pokemon/mawile/overworld.4bpp"); @@ -7761,11 +11228,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MAWILE #if P_FAMILY_ARON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front.4bpp.lz"); const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal.gbapal.lz"); const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back.4bpp.lz"); const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Aron[] = INCBIN_U32("graphics/pokemon/aron/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Aron[] = INCBIN_U32("graphics/pokemon/aron/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon.4bpp"); +#else + const u8 gMonIcon_Aron[] = INCBIN_U8("graphics/pokemon/aron/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Aron[] = INCBIN_U8("graphics/pokemon/aron/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7777,11 +11255,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front.4bpp.lz"); const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal.gbapal.lz"); const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back.4bpp.lz"); const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lairon[] = INCBIN_U32("graphics/pokemon/lairon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon.4bpp"); +#else + const u8 gMonIcon_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lairon[] = INCBIN_U8("graphics/pokemon/lairon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7793,11 +11282,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front.4bpp.lz"); const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal.gbapal.lz"); const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back.4bpp.lz"); const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Aggron[] = INCBIN_U32("graphics/pokemon/aggron/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon.4bpp"); +#else + const u8 gMonIcon_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Aggron[] = INCBIN_U8("graphics/pokemon/aggron/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7826,11 +11326,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ARON #if P_FAMILY_MEDITITE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front.4bpp.lz"); const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal.gbapal.lz"); const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back.4bpp.lz"); const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Meditite[] = INCBIN_U32("graphics/pokemon/meditite/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon.4bpp"); +#else + const u8 gMonIcon_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Meditite[] = INCBIN_U8("graphics/pokemon/meditite/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7842,17 +11353,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MedititeF[] = INCBIN_U32("graphics/pokemon/meditite/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MedititeF[] = INCBIN_COMP("graphics/pokemon/meditite/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front.4bpp.lz"); const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal.gbapal.lz"); const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back.4bpp.lz"); const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Medicham[] = INCBIN_U32("graphics/pokemon/medicham/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon.4bpp"); +#else + const u8 gMonIcon_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Medicham[] = INCBIN_U8("graphics/pokemon/medicham/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7864,11 +11388,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MedichamF[] = INCBIN_U32("graphics/pokemon/medicham/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MedichamF[] = INCBIN_COMP("graphics/pokemon/medicham/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_MedichamMega[] = INCBIN_U32("graphics/pokemon/medicham/mega/front.4bpp.lz"); @@ -7887,11 +11413,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MEDITITE #if P_FAMILY_ELECTRIKE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front.4bpp.lz"); const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal.gbapal.lz"); const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back.4bpp.lz"); const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Electrike[] = INCBIN_U32("graphics/pokemon/electrike/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon.4bpp"); +#else + const u8 gMonIcon_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Electrike[] = INCBIN_U8("graphics/pokemon/electrike/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7903,11 +11440,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front.4bpp.lz"); const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal.gbapal.lz"); const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back.4bpp.lz"); const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Manectric[] = INCBIN_U32("graphics/pokemon/manectric/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon.4bpp"); +#else + const u8 gMonIcon_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Manectric[] = INCBIN_U8("graphics/pokemon/manectric/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7936,11 +11484,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ELECTRIKE #if P_FAMILY_PLUSLE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front.4bpp.lz"); const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal.gbapal.lz"); const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back.4bpp.lz"); const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Plusle[] = INCBIN_U32("graphics/pokemon/plusle/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon.4bpp"); +#else + const u8 gMonIcon_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Plusle[] = INCBIN_U8("graphics/pokemon/plusle/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7954,11 +11513,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_PLUSLE #if P_FAMILY_MINUN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front.4bpp.lz"); const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal.gbapal.lz"); const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back.4bpp.lz"); const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Minun[] = INCBIN_U32("graphics/pokemon/minun/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Minun[] = INCBIN_U32("graphics/pokemon/minun/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon.4bpp"); +#else + const u8 gMonIcon_Minun[] = INCBIN_U8("graphics/pokemon/minun/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Minun[] = INCBIN_U8("graphics/pokemon/minun/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7972,11 +11542,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_MINUN #if P_FAMILY_VOLBEAT_ILLUMISE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front.4bpp.lz"); const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal.gbapal.lz"); const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back.4bpp.lz"); const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Volbeat[] = INCBIN_U32("graphics/pokemon/volbeat/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon.4bpp"); +#else + const u8 gMonIcon_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Volbeat[] = INCBIN_U8("graphics/pokemon/volbeat/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -7988,11 +11569,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front.4bpp.lz"); const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal.gbapal.lz"); const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back.4bpp.lz"); const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Illumise[] = INCBIN_U32("graphics/pokemon/illumise/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon.4bpp"); +#else + const u8 gMonIcon_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Illumise[] = INCBIN_U8("graphics/pokemon/illumise/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8024,11 +11616,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front.4bpp.lz"); const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal.gbapal.lz"); const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back.4bpp.lz"); const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Roselia[] = INCBIN_U32("graphics/pokemon/roselia/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon.4bpp"); +#else + const u8 gMonIcon_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Roselia[] = INCBIN_U8("graphics/pokemon/roselia/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8040,11 +11643,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RoseliaF[] = INCBIN_U32("graphics/pokemon/roselia/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RoseliaF[] = INCBIN_COMP("graphics/pokemon/roselia/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS const u32 gMonFrontPic_Roserade[] = INCBIN_U32("graphics/pokemon/roserade/anim_front.4bpp.lz"); @@ -8063,20 +11668,33 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RoseradeF[] = INCBIN_U32("graphics/pokemon/roserade/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RoseradeF[] = INCBIN_COMP("graphics/pokemon/roserade/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ROSELIA #if P_FAMILY_GULPIN +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front.4bpp.lz"); const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal.gbapal.lz"); const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back.4bpp.lz"); const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gulpin[] = INCBIN_U32("graphics/pokemon/gulpin/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon.4bpp"); +#else + const u8 gMonIcon_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gulpin[] = INCBIN_U8("graphics/pokemon/gulpin/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8088,17 +11706,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GulpinF[] = INCBIN_U32("graphics/pokemon/gulpin/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GulpinF[] = INCBIN_COMP("graphics/pokemon/gulpin/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front.4bpp.lz"); const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal.gbapal.lz"); const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back.4bpp.lz"); const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Swalot[] = INCBIN_U32("graphics/pokemon/swalot/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon.4bpp"); +#else + const u8 gMonIcon_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Swalot[] = INCBIN_U8("graphics/pokemon/swalot/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8110,19 +11741,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SwalotF[] = INCBIN_U32("graphics/pokemon/swalot/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SwalotF[] = INCBIN_COMP("graphics/pokemon/swalot/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_GULPIN #if P_FAMILY_CARVANHA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front.4bpp.lz"); const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal.gbapal.lz"); const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back.4bpp.lz"); const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Carvanha[] = INCBIN_U32("graphics/pokemon/carvanha/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon.4bpp"); +#else + const u8 gMonIcon_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Carvanha[] = INCBIN_U8("graphics/pokemon/carvanha/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8134,11 +11778,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front.4bpp.lz"); const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal.gbapal.lz"); const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back.4bpp.lz"); const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sharpedo[] = INCBIN_U32("graphics/pokemon/sharpedo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon.4bpp"); +#else + const u8 gMonIcon_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sharpedo[] = INCBIN_U8("graphics/pokemon/sharpedo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8167,11 +11822,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CARVANHA #if P_FAMILY_WAILMER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front.4bpp.lz"); const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal.gbapal.lz"); const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back.4bpp.lz"); const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wailmer[] = INCBIN_U32("graphics/pokemon/wailmer/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon.4bpp"); +#else + const u8 gMonIcon_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wailmer[] = INCBIN_U8("graphics/pokemon/wailmer/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8183,11 +11849,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front.4bpp.lz"); const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal.gbapal.lz"); const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back.4bpp.lz"); const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Wailord[] = INCBIN_U32("graphics/pokemon/wailord/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon.4bpp"); +#else + const u8 gMonIcon_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Wailord[] = INCBIN_U8("graphics/pokemon/wailord/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8201,11 +11878,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_WAILMER #if P_FAMILY_NUMEL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front.4bpp.lz"); const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal.gbapal.lz"); const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back.4bpp.lz"); const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Numel[] = INCBIN_U32("graphics/pokemon/numel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Numel[] = INCBIN_U32("graphics/pokemon/numel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon.4bpp"); +#else + const u8 gMonIcon_Numel[] = INCBIN_U8("graphics/pokemon/numel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Numel[] = INCBIN_U8("graphics/pokemon/numel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8217,17 +11905,30 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/anim_frontf.4bpp.lz"); const u32 gMonBackPic_NumelF[] = INCBIN_U32("graphics/pokemon/numel/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_NumelF[] = INCBIN_COMP("graphics/pokemon/numel/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front.4bpp.lz"); const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal.gbapal.lz"); const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back.4bpp.lz"); const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Camerupt[] = INCBIN_U32("graphics/pokemon/camerupt/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon.4bpp"); +#else + const u8 gMonIcon_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Camerupt[] = INCBIN_U8("graphics/pokemon/camerupt/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8239,11 +11940,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CameruptF[] = INCBIN_U32("graphics/pokemon/camerupt/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_CameruptF[] = INCBIN_COMP("graphics/pokemon/camerupt/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_CameruptMega[] = INCBIN_U32("graphics/pokemon/camerupt/mega/front.4bpp.lz"); @@ -8262,11 +11965,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_NUMEL #if P_FAMILY_TORKOAL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front.4bpp.lz"); const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal.gbapal.lz"); const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back.4bpp.lz"); const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Torkoal[] = INCBIN_U32("graphics/pokemon/torkoal/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon.4bpp"); +#else + const u8 gMonIcon_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Torkoal[] = INCBIN_U8("graphics/pokemon/torkoal/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8280,11 +11994,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TORKOAL #if P_FAMILY_SPOINK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front.4bpp.lz"); const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal.gbapal.lz"); const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back.4bpp.lz"); const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Spoink[] = INCBIN_U32("graphics/pokemon/spoink/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon.4bpp"); +#else + const u8 gMonIcon_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Spoink[] = INCBIN_U8("graphics/pokemon/spoink/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8296,11 +12021,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front.4bpp.lz"); const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal.gbapal.lz"); const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back.4bpp.lz"); const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Grumpig[] = INCBIN_U32("graphics/pokemon/grumpig/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon.4bpp"); +#else + const u8 gMonIcon_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Grumpig[] = INCBIN_U8("graphics/pokemon/grumpig/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8332,11 +12068,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SPINDA #if P_FAMILY_TRAPINCH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front.4bpp.lz"); const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal.gbapal.lz"); const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back.4bpp.lz"); const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Trapinch[] = INCBIN_U32("graphics/pokemon/trapinch/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon.4bpp"); +#else + const u8 gMonIcon_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Trapinch[] = INCBIN_U8("graphics/pokemon/trapinch/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8348,11 +12095,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front.4bpp.lz"); const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal.gbapal.lz"); const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back.4bpp.lz"); const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Vibrava[] = INCBIN_U32("graphics/pokemon/vibrava/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon.4bpp"); +#else + const u8 gMonIcon_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Vibrava[] = INCBIN_U8("graphics/pokemon/vibrava/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8364,11 +12122,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front.4bpp.lz"); const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal.gbapal.lz"); const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back.4bpp.lz"); const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Flygon[] = INCBIN_U32("graphics/pokemon/flygon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon.4bpp"); +#else + const u8 gMonIcon_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Flygon[] = INCBIN_U8("graphics/pokemon/flygon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8382,11 +12151,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_TRAPINCH #if P_FAMILY_CACNEA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front.4bpp.lz"); const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal.gbapal.lz"); const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back.4bpp.lz"); const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cacnea[] = INCBIN_U32("graphics/pokemon/cacnea/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon.4bpp"); +#else + const u8 gMonIcon_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cacnea[] = INCBIN_U8("graphics/pokemon/cacnea/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8398,11 +12178,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front.4bpp.lz"); const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal.gbapal.lz"); const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back.4bpp.lz"); const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cacturne[] = INCBIN_U32("graphics/pokemon/cacturne/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon.4bpp"); +#else + const u8 gMonIcon_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cacturne[] = INCBIN_U8("graphics/pokemon/cacturne/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8414,18 +12205,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_CacturneF[] = INCBIN_U32("graphics/pokemon/cacturne/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_CacturneF[] = INCBIN_COMP("graphics/pokemon/cacturne/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CACNEA #if P_FAMILY_SWABLU +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front.4bpp.lz"); const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal.gbapal.lz"); const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back.4bpp.lz"); const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Swablu[] = INCBIN_U32("graphics/pokemon/swablu/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon.4bpp"); +#else + const u8 gMonIcon_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Swablu[] = INCBIN_U8("graphics/pokemon/swablu/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8437,11 +12241,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front.4bpp.lz"); const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal.gbapal.lz"); const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back.4bpp.lz"); const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Altaria[] = INCBIN_U32("graphics/pokemon/altaria/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon.4bpp"); +#else + const u8 gMonIcon_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Altaria[] = INCBIN_U8("graphics/pokemon/altaria/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8470,11 +12285,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SWABLU #if P_FAMILY_ZANGOOSE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front.4bpp.lz"); const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal.gbapal.lz"); const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back.4bpp.lz"); const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Zangoose[] = INCBIN_U32("graphics/pokemon/zangoose/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon.4bpp"); +#else + const u8 gMonIcon_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Zangoose[] = INCBIN_U8("graphics/pokemon/zangoose/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8488,11 +12314,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ZANGOOSE #if P_FAMILY_SEVIPER +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front.4bpp.lz"); const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal.gbapal.lz"); const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back.4bpp.lz"); const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Seviper[] = INCBIN_U32("graphics/pokemon/seviper/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon.4bpp"); +#else + const u8 gMonIcon_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Seviper[] = INCBIN_U8("graphics/pokemon/seviper/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8506,11 +12343,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SEVIPER #if P_FAMILY_LUNATONE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front.4bpp.lz"); const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal.gbapal.lz"); const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back.4bpp.lz"); const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lunatone[] = INCBIN_U32("graphics/pokemon/lunatone/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon.4bpp"); +#else + const u8 gMonIcon_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lunatone[] = INCBIN_U8("graphics/pokemon/lunatone/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8524,11 +12372,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LUNATONE #if P_FAMILY_SOLROCK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front.4bpp.lz"); const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal.gbapal.lz"); const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back.4bpp.lz"); const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Solrock[] = INCBIN_U32("graphics/pokemon/solrock/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon.4bpp"); +#else + const u8 gMonIcon_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Solrock[] = INCBIN_U8("graphics/pokemon/solrock/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8542,11 +12401,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SOLROCK #if P_FAMILY_BARBOACH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front.4bpp.lz"); const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal.gbapal.lz"); const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back.4bpp.lz"); const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Barboach[] = INCBIN_U32("graphics/pokemon/barboach/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon.4bpp"); +#else + const u8 gMonIcon_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Barboach[] = INCBIN_U8("graphics/pokemon/barboach/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8558,11 +12428,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front.4bpp.lz"); const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal.gbapal.lz"); const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back.4bpp.lz"); const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Whiscash[] = INCBIN_U32("graphics/pokemon/whiscash/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon.4bpp"); +#else + const u8 gMonIcon_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Whiscash[] = INCBIN_U8("graphics/pokemon/whiscash/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8576,11 +12457,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_BARBOACH #if P_FAMILY_CORPHISH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front.4bpp.lz"); const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal.gbapal.lz"); const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back.4bpp.lz"); const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Corphish[] = INCBIN_U32("graphics/pokemon/corphish/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon.4bpp"); +#else + const u8 gMonIcon_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Corphish[] = INCBIN_U8("graphics/pokemon/corphish/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8592,11 +12484,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front.4bpp.lz"); const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal.gbapal.lz"); const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back.4bpp.lz"); const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Crawdaunt[] = INCBIN_U32("graphics/pokemon/crawdaunt/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon.4bpp"); +#else + const u8 gMonIcon_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Crawdaunt[] = INCBIN_U8("graphics/pokemon/crawdaunt/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8610,11 +12513,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CORPHISH #if P_FAMILY_BALTOY +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front.4bpp.lz"); const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal.gbapal.lz"); const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back.4bpp.lz"); const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Baltoy[] = INCBIN_U32("graphics/pokemon/baltoy/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon.4bpp"); +#else + const u8 gMonIcon_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Baltoy[] = INCBIN_U8("graphics/pokemon/baltoy/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8626,11 +12540,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front.4bpp.lz"); const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal.gbapal.lz"); const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back.4bpp.lz"); const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Claydol[] = INCBIN_U32("graphics/pokemon/claydol/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon.4bpp"); +#else + const u8 gMonIcon_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Claydol[] = INCBIN_U8("graphics/pokemon/claydol/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8644,11 +12569,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_BALTOY #if P_FAMILY_LILEEP +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front.4bpp.lz"); const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal.gbapal.lz"); const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back.4bpp.lz"); const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Lileep[] = INCBIN_U32("graphics/pokemon/lileep/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon.4bpp"); +#else + const u8 gMonIcon_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Lileep[] = INCBIN_U8("graphics/pokemon/lileep/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8660,11 +12596,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front.4bpp.lz"); const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal.gbapal.lz"); const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back.4bpp.lz"); const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Cradily[] = INCBIN_U32("graphics/pokemon/cradily/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon.4bpp"); +#else + const u8 gMonIcon_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Cradily[] = INCBIN_U8("graphics/pokemon/cradily/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8678,11 +12625,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LILEEP #if P_FAMILY_ANORITH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front.4bpp.lz"); const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal.gbapal.lz"); const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back.4bpp.lz"); const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Anorith[] = INCBIN_U32("graphics/pokemon/anorith/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon.4bpp"); +#else + const u8 gMonIcon_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Anorith[] = INCBIN_U8("graphics/pokemon/anorith/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8694,11 +12652,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front.4bpp.lz"); const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal.gbapal.lz"); const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back.4bpp.lz"); const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Armaldo[] = INCBIN_U32("graphics/pokemon/armaldo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon.4bpp"); +#else + const u8 gMonIcon_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Armaldo[] = INCBIN_U8("graphics/pokemon/armaldo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8712,11 +12681,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ANORITH #if P_FAMILY_FEEBAS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front.4bpp.lz"); const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal.gbapal.lz"); const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back.4bpp.lz"); const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Feebas[] = INCBIN_U32("graphics/pokemon/feebas/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon.4bpp"); +#else + const u8 gMonIcon_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Feebas[] = INCBIN_U8("graphics/pokemon/feebas/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8728,11 +12708,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front.4bpp.lz"); const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal.gbapal.lz"); const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back.4bpp.lz"); const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Milotic[] = INCBIN_U32("graphics/pokemon/milotic/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon.4bpp"); +#else + const u8 gMonIcon_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Milotic[] = INCBIN_U8("graphics/pokemon/milotic/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8744,11 +12735,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/anim_frontf.4bpp.lz"); const u32 gMonBackPic_MiloticF[] = INCBIN_U32("graphics/pokemon/milotic/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_MiloticF[] = INCBIN_COMP("graphics/pokemon/milotic/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FEEBAS #if P_FAMILY_CASTFORM @@ -8798,11 +12791,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CASTFORM #if P_FAMILY_KECLEON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front.4bpp.lz"); const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal.gbapal.lz"); const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back.4bpp.lz"); const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kecleon[] = INCBIN_U32("graphics/pokemon/kecleon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon.4bpp"); +#else + const u8 gMonIcon_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kecleon[] = INCBIN_U8("graphics/pokemon/kecleon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8816,11 +12820,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_KECLEON #if P_FAMILY_SHUPPET +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front.4bpp.lz"); const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal.gbapal.lz"); const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back.4bpp.lz"); const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shuppet[] = INCBIN_U32("graphics/pokemon/shuppet/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon.4bpp"); +#else + const u8 gMonIcon_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shuppet[] = INCBIN_U8("graphics/pokemon/shuppet/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8832,11 +12847,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front.4bpp.lz"); const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal.gbapal.lz"); const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back.4bpp.lz"); const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Banette[] = INCBIN_U32("graphics/pokemon/banette/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Banette[] = INCBIN_U32("graphics/pokemon/banette/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon.4bpp"); +#else + const u8 gMonIcon_Banette[] = INCBIN_U8("graphics/pokemon/banette/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Banette[] = INCBIN_U8("graphics/pokemon/banette/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8865,11 +12891,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SHUPPET #if P_FAMILY_DUSKULL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front.4bpp.lz"); const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal.gbapal.lz"); const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back.4bpp.lz"); const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Duskull[] = INCBIN_U32("graphics/pokemon/duskull/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon.4bpp"); +#else + const u8 gMonIcon_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Duskull[] = INCBIN_U8("graphics/pokemon/duskull/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8881,11 +12918,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front.4bpp.lz"); const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal.gbapal.lz"); const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back.4bpp.lz"); const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Dusclops[] = INCBIN_U32("graphics/pokemon/dusclops/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon.4bpp"); +#else + const u8 gMonIcon_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Dusclops[] = INCBIN_U8("graphics/pokemon/dusclops/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8917,11 +12965,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_DUSKULL #if P_FAMILY_TROPIUS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front.4bpp.lz"); const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal.gbapal.lz"); const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back.4bpp.lz"); const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Tropius[] = INCBIN_U32("graphics/pokemon/tropius/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon.4bpp"); +#else + const u8 gMonIcon_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Tropius[] = INCBIN_U8("graphics/pokemon/tropius/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8953,11 +13012,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GEN_4_CROSS_EVOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front.4bpp.lz"); const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal.gbapal.lz"); const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back.4bpp.lz"); const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Chimecho[] = INCBIN_U32("graphics/pokemon/chimecho/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon.4bpp"); +#else + const u8 gMonIcon_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Chimecho[] = INCBIN_U8("graphics/pokemon/chimecho/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -8971,11 +13041,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CHIMECHO #if P_FAMILY_ABSOL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front.4bpp.lz"); const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal.gbapal.lz"); const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back.4bpp.lz"); const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Absol[] = INCBIN_U32("graphics/pokemon/absol/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Absol[] = INCBIN_U32("graphics/pokemon/absol/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon.4bpp"); +#else + const u8 gMonIcon_Absol[] = INCBIN_U8("graphics/pokemon/absol/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Absol[] = INCBIN_U8("graphics/pokemon/absol/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9004,11 +13085,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_ABSOL #if P_FAMILY_SNORUNT +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front.4bpp.lz"); const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal.gbapal.lz"); const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back.4bpp.lz"); const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Snorunt[] = INCBIN_U32("graphics/pokemon/snorunt/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon.4bpp"); +#else + const u8 gMonIcon_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Snorunt[] = INCBIN_U8("graphics/pokemon/snorunt/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9020,11 +13112,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front.4bpp.lz"); const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal.gbapal.lz"); const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back.4bpp.lz"); const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Glalie[] = INCBIN_U32("graphics/pokemon/glalie/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon.4bpp"); +#else + const u8 gMonIcon_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Glalie[] = INCBIN_U8("graphics/pokemon/glalie/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9071,11 +13174,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SNORUNT #if P_FAMILY_SPHEAL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front.4bpp.lz"); const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal.gbapal.lz"); const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back.4bpp.lz"); const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Spheal[] = INCBIN_U32("graphics/pokemon/spheal/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon.4bpp"); +#else + const u8 gMonIcon_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Spheal[] = INCBIN_U8("graphics/pokemon/spheal/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9087,11 +13201,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front.4bpp.lz"); const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal.gbapal.lz"); const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back.4bpp.lz"); const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Sealeo[] = INCBIN_U32("graphics/pokemon/sealeo/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon.4bpp"); +#else + const u8 gMonIcon_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Sealeo[] = INCBIN_U8("graphics/pokemon/sealeo/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9103,11 +13228,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front.4bpp.lz"); const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal.gbapal.lz"); const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back.4bpp.lz"); const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Walrein[] = INCBIN_U32("graphics/pokemon/walrein/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon.4bpp"); +#else + const u8 gMonIcon_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Walrein[] = INCBIN_U8("graphics/pokemon/walrein/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9121,11 +13257,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_SPHEAL #if P_FAMILY_CLAMPERL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front.4bpp.lz"); const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal.gbapal.lz"); const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back.4bpp.lz"); const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Clamperl[] = INCBIN_U32("graphics/pokemon/clamperl/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon.4bpp"); +#else + const u8 gMonIcon_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Clamperl[] = INCBIN_U8("graphics/pokemon/clamperl/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9137,11 +13284,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front.4bpp.lz"); const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal.gbapal.lz"); const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back.4bpp.lz"); const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Huntail[] = INCBIN_U32("graphics/pokemon/huntail/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon.4bpp"); +#else + const u8 gMonIcon_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Huntail[] = INCBIN_U8("graphics/pokemon/huntail/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9153,11 +13311,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front.4bpp.lz"); const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal.gbapal.lz"); const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back.4bpp.lz"); const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Gorebyss[] = INCBIN_U32("graphics/pokemon/gorebyss/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon.4bpp"); +#else + const u8 gMonIcon_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Gorebyss[] = INCBIN_U8("graphics/pokemon/gorebyss/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9171,11 +13340,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_CLAMPERL #if P_FAMILY_RELICANTH +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front.4bpp.lz"); const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal.gbapal.lz"); const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back.4bpp.lz"); const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Relicanth[] = INCBIN_U32("graphics/pokemon/relicanth/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon.4bpp"); +#else + const u8 gMonIcon_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Relicanth[] = INCBIN_U8("graphics/pokemon/relicanth/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9187,19 +13367,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/anim_frontf.4bpp.lz"); const u32 gMonBackPic_RelicanthF[] = INCBIN_U32("graphics/pokemon/relicanth/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_RelicanthF[] = INCBIN_COMP("graphics/pokemon/relicanth/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_RELICANTH #if P_FAMILY_LUVDISC +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front.4bpp.lz"); const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal.gbapal.lz"); const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back.4bpp.lz"); const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Luvdisc[] = INCBIN_U32("graphics/pokemon/luvdisc/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon.4bpp"); +#else + const u8 gMonIcon_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Luvdisc[] = INCBIN_U8("graphics/pokemon/luvdisc/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9213,11 +13406,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LUVDISC #if P_FAMILY_BAGON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front.4bpp.lz"); const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal.gbapal.lz"); const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back.4bpp.lz"); const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Bagon[] = INCBIN_U32("graphics/pokemon/bagon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon.4bpp"); +#else + const u8 gMonIcon_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Bagon[] = INCBIN_U8("graphics/pokemon/bagon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9229,11 +13433,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front.4bpp.lz"); const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal.gbapal.lz"); const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back.4bpp.lz"); const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Shelgon[] = INCBIN_U32("graphics/pokemon/shelgon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon.4bpp"); +#else + const u8 gMonIcon_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Shelgon[] = INCBIN_U8("graphics/pokemon/shelgon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9245,11 +13460,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front.4bpp.lz"); const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal.gbapal.lz"); const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back.4bpp.lz"); const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Salamence[] = INCBIN_U32("graphics/pokemon/salamence/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon.4bpp"); +#else + const u8 gMonIcon_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Salamence[] = INCBIN_U8("graphics/pokemon/salamence/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9278,11 +13504,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_BAGON #if P_FAMILY_BELDUM +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front.4bpp.lz"); const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal.gbapal.lz"); const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back.4bpp.lz"); const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Beldum[] = INCBIN_U32("graphics/pokemon/beldum/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon.4bpp"); +#else + const u8 gMonIcon_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Beldum[] = INCBIN_U8("graphics/pokemon/beldum/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9294,11 +13531,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front.4bpp.lz"); const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal.gbapal.lz"); const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back.4bpp.lz"); const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Metang[] = INCBIN_U32("graphics/pokemon/metang/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Metang[] = INCBIN_U32("graphics/pokemon/metang/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon.4bpp"); +#else + const u8 gMonIcon_Metang[] = INCBIN_U8("graphics/pokemon/metang/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Metang[] = INCBIN_U8("graphics/pokemon/metang/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9310,11 +13558,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front.4bpp.lz"); const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal.gbapal.lz"); const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back.4bpp.lz"); const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Metagross[] = INCBIN_U32("graphics/pokemon/metagross/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon.4bpp"); +#else + const u8 gMonIcon_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Metagross[] = INCBIN_U8("graphics/pokemon/metagross/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9343,11 +13602,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_BELDUM #if P_FAMILY_REGIROCK +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front.4bpp.lz"); const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal.gbapal.lz"); const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back.4bpp.lz"); const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Regirock[] = INCBIN_U32("graphics/pokemon/regirock/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon.4bpp"); +#else + const u8 gMonIcon_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Regirock[] = INCBIN_U8("graphics/pokemon/regirock/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9361,11 +13631,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_REGIROCK #if P_FAMILY_REGICE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front.4bpp.lz"); const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal.gbapal.lz"); const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back.4bpp.lz"); const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Regice[] = INCBIN_U32("graphics/pokemon/regice/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Regice[] = INCBIN_U32("graphics/pokemon/regice/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon.4bpp"); +#else + const u8 gMonIcon_Regice[] = INCBIN_U8("graphics/pokemon/regice/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Regice[] = INCBIN_U8("graphics/pokemon/regice/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9379,11 +13660,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_REGICE #if P_FAMILY_REGISTEEL +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front.4bpp.lz"); const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal.gbapal.lz"); const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back.4bpp.lz"); const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Registeel[] = INCBIN_U32("graphics/pokemon/registeel/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon.4bpp"); +#else + const u8 gMonIcon_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Registeel[] = INCBIN_U8("graphics/pokemon/registeel/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9397,11 +13689,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_REGISTEEL #if P_FAMILY_LATIAS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front.4bpp.lz"); const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal.gbapal.lz"); const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back.4bpp.lz"); const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Latias[] = INCBIN_U32("graphics/pokemon/latias/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Latias[] = INCBIN_U32("graphics/pokemon/latias/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon.4bpp"); +#else + const u8 gMonIcon_Latias[] = INCBIN_U8("graphics/pokemon/latias/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Latias[] = INCBIN_U8("graphics/pokemon/latias/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9430,11 +13733,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LATIAS #if P_FAMILY_LATIOS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front.4bpp.lz"); const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal.gbapal.lz"); const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back.4bpp.lz"); const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Latios[] = INCBIN_U32("graphics/pokemon/latios/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Latios[] = INCBIN_U32("graphics/pokemon/latios/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon.4bpp"); +#else + const u8 gMonIcon_Latios[] = INCBIN_U8("graphics/pokemon/latios/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Latios[] = INCBIN_U8("graphics/pokemon/latios/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9463,11 +13777,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_LATIOS #if P_FAMILY_KYOGRE +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front.4bpp.lz"); const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal.gbapal.lz"); const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back.4bpp.lz"); const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Kyogre[] = INCBIN_U32("graphics/pokemon/kyogre/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon.4bpp"); +#else + const u8 gMonIcon_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Kyogre[] = INCBIN_U8("graphics/pokemon/kyogre/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9496,11 +13821,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_KYOGRE #if P_FAMILY_GROUDON +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front.4bpp.lz"); const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal.gbapal.lz"); const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back.4bpp.lz"); const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Groudon[] = INCBIN_U32("graphics/pokemon/groudon/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon.4bpp"); +#else + const u8 gMonIcon_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Groudon[] = INCBIN_U8("graphics/pokemon/groudon/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9529,11 +13865,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_GROUDON #if P_FAMILY_RAYQUAZA +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front.4bpp.lz"); const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal.gbapal.lz"); const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back.4bpp.lz"); const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Rayquaza[] = INCBIN_U32("graphics/pokemon/rayquaza/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon.4bpp"); +#else + const u8 gMonIcon_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Rayquaza[] = INCBIN_U8("graphics/pokemon/rayquaza/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9562,11 +13909,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_RAYQUAZA #if P_FAMILY_JIRACHI +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front.4bpp.lz"); const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal.gbapal.lz"); const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back.4bpp.lz"); const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/normal_gba.gbapal.lz"); + const u32 gMonBackPic_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_Jirachi[] = INCBIN_U32("graphics/pokemon/jirachi/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon.4bpp"); +#else + const u8 gMonIcon_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Jirachi[] = INCBIN_U8("graphics/pokemon/jirachi/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9580,11 +13938,22 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_JIRACHI #if P_FAMILY_DEOXYS +#if !P_GBA_STYLE_SPECIES_GFX const u32 gMonFrontPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front.4bpp.lz"); const u32 gMonPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/normal.gbapal.lz"); const u32 gMonBackPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/back.4bpp.lz"); const u32 gMonShinyPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/shiny.gbapal.lz"); +#else + const u32 gMonFrontPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/anim_front_gba.4bpp.lz"); + const u32 gMonPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/normal_gba.gbapal.lz"); + const u32 gMonBackPic_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/back_gba.4bpp.lz"); + const u32 gMonShinyPalette_DeoxysNormal[] = INCBIN_U32("graphics/pokemon/deoxys/shiny_gba.gbapal.lz"); +#endif //P_GBA_STYLE_SPECIES_GFX +#if !P_GBA_STYLE_SPECIES_ICONS const u8 gMonIcon_DeoxysNormal[] = INCBIN_U8("graphics/pokemon/deoxys/icon.4bpp"); +#else + const u8 gMonIcon_DeoxysNormal[] = INCBIN_U8("graphics/pokemon/deoxys/icon_gba.4bpp"); +#endif //P_GBA_STYLE_SPECIES_ICONS #if P_FOOTPRINTS const u8 gMonFootprint_Deoxys[] = INCBIN_U8("graphics/pokemon/deoxys/footprint.1bpp"); #endif //P_FOOTPRINTS @@ -9792,11 +14161,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/anim_frontf.4bpp.lz"); const u32 gMonBackPic_StarlyF[] = INCBIN_U32("graphics/pokemon/starly/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_StarlyF[] = INCBIN_COMP("graphics/pokemon/starly/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/anim_front.4bpp.lz"); const u32 gMonPalette_Staravia[] = INCBIN_U32("graphics/pokemon/staravia/normal.gbapal.lz"); @@ -9814,11 +14185,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/anim_frontf.4bpp.lz"); const u32 gMonBackPic_StaraviaF[] = INCBIN_U32("graphics/pokemon/staravia/back.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_StaraviaF[] = INCBIN_COMP("graphics/pokemon/staravia/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/anim_front.4bpp.lz"); const u32 gMonPalette_Staraptor[] = INCBIN_U32("graphics/pokemon/staraptor/normal.gbapal.lz"); @@ -9836,10 +14209,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_StaraptorF[] = INCBIN_U32("graphics/pokemon/staraptor/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_StaraptorF[] = INCBIN_COMP("graphics/pokemon/staraptor/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_STARLY #if P_FAMILY_BIDOOF @@ -9859,11 +14234,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/anim_frontf.4bpp.lz"); const u32 gMonBackPic_BidoofF[] = INCBIN_U32("graphics/pokemon/bidoof/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BidoofF[] = INCBIN_COMP("graphics/pokemon/bidoof/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/anim_front.4bpp.lz"); const u32 gMonPalette_Bibarel[] = INCBIN_U32("graphics/pokemon/bibarel/normal.gbapal.lz"); @@ -9881,10 +14258,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_BibarelF[] = INCBIN_U32("graphics/pokemon/bibarel/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BibarelF[] = INCBIN_COMP("graphics/pokemon/bibarel/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_BIDOOF #if P_FAMILY_KRICKETOT @@ -9904,11 +14283,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KricketotF[] = INCBIN_U32("graphics/pokemon/kricketot/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_KricketotF[] = INCBIN_COMP("graphics/pokemon/kricketot/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/anim_front.4bpp.lz"); const u32 gMonPalette_Kricketune[] = INCBIN_U32("graphics/pokemon/kricketune/normal.gbapal.lz"); @@ -9926,11 +14307,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/anim_frontf.4bpp.lz"); const u32 gMonBackPic_KricketuneF[] = INCBIN_U32("graphics/pokemon/kricketune/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_KricketuneF[] = INCBIN_COMP("graphics/pokemon/kricketune/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_KRICKETOT #if P_FAMILY_SHINX @@ -9950,11 +14333,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ShinxF[] = INCBIN_U32("graphics/pokemon/shinx/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ShinxF[] = INCBIN_COMP("graphics/pokemon/shinx/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/anim_front.4bpp.lz"); const u32 gMonPalette_Luxio[] = INCBIN_U32("graphics/pokemon/luxio/normal.gbapal.lz"); @@ -9972,11 +14357,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LuxioF[] = INCBIN_U32("graphics/pokemon/luxio/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LuxioF[] = INCBIN_COMP("graphics/pokemon/luxio/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/anim_front.4bpp.lz"); const u32 gMonPalette_Luxray[] = INCBIN_U32("graphics/pokemon/luxray/normal.gbapal.lz"); @@ -9994,11 +14381,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LuxrayF[] = INCBIN_U32("graphics/pokemon/luxray/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LuxrayF[] = INCBIN_COMP("graphics/pokemon/luxray/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SHINX #if P_FAMILY_CRANIDOS @@ -10076,32 +14465,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gMonShinyPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/shiny.gbapal.lz"); const u8 gMonIcon_BurmyPlantCloak[] = INCBIN_U8("graphics/pokemon/burmy/icon.4bpp"); #if P_FOOTPRINTS - const u8 gMonFootprint_Burmy[] = INCBIN_U8("graphics/pokemon/burmy/plant/footprint.1bpp"); + const u8 gMonFootprint_Burmy[] = INCBIN_U8("graphics/pokemon/burmy/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/anim_front.4bpp.lz"); - const u32 gMonPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/normal.gbapal.lz"); - const u32 gMonBackPic_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/back.4bpp.lz"); - const u32 gMonShinyPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/shiny.gbapal.lz"); - const u8 gMonIcon_BurmySandyCloak[] = INCBIN_U8("graphics/pokemon/burmy/sandy_cloak/icon.4bpp"); + const u32 gMonFrontPic_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/anim_front.4bpp.lz"); + const u32 gMonPalette_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/normal.gbapal.lz"); + const u32 gMonBackPic_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/back.4bpp.lz"); + const u32 gMonShinyPalette_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/shiny.gbapal.lz"); + const u8 gMonIcon_BurmySandy[] = INCBIN_U8("graphics/pokemon/burmy/sandy/icon.4bpp"); - const u32 gMonFrontPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/anim_front.4bpp.lz"); - const u32 gMonPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/normal.gbapal.lz"); - const u32 gMonBackPic_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/back.4bpp.lz"); - const u32 gMonShinyPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/shiny.gbapal.lz"); - const u8 gMonIcon_BurmyTrashCloak[] = INCBIN_U8("graphics/pokemon/burmy/trash_cloak/icon.4bpp"); + const u32 gMonFrontPic_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/anim_front.4bpp.lz"); + const u32 gMonPalette_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/normal.gbapal.lz"); + const u32 gMonBackPic_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/back.4bpp.lz"); + const u32 gMonShinyPalette_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/shiny.gbapal.lz"); + const u8 gMonIcon_BurmyTrash[] = INCBIN_U8("graphics/pokemon/burmy/trash/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BurmyPlantCloak[] = INCBIN_COMP("graphics/pokemon/burmy/overworld.4bpp"); - const u32 gObjectEventPic_BurmySandyCloak[] = INCBIN_COMP("graphics/pokemon/burmy/sandy_cloak/overworld.4bpp"); - const u32 gObjectEventPic_BurmyTrashCloak[] = INCBIN_COMP("graphics/pokemon/burmy/trash_cloak/overworld.4bpp"); + const u32 gObjectEventPic_BurmySandy[] = INCBIN_COMP("graphics/pokemon/burmy/sandy/overworld.4bpp"); + const u32 gObjectEventPic_BurmyTrash[] = INCBIN_COMP("graphics/pokemon/burmy/trash/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE const u32 gOverworldPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/overworld_normal.gbapal.lz"); const u32 gShinyOverworldPalette_BurmyPlantCloak[] = INCBIN_U32("graphics/pokemon/burmy/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_BurmySandyCloak[] = INCBIN_U32("graphics/pokemon/burmy/sandy_cloak/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_BurmyTrashCloak[] = INCBIN_U32("graphics/pokemon/burmy/trash_cloak/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_BurmySandy[] = INCBIN_U32("graphics/pokemon/burmy/sandy/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_BurmyTrash[] = INCBIN_U32("graphics/pokemon/burmy/trash/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -10111,32 +14500,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gMonShinyPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/shiny.gbapal.lz"); const u8 gMonIcon_WormadamPlantCloak[] = INCBIN_U8("graphics/pokemon/wormadam/icon.4bpp"); #if P_FOOTPRINTS - const u8 gMonFootprint_Wormadam[] = INCBIN_U8("graphics/pokemon/wormadam/plant/footprint.1bpp"); + const u8 gMonFootprint_Wormadam[] = INCBIN_U8("graphics/pokemon/wormadam/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/anim_front.4bpp.lz"); - const u32 gMonPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/normal.gbapal.lz"); - const u32 gMonBackPic_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/back.4bpp.lz"); - const u32 gMonShinyPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/shiny.gbapal.lz"); - const u8 gMonIcon_WormadamSandyCloak[] = INCBIN_U8("graphics/pokemon/wormadam/sandy_cloak/icon.4bpp"); + const u32 gMonFrontPic_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/anim_front.4bpp.lz"); + const u32 gMonPalette_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/normal.gbapal.lz"); + const u32 gMonBackPic_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/back.4bpp.lz"); + const u32 gMonShinyPalette_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/shiny.gbapal.lz"); + const u8 gMonIcon_WormadamSandy[] = INCBIN_U8("graphics/pokemon/wormadam/sandy/icon.4bpp"); - const u32 gMonFrontPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/anim_front.4bpp.lz"); - const u32 gMonPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/normal.gbapal.lz"); - const u32 gMonBackPic_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/back.4bpp.lz"); - const u32 gMonShinyPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/shiny.gbapal.lz"); - const u8 gMonIcon_WormadamTrashCloak[] = INCBIN_U8("graphics/pokemon/wormadam/trash_cloak/icon.4bpp"); + const u32 gMonFrontPic_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/anim_front.4bpp.lz"); + const u32 gMonPalette_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/normal.gbapal.lz"); + const u32 gMonBackPic_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/back.4bpp.lz"); + const u32 gMonShinyPalette_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/shiny.gbapal.lz"); + const u8 gMonIcon_WormadamTrash[] = INCBIN_U8("graphics/pokemon/wormadam/trash/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_WormadamPlantCloak[] = INCBIN_COMP("graphics/pokemon/wormadam/overworld.4bpp"); - const u32 gObjectEventPic_WormadamSandyCloak[] = INCBIN_COMP("graphics/pokemon/wormadam/sandy_cloak/overworld.4bpp"); - const u32 gObjectEventPic_WormadamTrashCloak[] = INCBIN_COMP("graphics/pokemon/wormadam/trash_cloak/overworld.4bpp"); + const u32 gObjectEventPic_WormadamSandy[] = INCBIN_COMP("graphics/pokemon/wormadam/sandy/overworld.4bpp"); + const u32 gObjectEventPic_WormadamTrash[] = INCBIN_COMP("graphics/pokemon/wormadam/trash/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE const u32 gOverworldPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/overworld_normal.gbapal.lz"); const u32 gShinyOverworldPalette_WormadamPlantCloak[] = INCBIN_U32("graphics/pokemon/wormadam/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_WormadamSandyCloak[] = INCBIN_U32("graphics/pokemon/wormadam/sandy_cloak/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_WormadamTrashCloak[] = INCBIN_U32("graphics/pokemon/wormadam/trash_cloak/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_WormadamSandy[] = INCBIN_U32("graphics/pokemon/wormadam/sandy/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_WormadamTrash[] = INCBIN_U32("graphics/pokemon/wormadam/trash/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -10174,11 +14563,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/normalf.gbapal.lz"); const u32 gMonShinyPalette_CombeeF[] = INCBIN_U32("graphics/pokemon/combee/shinyf.gbapal.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_CombeeF[] = INCBIN_COMP("graphics/pokemon/combee/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/anim_front.4bpp.lz"); const u32 gMonPalette_Vespiquen[] = INCBIN_U32("graphics/pokemon/vespiquen/normal.gbapal.lz"); @@ -10214,10 +14605,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_PachirisuF[] = INCBIN_U32("graphics/pokemon/pachirisu/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_PachirisuF[] = INCBIN_COMP("graphics/pokemon/pachirisu/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PACHIRISU #if P_FAMILY_BUIZEL @@ -10237,10 +14630,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonBackPic_BuizelF[] = INCBIN_U32("graphics/pokemon/buizel/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_BuizelF[] = INCBIN_COMP("graphics/pokemon/buizel/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/anim_front.4bpp.lz"); const u32 gMonPalette_Floatzel[] = INCBIN_U32("graphics/pokemon/floatzel/normal.gbapal.lz"); @@ -10258,10 +14653,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonBackPic_FloatzelF[] = INCBIN_U32("graphics/pokemon/floatzel/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_FloatzelF[] = INCBIN_COMP("graphics/pokemon/floatzel/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_BUIZEL #if P_FAMILY_CHERUBI @@ -10318,20 +14715,20 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Shellos[] = INCBIN_U8("graphics/pokemon/shellos/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/anim_front.4bpp.lz"); - const u32 gMonPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/normal.gbapal.lz"); - const u32 gMonBackPic_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/back.4bpp.lz"); - const u32 gMonShinyPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/shiny.gbapal.lz"); - const u8 gMonIcon_ShellosEastSea[] = INCBIN_U8("graphics/pokemon/shellos/east_sea/icon.4bpp"); + const u32 gMonFrontPic_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/anim_front.4bpp.lz"); + const u32 gMonPalette_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/normal.gbapal.lz"); + const u32 gMonBackPic_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/back.4bpp.lz"); + const u32 gMonShinyPalette_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/shiny.gbapal.lz"); + const u8 gMonIcon_ShellosEast[] = INCBIN_U8("graphics/pokemon/shellos/east/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ShellosWestSea[] = INCBIN_COMP("graphics/pokemon/shellos/overworld.4bpp"); - const u32 gObjectEventPic_ShellosEastSea[] = INCBIN_COMP("graphics/pokemon/shellos/east_sea/overworld.4bpp"); + const u32 gObjectEventPic_ShellosEast[] = INCBIN_COMP("graphics/pokemon/shellos/east/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE const u32 gOverworldPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/overworld_normal.gbapal.lz"); const u32 gShinyOverworldPalette_ShellosWestSea[] = INCBIN_U32("graphics/pokemon/shellos/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_ShellosEastSea[] = INCBIN_U32("graphics/pokemon/shellos/east_sea/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_ShellosEast[] = INCBIN_U32("graphics/pokemon/shellos/east/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -10344,19 +14741,19 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Gastrodon[] = INCBIN_U8("graphics/pokemon/gastrodon/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/anim_front.4bpp.lz"); - const u32 gMonPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/normal.gbapal.lz"); - const u32 gMonBackPic_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/back.4bpp.lz"); - const u32 gMonShinyPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/shiny.gbapal.lz"); - const u8 gMonIcon_GastrodonEastSea[] = INCBIN_U8("graphics/pokemon/gastrodon/east_sea/icon.4bpp"); + const u32 gMonFrontPic_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/anim_front.4bpp.lz"); + const u32 gMonPalette_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/normal.gbapal.lz"); + const u32 gMonBackPic_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/back.4bpp.lz"); + const u32 gMonShinyPalette_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/shiny.gbapal.lz"); + const u8 gMonIcon_GastrodonEast[] = INCBIN_U8("graphics/pokemon/gastrodon/east/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GastrodonWestSea[] = INCBIN_COMP("graphics/pokemon/gastrodon/overworld.4bpp"); - const u32 gObjectEventPic_GastrodonEastSea[] = INCBIN_COMP("graphics/pokemon/gastrodon/east_sea/overworld.4bpp"); + const u32 gObjectEventPic_GastrodonEast[] = INCBIN_COMP("graphics/pokemon/gastrodon/east/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE const u32 gOverworldPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/overworld_normal.gbapal.lz"); const u32 gShinyOverworldPalette_GastrodonWestSea[] = INCBIN_U32("graphics/pokemon/gastrodon/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_GastrodonEastSea[] = INCBIN_U32("graphics/pokemon/gastrodon/east_sea/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_GastrodonEast[] = INCBIN_U32("graphics/pokemon/gastrodon/east/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_SHELLOS @@ -10599,11 +14996,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GibleF[] = INCBIN_U32("graphics/pokemon/gible/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GibleF[] = INCBIN_COMP("graphics/pokemon/gible/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/anim_front.4bpp.lz"); const u32 gMonPalette_Gabite[] = INCBIN_U32("graphics/pokemon/gabite/normal.gbapal.lz"); @@ -10621,11 +15020,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/anim_frontf.4bpp.lz"); const u32 gMonBackPic_GabiteF[] = INCBIN_U32("graphics/pokemon/gabite/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GabiteF[] = INCBIN_COMP("graphics/pokemon/gabite/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/anim_front.4bpp.lz"); const u32 gMonPalette_Garchomp[] = INCBIN_U32("graphics/pokemon/garchomp/normal.gbapal.lz"); @@ -10643,10 +15044,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_GarchompF[] = INCBIN_U32("graphics/pokemon/garchomp/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_GarchompF[] = INCBIN_COMP("graphics/pokemon/garchomp/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_GarchompMega[] = INCBIN_U32("graphics/pokemon/garchomp/mega/front.4bpp.lz"); @@ -10730,6 +15133,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/normalf.gbapal.lz"); const u32 gMonShinyPalette_HippopotasF[] = INCBIN_U32("graphics/pokemon/hippopotas/shinyf.gbapal.lz"); #if P_CUSTOM_GENDER_DIFF_ICONS @@ -10738,6 +15142,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_HippopotasF[] = INCBIN_COMP("graphics/pokemon/hippopotas/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/anim_front.4bpp.lz"); const u32 gMonPalette_Hippowdon[] = INCBIN_U32("graphics/pokemon/hippowdon/normal.gbapal.lz"); @@ -10755,6 +15160,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/normalf.gbapal.lz"); const u32 gMonShinyPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/shinyf.gbapal.lz"); #if P_CUSTOM_GENDER_DIFF_ICONS @@ -10766,6 +15172,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gShinyOverworldPalette_HippowdonF[] = INCBIN_U32("graphics/pokemon/hippowdon/overworld_shinyf.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_HIPPOPOTAS #if P_FAMILY_SKORUPI @@ -10819,11 +15226,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/anim_frontf.4bpp.lz"); const u32 gMonBackPic_CroagunkF[] = INCBIN_U32("graphics/pokemon/croagunk/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_CroagunkF[] = INCBIN_COMP("graphics/pokemon/croagunk/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_front.4bpp.lz"); const u32 gMonPalette_Toxicroak[] = INCBIN_U32("graphics/pokemon/toxicroak/normal.gbapal.lz"); @@ -10841,11 +15250,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/anim_frontf.4bpp.lz"); const u32 gMonBackPic_ToxicroakF[] = INCBIN_U32("graphics/pokemon/toxicroak/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_ToxicroakF[] = INCBIN_COMP("graphics/pokemon/toxicroak/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CROAGUNK #if P_FAMILY_CARNIVINE @@ -10883,11 +15294,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_FinneonF[] = INCBIN_U32("graphics/pokemon/finneon/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_FinneonF[] = INCBIN_COMP("graphics/pokemon/finneon/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/anim_front.4bpp.lz"); const u32 gMonPalette_Lumineon[] = INCBIN_U32("graphics/pokemon/lumineon/normal.gbapal.lz"); @@ -10905,11 +15318,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/anim_frontf.4bpp.lz"); const u32 gMonBackPic_LumineonF[] = INCBIN_U32("graphics/pokemon/lumineon/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_LumineonF[] = INCBIN_COMP("graphics/pokemon/lumineon/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FINNEON #if P_FAMILY_SNOVER @@ -10929,11 +15344,13 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/anim_frontf.4bpp.lz"); const u32 gMonBackPic_SnoverF[] = INCBIN_U32("graphics/pokemon/snover/backf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_SnoverF[] = INCBIN_COMP("graphics/pokemon/snover/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_front.4bpp.lz"); const u32 gMonPalette_Abomasnow[] = INCBIN_U32("graphics/pokemon/abomasnow/normal.gbapal.lz"); @@ -10951,10 +15368,12 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_AbomasnowF[] = INCBIN_U32("graphics/pokemon/abomasnow/anim_frontf.4bpp.lz"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_AbomasnowF[] = INCBIN_COMP("graphics/pokemon/abomasnow/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS const u32 gMonFrontPic_AbomasnowMega[] = INCBIN_U32("graphics/pokemon/abomasnow/mega/front.4bpp.lz"); @@ -11632,16 +16051,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/front.4bpp.lz"); - const u32 gMonPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_SamurottHisuian[] = INCBIN_U8("graphics/pokemon/samurott/hisuian/icon.4bpp"); + const u32 gMonFrontPic_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/front.4bpp.lz"); + const u32 gMonPalette_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_SamurottHisui[] = INCBIN_U8("graphics/pokemon/samurott/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SamurottHisuian[] = INCBIN_COMP("graphics/pokemon/samurott/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_SamurottHisui[] = INCBIN_COMP("graphics/pokemon/samurott/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SamurottHisuian[] = INCBIN_U32("graphics/pokemon/samurott/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SamurottHisui[] = INCBIN_U32("graphics/pokemon/samurott/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -11950,6 +16369,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/anim_frontf.4bpp.lz"); const u32 gMonPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/normalf.gbapal.lz"); const u32 gMonBackPic_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/backf.4bpp.lz"); @@ -11962,6 +16382,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gShinyOverworldPalette_UnfezantF[] = INCBIN_U32("graphics/pokemon/unfezant/overworld_shinyf.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PIDOVE #if P_FAMILY_BLITZLE @@ -12453,16 +16874,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/front.4bpp.lz"); - const u32 gMonPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_LilligantHisuian[] = INCBIN_U8("graphics/pokemon/lilligant/hisuian/icon.4bpp"); + const u32 gMonFrontPic_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/front.4bpp.lz"); + const u32 gMonPalette_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_LilligantHisui[] = INCBIN_U8("graphics/pokemon/lilligant/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_LilligantHisuian[] = INCBIN_COMP("graphics/pokemon/lilligant/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_LilligantHisui[] = INCBIN_COMP("graphics/pokemon/lilligant/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_LilligantHisuian[] = INCBIN_U32("graphics/pokemon/lilligant/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_LilligantHisui[] = INCBIN_U32("graphics/pokemon/lilligant/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -12510,29 +16931,29 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/front.4bpp.lz"); - const u32 gMonPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/normal.gbapal.lz"); - const u32 gMonBackPic_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); - const u32 gMonShinyPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); - const u8 gMonIcon_BasculegionMale[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); + const u32 gMonFrontPic_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/front.4bpp.lz"); + const u32 gMonPalette_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/normal.gbapal.lz"); + const u32 gMonBackPic_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/shiny.gbapal.lz"); + const u8 gMonIcon_BasculegionM[] = INCBIN_U8("graphics/pokemon/basculegion/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Basculegion[] = INCBIN_U8("graphics/pokemon/basculegion/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/front.4bpp.lz"); - const u32 gMonPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/normal.gbapal.lz"); - const u32 gMonBackPic_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/back.4bpp.lz"); - const u32 gMonShinyPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/shiny.gbapal.lz"); - const u8 gMonIcon_BasculegionFemale[] = INCBIN_U8("graphics/pokemon/basculegion/female/icon.4bpp"); + const u32 gMonFrontPic_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/front.4bpp.lz"); + const u32 gMonPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/normal.gbapal.lz"); + const u32 gMonBackPic_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/back.4bpp.lz"); + const u32 gMonShinyPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/shiny.gbapal.lz"); + const u8 gMonIcon_BasculegionF[] = INCBIN_U8("graphics/pokemon/basculegion/f/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_BasculegionMale[] = INCBIN_COMP("graphics/pokemon/basculegion/overworld.4bpp"); - const u32 gObjectEventPic_BasculegionFemale[] = INCBIN_COMP("graphics/pokemon/basculegion/female/overworld.4bpp"); + const u32 gObjectEventPic_BasculegionM[] = INCBIN_COMP("graphics/pokemon/basculegion/overworld.4bpp"); + const u32 gObjectEventPic_BasculegionF[] = INCBIN_COMP("graphics/pokemon/basculegion/f/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_BasculegionMale[] = INCBIN_U32("graphics/pokemon/basculegion/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_BasculegionFemale[] = INCBIN_U32("graphics/pokemon/basculegion/female/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_BasculegionM[] = INCBIN_U32("graphics/pokemon/basculegion/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_BasculegionF[] = INCBIN_U32("graphics/pokemon/basculegion/f/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -12605,72 +17026,72 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/anim_front.4bpp.lz"); - const u32 gMonPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/normal.gbapal.lz"); - const u32 gMonBackPic_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/back.4bpp.lz"); - const u32 gMonShinyPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/shiny.gbapal.lz"); - const u8 gMonIcon_DarmanitanStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/icon.4bpp"); + const u32 gMonFrontPic_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/anim_front.4bpp.lz"); + const u32 gMonPalette_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanStandard[] = INCBIN_U8("graphics/pokemon/darmanitan/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Darmanitan[] = INCBIN_U8("graphics/pokemon/darmanitan/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DarmanitanStandardMode[] = INCBIN_COMP("graphics/pokemon/darmanitan/overworld.4bpp"); + const u32 gObjectEventPic_DarmanitanStandard[] = INCBIN_COMP("graphics/pokemon/darmanitan/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DarmanitanStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DarmanitanStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/anim_front.4bpp.lz"); - const u32 gMonPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/normal.gbapal.lz"); - const u32 gMonBackPic_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/back.4bpp.lz"); - const u32 gMonShinyPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/shiny.gbapal.lz"); - const u8 gMonIcon_DarmanitanZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/icon.4bpp"); + const u32 gMonFrontPic_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/anim_front.4bpp.lz"); + const u32 gMonPalette_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanZen[] = INCBIN_U8("graphics/pokemon/darmanitan/zen/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_DarmanitanZenMode[] = INCBIN_COMP("graphics/pokemon/darmanitan/zen_mode/overworld.4bpp"); + // const u32 gObjectEventPic_DarmanitanZen[] = INCBIN_COMP("graphics/pokemon/darmanitan/zen/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_DarmanitanZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_DarmanitanZen[] = INCBIN_U32("graphics/pokemon/darmanitan/zen/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/front.4bpp.lz"); - const u32 gMonPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_DarumakaGalarian[] = INCBIN_U8("graphics/pokemon/darumaka/galarian/icon.4bpp"); + const u32 gMonFrontPic_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/front.4bpp.lz"); + const u32 gMonPalette_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/normal.gbapal.lz"); + const u32 gMonBackPic_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/shiny.gbapal.lz"); + const u8 gMonIcon_DarumakaGalar[] = INCBIN_U8("graphics/pokemon/darumaka/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DarumakaGalarian[] = INCBIN_COMP("graphics/pokemon/darumaka/galarian/overworld.4bpp"); + const u32 gObjectEventPic_DarumakaGalar[] = INCBIN_COMP("graphics/pokemon/darumaka/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DarumakaGalarian[] = INCBIN_U32("graphics/pokemon/darumaka/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DarumakaGalar[] = INCBIN_U32("graphics/pokemon/darumaka/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/front.4bpp.lz"); - const u32 gMonPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_DarmanitanGalarianStandardMode[] = INCBIN_U8("graphics/pokemon/darmanitan/galarian/icon.4bpp"); + const u32 gMonFrontPic_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/front.4bpp.lz"); + const u32 gMonPalette_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanGalarStandard[] = INCBIN_U8("graphics/pokemon/darmanitan/galar_standard/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DarmanitanGalarianStandardMode[] = INCBIN_COMP("graphics/pokemon/darmanitan/galarian/overworld.4bpp"); + const u32 gObjectEventPic_DarmanitanGalarStandard[] = INCBIN_COMP("graphics/pokemon/darmanitan/galar_standard/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DarmanitanGalarianStandardMode[] = INCBIN_U32("graphics/pokemon/darmanitan/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DarmanitanGalarStandard[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_standard/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/front.4bpp.lz"); - const u32 gMonPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_DarmanitanGalarianZenMode[] = INCBIN_U8("graphics/pokemon/darmanitan/zen_mode/galarian/icon.4bpp"); + const u32 gMonFrontPic_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/front.4bpp.lz"); + const u32 gMonPalette_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/normal.gbapal.lz"); + const u32 gMonBackPic_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/back.4bpp.lz"); + const u32 gMonShinyPalette_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/shiny.gbapal.lz"); + const u8 gMonIcon_DarmanitanGalarZen[] = INCBIN_U8("graphics/pokemon/darmanitan/galar_zen/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_DarmanitanGalarianZenMode[] = INCBIN_COMP("graphics/pokemon/darmanitan/zen_mode/galarian/overworld.4bpp"); + // const u32 gObjectEventPic_DarmanitanGalarZen[] = INCBIN_COMP("graphics/pokemon/darmanitan/galar_zen/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_DarmanitanGalarianZenMode[] = INCBIN_U32("graphics/pokemon/darmanitan/zen_mode/galarian/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_DarmanitanGalarZen[] = INCBIN_U32("graphics/pokemon/darmanitan/galar_zen/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS @@ -12814,16 +17235,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/front.4bpp.lz"); - const u32 gMonPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_YamaskGalarian[] = INCBIN_U8("graphics/pokemon/yamask/galarian/icon.4bpp"); + const u32 gMonFrontPic_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/front.4bpp.lz"); + const u32 gMonPalette_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/normal.gbapal.lz"); + const u32 gMonBackPic_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/shiny.gbapal.lz"); + const u8 gMonIcon_YamaskGalar[] = INCBIN_U8("graphics/pokemon/yamask/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_YamaskGalarian[] = INCBIN_COMP("graphics/pokemon/yamask/galarian/overworld.4bpp"); + const u32 gObjectEventPic_YamaskGalar[] = INCBIN_COMP("graphics/pokemon/yamask/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_YamaskGalarian[] = INCBIN_U32("graphics/pokemon/yamask/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_YamaskGalar[] = INCBIN_U32("graphics/pokemon/yamask/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -12947,16 +17368,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_GarbodorGigantamax[] = INCBIN_U8("graphics/pokemon/garbodor/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/front.4bpp.lz"); + const u32 gMonBackPic_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/back.4bpp.lz"); + const u32 gMonPalette_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_GarbodorGmax[] = INCBIN_U8("graphics/pokemon/garbodor/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_GarbodorGigantamax[] = INCBIN_COMP("graphics/pokemon/garbodor/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_GarbodorGmax[] = INCBIN_COMP("graphics/pokemon/garbodor/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_GarbodorGigantamax[] = INCBIN_U32("graphics/pokemon/garbodor/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_GarbodorGmax[] = INCBIN_U32("graphics/pokemon/garbodor/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -12996,29 +17417,29 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/front.4bpp.lz"); - const u32 gMonPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_ZoruaHisuian[] = INCBIN_U8("graphics/pokemon/zorua/hisuian/icon.4bpp"); + const u32 gMonFrontPic_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/front.4bpp.lz"); + const u32 gMonPalette_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_ZoruaHisui[] = INCBIN_U8("graphics/pokemon/zorua/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZoruaHisuian[] = INCBIN_COMP("graphics/pokemon/zorua/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_ZoruaHisui[] = INCBIN_COMP("graphics/pokemon/zorua/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZoruaHisuian[] = INCBIN_U32("graphics/pokemon/zorua/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZoruaHisui[] = INCBIN_U32("graphics/pokemon/zorua/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/front.4bpp.lz"); - const u32 gMonPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_ZoroarkHisuian[] = INCBIN_U8("graphics/pokemon/zoroark/hisuian/icon.4bpp"); + const u32 gMonFrontPic_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/front.4bpp.lz"); + const u32 gMonPalette_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_ZoroarkHisui[] = INCBIN_U8("graphics/pokemon/zoroark/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZoroarkHisuian[] = INCBIN_COMP("graphics/pokemon/zoroark/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_ZoroarkHisui[] = INCBIN_COMP("graphics/pokemon/zoroark/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZoroarkHisuian[] = INCBIN_U32("graphics/pokemon/zoroark/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZoroarkHisui[] = INCBIN_U32("graphics/pokemon/zoroark/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -13430,6 +17851,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/anim_frontf.4bpp.lz"); const u32 gMonPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/normalf.gbapal.lz"); const u32 gMonBackPic_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/backf.4bpp.lz"); @@ -13442,6 +17864,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gShinyOverworldPalette_FrillishF[] = INCBIN_U32("graphics/pokemon/frillish/overworld_shinyf.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES const u32 gMonFrontPic_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/anim_front.4bpp.lz"); const u32 gMonPalette_Jellicent[] = INCBIN_U32("graphics/pokemon/jellicent/normal.gbapal.lz"); @@ -13459,6 +17882,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/anim_frontf.4bpp.lz"); const u32 gMonPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/normalf.gbapal.lz"); const u32 gMonBackPic_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/backf.4bpp.lz"); @@ -13471,6 +17895,7 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gShinyOverworldPalette_JellicentF[] = INCBIN_U32("graphics/pokemon/jellicent/overworld_shinyf.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FRILLISH #if P_FAMILY_ALOMOMOLA @@ -13897,16 +18322,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GALARIAN_FORMS - const u32 gMonFrontPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/front.4bpp.lz"); - const u32 gMonPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/normal.gbapal.lz"); - const u32 gMonBackPic_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/back.4bpp.lz"); - const u32 gMonShinyPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/shiny.gbapal.lz"); - const u8 gMonIcon_StunfiskGalarian[] = INCBIN_U8("graphics/pokemon/stunfisk/galarian/icon.4bpp"); + const u32 gMonFrontPic_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/front.4bpp.lz"); + const u32 gMonPalette_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/normal.gbapal.lz"); + const u32 gMonBackPic_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/back.4bpp.lz"); + const u32 gMonShinyPalette_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/shiny.gbapal.lz"); + const u8 gMonIcon_StunfiskGalar[] = INCBIN_U8("graphics/pokemon/stunfisk/galar/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_StunfiskGalarian[] = INCBIN_COMP("graphics/pokemon/stunfisk/galarian/overworld.4bpp"); + const u32 gObjectEventPic_StunfiskGalar[] = INCBIN_COMP("graphics/pokemon/stunfisk/galar/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_StunfiskGalarian[] = INCBIN_U32("graphics/pokemon/stunfisk/galarian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_StunfiskGalar[] = INCBIN_U32("graphics/pokemon/stunfisk/galar/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GALARIAN_FORMS @@ -14102,16 +18527,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/front.4bpp.lz"); - const u32 gMonPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_BraviaryHisuian[] = INCBIN_U8("graphics/pokemon/braviary/hisuian/icon.4bpp"); + const u32 gMonFrontPic_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/front.4bpp.lz"); + const u32 gMonPalette_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_BraviaryHisui[] = INCBIN_U8("graphics/pokemon/braviary/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_BraviaryHisuian[] = INCBIN_COMP("graphics/pokemon/braviary/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_BraviaryHisui[] = INCBIN_COMP("graphics/pokemon/braviary/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_BraviaryHisuian[] = INCBIN_U32("graphics/pokemon/braviary/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_BraviaryHisui[] = INCBIN_U32("graphics/pokemon/braviary/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -15125,12 +19550,14 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS +#if P_GENDER_DIFFERENCES const u32 gMonFrontPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/anim_frontf.4bpp.lz"); const u32 gMonBackPic_PyroarF[] = INCBIN_U32("graphics/pokemon/pyroar/backf.4bpp.lz"); const u8 gMonIcon_PyroarF[] = INCBIN_U8("graphics/pokemon/pyroar/iconf.4bpp"); #if OW_POKEMON_OBJECT_EVENTS const u32 gObjectEventPic_PyroarF[] = INCBIN_COMP("graphics/pokemon/pyroar/overworldf.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LITLEO #if P_FAMILY_FLABEBE @@ -15140,43 +19567,43 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Flabebe[] = INCBIN_U8("graphics/pokemon/flabebe/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/shiny.gbapal.lz"); - const u8 gMonIcon_FlabebeRedFlower[] = INCBIN_U8("graphics/pokemon/flabebe/icon.4bpp"); + const u32 gMonPalette_FlabebeRed[] = INCBIN_U32("graphics/pokemon/flabebe/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeRed[] = INCBIN_U32("graphics/pokemon/flabebe/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeRed[] = INCBIN_U8("graphics/pokemon/flabebe/icon.4bpp"); - const u32 gMonPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlabebeYellowFlower[] = INCBIN_U8("graphics/pokemon/flabebe/yellow_flower/icon.4bpp"); + const u32 gMonPalette_FlabebeYellow[] = INCBIN_U32("graphics/pokemon/flabebe/yellow/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeYellow[] = INCBIN_U32("graphics/pokemon/flabebe/yellow/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeYellow[] = INCBIN_U8("graphics/pokemon/flabebe/yellow/icon.4bpp"); - const u32 gMonPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlabebeOrangeFlower[] = INCBIN_U8("graphics/pokemon/flabebe/orange_flower/icon.4bpp"); + const u32 gMonPalette_FlabebeOrange[] = INCBIN_U32("graphics/pokemon/flabebe/orange/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeOrange[] = INCBIN_U32("graphics/pokemon/flabebe/orange/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeOrange[] = INCBIN_U8("graphics/pokemon/flabebe/orange/icon.4bpp"); - const u32 gMonPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlabebeBlueFlower[] = INCBIN_U8("graphics/pokemon/flabebe/blue_flower/icon.4bpp"); + const u32 gMonPalette_FlabebeBlue[] = INCBIN_U32("graphics/pokemon/flabebe/blue/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeBlue[] = INCBIN_U32("graphics/pokemon/flabebe/blue/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeBlue[] = INCBIN_U8("graphics/pokemon/flabebe/blue/icon.4bpp"); - const u32 gMonPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlabebeWhiteFlower[] = INCBIN_U8("graphics/pokemon/flabebe/white_flower/icon.4bpp"); + const u32 gMonPalette_FlabebeWhite[] = INCBIN_U32("graphics/pokemon/flabebe/white/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlabebeWhite[] = INCBIN_U32("graphics/pokemon/flabebe/white/shiny.gbapal.lz"); + const u8 gMonIcon_FlabebeWhite[] = INCBIN_U8("graphics/pokemon/flabebe/white/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_FlabebeRedFlower[] = INCBIN_COMP("graphics/pokemon/flabebe/overworld.4bpp"); - const u32 gObjectEventPic_FlabebeYellowFlower[] = INCBIN_COMP("graphics/pokemon/flabebe/yellow_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlabebeOrangeFlower[] = INCBIN_COMP("graphics/pokemon/flabebe/orange_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlabebeBlueFlower[] = INCBIN_COMP("graphics/pokemon/flabebe/blue_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlabebeWhiteFlower[] = INCBIN_COMP("graphics/pokemon/flabebe/white_flower/overworld.4bpp"); + const u32 gObjectEventPic_FlabebeRed[] = INCBIN_COMP("graphics/pokemon/flabebe/overworld.4bpp"); + const u32 gObjectEventPic_FlabebeYellow[] = INCBIN_COMP("graphics/pokemon/flabebe/yellow/overworld.4bpp"); + const u32 gObjectEventPic_FlabebeOrange[] = INCBIN_COMP("graphics/pokemon/flabebe/orange/overworld.4bpp"); + const u32 gObjectEventPic_FlabebeBlue[] = INCBIN_COMP("graphics/pokemon/flabebe/blue/overworld.4bpp"); + const u32 gObjectEventPic_FlabebeWhite[] = INCBIN_COMP("graphics/pokemon/flabebe/white/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_FlabebeRedFlower[] = INCBIN_U32("graphics/pokemon/flabebe/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlabebeYellowFlower[] = INCBIN_U32("graphics/pokemon/flabebe/yellow_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlabebeOrangeFlower[] = INCBIN_U32("graphics/pokemon/flabebe/orange_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlabebeBlueFlower[] = INCBIN_U32("graphics/pokemon/flabebe/blue_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlabebeWhiteFlower[] = INCBIN_U32("graphics/pokemon/flabebe/white_flower/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_FlabebeRed[] = INCBIN_U32("graphics/pokemon/flabebe/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlabebeYellow[] = INCBIN_U32("graphics/pokemon/flabebe/yellow/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlabebeOrange[] = INCBIN_U32("graphics/pokemon/flabebe/orange/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlabebeBlue[] = INCBIN_U32("graphics/pokemon/flabebe/blue/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlabebeWhite[] = INCBIN_U32("graphics/pokemon/flabebe/white/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_FlabebeRed[] = INCBIN_U32("graphics/pokemon/flabebe/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlabebeYellow[] = INCBIN_U32("graphics/pokemon/flabebe/yellow/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlabebeOrange[] = INCBIN_U32("graphics/pokemon/flabebe/orange/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlabebeBlue[] = INCBIN_U32("graphics/pokemon/flabebe/blue/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlabebeWhite[] = INCBIN_U32("graphics/pokemon/flabebe/white/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -15186,52 +19613,52 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Floette[] = INCBIN_U8("graphics/pokemon/floette/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/normal.gbapal.lz"); - const u32 gMonShinyPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteRedFlower[] = INCBIN_U8("graphics/pokemon/floette/icon.4bpp"); + const u32 gMonPalette_FloetteRed[] = INCBIN_U32("graphics/pokemon/floette/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteRed[] = INCBIN_U32("graphics/pokemon/floette/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteRed[] = INCBIN_U8("graphics/pokemon/floette/icon.4bpp"); - const u32 gMonPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteYellowFlower[] = INCBIN_U8("graphics/pokemon/floette/yellow_flower/icon.4bpp"); + const u32 gMonPalette_FloetteYellow[] = INCBIN_U32("graphics/pokemon/floette/yellow/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteYellow[] = INCBIN_U32("graphics/pokemon/floette/yellow/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteYellow[] = INCBIN_U8("graphics/pokemon/floette/yellow/icon.4bpp"); - const u32 gMonPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteOrangeFlower[] = INCBIN_U8("graphics/pokemon/floette/orange_flower/icon.4bpp"); + const u32 gMonPalette_FloetteOrange[] = INCBIN_U32("graphics/pokemon/floette/orange/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteOrange[] = INCBIN_U32("graphics/pokemon/floette/orange/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteOrange[] = INCBIN_U8("graphics/pokemon/floette/orange/icon.4bpp"); - const u32 gMonPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteBlueFlower[] = INCBIN_U8("graphics/pokemon/floette/blue_flower/icon.4bpp"); + const u32 gMonPalette_FloetteBlue[] = INCBIN_U32("graphics/pokemon/floette/blue/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteBlue[] = INCBIN_U32("graphics/pokemon/floette/blue/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteBlue[] = INCBIN_U8("graphics/pokemon/floette/blue/icon.4bpp"); - const u32 gMonPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteWhiteFlower[] = INCBIN_U8("graphics/pokemon/floette/white_flower/icon.4bpp"); + const u32 gMonPalette_FloetteWhite[] = INCBIN_U32("graphics/pokemon/floette/white/normal.gbapal.lz"); + const u32 gMonShinyPalette_FloetteWhite[] = INCBIN_U32("graphics/pokemon/floette/white/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteWhite[] = INCBIN_U8("graphics/pokemon/floette/white/icon.4bpp"); - const u32 gMonFrontPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/anim_front.4bpp.lz"); - const u32 gMonPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/normal.gbapal.lz"); - const u32 gMonBackPic_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/back.4bpp.lz"); - const u32 gMonShinyPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FloetteEternalFlower[] = INCBIN_U8("graphics/pokemon/floette/eternal_flower/icon.4bpp"); + const u32 gMonFrontPic_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/anim_front.4bpp.lz"); + const u32 gMonPalette_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/normal.gbapal.lz"); + const u32 gMonBackPic_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/back.4bpp.lz"); + const u32 gMonShinyPalette_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/shiny.gbapal.lz"); + const u8 gMonIcon_FloetteEternal[] = INCBIN_U8("graphics/pokemon/floette/eternal/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_FloetteRedFlower[] = INCBIN_COMP("graphics/pokemon/floette/overworld.4bpp"); - const u32 gObjectEventPic_FloetteYellowFlower[] = INCBIN_COMP("graphics/pokemon/floette/yellow_flower/overworld.4bpp"); - const u32 gObjectEventPic_FloetteOrangeFlower[] = INCBIN_COMP("graphics/pokemon/floette/orange_flower/overworld.4bpp"); - const u32 gObjectEventPic_FloetteBlueFlower[] = INCBIN_COMP("graphics/pokemon/floette/blue_flower/overworld.4bpp"); - const u32 gObjectEventPic_FloetteWhiteFlower[] = INCBIN_COMP("graphics/pokemon/floette/white_flower/overworld.4bpp"); - const u32 gObjectEventPic_FloetteEternalFlower[] = INCBIN_COMP("graphics/pokemon/floette/eternal_flower/overworld.4bpp"); + const u32 gObjectEventPic_FloetteRed[] = INCBIN_COMP("graphics/pokemon/floette/overworld.4bpp"); + const u32 gObjectEventPic_FloetteYellow[] = INCBIN_COMP("graphics/pokemon/floette/yellow/overworld.4bpp"); + const u32 gObjectEventPic_FloetteOrange[] = INCBIN_COMP("graphics/pokemon/floette/orange/overworld.4bpp"); + const u32 gObjectEventPic_FloetteBlue[] = INCBIN_COMP("graphics/pokemon/floette/blue/overworld.4bpp"); + const u32 gObjectEventPic_FloetteWhite[] = INCBIN_COMP("graphics/pokemon/floette/white/overworld.4bpp"); + const u32 gObjectEventPic_FloetteEternal[] = INCBIN_COMP("graphics/pokemon/floette/eternal/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteRedFlower[] = INCBIN_U32("graphics/pokemon/floette/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteYellowFlower[] = INCBIN_U32("graphics/pokemon/floette/yellow_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteOrangeFlower[] = INCBIN_U32("graphics/pokemon/floette/orange_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteBlueFlower[] = INCBIN_U32("graphics/pokemon/floette/blue_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteWhiteFlower[] = INCBIN_U32("graphics/pokemon/floette/white_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FloetteEternalFlower[] = INCBIN_U32("graphics/pokemon/floette/eternal_flower/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_FloetteRed[] = INCBIN_U32("graphics/pokemon/floette/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FloetteYellow[] = INCBIN_U32("graphics/pokemon/floette/yellow/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FloetteOrange[] = INCBIN_U32("graphics/pokemon/floette/orange/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FloetteBlue[] = INCBIN_U32("graphics/pokemon/floette/blue/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FloetteWhite[] = INCBIN_U32("graphics/pokemon/floette/white/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteRed[] = INCBIN_U32("graphics/pokemon/floette/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteYellow[] = INCBIN_U32("graphics/pokemon/floette/yellow/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteOrange[] = INCBIN_U32("graphics/pokemon/floette/orange/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteBlue[] = INCBIN_U32("graphics/pokemon/floette/blue/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteWhite[] = INCBIN_U32("graphics/pokemon/floette/white/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FloetteEternal[] = INCBIN_U32("graphics/pokemon/floette/eternal/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS @@ -15241,43 +19668,43 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Florges[] = INCBIN_U8("graphics/pokemon/florges/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/shiny.gbapal.lz"); - const u8 gMonIcon_FlorgesRedFlower[] = INCBIN_U8("graphics/pokemon/florges/icon.4bpp"); + const u32 gMonPalette_FlorgesRed[] = INCBIN_U32("graphics/pokemon/florges/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesRed[] = INCBIN_U32("graphics/pokemon/florges/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesRed[] = INCBIN_U8("graphics/pokemon/florges/icon.4bpp"); - const u32 gMonPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlorgesYellowFlower[] = INCBIN_U8("graphics/pokemon/florges/yellow_flower/icon.4bpp"); + const u32 gMonPalette_FlorgesYellow[] = INCBIN_U32("graphics/pokemon/florges/yellow/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesYellow[] = INCBIN_U32("graphics/pokemon/florges/yellow/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesYellow[] = INCBIN_U8("graphics/pokemon/florges/yellow/icon.4bpp"); - const u32 gMonPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlorgesOrangeFlower[] = INCBIN_U8("graphics/pokemon/florges/orange_flower/icon.4bpp"); + const u32 gMonPalette_FlorgesOrange[] = INCBIN_U32("graphics/pokemon/florges/orange/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesOrange[] = INCBIN_U32("graphics/pokemon/florges/orange/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesOrange[] = INCBIN_U8("graphics/pokemon/florges/orange/icon.4bpp"); - const u32 gMonPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlorgesBlueFlower[] = INCBIN_U8("graphics/pokemon/florges/blue_flower/icon.4bpp"); + const u32 gMonPalette_FlorgesBlue[] = INCBIN_U32("graphics/pokemon/florges/blue/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesBlue[] = INCBIN_U32("graphics/pokemon/florges/blue/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesBlue[] = INCBIN_U8("graphics/pokemon/florges/blue/icon.4bpp"); - const u32 gMonPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/shiny.gbapal.lz"); - const u8 gMonIcon_FlorgesWhiteFlower[] = INCBIN_U8("graphics/pokemon/florges/white_flower/icon.4bpp"); + const u32 gMonPalette_FlorgesWhite[] = INCBIN_U32("graphics/pokemon/florges/white/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlorgesWhite[] = INCBIN_U32("graphics/pokemon/florges/white/shiny.gbapal.lz"); + const u8 gMonIcon_FlorgesWhite[] = INCBIN_U8("graphics/pokemon/florges/white/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_FlorgesRedFlower[] = INCBIN_COMP("graphics/pokemon/florges/overworld.4bpp"); - const u32 gObjectEventPic_FlorgesYellowFlower[] = INCBIN_COMP("graphics/pokemon/florges/yellow_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlorgesOrangeFlower[] = INCBIN_COMP("graphics/pokemon/florges/orange_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlorgesBlueFlower[] = INCBIN_COMP("graphics/pokemon/florges/blue_flower/overworld.4bpp"); - const u32 gObjectEventPic_FlorgesWhiteFlower[] = INCBIN_COMP("graphics/pokemon/florges/white_flower/overworld.4bpp"); + const u32 gObjectEventPic_FlorgesRed[] = INCBIN_COMP("graphics/pokemon/florges/overworld.4bpp"); + const u32 gObjectEventPic_FlorgesYellow[] = INCBIN_COMP("graphics/pokemon/florges/yellow/overworld.4bpp"); + const u32 gObjectEventPic_FlorgesOrange[] = INCBIN_COMP("graphics/pokemon/florges/orange/overworld.4bpp"); + const u32 gObjectEventPic_FlorgesBlue[] = INCBIN_COMP("graphics/pokemon/florges/blue/overworld.4bpp"); + const u32 gObjectEventPic_FlorgesWhite[] = INCBIN_COMP("graphics/pokemon/florges/white/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/overworld_normal.gbapal.lz"); - const u32 gOverworldPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_FlorgesRedFlower[] = INCBIN_U32("graphics/pokemon/florges/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlorgesYellowFlower[] = INCBIN_U32("graphics/pokemon/florges/yellow_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlorgesOrangeFlower[] = INCBIN_U32("graphics/pokemon/florges/orange_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlorgesBlueFlower[] = INCBIN_U32("graphics/pokemon/florges/blue_flower/overworld_shiny.gbapal.lz"); - const u32 gShinyOverworldPalette_FlorgesWhiteFlower[] = INCBIN_U32("graphics/pokemon/florges/white_flower/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_FlorgesRed[] = INCBIN_U32("graphics/pokemon/florges/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlorgesYellow[] = INCBIN_U32("graphics/pokemon/florges/yellow/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlorgesOrange[] = INCBIN_U32("graphics/pokemon/florges/orange/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlorgesBlue[] = INCBIN_U32("graphics/pokemon/florges/blue/overworld_normal.gbapal.lz"); + const u32 gOverworldPalette_FlorgesWhite[] = INCBIN_U32("graphics/pokemon/florges/white/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_FlorgesRed[] = INCBIN_U32("graphics/pokemon/florges/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlorgesYellow[] = INCBIN_U32("graphics/pokemon/florges/yellow/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlorgesOrange[] = INCBIN_U32("graphics/pokemon/florges/orange/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlorgesBlue[] = INCBIN_U32("graphics/pokemon/florges/blue/overworld_shiny.gbapal.lz"); + const u32 gShinyOverworldPalette_FlorgesWhite[] = INCBIN_U32("graphics/pokemon/florges/white/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_FLABEBE @@ -15467,32 +19894,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/anim_front.4bpp.lz"); - const u32 gMonPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/normal.gbapal.lz"); - const u32 gMonBackPic_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/back.4bpp.lz"); - const u32 gMonShinyPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/shiny.gbapal.lz"); - const u8 gMonIcon_MeowsticMale[] = INCBIN_U8("graphics/pokemon/meowstic/icon.4bpp"); + const u32 gMonFrontPic_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/anim_front.4bpp.lz"); + const u32 gMonPalette_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/normal.gbapal.lz"); + const u32 gMonBackPic_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/shiny.gbapal.lz"); + const u8 gMonIcon_MeowsticM[] = INCBIN_U8("graphics/pokemon/meowstic/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Meowstic[] = INCBIN_U8("graphics/pokemon/meowstic/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MeowsticMale[] = INCBIN_COMP("graphics/pokemon/meowstic/overworld.4bpp"); + const u32 gObjectEventPic_MeowsticM[] = INCBIN_COMP("graphics/pokemon/meowstic/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MeowsticMale[] = INCBIN_U32("graphics/pokemon/meowstic/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MeowsticM[] = INCBIN_U32("graphics/pokemon/meowstic/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/anim_front.4bpp.lz"); - const u32 gMonPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/normal.gbapal.lz"); - const u32 gMonBackPic_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/back.4bpp.lz"); - const u32 gMonShinyPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/shiny.gbapal.lz"); - const u8 gMonIcon_MeowsticFemale[] = INCBIN_U8("graphics/pokemon/meowstic/female/icon.4bpp"); + const u32 gMonFrontPic_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/anim_front.4bpp.lz"); + const u32 gMonPalette_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/normal.gbapal.lz"); + const u32 gMonBackPic_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/back.4bpp.lz"); + const u32 gMonShinyPalette_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/shiny.gbapal.lz"); + const u8 gMonIcon_MeowsticF[] = INCBIN_U8("graphics/pokemon/meowstic/f/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MeowsticFemale[] = INCBIN_COMP("graphics/pokemon/meowstic/female/overworld.4bpp"); + const u32 gObjectEventPic_MeowsticF[] = INCBIN_COMP("graphics/pokemon/meowstic/f/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MeowsticFemale[] = INCBIN_U32("graphics/pokemon/meowstic/female/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MeowsticF[] = INCBIN_U32("graphics/pokemon/meowstic/f/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_ESPURR @@ -15954,16 +20381,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/front.4bpp.lz"); - const u32 gMonPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_SliggooHisuian[] = INCBIN_U8("graphics/pokemon/sliggoo/hisuian/icon.4bpp"); + const u32 gMonFrontPic_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/front.4bpp.lz"); + const u32 gMonPalette_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_SliggooHisui[] = INCBIN_U8("graphics/pokemon/sliggoo/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SliggooHisuian[] = INCBIN_COMP("graphics/pokemon/sliggoo/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_SliggooHisui[] = INCBIN_COMP("graphics/pokemon/sliggoo/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SliggooHisuian[] = INCBIN_U32("graphics/pokemon/sliggoo/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SliggooHisui[] = INCBIN_U32("graphics/pokemon/sliggoo/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -15985,16 +20412,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/front.4bpp.lz"); - const u32 gMonPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_GoodraHisuian[] = INCBIN_U8("graphics/pokemon/goodra/hisuian/icon.4bpp"); + const u32 gMonFrontPic_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/front.4bpp.lz"); + const u32 gMonPalette_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_GoodraHisui[] = INCBIN_U8("graphics/pokemon/goodra/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_GoodraHisuian[] = INCBIN_COMP("graphics/pokemon/goodra/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_GoodraHisui[] = INCBIN_COMP("graphics/pokemon/goodra/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_GoodraHisuian[] = INCBIN_U32("graphics/pokemon/goodra/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_GoodraHisui[] = INCBIN_U32("graphics/pokemon/goodra/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -16150,16 +20577,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/front.4bpp.lz"); - const u32 gMonPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_AvaluggHisuian[] = INCBIN_U8("graphics/pokemon/avalugg/hisuian/icon.4bpp"); + const u32 gMonFrontPic_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/front.4bpp.lz"); + const u32 gMonPalette_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_AvaluggHisui[] = INCBIN_U8("graphics/pokemon/avalugg/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_AvaluggHisuian[] = INCBIN_COMP("graphics/pokemon/avalugg/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_AvaluggHisui[] = INCBIN_COMP("graphics/pokemon/avalugg/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_AvaluggHisuian[] = INCBIN_U32("graphics/pokemon/avalugg/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_AvaluggHisui[] = INCBIN_U32("graphics/pokemon/avalugg/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -16425,16 +20852,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_HISUIAN_FORMS - const u32 gMonFrontPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/front.4bpp.lz"); - const u32 gMonPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/normal.gbapal.lz"); - const u32 gMonBackPic_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/back.4bpp.lz"); - const u32 gMonShinyPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/shiny.gbapal.lz"); - const u8 gMonIcon_DecidueyeHisuian[] = INCBIN_U8("graphics/pokemon/decidueye/hisuian/icon.4bpp"); + const u32 gMonFrontPic_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/front.4bpp.lz"); + const u32 gMonPalette_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/normal.gbapal.lz"); + const u32 gMonBackPic_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/back.4bpp.lz"); + const u32 gMonShinyPalette_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/shiny.gbapal.lz"); + const u8 gMonIcon_DecidueyeHisui[] = INCBIN_U8("graphics/pokemon/decidueye/hisui/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_DecidueyeHisuian[] = INCBIN_COMP("graphics/pokemon/decidueye/hisuian/overworld.4bpp"); + const u32 gObjectEventPic_DecidueyeHisui[] = INCBIN_COMP("graphics/pokemon/decidueye/hisui/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_DecidueyeHisuian[] = INCBIN_U32("graphics/pokemon/decidueye/hisuian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_DecidueyeHisui[] = INCBIN_U32("graphics/pokemon/decidueye/hisui/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_HISUIAN_FORMS @@ -17979,16 +22406,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/front.4bpp.lz"); - const u32 gMonPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/normal.gbapal.lz"); - const u32 gMonBackPic_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/back.4bpp.lz"); - const u32 gMonShinyPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/shiny.gbapal.lz"); - const u8 gMonIcon_MagearnaOriginalColor[] = INCBIN_U8("graphics/pokemon/magearna/original_color/icon.4bpp"); + const u32 gMonFrontPic_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/front.4bpp.lz"); + const u32 gMonPalette_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/normal.gbapal.lz"); + const u32 gMonBackPic_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/back.4bpp.lz"); + const u32 gMonShinyPalette_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/shiny.gbapal.lz"); + const u8 gMonIcon_MagearnaOriginal[] = INCBIN_U8("graphics/pokemon/magearna/original_color/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MagearnaOriginalColor[] = INCBIN_COMP("graphics/pokemon/magearna/original_color/overworld.4bpp"); + const u32 gObjectEventPic_MagearnaOriginal[] = INCBIN_COMP("graphics/pokemon/magearna/original_color/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MagearnaOriginalColor[] = INCBIN_U32("graphics/pokemon/magearna/original_color/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MagearnaOriginal[] = INCBIN_U32("graphics/pokemon/magearna/original_color/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_MAGEARNA @@ -18133,16 +22560,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_MelmetalGigantamax[] = INCBIN_U8("graphics/pokemon/melmetal/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/front.4bpp.lz"); + const u32 gMonBackPic_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/back.4bpp.lz"); + const u32 gMonPalette_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_MelmetalGmax[] = INCBIN_U8("graphics/pokemon/melmetal/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_MelmetalGigantamax[] = INCBIN_COMP("graphics/pokemon/melmetal/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_MelmetalGmax[] = INCBIN_COMP("graphics/pokemon/melmetal/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_MelmetalGigantamax[] = INCBIN_U32("graphics/pokemon/melmetal/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_MelmetalGmax[] = INCBIN_U32("graphics/pokemon/melmetal/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18198,16 +22625,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_RillaboomGigantamax[] = INCBIN_U8("graphics/pokemon/rillaboom/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/front.4bpp.lz"); + const u32 gMonBackPic_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/back.4bpp.lz"); + const u32 gMonPalette_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_RillaboomGmax[] = INCBIN_U8("graphics/pokemon/rillaboom/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_RillaboomGigantamax[] = INCBIN_COMP("graphics/pokemon/rillaboom/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_RillaboomGmax[] = INCBIN_COMP("graphics/pokemon/rillaboom/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_RillaboomGigantamax[] = INCBIN_U32("graphics/pokemon/rillaboom/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_RillaboomGmax[] = INCBIN_U32("graphics/pokemon/rillaboom/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18263,16 +22690,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CinderaceGigantamax[] = INCBIN_U8("graphics/pokemon/cinderace/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/back.4bpp.lz"); + const u32 gMonPalette_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CinderaceGmax[] = INCBIN_U8("graphics/pokemon/cinderace/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CinderaceGigantamax[] = INCBIN_COMP("graphics/pokemon/cinderace/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CinderaceGmax[] = INCBIN_COMP("graphics/pokemon/cinderace/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CinderaceGigantamax[] = INCBIN_U32("graphics/pokemon/cinderace/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CinderaceGmax[] = INCBIN_U32("graphics/pokemon/cinderace/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18328,16 +22755,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_InteleonGigantamax[] = INCBIN_U8("graphics/pokemon/inteleon/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/front.4bpp.lz"); + const u32 gMonBackPic_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/back.4bpp.lz"); + const u32 gMonPalette_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_InteleonGmax[] = INCBIN_U8("graphics/pokemon/inteleon/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_InteleonGigantamax[] = INCBIN_COMP("graphics/pokemon/inteleon/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_InteleonGmax[] = INCBIN_COMP("graphics/pokemon/inteleon/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_InteleonGigantamax[] = INCBIN_U32("graphics/pokemon/inteleon/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_InteleonGmax[] = INCBIN_U32("graphics/pokemon/inteleon/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18427,16 +22854,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CorviknightGigantamax[] = INCBIN_U8("graphics/pokemon/corviknight/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/back.4bpp.lz"); + const u32 gMonPalette_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CorviknightGmax[] = INCBIN_U8("graphics/pokemon/corviknight/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CorviknightGigantamax[] = INCBIN_COMP("graphics/pokemon/corviknight/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CorviknightGmax[] = INCBIN_COMP("graphics/pokemon/corviknight/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CorviknightGigantamax[] = INCBIN_U32("graphics/pokemon/corviknight/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CorviknightGmax[] = INCBIN_U32("graphics/pokemon/corviknight/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18492,16 +22919,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_OrbeetleGigantamax[] = INCBIN_U8("graphics/pokemon/orbeetle/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/front.4bpp.lz"); + const u32 gMonBackPic_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/back.4bpp.lz"); + const u32 gMonPalette_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_OrbeetleGmax[] = INCBIN_U8("graphics/pokemon/orbeetle/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_OrbeetleGigantamax[] = INCBIN_COMP("graphics/pokemon/orbeetle/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_OrbeetleGmax[] = INCBIN_COMP("graphics/pokemon/orbeetle/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_OrbeetleGigantamax[] = INCBIN_U32("graphics/pokemon/orbeetle/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_OrbeetleGmax[] = INCBIN_U32("graphics/pokemon/orbeetle/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18643,16 +23070,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_DrednawGigantamax[] = INCBIN_U8("graphics/pokemon/drednaw/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/front.4bpp.lz"); + const u32 gMonBackPic_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/back.4bpp.lz"); + const u32 gMonPalette_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_DrednawGmax[] = INCBIN_U8("graphics/pokemon/drednaw/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_DrednawGigantamax[] = INCBIN_COMP("graphics/pokemon/drednaw/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_DrednawGmax[] = INCBIN_COMP("graphics/pokemon/drednaw/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_DrednawGigantamax[] = INCBIN_U32("graphics/pokemon/drednaw/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_DrednawGmax[] = INCBIN_U32("graphics/pokemon/drednaw/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18742,16 +23169,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CoalossalGigantamax[] = INCBIN_U8("graphics/pokemon/coalossal/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/back.4bpp.lz"); + const u32 gMonPalette_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CoalossalGmax[] = INCBIN_U8("graphics/pokemon/coalossal/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CoalossalGigantamax[] = INCBIN_COMP("graphics/pokemon/coalossal/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CoalossalGmax[] = INCBIN_COMP("graphics/pokemon/coalossal/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CoalossalGigantamax[] = INCBIN_U32("graphics/pokemon/coalossal/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CoalossalGmax[] = INCBIN_U32("graphics/pokemon/coalossal/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18791,16 +23218,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_FlappleGigantamax[] = INCBIN_U8("graphics/pokemon/flapple/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/front.4bpp.lz"); + const u32 gMonBackPic_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/back.4bpp.lz"); + const u32 gMonPalette_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_FlappleGmax[] = INCBIN_U8("graphics/pokemon/flapple/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_FlappleGigantamax[] = INCBIN_COMP("graphics/pokemon/flapple/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_FlappleGmax[] = INCBIN_COMP("graphics/pokemon/flapple/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_FlappleGigantamax[] = INCBIN_U32("graphics/pokemon/flapple/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_FlappleGmax[] = INCBIN_U32("graphics/pokemon/flapple/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18822,16 +23249,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_AppletunGigantamax[] = INCBIN_U8("graphics/pokemon/appletun/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/front.4bpp.lz"); + const u32 gMonBackPic_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/back.4bpp.lz"); + const u32 gMonPalette_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_AppletunGmax[] = INCBIN_U8("graphics/pokemon/appletun/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_AppletunGigantamax[] = INCBIN_COMP("graphics/pokemon/appletun/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_AppletunGmax[] = INCBIN_COMP("graphics/pokemon/appletun/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_AppletunGigantamax[] = INCBIN_U32("graphics/pokemon/appletun/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_AppletunGmax[] = INCBIN_U32("graphics/pokemon/appletun/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -18905,16 +23332,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_SandacondaGigantamax[] = INCBIN_U8("graphics/pokemon/sandaconda/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/front.4bpp.lz"); + const u32 gMonBackPic_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/back.4bpp.lz"); + const u32 gMonPalette_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_SandacondaGmax[] = INCBIN_U8("graphics/pokemon/sandaconda/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_SandacondaGigantamax[] = INCBIN_COMP("graphics/pokemon/sandaconda/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_SandacondaGmax[] = INCBIN_COMP("graphics/pokemon/sandaconda/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_SandacondaGigantamax[] = INCBIN_U32("graphics/pokemon/sandaconda/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_SandacondaGmax[] = INCBIN_U32("graphics/pokemon/sandaconda/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19045,16 +23472,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_ToxtricityGigantamax[] = INCBIN_U8("graphics/pokemon/toxtricity/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/front.4bpp.lz"); + const u32 gMonBackPic_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/back.4bpp.lz"); + const u32 gMonPalette_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_ToxtricityGmax[] = INCBIN_U8("graphics/pokemon/toxtricity/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_ToxtricityGigantamax[] = INCBIN_COMP("graphics/pokemon/toxtricity/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_ToxtricityGmax[] = INCBIN_COMP("graphics/pokemon/toxtricity/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_ToxtricityGigantamax[] = INCBIN_U32("graphics/pokemon/toxtricity/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_ToxtricityGmax[] = INCBIN_U32("graphics/pokemon/toxtricity/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19094,16 +23521,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CentiskorchGigantamax[] = INCBIN_U8("graphics/pokemon/centiskorch/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/back.4bpp.lz"); + const u32 gMonPalette_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CentiskorchGmax[] = INCBIN_U8("graphics/pokemon/centiskorch/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CentiskorchGigantamax[] = INCBIN_COMP("graphics/pokemon/centiskorch/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CentiskorchGmax[] = INCBIN_COMP("graphics/pokemon/centiskorch/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CentiskorchGigantamax[] = INCBIN_U32("graphics/pokemon/centiskorch/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CentiskorchGmax[] = INCBIN_U32("graphics/pokemon/centiskorch/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19227,16 +23654,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_HattereneGigantamax[] = INCBIN_U8("graphics/pokemon/hatterene/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/front.4bpp.lz"); + const u32 gMonBackPic_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/back.4bpp.lz"); + const u32 gMonPalette_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_HattereneGmax[] = INCBIN_U8("graphics/pokemon/hatterene/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_HattereneGigantamax[] = INCBIN_COMP("graphics/pokemon/hatterene/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_HattereneGmax[] = INCBIN_COMP("graphics/pokemon/hatterene/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_HattereneGigantamax[] = INCBIN_U32("graphics/pokemon/hatterene/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_HattereneGmax[] = INCBIN_U32("graphics/pokemon/hatterene/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19292,16 +23719,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_GrimmsnarlGigantamax[] = INCBIN_U8("graphics/pokemon/grimmsnarl/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/front.4bpp.lz"); + const u32 gMonBackPic_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/back.4bpp.lz"); + const u32 gMonPalette_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_GrimmsnarlGmax[] = INCBIN_U8("graphics/pokemon/grimmsnarl/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_GrimmsnarlGigantamax[] = INCBIN_COMP("graphics/pokemon/grimmsnarl/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_GrimmsnarlGmax[] = INCBIN_COMP("graphics/pokemon/grimmsnarl/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_GrimmsnarlGigantamax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_GrimmsnarlGmax[] = INCBIN_U32("graphics/pokemon/grimmsnarl/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19441,16 +23868,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_AlcremieGigantamax[] = INCBIN_U8("graphics/pokemon/alcremie/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/front.4bpp.lz"); + const u32 gMonBackPic_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/back.4bpp.lz"); + const u32 gMonPalette_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_AlcremieGmax[] = INCBIN_U8("graphics/pokemon/alcremie/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_AlcremieGigantamax[] = INCBIN_COMP("graphics/pokemon/alcremie/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_AlcremieGmax[] = INCBIN_COMP("graphics/pokemon/alcremie/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_AlcremieGigantamax[] = INCBIN_U32("graphics/pokemon/alcremie/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_AlcremieGmax[] = INCBIN_U32("graphics/pokemon/alcremie/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19545,63 +23972,63 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_STONJOURNER #if P_FAMILY_EISCUE - const u32 gMonFrontPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/front.4bpp.lz"); - const u32 gMonPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/normal.gbapal.lz"); - const u32 gMonBackPic_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/back.4bpp.lz"); - const u32 gMonShinyPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/shiny.gbapal.lz"); - const u8 gMonIcon_EiscueIceFace[] = INCBIN_U8("graphics/pokemon/eiscue/icon.4bpp"); + const u32 gMonFrontPic_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/front.4bpp.lz"); + const u32 gMonPalette_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/normal.gbapal.lz"); + const u32 gMonBackPic_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/back.4bpp.lz"); + const u32 gMonShinyPalette_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/shiny.gbapal.lz"); + const u8 gMonIcon_EiscueIce[] = INCBIN_U8("graphics/pokemon/eiscue/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Eiscue[] = INCBIN_U8("graphics/pokemon/eiscue/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_EiscueIceFace[] = INCBIN_COMP("graphics/pokemon/eiscue/overworld.4bpp"); + const u32 gObjectEventPic_EiscueIce[] = INCBIN_COMP("graphics/pokemon/eiscue/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_EiscueIceFace[] = INCBIN_U32("graphics/pokemon/eiscue/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_EiscueIce[] = INCBIN_U32("graphics/pokemon/eiscue/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); - const u32 gMonPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); - const u32 gMonBackPic_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/back.4bpp.lz"); - const u32 gMonShinyPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/shiny.gbapal.lz"); - const u8 gMonIcon_EiscueNoiceFace[] = INCBIN_U8("graphics/pokemon/eiscue/noice_face/icon.4bpp"); + const u32 gMonFrontPic_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/front.4bpp.lz"); + const u32 gMonPalette_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/normal.gbapal.lz"); + const u32 gMonBackPic_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/back.4bpp.lz"); + const u32 gMonShinyPalette_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/shiny.gbapal.lz"); + const u8 gMonIcon_EiscueNoice[] = INCBIN_U8("graphics/pokemon/eiscue/noice_face/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_EiscueNoiceFace[] = INCBIN_COMP("graphics/pokemon/eiscue/noice_face/overworld.4bpp"); + // const u32 gObjectEventPic_EiscueNoice[] = INCBIN_COMP("graphics/pokemon/eiscue/noice_face/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_EiscueNoiceFace[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_EiscueNoice[] = INCBIN_U32("graphics/pokemon/eiscue/noice_face/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE - const u32 gMonFrontPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/front.4bpp.lz"); - const u32 gMonPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/normal.gbapal.lz"); - const u32 gMonBackPic_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/back.4bpp.lz"); - const u32 gMonShinyPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/shiny.gbapal.lz"); - const u8 gMonIcon_IndeedeeMale[] = INCBIN_U8("graphics/pokemon/indeedee/icon.4bpp"); + const u32 gMonFrontPic_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/front.4bpp.lz"); + const u32 gMonPalette_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/normal.gbapal.lz"); + const u32 gMonBackPic_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/back.4bpp.lz"); + const u32 gMonShinyPalette_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/shiny.gbapal.lz"); + const u8 gMonIcon_IndeedeeM[] = INCBIN_U8("graphics/pokemon/indeedee/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Indeedee[] = INCBIN_U8("graphics/pokemon/indeedee/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_IndeedeeMale[] = INCBIN_COMP("graphics/pokemon/indeedee/overworld.4bpp"); + const u32 gObjectEventPic_IndeedeeM[] = INCBIN_COMP("graphics/pokemon/indeedee/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_IndeedeeMale[] = INCBIN_U32("graphics/pokemon/indeedee/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_IndeedeeM[] = INCBIN_U32("graphics/pokemon/indeedee/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/front.4bpp.lz"); - const u32 gMonPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/normal.gbapal.lz"); - const u32 gMonBackPic_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/back.4bpp.lz"); - const u32 gMonShinyPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/shiny.gbapal.lz"); - const u8 gMonIcon_IndeedeeFemale[] = INCBIN_U8("graphics/pokemon/indeedee/female/icon.4bpp"); + const u32 gMonFrontPic_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/front.4bpp.lz"); + const u32 gMonPalette_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/normal.gbapal.lz"); + const u32 gMonBackPic_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/back.4bpp.lz"); + const u32 gMonShinyPalette_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/shiny.gbapal.lz"); + const u8 gMonIcon_IndeedeeF[] = INCBIN_U8("graphics/pokemon/indeedee/f/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_IndeedeeFemale[] = INCBIN_COMP("graphics/pokemon/indeedee/female/overworld.4bpp"); + const u32 gObjectEventPic_IndeedeeF[] = INCBIN_COMP("graphics/pokemon/indeedee/f/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_IndeedeeFemale[] = INCBIN_U32("graphics/pokemon/indeedee/female/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_IndeedeeF[] = INCBIN_U32("graphics/pokemon/indeedee/f/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_INDEEDEE @@ -19671,16 +24098,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_CopperajahGigantamax[] = INCBIN_U8("graphics/pokemon/copperajah/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/front.4bpp.lz"); + const u32 gMonBackPic_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/back.4bpp.lz"); + const u32 gMonPalette_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_CopperajahGmax[] = INCBIN_U8("graphics/pokemon/copperajah/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_CopperajahGigantamax[] = INCBIN_COMP("graphics/pokemon/copperajah/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_CopperajahGmax[] = INCBIN_COMP("graphics/pokemon/copperajah/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_CopperajahGigantamax[] = INCBIN_U32("graphics/pokemon/copperajah/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_CopperajahGmax[] = INCBIN_U32("graphics/pokemon/copperajah/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19776,16 +24203,16 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/back.4bpp.lz"); - const u32 gMonPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_DuraludonGigantamax[] = INCBIN_U8("graphics/pokemon/duraludon/gigantamax/icon.4bpp"); + const u32 gMonFrontPic_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/front.4bpp.lz"); + const u32 gMonBackPic_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/back.4bpp.lz"); + const u32 gMonPalette_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/shiny.gbapal.lz"); + const u8 gMonIcon_DuraludonGmax[] = INCBIN_U8("graphics/pokemon/duraludon/gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_DuraludonGigantamax[] = INCBIN_COMP("graphics/pokemon/duraludon/gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_DuraludonGmax[] = INCBIN_COMP("graphics/pokemon/duraludon/gmax/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - // const u32 gOverworldPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/overworld_normal.gbapal.lz"); - // const u32 gShinyOverworldPalette_DuraludonGigantamax[] = INCBIN_U32("graphics/pokemon/duraludon/gigantamax/overworld_shiny.gbapal.lz"); + // const u32 gOverworldPalette_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/overworld_normal.gbapal.lz"); + // const u32 gShinyOverworldPalette_DuraludonGmax[] = INCBIN_U32("graphics/pokemon/duraludon/gmax/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS @@ -19860,63 +24287,63 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN - const u32 gMonFrontPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/front.4bpp.lz"); - const u32 gMonPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/normal.gbapal.lz"); - const u32 gMonBackPic_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/back.4bpp.lz"); - const u32 gMonShinyPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/shiny.gbapal.lz"); - const u8 gMonIcon_ZacianHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zacian/icon.4bpp"); + const u32 gMonFrontPic_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/front.4bpp.lz"); + const u32 gMonPalette_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/normal.gbapal.lz"); + const u32 gMonBackPic_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/back.4bpp.lz"); + const u32 gMonShinyPalette_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/shiny.gbapal.lz"); + const u8 gMonIcon_ZacianHero[] = INCBIN_U8("graphics/pokemon/zacian/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Zacian[] = INCBIN_U8("graphics/pokemon/zacian/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZacianHeroOfManyBattles[] = INCBIN_COMP("graphics/pokemon/zacian/overworld.4bpp"); + const u32 gObjectEventPic_ZacianHero[] = INCBIN_COMP("graphics/pokemon/zacian/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZacianHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zacian/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZacianHero[] = INCBIN_U32("graphics/pokemon/zacian/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/front.4bpp.lz"); - const u32 gMonPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/normal.gbapal.lz"); - const u32 gMonBackPic_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/back.4bpp.lz"); - const u32 gMonShinyPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/shiny.gbapal.lz"); - const u8 gMonIcon_ZacianCrownedSword[] = INCBIN_U8("graphics/pokemon/zacian/crowned_sword/icon.4bpp"); + const u32 gMonFrontPic_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/front.4bpp.lz"); + const u32 gMonPalette_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/normal.gbapal.lz"); + const u32 gMonBackPic_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/back.4bpp.lz"); + const u32 gMonShinyPalette_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/shiny.gbapal.lz"); + const u8 gMonIcon_ZacianCrowned[] = INCBIN_U8("graphics/pokemon/zacian/crowned_sword/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZacianCrownedSword[] = INCBIN_COMP("graphics/pokemon/zacian/crowned_sword/overworld.4bpp"); + const u32 gObjectEventPic_ZacianCrowned[] = INCBIN_COMP("graphics/pokemon/zacian/crowned_sword/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZacianCrownedSword[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZacianCrowned[] = INCBIN_U32("graphics/pokemon/zacian/crowned_sword/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA - const u32 gMonFrontPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/front.4bpp.lz"); - const u32 gMonPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/normal.gbapal.lz"); - const u32 gMonBackPic_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/back.4bpp.lz"); - const u32 gMonShinyPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/shiny.gbapal.lz"); - const u8 gMonIcon_ZamazentaHeroOfManyBattles[] = INCBIN_U8("graphics/pokemon/zamazenta/icon.4bpp"); + const u32 gMonFrontPic_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/front.4bpp.lz"); + const u32 gMonPalette_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/normal.gbapal.lz"); + const u32 gMonBackPic_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/back.4bpp.lz"); + const u32 gMonShinyPalette_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/shiny.gbapal.lz"); + const u8 gMonIcon_ZamazentaHero[] = INCBIN_U8("graphics/pokemon/zamazenta/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Zamazenta[] = INCBIN_U8("graphics/pokemon/zamazenta/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZamazentaHeroOfManyBattles[] = INCBIN_COMP("graphics/pokemon/zamazenta/overworld.4bpp"); + const u32 gObjectEventPic_ZamazentaHero[] = INCBIN_COMP("graphics/pokemon/zamazenta/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZamazentaHeroOfManyBattles[] = INCBIN_U32("graphics/pokemon/zamazenta/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZamazentaHero[] = INCBIN_U32("graphics/pokemon/zamazenta/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/front.4bpp.lz"); - const u32 gMonPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/normal.gbapal.lz"); - const u32 gMonBackPic_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/back.4bpp.lz"); - const u32 gMonShinyPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/shiny.gbapal.lz"); - const u8 gMonIcon_ZamazentaCrownedShield[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp"); + const u32 gMonFrontPic_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/front.4bpp.lz"); + const u32 gMonPalette_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/normal.gbapal.lz"); + const u32 gMonBackPic_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/back.4bpp.lz"); + const u32 gMonShinyPalette_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/shiny.gbapal.lz"); + const u8 gMonIcon_ZamazentaCrowned[] = INCBIN_U8("graphics/pokemon/zamazenta/crowned_shield/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_ZamazentaCrownedShield[] = INCBIN_COMP("graphics/pokemon/zamazenta/crowned_shield/overworld.4bpp"); + const u32 gObjectEventPic_ZamazentaCrowned[] = INCBIN_COMP("graphics/pokemon/zamazenta/crowned_shield/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_ZamazentaCrownedShield[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_ZamazentaCrowned[] = INCBIN_U32("graphics/pokemon/zamazenta/crowned_shield/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_ZAMAZENTA @@ -19969,10 +24396,10 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/front.4bpp.lz"); - const u32 gMonPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/normal.gbapal.lz"); - const u32 gMonBackPic_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/back.4bpp.lz"); - const u32 gMonShinyPalette_UrshifuSingleStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/shiny.gbapal.lz"); + const u32 gMonFrontPic_UrshifuSingleStrike[] = INCBIN_U32("graphics/pokemon/urshifu/front.4bpp.lz"); + const u32 gMonPalette_UrshifuSingleStrike[] = INCBIN_U32("graphics/pokemon/urshifu/normal.gbapal.lz"); + const u32 gMonBackPic_UrshifuSingleStrike[] = INCBIN_U32("graphics/pokemon/urshifu/back.4bpp.lz"); + const u32 gMonShinyPalette_UrshifuSingleStrike[] = INCBIN_U32("graphics/pokemon/urshifu/shiny.gbapal.lz"); const u8 gMonIcon_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Urshifu[] = INCBIN_U8("graphics/pokemon/urshifu/footprint.1bpp"); @@ -19985,27 +24412,27 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/front.4bpp.lz"); - const u32 gMonPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/normal.gbapal.lz"); - const u32 gMonBackPic_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/back.4bpp.lz"); - const u32 gMonShinyPalette_UrshifuRapidStrikeStyle[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style/shiny.gbapal.lz"); + const u32 gMonFrontPic_UrshifuRapidStrike[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike/front.4bpp.lz"); + const u32 gMonPalette_UrshifuRapidStrike[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike/normal.gbapal.lz"); + const u32 gMonBackPic_UrshifuRapidStrike[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike/back.4bpp.lz"); + const u32 gMonShinyPalette_UrshifuRapidStrike[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike/shiny.gbapal.lz"); #if P_GIGANTAMAX_FORMS - const u32 gMonFrontPic_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/back.4bpp.lz"); - const u32 gMonPalette_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_style_gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/single_strike_style_gigantamax/icon.4bpp"); + const u32 gMonFrontPic_UrshifuSingleStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_gmax/front.4bpp.lz"); + const u32 gMonBackPic_UrshifuSingleStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_gmax/back.4bpp.lz"); + const u32 gMonPalette_UrshifuSingleStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_UrshifuSingleStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/single_strike_gmax/shiny.gbapal.lz"); + const u8 gMonIcon_UrshifuSingleStrikeGmax[] = INCBIN_U8("graphics/pokemon/urshifu/single_strike_gmax/icon.4bpp"); - const u32 gMonFrontPic_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/front.4bpp.lz"); - const u32 gMonBackPic_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/back.4bpp.lz"); - const u32 gMonPalette_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/normal.gbapal.lz"); - const u32 gMonShinyPalette_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/shiny.gbapal.lz"); - const u8 gMonIcon_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_U8("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/icon.4bpp"); + const u32 gMonFrontPic_UrshifuRapidStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_gmax/front.4bpp.lz"); + const u32 gMonBackPic_UrshifuRapidStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_gmax/back.4bpp.lz"); + const u32 gMonPalette_UrshifuRapidStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_gmax/normal.gbapal.lz"); + const u32 gMonShinyPalette_UrshifuRapidStrikeGmax[] = INCBIN_U32("graphics/pokemon/urshifu/rapid_strike_gmax/shiny.gbapal.lz"); + const u8 gMonIcon_UrshifuRapidStrikeGmax[] = INCBIN_U8("graphics/pokemon/urshifu/rapid_strike_gmax/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - // const u32 gObjectEventPic_UrshifuSingleStrikeStyleGigantamax[] = INCBIN_COMP("graphics/pokemon/urshifu/single_strike_style_gigantamax/overworld.4bpp"); - // const u32 gObjectEventPic_UrshifuRapidStrikeStyleGigantamax[] = INCBIN_COMP("graphics/pokemon/urshifu/rapid_strike_style_gigantamax/overworld.4bpp"); + // const u32 gObjectEventPic_UrshifuSingleStrikeGmax[] = INCBIN_COMP("graphics/pokemon/urshifu/single_strike_gmax/overworld.4bpp"); + // const u32 gObjectEventPic_UrshifuRapidStrikeGmax[] = INCBIN_COMP("graphics/pokemon/urshifu/rapid_strike_gmax/overworld.4bpp"); #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU @@ -20131,31 +24558,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_POKEMON_OBJECT_EVENTS #if P_FUSION_FORMS - const u32 gMonFrontPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/front.4bpp.lz"); - const u32 gMonPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/normal.gbapal.lz"); - const u32 gMonBackPic_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/back.4bpp.lz"); - const u32 gMonShinyPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/shiny.gbapal.lz"); - const u8 gMonIcon_CalyrexIceRider[] = INCBIN_U8("graphics/pokemon/calyrex/ice_rider/icon.4bpp"); + const u32 gMonFrontPic_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/front.4bpp.lz"); + const u32 gMonPalette_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/normal.gbapal.lz"); + const u32 gMonBackPic_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/back.4bpp.lz"); + const u32 gMonShinyPalette_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/shiny.gbapal.lz"); + const u8 gMonIcon_CalyrexIce[] = INCBIN_U8("graphics/pokemon/calyrex/ice/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_CalyrexIceRider[] = INCBIN_COMP("graphics/pokemon/calyrex/ice_rider/overworld.4bpp"); + const u32 gObjectEventPic_CalyrexIce[] = INCBIN_COMP("graphics/pokemon/calyrex/ice/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_CalyrexIceRider[] = INCBIN_U32("graphics/pokemon/calyrex/ice_rider/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_CalyrexIce[] = INCBIN_U32("graphics/pokemon/calyrex/ice/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FUSION_FORMS #if P_FUSION_FORMS - const u32 gMonFrontPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/front.4bpp.lz"); - const u32 gMonPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/normal.gbapal.lz"); - const u32 gMonBackPic_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/back.4bpp.lz"); - const u32 gMonShinyPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/shiny.gbapal.lz"); - const u8 gMonIcon_CalyrexShadowRider[] = INCBIN_U8("graphics/pokemon/calyrex/shadow_rider/icon.4bpp"); + const u32 gMonFrontPic_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/front.4bpp.lz"); + const u32 gMonPalette_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/normal.gbapal.lz"); + const u32 gMonBackPic_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/back.4bpp.lz"); + const u32 gMonShinyPalette_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/shiny.gbapal.lz"); + const u8 gMonIcon_CalyrexShadow[] = INCBIN_U8("graphics/pokemon/calyrex/shadow/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_CalyrexShadowRider[] = INCBIN_COMP("graphics/pokemon/calyrex/shadow_rider/overworld.4bpp"); + const u32 gObjectEventPic_CalyrexShadow[] = INCBIN_COMP("graphics/pokemon/calyrex/shadow/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_CalyrexShadowRider[] = INCBIN_U32("graphics/pokemon/calyrex/shadow_rider/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_CalyrexShadow[] = INCBIN_U32("graphics/pokemon/calyrex/shadow/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FUSION_FORMS @@ -20328,32 +24755,32 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/front.4bpp.lz"); - const u32 gMonPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/normal.gbapal.lz"); - const u32 gMonBackPic_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/back.4bpp.lz"); - const u32 gMonShinyPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/shiny.gbapal.lz"); - const u8 gMonIcon_OinkologneMale[] = INCBIN_U8("graphics/pokemon/oinkologne/icon.4bpp"); + const u32 gMonFrontPic_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/front.4bpp.lz"); + const u32 gMonPalette_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/normal.gbapal.lz"); + const u32 gMonBackPic_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/back.4bpp.lz"); + const u32 gMonShinyPalette_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/shiny.gbapal.lz"); + const u8 gMonIcon_OinkologneM[] = INCBIN_U8("graphics/pokemon/oinkologne/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Oinkologne[] = INCBIN_U8("graphics/pokemon/oinkologne/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_OinkologneMale[] = INCBIN_COMP("graphics/pokemon/oinkologne/overworld.4bpp"); + const u32 gObjectEventPic_OinkologneM[] = INCBIN_COMP("graphics/pokemon/oinkologne/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OinkologneMale[] = INCBIN_U32("graphics/pokemon/oinkologne/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OinkologneM[] = INCBIN_U32("graphics/pokemon/oinkologne/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/front.4bpp.lz"); - const u32 gMonPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/normal.gbapal.lz"); - const u32 gMonBackPic_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/back.4bpp.lz"); - const u32 gMonShinyPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/shiny.gbapal.lz"); - const u8 gMonIcon_OinkologneFemale[] = INCBIN_U8("graphics/pokemon/oinkologne/female/icon.4bpp"); + const u32 gMonFrontPic_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/front.4bpp.lz"); + const u32 gMonPalette_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/normal.gbapal.lz"); + const u32 gMonBackPic_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/back.4bpp.lz"); + const u32 gMonShinyPalette_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/shiny.gbapal.lz"); + const u8 gMonIcon_OinkologneF[] = INCBIN_U8("graphics/pokemon/oinkologne/f/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_OinkologneFemale[] = INCBIN_COMP("graphics/pokemon/oinkologne/female/overworld.4bpp"); + const u32 gObjectEventPic_OinkologneF[] = INCBIN_COMP("graphics/pokemon/oinkologne/f/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OinkologneFemale[] = INCBIN_U32("graphics/pokemon/oinkologne/female/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OinkologneF[] = INCBIN_U32("graphics/pokemon/oinkologne/f/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_LECHONK @@ -20496,31 +24923,31 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u32 gMonPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/normal.gbapal.lz"); const u32 gMonShinyPalette_Maushold[] = INCBIN_U32("graphics/pokemon/maushold/shiny.gbapal.lz"); - const u32 gMonFrontPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/front.4bpp.lz"); - const u32 gMonBackPic_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/back.4bpp.lz"); - const u8 gMonIcon_MausholdFamilyOfThree[] = INCBIN_U8("graphics/pokemon/maushold/icon.4bpp"); + const u32 gMonFrontPic_MausholdThree[] = INCBIN_U32("graphics/pokemon/maushold/front.4bpp.lz"); + const u32 gMonBackPic_MausholdThree[] = INCBIN_U32("graphics/pokemon/maushold/back.4bpp.lz"); + const u8 gMonIcon_MausholdThree[] = INCBIN_U8("graphics/pokemon/maushold/icon.4bpp"); #if P_FOOTPRINTS - const u8 gMonFootprint_MausholdFamilyOfThree[] = INCBIN_U8("graphics/pokemon/maushold/footprint.1bpp"); + const u8 gMonFootprint_MausholdThree[] = INCBIN_U8("graphics/pokemon/maushold/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MausholdFamilyOfThree[] = INCBIN_COMP("graphics/pokemon/maushold/overworld.4bpp"); + const u32 gObjectEventPic_MausholdThree[] = INCBIN_COMP("graphics/pokemon/maushold/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MausholdFamilyOfThree[] = INCBIN_U32("graphics/pokemon/maushold/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MausholdThree[] = INCBIN_U32("graphics/pokemon/maushold/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MausholdThree[] = INCBIN_U32("graphics/pokemon/maushold/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonFrontPic_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/front.4bpp.lz"); - const u32 gMonBackPic_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/back.4bpp.lz"); - const u8 gMonIcon_MausholdFamilyOfFour[] = INCBIN_U8("graphics/pokemon/maushold/four/icon.4bpp"); + const u32 gMonFrontPic_MausholdFour[] = INCBIN_U32("graphics/pokemon/maushold/four/front.4bpp.lz"); + const u32 gMonBackPic_MausholdFour[] = INCBIN_U32("graphics/pokemon/maushold/four/back.4bpp.lz"); + const u8 gMonIcon_MausholdFour[] = INCBIN_U8("graphics/pokemon/maushold/four/icon.4bpp"); #if P_FOOTPRINTS - const u8 gMonFootprint_MausholdFamilyOfFour[] = INCBIN_U8("graphics/pokemon/maushold/four/footprint.1bpp"); + const u8 gMonFootprint_MausholdFour[] = INCBIN_U8("graphics/pokemon/maushold/four/footprint.1bpp"); #endif //P_FOOTPRINTS #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_MausholdFamilyOfFour[] = INCBIN_COMP("graphics/pokemon/maushold/four/overworld.4bpp"); + const u32 gObjectEventPic_MausholdFour[] = INCBIN_COMP("graphics/pokemon/maushold/four/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_MausholdFamilyOfFour[] = INCBIN_U32("graphics/pokemon/maushold/four/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_MausholdFour[] = INCBIN_U32("graphics/pokemon/maushold/four/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_MausholdFour[] = INCBIN_U32("graphics/pokemon/maushold/four/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_TANDEMAUS @@ -20616,47 +25043,47 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ const u8 gMonFootprint_Squawkabilly[] = INCBIN_U8("graphics/pokemon/squawkabilly/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/normal.gbapal.lz"); - const u32 gMonShinyPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/shiny.gbapal.lz"); - const u8 gMonIcon_SquawkabillyGreenPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/icon.4bpp"); + const u32 gMonPalette_SquawkabillyGreen[] = INCBIN_U32("graphics/pokemon/squawkabilly/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyGreen[] = INCBIN_U32("graphics/pokemon/squawkabilly/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyGreen[] = INCBIN_U8("graphics/pokemon/squawkabilly/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SquawkabillyGreenPlumage[] = INCBIN_COMP("graphics/pokemon/squawkabilly/overworld.4bpp"); + const u32 gObjectEventPic_SquawkabillyGreen[] = INCBIN_COMP("graphics/pokemon/squawkabilly/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SquawkabillyGreenPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SquawkabillyGreen[] = INCBIN_U32("graphics/pokemon/squawkabilly/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SquawkabillyGreen[] = INCBIN_U32("graphics/pokemon/squawkabilly/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/normal.gbapal.lz"); - const u32 gMonShinyPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/shiny.gbapal.lz"); - const u8 gMonIcon_SquawkabillyBluePlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/blue_plumage/icon.4bpp"); + const u32 gMonPalette_SquawkabillyBlue[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyBlue[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyBlue[] = INCBIN_U8("graphics/pokemon/squawkabilly/blue/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SquawkabillyBluePlumage[] = INCBIN_COMP("graphics/pokemon/squawkabilly/blue_plumage/overworld.4bpp"); + const u32 gObjectEventPic_SquawkabillyBlue[] = INCBIN_COMP("graphics/pokemon/squawkabilly/blue/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SquawkabillyBluePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue_plumage/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SquawkabillyBlue[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SquawkabillyBlue[] = INCBIN_U32("graphics/pokemon/squawkabilly/blue/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/normal.gbapal.lz"); - const u32 gMonShinyPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/shiny.gbapal.lz"); - const u8 gMonIcon_SquawkabillyYellowPlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/yellow_plumage/icon.4bpp"); + const u32 gMonPalette_SquawkabillyYellow[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyYellow[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyYellow[] = INCBIN_U8("graphics/pokemon/squawkabilly/yellow/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SquawkabillyYellowPlumage[] = INCBIN_COMP("graphics/pokemon/squawkabilly/yellow_plumage/overworld.4bpp"); + const u32 gObjectEventPic_SquawkabillyYellow[] = INCBIN_COMP("graphics/pokemon/squawkabilly/yellow/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SquawkabillyYellowPlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow_plumage/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SquawkabillyYellow[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SquawkabillyYellow[] = INCBIN_U32("graphics/pokemon/squawkabilly/yellow/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS - const u32 gMonPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/normal.gbapal.lz"); - const u32 gMonShinyPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/shiny.gbapal.lz"); - const u8 gMonIcon_SquawkabillyWhitePlumage[] = INCBIN_U8("graphics/pokemon/squawkabilly/white_plumage/icon.4bpp"); + const u32 gMonPalette_SquawkabillyWhite[] = INCBIN_U32("graphics/pokemon/squawkabilly/white/normal.gbapal.lz"); + const u32 gMonShinyPalette_SquawkabillyWhite[] = INCBIN_U32("graphics/pokemon/squawkabilly/white/shiny.gbapal.lz"); + const u8 gMonIcon_SquawkabillyWhite[] = INCBIN_U8("graphics/pokemon/squawkabilly/white/icon.4bpp"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_SquawkabillyWhitePlumage[] = INCBIN_COMP("graphics/pokemon/squawkabilly/white_plumage/overworld.4bpp"); + const u32 gObjectEventPic_SquawkabillyWhite[] = INCBIN_COMP("graphics/pokemon/squawkabilly/white/overworld.4bpp"); #if OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE - const u32 gOverworldPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_SquawkabillyWhitePlumage[] = INCBIN_U32("graphics/pokemon/squawkabilly/white_plumage/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_SquawkabillyWhite[] = INCBIN_U32("graphics/pokemon/squawkabilly/white/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_SquawkabillyWhite[] = INCBIN_U32("graphics/pokemon/squawkabilly/white/overworld_shiny.gbapal.lz"); #endif //OW_PKMN_OBJECTS_SHARE_PALETTES #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_SQUAWKABILLY @@ -22089,79 +26516,79 @@ const u32 gObjectEventPic_Substitute[] = INCBIN_COMP("graphics/pokemon/question_ #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON - const u32 gMonFrontPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/front.4bpp.lz"); - const u32 gMonPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz"); - const u8 gMonIcon_OgerponTealMask[] = INCBIN_U8("graphics/pokemon/ogerpon/icon.4bpp"); + const u32 gMonFrontPic_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/front.4bpp.lz"); + const u32 gMonPalette_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponTeal[] = INCBIN_U8("graphics/pokemon/ogerpon/icon.4bpp"); #if P_FOOTPRINTS const u8 gMonFootprint_Ogerpon[] = INCBIN_U8("graphics/pokemon/ogerpon/footprint.1bpp"); #endif //P_FOOTPRINTS - const u32 gMonFrontPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/front.4bpp.lz"); - const u32 gMonPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz"); - const u8 gMonIcon_OgerponWellspringMask[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp"); + const u32 gMonFrontPic_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/front.4bpp.lz"); + const u32 gMonPalette_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponWellspring[] = INCBIN_U8("graphics/pokemon/ogerpon/wellspring/icon.4bpp"); - const u32 gMonFrontPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/front.4bpp.lz"); - const u32 gMonPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz"); - const u8 gMonIcon_OgerponHearthflameMask[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp"); + const u32 gMonFrontPic_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/front.4bpp.lz"); + const u32 gMonPalette_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponHearthflame[] = INCBIN_U8("graphics/pokemon/ogerpon/hearthflame/icon.4bpp"); - const u32 gMonFrontPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/front.4bpp.lz"); - const u32 gMonPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz"); - const u8 gMonIcon_OgerponCornerstoneMask[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp"); + const u32 gMonFrontPic_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/front.4bpp.lz"); + const u32 gMonPalette_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/shiny.gbapal.lz"); + const u8 gMonIcon_OgerponCornerstone[] = INCBIN_U8("graphics/pokemon/ogerpon/cornerstone/icon.4bpp"); - const u32 gMonFrontPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/front.4bpp.lz"); - const u32 gMonPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/tera/shiny.gbapal.lz"); + const u32 gMonFrontPic_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/teal_tera/front.4bpp.lz"); + const u32 gMonPalette_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/teal_tera/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/teal_tera/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/teal_tera/shiny.gbapal.lz"); - const u32 gMonFrontPic_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/front.4bpp.lz"); - const u32 gMonPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/tera/shiny.gbapal.lz"); + const u32 gMonFrontPic_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring_tera/front.4bpp.lz"); + const u32 gMonPalette_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring_tera/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring_tera/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring_tera/shiny.gbapal.lz"); - const u32 gMonFrontPic_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/front.4bpp.lz"); - const u32 gMonPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/tera/shiny.gbapal.lz"); + const u32 gMonFrontPic_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame_tera/front.4bpp.lz"); + const u32 gMonPalette_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame_tera/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame_tera/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame_tera/shiny.gbapal.lz"); - const u32 gMonFrontPic_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/front.4bpp.lz"); - const u32 gMonPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/normal.gbapal.lz"); - const u32 gMonBackPic_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/back.4bpp.lz"); - const u32 gMonShinyPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/tera/shiny.gbapal.lz"); + const u32 gMonFrontPic_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone_tera/front.4bpp.lz"); + const u32 gMonPalette_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone_tera/normal.gbapal.lz"); + const u32 gMonBackPic_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone_tera/back.4bpp.lz"); + const u32 gMonShinyPalette_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone_tera/shiny.gbapal.lz"); #if OW_POKEMON_OBJECT_EVENTS - const u32 gObjectEventPic_OgerponTealMask[] = INCBIN_COMP("graphics/pokemon/ogerpon/overworld.4bpp"); - const u32 gObjectEventPic_OgerponWellspringMask[] = INCBIN_COMP("graphics/pokemon/ogerpon/wellspring/overworld.4bpp"); - const u32 gObjectEventPic_OgerponHearthflameMask[] = INCBIN_COMP("graphics/pokemon/ogerpon/hearthflame/overworld.4bpp"); - const u32 gObjectEventPic_OgerponCornerstoneMask[] = INCBIN_COMP("graphics/pokemon/ogerpon/cornerstone/overworld.4bpp"); - const u32 gOverworldPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponWellspringMask[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponHearthflameMask[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponCornerstoneMask[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponTealMask[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_shiny.gbapal.lz"); + const u32 gObjectEventPic_OgerponTeal[] = INCBIN_COMP("graphics/pokemon/ogerpon/overworld.4bpp"); + const u32 gObjectEventPic_OgerponWellspring[] = INCBIN_COMP("graphics/pokemon/ogerpon/wellspring/overworld.4bpp"); + const u32 gObjectEventPic_OgerponHearthflame[] = INCBIN_COMP("graphics/pokemon/ogerpon/hearthflame/overworld.4bpp"); + const u32 gObjectEventPic_OgerponCornerstone[] = INCBIN_COMP("graphics/pokemon/ogerpon/cornerstone/overworld.4bpp"); + const u32 gOverworldPalette_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponWellspring[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponHearthflame[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponCornerstone[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponTeal[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_shiny.gbapal.lz"); - const u32 gObjectEventPic_OgerponTealMaskTeraTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/overworld.4bpp"); - const u32 gObjectEventPic_OgerponWellspringMaskTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/wellspring/overworld.4bpp"); - const u32 gObjectEventPic_OgerponHearthflameMaskTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/hearthflame/overworld.4bpp"); - const u32 gObjectEventPic_OgerponCornerstoneMaskTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/cornerstone/overworld.4bpp"); - const u32 gOverworldPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponWellspringMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponHearthflameMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponCornerstoneMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_shiny.gbapal.lz"); - const u32 gOverworldPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_normal.gbapal.lz"); - const u32 gShinyOverworldPalette_OgerponTealMaskTera[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_shiny.gbapal.lz"); + const u32 gObjectEventPic_OgerponTealTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/overworld.4bpp"); + const u32 gObjectEventPic_OgerponWellspringTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/wellspring/overworld.4bpp"); + const u32 gObjectEventPic_OgerponHearthflameTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/hearthflame/overworld.4bpp"); + const u32 gObjectEventPic_OgerponCornerstoneTera[] = INCBIN_COMP("graphics/pokemon/ogerpon/cornerstone/overworld.4bpp"); + const u32 gOverworldPalette_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponWellspringTera[] = INCBIN_U32("graphics/pokemon/ogerpon/wellspring/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponHearthflameTera[] = INCBIN_U32("graphics/pokemon/ogerpon/hearthflame/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponCornerstoneTera[] = INCBIN_U32("graphics/pokemon/ogerpon/cornerstone/overworld_shiny.gbapal.lz"); + const u32 gOverworldPalette_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_normal.gbapal.lz"); + const u32 gShinyOverworldPalette_OgerponTealTera[] = INCBIN_U32("graphics/pokemon/ogerpon/overworld_shiny.gbapal.lz"); #endif //OW_POKEMON_OBJECT_EVENTS #endif //P_FAMILY_OGERPON diff --git a/src/data/items.h b/src/data/items.h index c3d8469e68..2b560ad9d5 100644 --- a/src/data/items.h +++ b/src/data/items.h @@ -154,6 +154,22 @@ const struct Item gItemsInfo[] = // Poké Balls + [ITEM_STRANGE_BALL] = + { + .name = _("Strange Ball"), + .price = 0, + .description = COMPOUND_STRING( + "An unusual Ball\n" + "warped through\n" + "space and time."), + .pocket = POCKET_POKE_BALLS, + .type = ITEM_USE_BAG_MENU, + .battleUsage = EFFECT_ITEM_THROW_BALL, + .secondaryId = BALL_STRANGE, + .iconPic = gItemIcon_StrangeBall, + .iconPalette = gItemIconPalette_StrangeBall, + }, + [ITEM_POKE_BALL] = { .name = _("Poké Ball"), @@ -165,7 +181,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_POKE_BALL - FIRST_BALL, + .secondaryId = BALL_POKE, .iconPic = gItemIcon_PokeBall, .iconPalette = gItemIconPalette_PokeBall, }, @@ -181,7 +197,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_GREAT_BALL - FIRST_BALL, + .secondaryId = BALL_GREAT, .iconPic = gItemIcon_GreatBall, .iconPalette = gItemIconPalette_GreatBall, }, @@ -197,7 +213,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_ULTRA_BALL - FIRST_BALL, + .secondaryId = BALL_ULTRA, .iconPic = gItemIcon_UltraBall, .iconPalette = gItemIconPalette_UltraBall, }, @@ -213,7 +229,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_MASTER_BALL - FIRST_BALL, + .secondaryId = BALL_MASTER, .iconPic = gItemIcon_MasterBall, .iconPalette = gItemIconPalette_MasterBall, }, @@ -229,7 +245,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_PREMIER_BALL - FIRST_BALL, + .secondaryId = BALL_PREMIER, .iconPic = gItemIcon_PremierBall, .iconPalette = gItemIconPalette_LuxuryBall, }, @@ -245,7 +261,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_HEAL_BALL - FIRST_BALL, + .secondaryId = BALL_HEAL, .iconPic = gItemIcon_HealBall, .iconPalette = gItemIconPalette_HealBall, }, @@ -261,7 +277,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_NET_BALL - FIRST_BALL, + .secondaryId = BALL_NET, .iconPic = gItemIcon_NetBall, .iconPalette = gItemIconPalette_NetBall, }, @@ -277,7 +293,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_NEST_BALL - FIRST_BALL, + .secondaryId = BALL_NEST, .iconPic = gItemIcon_NestBall, .iconPalette = gItemIconPalette_NestBall, }, @@ -293,7 +309,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_DIVE_BALL - FIRST_BALL, + .secondaryId = BALL_DIVE, .iconPic = gItemIcon_DiveBall, .iconPalette = gItemIconPalette_DiveBall, }, @@ -309,7 +325,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_DUSK_BALL - FIRST_BALL, + .secondaryId = BALL_DUSK, .iconPic = gItemIcon_DuskBall, .iconPalette = gItemIconPalette_DuskBall, }, @@ -325,7 +341,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_TIMER_BALL - FIRST_BALL, + .secondaryId = BALL_TIMER, .iconPic = gItemIcon_TimerBall, .iconPalette = gItemIconPalette_RepeatBall, }, @@ -341,7 +357,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_QUICK_BALL - FIRST_BALL, + .secondaryId = BALL_QUICK, .iconPic = gItemIcon_QuickBall, .iconPalette = gItemIconPalette_QuickBall, }, @@ -357,7 +373,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_REPEAT_BALL - FIRST_BALL, + .secondaryId = BALL_REPEAT, .iconPic = gItemIcon_RepeatBall, .iconPalette = gItemIconPalette_RepeatBall, }, @@ -373,7 +389,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_LUXURY_BALL - FIRST_BALL, + .secondaryId = BALL_LUXURY, .iconPic = gItemIcon_LuxuryBall, .iconPalette = gItemIconPalette_LuxuryBall, }, @@ -389,7 +405,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_LEVEL_BALL - FIRST_BALL, + .secondaryId = BALL_LEVEL, .iconPic = gItemIcon_LevelBall, .iconPalette = gItemIconPalette_LevelBall, }, @@ -405,7 +421,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_LURE_BALL - FIRST_BALL, + .secondaryId = BALL_LURE, .iconPic = gItemIcon_LureBall, .iconPalette = gItemIconPalette_LureBall, }, @@ -421,7 +437,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_MOON_BALL - FIRST_BALL, + .secondaryId = BALL_MOON, .iconPic = gItemIcon_MoonBall, .iconPalette = gItemIconPalette_MoonBall, }, @@ -437,7 +453,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_FRIEND_BALL - FIRST_BALL, + .secondaryId = BALL_FRIEND, .iconPic = gItemIcon_FriendBall, .iconPalette = gItemIconPalette_FriendBall, }, @@ -453,7 +469,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_LOVE_BALL - FIRST_BALL, + .secondaryId = BALL_LOVE, .iconPic = gItemIcon_LoveBall, .iconPalette = gItemIconPalette_LoveBall, }, @@ -469,7 +485,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_FAST_BALL - FIRST_BALL, + .secondaryId = BALL_FAST, .iconPic = gItemIcon_FastBall, .iconPalette = gItemIconPalette_FastBall, }, @@ -485,7 +501,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_HEAVY_BALL - FIRST_BALL, + .secondaryId = BALL_HEAVY, .iconPic = gItemIcon_HeavyBall, .iconPalette = gItemIconPalette_HeavyBall, }, @@ -506,7 +522,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_DREAM_BALL - FIRST_BALL, + .secondaryId = BALL_DREAM, .iconPic = gItemIcon_DreamBall, .iconPalette = gItemIconPalette_DreamBall, }, @@ -522,7 +538,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_SAFARI_BALL - FIRST_BALL, + .secondaryId = BALL_SAFARI, .iconPic = gItemIcon_SafariBall, .iconPalette = gItemIconPalette_SafariBall, }, @@ -532,13 +548,13 @@ const struct Item gItemsInfo[] = .name = _("Sport Ball"), .price = (I_PRICE < GEN_3 || I_PRICE >= GEN_9) ? 0 : 300, .description = COMPOUND_STRING( - "A special Ball used\n" - "in the Bug-Catching\n" - "Contest."), + "A special Ball\n" + "used in the Bug-\n" + "Catching Contest."), .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_SPORT_BALL - FIRST_BALL, + .secondaryId = BALL_SPORT, .iconPic = gItemIcon_SportBall, .iconPalette = gItemIconPalette_SportBall, }, @@ -553,7 +569,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_PARK_BALL - FIRST_BALL, + .secondaryId = BALL_PARK, .iconPic = gItemIcon_ParkBall, .iconPalette = gItemIconPalette_ParkBall, }, @@ -568,7 +584,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_BEAST_BALL - FIRST_BALL, + .secondaryId = BALL_BEAST, .iconPic = gItemIcon_BeastBall, .iconPalette = gItemIconPalette_BeastBall, }, @@ -584,7 +600,7 @@ const struct Item gItemsInfo[] = .pocket = POCKET_POKE_BALLS, .type = ITEM_USE_BAG_MENU, .battleUsage = EFFECT_ITEM_THROW_BALL, - .secondaryId = ITEM_CHERISH_BALL - FIRST_BALL, + .secondaryId = BALL_CHERISH, .iconPic = gItemIcon_CherishBall, .iconPalette = gItemIconPalette_CherishBall, }, @@ -2036,6 +2052,7 @@ const struct Item gItemsInfo[] = "A glass flute that\n" "awakens sleeping\n" "Pokémon."), + .notConsumed = TRUE, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_Medicine, @@ -2054,6 +2071,7 @@ const struct Item gItemsInfo[] = "A glass flute that\n" "snaps Pokémon\n" "out of confusion."), + .notConsumed = TRUE, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2072,6 +2090,7 @@ const struct Item gItemsInfo[] = "A glass flute that\n" "snaps Pokémon\n" "out of attraction."), + .notConsumed = TRUE, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -2093,6 +2112,7 @@ const struct Item gItemsInfo[] = "A glass flute that\n" "keeps away wild\n" "Pokémon."), + .notConsumed = TRUE, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, @@ -2109,6 +2129,7 @@ const struct Item gItemsInfo[] = .description = COMPOUND_STRING( "A glass flute that\n" "lures wild Pokémon."), + .notConsumed = TRUE, .pocket = POCKET_ITEMS, .type = ITEM_USE_PARTY_MENU, .fieldUseFunc = ItemUseOutOfBattle_BlackWhiteFlute, @@ -3170,9 +3191,9 @@ const struct Item gItemsInfo[] = .name = _("Jaw Fossil"), .price = (I_PRICE >= GEN_7) ? 7000: 1000, .description = COMPOUND_STRING( - "A piece of a prehis-\n" - "toric Pokémon's\n" - "large jaw."), + "A piece of a\n" + "prehistoric Poké-\n" + "mon's large jaw."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -3186,9 +3207,9 @@ const struct Item gItemsInfo[] = .name = _("Sail Fossil"), .price = (I_PRICE >= GEN_7) ? 7000: 1000, .description = COMPOUND_STRING( - "A piece of a prehis-\n" - "toric Pokémon's\n" - "skin sail."), + "A piece of a\n" + "prehistoric Poké-\n" + "mon's skin sail."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -4163,8 +4184,8 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_7) ? 2000 * TREASURE_FACTOR : 2100, .description = COMPOUND_STRING( "Loved by a certain\n" - "Pokémon. Imbued with\n" - "spiritual energy."), + "Pokémon. Imbued\n" + "with spirit energy."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -4180,8 +4201,8 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 3000 : ((I_PRICE >= GEN_7) ? 2000 : 500), .description = COMPOUND_STRING( "A mysterious scale\n" - "that evolves certain\n" - "Pokémon. It shines."), + "that evolves a\n" + "certain Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -4214,8 +4235,8 @@ const struct Item gItemsInfo[] = .name = _("Sachet"), .price = (I_PRICE >= GEN_7) ? 2000 * TREASURE_FACTOR : 2100, .description = COMPOUND_STRING( - "A sachet filled with\n" - "perfumes loved by\n" + "A sachet of strong\n" + "perfumes, loved by\n" "a certain Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, @@ -4231,9 +4252,9 @@ const struct Item gItemsInfo[] = .name = _("Oval Stone"), .price = (I_PRICE >= GEN_7) ? 2000 : 2100, .description = COMPOUND_STRING( - "Makes a certain\n" - "Pokémon evolve. It's\n" - "shaped like an egg."), + "Peculiar stone\n" + "that evolves a\n" + "certain Pokémon."), .pocket = POCKET_ITEMS, .type = EVO_HELD_ITEM_TYPE, .fieldUseFunc = EVO_HELD_ITEM_FIELD_FUNC, @@ -4743,8 +4764,8 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_PLATE, .holdEffectParam = 20, .description = COMPOUND_STRING( - "A stone tablet that\n" - "boosts the power of\n" + "A tablet that ups\n" + "the power of\n" "Fairy-type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -4939,7 +4960,7 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_MEMORY, .holdEffectParam = 0, .description = COMPOUND_STRING( - "A disc with Fighting\n" + "Disc with Fighting\n" "type data. It swaps\n" "Silvally's type."), .pocket = POCKET_ITEMS, @@ -7047,9 +7068,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_7) ? 1000 : 10, .holdEffect = HOLD_EFFECT_QUICK_POWDER, .description = COMPOUND_STRING( - "An item to be held\n" - "by Ditto. This odd\n" - "powder boosts Speed."), + "A hold item that\n" + "raises the Speed\n" + "of Ditto."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7126,9 +7147,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_ADAMANT_ORB, .holdEffectParam = 20, .description = COMPOUND_STRING( - "Boosts the power of\n" - "Dialga's Dragon and\n" - "Steel-type moves."), + "Powers up Dialga's\n" + "Dragon and Steel-\n" + "type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7144,9 +7165,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_LUSTROUS_ORB, .holdEffectParam = 20, .description = COMPOUND_STRING( - "Boosts the power of\n" - "Palkia's Dragon and\n" - "Water-type moves."), + "Powers up Palkia's\n" + "Dragon and Water-\n" + "type moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -7162,7 +7183,7 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_GRISEOUS_ORB, .holdEffectParam = 20, .description = COMPOUND_STRING( - "Powers up Giratina's\n" + "Boosts Giratina's\n" "Dragon and Ghost-\n" "type moves."), .pocket = POCKET_ITEMS, @@ -8101,9 +8122,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_CELL_BATTERY, .holdEffectParam = 0, .description = COMPOUND_STRING( - "Raises Atk if the\n" - "holder is hit by an\n" - "Electric-type move."), + "Raises Attack if\n" + "the holder is hit by\n" + "an Electric move."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8448,8 +8469,8 @@ const struct Item gItemsInfo[] = .holdEffectParam = 10, .description = COMPOUND_STRING( "A headband that\n" - "boosts the power of\n" - "physical moves."), + "boosts the power\n" + "of physical moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8519,9 +8540,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 50000 : ((I_PRICE >= GEN_7) ? 4000 : 200), .holdEffect = HOLD_EFFECT_LIFE_ORB, .description = COMPOUND_STRING( - "Boosts the power of\n" - "moves at the cost\n" - "of some HP per turn."), + "Boosts move power\n" + "but holder loses HP\n" + "with each attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8608,9 +8629,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 20000 : ((I_PRICE >= GEN_7) ? 4000 : 200), .holdEffect = HOLD_EFFECT_IRON_BALL, .description = COMPOUND_STRING( - "Cuts Speed and lets\n" - "Flying-types be hit\n" - "by Ground moves."), + "Cuts Speed and\n" + "becomes vulnerable\n" + "to Ground moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8657,9 +8678,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 10000 : ((I_PRICE >= GEN_7) ? 4000 : 200), .holdEffect = HOLD_EFFECT_BLACK_SLUDGE, .description = COMPOUND_STRING( - "Gradually restores\n" - "HP of Poison-types.\n" - "Damages others."), + "Restores HP for\n" + "Poison-types.\n" + "Damages all others."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8674,9 +8695,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 10000 : ((I_PRICE >= GEN_7) ? 4000 : 200), .holdEffect = HOLD_EFFECT_GRIP_CLAW, .description = COMPOUND_STRING( - "Makes binding moves\n" - "used by the holder\n" - "go on for 7 turns."), + "A held item that\n" + "extends binding\n" + "moves like Wrap."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8692,8 +8713,8 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_STICKY_BARB, .description = COMPOUND_STRING( "Damages the holder\n" - "each turn. May latch\n" - "on to foes."), + "each turn. May\n" + "latch on to foes."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8708,9 +8729,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 20000 : ((I_PRICE >= GEN_7) ? 4000 : 100), .holdEffect = HOLD_EFFECT_SHED_SHELL, .description = COMPOUND_STRING( - "Enables the holder\n" - "to switch out of\n" - "battle without fail."), + "Allows the holder\n" + "to switch out\n" + "without fail."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8727,7 +8748,7 @@ const struct Item gItemsInfo[] = .holdEffectParam = 30, .description = COMPOUND_STRING( "A held item that\n" - "boosts the power of\n" + "ups the power of\n" "HP-stealing moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, @@ -8831,9 +8852,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_AIR_BALLOON, .holdEffectParam = 0, .description = COMPOUND_STRING( - "Elevates the holder\n" - "in the air. If hit,\n" - "this item will burst."), + "Makes the holder\n" + "float but bursts\n" + "if hit by an attack."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8867,9 +8888,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_RING_TARGET, .holdEffectParam = 0, .description = COMPOUND_STRING( - "Moves that wouldn't\n" - "have effect will\n" - "land on its holder."), + "Moves that usually\n" + "have no effect will\n" + "hit the holder."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8921,9 +8942,9 @@ const struct Item gItemsInfo[] = .holdEffect = HOLD_EFFECT_WEAKNESS_POLICY, .holdEffectParam = 0, .description = COMPOUND_STRING( - "If hit by a Super\n" - "Effective move, ups\n" - "Atk and Sp. Atk."), + "If hit by a super-\n" + "effective move,\n" + "ups Atk and Sp. Atk."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -8974,9 +8995,9 @@ const struct Item gItemsInfo[] = .price = (I_PRICE >= GEN_9) ? 5000 : ((I_PRICE >= GEN_8) ? 4000 : 300), .holdEffect = HOLD_EFFECT_ADRENALINE_ORB, .description = COMPOUND_STRING( - "Boosts Speed if the\n" - "user is intimidated,\n" - "but only one time."), + "This orb boosts\n" + "Speed if the holder\n" + "is intimidated."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -13037,9 +13058,9 @@ const struct Item gItemsInfo[] = .price = 20000, .holdEffect = HOLD_EFFECT_COVERT_CLOAK, .description = COMPOUND_STRING( - "Protects the holder\n" - "from secondary\n" - "move effects."), + "Protects holder\n" + "from additional\n" + "effects of moves."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, @@ -14004,11 +14025,11 @@ const struct Item gItemsInfo[] = .description = COMPOUND_STRING( #if B_X_ITEMS_BUFF >= GEN_7 "Sharply raises\n" - "offenses & defenses\n" + "offense & defense\n" "during one battle."), #else - "Raises offenses\n" - "and defenses during\n" + "Raises offense\n" + "and defense during\n" "one battle."), #endif .pocket = POCKET_ITEMS, @@ -14063,9 +14084,9 @@ const struct Item gItemsInfo[] = .name = _("Pokéshi Doll"), .price = 2000, .description = COMPOUND_STRING( - "A wooden toy carved\n" - "in the image of a\n" - "Pokémon. Can be sold."), + "A wooden toy\n" + "resembling a Poké-.\n" + "mon. Can be sold."), .pocket = POCKET_ITEMS, .type = ITEM_USE_BAG_MENU, .fieldUseFunc = ItemUseOutOfBattle_CannotUse, diff --git a/src/data/moves_info.h b/src/data/moves_info.h index f42886bf61..49d35c0897 100644 --- a/src/data/moves_info.h +++ b/src/data/moves_info.h @@ -1874,6 +1874,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = 50, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4), .healingMove = B_HEAL_BLOCKING >= GEN_6, .contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON, @@ -1895,6 +1896,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = 50, .zMove = { .powerOverride = 120 }, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4), .healingMove = B_HEAL_BLOCKING >= GEN_6, @@ -3620,6 +3622,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, + .argument = 50, .makesContact = TRUE, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4), .healingMove = B_HEAL_BLOCKING >= GEN_6, @@ -5152,6 +5155,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = 50, .ignoresKingsRock = (B_UPDATED_MOVE_FLAGS == GEN_3 || B_UPDATED_MOVE_FLAGS == GEN_4), .healingMove = B_HEAL_BLOCKING >= GEN_6, .contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, @@ -7201,7 +7205,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "The higher the user's HP,\n" "the more damage caused."), - .effect = EFFECT_ERUPTION, + .effect = EFFECT_POWER_BASED_ON_USER_HP, .power = 150, .type = TYPE_FIRE, .accuracy = 100, @@ -8178,7 +8182,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "Inflicts more damage if the\n" "user's HP is high."), - .effect = EFFECT_ERUPTION, + .effect = EFFECT_POWER_BASED_ON_USER_HP, .power = 150, .type = TYPE_WATER, .accuracy = 100, @@ -8488,7 +8492,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .type = TYPE_NORMAL, .accuracy = 0, .pp = 40, - .target = MOVE_TARGET_USER, + .target = MOVE_TARGET_USER, // Targeting is handled through the script .priority = 0, .category = DAMAGE_CATEGORY_STATUS, .zMove = { .effect = Z_EFFECT_ATK_UP_1 }, @@ -9498,15 +9502,14 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Wring Out"), .description = sWringOutDescription, - .effect = EFFECT_VARY_POWER_BASED_ON_HP, - .power = 1, + .effect = EFFECT_POWER_BASED_ON_TARGET_HP, + .power = 120, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, - .argument = 120, .makesContact = TRUE, .contestEffect = CONTEST_EFFECT_STARTLE_PREV_MON, .contestCategory = CONTEST_CATEGORY_SMART, @@ -10265,6 +10268,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, + .argument = 50, .makesContact = TRUE, .punchingMove = TRUE, .healingMove = B_HEAL_BLOCKING >= GEN_6, @@ -11564,15 +11568,14 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Crush Grip"), .description = sWringOutDescription, - .effect = EFFECT_VARY_POWER_BASED_ON_HP, - .power = 1, + .effect = EFFECT_POWER_BASED_ON_TARGET_HP, + .power = 120, .type = TYPE_NORMAL, .accuracy = 100, .pp = 5, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, - .argument = 120, .makesContact = TRUE, .contestEffect = CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON, .contestCategory = CONTEST_CATEGORY_TOUGH, @@ -12214,7 +12217,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Coil"), .description = COMPOUND_STRING( - "Coils up to raise Attack\n" + "Coils up to raise Attack,\n" "Defense and Accuracy."), .effect = EFFECT_COIL, .power = 0, @@ -13246,6 +13249,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, + .argument = 50, .makesContact = TRUE, .healingMove = B_HEAL_BLOCKING >= GEN_6, .contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, @@ -14192,8 +14196,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Parabolic Charge"), .description = COMPOUND_STRING( - "Damages adjacent Pokémon and\n" - "heals up by half of it."), + "Damages adjacent Pokémon\n" + "and heals up by half of it."), .effect = EFFECT_ABSORB, .power = B_UPDATED_MOVE_DATA >= GEN_7 ? 65 : 50, .type = TYPE_ELECTRIC, @@ -14202,6 +14206,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_FOES_AND_ALLY, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = 50, .healingMove = B_HEAL_BLOCKING >= GEN_6, .contestEffect = CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION, .contestCategory = CONTEST_CATEGORY_BEAUTY, @@ -14416,7 +14421,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .type = TYPE_FAIRY, .accuracy = 0, .pp = 10, - .target = MOVE_TARGET_ALL_BATTLERS, + .target = MOVE_TARGET_USER, // The targeting of Flower Shield is handled through a script .priority = 0, .category = DAMAGE_CATEGORY_STATUS, .zMove = { .effect = Z_EFFECT_DEF_UP_1 }, @@ -15005,7 +15010,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "Doubles the amount of\n" "Prize Money received."), - .effect = EFFECT_DO_NOTHING, + .effect = EFFECT_HAPPY_HOUR, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, @@ -15075,7 +15080,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "Congratulates you on your\n" "special day."), - .effect = EFFECT_DO_NOTHING, + .effect = EFFECT_CELEBRATE, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, @@ -15105,7 +15110,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "The user and ally hold hands\n" "making them happy."), - .effect = EFFECT_DO_NOTHING, + .effect = EFFECT_HOLD_HANDS, .power = 0, .type = TYPE_NORMAL, .accuracy = 0, @@ -16751,7 +16756,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .name = COMPOUND_STRING("Plasma Fists"), .description = COMPOUND_STRING( "Hits with electrical fists.\n" - "Normal moves become Electric."), + "Normal moves turn Electric."), .effect = EFFECT_PLASMA_FISTS, .power = 100, .type = TYPE_ELECTRIC, @@ -17110,8 +17115,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Dynamax Cannon"), .description = COMPOUND_STRING( - "Fires a strong beam. Deals\n" - "2x damage to Dynamaxed foes."), + "Unleashes core energy.\n" + "2x against Dynamaxed foes."), .effect = EFFECT_DYNAMAX_DOUBLE_DMG, .power = 100, .type = TYPE_DRAGON, @@ -17330,7 +17335,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .name = COMPOUND_STRING("Octolock"), .description = COMPOUND_STRING( "Traps the foe to lower Def\n" - "and Sp. Def fall each turn."), + "and Sp. Def each turn."), .effect = EFFECT_OCTOLOCK, .power = 0, .type = TYPE_FIGHTING, @@ -18528,7 +18533,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .description = COMPOUND_STRING( "The higher the user's HP\n" "the more damage caused."), - .effect = EFFECT_ERUPTION, + .effect = EFFECT_POWER_BASED_ON_USER_HP, .power = 150, .type = TYPE_DRAGON, .accuracy = 100, @@ -18631,8 +18636,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Glacial Lance"), .description = COMPOUND_STRING( - "Strikes by hurling a blizzard-\n" - "cloaked icicle lance at foes."), + "Hurls a blizzard-cloaked\n" + "icicle lance at foes."), .effect = EFFECT_HIT, .power = B_UPDATED_MOVE_DATA >= GEN_9 ? 120 : 130, .type = TYPE_ICE, @@ -18653,8 +18658,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Astral Barrage"), .description = COMPOUND_STRING( - "Strikes by sending a frightful\n" - "amount of ghosts at foes."), + "Sends a frightful amount\n" + "of small ghosts at foes."), .effect = EFFECT_HIT, .power = 120, .type = TYPE_GHOST, @@ -18794,7 +18799,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .type = TYPE_FAIRY, .accuracy = 80, .pp = 5, - .target = MOVE_TARGET_SELECTED, + .target = MOVE_TARGET_BOTH, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, .windMove = TRUE, @@ -20023,6 +20028,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, + .argument = 50, .makesContact = TRUE, .slicingMove = TRUE, .healingMove = TRUE, @@ -20324,6 +20330,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .target = MOVE_TARGET_BOTH, .priority = 0, .category = DAMAGE_CATEGORY_SPECIAL, + .argument = 50, .thawsUser = TRUE, .metronomeBanned = TRUE, .healingMove = B_EXTRAPOLATED_MOVE_FLAGS, @@ -20380,8 +20387,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Electro Shot"), .description = COMPOUND_STRING( - "Absorbs electricity in one turn,\n" - "then attacks next turn."), + "Gathers electricity, then\n" + "fires a high-voltage shot."), .effect = EFFECT_TWO_TURNS_ATTACK, .power = 130, .type = TYPE_ELECTRIC, @@ -20403,8 +20410,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Tera Starstorm"), .description = COMPOUND_STRING( - "Damages all opponents if user is\n" - "Stellar form Terapagos."), + "In Terapagos's Stellar\n" + "Form, it hits all foes."), .effect = EFFECT_TERA_STARSTORM, .power = 120, .type = TYPE_NORMAL, @@ -20516,15 +20523,14 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Hard Press"), .description = sWringOutDescription, - .effect = EFFECT_VARY_POWER_BASED_ON_HP, - .power = 1, + .effect = EFFECT_POWER_BASED_ON_TARGET_HP, + .power = 100, .type = TYPE_STEEL, .accuracy = 100, .pp = 10, .target = MOVE_TARGET_SELECTED, .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, - .argument = 100, .makesContact = TRUE, .battleAnimScript = gBattleAnimMove_HardPress, }, @@ -20551,8 +20557,8 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = { .name = COMPOUND_STRING("Alluring Voice"), .description = COMPOUND_STRING( - "Confuses the target if their\n" - "stats were boosted this turn."), + "Confuses foe if its stats\n" + "were boosted this turn."), .effect = EFFECT_HIT, .power = 80, .type = TYPE_FAIRY, @@ -20604,6 +20610,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = .priority = 0, .category = DAMAGE_CATEGORY_PHYSICAL, .makesContact = TRUE, + .minimizeDoubleDamage = TRUE, .battleAnimScript = gBattleAnimMove_SupercellSlam, }, @@ -20943,7 +20950,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] = }, [MOVE_10000000_VOLT_THUNDERBOLT] = { - .name = COMPOUND_STRING("10000000 Volt Thunderbolt"), + .name = COMPOUND_STRING("10,000,000 Volt Thunderbolt"), .description = sNullDescription, .effect = EFFECT_HIT, .power = 195, diff --git a/src/data/object_events/object_event_pic_tables_followers.h b/src/data/object_events/object_event_pic_tables_followers.h index 1164e92c52..276e8fcf65 100644 --- a/src/data/object_events/object_event_pic_tables_followers.h +++ b/src/data/object_events/object_event_pic_tables_followers.h @@ -13,17 +13,19 @@ static const struct SpriteFrameImage sPicTable_Ivysaur[] = { static const struct SpriteFrameImage sPicTable_Venusaur[] = { overworld_ascending_frames(gObjectEventPic_Venusaur, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_VenusaurF[] = { overworld_ascending_frames(gObjectEventPic_VenusaurF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_VenusaurMega[] = { overworld_ascending_frames(gObjectEventPic_VenusaurMega, 4, 4), };*/ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_VenusaurGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_VenusaurGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_VenusaurGmax[] = { + overworld_ascending_frames(gObjectEventPic_VenusaurGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR @@ -47,8 +49,8 @@ static const struct SpriteFrameImage sPicTable_CharizardMegaY[] = { };*/ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CharizardGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CharizardGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CharizardGmax[] = { + overworld_ascending_frames(gObjectEventPic_CharizardGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER @@ -69,8 +71,8 @@ static const struct SpriteFrameImage sPicTable_Blastoise[] = { };*/ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_BlastoiseGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_BlastoiseGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_BlastoiseGmax[] = { + overworld_ascending_frames(gObjectEventPic_BlastoiseGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE @@ -85,12 +87,14 @@ static const struct SpriteFrameImage sPicTable_Metapod[] = { static const struct SpriteFrameImage sPicTable_Butterfree[] = { overworld_ascending_frames(gObjectEventPic_Butterfree, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ButterfreeF[] = { overworld_ascending_frames(gObjectEventPic_ButterfreeF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_ButterfreeGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_ButterfreeGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_ButterfreeGmax[] = { + overworld_ascending_frames(gObjectEventPic_ButterfreeGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE @@ -133,21 +137,25 @@ static const struct SpriteFrameImage sPicTable_Pidgeot[] = { static const struct SpriteFrameImage sPicTable_Rattata[] = { overworld_ascending_frames(gObjectEventPic_Rattata, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RattataF[] = { overworld_ascending_frames(gObjectEventPic_RattataF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Raticate[] = { overworld_ascending_frames(gObjectEventPic_Raticate, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RaticateF[] = { overworld_ascending_frames(gObjectEventPic_RaticateF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_RattataAlolan[] = { - overworld_ascending_frames(gObjectEventPic_RattataAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_RattataAlola[] = { + overworld_ascending_frames(gObjectEventPic_RattataAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_RaticateAlolan[] = { - overworld_ascending_frames(gObjectEventPic_RaticateAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_RaticateAlola[] = { + overworld_ascending_frames(gObjectEventPic_RaticateAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA @@ -182,9 +190,11 @@ static const struct SpriteFrameImage sPicTable_PichuSpikyEared[] = { static const struct SpriteFrameImage sPicTable_Pikachu[] = { overworld_ascending_frames(gObjectEventPic_Pikachu, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_PikachuF[] = { overworld_ascending_frames(gObjectEventPic_PikachuF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_COSPLAY_PIKACHU_FORMS /*static const struct SpriteFrameImage sPicTable_PikachuCosplay[] = { overworld_ascending_frames(gObjectEventPic_PikachuCosplay, 4, 4), @@ -207,47 +217,49 @@ static const struct SpriteFrameImage sPicTable_PikachuLibre[] = { #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS -/*static const struct SpriteFrameImage sPicTable_PikachuOriginalCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuOriginalCap, 4, 4), +/*static const struct SpriteFrameImage sPicTable_PikachuOriginal[] = { + overworld_ascending_frames(gObjectEventPic_PikachuOriginal, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuHoennCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuHoennCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuHoenn[] = { + overworld_ascending_frames(gObjectEventPic_PikachuHoenn, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuSinnohCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuSinnohCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuSinnoh[] = { + overworld_ascending_frames(gObjectEventPic_PikachuSinnoh, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuUnovaCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuUnovaCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuUnova[] = { + overworld_ascending_frames(gObjectEventPic_PikachuUnova, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuKalosCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuKalosCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuKalos[] = { + overworld_ascending_frames(gObjectEventPic_PikachuKalos, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuAlolaCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuAlolaCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuAlola[] = { + overworld_ascending_frames(gObjectEventPic_PikachuAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuPartnerCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuPartnerCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuPartner[] = { + overworld_ascending_frames(gObjectEventPic_PikachuPartner, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PikachuWorldCap[] = { - overworld_ascending_frames(gObjectEventPic_PikachuWorldCap, 4, 4), +static const struct SpriteFrameImage sPicTable_PikachuWorld[] = { + overworld_ascending_frames(gObjectEventPic_PikachuWorld, 4, 4), };*/ #endif //P_CAP_PIKACHU_FORMS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_PikachuGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_PikachuGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_PikachuGmax[] = { + overworld_ascending_frames(gObjectEventPic_PikachuGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS static const struct SpriteFrameImage sPicTable_Raichu[] = { overworld_ascending_frames(gObjectEventPic_Raichu, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RaichuF[] = { overworld_ascending_frames(gObjectEventPic_RaichuF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_RaichuAlolan[] = { - overworld_ascending_frames(gObjectEventPic_RaichuAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_RaichuAlola[] = { + overworld_ascending_frames(gObjectEventPic_RaichuAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU @@ -260,11 +272,11 @@ static const struct SpriteFrameImage sPicTable_Sandslash[] = { overworld_ascending_frames(gObjectEventPic_Sandslash, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_SandshrewAlolan[] = { - overworld_ascending_frames(gObjectEventPic_SandshrewAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_SandshrewAlola[] = { + overworld_ascending_frames(gObjectEventPic_SandshrewAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SandslashAlolan[] = { - overworld_ascending_frames(gObjectEventPic_SandslashAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_SandslashAlola[] = { + overworld_ascending_frames(gObjectEventPic_SandslashAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW @@ -312,11 +324,11 @@ static const struct SpriteFrameImage sPicTable_Ninetales[] = { overworld_ascending_frames(gObjectEventPic_Ninetales, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_VulpixAlolan[] = { - overworld_ascending_frames(gObjectEventPic_VulpixAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_VulpixAlola[] = { + overworld_ascending_frames(gObjectEventPic_VulpixAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_NinetalesAlolan[] = { - overworld_ascending_frames(gObjectEventPic_NinetalesAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_NinetalesAlola[] = { + overworld_ascending_frames(gObjectEventPic_NinetalesAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_VULPIX @@ -339,15 +351,19 @@ static const struct SpriteFrameImage sPicTable_Wigglytuff[] = { static const struct SpriteFrameImage sPicTable_Zubat[] = { overworld_ascending_frames(gObjectEventPic_Zubat, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ZubatF[] = { overworld_ascending_frames(gObjectEventPic_ZubatF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Golbat[] = { overworld_ascending_frames(gObjectEventPic_Golbat, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GolbatF[] = { overworld_ascending_frames(gObjectEventPic_GolbatF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Crobat[] = { overworld_ascending_frames(gObjectEventPic_Crobat, 4, 4), @@ -362,15 +378,19 @@ static const struct SpriteFrameImage sPicTable_Oddish[] = { static const struct SpriteFrameImage sPicTable_Gloom[] = { overworld_ascending_frames(gObjectEventPic_Gloom, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GloomF[] = { overworld_ascending_frames(gObjectEventPic_GloomF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Vileplume[] = { overworld_ascending_frames(gObjectEventPic_Vileplume, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_VileplumeF[] = { overworld_ascending_frames(gObjectEventPic_VileplumeF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Bellossom[] = { overworld_ascending_frames(gObjectEventPic_Bellossom, 4, 4), @@ -404,11 +424,11 @@ static const struct SpriteFrameImage sPicTable_Dugtrio[] = { overworld_ascending_frames(gObjectEventPic_Dugtrio, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_DiglettAlolan[] = { - overworld_ascending_frames(gObjectEventPic_DiglettAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_DiglettAlola[] = { + overworld_ascending_frames(gObjectEventPic_DiglettAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_DugtrioAlolan[] = { - overworld_ascending_frames(gObjectEventPic_DugtrioAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_DugtrioAlola[] = { + overworld_ascending_frames(gObjectEventPic_DugtrioAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT @@ -421,17 +441,17 @@ static const struct SpriteFrameImage sPicTable_Persian[] = { overworld_ascending_frames(gObjectEventPic_Persian, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_MeowthAlolan[] = { - overworld_ascending_frames(gObjectEventPic_MeowthAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_MeowthAlola[] = { + overworld_ascending_frames(gObjectEventPic_MeowthAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_PersianAlolan[] = { - overworld_ascending_frames(gObjectEventPic_PersianAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_PersianAlola[] = { + overworld_ascending_frames(gObjectEventPic_PersianAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_MeowthGalarian[] = { - overworld_ascending_frames(gObjectEventPic_MeowthGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_MeowthGalar[] = { + overworld_ascending_frames(gObjectEventPic_MeowthGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_Perrserker[] = { overworld_ascending_frames(gObjectEventPic_Perrserker, 4, 4), @@ -439,8 +459,8 @@ static const struct SpriteFrameImage sPicTable_Perrserker[] = { #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_MeowthGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_MeowthGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_MeowthGmax[] = { + overworld_ascending_frames(gObjectEventPic_MeowthGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MEOWTH @@ -476,11 +496,11 @@ static const struct SpriteFrameImage sPicTable_Arcanine[] = { overworld_ascending_frames(gObjectEventPic_Arcanine, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_GrowlitheHisuian[] = { - overworld_ascending_frames(gObjectEventPic_GrowlitheHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_GrowlitheHisui[] = { + overworld_ascending_frames(gObjectEventPic_GrowlitheHisui, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ArcanineHisuian[] = { - overworld_ascending_frames(gObjectEventPic_ArcanineHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_ArcanineHisui[] = { + overworld_ascending_frames(gObjectEventPic_ArcanineHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE @@ -499,9 +519,11 @@ static const struct SpriteFrameImage sPicTable_Poliwrath[] = { static const struct SpriteFrameImage sPicTable_Politoed[] = { overworld_ascending_frames(gObjectEventPic_Politoed, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_PolitoedF[] = { overworld_ascending_frames(gObjectEventPic_PolitoedF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_2_CROSS_EVOS #endif //P_FAMILY_POLIWAG @@ -512,15 +534,19 @@ static const struct SpriteFrameImage sPicTable_Abra[] = { static const struct SpriteFrameImage sPicTable_Kadabra[] = { overworld_ascending_frames(gObjectEventPic_Kadabra, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_KadabraF[] = { overworld_ascending_frames(gObjectEventPic_KadabraF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Alakazam[] = { overworld_ascending_frames(gObjectEventPic_Alakazam, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_AlakazamF[] = { overworld_ascending_frames(gObjectEventPic_AlakazamF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_AlakazamMega[] = { overworld_ascending_frames(gObjectEventPic_AlakazamMega, 4, 4), @@ -539,8 +565,8 @@ static const struct SpriteFrameImage sPicTable_Machamp[] = { overworld_ascending_frames(gObjectEventPic_Machamp, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_MachampGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_MachampGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_MachampGmax[] = { + overworld_ascending_frames(gObjectEventPic_MachampGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP @@ -577,14 +603,14 @@ static const struct SpriteFrameImage sPicTable_Golem[] = { overworld_ascending_frames(gObjectEventPic_Golem, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_GeodudeAlolan[] = { - overworld_ascending_frames(gObjectEventPic_GeodudeAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_GeodudeAlola[] = { + overworld_ascending_frames(gObjectEventPic_GeodudeAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_GravelerAlolan[] = { - overworld_ascending_frames(gObjectEventPic_GravelerAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_GravelerAlola[] = { + overworld_ascending_frames(gObjectEventPic_GravelerAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_GolemAlolan[] = { - overworld_ascending_frames(gObjectEventPic_GolemAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_GolemAlola[] = { + overworld_ascending_frames(gObjectEventPic_GolemAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE @@ -597,11 +623,11 @@ static const struct SpriteFrameImage sPicTable_Rapidash[] = { overworld_ascending_frames(gObjectEventPic_Rapidash, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_PonytaGalarian[] = { - overworld_ascending_frames(gObjectEventPic_PonytaGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_PonytaGalar[] = { + overworld_ascending_frames(gObjectEventPic_PonytaGalar, 4, 4), }; -static const struct SpriteFrameImage sPicTable_RapidashGalarian[] = { - overworld_ascending_frames(gObjectEventPic_RapidashGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_RapidashGalar[] = { + overworld_ascending_frames(gObjectEventPic_RapidashGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA @@ -626,15 +652,15 @@ static const struct SpriteFrameImage sPicTable_Slowking[] = { #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_SlowpokeGalarian[] = { - overworld_ascending_frames(gObjectEventPic_SlowpokeGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_SlowpokeGalar[] = { + overworld_ascending_frames(gObjectEventPic_SlowpokeGalar, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SlowbroGalarian[] = { - overworld_ascending_frames(gObjectEventPic_SlowbroGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_SlowbroGalar[] = { + overworld_ascending_frames(gObjectEventPic_SlowbroGalar, 4, 4), }; #if P_GEN_2_CROSS_EVOS -static const struct SpriteFrameImage sPicTable_SlowkingGalarian[] = { - overworld_ascending_frames(gObjectEventPic_SlowkingGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_SlowkingGalar[] = { + overworld_ascending_frames(gObjectEventPic_SlowkingGalar, 4, 4), }; #endif //P_GEN_2_CROSS_EVOS #endif //P_GALARIAN_FORMS @@ -659,8 +685,8 @@ static const struct SpriteFrameImage sPicTable_Farfetchd[] = { overworld_ascending_frames(gObjectEventPic_Farfetchd, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_FarfetchdGalarian[] = { - overworld_ascending_frames(gObjectEventPic_FarfetchdGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_FarfetchdGalar[] = { + overworld_ascending_frames(gObjectEventPic_FarfetchdGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_Sirfetchd[] = { overworld_ascending_frames(gObjectEventPic_Sirfetchd, 4, 4), @@ -672,15 +698,19 @@ static const struct SpriteFrameImage sPicTable_Sirfetchd[] = { static const struct SpriteFrameImage sPicTable_Doduo[] = { overworld_ascending_frames(gObjectEventPic_Doduo, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_DoduoF[] = { overworld_ascending_frames(gObjectEventPic_DoduoF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Dodrio[] = { overworld_ascending_frames(gObjectEventPic_Dodrio, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_DodrioF[] = { overworld_ascending_frames(gObjectEventPic_DodrioF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_DODUO #if P_FAMILY_SEEL @@ -700,11 +730,11 @@ static const struct SpriteFrameImage sPicTable_Muk[] = { overworld_ascending_frames(gObjectEventPic_Muk, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_GrimerAlolan[] = { - overworld_ascending_frames(gObjectEventPic_GrimerAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_GrimerAlola[] = { + overworld_ascending_frames(gObjectEventPic_GrimerAlola, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MukAlolan[] = { - overworld_ascending_frames(gObjectEventPic_MukAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_MukAlola[] = { + overworld_ascending_frames(gObjectEventPic_MukAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER @@ -734,8 +764,8 @@ static const struct SpriteFrameImage sPicTable_Gengar[] = { };*/ #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_GengarGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_GengarGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_GengarGmax[] = { + overworld_ascending_frames(gObjectEventPic_GengarGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY @@ -746,11 +776,13 @@ static const struct SpriteFrameImage sPicTable_Onix[] = { }; #if P_GEN_2_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Steelix[] = { - overworld_ascending_frames(gObjectEventPic_Steelix, 4, 4), + overworld_ascending_frames(gObjectEventPic_Steelix, 8, 8), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SteelixF[] = { overworld_ascending_frames(gObjectEventPic_SteelixF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_SteelixMega[] = { overworld_ascending_frames(gObjectEventPic_SteelixMega, 4, 4), @@ -766,9 +798,11 @@ static const struct SpriteFrameImage sPicTable_Drowzee[] = { static const struct SpriteFrameImage sPicTable_Hypno[] = { overworld_ascending_frames(gObjectEventPic_Hypno, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_HypnoF[] = { overworld_ascending_frames(gObjectEventPic_HypnoF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_DROWZEE #if P_FAMILY_KRABBY @@ -779,8 +813,8 @@ static const struct SpriteFrameImage sPicTable_Kingler[] = { overworld_ascending_frames(gObjectEventPic_Kingler, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_KinglerGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_KinglerGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_KinglerGmax[] = { + overworld_ascending_frames(gObjectEventPic_KinglerGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY @@ -793,11 +827,11 @@ static const struct SpriteFrameImage sPicTable_Electrode[] = { overworld_ascending_frames(gObjectEventPic_Electrode, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_VoltorbHisuian[] = { - overworld_ascending_frames(gObjectEventPic_VoltorbHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_VoltorbHisui[] = { + overworld_ascending_frames(gObjectEventPic_VoltorbHisui, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ElectrodeHisuian[] = { - overworld_ascending_frames(gObjectEventPic_ElectrodeHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_ElectrodeHisui[] = { + overworld_ascending_frames(gObjectEventPic_ElectrodeHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB @@ -810,8 +844,8 @@ static const struct SpriteFrameImage sPicTable_Exeggutor[] = { overworld_ascending_frames(gObjectEventPic_Exeggutor, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_ExeggutorAlolan[] = { - overworld_ascending_frames(gObjectEventPic_ExeggutorAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_ExeggutorAlola[] = { + overworld_ascending_frames(gObjectEventPic_ExeggutorAlola, 8, 8), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE @@ -824,8 +858,8 @@ static const struct SpriteFrameImage sPicTable_Marowak[] = { overworld_ascending_frames(gObjectEventPic_Marowak, 4, 4), }; #if P_ALOLAN_FORMS -static const struct SpriteFrameImage sPicTable_MarowakAlolan[] = { - overworld_ascending_frames(gObjectEventPic_MarowakAlolan, 4, 4), +static const struct SpriteFrameImage sPicTable_MarowakAlola[] = { + overworld_ascending_frames(gObjectEventPic_MarowakAlola, 4, 4), }; #endif //P_ALOLAN_FORMS #endif //P_FAMILY_CUBONE @@ -868,8 +902,8 @@ static const struct SpriteFrameImage sPicTable_Weezing[] = { overworld_ascending_frames(gObjectEventPic_Weezing, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_WeezingGalarian[] = { - overworld_ascending_frames(gObjectEventPic_WeezingGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_WeezingGalar[] = { + overworld_ascending_frames(gObjectEventPic_WeezingGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING @@ -878,22 +912,28 @@ static const struct SpriteFrameImage sPicTable_WeezingGalarian[] = { static const struct SpriteFrameImage sPicTable_Rhyhorn[] = { overworld_ascending_frames(gObjectEventPic_Rhyhorn, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RhyhornF[] = { overworld_ascending_frames(gObjectEventPic_RhyhornF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Rhydon[] = { overworld_ascending_frames(gObjectEventPic_Rhydon, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RhydonF[] = { overworld_ascending_frames(gObjectEventPic_RhydonF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Rhyperior[] = { overworld_ascending_frames(gObjectEventPic_Rhyperior, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RhyperiorF[] = { overworld_ascending_frames(gObjectEventPic_RhyperiorF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_RHYHORN @@ -921,9 +961,11 @@ static const struct SpriteFrameImage sPicTable_Tangela[] = { static const struct SpriteFrameImage sPicTable_Tangrowth[] = { overworld_ascending_frames(gObjectEventPic_Tangrowth, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_TangrowthF[] = { overworld_ascending_frames(gObjectEventPic_TangrowthF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_TANGELA @@ -956,15 +998,19 @@ static const struct SpriteFrameImage sPicTable_Kingdra[] = { static const struct SpriteFrameImage sPicTable_Goldeen[] = { overworld_ascending_frames(gObjectEventPic_Goldeen, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GoldeenF[] = { overworld_ascending_frames(gObjectEventPic_GoldeenF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Seaking[] = { overworld_ascending_frames(gObjectEventPic_Seaking, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SeakingF[] = { overworld_ascending_frames(gObjectEventPic_SeakingF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_GOLDEEN #if P_FAMILY_STARYU @@ -986,8 +1032,8 @@ static const struct SpriteFrameImage sPicTable_MrMime[] = { overworld_ascending_frames(gObjectEventPic_MrMime, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_MrMimeGalarian[] = { - overworld_ascending_frames(gObjectEventPic_MrMimeGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_MrMimeGalar[] = { + overworld_ascending_frames(gObjectEventPic_MrMimeGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_MrRime[] = { overworld_ascending_frames(gObjectEventPic_MrRime, 4, 4), @@ -999,16 +1045,20 @@ static const struct SpriteFrameImage sPicTable_MrRime[] = { static const struct SpriteFrameImage sPicTable_Scyther[] = { overworld_ascending_frames(gObjectEventPic_Scyther, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ScytherF[] = { overworld_ascending_frames(gObjectEventPic_ScytherF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_2_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Scizor[] = { overworld_ascending_frames(gObjectEventPic_Scizor, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ScizorF[] = { overworld_ascending_frames(gObjectEventPic_ScizorF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_ScizorMega[] = { overworld_ascending_frames(gObjectEventPic_ScizorMega, 4, 4), @@ -1082,14 +1132,14 @@ static const struct SpriteFrameImage sPicTable_Tauros[] = { overworld_ascending_frames(gObjectEventPic_Tauros, 4, 4), }; #if P_PALDEAN_FORMS -static const struct SpriteFrameImage sPicTable_TaurosPaldeanCombatBreed[] = { - overworld_ascending_frames(gObjectEventPic_TaurosPaldeanCombatBreed, 4, 4), +static const struct SpriteFrameImage sPicTable_TaurosPaldeaCombat[] = { + overworld_ascending_frames(gObjectEventPic_TaurosPaldeaCombat, 4, 4), }; -static const struct SpriteFrameImage sPicTable_TaurosPaldeanBlazeBreed[] = { - overworld_ascending_frames(gObjectEventPic_TaurosPaldeanBlazeBreed, 4, 4), +static const struct SpriteFrameImage sPicTable_TaurosPaldeaBlaze[] = { + overworld_ascending_frames(gObjectEventPic_TaurosPaldeaBlaze, 4, 4), }; -static const struct SpriteFrameImage sPicTable_TaurosPaldeanAquaBreed[] = { - overworld_ascending_frames(gObjectEventPic_TaurosPaldeanAquaBreed, 4, 4), +static const struct SpriteFrameImage sPicTable_TaurosPaldeaAqua[] = { + overworld_ascending_frames(gObjectEventPic_TaurosPaldeaAqua, 4, 4), }; #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS @@ -1098,15 +1148,19 @@ static const struct SpriteFrameImage sPicTable_TaurosPaldeanAquaBreed[] = { static const struct SpriteFrameImage sPicTable_Magikarp[] = { overworld_ascending_frames(gObjectEventPic_Magikarp, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MagikarpF[] = { overworld_ascending_frames(gObjectEventPic_MagikarpF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Gyarados[] = { overworld_ascending_frames(gObjectEventPic_Gyarados, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GyaradosF[] = { overworld_ascending_frames(gObjectEventPic_GyaradosF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_GyaradosMega[] = { overworld_ascending_frames(gObjectEventPic_GyaradosMega, 4, 4), @@ -1119,8 +1173,8 @@ static const struct SpriteFrameImage sPicTable_Lapras[] = { overworld_ascending_frames(gObjectEventPic_Lapras, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_LaprasGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_LaprasGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_LaprasGmax[] = { + overworld_ascending_frames(gObjectEventPic_LaprasGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS @@ -1135,12 +1189,14 @@ static const struct SpriteFrameImage sPicTable_Ditto[] = { static const struct SpriteFrameImage sPicTable_Eevee[] = { overworld_ascending_frames(gObjectEventPic_Eevee, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_EeveeF[] = { overworld_ascending_frames(gObjectEventPic_EeveeF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_EeveeGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_EeveeGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_EeveeGmax[] = { + overworld_ascending_frames(gObjectEventPic_EeveeGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS @@ -1233,8 +1289,8 @@ static const struct SpriteFrameImage sPicTable_Snorlax[] = { overworld_ascending_frames(gObjectEventPic_Snorlax, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_SnorlaxGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_SnorlaxGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_SnorlaxGmax[] = { + overworld_ascending_frames(gObjectEventPic_SnorlaxGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX @@ -1244,8 +1300,8 @@ static const struct SpriteFrameImage sPicTable_Articuno[] = { overworld_ascending_frames(gObjectEventPic_Articuno, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_ArticunoGalarian[] = { - overworld_ascending_frames(gObjectEventPic_ArticunoGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_ArticunoGalar[] = { + overworld_ascending_frames(gObjectEventPic_ArticunoGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO @@ -1255,8 +1311,8 @@ static const struct SpriteFrameImage sPicTable_Zapdos[] = { overworld_ascending_frames(gObjectEventPic_Zapdos, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_ZapdosGalarian[] = { - overworld_ascending_frames(gObjectEventPic_ZapdosGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_ZapdosGalar[] = { + overworld_ascending_frames(gObjectEventPic_ZapdosGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS @@ -1266,8 +1322,8 @@ static const struct SpriteFrameImage sPicTable_Moltres[] = { overworld_ascending_frames(gObjectEventPic_Moltres, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_MoltresGalarian[] = { - overworld_ascending_frames(gObjectEventPic_MoltresGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_MoltresGalar[] = { + overworld_ascending_frames(gObjectEventPic_MoltresGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES @@ -1314,9 +1370,11 @@ static const struct SpriteFrameImage sPicTable_Bayleef[] = { static const struct SpriteFrameImage sPicTable_Meganium[] = { overworld_ascending_frames(gObjectEventPic_Meganium, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MeganiumF[] = { overworld_ascending_frames(gObjectEventPic_MeganiumF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CHIKORITA #if P_FAMILY_CYNDAQUIL @@ -1330,8 +1388,8 @@ static const struct SpriteFrameImage sPicTable_Typhlosion[] = { overworld_ascending_frames(gObjectEventPic_Typhlosion, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_TyphlosionHisuian[] = { - overworld_ascending_frames(gObjectEventPic_TyphlosionHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_TyphlosionHisui[] = { + overworld_ascending_frames(gObjectEventPic_TyphlosionHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL @@ -1370,15 +1428,19 @@ static const struct SpriteFrameImage sPicTable_Noctowl[] = { static const struct SpriteFrameImage sPicTable_Ledyba[] = { overworld_ascending_frames(gObjectEventPic_Ledyba, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LedybaF[] = { overworld_ascending_frames(gObjectEventPic_LedybaF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Ledian[] = { overworld_ascending_frames(gObjectEventPic_Ledian, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LedianF[] = { overworld_ascending_frames(gObjectEventPic_LedianF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LEDYBA #if P_FAMILY_SPINARAK @@ -1420,9 +1482,11 @@ static const struct SpriteFrameImage sPicTable_Natu[] = { static const struct SpriteFrameImage sPicTable_Xatu[] = { overworld_ascending_frames(gObjectEventPic_Xatu, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_XatuF[] = { overworld_ascending_frames(gObjectEventPic_XatuF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_NATU #if P_FAMILY_MAREEP @@ -1465,9 +1529,11 @@ static const struct SpriteFrameImage sPicTable_Bonsly[] = { static const struct SpriteFrameImage sPicTable_Sudowoodo[] = { overworld_ascending_frames(gObjectEventPic_Sudowoodo, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SudowoodoF[] = { overworld_ascending_frames(gObjectEventPic_SudowoodoF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SUDOWOODO #if P_FAMILY_HOPPIP @@ -1486,16 +1552,20 @@ static const struct SpriteFrameImage sPicTable_Jumpluff[] = { static const struct SpriteFrameImage sPicTable_Aipom[] = { overworld_ascending_frames(gObjectEventPic_Aipom, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_AipomF[] = { overworld_ascending_frames(gObjectEventPic_AipomF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Ambipom[] = { overworld_ascending_frames(gObjectEventPic_Ambipom, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_AmbipomF[] = { overworld_ascending_frames(gObjectEventPic_AmbipomF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_AIPOM @@ -1523,18 +1593,22 @@ static const struct SpriteFrameImage sPicTable_Yanmega[] = { static const struct SpriteFrameImage sPicTable_Wooper[] = { overworld_ascending_frames(gObjectEventPic_Wooper, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_WooperF[] = { overworld_ascending_frames(gObjectEventPic_WooperF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Quagsire[] = { overworld_ascending_frames(gObjectEventPic_Quagsire, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_QuagsireF[] = { overworld_ascending_frames(gObjectEventPic_QuagsireF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_PALDEAN_FORMS -static const struct SpriteFrameImage sPicTable_WooperPaldean[] = { - overworld_ascending_frames(gObjectEventPic_WooperPaldean, 4, 4), +static const struct SpriteFrameImage sPicTable_WooperPaldea[] = { + overworld_ascending_frames(gObjectEventPic_WooperPaldea, 4, 4), }; static const struct SpriteFrameImage sPicTable_Clodsire[] = { overworld_ascending_frames(gObjectEventPic_Clodsire, 4, 4), @@ -1546,9 +1620,11 @@ static const struct SpriteFrameImage sPicTable_Clodsire[] = { static const struct SpriteFrameImage sPicTable_Murkrow[] = { overworld_ascending_frames(gObjectEventPic_Murkrow, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MurkrowF[] = { overworld_ascending_frames(gObjectEventPic_MurkrowF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Honchkrow[] = { overworld_ascending_frames(gObjectEventPic_Honchkrow, 4, 4), @@ -1646,11 +1722,11 @@ static const struct SpriteFrameImage sPicTable_UnownY[] = { static const struct SpriteFrameImage sPicTable_UnownZ[] = { overworld_ascending_frames(gObjectEventPic_UnownZ, 4, 4), }; -static const struct SpriteFrameImage sPicTable_UnownExclamationMark[] = { - overworld_ascending_frames(gObjectEventPic_UnownExclamationMark, 4, 4), +static const struct SpriteFrameImage sPicTable_UnownExclamation[] = { + overworld_ascending_frames(gObjectEventPic_UnownExclamation, 4, 4), }; -static const struct SpriteFrameImage sPicTable_UnownQuestionMark[] = { - overworld_ascending_frames(gObjectEventPic_UnownQuestionMark, 4, 4), +static const struct SpriteFrameImage sPicTable_UnownQuestion[] = { + overworld_ascending_frames(gObjectEventPic_UnownQuestion, 4, 4), }; #endif //P_FAMILY_UNOWN @@ -1663,18 +1739,22 @@ static const struct SpriteFrameImage sPicTable_Wynaut[] = { static const struct SpriteFrameImage sPicTable_Wobbuffet[] = { overworld_ascending_frames(gObjectEventPic_Wobbuffet, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_WobbuffetF[] = { overworld_ascending_frames(gObjectEventPic_WobbuffetF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_WOBBUFFET #if P_FAMILY_GIRAFARIG static const struct SpriteFrameImage sPicTable_Girafarig[] = { overworld_ascending_frames(gObjectEventPic_Girafarig, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GirafarigF[] = { overworld_ascending_frames(gObjectEventPic_GirafarigF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_9_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Farigiraf[] = { overworld_ascending_frames(gObjectEventPic_Farigiraf, 4, 4), @@ -1711,9 +1791,11 @@ static const struct SpriteFrameImage sPicTable_DudunsparceThreeSegment[] = { static const struct SpriteFrameImage sPicTable_Gligar[] = { overworld_ascending_frames(gObjectEventPic_Gligar, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GligarF[] = { overworld_ascending_frames(gObjectEventPic_GligarF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Gliscor[] = { overworld_ascending_frames(gObjectEventPic_Gliscor, 4, 4), @@ -1735,8 +1817,8 @@ static const struct SpriteFrameImage sPicTable_Qwilfish[] = { overworld_ascending_frames(gObjectEventPic_Qwilfish, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_QwilfishHisuian[] = { - overworld_ascending_frames(gObjectEventPic_QwilfishHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_QwilfishHisui[] = { + overworld_ascending_frames(gObjectEventPic_QwilfishHisui, 4, 4), }; static const struct SpriteFrameImage sPicTable_Overqwil[] = { overworld_ascending_frames(gObjectEventPic_Overqwil, 4, 4), @@ -1754,9 +1836,11 @@ static const struct SpriteFrameImage sPicTable_Shuckle[] = { static const struct SpriteFrameImage sPicTable_Heracross[] = { overworld_ascending_frames(gObjectEventPic_Heracross, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_HeracrossF[] = { overworld_ascending_frames(gObjectEventPic_HeracrossF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_HeracrossMega[] = { overworld_ascending_frames(gObjectEventPic_HeracrossMega, 4, 4), @@ -1768,25 +1852,31 @@ static const struct SpriteFrameImage sPicTable_HeracrossF[] = { static const struct SpriteFrameImage sPicTable_Sneasel[] = { overworld_ascending_frames(gObjectEventPic_Sneasel, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SneaselF[] = { overworld_ascending_frames(gObjectEventPic_SneaselF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Weavile[] = { overworld_ascending_frames(gObjectEventPic_Weavile, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_WeavileF[] = { overworld_ascending_frames(gObjectEventPic_WeavileF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_SneaselHisuian[] = { - overworld_ascending_frames(gObjectEventPic_SneaselHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_SneaselHisui[] = { + overworld_ascending_frames(gObjectEventPic_SneaselHisui, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SneaselHisuianF[] = { - overworld_ascending_frames(gObjectEventPic_SneaselHisuianF, 4, 4), +#if P_GENDER_DIFFERENCES +static const struct SpriteFrameImage sPicTable_SneaselHisuiF[] = { + overworld_ascending_frames(gObjectEventPic_SneaselHisuiF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Sneasler[] = { overworld_ascending_frames(gObjectEventPic_Sneasler, 4, 4), }; @@ -1800,9 +1890,11 @@ static const struct SpriteFrameImage sPicTable_Teddiursa[] = { static const struct SpriteFrameImage sPicTable_Ursaring[] = { overworld_ascending_frames(gObjectEventPic_Ursaring, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_UrsaringF[] = { overworld_ascending_frames(gObjectEventPic_UrsaringF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_8_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Ursaluna[] = { overworld_ascending_frames(gObjectEventPic_Ursaluna, 4, 4), @@ -1829,16 +1921,20 @@ static const struct SpriteFrameImage sPicTable_Swinub[] = { static const struct SpriteFrameImage sPicTable_Piloswine[] = { overworld_ascending_frames(gObjectEventPic_Piloswine, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_PiloswineF[] = { overworld_ascending_frames(gObjectEventPic_PiloswineF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Mamoswine[] = { overworld_ascending_frames(gObjectEventPic_Mamoswine, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MamoswineF[] = { overworld_ascending_frames(gObjectEventPic_MamoswineF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_SWINUB @@ -1847,8 +1943,8 @@ static const struct SpriteFrameImage sPicTable_Corsola[] = { overworld_ascending_frames(gObjectEventPic_Corsola, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_CorsolaGalarian[] = { - overworld_ascending_frames(gObjectEventPic_CorsolaGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_CorsolaGalar[] = { + overworld_ascending_frames(gObjectEventPic_CorsolaGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_Cursola[] = { overworld_ascending_frames(gObjectEventPic_Cursola, 4, 4), @@ -1863,9 +1959,11 @@ static const struct SpriteFrameImage sPicTable_Remoraid[] = { static const struct SpriteFrameImage sPicTable_Octillery[] = { overworld_ascending_frames(gObjectEventPic_Octillery, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_OctilleryF[] = { overworld_ascending_frames(gObjectEventPic_OctilleryF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_REMORAID #if P_FAMILY_DELIBIRD @@ -1898,9 +1996,11 @@ static const struct SpriteFrameImage sPicTable_Houndour[] = { static const struct SpriteFrameImage sPicTable_Houndoom[] = { overworld_ascending_frames(gObjectEventPic_Houndoom, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_HoundoomF[] = { overworld_ascending_frames(gObjectEventPic_HoundoomF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_HoundoomMega[] = { overworld_ascending_frames(gObjectEventPic_HoundoomMega, 4, 4), @@ -1915,9 +2015,11 @@ static const struct SpriteFrameImage sPicTable_Phanpy[] = { static const struct SpriteFrameImage sPicTable_Donphan[] = { overworld_ascending_frames(gObjectEventPic_Donphan, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_DonphanF[] = { overworld_ascending_frames(gObjectEventPic_DonphanF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PHANPY #if P_FAMILY_STANTLER @@ -1980,13 +2082,13 @@ static const struct SpriteFrameImage sPicTable_Tyranitar[] = { #if P_FAMILY_LUGIA static const struct SpriteFrameImage sPicTable_Lugia[] = { - overworld_ascending_frames(gObjectEventPic_Lugia, 4, 4), + overworld_ascending_frames(gObjectEventPic_Lugia, 8, 8), }; #endif //P_FAMILY_LUGIA #if P_FAMILY_HO_OH static const struct SpriteFrameImage sPicTable_HoOh[] = { - overworld_ascending_frames(gObjectEventPic_HoOh, 4, 4), + overworld_ascending_frames(gObjectEventPic_HoOh, 8, 8), }; #endif //P_FAMILY_HO_OH @@ -2017,21 +2119,27 @@ static const struct SpriteFrameImage sPicTable_Sceptile[] = { static const struct SpriteFrameImage sPicTable_Torchic[] = { overworld_ascending_frames(gObjectEventPic_Torchic, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_TorchicF[] = { overworld_ascending_frames(gObjectEventPic_TorchicF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Combusken[] = { overworld_ascending_frames(gObjectEventPic_Combusken, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_CombuskenF[] = { overworld_ascending_frames(gObjectEventPic_CombuskenF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Blaziken[] = { overworld_ascending_frames(gObjectEventPic_Blaziken, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_BlazikenF[] = { overworld_ascending_frames(gObjectEventPic_BlazikenF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_BlazikenMega[] = { overworld_ascending_frames(gObjectEventPic_BlazikenMega, 4, 4), @@ -2073,11 +2181,11 @@ static const struct SpriteFrameImage sPicTable_Linoone[] = { overworld_ascending_frames(gObjectEventPic_Linoone, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_ZigzagoonGalarian[] = { - overworld_ascending_frames(gObjectEventPic_ZigzagoonGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_ZigzagoonGalar[] = { + overworld_ascending_frames(gObjectEventPic_ZigzagoonGalar, 4, 4), }; -static const struct SpriteFrameImage sPicTable_LinooneGalarian[] = { - overworld_ascending_frames(gObjectEventPic_LinooneGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_LinooneGalar[] = { + overworld_ascending_frames(gObjectEventPic_LinooneGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_Obstagoon[] = { overworld_ascending_frames(gObjectEventPic_Obstagoon, 4, 4), @@ -2095,18 +2203,22 @@ static const struct SpriteFrameImage sPicTable_Silcoon[] = { static const struct SpriteFrameImage sPicTable_Beautifly[] = { overworld_ascending_frames(gObjectEventPic_Beautifly, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_BeautiflyF[] = { overworld_ascending_frames(gObjectEventPic_BeautiflyF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Cascoon[] = { overworld_ascending_frames(gObjectEventPic_Cascoon, 4, 4), }; static const struct SpriteFrameImage sPicTable_Dustox[] = { overworld_ascending_frames(gObjectEventPic_Dustox, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_DustoxF[] = { overworld_ascending_frames(gObjectEventPic_DustoxF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_WURMPLE #if P_FAMILY_LOTAD @@ -2119,9 +2231,11 @@ static const struct SpriteFrameImage sPicTable_Lombre[] = { static const struct SpriteFrameImage sPicTable_Ludicolo[] = { overworld_ascending_frames(gObjectEventPic_Ludicolo, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LudicoloF[] = { overworld_ascending_frames(gObjectEventPic_LudicoloF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LOTAD #if P_FAMILY_SEEDOT @@ -2131,15 +2245,19 @@ static const struct SpriteFrameImage sPicTable_Seedot[] = { static const struct SpriteFrameImage sPicTable_Nuzleaf[] = { overworld_ascending_frames(gObjectEventPic_Nuzleaf, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_NuzleafF[] = { overworld_ascending_frames(gObjectEventPic_NuzleafF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Shiftry[] = { overworld_ascending_frames(gObjectEventPic_Shiftry, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ShiftryF[] = { overworld_ascending_frames(gObjectEventPic_ShiftryF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SEEDOT #if P_FAMILY_TAILLOW @@ -2314,15 +2432,19 @@ static const struct SpriteFrameImage sPicTable_Aggron[] = { static const struct SpriteFrameImage sPicTable_Meditite[] = { overworld_ascending_frames(gObjectEventPic_Meditite, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MedititeF[] = { overworld_ascending_frames(gObjectEventPic_MedititeF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Medicham[] = { overworld_ascending_frames(gObjectEventPic_Medicham, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MedichamF[] = { overworld_ascending_frames(gObjectEventPic_MedichamF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_MedichamMega[] = { overworld_ascending_frames(gObjectEventPic_MedichamMega, 4, 4), @@ -2374,17 +2496,20 @@ static const struct SpriteFrameImage sPicTable_Budew[] = { static const struct SpriteFrameImage sPicTable_Roselia[] = { overworld_ascending_frames(gObjectEventPic_Roselia, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RoseliaF[] = { overworld_ascending_frames(gObjectEventPic_RoseliaF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_GEN_4_CROSS_EVOS static const struct SpriteFrameImage sPicTable_Roserade[] = { overworld_ascending_frames(gObjectEventPic_Roserade, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RoseradeF[] = { overworld_ascending_frames(gObjectEventPic_RoseradeF, 4, 4), }; - +#endif //P_GENDER_DIFFERENCES #endif //P_GEN_4_CROSS_EVOS #endif //P_FAMILY_ROSELIA @@ -2392,15 +2517,19 @@ static const struct SpriteFrameImage sPicTable_RoseradeF[] = { static const struct SpriteFrameImage sPicTable_Gulpin[] = { overworld_ascending_frames(gObjectEventPic_Gulpin, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GulpinF[] = { overworld_ascending_frames(gObjectEventPic_GulpinF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Swalot[] = { overworld_ascending_frames(gObjectEventPic_Swalot, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SwalotF[] = { overworld_ascending_frames(gObjectEventPic_SwalotF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_GULPIN #if P_FAMILY_CARVANHA @@ -2422,7 +2551,7 @@ static const struct SpriteFrameImage sPicTable_Wailmer[] = { overworld_ascending_frames(gObjectEventPic_Wailmer, 4, 4), }; static const struct SpriteFrameImage sPicTable_Wailord[] = { - overworld_ascending_frames(gObjectEventPic_Wailord, 4, 4), + overworld_ascending_frames(gObjectEventPic_Wailord, 8, 8), }; #endif //P_FAMILY_WAILMER @@ -2430,15 +2559,19 @@ static const struct SpriteFrameImage sPicTable_Wailord[] = { static const struct SpriteFrameImage sPicTable_Numel[] = { overworld_ascending_frames(gObjectEventPic_Numel, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_NumelF[] = { overworld_ascending_frames(gObjectEventPic_NumelF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Camerupt[] = { overworld_ascending_frames(gObjectEventPic_Camerupt, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_CameruptF[] = { overworld_ascending_frames(gObjectEventPic_CameruptF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_CameruptMega[] = { overworld_ascending_frames(gObjectEventPic_CameruptMega, 4, 4), @@ -2486,9 +2619,11 @@ static const struct SpriteFrameImage sPicTable_Cacnea[] = { static const struct SpriteFrameImage sPicTable_Cacturne[] = { overworld_ascending_frames(gObjectEventPic_Cacturne, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_CacturneF[] = { overworld_ascending_frames(gObjectEventPic_CacturneF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CACNEA #if P_FAMILY_SWABLU @@ -2581,9 +2716,11 @@ static const struct SpriteFrameImage sPicTable_Feebas[] = { static const struct SpriteFrameImage sPicTable_Milotic[] = { overworld_ascending_frames(gObjectEventPic_Milotic, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_MiloticF[] = { overworld_ascending_frames(gObjectEventPic_MiloticF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FEEBAS #if P_FAMILY_CASTFORM @@ -2711,9 +2848,11 @@ static const struct SpriteFrameImage sPicTable_Gorebyss[] = { static const struct SpriteFrameImage sPicTable_Relicanth[] = { overworld_ascending_frames(gObjectEventPic_Relicanth, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_RelicanthF[] = { overworld_ascending_frames(gObjectEventPic_RelicanthF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_RELICANTH #if P_FAMILY_LUVDISC @@ -2798,7 +2937,7 @@ static const struct SpriteFrameImage sPicTable_Latios[] = { #if P_FAMILY_KYOGRE static const struct SpriteFrameImage sPicTable_Kyogre[] = { - overworld_ascending_frames(gObjectEventPic_Kyogre, 4, 4), + overworld_ascending_frames(gObjectEventPic_Kyogre, 8, 8), }; #if P_PRIMAL_REVERSIONS /*static const struct SpriteFrameImage sPicTable_KyogrePrimal[] = { @@ -2809,7 +2948,7 @@ static const struct SpriteFrameImage sPicTable_Kyogre[] = { #if P_FAMILY_GROUDON static const struct SpriteFrameImage sPicTable_Groudon[] = { - overworld_ascending_frames(gObjectEventPic_Groudon, 4, 4), + overworld_ascending_frames(gObjectEventPic_Groudon, 8, 8), }; #if P_PRIMAL_REVERSIONS /*static const struct SpriteFrameImage sPicTable_GroudonPrimal[] = { @@ -2820,7 +2959,7 @@ static const struct SpriteFrameImage sPicTable_Groudon[] = { #if P_FAMILY_RAYQUAZA static const struct SpriteFrameImage sPicTable_Rayquaza[] = { - overworld_ascending_frames(gObjectEventPic_Rayquaza, 4, 4), + overworld_ascending_frames(gObjectEventPic_Rayquaza, 8, 8), }; #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_RayquazaMega[] = { @@ -2890,72 +3029,92 @@ static const struct SpriteFrameImage sPicTable_Empoleon[] = { static const struct SpriteFrameImage sPicTable_Starly[] = { overworld_ascending_frames(gObjectEventPic_Starly, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_StarlyF[] = { overworld_ascending_frames(gObjectEventPic_StarlyF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Staravia[] = { overworld_ascending_frames(gObjectEventPic_Staravia, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_StaraviaF[] = { overworld_ascending_frames(gObjectEventPic_StaraviaF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Staraptor[] = { overworld_ascending_frames(gObjectEventPic_Staraptor, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_StaraptorF[] = { overworld_ascending_frames(gObjectEventPic_StaraptorF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_STARLY #if P_FAMILY_BIDOOF static const struct SpriteFrameImage sPicTable_Bidoof[] = { overworld_ascending_frames(gObjectEventPic_Bidoof, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_BidoofF[] = { overworld_ascending_frames(gObjectEventPic_BidoofF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Bibarel[] = { overworld_ascending_frames(gObjectEventPic_Bibarel, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_BibarelF[] = { overworld_ascending_frames(gObjectEventPic_BibarelF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_BIDOOF #if P_FAMILY_KRICKETOT static const struct SpriteFrameImage sPicTable_Kricketot[] = { overworld_ascending_frames(gObjectEventPic_Kricketot, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_KricketotF[] = { overworld_ascending_frames(gObjectEventPic_KricketotF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Kricketune[] = { overworld_ascending_frames(gObjectEventPic_Kricketune, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_KricketuneF[] = { overworld_ascending_frames(gObjectEventPic_KricketuneF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_KRICKETOT #if P_FAMILY_SHINX static const struct SpriteFrameImage sPicTable_Shinx[] = { overworld_ascending_frames(gObjectEventPic_Shinx, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ShinxF[] = { overworld_ascending_frames(gObjectEventPic_ShinxF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Luxio[] = { overworld_ascending_frames(gObjectEventPic_Luxio, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LuxioF[] = { overworld_ascending_frames(gObjectEventPic_LuxioF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Luxray[] = { overworld_ascending_frames(gObjectEventPic_Luxray, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LuxrayF[] = { overworld_ascending_frames(gObjectEventPic_LuxrayF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_SHINX #if P_FAMILY_CRANIDOS @@ -2980,20 +3139,20 @@ static const struct SpriteFrameImage sPicTable_Bastiodon[] = { static const struct SpriteFrameImage sPicTable_BurmyPlantCloak[] = { overworld_ascending_frames(gObjectEventPic_BurmyPlantCloak, 4, 4), }; -static const struct SpriteFrameImage sPicTable_BurmySandyCloak[] = { - overworld_ascending_frames(gObjectEventPic_BurmySandyCloak, 4, 4), +static const struct SpriteFrameImage sPicTable_BurmySandy[] = { + overworld_ascending_frames(gObjectEventPic_BurmySandy, 4, 4), }; -static const struct SpriteFrameImage sPicTable_BurmyTrashCloak[] = { - overworld_ascending_frames(gObjectEventPic_BurmyTrashCloak, 4, 4), +static const struct SpriteFrameImage sPicTable_BurmyTrash[] = { + overworld_ascending_frames(gObjectEventPic_BurmyTrash, 4, 4), }; static const struct SpriteFrameImage sPicTable_WormadamPlantCloak[] = { overworld_ascending_frames(gObjectEventPic_WormadamPlantCloak, 4, 4), }; -static const struct SpriteFrameImage sPicTable_WormadamSandyCloak[] = { - overworld_ascending_frames(gObjectEventPic_WormadamSandyCloak, 4, 4), +static const struct SpriteFrameImage sPicTable_WormadamSandy[] = { + overworld_ascending_frames(gObjectEventPic_WormadamSandy, 4, 4), }; -static const struct SpriteFrameImage sPicTable_WormadamTrashCloak[] = { - overworld_ascending_frames(gObjectEventPic_WormadamTrashCloak, 4, 4), +static const struct SpriteFrameImage sPicTable_WormadamTrash[] = { + overworld_ascending_frames(gObjectEventPic_WormadamTrash, 4, 4), }; static const struct SpriteFrameImage sPicTable_Mothim[] = { overworld_ascending_frames(gObjectEventPic_Mothim, 4, 4), @@ -3004,9 +3163,11 @@ static const struct SpriteFrameImage sPicTable_Mothim[] = { static const struct SpriteFrameImage sPicTable_Combee[] = { overworld_ascending_frames(gObjectEventPic_Combee, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_CombeeF[] = { overworld_ascending_frames(gObjectEventPic_CombeeF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Vespiquen[] = { overworld_ascending_frames(gObjectEventPic_Vespiquen, 4, 4), }; @@ -3016,24 +3177,30 @@ static const struct SpriteFrameImage sPicTable_Vespiquen[] = { static const struct SpriteFrameImage sPicTable_Pachirisu[] = { overworld_ascending_frames(gObjectEventPic_Pachirisu, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_PachirisuF[] = { overworld_ascending_frames(gObjectEventPic_PachirisuF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PACHIRISU #if P_FAMILY_BUIZEL static const struct SpriteFrameImage sPicTable_Buizel[] = { overworld_ascending_frames(gObjectEventPic_Buizel, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_BuizelF[] = { overworld_ascending_frames(gObjectEventPic_BuizelF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Floatzel[] = { overworld_ascending_frames(gObjectEventPic_Floatzel, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_FloatzelF[] = { overworld_ascending_frames(gObjectEventPic_FloatzelF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_BUIZEL #if P_FAMILY_CHERUBI @@ -3052,14 +3219,14 @@ static const struct SpriteFrameImage sPicTable_CherrimOvercast[] = { static const struct SpriteFrameImage sPicTable_ShellosWestSea[] = { overworld_ascending_frames(gObjectEventPic_ShellosWestSea, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ShellosEastSea[] = { - overworld_ascending_frames(gObjectEventPic_ShellosEastSea, 4, 4), +static const struct SpriteFrameImage sPicTable_ShellosEast[] = { + overworld_ascending_frames(gObjectEventPic_ShellosEast, 4, 4), }; static const struct SpriteFrameImage sPicTable_GastrodonWestSea[] = { overworld_ascending_frames(gObjectEventPic_GastrodonWestSea, 4, 4), }; -static const struct SpriteFrameImage sPicTable_GastrodonEastSea[] = { - overworld_ascending_frames(gObjectEventPic_GastrodonEastSea, 4, 4), +static const struct SpriteFrameImage sPicTable_GastrodonEast[] = { + overworld_ascending_frames(gObjectEventPic_GastrodonEast, 4, 4), }; #endif //P_FAMILY_SHELLOS @@ -3129,21 +3296,27 @@ static const struct SpriteFrameImage sPicTable_Spiritomb[] = { static const struct SpriteFrameImage sPicTable_Gible[] = { overworld_ascending_frames(gObjectEventPic_Gible, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GibleF[] = { overworld_ascending_frames(gObjectEventPic_GibleF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Gabite[] = { overworld_ascending_frames(gObjectEventPic_Gabite, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GabiteF[] = { overworld_ascending_frames(gObjectEventPic_GabiteF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Garchomp[] = { overworld_ascending_frames(gObjectEventPic_Garchomp, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_GarchompF[] = { overworld_ascending_frames(gObjectEventPic_GarchompF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_GarchompMega[] = { overworld_ascending_frames(gObjectEventPic_GarchompMega, 4, 4), @@ -3169,9 +3342,11 @@ static const struct SpriteFrameImage sPicTable_Lucario[] = { static const struct SpriteFrameImage sPicTable_Hippopotas[] = { overworld_ascending_frames(gObjectEventPic_Hippopotas, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_HippopotasF[] = { overworld_ascending_frames(gObjectEventPic_HippopotasF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Hippowdon[] = { overworld_ascending_frames(gObjectEventPic_Hippowdon, 4, 4), }; @@ -3190,15 +3365,19 @@ static const struct SpriteFrameImage sPicTable_Drapion[] = { static const struct SpriteFrameImage sPicTable_Croagunk[] = { overworld_ascending_frames(gObjectEventPic_Croagunk, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_CroagunkF[] = { overworld_ascending_frames(gObjectEventPic_CroagunkF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Toxicroak[] = { overworld_ascending_frames(gObjectEventPic_Toxicroak, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_ToxicroakF[] = { overworld_ascending_frames(gObjectEventPic_ToxicroakF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_CROAGUNK #if P_FAMILY_CARNIVINE @@ -3211,30 +3390,38 @@ static const struct SpriteFrameImage sPicTable_Carnivine[] = { static const struct SpriteFrameImage sPicTable_Finneon[] = { overworld_ascending_frames(gObjectEventPic_Finneon, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_FinneonF[] = { overworld_ascending_frames(gObjectEventPic_FinneonF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Lumineon[] = { overworld_ascending_frames(gObjectEventPic_Lumineon, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_LumineonF[] = { overworld_ascending_frames(gObjectEventPic_LumineonF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FINNEON #if P_FAMILY_SNOVER static const struct SpriteFrameImage sPicTable_Snover[] = { overworld_ascending_frames(gObjectEventPic_Snover, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_SnoverF[] = { overworld_ascending_frames(gObjectEventPic_SnoverF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Abomasnow[] = { overworld_ascending_frames(gObjectEventPic_Abomasnow, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_AbomasnowF[] = { overworld_ascending_frames(gObjectEventPic_AbomasnowF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #if P_MEGA_EVOLUTIONS /*static const struct SpriteFrameImage sPicTable_AbomasnowMega[] = { overworld_ascending_frames(gObjectEventPic_AbomasnowMega, 4, 4), @@ -3283,19 +3470,19 @@ static const struct SpriteFrameImage sPicTable_Azelf[] = { #if P_FAMILY_DIALGA static const struct SpriteFrameImage sPicTable_Dialga[] = { - overworld_ascending_frames(gObjectEventPic_Dialga, 4, 4), + overworld_ascending_frames(gObjectEventPic_Dialga, 8, 8), }; static const struct SpriteFrameImage sPicTable_DialgaOrigin[] = { - overworld_ascending_frames(gObjectEventPic_DialgaOrigin, 4, 4), + overworld_ascending_frames(gObjectEventPic_DialgaOrigin, 8, 8), }; #endif //P_FAMILY_DIALGA #if P_FAMILY_PALKIA static const struct SpriteFrameImage sPicTable_Palkia[] = { - overworld_ascending_frames(gObjectEventPic_Palkia, 4, 4), + overworld_ascending_frames(gObjectEventPic_Palkia, 8, 8), }; static const struct SpriteFrameImage sPicTable_PalkiaOrigin[] = { - overworld_ascending_frames(gObjectEventPic_PalkiaOrigin, 4, 4), + overworld_ascending_frames(gObjectEventPic_PalkiaOrigin, 8, 8), }; #endif //P_FAMILY_PALKIA @@ -3307,16 +3494,16 @@ static const struct SpriteFrameImage sPicTable_Heatran[] = { #if P_FAMILY_REGIGIGAS static const struct SpriteFrameImage sPicTable_Regigigas[] = { - overworld_ascending_frames(gObjectEventPic_Regigigas, 4, 4), + overworld_ascending_frames(gObjectEventPic_Regigigas, 8, 8), }; #endif //P_FAMILY_REGIGIGAS #if P_FAMILY_GIRATINA static const struct SpriteFrameImage sPicTable_GiratinaAltered[] = { - overworld_ascending_frames(gObjectEventPic_GiratinaAltered, 4, 4), + overworld_ascending_frames(gObjectEventPic_GiratinaAltered, 8, 8), }; static const struct SpriteFrameImage sPicTable_GiratinaOrigin[] = { - overworld_ascending_frames(gObjectEventPic_GiratinaOrigin, 4, 4), + overworld_ascending_frames(gObjectEventPic_GiratinaOrigin, 8, 8), }; #endif //P_FAMILY_GIRATINA @@ -3353,58 +3540,58 @@ static const struct SpriteFrameImage sPicTable_ShayminSky[] = { #if P_FAMILY_ARCEUS static const struct SpriteFrameImage sPicTable_ArceusNormal[] = { - overworld_ascending_frames(gObjectEventPic_ArceusNormal, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusNormal, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusFighting[] = { - overworld_ascending_frames(gObjectEventPic_ArceusFighting, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusFighting, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusFlying[] = { - overworld_ascending_frames(gObjectEventPic_ArceusFlying, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusFlying, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusPoison[] = { - overworld_ascending_frames(gObjectEventPic_ArceusPoison, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusPoison, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusGround[] = { - overworld_ascending_frames(gObjectEventPic_ArceusGround, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusGround, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusRock[] = { - overworld_ascending_frames(gObjectEventPic_ArceusRock, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusRock, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusBug[] = { - overworld_ascending_frames(gObjectEventPic_ArceusBug, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusBug, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusGhost[] = { - overworld_ascending_frames(gObjectEventPic_ArceusGhost, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusGhost, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusSteel[] = { - overworld_ascending_frames(gObjectEventPic_ArceusSteel, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusSteel, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusFire[] = { - overworld_ascending_frames(gObjectEventPic_ArceusFire, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusFire, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusWater[] = { - overworld_ascending_frames(gObjectEventPic_ArceusWater, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusWater, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusGrass[] = { - overworld_ascending_frames(gObjectEventPic_ArceusGrass, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusGrass, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusElectric[] = { - overworld_ascending_frames(gObjectEventPic_ArceusElectric, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusElectric, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusPsychic[] = { - overworld_ascending_frames(gObjectEventPic_ArceusPsychic, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusPsychic, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusIce[] = { - overworld_ascending_frames(gObjectEventPic_ArceusIce, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusIce, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusDragon[] = { - overworld_ascending_frames(gObjectEventPic_ArceusDragon, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusDragon, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusDark[] = { - overworld_ascending_frames(gObjectEventPic_ArceusDark, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusDark, 8, 8), }; static const struct SpriteFrameImage sPicTable_ArceusFairy[] = { - overworld_ascending_frames(gObjectEventPic_ArceusFairy, 4, 4), + overworld_ascending_frames(gObjectEventPic_ArceusFairy, 8, 8), }; #endif //P_FAMILY_ARCEUS @@ -3449,8 +3636,8 @@ static const struct SpriteFrameImage sPicTable_Samurott[] = { overworld_ascending_frames(gObjectEventPic_Samurott, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_SamurottHisuian[] = { - overworld_ascending_frames(gObjectEventPic_SamurottHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_SamurottHisui[] = { + overworld_ascending_frames(gObjectEventPic_SamurottHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_OSHAWOTT @@ -3532,9 +3719,11 @@ static const struct SpriteFrameImage sPicTable_Tranquill[] = { static const struct SpriteFrameImage sPicTable_Unfezant[] = { overworld_ascending_frames(gObjectEventPic_Unfezant, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_UnfezantF[] = { overworld_ascending_frames(gObjectEventPic_UnfezantF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_PIDOVE #if P_FAMILY_BLITZLE @@ -3664,8 +3853,8 @@ static const struct SpriteFrameImage sPicTable_Lilligant[] = { overworld_ascending_frames(gObjectEventPic_Lilligant, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_LilligantHisuian[] = { - overworld_ascending_frames(gObjectEventPic_LilligantHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_LilligantHisui[] = { + overworld_ascending_frames(gObjectEventPic_LilligantHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_PETILIL @@ -3681,11 +3870,11 @@ static const struct SpriteFrameImage sPicTable_BasculinBlueStriped[] = { static const struct SpriteFrameImage sPicTable_BasculinWhiteStriped[] = { overworld_ascending_frames(gObjectEventPic_BasculinWhiteStriped, 4, 4), }; -static const struct SpriteFrameImage sPicTable_BasculegionMale[] = { - overworld_ascending_frames(gObjectEventPic_BasculegionMale, 4, 4), +static const struct SpriteFrameImage sPicTable_BasculegionM[] = { + overworld_ascending_frames(gObjectEventPic_BasculegionM, 4, 4), }; -static const struct SpriteFrameImage sPicTable_BasculegionFemale[] = { - overworld_ascending_frames(gObjectEventPic_BasculegionFemale, 4, 4), +static const struct SpriteFrameImage sPicTable_BasculegionF[] = { + overworld_ascending_frames(gObjectEventPic_BasculegionF, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BASCULIN @@ -3706,21 +3895,21 @@ static const struct SpriteFrameImage sPicTable_Krookodile[] = { static const struct SpriteFrameImage sPicTable_Darumaka[] = { overworld_ascending_frames(gObjectEventPic_Darumaka, 4, 4), }; -static const struct SpriteFrameImage sPicTable_DarmanitanStandardMode[] = { - overworld_ascending_frames(gObjectEventPic_DarmanitanStandardMode, 4, 4), +static const struct SpriteFrameImage sPicTable_DarmanitanStandard[] = { + overworld_ascending_frames(gObjectEventPic_DarmanitanStandard, 4, 4), }; -/*static const struct SpriteFrameImage sPicTable_DarmanitanZenMode[] = { - overworld_ascending_frames(gObjectEventPic_DarmanitanZenMode, 4, 4), +/*static const struct SpriteFrameImage sPicTable_DarmanitanZen[] = { + overworld_ascending_frames(gObjectEventPic_DarmanitanZen, 4, 4), };*/ #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_DarumakaGalarian[] = { - overworld_ascending_frames(gObjectEventPic_DarumakaGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_DarumakaGalar[] = { + overworld_ascending_frames(gObjectEventPic_DarumakaGalar, 4, 4), }; -static const struct SpriteFrameImage sPicTable_DarmanitanGalarianStandardMode[] = { - overworld_ascending_frames(gObjectEventPic_DarmanitanGalarianStandardMode, 4, 4), +static const struct SpriteFrameImage sPicTable_DarmanitanGalarStandard[] = { + overworld_ascending_frames(gObjectEventPic_DarmanitanGalarStandard, 4, 4), }; -/*static const struct SpriteFrameImage sPicTable_DarmanitanGalarianZenMode[] = { - overworld_ascending_frames(gObjectEventPic_DarmanitanGalarianZenMode, 4, 4), +/*static const struct SpriteFrameImage sPicTable_DarmanitanGalarZen[] = { + overworld_ascending_frames(gObjectEventPic_DarmanitanGalarZen, 4, 4), };*/ #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA @@ -3763,8 +3952,8 @@ static const struct SpriteFrameImage sPicTable_Cofagrigus[] = { overworld_ascending_frames(gObjectEventPic_Cofagrigus, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_YamaskGalarian[] = { - overworld_ascending_frames(gObjectEventPic_YamaskGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_YamaskGalar[] = { + overworld_ascending_frames(gObjectEventPic_YamaskGalar, 4, 4), }; static const struct SpriteFrameImage sPicTable_Runerigus[] = { overworld_ascending_frames(gObjectEventPic_Runerigus, 4, 4), @@ -3798,8 +3987,8 @@ static const struct SpriteFrameImage sPicTable_Garbodor[] = { overworld_ascending_frames(gObjectEventPic_Garbodor, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_GarbodorGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_GarbodorGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_GarbodorGmax[] = { + overworld_ascending_frames(gObjectEventPic_GarbodorGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TRUBBISH @@ -3812,11 +4001,11 @@ static const struct SpriteFrameImage sPicTable_Zoroark[] = { overworld_ascending_frames(gObjectEventPic_Zoroark, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_ZoruaHisuian[] = { - overworld_ascending_frames(gObjectEventPic_ZoruaHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_ZoruaHisui[] = { + overworld_ascending_frames(gObjectEventPic_ZoruaHisui, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ZoroarkHisuian[] = { - overworld_ascending_frames(gObjectEventPic_ZoroarkHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_ZoroarkHisui[] = { + overworld_ascending_frames(gObjectEventPic_ZoroarkHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ZORUA @@ -3931,15 +4120,19 @@ static const struct SpriteFrameImage sPicTable_Amoonguss[] = { static const struct SpriteFrameImage sPicTable_Frillish[] = { overworld_ascending_frames(gObjectEventPic_Frillish, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_FrillishF[] = { overworld_ascending_frames(gObjectEventPic_FrillishF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_Jellicent[] = { overworld_ascending_frames(gObjectEventPic_Jellicent, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_JellicentF[] = { overworld_ascending_frames(gObjectEventPic_JellicentF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_FRILLISH #if P_FAMILY_ALOMOMOLA @@ -4052,8 +4245,8 @@ static const struct SpriteFrameImage sPicTable_Stunfisk[] = { overworld_ascending_frames(gObjectEventPic_Stunfisk, 4, 4), }; #if P_GALARIAN_FORMS -static const struct SpriteFrameImage sPicTable_StunfiskGalarian[] = { - overworld_ascending_frames(gObjectEventPic_StunfiskGalarian, 4, 4), +static const struct SpriteFrameImage sPicTable_StunfiskGalar[] = { + overworld_ascending_frames(gObjectEventPic_StunfiskGalar, 4, 4), }; #endif //P_GALARIAN_FORMS #endif //P_FAMILY_STUNFISK @@ -4110,8 +4303,8 @@ static const struct SpriteFrameImage sPicTable_Braviary[] = { overworld_ascending_frames(gObjectEventPic_Braviary, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_BraviaryHisuian[] = { - overworld_ascending_frames(gObjectEventPic_BraviaryHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_BraviaryHisui[] = { + overworld_ascending_frames(gObjectEventPic_BraviaryHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_RUFFLET @@ -4182,7 +4375,7 @@ static const struct SpriteFrameImage sPicTable_TornadusIncarnate[] = { overworld_ascending_frames(gObjectEventPic_TornadusIncarnate, 4, 4), }; static const struct SpriteFrameImage sPicTable_TornadusTherian[] = { - overworld_ascending_frames(gObjectEventPic_TornadusTherian, 4, 4), + overworld_ascending_frames(gObjectEventPic_TornadusTherian, 8, 8), }; #endif //P_FAMILY_TORNADUS @@ -4192,19 +4385,19 @@ static const struct SpriteFrameImage sPicTable_ThundurusIncarnate[] = { overworld_ascending_frames(gObjectEventPic_ThundurusIncarnate, 4, 4), }; static const struct SpriteFrameImage sPicTable_ThundurusTherian[] = { - overworld_ascending_frames(gObjectEventPic_ThundurusTherian, 4, 4), + overworld_ascending_frames(gObjectEventPic_ThundurusTherian, 8, 8), }; #endif //P_FAMILY_THUNDURUS #if P_FAMILY_RESHIRAM static const struct SpriteFrameImage sPicTable_Reshiram[] = { - overworld_ascending_frames(gObjectEventPic_Reshiram, 4, 4), + overworld_ascending_frames(gObjectEventPic_Reshiram, 8, 8), }; #endif //P_FAMILY_RESHIRAM #if P_FAMILY_ZEKROM static const struct SpriteFrameImage sPicTable_Zekrom[] = { - overworld_ascending_frames(gObjectEventPic_Zekrom, 4, 4), + overworld_ascending_frames(gObjectEventPic_Zekrom, 8, 8), }; #endif //P_FAMILY_ZEKROM @@ -4220,16 +4413,16 @@ static const struct SpriteFrameImage sPicTable_LandorusTherian[] = { #if P_FAMILY_ENAMORUS static const struct SpriteFrameImage sPicTable_EnamorusIncarnate[] = { - overworld_ascending_frames(gObjectEventPic_EnamorusIncarnate, 4, 4), + overworld_ascending_frames(gObjectEventPic_EnamorusIncarnate, 8, 8), }; static const struct SpriteFrameImage sPicTable_EnamorusTherian[] = { - overworld_ascending_frames(gObjectEventPic_EnamorusTherian, 4, 4), + overworld_ascending_frames(gObjectEventPic_EnamorusTherian, 8, 8), }; #endif //P_FAMILY_ENAMORUS #if P_FAMILY_KYUREM static const struct SpriteFrameImage sPicTable_Kyurem[] = { - overworld_ascending_frames(gObjectEventPic_Kyurem, 4, 4), + overworld_ascending_frames(gObjectEventPic_Kyurem, 8, 8), }; #if P_FUSION_FORMS static const struct SpriteFrameImage sPicTable_KyuremWhite[] = { @@ -4405,60 +4598,62 @@ static const struct SpriteFrameImage sPicTable_Litleo[] = { static const struct SpriteFrameImage sPicTable_Pyroar[] = { overworld_ascending_frames(gObjectEventPic_Pyroar, 4, 4), }; +#if P_GENDER_DIFFERENCES static const struct SpriteFrameImage sPicTable_PyroarF[] = { overworld_ascending_frames(gObjectEventPic_PyroarF, 4, 4), }; +#endif //P_GENDER_DIFFERENCES #endif //P_FAMILY_LITLEO #if P_FAMILY_FLABEBE -static const struct SpriteFrameImage sPicTable_FlabebeRedFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlabebeRedFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlabebeRed[] = { + overworld_ascending_frames(gObjectEventPic_FlabebeRed, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlabebeYellowFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlabebeYellowFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlabebeYellow[] = { + overworld_ascending_frames(gObjectEventPic_FlabebeYellow, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlabebeOrangeFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlabebeOrangeFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlabebeOrange[] = { + overworld_ascending_frames(gObjectEventPic_FlabebeOrange, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlabebeBlueFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlabebeBlueFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlabebeBlue[] = { + overworld_ascending_frames(gObjectEventPic_FlabebeBlue, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlabebeWhiteFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlabebeWhiteFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlabebeWhite[] = { + overworld_ascending_frames(gObjectEventPic_FlabebeWhite, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteRedFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteRedFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteRed[] = { + overworld_ascending_frames(gObjectEventPic_FloetteRed, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteYellowFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteYellowFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteYellow[] = { + overworld_ascending_frames(gObjectEventPic_FloetteYellow, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteOrangeFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteOrangeFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteOrange[] = { + overworld_ascending_frames(gObjectEventPic_FloetteOrange, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteBlueFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteBlueFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteBlue[] = { + overworld_ascending_frames(gObjectEventPic_FloetteBlue, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteWhiteFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteWhiteFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteWhite[] = { + overworld_ascending_frames(gObjectEventPic_FloetteWhite, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FloetteEternalFlower[] = { - overworld_ascending_frames(gObjectEventPic_FloetteEternalFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FloetteEternal[] = { + overworld_ascending_frames(gObjectEventPic_FloetteEternal, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlorgesRedFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlorgesRedFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlorgesRed[] = { + overworld_ascending_frames(gObjectEventPic_FlorgesRed, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlorgesYellowFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlorgesYellowFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlorgesYellow[] = { + overworld_ascending_frames(gObjectEventPic_FlorgesYellow, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlorgesOrangeFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlorgesOrangeFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlorgesOrange[] = { + overworld_ascending_frames(gObjectEventPic_FlorgesOrange, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlorgesBlueFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlorgesBlueFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlorgesBlue[] = { + overworld_ascending_frames(gObjectEventPic_FlorgesBlue, 4, 4), }; -static const struct SpriteFrameImage sPicTable_FlorgesWhiteFlower[] = { - overworld_ascending_frames(gObjectEventPic_FlorgesWhiteFlower, 4, 4), +static const struct SpriteFrameImage sPicTable_FlorgesWhite[] = { + overworld_ascending_frames(gObjectEventPic_FlorgesWhite, 4, 4), }; #endif //P_FAMILY_FLABEBE @@ -4517,11 +4712,11 @@ static const struct SpriteFrameImage sPicTable_FurfrouPharaohTrim[] = { static const struct SpriteFrameImage sPicTable_Espurr[] = { overworld_ascending_frames(gObjectEventPic_Espurr, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MeowsticMale[] = { - overworld_ascending_frames(gObjectEventPic_MeowsticMale, 4, 4), +static const struct SpriteFrameImage sPicTable_MeowsticM[] = { + overworld_ascending_frames(gObjectEventPic_MeowsticM, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MeowsticFemale[] = { - overworld_ascending_frames(gObjectEventPic_MeowsticFemale, 4, 4), +static const struct SpriteFrameImage sPicTable_MeowsticF[] = { + overworld_ascending_frames(gObjectEventPic_MeowsticF, 4, 4), }; #endif //P_FAMILY_ESPURR @@ -4648,8 +4843,8 @@ static const struct SpriteFrameImage sPicTable_Sliggoo[] = { overworld_ascending_frames(gObjectEventPic_Sliggoo, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_SliggooHisuian[] = { - overworld_ascending_frames(gObjectEventPic_SliggooHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_SliggooHisui[] = { + overworld_ascending_frames(gObjectEventPic_SliggooHisui, 4, 4), }; #endif //P_HISUIAN_FORMS @@ -4657,8 +4852,8 @@ static const struct SpriteFrameImage sPicTable_Goodra[] = { overworld_ascending_frames(gObjectEventPic_Goodra, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_GoodraHisuian[] = { - overworld_ascending_frames(gObjectEventPic_GoodraHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_GoodraHisui[] = { + overworld_ascending_frames(gObjectEventPic_GoodraHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GOOMY @@ -4715,8 +4910,8 @@ static const struct SpriteFrameImage sPicTable_Avalugg[] = { overworld_ascending_frames(gObjectEventPic_Avalugg, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_AvaluggHisuian[] = { - overworld_ascending_frames(gObjectEventPic_AvaluggHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_AvaluggHisui[] = { + overworld_ascending_frames(gObjectEventPic_AvaluggHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BERGMITE @@ -4733,23 +4928,23 @@ static const struct SpriteFrameImage sPicTable_Noivern[] = { #if P_FAMILY_XERNEAS static const struct SpriteFrameImage sPicTable_XerneasNeutral[] = { - overworld_ascending_frames(gObjectEventPic_XerneasNeutral, 4, 4), + overworld_ascending_frames(gObjectEventPic_XerneasNeutral, 8, 8), }; static const struct SpriteFrameImage sPicTable_XerneasActive[] = { - overworld_ascending_frames(gObjectEventPic_XerneasActive, 4, 4), + overworld_ascending_frames(gObjectEventPic_XerneasActive, 8, 8), }; #endif //P_FAMILY_XERNEAS #if P_FAMILY_YVELTAL static const struct SpriteFrameImage sPicTable_Yveltal[] = { - overworld_ascending_frames(gObjectEventPic_Yveltal, 4, 4), + overworld_ascending_frames(gObjectEventPic_Yveltal, 8, 8), }; #endif //P_FAMILY_YVELTAL #if P_FAMILY_ZYGARDE static const struct SpriteFrameImage sPicTable_Zygarde50[] = { - overworld_ascending_frames(gObjectEventPic_Zygarde50, 4, 4), + overworld_ascending_frames(gObjectEventPic_Zygarde50, 8, 8), }; static const struct SpriteFrameImage sPicTable_Zygarde10[] = { overworld_ascending_frames(gObjectEventPic_Zygarde10, 4, 4), @@ -4776,7 +4971,7 @@ static const struct SpriteFrameImage sPicTable_HoopaConfined[] = { overworld_ascending_frames(gObjectEventPic_HoopaConfined, 4, 4), }; static const struct SpriteFrameImage sPicTable_HoopaUnbound[] = { - overworld_ascending_frames(gObjectEventPic_HoopaUnbound, 4, 4), + overworld_ascending_frames(gObjectEventPic_HoopaUnbound, 8, 8), }; #endif //P_FAMILY_HOOPA @@ -4797,8 +4992,8 @@ static const struct SpriteFrameImage sPicTable_Decidueye[] = { overworld_ascending_frames(gObjectEventPic_Decidueye, 4, 4), }; #if P_HISUIAN_FORMS -static const struct SpriteFrameImage sPicTable_DecidueyeHisuian[] = { - overworld_ascending_frames(gObjectEventPic_DecidueyeHisuian, 4, 4), +static const struct SpriteFrameImage sPicTable_DecidueyeHisui[] = { + overworld_ascending_frames(gObjectEventPic_DecidueyeHisui, 4, 4), }; #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ROWLET @@ -5234,8 +5429,8 @@ static const struct SpriteFrameImage sPicTable_NecrozmaDawnWings[] = { static const struct SpriteFrameImage sPicTable_Magearna[] = { overworld_ascending_frames(gObjectEventPic_Magearna, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MagearnaOriginalColor[] = { - overworld_ascending_frames(gObjectEventPic_MagearnaOriginalColor, 4, 4), +static const struct SpriteFrameImage sPicTable_MagearnaOriginal[] = { + overworld_ascending_frames(gObjectEventPic_MagearnaOriginal, 4, 4), }; #endif //P_FAMILY_MAGEARNA @@ -5280,8 +5475,8 @@ static const struct SpriteFrameImage sPicTable_Melmetal[] = { overworld_ascending_frames(gObjectEventPic_Melmetal, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_MelmetalGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_MelmetalGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_MelmetalGmax[] = { + overworld_ascending_frames(gObjectEventPic_MelmetalGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MELTAN @@ -5297,8 +5492,8 @@ static const struct SpriteFrameImage sPicTable_Rillaboom[] = { overworld_ascending_frames(gObjectEventPic_Rillaboom, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_RillaboomGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_RillaboomGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_RillaboomGmax[] = { + overworld_ascending_frames(gObjectEventPic_RillaboomGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GROOKEY @@ -5314,8 +5509,8 @@ static const struct SpriteFrameImage sPicTable_Cinderace[] = { overworld_ascending_frames(gObjectEventPic_Cinderace, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CinderaceGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CinderaceGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CinderaceGmax[] = { + overworld_ascending_frames(gObjectEventPic_CinderaceGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SCORBUNNY @@ -5331,8 +5526,8 @@ static const struct SpriteFrameImage sPicTable_Inteleon[] = { overworld_ascending_frames(gObjectEventPic_Inteleon, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_InteleonGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_InteleonGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_InteleonGmax[] = { + overworld_ascending_frames(gObjectEventPic_InteleonGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SOBBLE @@ -5357,8 +5552,8 @@ static const struct SpriteFrameImage sPicTable_Corviknight[] = { overworld_ascending_frames(gObjectEventPic_Corviknight, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CorviknightGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CorviknightGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CorviknightGmax[] = { + overworld_ascending_frames(gObjectEventPic_CorviknightGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROOKIDEE @@ -5374,8 +5569,8 @@ static const struct SpriteFrameImage sPicTable_Orbeetle[] = { overworld_ascending_frames(gObjectEventPic_Orbeetle, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_OrbeetleGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_OrbeetleGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_OrbeetleGmax[] = { + overworld_ascending_frames(gObjectEventPic_OrbeetleGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BLIPBUG @@ -5415,8 +5610,8 @@ static const struct SpriteFrameImage sPicTable_Drednaw[] = { overworld_ascending_frames(gObjectEventPic_Drednaw, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_DrednawGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_DrednawGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_DrednawGmax[] = { + overworld_ascending_frames(gObjectEventPic_DrednawGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHEWTLE @@ -5441,8 +5636,8 @@ static const struct SpriteFrameImage sPicTable_Coalossal[] = { overworld_ascending_frames(gObjectEventPic_Coalossal, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CoalossalGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CoalossalGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CoalossalGmax[] = { + overworld_ascending_frames(gObjectEventPic_CoalossalGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROLYCOLY @@ -5455,8 +5650,8 @@ static const struct SpriteFrameImage sPicTable_Flapple[] = { overworld_ascending_frames(gObjectEventPic_Flapple, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_FlappleGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_FlappleGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_FlappleGmax[] = { + overworld_ascending_frames(gObjectEventPic_FlappleGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS @@ -5464,8 +5659,8 @@ static const struct SpriteFrameImage sPicTable_Appletun[] = { overworld_ascending_frames(gObjectEventPic_Appletun, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_AppletunGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_AppletunGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_AppletunGmax[] = { + overworld_ascending_frames(gObjectEventPic_AppletunGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS @@ -5487,8 +5682,8 @@ static const struct SpriteFrameImage sPicTable_Sandaconda[] = { overworld_ascending_frames(gObjectEventPic_Sandaconda, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_SandacondaGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_SandacondaGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_SandacondaGmax[] = { + overworld_ascending_frames(gObjectEventPic_SandacondaGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SILICOBRA @@ -5525,8 +5720,8 @@ static const struct SpriteFrameImage sPicTable_ToxtricityLowKey[] = { overworld_ascending_frames(gObjectEventPic_ToxtricityLowKey, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_ToxtricityGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_ToxtricityGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_ToxtricityGmax[] = { + overworld_ascending_frames(gObjectEventPic_ToxtricityGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TOXEL @@ -5539,8 +5734,8 @@ static const struct SpriteFrameImage sPicTable_Centiskorch[] = { overworld_ascending_frames(gObjectEventPic_Centiskorch, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CentiskorchGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CentiskorchGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CentiskorchGmax[] = { + overworld_ascending_frames(gObjectEventPic_CentiskorchGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SIZZLIPEDE @@ -5574,8 +5769,8 @@ static const struct SpriteFrameImage sPicTable_Hatterene[] = { overworld_ascending_frames(gObjectEventPic_Hatterene, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_HattereneGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_HattereneGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_HattereneGmax[] = { + overworld_ascending_frames(gObjectEventPic_HattereneGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_HATENNA @@ -5591,8 +5786,8 @@ static const struct SpriteFrameImage sPicTable_Grimmsnarl[] = { overworld_ascending_frames(gObjectEventPic_Grimmsnarl, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_GrimmsnarlGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_GrimmsnarlGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_GrimmsnarlGmax[] = { + overworld_ascending_frames(gObjectEventPic_GrimmsnarlGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_IMPIDIMP @@ -5606,8 +5801,8 @@ static const struct SpriteFrameImage sPicTable_AlcremieStrawberry[] = { overworld_ascending_frames(gObjectEventPic_AlcremieStrawberry, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_AlcremieGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_AlcremieGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_AlcremieGmax[] = { + overworld_ascending_frames(gObjectEventPic_AlcremieGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MILCERY @@ -5640,20 +5835,20 @@ static const struct SpriteFrameImage sPicTable_Stonjourner[] = { #endif //P_FAMILY_STONJOURNER #if P_FAMILY_EISCUE -static const struct SpriteFrameImage sPicTable_EiscueIceFace[] = { - overworld_ascending_frames(gObjectEventPic_EiscueIceFace, 4, 4), +static const struct SpriteFrameImage sPicTable_EiscueIce[] = { + overworld_ascending_frames(gObjectEventPic_EiscueIce, 4, 4), }; -/*static const struct SpriteFrameImage sPicTable_EiscueNoiceFace[] = { - overworld_ascending_frames(gObjectEventPic_EiscueNoiceFace, 4, 4), +/*static const struct SpriteFrameImage sPicTable_EiscueNoice[] = { + overworld_ascending_frames(gObjectEventPic_EiscueNoice, 4, 4), };*/ #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct SpriteFrameImage sPicTable_IndeedeeMale[] = { - overworld_ascending_frames(gObjectEventPic_IndeedeeMale, 4, 4), +static const struct SpriteFrameImage sPicTable_IndeedeeM[] = { + overworld_ascending_frames(gObjectEventPic_IndeedeeM, 4, 4), }; -static const struct SpriteFrameImage sPicTable_IndeedeeFemale[] = { - overworld_ascending_frames(gObjectEventPic_IndeedeeFemale, 4, 4), +static const struct SpriteFrameImage sPicTable_IndeedeeF[] = { + overworld_ascending_frames(gObjectEventPic_IndeedeeF, 4, 4), }; #endif //P_FAMILY_INDEEDEE @@ -5674,8 +5869,8 @@ static const struct SpriteFrameImage sPicTable_Copperajah[] = { overworld_ascending_frames(gObjectEventPic_Copperajah, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_CopperajahGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_CopperajahGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_CopperajahGmax[] = { + overworld_ascending_frames(gObjectEventPic_CopperajahGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CUFANT @@ -5709,8 +5904,8 @@ static const struct SpriteFrameImage sPicTable_Duraludon[] = { overworld_ascending_frames(gObjectEventPic_Duraludon, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_DuraludonGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_DuraludonGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_DuraludonGmax[] = { + overworld_ascending_frames(gObjectEventPic_DuraludonGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS @@ -5734,20 +5929,20 @@ static const struct SpriteFrameImage sPicTable_Dragapult[] = { #endif //P_FAMILY_DREEPY #if P_FAMILY_ZACIAN -static const struct SpriteFrameImage sPicTable_ZacianHeroOfManyBattles[] = { - overworld_ascending_frames(gObjectEventPic_ZacianHeroOfManyBattles, 4, 4), +static const struct SpriteFrameImage sPicTable_ZacianHero[] = { + overworld_ascending_frames(gObjectEventPic_ZacianHero, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ZacianCrownedSword[] = { - overworld_ascending_frames(gObjectEventPic_ZacianCrownedSword, 4, 4), +static const struct SpriteFrameImage sPicTable_ZacianCrowned[] = { + overworld_ascending_frames(gObjectEventPic_ZacianCrowned, 4, 4), }; #endif //P_FAMILY_ZACIAN #if P_FAMILY_ZAMAZENTA -static const struct SpriteFrameImage sPicTable_ZamazentaHeroOfManyBattles[] = { - overworld_ascending_frames(gObjectEventPic_ZamazentaHeroOfManyBattles, 4, 4), +static const struct SpriteFrameImage sPicTable_ZamazentaHero[] = { + overworld_ascending_frames(gObjectEventPic_ZamazentaHero, 4, 4), }; -static const struct SpriteFrameImage sPicTable_ZamazentaCrownedShield[] = { - overworld_ascending_frames(gObjectEventPic_ZamazentaCrownedShield, 4, 4), +static const struct SpriteFrameImage sPicTable_ZamazentaCrowned[] = { + overworld_ascending_frames(gObjectEventPic_ZamazentaCrowned, 4, 4), }; #endif //P_FAMILY_ZAMAZENTA @@ -5768,11 +5963,11 @@ static const struct SpriteFrameImage sPicTable_Urshifu[] = { overworld_ascending_frames(gObjectEventPic_Urshifu, 4, 4), }; #if P_GIGANTAMAX_FORMS -/*static const struct SpriteFrameImage sPicTable_UrshifuSingleStrikeStyleGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_UrshifuSingleStrikeStyleGigantamax, 4, 4), +/*static const struct SpriteFrameImage sPicTable_UrshifuSingleStrikeGmax[] = { + overworld_ascending_frames(gObjectEventPic_UrshifuSingleStrikeGmax, 4, 4), }; -static const struct SpriteFrameImage sPicTable_UrshifuRapidStrikeStyleGigantamax[] = { - overworld_ascending_frames(gObjectEventPic_UrshifuRapidStrikeStyleGigantamax, 4, 4), +static const struct SpriteFrameImage sPicTable_UrshifuRapidStrikeGmax[] = { + overworld_ascending_frames(gObjectEventPic_UrshifuRapidStrikeGmax, 4, 4), };*/ #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU @@ -5816,14 +6011,14 @@ static const struct SpriteFrameImage sPicTable_Calyrex[] = { overworld_ascending_frames(gObjectEventPic_Calyrex, 4, 4), }; #if P_FUSION_FORMS -static const struct SpriteFrameImage sPicTable_CalyrexIceRider[] = { - overworld_ascending_frames(gObjectEventPic_CalyrexIceRider, 4, 4), +static const struct SpriteFrameImage sPicTable_CalyrexIce[] = { + overworld_ascending_frames(gObjectEventPic_CalyrexIce, 4, 4), }; #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct SpriteFrameImage sPicTable_CalyrexShadowRider[] = { - overworld_ascending_frames(gObjectEventPic_CalyrexShadowRider, 4, 4), +static const struct SpriteFrameImage sPicTable_CalyrexShadow[] = { + overworld_ascending_frames(gObjectEventPic_CalyrexShadow, 4, 4), }; #endif //P_FUSION_FORMS #endif //P_FAMILY_CALYREX @@ -5868,11 +6063,11 @@ static const struct SpriteFrameImage sPicTable_Quaquaval[] = { static const struct SpriteFrameImage sPicTable_Lechonk[] = { overworld_ascending_frames(gObjectEventPic_Lechonk, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OinkologneMale[] = { - overworld_ascending_frames(gObjectEventPic_OinkologneMale, 4, 4), +static const struct SpriteFrameImage sPicTable_OinkologneM[] = { + overworld_ascending_frames(gObjectEventPic_OinkologneM, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OinkologneFemale[] = { - overworld_ascending_frames(gObjectEventPic_OinkologneFemale, 4, 4), +static const struct SpriteFrameImage sPicTable_OinkologneF[] = { + overworld_ascending_frames(gObjectEventPic_OinkologneF, 4, 4), }; #endif //P_FAMILY_LECHONK @@ -5910,11 +6105,11 @@ static const struct SpriteFrameImage sPicTable_Pawmot[] = { static const struct SpriteFrameImage sPicTable_Tandemaus[] = { overworld_ascending_frames(gObjectEventPic_Tandemaus, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MausholdFamilyOfThree[] = { - overworld_ascending_frames(gObjectEventPic_MausholdFamilyOfThree, 4, 4), +static const struct SpriteFrameImage sPicTable_MausholdThree[] = { + overworld_ascending_frames(gObjectEventPic_MausholdThree, 4, 4), }; -static const struct SpriteFrameImage sPicTable_MausholdFamilyOfFour[] = { - overworld_ascending_frames(gObjectEventPic_MausholdFamilyOfFour, 4, 4), +static const struct SpriteFrameImage sPicTable_MausholdFour[] = { + overworld_ascending_frames(gObjectEventPic_MausholdFour, 4, 4), }; #endif //P_FAMILY_TANDEMAUS @@ -5940,17 +6135,17 @@ static const struct SpriteFrameImage sPicTable_Arboliva[] = { #endif //P_FAMILY_SMOLIV #if P_FAMILY_SQUAWKABILLY -static const struct SpriteFrameImage sPicTable_SquawkabillyGreenPlumage[] = { - overworld_ascending_frames(gObjectEventPic_SquawkabillyGreenPlumage, 4, 4), +static const struct SpriteFrameImage sPicTable_SquawkabillyGreen[] = { + overworld_ascending_frames(gObjectEventPic_SquawkabillyGreen, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SquawkabillyBluePlumage[] = { - overworld_ascending_frames(gObjectEventPic_SquawkabillyBluePlumage, 4, 4), +static const struct SpriteFrameImage sPicTable_SquawkabillyBlue[] = { + overworld_ascending_frames(gObjectEventPic_SquawkabillyBlue, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SquawkabillyYellowPlumage[] = { - overworld_ascending_frames(gObjectEventPic_SquawkabillyYellowPlumage, 4, 4), +static const struct SpriteFrameImage sPicTable_SquawkabillyYellow[] = { + overworld_ascending_frames(gObjectEventPic_SquawkabillyYellow, 4, 4), }; -static const struct SpriteFrameImage sPicTable_SquawkabillyWhitePlumage[] = { - overworld_ascending_frames(gObjectEventPic_SquawkabillyWhitePlumage, 4, 4), +static const struct SpriteFrameImage sPicTable_SquawkabillyWhite[] = { + overworld_ascending_frames(gObjectEventPic_SquawkabillyWhite, 4, 4), }; #endif //P_FAMILY_SQUAWKABILLY @@ -6366,29 +6561,29 @@ static const struct SpriteFrameImage sPicTable_Fezandipiti[] = { #endif //P_FAMILY_FEZANDIPITI #if P_FAMILY_OGERPON -static const struct SpriteFrameImage sPicTable_OgerponTealMask[] = { - overworld_ascending_frames(gObjectEventPic_OgerponTealMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponTeal[] = { + overworld_ascending_frames(gObjectEventPic_OgerponTeal, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponWellspringMask[] = { - overworld_ascending_frames(gObjectEventPic_OgerponWellspringMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponWellspring[] = { + overworld_ascending_frames(gObjectEventPic_OgerponWellspring, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponHearthflameMask[] = { - overworld_ascending_frames(gObjectEventPic_OgerponHearthflameMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponHearthflame[] = { + overworld_ascending_frames(gObjectEventPic_OgerponHearthflame, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponCornerstoneMask[] = { - overworld_ascending_frames(gObjectEventPic_OgerponCornerstoneMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponCornerstone[] = { + overworld_ascending_frames(gObjectEventPic_OgerponCornerstone, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponTealMaskTera[] = { - overworld_ascending_frames(gObjectEventPic_OgerponTealMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponTealTera[] = { + overworld_ascending_frames(gObjectEventPic_OgerponTeal, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponWellspringMaskTera[] = { - overworld_ascending_frames(gObjectEventPic_OgerponWellspringMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponWellspringTera[] = { + overworld_ascending_frames(gObjectEventPic_OgerponWellspring, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponHearthflameMaskTera[] = { - overworld_ascending_frames(gObjectEventPic_OgerponHearthflameMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponHearthflameTera[] = { + overworld_ascending_frames(gObjectEventPic_OgerponHearthflame, 4, 4), }; -static const struct SpriteFrameImage sPicTable_OgerponCornerstoneMaskTera[] = { - overworld_ascending_frames(gObjectEventPic_OgerponCornerstoneMask, 4, 4), +static const struct SpriteFrameImage sPicTable_OgerponCornerstoneTera[] = { + overworld_ascending_frames(gObjectEventPic_OgerponCornerstone, 4, 4), }; #endif //P_FAMILY_OGERPON diff --git a/src/data/party_menu.h b/src/data/party_menu.h index 841cedca88..3bc86593fa 100644 --- a/src/data/party_menu.h +++ b/src/data/party_menu.h @@ -686,39 +686,41 @@ static const u16 sUnusedData[] = 0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123, }; +static const u8 sText_Trade4[] = _("TRADE"); + struct { const u8 *text; TaskFunc func; } static const sCursorOptions[MENU_FIELD_MOVES] = { - [MENU_SUMMARY] = {gText_Summary5, CursorCb_Summary}, - [MENU_SWITCH] = {gText_Switch2, CursorCb_Switch}, + [MENU_SUMMARY] = {COMPOUND_STRING("SUMMARY"), CursorCb_Summary}, + [MENU_SWITCH] = {COMPOUND_STRING("SWITCH"), CursorCb_Switch}, [MENU_CANCEL1] = {gText_Cancel2, CursorCb_Cancel1}, - [MENU_ITEM] = {gText_Item, CursorCb_Item}, + [MENU_ITEM] = {COMPOUND_STRING("ITEM"), CursorCb_Item}, [MENU_GIVE] = {gMenuText_Give, CursorCb_Give}, - [MENU_TAKE_ITEM] = {gText_Take, CursorCb_TakeItem}, - [MENU_MAIL] = {gText_Mail, CursorCb_Mail}, - [MENU_TAKE_MAIL] = {gText_Take2, CursorCb_TakeMail}, - [MENU_READ] = {gText_Read2, CursorCb_Read}, + [MENU_TAKE_ITEM] = {COMPOUND_STRING("TAKE"), CursorCb_TakeItem}, + [MENU_MAIL] = {COMPOUND_STRING("MAIL"), CursorCb_Mail}, + [MENU_TAKE_MAIL] = {COMPOUND_STRING("TAKE"), CursorCb_TakeMail}, + [MENU_READ] = {COMPOUND_STRING("READ"), CursorCb_Read}, [MENU_CANCEL2] = {gText_Cancel2, CursorCb_Cancel2}, - [MENU_SHIFT] = {gText_Shift, CursorCb_SendMon}, - [MENU_SEND_OUT] = {gText_SendOut, CursorCb_SendMon}, - [MENU_ENTER] = {gText_Enter, CursorCb_Enter}, - [MENU_NO_ENTRY] = {gText_NoEntry, CursorCb_NoEntry}, - [MENU_STORE] = {gText_Store, CursorCb_Store}, + [MENU_SHIFT] = {COMPOUND_STRING("SHIFT"), CursorCb_SendMon}, + [MENU_SEND_OUT] = {COMPOUND_STRING("SEND OUT"), CursorCb_SendMon}, + [MENU_ENTER] = {COMPOUND_STRING("ENTER"), CursorCb_Enter}, + [MENU_NO_ENTRY] = {COMPOUND_STRING("NO ENTRY"), CursorCb_NoEntry}, + [MENU_STORE] = {COMPOUND_STRING("STORE"), CursorCb_Store}, [MENU_REGISTER] = {gText_Register, CursorCb_Register}, - [MENU_TRADE1] = {gText_Trade4, CursorCb_Trade1}, - [MENU_TRADE2] = {gText_Trade4, CursorCb_Trade2}, + [MENU_TRADE1] = {sText_Trade4, CursorCb_Trade1}, + [MENU_TRADE2] = {sText_Trade4, CursorCb_Trade2}, [MENU_TOSS] = {gMenuText_Toss, CursorCb_Toss}, - [MENU_CATALOG_BULB] = {gText_LightBulb, CursorCb_CatalogBulb}, - [MENU_CATALOG_OVEN] = {gText_MicrowaveOven, CursorCb_CatalogOven}, - [MENU_CATALOG_WASHING] = {gText_WashingMachine, CursorCb_CatalogWashing}, - [MENU_CATALOG_FRIDGE] = {gText_Refrigerator, CursorCb_CatalogFridge}, - [MENU_CATALOG_FAN] = {gText_ElectricFan, CursorCb_CatalogFan}, - [MENU_CATALOG_MOWER] = {gText_LawnMower, CursorCb_CatalogMower}, - [MENU_CHANGE_FORM] = {gText_ChangeForm, CursorCb_ChangeForm}, - [MENU_CHANGE_ABILITY] = {gText_ChangeAbility, CursorCb_ChangeAbility}, + [MENU_CATALOG_BULB] = {COMPOUND_STRING("Light bulb"), CursorCb_CatalogBulb}, + [MENU_CATALOG_OVEN] = {COMPOUND_STRING("Microwave oven"), CursorCb_CatalogOven}, + [MENU_CATALOG_WASHING] = {COMPOUND_STRING("Washing machine"), CursorCb_CatalogWashing}, + [MENU_CATALOG_FRIDGE] = {COMPOUND_STRING("Refrigerator"), CursorCb_CatalogFridge}, + [MENU_CATALOG_FAN] = {COMPOUND_STRING("Electric fan"), CursorCb_CatalogFan}, + [MENU_CATALOG_MOWER] = {COMPOUND_STRING("Lawn mower"), CursorCb_CatalogMower}, + [MENU_CHANGE_FORM] = {COMPOUND_STRING("Change form"), CursorCb_ChangeForm}, + [MENU_CHANGE_ABILITY] = {COMPOUND_STRING("Change Ability"), CursorCb_ChangeAbility}, }; static const u8 sPartyMenuAction_SummarySwitchCancel[] = {MENU_SUMMARY, MENU_SWITCH, MENU_CANCEL1}; diff --git a/src/data/pokemon/egg_moves.h b/src/data/pokemon/egg_moves.h index 18ce19a7a1..23c233de58 100644 --- a/src/data/pokemon/egg_moves.h +++ b/src/data/pokemon/egg_moves.h @@ -99,7 +99,7 @@ static const u16 sRattataEggMoveLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sRattataAlolanEggMoveLearnset[] = { +static const u16 sRattataAlolaEggMoveLearnset[] = { MOVE_COUNTER, MOVE_FINAL_GAMBIT, MOVE_FURY_SWIPES, @@ -192,7 +192,7 @@ static const u16 sSandshrewEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sSandshrewAlolanEggMoveLearnset[] = { +static const u16 sSandshrewAlolaEggMoveLearnset[] = { MOVE_AMNESIA, MOVE_CHIP_AWAY, MOVE_COUNTER, @@ -289,7 +289,7 @@ static const u16 sVulpixEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sVulpixAlolanEggMoveLearnset[] = { +static const u16 sVulpixAlolaEggMoveLearnset[] = { MOVE_AGILITY, MOVE_CHARM, MOVE_DISABLE, @@ -425,7 +425,7 @@ static const u16 sDiglettEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sDiglettAlolanEggMoveLearnset[] = { +static const u16 sDiglettAlolaEggMoveLearnset[] = { MOVE_ANCIENT_POWER, MOVE_BEAT_UP, MOVE_ENDURE, @@ -460,7 +460,7 @@ static const u16 sMeowthEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sMeowthAlolanEggMoveLearnset[] = { +static const u16 sMeowthAlolaEggMoveLearnset[] = { MOVE_AMNESIA, MOVE_ASSIST, MOVE_CHARM, @@ -477,7 +477,7 @@ static const u16 sMeowthAlolanEggMoveLearnset[] = { }; #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const u16 sMeowthGalarianEggMoveLearnset[] = { +static const u16 sMeowthGalarEggMoveLearnset[] = { MOVE_SPITE, MOVE_DOUBLE_EDGE, MOVE_CURSE, @@ -662,7 +662,7 @@ static const u16 sGeodudeEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sGeodudeAlolanEggMoveLearnset[] = { +static const u16 sGeodudeAlolaEggMoveLearnset[] = { MOVE_AUTOTOMIZE, MOVE_BLOCK, MOVE_COUNTER, @@ -695,7 +695,7 @@ static const u16 sPonytaEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sPonytaGalarianEggMoveLearnset[] = { +static const u16 sPonytaGalarEggMoveLearnset[] = { MOVE_THRASH, MOVE_DOUBLE_KICK, MOVE_HYPNOSIS, @@ -723,7 +723,7 @@ static const u16 sSlowpokeEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sSlowpokeGalarianEggMoveLearnset[] = { +static const u16 sSlowpokeGalarEggMoveLearnset[] = { MOVE_BELCH, MOVE_BELLY_DRUM, MOVE_BLOCK, @@ -756,7 +756,7 @@ static const u16 sFarfetchdEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sFarfetchdGalarianEggMoveLearnset[] = { +static const u16 sFarfetchdGalarEggMoveLearnset[] = { MOVE_COUNTER, MOVE_QUICK_ATTACK, MOVE_FLAIL, @@ -830,7 +830,7 @@ static const u16 sGrimerEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_ALOLAN_FORMS -static const u16 sGrimerAlolanEggMoveLearnset[] = { +static const u16 sGrimerAlolaEggMoveLearnset[] = { MOVE_ASSURANCE, MOVE_CLEAR_SMOG, MOVE_CURSE, @@ -1201,7 +1201,7 @@ static const u16 sMrMimeEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sMrMimeGalarianEggMoveLearnset[] = { +static const u16 sMrMimeGalarEggMoveLearnset[] = { MOVE_FAKE_OUT, MOVE_CONFUSE_RAY, MOVE_POWER_SPLIT, @@ -1302,19 +1302,19 @@ static const u16 sPinsirEggMoveLearnset[] = { #if P_FAMILY_TAUROS #if P_PALDEAN_FORMS -static const u16 sTaurosPaldeanCombatBreedEggMoveLearnset[] = { +static const u16 sTaurosPaldeaCombatEggMoveLearnset[] = { MOVE_CURSE, MOVE_ENDEAVOR, MOVE_UNAVAILABLE, }; -static const u16 sTaurosPaldeanBlazeBreedEggMoveLearnset[] = { +static const u16 sTaurosPaldeaBlazeEggMoveLearnset[] = { MOVE_CURSE, MOVE_ENDEAVOR, MOVE_UNAVAILABLE, }; -static const u16 sTaurosPaldeanAquaBreedEggMoveLearnset[] = { +static const u16 sTaurosPaldeaAquaEggMoveLearnset[] = { MOVE_CURSE, MOVE_ENDEAVOR, MOVE_UNAVAILABLE, @@ -1840,7 +1840,7 @@ static const u16 sWooperEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_PALDEAN_FORMS -static const u16 sWooperPaldeanEggMoveLearnset[] = { +static const u16 sWooperPaldeaEggMoveLearnset[] = { MOVE_ACID_SPRAY, MOVE_AFTER_YOU, MOVE_ANCIENT_POWER, @@ -2145,7 +2145,7 @@ static const u16 sCorsolaEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sCorsolaGalarianEggMoveLearnset[] = { +static const u16 sCorsolaGalarEggMoveLearnset[] = { MOVE_HAZE, MOVE_CONFUSE_RAY, MOVE_NATURE_POWER, @@ -2440,7 +2440,7 @@ static const u16 sZigzagoonEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sZigzagoonGalarianEggMoveLearnset[] = { +static const u16 sZigzagoonGalarEggMoveLearnset[] = { MOVE_PARTING_SHOT, MOVE_QUICK_GUARD, MOVE_KNOCK_OFF, @@ -4314,7 +4314,7 @@ static const u16 sDarumakaEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sDarumakaGalarianEggMoveLearnset[] = { +static const u16 sDarumakaGalarEggMoveLearnset[] = { MOVE_FOCUS_PUNCH, MOVE_HAMMER_ARM, MOVE_TAKE_DOWN, @@ -4408,7 +4408,7 @@ static const u16 sYamaskEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sYamaskGalarianEggMoveLearnset[] = { +static const u16 sYamaskGalarEggMoveLearnset[] = { MOVE_MEMENTO, MOVE_UNAVAILABLE, }; @@ -4760,7 +4760,7 @@ static const u16 sStunfiskEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; #if P_GALARIAN_FORMS -static const u16 sStunfiskGalarianEggMoveLearnset[] = { +static const u16 sStunfiskGalarEggMoveLearnset[] = { MOVE_BIND, MOVE_YAWN, MOVE_ASTONISH, @@ -5855,7 +5855,7 @@ static const u16 sIndeedeeEggMoveLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sIndeedeeFemaleEggMoveLearnset[] = { +static const u16 sIndeedeeFEggMoveLearnset[] = { MOVE_PSYCH_UP, MOVE_FAKE_OUT, MOVE_PSYCHO_SHIFT, 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/pokemon/form_change_tables.h b/src/data/pokemon/form_change_tables.h index 5316427b4c..340bdb1fa6 100644 --- a/src/data/pokemon/form_change_tables.h +++ b/src/data/pokemon/form_change_tables.h @@ -692,7 +692,7 @@ static const struct FormChange sDarmanitanFormChangeTable[] = { }; #if P_GALARIAN_FORMS -static const struct FormChange sDarmanitanGalarianFormChangeTable[] = { +static const struct FormChange sDarmanitanGalarFormChangeTable[] = { {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALAR_STANDARD, ABILITY_ZEN_MODE, HP_HIGHER_THAN, 50}, {FORM_CHANGE_BATTLE_HP_PERCENT, SPECIES_DARMANITAN_GALAR_ZEN, ABILITY_ZEN_MODE, HP_LOWER_EQ_THAN, 50}, {FORM_CHANGE_FAINT, SPECIES_DARMANITAN_GALAR_STANDARD}, @@ -789,9 +789,12 @@ static const struct FormChange sFurfrouFormChangeTable[] = { #if P_FAMILY_HONEDGE static const struct FormChange sAegislashFormChangeTable[] = { - {FORM_CHANGE_BATTLE_SWITCH, SPECIES_AEGISLASH_SHIELD}, - {FORM_CHANGE_FAINT, SPECIES_AEGISLASH_SHIELD}, - {FORM_CHANGE_END_BATTLE, SPECIES_AEGISLASH_SHIELD}, + {FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY, SPECIES_AEGISLASH_BLADE, DAMAGE_CATEGORY_PHYSICAL, ABILITY_STANCE_CHANGE}, + {FORM_CHANGE_BATTLE_BEFORE_MOVE_CATEGORY, SPECIES_AEGISLASH_BLADE, DAMAGE_CATEGORY_SPECIAL, ABILITY_STANCE_CHANGE}, + {FORM_CHANGE_BATTLE_BEFORE_MOVE, SPECIES_AEGISLASH_SHIELD, MOVE_KINGS_SHIELD, ABILITY_STANCE_CHANGE}, + {FORM_CHANGE_BATTLE_SWITCH, SPECIES_AEGISLASH_SHIELD}, + {FORM_CHANGE_FAINT, SPECIES_AEGISLASH_SHIELD}, + {FORM_CHANGE_END_BATTLE, SPECIES_AEGISLASH_SHIELD}, {FORM_CHANGE_TERMINATOR}, }; #endif //P_FAMILY_HONEDGE diff --git a/src/data/pokemon/form_species_tables.h b/src/data/pokemon/form_species_tables.h index 1a8e1818ef..f2c4560216 100644 --- a/src/data/pokemon/form_species_tables.h +++ b/src/data/pokemon/form_species_tables.h @@ -113,7 +113,7 @@ static const u16 sPikachuFormSpeciesIdTable[] = { SPECIES_PIKACHU_UNOVA, SPECIES_PIKACHU_KALOS, SPECIES_PIKACHU_ALOLA, - SPECIES_PIKACHU_PARTNER_CAP, + SPECIES_PIKACHU_PARTNER, SPECIES_PIKACHU_WORLD, #endif #if P_GIGANTAMAX_FORMS diff --git a/src/data/pokemon/level_up_learnsets/gen_1.h b/src/data/pokemon/level_up_learnsets/gen_1.h index e7b9d23238..8470b1b14e 100644 --- a/src/data/pokemon/level_up_learnsets/gen_1.h +++ b/src/data/pokemon/level_up_learnsets/gen_1.h @@ -244,7 +244,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -261,7 +261,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -370,7 +370,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -406,7 +406,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -427,7 +427,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -569,7 +569,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -593,7 +593,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -805,7 +805,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -823,7 +823,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -875,7 +875,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -895,7 +895,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -924,7 +924,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1065,7 +1065,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1077,7 +1077,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1314,7 +1314,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1334,7 +1334,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1356,7 +1356,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1409,7 +1409,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1426,7 +1426,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -1491,7 +1491,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -1512,7 +1512,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -1537,7 +1537,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -1630,7 +1630,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -1751,7 +1751,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -1771,7 +1771,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -1954,7 +1954,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -1966,7 +1966,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2002,7 +2002,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2047,7 +2047,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -2177,7 +2177,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -2475,7 +2475,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -2742,7 +2742,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -2760,7 +2760,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -2778,7 +2778,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3144,7 +3144,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -3177,7 +3177,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -3210,7 +3210,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -3385,7 +3385,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -3940,7 +3940,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -4242,7 +4242,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -4339,7 +4339,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -4521,7 +4521,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -5125,7 +5125,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -5143,7 +5143,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -7734,7 +7734,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -7751,7 +7751,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -8964,7 +8964,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -9858,7 +9858,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -10041,7 +10041,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -10059,7 +10059,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -10258,7 +10258,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -10487,7 +10487,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -10498,7 +10498,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -11501,7 +11501,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -11765,7 +11765,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -12684,7 +12684,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -12840,7 +12840,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -12865,7 +12865,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -13461,7 +13461,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -13473,7 +13473,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -13634,7 +13634,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -13934,7 +13934,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -16946,7 +16946,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -16963,7 +16963,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -17291,7 +17291,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -17313,7 +17313,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -17462,7 +17462,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17498,7 +17498,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17749,7 +17749,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -17768,7 +17768,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_2.h b/src/data/pokemon/level_up_learnsets/gen_2.h index 991cf5daf8..0f39631c4f 100644 --- a/src/data/pokemon/level_up_learnsets/gen_2.h +++ b/src/data/pokemon/level_up_learnsets/gen_2.h @@ -280,7 +280,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -297,7 +297,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -413,7 +413,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -454,7 +454,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -475,7 +475,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -615,7 +615,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -639,7 +639,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -866,7 +866,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -884,7 +884,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -937,7 +937,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -957,7 +957,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -986,7 +986,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1136,7 +1136,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1148,7 +1148,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1410,7 +1410,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1430,7 +1430,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1452,7 +1452,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1510,7 +1510,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1527,7 +1527,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -1596,7 +1596,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -1617,7 +1617,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -1642,7 +1642,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -1741,7 +1741,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -1868,7 +1868,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -1888,7 +1888,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2101,7 +2101,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2113,7 +2113,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2152,7 +2152,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2203,7 +2203,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -2346,7 +2346,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -2663,7 +2663,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -2946,7 +2946,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -2964,7 +2964,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -2982,7 +2982,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3368,7 +3368,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -3404,7 +3404,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -3440,7 +3440,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -3629,7 +3629,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -4184,7 +4184,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -4486,7 +4486,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -4583,7 +4583,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -4765,7 +4765,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -5369,7 +5369,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -5387,7 +5387,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -7978,7 +7978,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -7995,7 +7995,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -9208,7 +9208,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -10102,7 +10102,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -10285,7 +10285,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -10303,7 +10303,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -10502,7 +10502,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -10731,7 +10731,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -10742,7 +10742,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -11745,7 +11745,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -12009,7 +12009,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -12928,7 +12928,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -13084,7 +13084,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -13109,7 +13109,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -13705,7 +13705,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -13717,7 +13717,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -13878,7 +13878,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -14178,7 +14178,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -17190,7 +17190,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -17207,7 +17207,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -17535,7 +17535,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -17557,7 +17557,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -17706,7 +17706,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17742,7 +17742,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17993,7 +17993,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -18012,7 +18012,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_3.h b/src/data/pokemon/level_up_learnsets/gen_3.h index 99b8cc397f..81e6d06b46 100644 --- a/src/data/pokemon/level_up_learnsets/gen_3.h +++ b/src/data/pokemon/level_up_learnsets/gen_3.h @@ -287,7 +287,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -304,7 +304,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -427,7 +427,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -470,7 +470,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -491,7 +491,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -645,7 +645,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -669,7 +669,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -916,7 +916,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -934,7 +934,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -989,7 +989,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -1009,7 +1009,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1038,7 +1038,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1191,7 +1191,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1203,7 +1203,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1480,7 +1480,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1500,7 +1500,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1522,7 +1522,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1582,7 +1582,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1599,7 +1599,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -1670,7 +1670,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -1691,7 +1691,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -1716,7 +1716,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -1820,7 +1820,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -1955,7 +1955,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -1975,7 +1975,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2200,7 +2200,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2212,7 +2212,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2252,7 +2252,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2305,7 +2305,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -2458,7 +2458,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -2796,7 +2796,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3085,7 +3085,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3103,7 +3103,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3121,7 +3121,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3529,7 +3529,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -3566,7 +3566,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -3603,7 +3603,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -3792,7 +3792,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -4375,7 +4375,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -4685,7 +4685,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -4785,7 +4785,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -4975,7 +4975,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -5595,7 +5595,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -5613,7 +5613,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -8204,7 +8204,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -8221,7 +8221,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -9434,7 +9434,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -10328,7 +10328,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -10511,7 +10511,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -10529,7 +10529,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -10728,7 +10728,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -10957,7 +10957,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -10968,7 +10968,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -11971,7 +11971,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -12235,7 +12235,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -13154,7 +13154,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -13310,7 +13310,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -13335,7 +13335,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -13931,7 +13931,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -13943,7 +13943,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -14104,7 +14104,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -14404,7 +14404,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -17416,7 +17416,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -17433,7 +17433,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -17761,7 +17761,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -17783,7 +17783,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -17932,7 +17932,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -17968,7 +17968,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -18219,7 +18219,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -18238,7 +18238,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_4.h b/src/data/pokemon/level_up_learnsets/gen_4.h index f620abc3df..5c9f6872b5 100644 --- a/src/data/pokemon/level_up_learnsets/gen_4.h +++ b/src/data/pokemon/level_up_learnsets/gen_4.h @@ -345,7 +345,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -362,7 +362,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -504,7 +504,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -556,7 +556,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -577,7 +577,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -757,7 +757,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -781,7 +781,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -1065,7 +1065,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1083,7 +1083,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -1152,7 +1152,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -1172,7 +1172,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1201,7 +1201,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1377,7 +1377,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1389,7 +1389,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1709,7 +1709,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1729,7 +1729,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1751,7 +1751,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1816,7 +1816,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1833,7 +1833,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -1921,7 +1921,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -1942,7 +1942,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -1967,7 +1967,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -2086,7 +2086,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2253,7 +2253,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2273,7 +2273,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2562,7 +2562,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2574,7 +2574,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2622,7 +2622,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2679,7 +2679,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -2855,7 +2855,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -3236,7 +3236,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3566,7 +3566,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3584,7 +3584,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3602,7 +3602,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4068,7 +4068,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -4110,7 +4110,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4152,7 +4152,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4394,7 +4394,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -5141,7 +5141,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -5507,7 +5507,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -5615,7 +5615,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -5836,7 +5836,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -6565,7 +6565,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -6583,7 +6583,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -9478,7 +9478,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -9495,7 +9495,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -10708,7 +10708,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -11602,7 +11602,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -11785,7 +11785,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -11803,7 +11803,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -12002,7 +12002,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -12231,7 +12231,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -12242,7 +12242,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -13245,7 +13245,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -13509,7 +13509,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -14428,7 +14428,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -14584,7 +14584,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -14609,7 +14609,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -15205,7 +15205,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -15217,7 +15217,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -15378,7 +15378,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -15678,7 +15678,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -18690,7 +18690,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -18707,7 +18707,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -19035,7 +19035,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -19057,7 +19057,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -19206,7 +19206,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -19242,7 +19242,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -19493,7 +19493,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -19512,7 +19512,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_5.h b/src/data/pokemon/level_up_learnsets/gen_5.h index b02bbdf430..cb99b6375d 100644 --- a/src/data/pokemon/level_up_learnsets/gen_5.h +++ b/src/data/pokemon/level_up_learnsets/gen_5.h @@ -356,7 +356,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -373,7 +373,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -521,7 +521,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -581,7 +581,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -602,7 +602,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -792,7 +792,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -816,7 +816,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -1114,7 +1114,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1132,7 +1132,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -1202,7 +1202,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -1222,7 +1222,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1251,7 +1251,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1438,7 +1438,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1450,7 +1450,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1798,7 +1798,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1818,7 +1818,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1840,7 +1840,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1909,7 +1909,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1926,7 +1926,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -2017,7 +2017,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -2038,7 +2038,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -2063,7 +2063,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -2192,7 +2192,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2365,7 +2365,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2385,7 +2385,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2697,7 +2697,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2709,7 +2709,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2758,7 +2758,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2817,7 +2817,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -3002,7 +3002,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -3407,7 +3407,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3753,7 +3753,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3771,7 +3771,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3789,7 +3789,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4266,7 +4266,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -4309,7 +4309,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4352,7 +4352,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4606,7 +4606,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -5406,7 +5406,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -5790,7 +5790,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -5913,7 +5913,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -6143,7 +6143,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -6893,7 +6893,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -6911,7 +6911,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -9937,7 +9937,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -9954,7 +9954,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -11231,7 +11231,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -12125,7 +12125,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -12308,7 +12308,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -12326,7 +12326,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -12525,7 +12525,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -12754,7 +12754,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -12765,7 +12765,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -13768,7 +13768,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14032,7 +14032,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -14951,7 +14951,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -15107,7 +15107,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -15132,7 +15132,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -15728,7 +15728,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -15740,7 +15740,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -15901,7 +15901,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -16201,7 +16201,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -19213,7 +19213,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -19230,7 +19230,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -19558,7 +19558,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -19580,7 +19580,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -19729,7 +19729,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -19765,7 +19765,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20016,7 +20016,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -20035,7 +20035,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_6.h b/src/data/pokemon/level_up_learnsets/gen_6.h index 3286c5ce4e..32e5849cda 100644 --- a/src/data/pokemon/level_up_learnsets/gen_6.h +++ b/src/data/pokemon/level_up_learnsets/gen_6.h @@ -361,7 +361,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -378,7 +378,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -533,7 +533,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -593,7 +593,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -614,7 +614,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -812,7 +812,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -836,7 +836,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -1158,7 +1158,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1176,7 +1176,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -1247,7 +1247,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -1267,7 +1267,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1296,7 +1296,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1484,7 +1484,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1496,7 +1496,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1860,7 +1860,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1880,7 +1880,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1902,7 +1902,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -1971,7 +1971,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -1988,7 +1988,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -2081,7 +2081,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -2102,7 +2102,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -2127,7 +2127,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -2262,7 +2262,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2439,7 +2439,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2459,7 +2459,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2781,7 +2781,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2793,7 +2793,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2842,7 +2842,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2901,7 +2901,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -3098,7 +3098,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -3523,7 +3523,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3876,7 +3876,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3894,7 +3894,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3912,7 +3912,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4408,7 +4408,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -4454,7 +4454,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4501,7 +4501,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4760,7 +4760,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -5588,7 +5588,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -5986,7 +5986,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -6114,7 +6114,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -6355,7 +6355,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -7144,7 +7144,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -7162,7 +7162,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -10399,7 +10399,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -10416,7 +10416,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE(10, MOVE_PROTECT), LEVEL_UP_MOVE(15, MOVE_BUG_BITE), @@ -11744,7 +11744,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -12664,7 +12664,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -12851,7 +12851,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -12869,7 +12869,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -13072,7 +13072,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -13305,7 +13305,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -13316,7 +13316,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -14360,7 +14360,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14635,7 +14635,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -15599,7 +15599,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 6, MOVE_FAIRY_WIND), @@ -15755,7 +15755,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -15780,7 +15780,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -16376,7 +16376,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16388,7 +16388,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16549,7 +16549,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -16851,7 +16851,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -19863,7 +19863,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -19880,7 +19880,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -20208,7 +20208,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -20230,7 +20230,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -20379,7 +20379,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20415,7 +20415,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20666,7 +20666,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -20685,7 +20685,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_7.h b/src/data/pokemon/level_up_learnsets/gen_7.h index 1b95b442e0..f88e4bcba7 100644 --- a/src/data/pokemon/level_up_learnsets/gen_7.h +++ b/src/data/pokemon/level_up_learnsets/gen_7.h @@ -367,7 +367,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -384,7 +384,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -542,7 +542,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_SPEED_SWAP), @@ -603,7 +603,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_BIDE), @@ -624,7 +624,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -822,7 +822,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 7, MOVE_ROAR), @@ -846,7 +846,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_IMPRISON), @@ -1179,7 +1179,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1197,7 +1197,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_ROTOTILLER), @@ -1269,7 +1269,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 6, MOVE_BITE), @@ -1289,7 +1289,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_SWIFT), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1318,7 +1318,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1514,7 +1514,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1526,7 +1526,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1898,7 +1898,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1918,7 +1918,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1940,7 +1940,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -2010,7 +2010,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -2027,7 +2027,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -2121,7 +2121,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -2142,7 +2142,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -2167,7 +2167,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -2305,7 +2305,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2490,7 +2490,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2510,7 +2510,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2837,7 +2837,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2849,7 +2849,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2899,7 +2899,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -2960,7 +2960,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_BONE_CLUB), @@ -3172,7 +3172,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -3601,7 +3601,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3955,7 +3955,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3973,7 +3973,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3991,7 +3991,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4505,7 +4505,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -4549,7 +4549,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4593,7 +4593,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4859,7 +4859,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -5712,7 +5712,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -6118,7 +6118,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -6246,7 +6246,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -6490,7 +6490,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -7296,7 +7296,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -7314,7 +7314,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -10633,7 +10633,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -10656,7 +10656,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -12015,7 +12015,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -12953,7 +12953,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -13140,7 +13140,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -13158,7 +13158,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -13362,7 +13362,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -13596,7 +13596,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -13607,7 +13607,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -14660,7 +14660,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14937,7 +14937,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -15926,7 +15926,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -16090,7 +16090,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_GUARD), LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_HELPING_HAND), @@ -16117,7 +16117,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_ME_FIRST), LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), @@ -16731,7 +16731,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16743,7 +16743,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16912,7 +16912,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -17214,7 +17214,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -20226,7 +20226,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -20243,7 +20243,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -20571,7 +20571,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -20593,7 +20593,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -20742,7 +20742,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20778,7 +20778,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -21029,7 +21029,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -21048,7 +21048,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_8.h b/src/data/pokemon/level_up_learnsets/gen_8.h index 4357fdf643..67d263c859 100644 --- a/src/data/pokemon/level_up_learnsets/gen_8.h +++ b/src/data/pokemon/level_up_learnsets/gen_8.h @@ -358,7 +358,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -375,7 +375,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -553,7 +553,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), @@ -626,7 +626,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 3, MOVE_MIST), @@ -647,7 +647,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), @@ -893,7 +893,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_DISABLE), @@ -913,7 +913,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), @@ -1271,7 +1271,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1288,7 +1288,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), @@ -1350,7 +1350,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_FEINT), @@ -1367,7 +1367,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), LEVEL_UP_MOVE( 1, MOVE_QUASH), @@ -1390,7 +1390,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1591,7 +1591,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1603,7 +1603,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_EMBER), LEVEL_UP_MOVE( 9, MOVE_BITE), @@ -1963,7 +1963,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1983,7 +1983,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -2005,7 +2005,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_HEAVY_SLAM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), @@ -2072,7 +2072,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -2089,7 +2089,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -2183,7 +2183,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -2204,7 +2204,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_WITHDRAW), @@ -2229,7 +2229,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_POWER_GEM), @@ -2347,7 +2347,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2532,7 +2532,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2552,7 +2552,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_VENOM_DRENCH), LEVEL_UP_MOVE( 1, MOVE_POUND), @@ -2869,7 +2869,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2881,7 +2881,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_THUNDER_SHOCK), LEVEL_UP_MOVE( 5, MOVE_TACKLE), LEVEL_UP_MOVE( 9, MOVE_THUNDER_WAVE), @@ -2938,7 +2938,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_SEED_BOMB), @@ -3001,7 +3001,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHADOW_BONE), LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), @@ -3193,7 +3193,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), @@ -3602,7 +3602,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3936,7 +3936,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3954,7 +3954,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3972,7 +3972,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4555,7 +4555,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_SHIFT), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), @@ -4599,7 +4599,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4643,7 +4643,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4901,7 +4901,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_EMBER), @@ -5737,7 +5737,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -6158,7 +6158,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 5, MOVE_SPIKES), LEVEL_UP_MOVE( 9, MOVE_PIN_MISSILE), @@ -6273,7 +6273,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_ROCK_SMASH), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -6502,7 +6502,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -7316,7 +7316,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -7334,7 +7334,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -10656,7 +10656,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -10679,7 +10679,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -12011,7 +12011,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 6, MOVE_AQUA_JET), @@ -12904,7 +12904,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_ABSORB), LEVEL_UP_MOVE( 5, MOVE_LEAFAGE), @@ -13074,7 +13074,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -13092,7 +13092,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -13284,7 +13284,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -13504,7 +13504,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -13515,7 +13515,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SHADOW_SNEAK), LEVEL_UP_MOVE( 6, MOVE_SNARL), LEVEL_UP_MOVE(11, MOVE_SWIFT), @@ -14490,7 +14490,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14737,7 +14737,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_QUICK_ATTACK), LEVEL_UP_MOVE( 6, MOVE_AERIAL_ACE), LEVEL_UP_MOVE(11, MOVE_TWISTER), @@ -15676,7 +15676,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -15833,7 +15833,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -15856,7 +15856,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -16419,7 +16419,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16431,7 +16431,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_BUBBLE), LEVEL_UP_MOVE( 6, MOVE_ACID_SPRAY), LEVEL_UP_MOVE(11, MOVE_ACID_ARMOR), @@ -16595,7 +16595,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 5, MOVE_POWDER_SNOW), @@ -16885,7 +16885,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SMASH), LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 6, MOVE_LEAFAGE), @@ -19797,7 +19797,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -19814,7 +19814,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -20142,7 +20142,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -20164,7 +20164,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -20313,7 +20313,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20349,7 +20349,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), @@ -20600,7 +20600,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -20619,7 +20619,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/level_up_learnsets/gen_9.h b/src/data/pokemon/level_up_learnsets/gen_9.h index de35a1d36d..9f6985bc9a 100644 --- a/src/data/pokemon/level_up_learnsets/gen_9.h +++ b/src/data/pokemon/level_up_learnsets/gen_9.h @@ -354,7 +354,7 @@ static const struct LevelUpMove sRaticateLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRattataAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 4, MOVE_QUICK_ATTACK), @@ -371,7 +371,7 @@ static const struct LevelUpMove sRattataAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRaticateAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaticateAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SCARY_FACE), LEVEL_UP_MOVE( 1, MOVE_SWORDS_DANCE), @@ -545,7 +545,7 @@ static const struct LevelUpMove sRaichuLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sRaichuAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sRaichuAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHIC), LEVEL_UP_MOVE( 1, MOVE_NUZZLE), LEVEL_UP_MOVE( 1, MOVE_ELECTRO_BALL), @@ -617,7 +617,7 @@ static const struct LevelUpMove sSandslashLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandshrewAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 3, MOVE_MIST), @@ -638,7 +638,7 @@ static const struct LevelUpMove sSandshrewAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSandslashAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sSandslashAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_SPEAR), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_MIST), @@ -881,7 +881,7 @@ static const struct LevelUpMove sNinetalesLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sVulpixAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 4, MOVE_DISABLE), @@ -900,7 +900,7 @@ static const struct LevelUpMove sVulpixAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sNinetalesAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sNinetalesAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DAZZLING_GLEAM), LEVEL_UP_MOVE( 1, MOVE_DISABLE), LEVEL_UP_MOVE( 1, MOVE_MIST), @@ -1243,7 +1243,7 @@ static const struct LevelUpMove sDugtrioLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDiglettAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_METAL_CLAW), LEVEL_UP_MOVE( 4, MOVE_GROWL), @@ -1260,7 +1260,7 @@ static const struct LevelUpMove sDiglettAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDugtrioAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sDugtrioAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SAND_TOMB), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -1320,7 +1320,7 @@ static const struct LevelUpMove sPersianLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 4, MOVE_FEINT), @@ -1337,7 +1337,7 @@ static const struct LevelUpMove sMeowthAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sPersianAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_POWER_GEM), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -1359,7 +1359,7 @@ static const struct LevelUpMove sPersianAlolanLevelUpLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const struct LevelUpMove sMeowthGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMeowthGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), LEVEL_UP_MOVE( 4, MOVE_HONE_CLAWS), @@ -1549,7 +1549,7 @@ static const struct LevelUpMove sArcanineLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGrowlitheHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_EMBER), LEVEL_UP_MOVE( 4, MOVE_HOWL), @@ -1568,7 +1568,7 @@ static const struct LevelUpMove sGrowlitheHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sArcanineHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sArcanineHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EXTREME_SPEED), LEVEL_UP_MOVE( 1, MOVE_FLAME_WHEEL), LEVEL_UP_MOVE( 1, MOVE_FIRE_FANG), @@ -1916,7 +1916,7 @@ static const struct LevelUpMove sGolemLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGeodudeAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 4, MOVE_CHARGE), @@ -1936,7 +1936,7 @@ static const struct LevelUpMove sGeodudeAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGravelerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -1956,7 +1956,7 @@ static const struct LevelUpMove sGravelerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGolemAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGolemAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_DEFENSE_CURL), LEVEL_UP_MOVE( 1, MOVE_CHARGE), @@ -2019,7 +2019,7 @@ static const struct LevelUpMove sRapidashLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sPonytaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), LEVEL_UP_MOVE( 5, MOVE_TAIL_WHIP), @@ -2036,7 +2036,7 @@ static const struct LevelUpMove sPonytaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sRapidashGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sRapidashGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_PSYCHO_CUT), LEVEL_UP_MOVE( 1, MOVE_MEGAHORN), @@ -2132,7 +2132,7 @@ static const struct LevelUpMove sSlowkingLevelUpLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowpokeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_CURSE), LEVEL_UP_MOVE( 3, MOVE_GROWL), @@ -2153,7 +2153,7 @@ static const struct LevelUpMove sSlowpokeGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowbroGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELL_SIDE_ARM), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -2177,7 +2177,7 @@ static const struct LevelUpMove sSlowbroGalarianLevelUpLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const struct LevelUpMove sSlowkingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sSlowkingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_EERIE_SPELL), LEVEL_UP_MOVE( 1, MOVE_TOXIC), LEVEL_UP_MOVE( 1, MOVE_FUTURE_SIGHT), @@ -2296,7 +2296,7 @@ static const struct LevelUpMove sFarfetchdLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sFarfetchdGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sFarfetchdGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_SAND_ATTACK), LEVEL_UP_MOVE( 5, MOVE_LEER), @@ -2463,7 +2463,7 @@ static const struct LevelUpMove sMukLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sGrimerAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_POISON_GAS), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -2483,7 +2483,7 @@ static const struct LevelUpMove sGrimerAlolanLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMukAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMukAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POUND), LEVEL_UP_MOVE( 1, MOVE_BITE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), @@ -2785,7 +2785,7 @@ static const struct LevelUpMove sElectrodeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sVoltorbHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_CHARGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_THUNDER_SHOCK), @@ -2806,7 +2806,7 @@ static const struct LevelUpMove sVoltorbHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sElectrodeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sElectrodeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_CHLOROBLAST), LEVEL_UP_MOVE( 1, MOVE_CHARGE), LEVEL_UP_MOVE( 1, MOVE_TACKLE), @@ -2872,7 +2872,7 @@ static const struct LevelUpMove sExeggutorLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sExeggutorAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sExeggutorAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DRAGON_HAMMER), LEVEL_UP_MOVE( 1, MOVE_GROWTH), LEVEL_UP_MOVE( 1, MOVE_WOOD_HAMMER), @@ -2935,7 +2935,7 @@ static const struct LevelUpMove sMarowakLevelUpLearnset[] = { }; #if P_ALOLAN_FORMS -static const struct LevelUpMove sMarowakAlolanLevelUpLearnset[] = { +static const struct LevelUpMove sMarowakAlolaLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHADOW_BONE), LEVEL_UP_MOVE( 1, MOVE_FALSE_SWIPE), LEVEL_UP_MOVE( 1, MOVE_HEADBUTT), @@ -3120,7 +3120,7 @@ static const struct LevelUpMove sWeezingLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sWeezingGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sWeezingGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_DOUBLE_HIT), LEVEL_UP_MOVE( 1, MOVE_STRANGE_STEAM), LEVEL_UP_MOVE( 1, MOVE_DEFOG), @@ -3524,7 +3524,7 @@ static const struct LevelUpMove sMrMimeLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMrMimeGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMrMimeGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_COPYCAT), LEVEL_UP_MOVE( 1, MOVE_ENCORE), LEVEL_UP_MOVE( 1, MOVE_ROLE_PLAY), @@ -3858,7 +3858,7 @@ static const struct LevelUpMove sTaurosLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaCombatLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3876,7 +3876,7 @@ static const struct LevelUpMove sTaurosPaldeanCombatBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaBlazeLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -3894,7 +3894,7 @@ static const struct LevelUpMove sTaurosPaldeanBlazeBreedLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sTaurosPaldeanAquaBreedLevelUpLearnset[] = { +static const struct LevelUpMove sTaurosPaldeaAquaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_WORK_UP), @@ -4466,7 +4466,7 @@ static const struct LevelUpMove sArticunoLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sArticunoGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sArticunoGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 5, MOVE_CONFUSION), LEVEL_UP_MOVE(10, MOVE_REFLECT), @@ -4509,7 +4509,7 @@ static const struct LevelUpMove sZapdosLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZapdosGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZapdosGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_PECK), LEVEL_UP_MOVE( 1, MOVE_FOCUS_ENERGY), LEVEL_UP_MOVE( 5, MOVE_ROCK_SMASH), @@ -4553,7 +4553,7 @@ static const struct LevelUpMove sMoltresLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sMoltresGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sMoltresGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GUST), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 5, MOVE_PAYBACK), @@ -4798,7 +4798,7 @@ static const struct LevelUpMove sTyphlosionLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sTyphlosionHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sTyphlosionHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_INFERNAL_PARADE), LEVEL_UP_MOVE( 1, MOVE_GYRO_BALL), LEVEL_UP_MOVE( 1, MOVE_ERUPTION), @@ -5583,7 +5583,7 @@ static const struct LevelUpMove sQuagsireLevelUpLearnset[] = { }; #if P_PALDEAN_FORMS -static const struct LevelUpMove sWooperPaldeanLevelUpLearnset[] = { +static const struct LevelUpMove sWooperPaldeaLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 1, MOVE_MUD_SHOT), LEVEL_UP_MOVE( 4, MOVE_TACKLE), @@ -5962,7 +5962,7 @@ static const struct LevelUpMove sQwilfishLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sQwilfishHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sQwilfishHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_POISON_STING), LEVEL_UP_MOVE( 4, MOVE_HARDEN), @@ -6091,7 +6091,7 @@ static const struct LevelUpMove sWeavileLevelUpLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const struct LevelUpMove sSneaselHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSneaselHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 1, MOVE_ROCK_SMASH), @@ -6335,7 +6335,7 @@ static const struct LevelUpMove sCorsolaLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sCorsolaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sCorsolaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_HARDEN), LEVEL_UP_MOVE( 5, MOVE_ASTONISH), @@ -7131,7 +7131,7 @@ static const struct LevelUpMove sLinooneLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sZigzagoonGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 3, MOVE_SAND_ATTACK), @@ -7149,7 +7149,7 @@ static const struct LevelUpMove sZigzagoonGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sLinooneGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sLinooneGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_NIGHT_SLASH), LEVEL_UP_MOVE( 1, MOVE_SWITCHEROO), @@ -10314,7 +10314,7 @@ static const struct LevelUpMove sWormadamPlantCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamSandyLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -10337,7 +10337,7 @@ static const struct LevelUpMove sWormadamSandyCloakLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sWormadamTrashCloakLevelUpLearnset[] = { +static const struct LevelUpMove sWormadamTrashLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_QUIVER_DANCE), LEVEL_UP_MOVE( 1, MOVE_METAL_BURST), @@ -11663,7 +11663,7 @@ static const struct LevelUpMove sSamurottLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSamurottHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSamurottHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_CEASELESS_EDGE), LEVEL_UP_MOVE( 1, MOVE_SLASH), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -12555,7 +12555,7 @@ static const struct LevelUpMove sLilligantLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sLilligantHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sLilligantHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_VICTORY_DANCE), LEVEL_UP_MOVE( 1, MOVE_TEETER_DANCE), LEVEL_UP_MOVE( 1, MOVE_SOLAR_BLADE), @@ -12750,7 +12750,7 @@ static const struct LevelUpMove sDarmanitanLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarumakaGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 4, MOVE_TAUNT), @@ -12768,7 +12768,7 @@ static const struct LevelUpMove sDarumakaGalarianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sDarmanitanGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sDarmanitanGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), @@ -12960,7 +12960,7 @@ static const struct LevelUpMove sCofagrigusLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sYamaskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sYamaskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTONISH), LEVEL_UP_MOVE( 1, MOVE_PROTECT), LEVEL_UP_MOVE( 4, MOVE_HAZE), @@ -13178,7 +13178,7 @@ static const struct LevelUpMove sZoroarkLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoruaHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), LEVEL_UP_MOVE( 4, MOVE_TORMENT), @@ -13195,7 +13195,7 @@ static const struct LevelUpMove sZoruaHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sZoroarkHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sZoroarkHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHADOW_CLAW), LEVEL_UP_MOVE( 1, MOVE_SCRATCH), LEVEL_UP_MOVE( 1, MOVE_LEER), @@ -14149,7 +14149,7 @@ static const struct LevelUpMove sStunfiskLevelUpLearnset[] = { }; #if P_GALARIAN_FORMS -static const struct LevelUpMove sStunfiskGalarianLevelUpLearnset[] = { +static const struct LevelUpMove sStunfiskGalarLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MUD_SLAP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -14394,7 +14394,7 @@ static const struct LevelUpMove sBraviaryLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sBraviaryHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sBraviaryHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ESPER_WING), LEVEL_UP_MOVE( 1, MOVE_HONE_CLAWS), LEVEL_UP_MOVE( 1, MOVE_SKY_ATTACK), @@ -15301,7 +15301,7 @@ static const struct LevelUpMove sFloetteLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sFloetteEternalFlowerLevelUpLearnset[] = { +static const struct LevelUpMove sFloetteEternalLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_VINE_WHIP), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_FAIRY_WIND), @@ -15454,7 +15454,7 @@ static const struct LevelUpMove sEspurrLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MEAN_LOOK), LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), @@ -15477,7 +15477,7 @@ static const struct LevelUpMove sMeowsticMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sMeowsticFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sMeowsticFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_MAGICAL_LEAF), LEVEL_UP_MOVE( 1, MOVE_DISARMING_VOICE), LEVEL_UP_MOVE( 1, MOVE_FAKE_OUT), @@ -16038,7 +16038,7 @@ static const struct LevelUpMove sGoodraLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sSliggooHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SHELTER), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_WATER_GUN), @@ -16056,7 +16056,7 @@ static const struct LevelUpMove sSliggooHisuianLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sGoodraHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sGoodraHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_IRON_TAIL), LEVEL_UP_MOVE( 1, MOVE_SHELTER), LEVEL_UP_MOVE( 1, MOVE_ACID_SPRAY), @@ -16228,7 +16228,7 @@ static const struct LevelUpMove sAvaluggLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sAvaluggHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sAvaluggHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_ROCK_SLIDE), LEVEL_UP_MOVE( 1, MOVE_POWDER_SNOW), LEVEL_UP_MOVE( 1, MOVE_RAPID_SPIN), @@ -16521,7 +16521,7 @@ static const struct LevelUpMove sDecidueyeLevelUpLearnset[] = { }; #if P_HISUIAN_FORMS -static const struct LevelUpMove sDecidueyeHisuianLevelUpLearnset[] = { +static const struct LevelUpMove sDecidueyeHisuiLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_TRIPLE_ARROWS), LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_GROWL), @@ -19368,7 +19368,7 @@ static const struct LevelUpMove sEiscueLevelUpLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_ENCORE), @@ -19385,7 +19385,7 @@ static const struct LevelUpMove sIndeedeeMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sIndeedeeFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sIndeedeeFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_STORED_POWER), LEVEL_UP_MOVE( 1, MOVE_PLAY_NICE), LEVEL_UP_MOVE( 5, MOVE_BATON_PASS), @@ -19707,7 +19707,7 @@ static const struct LevelUpMove sKubfuLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuSingleStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_WICKED_BLOW), LEVEL_UP_MOVE( 1, MOVE_ENDURE), LEVEL_UP_MOVE( 1, MOVE_SUCKER_PUNCH), @@ -19728,7 +19728,7 @@ static const struct LevelUpMove sUrshifuSingleStrikeStyleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sUrshifuRapidStrikeStyleLevelUpLearnset[] = { +static const struct LevelUpMove sUrshifuRapidStrikeLevelUpLearnset[] = { LEVEL_UP_MOVE( 0, MOVE_SURGING_STRIKES), LEVEL_UP_MOVE( 1, MOVE_ENDURE), LEVEL_UP_MOVE( 1, MOVE_AQUA_JET), @@ -19876,7 +19876,7 @@ static const struct LevelUpMove sCalyrexLevelUpLearnset[] = { }; #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexIceLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_GLACIAL_LANCE), LEVEL_UP_MOVE( 1, MOVE_ICICLE_CRASH), LEVEL_UP_MOVE( 1, MOVE_AVALANCHE), @@ -19913,7 +19913,7 @@ static const struct LevelUpMove sCalyrexIceRiderLevelUpLearnset[] = { #endif //P_FUSION_FORMS #if P_FUSION_FORMS -static const struct LevelUpMove sCalyrexShadowRiderLevelUpLearnset[] = { +static const struct LevelUpMove sCalyrexShadowLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_ASTRAL_BARRAGE), LEVEL_UP_MOVE( 1, MOVE_HEX), LEVEL_UP_MOVE( 1, MOVE_NASTY_PLOT), @@ -20173,7 +20173,7 @@ static const struct LevelUpMove sLechonkLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneMLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 5, MOVE_DISARMING_VOICE), @@ -20192,7 +20192,7 @@ static const struct LevelUpMove sOinkologneMaleLevelUpLearnset[] = { LEVEL_UP_END }; -static const struct LevelUpMove sOinkologneFemaleLevelUpLearnset[] = { +static const struct LevelUpMove sOinkologneFLevelUpLearnset[] = { LEVEL_UP_MOVE( 1, MOVE_TACKLE), LEVEL_UP_MOVE( 1, MOVE_TAIL_WHIP), LEVEL_UP_MOVE( 3, MOVE_DISARMING_VOICE), diff --git a/src/data/pokemon/pokedex_orders.h b/src/data/pokemon/pokedex_orders.h index 9cbca9ba63..1b0b32c63c 100644 --- a/src/data/pokemon/pokedex_orders.h +++ b/src/data/pokemon/pokedex_orders.h @@ -1058,11 +1058,11 @@ const u16 gPokedexOrder_Weight[] = // 0.0 - 21.8 lbs / 0.0 - 9.9 kg NATIONAL_DEX_GASTLY, NATIONAL_DEX_HAUNTER, - NATIONAL_DEX_FLABEBE,//_RED_FLOWER, - //NATIONAL_DEX_FLABEBE_YELLOW_FLOWER, - //NATIONAL_DEX_FLABEBE_ORANGE_FLOWER, - //NATIONAL_DEX_FLABEBE_BLUE_FLOWER, - //NATIONAL_DEX_FLABEBE_WHITE_FLOWER, + NATIONAL_DEX_FLABEBE,//_RED, + //NATIONAL_DEX_FLABEBE_YELLOW, + //NATIONAL_DEX_FLABEBE_ORANGE, + //NATIONAL_DEX_FLABEBE_BLUE, + //NATIONAL_DEX_FLABEBE_WHITE, NATIONAL_DEX_COSMOG, NATIONAL_DEX_KARTANA, //NATIONAL_DEX_GIMMIGHOUL_ROAMING, @@ -1114,14 +1114,14 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_CASTFORM_RAINY, //NATIONAL_DEX_CASTFORM_SNOWY, // 2.0 lbs / 0.9 kg - NATIONAL_DEX_FLOETTE,//_RED_FLOWER, - //NATIONAL_DEX_FLOETTE_YELLOW_FLOWER, - //NATIONAL_DEX_FLOETTE_ORANGE_FLOWER, - //NATIONAL_DEX_FLOETTE_BLUE_FLOWER, - //NATIONAL_DEX_FLOETTE_WHITE_FLOWER, - //NATIONAL_DEX_FLOETTE_ETERNAL_FLOWER, + NATIONAL_DEX_FLOETTE,//_RED, + //NATIONAL_DEX_FLOETTE_YELLOW, + //NATIONAL_DEX_FLOETTE_ORANGE, + //NATIONAL_DEX_FLOETTE_BLUE, + //NATIONAL_DEX_FLOETTE_WHITE, + //NATIONAL_DEX_FLOETTE_ETERNAL, // 2.2 lbs / 1.0 kg - //NATIONAL_DEX_DIGLETT_ALOLAN, + //NATIONAL_DEX_DIGLETT_ALOLA, NATIONAL_DEX_KOFFING, NATIONAL_DEX_IGGLYBUFF, NATIONAL_DEX_SKIPLOOM, @@ -1191,7 +1191,7 @@ const u16 gPokedexOrder_Weight[] = // 5.1 lbs / 2.3 kg NATIONAL_DEX_TAILLOW, NATIONAL_DEX_SHUPPET, - NATIONAL_DEX_MAUSHOLD,//_FAMILY_OF_THREE, + NATIONAL_DEX_MAUSHOLD,//_THREE, // 5.3 lbs / 2.4 kg NATIONAL_DEX_SQUAWKABILLY,//_GREEN_PLUMAGE, //NATIONAL_DEX_SQUAWKABILLY_BLUE_PLUMAGE, @@ -1210,7 +1210,7 @@ const u16 gPokedexOrder_Weight[] = // 6.2 lbs / 2.8 kg NATIONAL_DEX_GOOMY, //NATIONAL_DEX_MIMIKYU_TOTEM_SIZED, - //NATIONAL_DEX_MAUSHOLD_FAMILY_OF_FOUR, + //NATIONAL_DEX_MAUSHOLD_FOUR, // 6.4 lbs / 2.9 kg NATIONAL_DEX_CATERPIE, // 6.6 lbs / 3.0 kg @@ -1233,7 +1233,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_TOGEDEMARU, // 7.5 lbs / 3.4 kg NATIONAL_DEX_BURMY,//_PLANT_CLOAK, - //NATIONAL_DEX_BURMY_SANDY_CLOAK, + //NATIONAL_DEX_BURMY_SANDY, //NATIONAL_DEX_BURMY_TRASH_CLOAK, NATIONAL_DEX_ORICORIO,//_BAILE, //NATIONAL_DEX_ORICORIO_POM_POM, @@ -1252,7 +1252,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_MASQUERAIN, NATIONAL_DEX_WATTREL, // 8.4 lbs / 3.8 kg - //NATIONAL_DEX_RATTATA_ALOLAN, + //NATIONAL_DEX_RATTATA_ALOLA, NATIONAL_DEX_SNOM, // 8.6 lbs / 3.9 kg NATIONAL_DEX_QWILFISH, @@ -1275,7 +1275,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_SPRIGATITO, // 9.3 lbs / 4.2 kg NATIONAL_DEX_MEOWTH, - //NATIONAL_DEX_MEOWTH_ALOLAN, + //NATIONAL_DEX_MEOWTH_ALOLA, NATIONAL_DEX_PLUSLE, NATIONAL_DEX_MINUN, // 9.5 lbs / 4.3 kg @@ -1374,7 +1374,7 @@ const u16 gPokedexOrder_Weight[] = //NATIONAL_DEX_PIKACHU_UNOVA, //NATIONAL_DEX_PIKACHU_KALOS, //NATIONAL_DEX_PIKACHU_ALOLA, - //NATIONAL_DEX_PIKACHU_PARTNER_CAP, + //NATIONAL_DEX_PIKACHU_PARTNER, //NATIONAL_DEX_PIKACHU_WORLD, NATIONAL_DEX_MAGNEMITE, NATIONAL_DEX_SENTRET, @@ -1390,7 +1390,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_CHIMCHAR, // 13.9 lbs / 6.3 kg NATIONAL_DEX_SHELLOS,//_WEST_SEA, - //NATIONAL_DEX_SHELLOS_EAST_SEA, + //NATIONAL_DEX_SHELLOS_EAST, // 14.1 lbs / 6.4 kg NATIONAL_DEX_WEEPINBELL, NATIONAL_DEX_CHIKORITA, @@ -1400,8 +1400,8 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_EEVEE, NATIONAL_DEX_SWINUB, NATIONAL_DEX_WORMADAM,//_PLANT_CLOAK, - //NATIONAL_DEX_WORMADAM_SANDY_CLOAK, - //NATIONAL_DEX_WORMADAM_TRASH_CLOAK, + //NATIONAL_DEX_WORMADAM_SANDY, + //NATIONAL_DEX_WORMADAM_TRASH, NATIONAL_DEX_MELOETTA,//_ARIA, //NATIONAL_DEX_MELOETTA_PIROUETTE, NATIONAL_DEX_PAWMO, @@ -1478,7 +1478,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_DRILBUR, NATIONAL_DEX_CUBCHOO, NATIONAL_DEX_MEOWSTIC,//_MALE, - //NATIONAL_DEX_MEOWSTIC_FEMALE, + //NATIONAL_DEX_MEOWSTIC_F, NATIONAL_DEX_CHEWTLE, // 19.0 lbs / 8.6 kg NATIONAL_DEX_GLOOM, @@ -1519,17 +1519,17 @@ const u16 gPokedexOrder_Weight[] = // 21.8 lbs / 9.9 kg NATIONAL_DEX_METAPOD, NATIONAL_DEX_VULPIX, - //NATIONAL_DEX_VULPIX_ALOLAN, + //NATIONAL_DEX_VULPIX_ALOLA, NATIONAL_DEX_TEPIG, // 22.0 lbs / 10.0 kg NATIONAL_DEX_KAKUNA, NATIONAL_DEX_MAGIKARP, NATIONAL_DEX_SILCOON, - NATIONAL_DEX_FLORGES,//_RED_FLOWER, - //NATIONAL_DEX_FLORGES_YELLOW_FLOWER, - //NATIONAL_DEX_FLORGES_ORANGE_FLOWER, - //NATIONAL_DEX_FLORGES_BLUE_FLOWER, - //NATIONAL_DEX_FLORGES_WHITE_FLOWER, + NATIONAL_DEX_FLORGES,//_RED, + //NATIONAL_DEX_FLORGES_YELLOW, + //NATIONAL_DEX_FLORGES_ORANGE, + //NATIONAL_DEX_FLORGES_BLUE, + //NATIONAL_DEX_FLORGES_WHITE, // 22.3 lbs / 10.1 kg NATIONAL_DEX_PURRLOIN, // 22.5 lbs / 10.2 kg @@ -1756,7 +1756,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_SWELLOW, // 43.9 lbs / 19.9 kg NATIONAL_DEX_NINETALES, - //NATIONAL_DEX_NINETALES_ALOLAN, + //NATIONAL_DEX_NINETALES_ALOLA, NATIONAL_DEX_KOMALA, NATIONAL_DEX_THIEVUL, // 44.1 lbs / 20.0 kg @@ -1771,7 +1771,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_KIRLIA, NATIONAL_DEX_RIOLU, // 44.8 lbs / 20.3 kg - //NATIONAL_DEX_GEODUDE_ALOLAN, + //NATIONAL_DEX_GEODUDE_ALOLA, NATIONAL_DEX_AMBIPOM, // 45.2 lbs / 20.5 kg NATIONAL_DEX_SHUCKLE, @@ -1788,7 +1788,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_TYROGUE, NATIONAL_DEX_KLINK, NATIONAL_DEX_HELIOLISK, - //NATIONAL_DEX_RAICHU_ALOLAN, + //NATIONAL_DEX_RAICHU_ALOLA, NATIONAL_DEX_BRUTE_BONNET, // 46.7 lbs / 21.2 kg NATIONAL_DEX_HOOTHOOT, @@ -1863,7 +1863,7 @@ const u16 gPokedexOrder_Weight[] = // 56.2 lbs / 25.5 kg NATIONAL_DEX_KRICKETUNE, NATIONAL_DEX_LEAFEON, - //NATIONAL_DEX_RATICATE_ALOLAN, + //NATIONAL_DEX_RATICATE_ALOLA, // 57.1 lbs / 25.5 kg NATIONAL_DEX_GLACEON, // 57.3 lbs / 26.0 kg @@ -1932,7 +1932,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_BLITZLE, // 65.9 lbs / 29.9 kg NATIONAL_DEX_GASTRODON,//_WEST_SEA, - //NATIONAL_DEX_GASTRODON_EAST_SEA, + //NATIONAL_DEX_GASTRODON_EAST, // 66.1 lbs / 30.0 kg NATIONAL_DEX_PIDGEOTTO, NATIONAL_DEX_RAICHU, @@ -1993,7 +1993,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_FRILLISH, NATIONAL_DEX_DURANT, NATIONAL_DEX_CINDERACE, - //NATIONAL_DEX_PERSIAN_ALOLAN, + //NATIONAL_DEX_PERSIAN_ALOLA, NATIONAL_DEX_TOEDSCOOL, // 73.4 lbs / 33.3 kg NATIONAL_DEX_DUGTRIO, @@ -2009,7 +2009,7 @@ const u16 gPokedexOrder_Weight[] = // 74.7 lbs / 33.9 kg NATIONAL_DEX_POLITOED, // 75.0 lbs / 34.0 kg - //NATIONAL_DEX_MAROWAK_ALOLAN, + //NATIONAL_DEX_MAROWAK_ALOLA, NATIONAL_DEX_WEAVILE, NATIONAL_DEX_PORYGON_Z, NATIONAL_DEX_BOLTUND, @@ -2076,7 +2076,7 @@ const u16 gPokedexOrder_Weight[] = // 87.7 lbs / 39.8 kg NATIONAL_DEX_OGERPON, // 88.2 lbs / 40.0 kg - //NATIONAL_DEX_SANDSHREW_ALOLAN, + //NATIONAL_DEX_SANDSHREW_ALOLA, NATIONAL_DEX_CLEFABLE, NATIONAL_DEX_LATIAS, NATIONAL_DEX_GURDURR, @@ -2118,7 +2118,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_GIRAFARIG, // 92.6 lbs / 42.0 kg //NATIONAL_DEX_FARFETCHD_GALARIAN, - //NATIONAL_DEX_GRIMER_ALOLAN, + //NATIONAL_DEX_GRIMER_ALOLA, NATIONAL_DEX_LUXRAY, NATIONAL_DEX_FROSMOTH, // 92.8 lbs / 42.1 kg @@ -2210,7 +2210,7 @@ const u16 gPokedexOrder_Weight[] = // 113.5 lbs / 51.5 kg NATIONAL_DEX_YANMEGA, // 114.6 lbs / 52.0 kg - //NATIONAL_DEX_MUK_ALOLAN, + //NATIONAL_DEX_MUK_ALOLA, NATIONAL_DEX_BLAZIKEN, //NATIONAL_DEX_LATIAS_MEGA, NATIONAL_DEX_GALLADE, @@ -2225,7 +2225,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_AEGISLASH,//_SHIELD, //NATIONAL_DEX_AEGISLASH_BLADE, // 118.2 lbs / 53.6 kg - //NATIONAL_DEX_CALYREX_SHADOW_RIDER, + //NATIONAL_DEX_CALYREX_SHADOW, // 119.0 lbs / 54.0 kg NATIONAL_DEX_POLIWRATH, NATIONAL_DEX_HERACROSS, @@ -2233,7 +2233,7 @@ const u16 gPokedexOrder_Weight[] = // 120.2 lbs / 54.5 kg NATIONAL_DEX_MR_MIME, // 121.3 lbs / 55.0 kg - //NATIONAL_DEX_SANDSLASH_ALOLAN, + //NATIONAL_DEX_SANDSLASH_ALOLA, NATIONAL_DEX_GOLBAT, NATIONAL_DEX_TENTACRUEL, NATIONAL_DEX_PINSIR, @@ -2343,7 +2343,7 @@ const u16 gPokedexOrder_Weight[] = // 146.8 lbs / 66.6 kg NATIONAL_DEX_ELECTRODE, NATIONAL_DEX_RUNERIGUS, - //NATIONAL_DEX_DUGTRIO_ALOLAN, + //NATIONAL_DEX_DUGTRIO_ALOLA, // 149.9 lbs / 68.0 kg NATIONAL_DEX_MAGMORTAR, NATIONAL_DEX_LANDORUS,//_INCARNATE, @@ -2512,7 +2512,7 @@ const u16 gPokedexOrder_Weight[] = // 214.7 lbs / 97.4 kg //NATIONAL_DEX_PALAFIN_HERO, // 216.1 lbs / 98.0 kg - //NATIONAL_DEX_MAROWAK_ALOLAN_TOTEM_SIZED, + //NATIONAL_DEX_MAROWAK_ALOLA_TOTEM_SIZED, // 219.4 lbs / 99.5 kg NATIONAL_DEX_BERGMITE, // 220.5 lbs / 100.0 kg @@ -2554,9 +2554,9 @@ const u16 gPokedexOrder_Weight[] = // 231.5 lbs / 105.0 kg NATIONAL_DEX_GRAVELER, NATIONAL_DEX_MUNCHLAX, - //NATIONAL_DEX_RATICATE_ALOLAN_TOTEM_SIZED, - NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE_STYLE, - //NATIONAL_DEX_URSHIFU_RAPID_STRIKE_STYLE, + //NATIONAL_DEX_RATICATE_ALOLA_TOTEM_SIZED, + NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE, + //NATIONAL_DEX_URSHIFU_RAPID_STRIKE, NATIONAL_DEX_NACLSTACK, // 232.6 lbs / 105.5 kg NATIONAL_DEX_HAXORUS, @@ -2569,11 +2569,11 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_SPIRITOMB, NATIONAL_DEX_GOLISOPOD, // 242.5 lbs / 110.0 kg - //NATIONAL_DEX_GRAVELER_ALOLAN, + //NATIONAL_DEX_GRAVELER_ALOLA, //NATIONAL_DEX_TAUROS_PALDEAN_AQUA_BREED, NATIONAL_DEX_FERROTHORN, NATIONAL_DEX_MUDBRAY, - NATIONAL_DEX_ZACIAN,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_ZACIAN,//_HERO, NATIONAL_DEX_BASCULEGION,//_MALE, //NATIONAL_DEX_BASCULEGION_FEMALE, // 243.6 lbs / 110.5 kg @@ -2732,7 +2732,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_ONIX, NATIONAL_DEX_DRAGONITE, NATIONAL_DEX_DHELMISE, - NATIONAL_DEX_ZAMAZENTA,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_ZAMAZENTA,//_HERO, NATIONAL_DEX_BAXCALIBUR, // 467.4 lbs / 212.0 kg NATIONAL_DEX_TURTONATOR, @@ -2805,7 +2805,7 @@ const u16 gPokedexOrder_Weight[] = // 684.5 lbs / 310.5 kg NATIONAL_DEX_COALOSSAL, // 696.7 lbs / 316.0 kg - //NATIONAL_DEX_GOLEM_ALOLAN, + //NATIONAL_DEX_GOLEM_ALOLA, // 705.4 lbs / 320.0 kg NATIONAL_DEX_ARCEUS,//_NORMAL, //NATIONAL_DEX_ARCEUS_FIGHTING, @@ -2869,7 +2869,7 @@ const u16 gPokedexOrder_Weight[] = // 881.8 lbs / 400.0 kg NATIONAL_DEX_STEELIX, // 916.2 lbs / 415.6 kg - //NATIONAL_DEX_EXEGGUTOR_ALOLAN, + //NATIONAL_DEX_EXEGGUTOR_ALOLA, // 925.9 lbs / 420.0 kg NATIONAL_DEX_REGIGIGAS, // 948.0 lbs / 430.0 kg @@ -2913,7 +2913,7 @@ const u16 gPokedexOrder_Weight[] = NATIONAL_DEX_MELMETAL, NATIONAL_DEX_GLASTRIER, // 1783.8 lbs / 809.1 kg - //NATIONAL_DEX_CALYREX_ICE_RIDER, + //NATIONAL_DEX_CALYREX_ICE, // 1807.8 lbs / 820.0 kg NATIONAL_DEX_STAKATAKA, // 1871.0 lbs / 848.7 kg @@ -2938,11 +2938,11 @@ const u16 gPokedexOrder_Height[] = { // 0'04" / 0.1m NATIONAL_DEX_JOLTIK, - NATIONAL_DEX_FLABEBE,//_RED_FLOWER, - //NATIONAL_DEX_FLABEBE_YELLOW_FLOWER, - //NATIONAL_DEX_FLABEBE_ORANGE_FLOWER, - //NATIONAL_DEX_FLABEBE_BLUE_FLOWER, - //NATIONAL_DEX_FLABEBE_WHITE_FLOWER, + NATIONAL_DEX_FLABEBE,//_RED, + //NATIONAL_DEX_FLABEBE_YELLOW, + //NATIONAL_DEX_FLABEBE_ORANGE, + //NATIONAL_DEX_FLABEBE_BLUE, + //NATIONAL_DEX_FLABEBE_WHITE, NATIONAL_DEX_CUTIEFLY, NATIONAL_DEX_COMFEY, NATIONAL_DEX_COSMOEM, @@ -2952,23 +2952,23 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_POLTCHAGEIST, // 0'08" / 0.2m NATIONAL_DEX_DIGLETT, - //NATIONAL_DEX_DIGLETT_ALOLAN, + //NATIONAL_DEX_DIGLETT_ALOLA, NATIONAL_DEX_NATU, NATIONAL_DEX_AZURILL, NATIONAL_DEX_BUDEW, NATIONAL_DEX_BURMY,//_PLANT_CLOAK, - //NATIONAL_DEX_BURMY_SANDY_CLOAK, + //NATIONAL_DEX_BURMY_SANDY, //NATIONAL_DEX_BURMY_TRASH_CLOAK, NATIONAL_DEX_CHINGLING, NATIONAL_DEX_SHAYMIN,//_LAND, NATIONAL_DEX_FOONGUS, NATIONAL_DEX_TYNAMO, - NATIONAL_DEX_FLOETTE,//_RED_FLOWER, - //NATIONAL_DEX_FLOETTE_YELLOW_FLOWER, - //NATIONAL_DEX_FLOETTE_ORANGE_FLOWER, - //NATIONAL_DEX_FLOETTE_BLUE_FLOWER, - //NATIONAL_DEX_FLOETTE_WHITE_FLOWER, - //NATIONAL_DEX_FLOETTE_ETERNAL_FLOWER, + NATIONAL_DEX_FLOETTE,//_RED, + //NATIONAL_DEX_FLOETTE_YELLOW, + //NATIONAL_DEX_FLOETTE_ORANGE, + //NATIONAL_DEX_FLOETTE_BLUE, + //NATIONAL_DEX_FLOETTE_WHITE, + //NATIONAL_DEX_FLOETTE_ETERNAL, NATIONAL_DEX_SPRITZEE, NATIONAL_DEX_DEDENNE, NATIONAL_DEX_KLEFKI, @@ -2994,7 +2994,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_WEEDLE, NATIONAL_DEX_PIDGEY, NATIONAL_DEX_RATTATA, - //NATIONAL_DEX_RATTATA_ALOLAN, + //NATIONAL_DEX_RATTATA_ALOLA, NATIONAL_DEX_SPEAROW, NATIONAL_DEX_PARAS, NATIONAL_DEX_MAGNEMITE, @@ -3018,7 +3018,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_KRICKETOT, NATIONAL_DEX_COMBEE, NATIONAL_DEX_SHELLOS,//_WEST_SEA, - //NATIONAL_DEX_SHELLOS_EAST_SEA, + //NATIONAL_DEX_SHELLOS_EAST, NATIONAL_DEX_ROTOM, NATIONAL_DEX_UXIE, NATIONAL_DEX_MESPRIT, @@ -3066,10 +3066,10 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_PIKACHU, NATIONAL_DEX_NIDORAN_F, NATIONAL_DEX_MEOWTH, - //NATIONAL_DEX_MEOWTH_ALOLAN, + //NATIONAL_DEX_MEOWTH_ALOLA, //NATIONAL_DEX_MEOWTH_GALARIAN, NATIONAL_DEX_GEODUDE, - //NATIONAL_DEX_GEODUDE_ALOLAN, + //NATIONAL_DEX_GEODUDE_ALOLA, NATIONAL_DEX_KRABBY, NATIONAL_DEX_EXEGGCUTE, NATIONAL_DEX_CUBONE, @@ -3225,8 +3225,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SHINX, NATIONAL_DEX_SHIELDON, NATIONAL_DEX_WORMADAM,//_PLANT_CLOAK, - //NATIONAL_DEX_WORMADAM_SANDY_CLOAK, - //NATIONAL_DEX_WORMADAM_TRASH_CLOAK, + //NATIONAL_DEX_WORMADAM_SANDY, + //NATIONAL_DEX_WORMADAM_TRASH, NATIONAL_DEX_CHERRIM,//_OVERCAST, //NATIONAL_DEX_CHERRIM_SUNSHINE, NATIONAL_DEX_GLAMEOW, @@ -3275,7 +3275,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_SANDSHREW, NATIONAL_DEX_CLEFAIRY, NATIONAL_DEX_VULPIX, - //NATIONAL_DEX_VULPIX_ALOLAN, + //NATIONAL_DEX_VULPIX_ALOLA, NATIONAL_DEX_POLIWAG, NATIONAL_DEX_KOFFING, NATIONAL_DEX_GOLDEEN, @@ -3343,7 +3343,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_LITLEO, NATIONAL_DEX_PANCHAM, NATIONAL_DEX_MEOWSTIC,//_MALE, - //NATIONAL_DEX_MEOWSTIC_FEMALE, + //NATIONAL_DEX_MEOWSTIC_F, NATIONAL_DEX_BRIONNE, NATIONAL_DEX_TRUMBEAK, NATIONAL_DEX_CRABRAWLER, @@ -3376,14 +3376,14 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_BULBASAUR, NATIONAL_DEX_METAPOD, NATIONAL_DEX_RATICATE, - //NATIONAL_DEX_RATICATE_ALOLAN, - //NATIONAL_DEX_RAICHU_ALOLAN, - //NATIONAL_DEX_SANDSHREW_ALOLAN, + //NATIONAL_DEX_RATICATE_ALOLA, + //NATIONAL_DEX_RAICHU_ALOLA, + //NATIONAL_DEX_SANDSHREW_ALOLA, NATIONAL_DEX_DUGTRIO, - //NATIONAL_DEX_DUGTRIO_ALOLAN, + //NATIONAL_DEX_DUGTRIO_ALOLA, NATIONAL_DEX_GROWLITHE, NATIONAL_DEX_BELLSPROUT, - //NATIONAL_DEX_GRIMER_ALOLAN, + //NATIONAL_DEX_GRIMER_ALOLA, NATIONAL_DEX_HOOTHOOT, NATIONAL_DEX_MISDREAVUS, NATIONAL_DEX_SLUGMA, @@ -3510,7 +3510,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_CRANIDOS, NATIONAL_DEX_MOTHIM, NATIONAL_DEX_GASTRODON,//_WEST_SEA, - //NATIONAL_DEX_GASTRODON_EAST_SEA, + //NATIONAL_DEX_GASTRODON_EAST, NATIONAL_DEX_MISMAGIUS, NATIONAL_DEX_HONCHKROW, NATIONAL_DEX_PORYGON_Z, @@ -3542,13 +3542,13 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_POLIWHIRL, NATIONAL_DEX_WEEPINBELL, NATIONAL_DEX_GRAVELER, - //NATIONAL_DEX_GRAVELER_ALOLAN, + //NATIONAL_DEX_GRAVELER_ALOLA, NATIONAL_DEX_PONYTA, NATIONAL_DEX_MAGNETON, - //NATIONAL_DEX_MUK_ALOLAN, + //NATIONAL_DEX_MUK_ALOLA, NATIONAL_DEX_DROWZEE, NATIONAL_DEX_MAROWAK, - //NATIONAL_DEX_MAROWAK_ALOLAN, + //NATIONAL_DEX_MAROWAK_ALOLA, NATIONAL_DEX_RHYHORN, NATIONAL_DEX_TANGELA, NATIONAL_DEX_VAPOREON, @@ -3613,8 +3613,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_BUTTERFREE, NATIONAL_DEX_PIDGEOTTO, NATIONAL_DEX_NINETALES, - //NATIONAL_DEX_NINETALES_ALOLAN, - //NATIONAL_DEX_PERSIAN_ALOLAN, + //NATIONAL_DEX_NINETALES_ALOLA, + //NATIONAL_DEX_PERSIAN_ALOLA, NATIONAL_DEX_SEEL, NATIONAL_DEX_CHANSEY, NATIONAL_DEX_STARMIE, @@ -3646,11 +3646,11 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_VANILLISH, NATIONAL_DEX_CRYOGONAL, NATIONAL_DEX_LARVESTA, - NATIONAL_DEX_FLORGES,//_RED_FLOWER, - //NATIONAL_DEX_FLORGES_YELLOW_FLOWER, - //NATIONAL_DEX_FLORGES_ORANGE_FLOWER, - //NATIONAL_DEX_FLORGES_BLUE_FLOWER, - //NATIONAL_DEX_FLORGES_WHITE_FLOWER, + NATIONAL_DEX_FLORGES,//_RED, + //NATIONAL_DEX_FLORGES_YELLOW, + //NATIONAL_DEX_FLORGES_ORANGE, + //NATIONAL_DEX_FLORGES_BLUE, + //NATIONAL_DEX_FLORGES_WHITE, //NATIONAL_DEX_GOURGEIST_LARGE, //NATIONAL_DEX_DIANCIE_MEGA, NATIONAL_DEX_TOUCANNON, @@ -3660,7 +3660,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_MABOSSTIFF, // 3'11" / 1.2m NATIONAL_DEX_FEAROW, - //NATIONAL_DEX_SANDSLASH_ALOLAN, + //NATIONAL_DEX_SANDSLASH_ALOLA, NATIONAL_DEX_VILEPLUME, //NATIONAL_DEX_ALAKAZAM_MEGA, NATIONAL_DEX_SLOWPOKE, @@ -3787,7 +3787,7 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_IRON_JUGULIS, // 4'07" / 1.4m //NATIONAL_DEX_BEEDRILL_MEGA, - //NATIONAL_DEX_RATICATE_ALOLAN_TOTEM_SIZED, + //NATIONAL_DEX_RATICATE_ALOLA_TOTEM_SIZED, NATIONAL_DEX_NIDOKING, NATIONAL_DEX_GOLEM, NATIONAL_DEX_DODUO, @@ -3952,11 +3952,11 @@ const u16 gPokedexOrder_Height[] = //NATIONAL_DEX_CHARIZARD_MEGA_Y, NATIONAL_DEX_GOLDUCK, NATIONAL_DEX_VICTREEBEL, - //NATIONAL_DEX_GOLEM_ALOLAN, + //NATIONAL_DEX_GOLEM_ALOLA, NATIONAL_DEX_RAPIDASH, //NATIONAL_DEX_RAPIDASH_GALARIAN, NATIONAL_DEX_DEWGONG, - //NATIONAL_DEX_MAROWAK_ALOLAN_TOTEM_SIZED, + //NATIONAL_DEX_MAROWAK_ALOLA_TOTEM_SIZED, //NATIONAL_DEX_PINSIR_MEGA, NATIONAL_DEX_ARTICUNO, //NATIONAL_DEX_ARTICUNO_GALARIAN, @@ -4046,8 +4046,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_TYPE_NULL, NATIONAL_DEX_TAPU_BULU, NATIONAL_DEX_INTELEON, - NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE_STYLE, - //NATIONAL_DEX_URSHIFU_RAPID_STRIKE_STYLE, + NATIONAL_DEX_URSHIFU,//_SINGLE_STRIKE, + //NATIONAL_DEX_URSHIFU_RAPID_STRIKE, NATIONAL_DEX_TOEDSCRUEL, NATIONAL_DEX_ESPATHRA, NATIONAL_DEX_CHIEN_PAO, @@ -4147,8 +4147,8 @@ const u16 gPokedexOrder_Height[] = NATIONAL_DEX_RHYPERIOR, NATIONAL_DEX_BUZZWOLE, NATIONAL_DEX_NECROZMA, - //NATIONAL_DEX_CALYREX_ICE_RIDER, - //NATIONAL_DEX_CALYREX_SHADOW_RIDER, + //NATIONAL_DEX_CALYREX_ICE, + //NATIONAL_DEX_CALYREX_SHADOW, NATIONAL_DEX_URSALUNA, // 8'02" / 2.5m NATIONAL_DEX_LAPRAS, @@ -4177,11 +4177,11 @@ const u16 gPokedexOrder_Height[] = // 9'02" / 2.8m NATIONAL_DEX_GOLURK, NATIONAL_DEX_COALOSSAL, - NATIONAL_DEX_ZACIAN,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_ZACIAN,//_HERO, //NATIONAL_DEX_ZACIAN_CROWNED_SWORD, // 9'06" / 2.9m NATIONAL_DEX_ZEKROM, - NATIONAL_DEX_ZAMAZENTA,//_HERO_OF_MANY_BATTLES, + NATIONAL_DEX_ZAMAZENTA,//_HERO, //NATIONAL_DEX_ZAMAZENTA_CROWNED_SHIELD, // 9'10" / 3.0m //NATIONAL_DEX_WEEZING_GALARIAN, @@ -4297,7 +4297,7 @@ const u16 gPokedexOrder_Height[] = // 35'05" / 10.8m //NATIONAL_DEX_RAYQUAZA_MEGA, // 35'09" / 10.9m - //NATIONAL_DEX_EXEGGUTOR_ALOLAN, + //NATIONAL_DEX_EXEGGUTOR_ALOLA, // 12m NATIONAL_DEX_DONDOZO, // 47'07" / 14.5m diff --git a/src/data/pokemon/species_info.h b/src/data/pokemon/species_info.h index 65b8c90876..864fdc5297 100644 --- a/src/data/pokemon/species_info.h +++ b/src/data/pokemon/species_info.h @@ -11,7 +11,7 @@ #define FOOTPRINT(sprite) #endif -#if B_ENEMY_MON_SHADOW_STYLE >= GEN_4 +#if B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE #define SHADOW(x, y, size) .enemyShadowXOffset = x, .enemyShadowYOffset = y, .enemyShadowSize = size, #define NO_SHADOW .suppressEnemyShadow = TRUE, #else @@ -30,10 +30,14 @@ #define OVERWORLD_PAL(...) \ .overworldPalette = DEFAULT(NULL, __VA_ARGS__), \ .overworldShinyPalette = DEFAULT_2(NULL, __VA_ARGS__), +#if P_GENDER_DIFFERENCES #define OVERWORLD_PAL_FEMALE(...) \ .overworldPaletteFemale = DEFAULT(NULL, __VA_ARGS__), \ .overworldShinyPaletteFemale = DEFAULT_2(NULL, __VA_ARGS__), #else +#define OVERWORLD_PAL_FEMALE(...) +#endif //P_GENDER_DIFFERENCES +#else #define OVERWORLD_PAL(...) #define OVERWORLD_PAL_FEMALE(...) #endif //OW_PKMN_OBJECTS_SHARE_PALETTES == FALSE @@ -80,6 +84,7 @@ }, \ OVERWORLD_PAL(__VA_ARGS__) +#if P_GENDER_DIFFERENCES #define OVERWORLD_FEMALE(picTable, _size, shadow, _tracks, ...) \ .overworldDataFemale = { \ .tileTag = TAG_NONE, \ @@ -100,6 +105,9 @@ .affineAnims = gDummySpriteAffineAnimTable, \ }, \ OVERWORLD_PAL_FEMALE(__VA_ARGS__) +#else +#define OVERWORLD_FEMALE(picTable, _size, shadow, _tracks, ...) +#endif //P_GENDER_DIFFERENCES #else #define OVERWORLD(picTable, _size, shadow, _tracks, ...) @@ -238,25 +246,27 @@ const struct SpeciesInfo gSpeciesInfo[] = .trainerOffset = 0, .frontPic = gMonFrontPic_CircledQuestionMark, .frontPicSize = MON_COORDS_SIZE(64, 64), - //.frontPicFemale = gMonFrontPic_CircledQuestionMark, - //.frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_None, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_CircledQuestionMark, .backPicSize = MON_COORDS_SIZE(64, 64), - //.backPicFemale = gMonBackPic_CircledQuestionMarkF, - //.backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_CircledQuestionMark, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_CircledQuestionMarkF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), + .paletteFemale = gMonPalette_CircledQuestionMarkF, + .shinyPaletteFemale = gMonShinyPalette_CircledQuestionMarkF, + .iconSpriteFemale = gMonIcon_QuestionMarkF, + .iconPalIndexFemale = 1, +#endif //P_GENDER_DIFFERENCES .backAnimId = BACK_ANIM_NONE, .palette = gMonPalette_CircledQuestionMark, .shinyPalette = gMonShinyPalette_CircledQuestionMark, - //.paletteFemale = gMonPalette_CircledQuestionMarkF, - .shinyPaletteFemale = gMonShinyPalette_CircledQuestionMarkF, .iconSprite = gMonIcon_QuestionMark, .iconPalIndex = 0, - //.iconSpriteFemale = gMonIcon_QuestionMarkF, - //.iconPalIndexFemale = 1, FOOTPRINT(QuestionMark) .levelUpLearnset = sNoneLevelUpLearnset, .teachableLearnset = sNoneTeachableLearnset, diff --git a/src/data/pokemon/species_info/gen_1_families.h b/src/data/pokemon/species_info/gen_1_families.h index 5a518e0122..ba9f845395 100644 --- a/src/data/pokemon/species_info/gen_1_families.h +++ b/src/data/pokemon/species_info/gen_1_families.h @@ -39,18 +39,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Bulbasaur, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .frontAnimFrames = sAnims_Bulbasaur, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Bulbasaur, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 32) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Bulbasaur, .shinyPalette = gMonShinyPalette_Bulbasaur, .iconSprite = gMonIcon_Bulbasaur, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, SHADOW(1, -1, SHADOW_SIZE_S) FOOTPRINT(Bulbasaur) OVERWORLD( @@ -103,18 +103,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ivysaur, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .frontAnimFrames = sAnims_Ivysaur, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Ivysaur, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Ivysaur, .shinyPalette = gMonShinyPalette_Ivysaur, .iconSprite = gMonIcon_Ivysaur, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, SHADOW(-1, 3, SHADOW_SIZE_L) FOOTPRINT(Ivysaur) OVERWORLD( @@ -172,22 +172,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 388, .trainerOffset = 6, .frontPic = gMonFrontPic_Venusaur, - .frontPicFemale = gMonFrontPic_VenusaurF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Venusaur, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, .backPic = gMonBackPic_Venusaur, - .backPicFemale = gMonBackPic_VenusaurF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 10, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Venusaur, .shinyPalette = gMonShinyPalette_Venusaur, .iconSprite = gMonIcon_Venusaur, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_VenusaurF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_VenusaurF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 6, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Venusaur) OVERWORLD( @@ -304,18 +306,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 388, .trainerOffset = 6, - .frontPic = gMonFrontPic_VenusaurGigantamax, + .frontPic = gMonFrontPic_VenusaurGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_VenusaurGigantamax, + .frontAnimFrames = sAnims_VenusaurGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_VenusaurGigantamax, + .backPic = gMonBackPic_VenusaurGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_VenusaurGigantamax, - .shinyPalette = gMonShinyPalette_VenusaurGigantamax, - .iconSprite = gMonIcon_VenusaurGigantamax, + .palette = gMonPalette_VenusaurGmax, + .shinyPalette = gMonShinyPalette_VenusaurGmax, + .iconSprite = gMonIcon_VenusaurGmax, .iconPalIndex = 0, SHADOW(2, 4, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Venusaur) @@ -364,13 +366,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Charmander, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Charmander, .frontAnimId = ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Charmander, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Charmander, .shinyPalette = gMonShinyPalette_Charmander, @@ -428,13 +430,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Charmeleon, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .frontAnimFrames = sAnims_Charmeleon, .frontAnimId = ANIM_BACK_AND_LUNGE, .backPic = gMonBackPic_Charmeleon, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Charmeleon, .shinyPalette = gMonShinyPalette_Charmeleon, @@ -497,12 +499,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 3, .frontPic = gMonFrontPic_Charizard, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Charizard, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Charizard, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 1, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Charizard, .shinyPalette = gMonShinyPalette_Charizard, @@ -672,18 +674,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 302, .trainerOffset = 3, - .frontPic = gMonFrontPic_CharizardGigantamax, + .frontPic = gMonFrontPic_CharizardGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_CharizardGigantamax, + .frontAnimFrames = sAnims_CharizardGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CharizardGigantamax, + .backPic = gMonBackPic_CharizardGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CharizardGigantamax, - .shinyPalette = gMonShinyPalette_CharizardGigantamax, - .iconSprite = gMonIcon_CharizardGigantamax, + .palette = gMonPalette_CharizardGmax, + .shinyPalette = gMonShinyPalette_CharizardGmax, + .iconSprite = gMonIcon_CharizardGmax, .iconPalIndex = 0, SHADOW(1, 13, SHADOW_SIZE_L) FOOTPRINT(Charizard) @@ -732,13 +734,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Squirtle, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 11, .frontAnimFrames = sAnims_Squirtle, - .frontAnimId = ANIM_V_JUMPS_BIG, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_V_JUMPS_BIG, .backPic = gMonBackPic_Squirtle, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Squirtle, .shinyPalette = gMonShinyPalette_Squirtle, @@ -796,13 +798,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wartortle, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Wartortle, .frontAnimId = ANIM_SHRINK_GROW, .backPic = gMonBackPic_Wartortle, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 7, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Wartortle, .shinyPalette = gMonShinyPalette_Wartortle, @@ -865,13 +867,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 2, .frontPic = gMonFrontPic_Blastoise, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 4, .frontAnimFrames = sAnims_Blastoise, .frontAnimId = ANIM_V_SHAKE_TWICE, - .frontAnimDelay = 20, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 50 : 20, .backPic = gMonBackPic_Blastoise, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Blastoise, .shinyPalette = gMonShinyPalette_Blastoise, @@ -986,18 +988,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -1, .trainerScale = 293, .trainerOffset = 2, - .frontPic = gMonFrontPic_BlastoiseGigantamax, + .frontPic = gMonFrontPic_BlastoiseGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_BlastoiseGigantamax, + .frontAnimFrames = sAnims_BlastoiseGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_BlastoiseGigantamax, + .backPic = gMonBackPic_BlastoiseGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_BlastoiseGigantamax, - .shinyPalette = gMonShinyPalette_BlastoiseGigantamax, - .iconSprite = gMonIcon_BlastoiseGigantamax, + .palette = gMonPalette_BlastoiseGmax, + .shinyPalette = gMonShinyPalette_BlastoiseGmax, + .iconSprite = gMonIcon_BlastoiseGmax, .iconPalIndex = 0, SHADOW(-2, 8, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Blastoise) @@ -1046,13 +1048,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Caterpie, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Caterpie, .frontAnimId = ANIM_SWING_CONCAVE, .backPic = gMonBackPic_Caterpie, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Caterpie, .shinyPalette = gMonShinyPalette_Caterpie, @@ -1109,13 +1111,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Metapod, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 14, .frontAnimFrames = sAnims_Metapod, .frontAnimId = ANIM_SWING_CONCAVE, .backPic = gMonBackPic_Metapod, - .backPicSize = MON_COORDS_SIZE(40, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Metapod, .shinyPalette = gMonShinyPalette_Metapod, @@ -1184,23 +1186,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Butterfree, - .frontPicFemale = gMonFrontPic_ButterfreeF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .frontAnimFrames = sAnims_Butterfree, - .frontAnimId = ANIM_V_SLIDE_WOBBLE, - .enemyMonElevation = 12, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_SLIDE_WOBBLE : ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 12, .backPic = gMonBackPic_Butterfree, - .backPicFemale = gMonBackPic_ButterfreeF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Butterfree, .shinyPalette = gMonShinyPalette_Butterfree, .iconSprite = gMonIcon_Butterfree, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ButterfreeF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_ButterfreeF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 13, SHADOW_SIZE_S) FOOTPRINT(Butterfree) OVERWORLD( @@ -1260,19 +1264,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ButterfreeGigantamax, + .frontPic = gMonFrontPic_ButterfreeGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, - .frontAnimFrames = sAnims_ButterfreeGigantamax, + .frontAnimFrames = sAnims_ButterfreeGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 7, - .backPic = gMonBackPic_ButterfreeGigantamax, + .backPic = gMonBackPic_ButterfreeGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ButterfreeGigantamax, - .shinyPalette = gMonShinyPalette_ButterfreeGigantamax, - .iconSprite = gMonIcon_ButterfreeGigantamax, + .palette = gMonPalette_ButterfreeGmax, + .shinyPalette = gMonShinyPalette_ButterfreeGmax, + .iconSprite = gMonIcon_ButterfreeGmax, .iconPalIndex = 0, SHADOW(-4, 15, SHADOW_SIZE_S) FOOTPRINT(Butterfree) @@ -1321,19 +1325,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Weedle, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 13, .frontAnimFrames = sAnims_Weedle, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, .backPic = gMonBackPic_Weedle, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 7, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Weedle, .shinyPalette = gMonShinyPalette_Weedle, .iconSprite = gMonIcon_Weedle, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(0, 0, SHADOW_SIZE_S) FOOTPRINT(Weedle) OVERWORLD( @@ -1385,14 +1389,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Kakuna, - .frontPicSize = MON_COORDS_SIZE(24, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(24, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Kakuna, .frontAnimId = ANIM_GLOW_ORANGE, .frontAnimDelay = 20, .backPic = gMonBackPic_Kakuna, - .backPicSize = MON_COORDS_SIZE(32, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(32, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Kakuna, .shinyPalette = gMonShinyPalette_Kakuna, @@ -1461,14 +1465,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Beedrill, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 5, .frontAnimFrames = sAnims_Beedrill, - .frontAnimId = ANIM_ZIGZAG_SLOW, - .enemyMonElevation = 9, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_VIBRATE : ANIM_ZIGZAG_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .backPic = gMonBackPic_Beedrill, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 5, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Beedrill, .shinyPalette = gMonShinyPalette_Beedrill, @@ -1592,13 +1596,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pidgey, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .frontAnimFrames = sAnims_Pidgey, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SLIDE_SLOW : ANIM_V_STRETCH, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 16 : 0, .backPic = gMonBackPic_Pidgey, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 11, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Pidgey, .shinyPalette = gMonShinyPalette_Pidgey, @@ -1659,14 +1664,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pidgeotto, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .frontAnimFrames = sAnims_Pidgeotto, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 25, .backPic = gMonBackPic_Pidgeotto, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Pidgeotto, .shinyPalette = gMonShinyPalette_Pidgeotto, @@ -1737,13 +1742,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Pidgeot, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 2, .frontAnimFrames = sAnims_Pidgeot, - .frontAnimId = ANIM_GROW_VIBRATE, - .enemyMonElevation = 5, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_FRONT_FLIP : ANIM_GROW_VIBRATE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .backPic = gMonBackPic_Pidgeot, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Pidgeot, .shinyPalette = gMonShinyPalette_Pidgeot, @@ -1860,22 +1865,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Rattata, - .frontPicFemale = gMonFrontPic_RattataF, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .frontAnimFrames = sAnims_Rattata, - .frontAnimId = ANIM_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_RAPID_H_HOPS : ANIM_H_JUMPS, .backPic = gMonBackPic_Rattata, - .backPicFemale = gMonBackPic_RattataF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 7, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Rattata, .shinyPalette = gMonShinyPalette_Rattata, .iconSprite = gMonIcon_Rattata, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RattataF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), + .backPicFemale = gMonBackPic_RattataF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(1, -3, SHADOW_SIZE_S) FOOTPRINT(Rattata) OVERWORLD( @@ -1934,22 +1941,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Raticate, - .frontPicFemale = gMonFrontPic_RaticateF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .frontAnimFrames = sAnims_Raticate, - .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_FIGURE_8 : ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .backPic = gMonBackPic_Raticate, - .backPicFemale = gMonBackPic_RaticateF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 10, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Raticate, .shinyPalette = gMonShinyPalette_Raticate, .iconSprite = gMonIcon_Raticate, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RaticateF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_RaticateF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 8, SHADOW_SIZE_L) FOOTPRINT(Raticate) OVERWORLD( @@ -2007,33 +2016,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_RattataAlolan, + .frontPic = gMonFrontPic_RattataAlola, .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, - .frontAnimFrames = sAnims_RattataAlolan, + .frontAnimFrames = sAnims_RattataAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_RattataAlolan, + .backPic = gMonBackPic_RattataAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RattataAlolan, - .shinyPalette = gMonShinyPalette_RattataAlolan, - .iconSprite = gMonIcon_RattataAlolan, + .palette = gMonPalette_RattataAlola, + .shinyPalette = gMonShinyPalette_RattataAlola, + .iconSprite = gMonIcon_RattataAlola, .iconPalIndex = 2, SHADOW(-3, 2, SHADOW_SIZE_S) FOOTPRINT(Rattata) OVERWORLD( - sPicTable_RattataAlolan, + sPicTable_RattataAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_RattataAlolan, - gShinyOverworldPalette_RattataAlolan + gOverworldPalette_RattataAlola, + gShinyOverworldPalette_RattataAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sRattataAlolanLevelUpLearnset, - .teachableLearnset = sRattataAlolanTeachableLearnset, - .eggMoveLearnset = sRattataAlolanEggMoveLearnset, + .levelUpLearnset = sRattataAlolaLevelUpLearnset, + .teachableLearnset = sRattataAlolaTeachableLearnset, + .eggMoveLearnset = sRattataAlolaEggMoveLearnset, .formSpeciesIdTable = sRattataFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 20, SPECIES_RATICATE_ALOLA}, {EVO_NONE, 0, SPECIES_RATICATE_ALOLA_TOTEM}), @@ -2065,37 +2074,37 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .categoryName = _("Mouse"), .height = 7, .weight = 255, - .description = gRaticateAlolanPokedexText, + .description = gRaticateAlolaPokedexText, .pokemonScale = 459, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_RaticateAlolan, + .frontPic = gMonFrontPic_RaticateAlola, .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_RaticateAlolan, + .frontAnimFrames = sAnims_RaticateAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_RaticateAlolan, + .backPic = gMonBackPic_RaticateAlola, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RaticateAlolan, - .shinyPalette = gMonShinyPalette_RaticateAlolan, - .iconSprite = gMonIcon_RaticateAlolan, + .palette = gMonPalette_RaticateAlola, + .shinyPalette = gMonShinyPalette_RaticateAlola, + .iconSprite = gMonIcon_RaticateAlola, .iconPalIndex = 2, SHADOW(-4, 3, SHADOW_SIZE_L) FOOTPRINT(Raticate) OVERWORLD( - sPicTable_RaticateAlolan, + sPicTable_RaticateAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_RaticateAlolan, - gShinyOverworldPalette_RaticateAlolan + gOverworldPalette_RaticateAlola, + gShinyOverworldPalette_RaticateAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sRaticateAlolanLevelUpLearnset, - .teachableLearnset = sRaticateAlolanTeachableLearnset, + .levelUpLearnset = sRaticateAlolaLevelUpLearnset, + .teachableLearnset = sRaticateAlolaTeachableLearnset, .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, @@ -2125,39 +2134,39 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .categoryName = _("Mouse"), .height = 14, .weight = 1050, - .description = gRaticateAlolanPokedexText, + .description = gRaticateAlolaPokedexText, .pokemonScale = 459, .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_RaticateAlolan, + .frontPic = gMonFrontPic_RaticateAlola, .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_RaticateAlolan, + .frontAnimFrames = sAnims_RaticateAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_RaticateAlolan, + .backPic = gMonBackPic_RaticateAlola, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RaticateAlolan, - .shinyPalette = gMonShinyPalette_RaticateAlolan, - .iconSprite = gMonIcon_RaticateAlolan, + .palette = gMonPalette_RaticateAlola, + .shinyPalette = gMonShinyPalette_RaticateAlola, + .iconSprite = gMonIcon_RaticateAlola, .iconPalIndex = 2, SHADOW(-4, 3, SHADOW_SIZE_L) FOOTPRINT(Raticate) OVERWORLD( - sPicTable_RaticateAlolan, + sPicTable_RaticateAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_RaticateAlolan, - gShinyOverworldPalette_RaticateAlolan + gOverworldPalette_RaticateAlola, + gShinyOverworldPalette_RaticateAlola ) .isTotem = TRUE, .isAlolanForm = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sRaticateAlolanLevelUpLearnset, - .teachableLearnset = sRaticateAlolanTeachableLearnset, + .levelUpLearnset = sRaticateAlolaLevelUpLearnset, + .teachableLearnset = sRaticateAlolaTeachableLearnset, .formSpeciesIdTable = sRaticateFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -2200,13 +2209,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Spearow, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .frontAnimFrames = sAnims_Spearow, - .frontAnimId = ANIM_V_JUMPS_SMALL, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_RISING_WOBBLE : ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Spearow, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Spearow, .shinyPalette = gMonShinyPalette_Spearow, @@ -2264,7 +2273,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Fearow, - .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Fearow, .frontAnimId = ANIM_FIGURE_8, @@ -2272,7 +2281,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .enemyMonElevation = 6, .backPic = gMonBackPic_Fearow, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Fearow, .shinyPalette = gMonShinyPalette_Fearow, @@ -2329,14 +2338,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ekans, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Ekans, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_V_STRETCH, .frontAnimDelay = 30, .backPic = gMonBackPic_Ekans, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Ekans, .shinyPalette = gMonShinyPalette_Ekans, @@ -2400,12 +2409,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 2, .frontPic = gMonFrontPic_Arbok, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 1, .frontAnimFrames = sAnims_Arbok, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Arbok, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 1, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Arbok, .shinyPalette = gMonShinyPalette_Arbok, @@ -2461,17 +2470,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Pichu, .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 14, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 14, .frontAnimFrames = sAnims_Pichu, .frontAnimId = ANIM_V_JUMPS_BIG, .backPic = gMonBackPic_Pichu, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Pichu, .shinyPalette = gMonShinyPalette_Pichu, .iconSprite = gMonIcon_Pichu, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(0, 0, SHADOW_SIZE_S) FOOTPRINT(Pichu) OVERWORLD( @@ -2590,27 +2599,29 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pikachu, - .frontPicFemale = gMonFrontPic_PikachuF, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Pikachu, .frontAnimId = ANIM_FLASH_YELLOW, - .frontAnimDelay = 25, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 0 : 25, .backPic = gMonBackPic_Pikachu, - .backPicFemale = gMonBackPic_PikachuF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Pikachu, .shinyPalette = gMonShinyPalette_Pikachu, .iconSprite = gMonIcon_Pikachu, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_PikachuF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE .iconSpriteFemale = gMonIcon_PikachuF, .iconPalIndexFemale = 2, - #endif + #endif //P_CUSTOM_GENDER_DIFF_ICONS +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 5, SHADOW_SIZE_M) OVERWORLD( sPicTable_Pikachu, @@ -2983,18 +2994,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuOriginalCap, + .frontPic = gMonFrontPic_PikachuOriginal, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuOriginalCap, + .frontAnimFrames = sAnims_PikachuOriginal, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuOriginalCap, + .backPic = gMonBackPic_PikachuOriginal, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuOriginalCap, - .shinyPalette = gMonShinyPalette_PikachuOriginalCap, - .iconSprite = gMonIcon_PikachuOriginalCap, + .palette = gMonPalette_PikachuOriginal, + .shinyPalette = gMonShinyPalette_PikachuOriginal, + .iconSprite = gMonIcon_PikachuOriginal, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3038,18 +3049,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuHoennCap, + .frontPic = gMonFrontPic_PikachuHoenn, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuHoennCap, + .frontAnimFrames = sAnims_PikachuHoenn, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuHoennCap, + .backPic = gMonBackPic_PikachuHoenn, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuHoennCap, - .shinyPalette = gMonShinyPalette_PikachuHoennCap, - .iconSprite = gMonIcon_PikachuHoennCap, + .palette = gMonPalette_PikachuHoenn, + .shinyPalette = gMonShinyPalette_PikachuHoenn, + .iconSprite = gMonIcon_PikachuHoenn, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3093,18 +3104,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuSinnohCap, + .frontPic = gMonFrontPic_PikachuSinnoh, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuSinnohCap, + .frontAnimFrames = sAnims_PikachuSinnoh, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuSinnohCap, + .backPic = gMonBackPic_PikachuSinnoh, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuSinnohCap, - .shinyPalette = gMonShinyPalette_PikachuSinnohCap, - .iconSprite = gMonIcon_PikachuSinnohCap, + .palette = gMonPalette_PikachuSinnoh, + .shinyPalette = gMonShinyPalette_PikachuSinnoh, + .iconSprite = gMonIcon_PikachuSinnoh, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3148,18 +3159,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuUnovaCap, + .frontPic = gMonFrontPic_PikachuUnova, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuUnovaCap, + .frontAnimFrames = sAnims_PikachuUnova, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuUnovaCap, + .backPic = gMonBackPic_PikachuUnova, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuUnovaCap, - .shinyPalette = gMonShinyPalette_PikachuUnovaCap, - .iconSprite = gMonIcon_PikachuUnovaCap, + .palette = gMonPalette_PikachuUnova, + .shinyPalette = gMonShinyPalette_PikachuUnova, + .iconSprite = gMonIcon_PikachuUnova, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3203,18 +3214,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuKalosCap, + .frontPic = gMonFrontPic_PikachuKalos, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuKalosCap, + .frontAnimFrames = sAnims_PikachuKalos, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuKalosCap, + .backPic = gMonBackPic_PikachuKalos, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuKalosCap, - .shinyPalette = gMonShinyPalette_PikachuKalosCap, - .iconSprite = gMonIcon_PikachuKalosCap, + .palette = gMonPalette_PikachuKalos, + .shinyPalette = gMonShinyPalette_PikachuKalos, + .iconSprite = gMonIcon_PikachuKalos, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3258,18 +3269,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuAlolaCap, + .frontPic = gMonFrontPic_PikachuAlola, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuAlolaCap, + .frontAnimFrames = sAnims_PikachuAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuAlolaCap, + .backPic = gMonBackPic_PikachuAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuAlolaCap, - .shinyPalette = gMonShinyPalette_PikachuAlolaCap, - .iconSprite = gMonIcon_PikachuAlolaCap, + .palette = gMonPalette_PikachuAlola, + .shinyPalette = gMonShinyPalette_PikachuAlola, + .iconSprite = gMonIcon_PikachuAlola, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3278,7 +3289,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .formSpeciesIdTable = sPikachuFormSpeciesIdTable, }, - [SPECIES_PIKACHU_PARTNER_CAP] = + [SPECIES_PIKACHU_PARTNER] = { .baseHP = 35, .baseAttack = 55, @@ -3314,18 +3325,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuPartnerCap, + .frontPic = gMonFrontPic_PikachuPartner, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuPartnerCap, + .frontAnimFrames = sAnims_PikachuPartner, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuPartnerCap, + .backPic = gMonBackPic_PikachuPartner, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuPartnerCap, - .shinyPalette = gMonShinyPalette_PikachuPartnerCap, - .iconSprite = gMonIcon_PikachuPartnerCap, + .palette = gMonPalette_PikachuPartner, + .shinyPalette = gMonShinyPalette_PikachuPartner, + .iconSprite = gMonIcon_PikachuPartner, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3369,18 +3380,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuWorldCap, + .frontPic = gMonFrontPic_PikachuWorld, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_PikachuWorldCap, + .frontAnimFrames = sAnims_PikachuWorld, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuWorldCap, + .backPic = gMonBackPic_PikachuWorld, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuWorldCap, - .shinyPalette = gMonShinyPalette_PikachuWorldCap, - .iconSprite = gMonIcon_PikachuWorldCap, + .palette = gMonPalette_PikachuWorld, + .shinyPalette = gMonShinyPalette_PikachuWorld, + .iconSprite = gMonIcon_PikachuWorld, .iconPalIndex = 0, SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) @@ -3427,18 +3438,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PikachuGigantamax, + .frontPic = gMonFrontPic_PikachuGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_PikachuGigantamax, + .frontAnimFrames = sAnims_PikachuGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PikachuGigantamax, + .backPic = gMonBackPic_PikachuGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PikachuGigantamax, - .shinyPalette = gMonShinyPalette_PikachuGigantamax, - .iconSprite = gMonIcon_PikachuGigantamax, + .palette = gMonPalette_PikachuGmax, + .shinyPalette = gMonShinyPalette_PikachuGmax, + .iconSprite = gMonIcon_PikachuGmax, .iconPalIndex = 2, SHADOW(-3, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Pikachu) @@ -3482,27 +3493,29 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pikachu, - .frontPicFemale = gMonFrontPic_PikachuF, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Pikachu, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 25, .backPic = gMonBackPic_Pikachu, - .backPicFemale = gMonBackPic_PikachuF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Pikachu, .shinyPalette = gMonShinyPalette_Pikachu, - .iconSprite = gMonIcon_PikachuPartner, + .iconSprite = gMonIcon_PikachuStarter, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PikachuF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_PikachuF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE - .iconSpriteFemale = gMonIcon_PikachuPartnerF, + .iconSpriteFemale = gMonIcon_PikachuStarterF, .iconPalIndexFemale = 2, #endif +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 5, SHADOW_SIZE_M) FOOTPRINT(Pikachu) OVERWORLD( @@ -3567,20 +3580,22 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Raichu, - .frontPicFemale = gMonFrontPic_RaichuF, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Raichu, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Raichu, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Raichu, .shinyPalette = gMonShinyPalette_Raichu, .iconSprite = gMonIcon_Raichu, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RaichuF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 10, SHADOW_SIZE_M) FOOTPRINT(Raichu) OVERWORLD( @@ -3637,33 +3652,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_RaichuAlolan, + .frontPic = gMonFrontPic_RaichuAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_RaichuAlolan, + .frontAnimFrames = sAnims_RaichuAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - .backPic = gMonBackPic_RaichuAlolan, + .backPic = gMonBackPic_RaichuAlola, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RaichuAlolan, - .shinyPalette = gMonShinyPalette_RaichuAlolan, - .iconSprite = gMonIcon_RaichuAlolan, + .palette = gMonPalette_RaichuAlola, + .shinyPalette = gMonShinyPalette_RaichuAlola, + .iconSprite = gMonIcon_RaichuAlola, .iconPalIndex = 2, SHADOW(3, 15, SHADOW_SIZE_M) FOOTPRINT(Raichu) OVERWORLD( - sPicTable_RaichuAlolan, + sPicTable_RaichuAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_RaichuAlolan, - gShinyOverworldPalette_RaichuAlolan + gOverworldPalette_RaichuAlola, + gShinyOverworldPalette_RaichuAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sRaichuAlolanLevelUpLearnset, - .teachableLearnset = sRaichuAlolanTeachableLearnset, + .levelUpLearnset = sRaichuAlolaLevelUpLearnset, + .teachableLearnset = sRaichuAlolaTeachableLearnset, .formSpeciesIdTable = sRaichuFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -3706,8 +3721,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sandshrew, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Sandshrew, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, .backPic = gMonBackPic_Sandshrew, @@ -3771,13 +3786,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sandslash, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 6, .frontAnimFrames = sAnims_Sandslash, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_H_SHAKE, .backPic = gMonBackPic_Sandslash, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Sandslash, .shinyPalette = gMonShinyPalette_Sandslash, @@ -3834,33 +3849,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_SandshrewAlolan, + .frontPic = gMonFrontPic_SandshrewAlola, .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 13, - .frontAnimFrames = sAnims_SandshrewAlolan, + .frontAnimFrames = sAnims_SandshrewAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SandshrewAlolan, + .backPic = gMonBackPic_SandshrewAlola, .backPicSize = MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SandshrewAlolan, - .shinyPalette = gMonShinyPalette_SandshrewAlolan, - .iconSprite = gMonIcon_SandshrewAlolan, + .palette = gMonPalette_SandshrewAlola, + .shinyPalette = gMonShinyPalette_SandshrewAlola, + .iconSprite = gMonIcon_SandshrewAlola, .iconPalIndex = 0, SHADOW(-2, -1, SHADOW_SIZE_M) FOOTPRINT(Sandshrew) OVERWORLD( - sPicTable_SandshrewAlolan, + sPicTable_SandshrewAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SandshrewAlolan, - gShinyOverworldPalette_SandshrewAlolan + gOverworldPalette_SandshrewAlola, + gShinyOverworldPalette_SandshrewAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sSandshrewAlolanLevelUpLearnset, - .teachableLearnset = sSandshrewAlolanTeachableLearnset, - .eggMoveLearnset = sSandshrewAlolanEggMoveLearnset, + .levelUpLearnset = sSandshrewAlolaLevelUpLearnset, + .teachableLearnset = sSandshrewAlolaTeachableLearnset, + .eggMoveLearnset = sSandshrewAlolaEggMoveLearnset, .formSpeciesIdTable = sSandshrewFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_SANDSLASH_ALOLA}), }, @@ -3900,32 +3915,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 11, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_SandslashAlolan, + .frontPic = gMonFrontPic_SandslashAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_SandslashAlolan, + .frontAnimFrames = sAnims_SandslashAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SandslashAlolan, + .backPic = gMonBackPic_SandslashAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SandslashAlolan, - .shinyPalette = gMonShinyPalette_SandslashAlolan, - .iconSprite = gMonIcon_SandslashAlolan, + .palette = gMonPalette_SandslashAlola, + .shinyPalette = gMonShinyPalette_SandslashAlola, + .iconSprite = gMonIcon_SandslashAlola, .iconPalIndex = 0, SHADOW(0, 9, SHADOW_SIZE_L) FOOTPRINT(Sandslash) OVERWORLD( - sPicTable_SandslashAlolan, + sPicTable_SandslashAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SandslashAlolan, - gShinyOverworldPalette_SandslashAlolan + gOverworldPalette_SandslashAlola, + gShinyOverworldPalette_SandslashAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sSandslashAlolanLevelUpLearnset, - .teachableLearnset = sSandslashAlolanTeachableLearnset, + .levelUpLearnset = sSandslashAlolaLevelUpLearnset, + .teachableLearnset = sSandslashAlolaTeachableLearnset, .formSpeciesIdTable = sSandslashFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -3971,19 +3986,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_NidoranF, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 13, .frontAnimFrames = sAnims_NidoranF, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 28, .backPic = gMonBackPic_NidoranF, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_NidoranF, .shinyPalette = gMonShinyPalette_NidoranF, .iconSprite = gMonIcon_NidoranF, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 0, SHADOW_SIZE_S) FOOTPRINT(NidoranF) OVERWORLD( @@ -4040,17 +4055,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Nidorina, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 8, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .frontAnimFrames = sAnims_Nidorina, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Nidorina, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 5, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Nidorina, .shinyPalette = gMonShinyPalette_Nidorina, .iconSprite = gMonIcon_Nidorina, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(3, 5, SHADOW_SIZE_M) FOOTPRINT(Nidorina) OVERWORLD( @@ -4113,13 +4128,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Nidoqueen, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 2, .frontAnimFrames = sAnims_Nidoqueen, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Nidoqueen, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Nidoqueen, .shinyPalette = gMonShinyPalette_Nidoqueen, @@ -4183,8 +4198,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontAnimFrames = sAnims_NidoranM, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_NidoranM, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_NidoranM, .shinyPalette = gMonShinyPalette_NidoranM, @@ -4245,13 +4260,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Nidorino, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .frontAnimFrames = sAnims_Nidorino, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SHRINK_GROW : ANIM_V_STRETCH, .backPic = gMonBackPic_Nidorino, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Nidorino, .shinyPalette = gMonShinyPalette_Nidorino, @@ -4319,7 +4334,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Nidoking, - .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Nidoking, .frontAnimId = ANIM_H_SHAKE, @@ -4397,12 +4412,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Cleffa, .frontPicSize = MON_COORDS_SIZE(32, 32), - .frontPicYOffset = 18, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 18, .frontAnimFrames = sAnims_Cleffa, .frontAnimId = ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Cleffa, .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 13, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Cleffa, .shinyPalette = gMonShinyPalette_Cleffa, @@ -4467,12 +4482,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Clefairy, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Clefairy, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Clefairy, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 14, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Clefairy, .shinyPalette = gMonShinyPalette_Clefairy, @@ -4542,12 +4557,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Clefable, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .frontAnimFrames = sAnims_Clefable, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Clefable, - .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Clefable, @@ -4606,18 +4621,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Vulpix, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 11, .frontAnimFrames = sAnims_Vulpix, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Vulpix, - .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Vulpix, .shinyPalette = gMonShinyPalette_Vulpix, .iconSprite = gMonIcon_Vulpix, - .iconPalIndex = 5, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 5, SHADOW(0, 2, SHADOW_SIZE_M) FOOTPRINT(Vulpix) OVERWORLD( @@ -4675,15 +4690,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Ninetales, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Ninetales, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Ninetales, .shinyPalette = gMonShinyPalette_Ninetales, .iconSprite = gMonIcon_Ninetales, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 3, SHADOW(1, 7, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Ninetales) OVERWORLD( @@ -4735,33 +4750,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_VulpixAlolan, + .frontPic = gMonFrontPic_VulpixAlola, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, - .frontAnimFrames = sAnims_VulpixAlolan, + .frontAnimFrames = sAnims_VulpixAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_VulpixAlolan, + .backPic = gMonBackPic_VulpixAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_VulpixAlolan, - .shinyPalette = gMonShinyPalette_VulpixAlolan, - .iconSprite = gMonIcon_VulpixAlolan, - .iconPalIndex = 2, + .palette = gMonPalette_VulpixAlola, + .shinyPalette = gMonShinyPalette_VulpixAlola, + .iconSprite = gMonIcon_VulpixAlola, + .iconPalIndex = 0, SHADOW(-2, 3, SHADOW_SIZE_M) FOOTPRINT(Vulpix) OVERWORLD( - sPicTable_VulpixAlolan, + sPicTable_VulpixAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_VulpixAlolan, - gShinyOverworldPalette_VulpixAlolan + gOverworldPalette_VulpixAlola, + gShinyOverworldPalette_VulpixAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sVulpixAlolanLevelUpLearnset, - .teachableLearnset = sVulpixAlolanTeachableLearnset, - .eggMoveLearnset = sVulpixAlolanEggMoveLearnset, + .levelUpLearnset = sVulpixAlolaLevelUpLearnset, + .teachableLearnset = sVulpixAlolaTeachableLearnset, + .eggMoveLearnset = sVulpixAlolaEggMoveLearnset, .formSpeciesIdTable = sVulpixFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_NINETALES_ALOLA}), }, @@ -4802,32 +4817,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_NinetalesAlolan, + .frontPic = gMonFrontPic_NinetalesAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_NinetalesAlolan, + .frontAnimFrames = sAnims_NinetalesAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_NinetalesAlolan, + .backPic = gMonBackPic_NinetalesAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_NinetalesAlolan, - .shinyPalette = gMonShinyPalette_NinetalesAlolan, - .iconSprite = gMonIcon_NinetalesAlolan, - .iconPalIndex = 2, + .palette = gMonPalette_NinetalesAlola, + .shinyPalette = gMonShinyPalette_NinetalesAlola, + .iconSprite = gMonIcon_NinetalesAlola, + .iconPalIndex = 0, SHADOW(0, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Ninetales) OVERWORLD( - sPicTable_NinetalesAlolan, + sPicTable_NinetalesAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_NinetalesAlolan, - gShinyOverworldPalette_NinetalesAlolan + gOverworldPalette_NinetalesAlola, + gShinyOverworldPalette_NinetalesAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sNinetalesAlolanLevelUpLearnset, - .teachableLearnset = sNinetalesAlolanTeachableLearnset, + .levelUpLearnset = sNinetalesAlolaLevelUpLearnset, + .teachableLearnset = sNinetalesAlolaTeachableLearnset, .formSpeciesIdTable = sNinetalesFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -4882,12 +4897,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Igglybuff, .frontPicSize = MON_COORDS_SIZE(32, 32), - .frontPicYOffset = 17, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 17, .frontAnimFrames = sAnims_Igglybuff, .frontAnimId = ANIM_SWING_CONCAVE_FAST, .backPic = gMonBackPic_Igglybuff, - .backPicSize = MON_COORDS_SIZE(40, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Igglybuff, .shinyPalette = gMonShinyPalette_Igglybuff, @@ -4951,13 +4966,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Jigglypuff, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 14, .frontAnimFrames = sAnims_Jigglypuff, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .backPic = gMonBackPic_Jigglypuff, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Jigglypuff, .shinyPalette = gMonShinyPalette_Jigglypuff, @@ -5027,13 +5042,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wigglytuff, - .frontPicSize = MON_COORDS_SIZE(48, 64), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .frontAnimFrames = sAnims_Wigglytuff, .frontAnimId = ANIM_H_JUMPS, .backPic = gMonBackPic_Wigglytuff, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, .backAnimId = BACK_ANIM_GROW, .palette = gMonPalette_Wigglytuff, .shinyPalette = gMonShinyPalette_Wigglytuff, @@ -5090,23 +5105,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Zubat, - .frontPicFemale = gMonFrontPic_ZubatF, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 16, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 16, .frontAnimFrames = sAnims_Zubat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 16, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 16, .backPic = gMonBackPic_Zubat, - .backPicFemale = gMonBackPic_ZubatF, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Zubat, .shinyPalette = gMonShinyPalette_Zubat, .iconSprite = gMonIcon_Zubat, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ZubatF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicFemale = gMonBackPic_ZubatF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-4, 11, SHADOW_SIZE_S) FOOTPRINT(Zubat) OVERWORLD( @@ -5164,23 +5181,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Golbat, - .frontPicFemale = gMonFrontPic_GolbatF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 7, .frontAnimFrames = sAnims_Golbat, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - .enemyMonElevation = 10, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backPic = gMonBackPic_Golbat, - .backPicFemale = gMonBackPic_GolbatF, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicSizeFemale = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 13, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Golbat, .shinyPalette = gMonShinyPalette_Golbat, .iconSprite = gMonIcon_Golbat, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GolbatF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_GolbatF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 14, SHADOW_SIZE_M) FOOTPRINT(Golbat) OVERWORLD( @@ -5244,14 +5263,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 281, .trainerOffset = 1, .frontPic = gMonFrontPic_Crobat, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 6, .frontAnimFrames = sAnims_Crobat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 9, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 9, .backPic = gMonBackPic_Crobat, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Crobat, .shinyPalette = gMonShinyPalette_Crobat, @@ -5310,18 +5329,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Oddish, - .frontPicSize = MON_COORDS_SIZE(40, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Oddish, - .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Oddish, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 10, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Oddish, .shinyPalette = gMonShinyPalette_Oddish, .iconSprite = gMonIcon_Oddish, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, SHADOW(0, -2, SHADOW_SIZE_S) FOOTPRINT(Oddish) OVERWORLD( @@ -5374,22 +5393,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gloom, - .frontPicFemale = gMonFrontPic_GloomF, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .frontAnimFrames = sAnims_Gloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Gloom, - .backPicFemale = gMonBackPic_GloomF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Gloom, .shinyPalette = gMonShinyPalette_Gloom, .iconSprite = gMonIcon_Gloom, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GloomF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicFemale = gMonBackPic_GloomF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 3, SHADOW_SIZE_M) FOOTPRINT(Gloom) OVERWORLD( @@ -5456,22 +5477,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Vileplume, - .frontPicFemale = gMonFrontPic_VileplumeF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .frontAnimFrames = sAnims_Vileplume, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW : ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Vileplume, - .backPicFemale = gMonBackPic_VileplumeF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Vileplume, .shinyPalette = gMonShinyPalette_Vileplume, .iconSprite = gMonIcon_Vileplume, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_VileplumeF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_VileplumeF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 7, SHADOW_SIZE_L) FOOTPRINT(Vileplume) OVERWORLD( @@ -5538,9 +5561,9 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Bellossom, .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 12, .frontAnimFrames = sAnims_Bellossom, - .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Bellossom, .backPicSize = MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, @@ -5607,14 +5630,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Paras, - .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Paras, .frontAnimId = ANIM_H_SLIDE_SLOW, .frontAnimDelay = 10, .backPic = gMonBackPic_Paras, - .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 18, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 24) : MON_COORDS_SIZE(64, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 18, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Paras, .shinyPalette = gMonShinyPalette_Paras, @@ -5678,14 +5701,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Parasect, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Parasect, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 45, .backPic = gMonBackPic_Parasect, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 13, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Parasect, .shinyPalette = gMonShinyPalette_Parasect, @@ -5746,19 +5769,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = -1, .frontPic = gMonFrontPic_Venonat, - .frontPicSize = MON_COORDS_SIZE(40, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Venonat, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .frontAnimDelay = 20, .backPic = gMonBackPic_Venonat, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Venonat, .shinyPalette = gMonShinyPalette_Venonat, .iconSprite = gMonIcon_Venonat, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(-1, 5, SHADOW_SIZE_M) FOOTPRINT(Venonat) OVERWORLD( @@ -5816,13 +5839,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 1, .frontPic = gMonFrontPic_Venomoth, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 9, .frontAnimFrames = sAnims_Venomoth, .frontAnimId = ANIM_ZIGZAG_SLOW, - .enemyMonElevation = 16, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 16, .backPic = gMonBackPic_Venomoth, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Venomoth, @@ -5892,14 +5915,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Diglett, - .frontPicSize = MON_COORDS_SIZE(32, 32), - .frontPicYOffset = 17, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(32, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 17, .frontAnimFrames = sAnims_Diglett, .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 25, .backPic = gMonBackPic_Diglett, - .backPicSize = MON_COORDS_SIZE(40, 40), - .backPicYOffset = 14, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 14, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Diglett, .shinyPalette = gMonShinyPalette_Diglett, @@ -5958,14 +5981,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Dugtrio, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 11, .frontAnimFrames = sAnims_Dugtrio, .frontAnimId = ANIM_H_SHAKE_SLOW, .frontAnimDelay = 35, .backPic = gMonBackPic_Dugtrio, - .backPicSize = MON_COORDS_SIZE(48, 32), - .backPicYOffset = 17, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 17, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Dugtrio, .shinyPalette = gMonShinyPalette_Dugtrio, @@ -6022,33 +6045,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 25, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DiglettAlolan, + .frontPic = gMonFrontPic_DiglettAlola, .frontPicSize = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 19, - .frontAnimFrames = sAnims_DiglettAlolan, + .frontAnimFrames = sAnims_DiglettAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DiglettAlolan, + .backPic = gMonBackPic_DiglettAlola, .backPicSize = MON_COORDS_SIZE(40, 48), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DiglettAlolan, - .shinyPalette = gMonShinyPalette_DiglettAlolan, - .iconSprite = gMonIcon_DiglettAlolan, + .palette = gMonPalette_DiglettAlola, + .shinyPalette = gMonShinyPalette_DiglettAlola, + .iconSprite = gMonIcon_DiglettAlola, .iconPalIndex = 2, NO_SHADOW FOOTPRINT(Diglett) OVERWORLD( - sPicTable_DiglettAlolan, + sPicTable_DiglettAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DiglettAlolan, - gShinyOverworldPalette_DiglettAlolan + gOverworldPalette_DiglettAlola, + gShinyOverworldPalette_DiglettAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sDiglettAlolanLevelUpLearnset, - .teachableLearnset = sDiglettAlolanTeachableLearnset, - .eggMoveLearnset = sDiglettAlolanEggMoveLearnset, + .levelUpLearnset = sDiglettAlolaLevelUpLearnset, + .teachableLearnset = sDiglettAlolaTeachableLearnset, + .eggMoveLearnset = sDiglettAlolaEggMoveLearnset, .formSpeciesIdTable = sDiglettFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 26, SPECIES_DUGTRIO_ALOLA}), }, @@ -6089,32 +6112,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DugtrioAlolan, + .frontPic = gMonFrontPic_DugtrioAlola, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, - .frontAnimFrames = sAnims_DugtrioAlolan, + .frontAnimFrames = sAnims_DugtrioAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DugtrioAlolan, + .backPic = gMonBackPic_DugtrioAlola, .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 17, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DugtrioAlolan, - .shinyPalette = gMonShinyPalette_DugtrioAlolan, - .iconSprite = gMonIcon_DugtrioAlolan, + .palette = gMonPalette_DugtrioAlola, + .shinyPalette = gMonShinyPalette_DugtrioAlola, + .iconSprite = gMonIcon_DugtrioAlola, .iconPalIndex = 2, NO_SHADOW FOOTPRINT(Dugtrio) OVERWORLD( - sPicTable_DugtrioAlolan, + sPicTable_DugtrioAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DugtrioAlolan, - gShinyOverworldPalette_DugtrioAlolan + gOverworldPalette_DugtrioAlola, + gShinyOverworldPalette_DugtrioAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sDugtrioAlolanLevelUpLearnset, - .teachableLearnset = sDugtrioAlolanTeachableLearnset, + .levelUpLearnset = sDugtrioAlolaLevelUpLearnset, + .teachableLearnset = sDugtrioAlolaTeachableLearnset, .formSpeciesIdTable = sDugtrioFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -6161,14 +6184,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Meowth, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Meowth, .frontAnimId = ANIM_V_JUMPS_SMALL, .frontAnimDelay = 40, .backPic = gMonBackPic_Meowth, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Meowth, .shinyPalette = gMonShinyPalette_Meowth, @@ -6232,8 +6255,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Persian, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 4, .frontAnimFrames = sAnims_Persian, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, @@ -6296,33 +6319,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MeowthAlolan, + .frontPic = gMonFrontPic_MeowthAlola, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_MeowthAlolan, + .frontAnimFrames = sAnims_MeowthAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MeowthAlolan, + .backPic = gMonBackPic_MeowthAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MeowthAlolan, - .shinyPalette = gMonShinyPalette_MeowthAlolan, - .iconSprite = gMonIcon_MeowthAlolan, + .palette = gMonPalette_MeowthAlola, + .shinyPalette = gMonShinyPalette_MeowthAlola, + .iconSprite = gMonIcon_MeowthAlola, .iconPalIndex = 2, SHADOW(-2, 5, SHADOW_SIZE_M) FOOTPRINT(Meowth) OVERWORLD( - sPicTable_MeowthAlolan, + sPicTable_MeowthAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MeowthAlolan, - gShinyOverworldPalette_MeowthAlolan + gOverworldPalette_MeowthAlola, + gShinyOverworldPalette_MeowthAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sMeowthAlolanLevelUpLearnset, - .teachableLearnset = sMeowthAlolanTeachableLearnset, - .eggMoveLearnset = sMeowthAlolanEggMoveLearnset, + .levelUpLearnset = sMeowthAlolaLevelUpLearnset, + .teachableLearnset = sMeowthAlolaTeachableLearnset, + .eggMoveLearnset = sMeowthAlolaEggMoveLearnset, .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_FRIENDSHIP, 0, SPECIES_PERSIAN_ALOLA}), }, @@ -6362,32 +6385,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PersianAlolan, + .frontPic = gMonFrontPic_PersianAlola, .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, - .frontAnimFrames = sAnims_PersianAlolan, + .frontAnimFrames = sAnims_PersianAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PersianAlolan, + .backPic = gMonBackPic_PersianAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PersianAlolan, - .shinyPalette = gMonShinyPalette_PersianAlolan, - .iconSprite = gMonIcon_PersianAlolan, + .palette = gMonPalette_PersianAlola, + .shinyPalette = gMonShinyPalette_PersianAlola, + .iconSprite = gMonIcon_PersianAlola, .iconPalIndex = 2, SHADOW(-1, 9, SHADOW_SIZE_L) FOOTPRINT(Persian) OVERWORLD( - sPicTable_PersianAlolan, + sPicTable_PersianAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_PersianAlolan, - gShinyOverworldPalette_PersianAlolan + gOverworldPalette_PersianAlola, + gShinyOverworldPalette_PersianAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sPersianAlolanLevelUpLearnset, - .teachableLearnset = sPersianAlolanTeachableLearnset, + .levelUpLearnset = sPersianAlolaLevelUpLearnset, + .teachableLearnset = sPersianAlolaTeachableLearnset, .formSpeciesIdTable = sPersianFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -6427,33 +6450,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MeowthGalarian, + .frontPic = gMonFrontPic_MeowthGalar, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_MeowthGalarian, + .frontAnimFrames = sAnims_MeowthGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MeowthGalarian, + .backPic = gMonBackPic_MeowthGalar, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MeowthGalarian, - .shinyPalette = gMonShinyPalette_MeowthGalarian, - .iconSprite = gMonIcon_MeowthGalarian, + .palette = gMonPalette_MeowthGalar, + .shinyPalette = gMonShinyPalette_MeowthGalar, + .iconSprite = gMonIcon_MeowthGalar, .iconPalIndex = 0, SHADOW(1, 4, SHADOW_SIZE_M) FOOTPRINT(Meowth) OVERWORLD( - sPicTable_MeowthGalarian, + sPicTable_MeowthGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MeowthGalarian, - gShinyOverworldPalette_MeowthGalarian + gOverworldPalette_MeowthGalar, + gShinyOverworldPalette_MeowthGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sMeowthGalarianLevelUpLearnset, - .teachableLearnset = sMeowthGalarianTeachableLearnset, - .eggMoveLearnset = sMeowthGalarianEggMoveLearnset, + .levelUpLearnset = sMeowthGalarLevelUpLearnset, + .teachableLearnset = sMeowthGalarTeachableLearnset, + .eggMoveLearnset = sMeowthGalarEggMoveLearnset, .formSpeciesIdTable = sMeowthFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 28, SPECIES_PERRSERKER}), }, @@ -6555,18 +6578,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 19, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MeowthGigantamax, + .frontPic = gMonFrontPic_MeowthGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, - .frontAnimFrames = sAnims_MeowthGigantamax, + .frontAnimFrames = sAnims_MeowthGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MeowthGigantamax, + .backPic = gMonBackPic_MeowthGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MeowthGigantamax, - .shinyPalette = gMonShinyPalette_MeowthGigantamax, - .iconSprite = gMonIcon_MeowthGigantamax, + .palette = gMonPalette_MeowthGmax, + .shinyPalette = gMonShinyPalette_MeowthGmax, + .iconSprite = gMonIcon_MeowthGmax, .iconPalIndex = 1, SHADOW(4, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Meowth) @@ -6617,12 +6640,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Psyduck, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .frontAnimFrames = sAnims_Psyduck, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Psyduck, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Psyduck, .shinyPalette = gMonShinyPalette_Psyduck, @@ -6679,18 +6702,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 273, .trainerOffset = 1, .frontPic = gMonFrontPic_Golduck, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 4, .frontAnimFrames = sAnims_Golduck, .frontAnimId = ANIM_H_SHAKE_SLOW, .backPic = gMonBackPic_Golduck, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Golduck, .shinyPalette = gMonShinyPalette_Golduck, .iconSprite = gMonIcon_Golduck, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 6, SHADOW_SIZE_M) FOOTPRINT(Golduck) OVERWORLD( @@ -6746,14 +6769,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mankey, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Mankey, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 20, .backPic = gMonBackPic_Mankey, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Mankey, .shinyPalette = gMonShinyPalette_Mankey, @@ -6814,13 +6837,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Primeape, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .frontAnimFrames = sAnims_Primeape, - .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL : ANIM_BOUNCE_ROTATE_TO_SIDES, .backPic = gMonBackPic_Primeape, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Primeape, .shinyPalette = gMonShinyPalette_Primeape, @@ -6942,18 +6965,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Growlithe, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 9, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .frontAnimFrames = sAnims_Growlithe, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BACK_AND_LUNGE : ANIM_V_STRETCH, .frontAnimDelay = 30, .backPic = gMonBackPic_Growlithe, - .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Growlithe, .shinyPalette = gMonShinyPalette_Growlithe, .iconSprite = gMonIcon_Growlithe, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 3, SHADOW(0, 4, SHADOW_SIZE_M) FOOTPRINT(Growlithe) OVERWORLD( @@ -7009,16 +7032,16 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Arcanine, - .frontAnimId = ANIM_V_SHAKE, - .frontAnimDelay = 8, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_VIBRATE : ANIM_V_SHAKE, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 40 : 8, .backPic = gMonBackPic_Arcanine, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Arcanine, .shinyPalette = gMonShinyPalette_Arcanine, .iconSprite = gMonIcon_Arcanine, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 3, SHADOW(-4, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Arcanine) OVERWORLD( @@ -7069,32 +7092,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_GrowlitheHisuian, + .frontPic = gMonFrontPic_GrowlitheHisui, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, - .frontAnimFrames = sAnims_GrowlitheHisuian, + .frontAnimFrames = sAnims_GrowlitheHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GrowlitheHisuian, + .backPic = gMonBackPic_GrowlitheHisui, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GrowlitheHisuian, - .shinyPalette = gMonShinyPalette_GrowlitheHisuian, - .iconSprite = gMonIcon_GrowlitheHisuian, + .palette = gMonPalette_GrowlitheHisui, + .shinyPalette = gMonShinyPalette_GrowlitheHisui, + .iconSprite = gMonIcon_GrowlitheHisui, .iconPalIndex = 0, SHADOW(2, -2, SHADOW_SIZE_M) FOOTPRINT(Growlithe) OVERWORLD( - sPicTable_GrowlitheHisuian, + sPicTable_GrowlitheHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GrowlitheHisuian, - gShinyOverworldPalette_GrowlitheHisuian + gOverworldPalette_GrowlitheHisui, + gShinyOverworldPalette_GrowlitheHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sGrowlitheHisuianLevelUpLearnset, - .teachableLearnset = sGrowlitheHisuianTeachableLearnset, + .levelUpLearnset = sGrowlitheHisuiLevelUpLearnset, + .teachableLearnset = sGrowlitheHisuiTeachableLearnset, .formSpeciesIdTable = sGrowlitheFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_FIRE_STONE, SPECIES_ARCANINE_HISUI}), }, @@ -7133,32 +7156,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 312, .trainerOffset = 4, - .frontPic = gMonFrontPic_ArcanineHisuian, + .frontPic = gMonFrontPic_ArcanineHisui, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_ArcanineHisuian, + .frontAnimFrames = sAnims_ArcanineHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ArcanineHisuian, + .backPic = gMonBackPic_ArcanineHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ArcanineHisuian, - .shinyPalette = gMonShinyPalette_ArcanineHisuian, - .iconSprite = gMonIcon_ArcanineHisuian, + .palette = gMonPalette_ArcanineHisui, + .shinyPalette = gMonShinyPalette_ArcanineHisui, + .iconSprite = gMonIcon_ArcanineHisui, .iconPalIndex = 0, SHADOW(-1, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Arcanine) OVERWORLD( - sPicTable_ArcanineHisuian, + sPicTable_ArcanineHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ArcanineHisuian, - gShinyOverworldPalette_ArcanineHisuian + gOverworldPalette_ArcanineHisui, + gShinyOverworldPalette_ArcanineHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sArcanineHisuianLevelUpLearnset, - .teachableLearnset = sArcanineHisuianTeachableLearnset, + .levelUpLearnset = sArcanineHisuiLevelUpLearnset, + .teachableLearnset = sArcanineHisuiTeachableLearnset, .formSpeciesIdTable = sArcanineFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -7201,13 +7224,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Poliwag, - .frontPicSize = MON_COORDS_SIZE(64, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(64, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 19 : 13, .frontAnimFrames = sAnims_Poliwag, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Poliwag, - .backPicSize = MON_COORDS_SIZE(48, 32), - .backPicYOffset = 18, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(48, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 18, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Poliwag, .shinyPalette = gMonShinyPalette_Poliwag, @@ -7266,14 +7289,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Poliwhirl, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .frontAnimFrames = sAnims_Poliwhirl, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 5, .backPic = gMonBackPic_Poliwhirl, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Poliwhirl, .shinyPalette = gMonShinyPalette_Poliwhirl, @@ -7341,13 +7364,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Poliwrath, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .frontAnimFrames = sAnims_Poliwrath, .frontAnimId = ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Poliwrath, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 7, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Poliwrath, .shinyPalette = gMonShinyPalette_Poliwrath, @@ -7411,23 +7434,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Politoed, - .frontPicFemale = gMonFrontPic_PolitoedF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .frontAnimFrames = sAnims_Politoed, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 40, .backPic = gMonBackPic_Politoed, - .backPicFemale = gMonBackPic_PolitoedF, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 5, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Politoed, .shinyPalette = gMonShinyPalette_Politoed, .iconSprite = gMonIcon_Politoed, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PolitoedF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_PolitoedF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 9, SHADOW_SIZE_M) FOOTPRINT(Politoed) OVERWORLD( @@ -7493,13 +7518,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Abra, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 10, .frontAnimFrames = sAnims_Abra, - .frontAnimId = ANIM_H_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_JUMPS : ANIM_H_VIBRATE, .backPic = gMonBackPic_Abra, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 12, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Abra, .shinyPalette = gMonShinyPalette_Abra, @@ -7558,22 +7583,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Kadabra, - .frontPicFemale = gMonFrontPic_KadabraF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Kadabra, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Kadabra, - .backPicFemale = gMonBackPic_KadabraF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Kadabra, .shinyPalette = gMonShinyPalette_Kadabra, .iconSprite = gMonIcon_Kadabra, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_KadabraF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_KadabraF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 6, SHADOW_SIZE_L) FOOTPRINT(Kadabra) OVERWORLD( @@ -7642,22 +7669,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Alakazam, - .frontPicFemale = gMonFrontPic_AlakazamF, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .frontAnimFrames = sAnims_Alakazam, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Alakazam, - .backPicFemale = gMonBackPic_AlakazamF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Alakazam, .shinyPalette = gMonShinyPalette_Alakazam, .iconSprite = gMonIcon_Alakazam, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_AlakazamF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_AlakazamF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 9, SHADOW_SIZE_L) FOOTPRINT(Alakazam) OVERWORLD( @@ -7787,13 +7816,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Machop, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .frontAnimFrames = sAnims_Machop, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_V_STRETCH, .backPic = gMonBackPic_Machop, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Machop, .shinyPalette = gMonShinyPalette_Machop, @@ -7856,13 +7885,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Machoke, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .frontAnimFrames = sAnims_Machoke, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Machoke, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Machoke, .shinyPalette = gMonShinyPalette_Machoke, @@ -7933,12 +7962,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = -1, .frontPic = gMonFrontPic_Machamp, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Machamp, .frontAnimId = ANIM_H_JUMPS, .backPic = gMonBackPic_Machamp, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 7, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Machamp, .shinyPalette = gMonShinyPalette_Machamp, @@ -8000,18 +8029,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 1, .trainerScale = 269, .trainerOffset = -1, - .frontPic = gMonFrontPic_MachampGigantamax, + .frontPic = gMonFrontPic_MachampGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_MachampGigantamax, + .frontAnimFrames = sAnims_MachampGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MachampGigantamax, + .backPic = gMonBackPic_MachampGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MachampGigantamax, - .shinyPalette = gMonShinyPalette_MachampGigantamax, - .iconSprite = gMonIcon_MachampGigantamax, + .palette = gMonPalette_MachampGmax, + .shinyPalette = gMonShinyPalette_MachampGmax, + .iconSprite = gMonIcon_MachampGmax, .iconPalIndex = 0, SHADOW(7, 13, SHADOW_SIZE_L) FOOTPRINT(Machamp) @@ -8060,13 +8089,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Bellsprout, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .frontAnimFrames = sAnims_Bellsprout, - .frontAnimId = ANIM_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_H_JUMPS, .backPic = gMonBackPic_Bellsprout, - .backPicSize = MON_COORDS_SIZE(40, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Bellsprout, .shinyPalette = gMonShinyPalette_Bellsprout, @@ -8123,14 +8152,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Weepinbell, - .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Weepinbell, .frontAnimId = ANIM_SWING_CONVEX, .frontAnimDelay = 3, .backPic = gMonBackPic_Weepinbell, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Weepinbell, .shinyPalette = gMonShinyPalette_Weepinbell, @@ -8194,8 +8223,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 312, .trainerOffset = 3, .frontPic = gMonFrontPic_Victreebel, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .frontAnimFrames = sAnims_Victreebel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Victreebel, @@ -8258,18 +8287,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Tentacool, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(48, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 7, .frontAnimFrames = sAnims_Tentacool, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Tentacool, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Tentacool, .shinyPalette = gMonShinyPalette_Tentacool, .iconSprite = gMonIcon_Tentacool, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 6, SHADOW_SIZE_M) FOOTPRINT(Tentacool) OVERWORLD( @@ -8325,7 +8354,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Tentacruel, - .frontAnimId = ANIM_V_SLIDE_WOBBLE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_V_SLIDE_WOBBLE, .backPic = gMonBackPic_Tentacruel, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, @@ -8333,7 +8362,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .palette = gMonPalette_Tentacruel, .shinyPalette = gMonShinyPalette_Tentacruel, .iconSprite = gMonIcon_Tentacruel, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(2, 8, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Tentacruel) OVERWORLD( @@ -8407,13 +8436,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Geodude, - .frontPicSize = MON_COORDS_SIZE(64, 32), - .frontPicYOffset = 19, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(64, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 19, .frontAnimFrames = sAnims_Geodude, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, - .enemyMonElevation = 10, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 16 : 10, .backPic = gMonBackPic_Geodude, - .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Geodude, @@ -8473,13 +8502,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Graveler, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 9, .frontAnimFrames = sAnims_Graveler, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL : ANIM_V_SHAKE, .backPic = gMonBackPic_Graveler, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Graveler, .shinyPalette = gMonShinyPalette_Graveler, @@ -8538,18 +8567,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 296, .trainerOffset = 2, .frontPic = gMonFrontPic_Golem, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .frontAnimFrames = sAnims_Golem, .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, .backPic = gMonBackPic_Golem, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 11, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Golem, .shinyPalette = gMonShinyPalette_Golem, .iconSprite = gMonIcon_Golem, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(3, 5, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Golem) OVERWORLD( @@ -8601,34 +8630,34 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_GeodudeAlolan, + .frontPic = gMonFrontPic_GeodudeAlola, .frontPicSize = MON_COORDS_SIZE(48, 32), .frontPicYOffset = 17, - .frontAnimFrames = sAnims_GeodudeAlolan, + .frontAnimFrames = sAnims_GeodudeAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 16, - .backPic = gMonBackPic_GeodudeAlolan, + .backPic = gMonBackPic_GeodudeAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GeodudeAlolan, - .shinyPalette = gMonShinyPalette_GeodudeAlolan, - .iconSprite = gMonIcon_GeodudeAlolan, + .palette = gMonPalette_GeodudeAlola, + .shinyPalette = gMonShinyPalette_GeodudeAlola, + .iconSprite = gMonIcon_GeodudeAlola, .iconPalIndex = 2, SHADOW(-1, 10, SHADOW_SIZE_M) FOOTPRINT(Geodude) OVERWORLD( - sPicTable_GeodudeAlolan, + sPicTable_GeodudeAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GeodudeAlolan, - gShinyOverworldPalette_GeodudeAlolan + gOverworldPalette_GeodudeAlola, + gShinyOverworldPalette_GeodudeAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sGeodudeAlolanLevelUpLearnset, - .teachableLearnset = sGeodudeAlolanTeachableLearnset, - .eggMoveLearnset = sGeodudeAlolanEggMoveLearnset, + .levelUpLearnset = sGeodudeAlolaLevelUpLearnset, + .teachableLearnset = sGeodudeAlolaTeachableLearnset, + .eggMoveLearnset = sGeodudeAlolaEggMoveLearnset, .formSpeciesIdTable = sGeodudeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 25, SPECIES_GRAVELER_ALOLA}), }, @@ -8668,32 +8697,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_GravelerAlolan, + .frontPic = gMonFrontPic_GravelerAlola, .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_GravelerAlolan, + .frontAnimFrames = sAnims_GravelerAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GravelerAlolan, + .backPic = gMonBackPic_GravelerAlola, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GravelerAlolan, - .shinyPalette = gMonShinyPalette_GravelerAlolan, - .iconSprite = gMonIcon_GravelerAlolan, - .iconPalIndex = 2, + .palette = gMonPalette_GravelerAlola, + .shinyPalette = gMonShinyPalette_GravelerAlola, + .iconSprite = gMonIcon_GravelerAlola, + .iconPalIndex = 0, SHADOW(1, 5, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Graveler) OVERWORLD( - sPicTable_GravelerAlolan, + sPicTable_GravelerAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GravelerAlolan, - gShinyOverworldPalette_GravelerAlolan + gOverworldPalette_GravelerAlola, + gShinyOverworldPalette_GravelerAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sGravelerAlolanLevelUpLearnset, - .teachableLearnset = sGravelerAlolanTeachableLearnset, + .levelUpLearnset = sGravelerAlolaLevelUpLearnset, + .teachableLearnset = sGravelerAlolaTeachableLearnset, .formSpeciesIdTable = sGravelerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_TRADE, 0, SPECIES_GOLEM_ALOLA}, {EVO_ITEM, ITEM_LINKING_CORD, SPECIES_GOLEM_ALOLA}), @@ -8734,32 +8763,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 296, .trainerOffset = 2, - .frontPic = gMonFrontPic_GolemAlolan, + .frontPic = gMonFrontPic_GolemAlola, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_GolemAlolan, + .frontAnimFrames = sAnims_GolemAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GolemAlolan, + .backPic = gMonBackPic_GolemAlola, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GolemAlolan, - .shinyPalette = gMonShinyPalette_GolemAlolan, - .iconSprite = gMonIcon_GolemAlolan, + .palette = gMonPalette_GolemAlola, + .shinyPalette = gMonShinyPalette_GolemAlola, + .iconSprite = gMonIcon_GolemAlola, .iconPalIndex = 2, SHADOW(2, 11, SHADOW_SIZE_L) FOOTPRINT(Golem) OVERWORLD( - sPicTable_GolemAlolan, + sPicTable_GolemAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GolemAlolan, - gShinyOverworldPalette_GolemAlolan + gOverworldPalette_GolemAlola, + gShinyOverworldPalette_GolemAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sGolemAlolanLevelUpLearnset, - .teachableLearnset = sGolemAlolanTeachableLearnset, + .levelUpLearnset = sGolemAlolaLevelUpLearnset, + .teachableLearnset = sGolemAlolaTeachableLearnset, .formSpeciesIdTable = sGolemFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -8801,19 +8830,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ponyta, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .frontAnimFrames = sAnims_Ponyta, - .frontAnimId = ANIM_V_SHAKE, - .frontAnimDelay = 10, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_GLOW_ORANGE : ANIM_V_SHAKE, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 0 : 10, .backPic = gMonBackPic_Ponyta, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Ponyta, .shinyPalette = gMonShinyPalette_Ponyta, .iconSprite = gMonIcon_Ponyta, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 3, SHADOW(-1, 7, SHADOW_SIZE_M) FOOTPRINT(Ponyta) OVERWORLD( @@ -8867,17 +8896,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 1, .frontPic = gMonFrontPic_Rapidash, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Rapidash, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_CIRCULAR_VIBRATE : ANIM_H_SHAKE, .backPic = gMonBackPic_Rapidash, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Rapidash, .shinyPalette = gMonShinyPalette_Rapidash, .iconSprite = gMonIcon_Rapidash, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 3, SHADOW(-1, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Rapidash) OVERWORLD( @@ -8928,33 +8957,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_PonytaGalarian, + .frontPic = gMonFrontPic_PonytaGalar, .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_PonytaGalarian, + .frontAnimFrames = sAnims_PonytaGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_PonytaGalarian, + .backPic = gMonBackPic_PonytaGalar, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_PonytaGalarian, - .shinyPalette = gMonShinyPalette_PonytaGalarian, - .iconSprite = gMonIcon_PonytaGalarian, + .palette = gMonPalette_PonytaGalar, + .shinyPalette = gMonShinyPalette_PonytaGalar, + .iconSprite = gMonIcon_PonytaGalar, .iconPalIndex = 2, SHADOW(-5, 5, SHADOW_SIZE_M) FOOTPRINT(Ponyta) OVERWORLD( - sPicTable_PonytaGalarian, + sPicTable_PonytaGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_PonytaGalarian, - gShinyOverworldPalette_PonytaGalarian + gOverworldPalette_PonytaGalar, + gShinyOverworldPalette_PonytaGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sPonytaGalarianLevelUpLearnset, - .teachableLearnset = sPonytaGalarianTeachableLearnset, - .eggMoveLearnset = sPonytaGalarianEggMoveLearnset, + .levelUpLearnset = sPonytaGalarLevelUpLearnset, + .teachableLearnset = sPonytaGalarTeachableLearnset, + .eggMoveLearnset = sPonytaGalarEggMoveLearnset, .formSpeciesIdTable = sPonytaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 40, SPECIES_RAPIDASH_GALAR}), }, @@ -8993,32 +9022,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 289, .trainerOffset = 1, - .frontPic = gMonFrontPic_RapidashGalarian, + .frontPic = gMonFrontPic_RapidashGalar, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_RapidashGalarian, + .frontAnimFrames = sAnims_RapidashGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_RapidashGalarian, + .backPic = gMonBackPic_RapidashGalar, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RapidashGalarian, - .shinyPalette = gMonShinyPalette_RapidashGalarian, - .iconSprite = gMonIcon_RapidashGalarian, + .palette = gMonPalette_RapidashGalar, + .shinyPalette = gMonShinyPalette_RapidashGalar, + .iconSprite = gMonIcon_RapidashGalar, .iconPalIndex = 2, SHADOW(0, 13, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Rapidash) OVERWORLD( - sPicTable_RapidashGalarian, + sPicTable_RapidashGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_RapidashGalarian, - gShinyOverworldPalette_RapidashGalarian + gOverworldPalette_RapidashGalar, + gShinyOverworldPalette_RapidashGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sRapidashGalarianLevelUpLearnset, - .teachableLearnset = sRapidashGalarianTeachableLearnset, + .levelUpLearnset = sRapidashGalarLevelUpLearnset, + .teachableLearnset = sRapidashGalarTeachableLearnset, .formSpeciesIdTable = sRapidashFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -9061,13 +9090,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Slowpoke, - .frontPicSize = MON_COORDS_SIZE(64, 32), - .frontPicYOffset = 16, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 16, .frontAnimFrames = sAnims_Slowpoke, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Slowpoke, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Slowpoke, .shinyPalette = gMonShinyPalette_Slowpoke, @@ -9128,13 +9157,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 296, .trainerOffset = 2, .frontPic = gMonFrontPic_Slowbro, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .frontAnimFrames = sAnims_Slowbro, - .frontAnimId = ANIM_H_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_H_STRETCH, .backPic = gMonBackPic_Slowbro, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Slowbro, .shinyPalette = gMonShinyPalette_Slowbro, @@ -9193,13 +9222,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 309, .trainerOffset = 5, .frontPic = gMonFrontPic_Slowking, - .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 64) : MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Slowking, .frontAnimId = ANIM_SHRINK_GROW, .backPic = gMonBackPic_Slowking, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Slowking, .shinyPalette = gMonShinyPalette_Slowking, @@ -9301,7 +9330,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .abilities = { ABILITY_GLUTTONY, ABILITY_OWN_TEMPO, ABILITY_REGENERATOR }, .bodyColor = BODY_COLOR_PINK, .speciesName = _("Slowpoke"), - .cryId = CRY_SLOWPOKE_GALARIAN, + .cryId = CRY_SLOWPOKE_GALAR, .natDexNum = NATIONAL_DEX_SLOWPOKE, .categoryName = _("Dopey"), .height = 12, @@ -9315,33 +9344,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_SlowpokeGalarian, + .frontPic = gMonFrontPic_SlowpokeGalar, .frontPicSize = MON_COORDS_SIZE(56, 32), .frontPicYOffset = 19, - .frontAnimFrames = sAnims_SlowpokeGalarian, + .frontAnimFrames = sAnims_SlowpokeGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SlowpokeGalarian, + .backPic = gMonBackPic_SlowpokeGalar, .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SlowpokeGalarian, - .shinyPalette = gMonShinyPalette_SlowpokeGalarian, - .iconSprite = gMonIcon_SlowpokeGalarian, + .palette = gMonPalette_SlowpokeGalar, + .shinyPalette = gMonShinyPalette_SlowpokeGalar, + .iconSprite = gMonIcon_SlowpokeGalar, .iconPalIndex = 0, SHADOW(-3, -8, SHADOW_SIZE_L) FOOTPRINT(Slowpoke) OVERWORLD( - sPicTable_SlowpokeGalarian, + sPicTable_SlowpokeGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SlowpokeGalarian, - gShinyOverworldPalette_SlowpokeGalarian + gOverworldPalette_SlowpokeGalar, + gShinyOverworldPalette_SlowpokeGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sSlowpokeGalarianLevelUpLearnset, - .teachableLearnset = sSlowpokeGalarianTeachableLearnset, - .eggMoveLearnset = sSlowpokeGalarianEggMoveLearnset, + .levelUpLearnset = sSlowpokeGalarLevelUpLearnset, + .teachableLearnset = sSlowpokeGalarTeachableLearnset, + .eggMoveLearnset = sSlowpokeGalarEggMoveLearnset, .formSpeciesIdTable = sSlowpokeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_GALARICA_CUFF, SPECIES_SLOWBRO_GALAR}, {EVO_ITEM, ITEM_GALARICA_WREATH, SPECIES_SLOWKING_GALAR}), @@ -9382,33 +9411,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 296, .trainerOffset = 2, - .frontPic = gMonFrontPic_SlowbroGalarian, + .frontPic = gMonFrontPic_SlowbroGalar, .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, - .frontAnimFrames = sAnims_SlowbroGalarian, + .frontAnimFrames = sAnims_SlowbroGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SlowbroGalarian, + .backPic = gMonBackPic_SlowbroGalar, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SlowbroGalarian, - .shinyPalette = gMonShinyPalette_SlowbroGalarian, - .iconSprite = gMonIcon_SlowbroGalarian, + .palette = gMonPalette_SlowbroGalar, + .shinyPalette = gMonShinyPalette_SlowbroGalar, + .iconSprite = gMonIcon_SlowbroGalar, .iconPalIndex = 0, SHADOW(-5, 9, SHADOW_SIZE_L) FOOTPRINT(Slowbro) OVERWORLD_SET_ANIM( - sPicTable_SlowbroGalarian, + sPicTable_SlowbroGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, sAnimTable_Following_Asym, - gOverworldPalette_SlowbroGalarian, - gShinyOverworldPalette_SlowbroGalarian + gOverworldPalette_SlowbroGalar, + gShinyOverworldPalette_SlowbroGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sSlowbroGalarianLevelUpLearnset, - .teachableLearnset = sSlowbroGalarianTeachableLearnset, + .levelUpLearnset = sSlowbroGalarLevelUpLearnset, + .teachableLearnset = sSlowbroGalarTeachableLearnset, .formSpeciesIdTable = sSlowbroFormSpeciesIdTable, }, @@ -9447,32 +9476,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - .frontPic = gMonFrontPic_SlowkingGalarian, + .frontPic = gMonFrontPic_SlowkingGalar, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_SlowkingGalarian, + .frontAnimFrames = sAnims_SlowkingGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SlowkingGalarian, + .backPic = gMonBackPic_SlowkingGalar, .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SlowkingGalarian, - .shinyPalette = gMonShinyPalette_SlowkingGalarian, - .iconSprite = gMonIcon_SlowkingGalarian, + .palette = gMonPalette_SlowkingGalar, + .shinyPalette = gMonShinyPalette_SlowkingGalar, + .iconSprite = gMonIcon_SlowkingGalar, .iconPalIndex = 0, SHADOW(-2, 12, SHADOW_SIZE_M) FOOTPRINT(Slowking) OVERWORLD( - sPicTable_SlowkingGalarian, + sPicTable_SlowkingGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SlowkingGalarian, - gShinyOverworldPalette_SlowkingGalarian + gOverworldPalette_SlowkingGalar, + gShinyOverworldPalette_SlowkingGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sSlowkingGalarianLevelUpLearnset, - .teachableLearnset = sSlowkingGalarianTeachableLearnset, + .levelUpLearnset = sSlowkingGalarLevelUpLearnset, + .teachableLearnset = sSlowkingGalarTeachableLearnset, .formSpeciesIdTable = sSlowkingFormSpeciesIdTable, }, #endif //P_GEN_2_CROSS_EVOS @@ -9516,14 +9545,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magnemite, - .frontPicSize = MON_COORDS_SIZE(48, 32), - .frontPicYOffset = 20, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 24) : MON_COORDS_SIZE(48, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 21 : 20, .frontAnimFrames = sAnims_Magnemite, .frontAnimId = ANIM_TUMBLING_FRONT_FLIP_TWICE, - .enemyMonElevation = 17, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 16 : 17, .backPic = gMonBackPic_Magnemite, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 24) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 15, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Magnemite, .shinyPalette = gMonShinyPalette_Magnemite, @@ -9580,14 +9609,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magneton, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Magneton, .frontAnimId = ANIM_FLASH_YELLOW, - .enemyMonElevation = 9, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .backPic = gMonBackPic_Magneton, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Magneton, .shinyPalette = gMonShinyPalette_Magneton, @@ -9728,13 +9757,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 293, .trainerOffset = 2, .frontPic = gMonFrontPic_Farfetchd, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 7, .frontAnimFrames = sAnims_Farfetchd, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .backPic = gMonBackPic_Farfetchd, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Farfetchd, .shinyPalette = gMonShinyPalette_Farfetchd, @@ -9793,33 +9822,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 293, .trainerOffset = 2, - .frontPic = gMonFrontPic_FarfetchdGalarian, + .frontPic = gMonFrontPic_FarfetchdGalar, .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_FarfetchdGalarian, + .frontAnimFrames = sAnims_FarfetchdGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_FarfetchdGalarian, + .backPic = gMonBackPic_FarfetchdGalar, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_FarfetchdGalarian, - .shinyPalette = gMonShinyPalette_FarfetchdGalarian, - .iconSprite = gMonIcon_FarfetchdGalarian, + .palette = gMonPalette_FarfetchdGalar, + .shinyPalette = gMonShinyPalette_FarfetchdGalar, + .iconSprite = gMonIcon_FarfetchdGalar, .iconPalIndex = 1, SHADOW(-7, 2, SHADOW_SIZE_L) FOOTPRINT(Farfetchd) OVERWORLD( - sPicTable_FarfetchdGalarian, + sPicTable_FarfetchdGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_FarfetchdGalarian, - gShinyOverworldPalette_FarfetchdGalarian + gOverworldPalette_FarfetchdGalar, + gShinyOverworldPalette_FarfetchdGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sFarfetchdGalarianLevelUpLearnset, - .teachableLearnset = sFarfetchdGalarianTeachableLearnset, - .eggMoveLearnset = sFarfetchdGalarianEggMoveLearnset, + .levelUpLearnset = sFarfetchdGalarLevelUpLearnset, + .teachableLearnset = sFarfetchdGalarTeachableLearnset, + .eggMoveLearnset = sFarfetchdGalarEggMoveLearnset, .formSpeciesIdTable = sFarfetchdFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_CRITICAL_HITS, 3, SPECIES_SIRFETCHD}), }, @@ -9925,22 +9954,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 257, .trainerOffset = -1, .frontPic = gMonFrontPic_Doduo, - .frontPicFemale = gMonFrontPic_DoduoF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 7, .frontAnimFrames = sAnims_Doduo, .frontAnimId = ANIM_H_SHAKE_SLOW, .backPic = gMonBackPic_Doduo, - .backPicFemale = gMonBackPic_DoduoF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Doduo, .shinyPalette = gMonShinyPalette_Doduo, .iconSprite = gMonIcon_Doduo, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_DoduoF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_DoduoF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(6, 5, SHADOW_SIZE_M) FOOTPRINT(Doduo) OVERWORLD( @@ -10005,22 +10036,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 268, .trainerOffset = 0, .frontPic = gMonFrontPic_Dodrio, - .frontPicFemale = gMonFrontPic_DodrioF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dodrio, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_LUNGE_GROW : ANIM_V_STRETCH, .backPic = gMonBackPic_Dodrio, - .backPicFemale = gMonBackPic_DodrioF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Dodrio, .shinyPalette = gMonShinyPalette_Dodrio, .iconSprite = gMonIcon_Dodrio, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_DodrioF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_DodrioF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(3, 12, SHADOW_SIZE_L) FOOTPRINT(Dodrio) OVERWORLD( @@ -10083,17 +10116,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Seel, .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .frontAnimFrames = sAnims_Seel, - .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Seel, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Seel, .shinyPalette = gMonShinyPalette_Seel, .iconSprite = gMonIcon_Seel, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(0, 3, SHADOW_SIZE_L) FOOTPRINT(Seel) OVERWORLD( @@ -10149,12 +10182,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 275, .trainerOffset = 0, .frontPic = gMonFrontPic_Dewgong, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 2, .frontAnimFrames = sAnims_Dewgong, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Dewgong, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Dewgong, @@ -10213,13 +10246,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Grimer, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 9, .frontAnimFrames = sAnims_Grimer, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Grimer, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Grimer, .shinyPalette = gMonShinyPalette_Grimer, @@ -10280,13 +10313,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Muk, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 7, .frontAnimFrames = sAnims_Muk, .frontAnimId = ANIM_DEEP_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 45, .backPic = gMonBackPic_Muk, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 9, .backAnimId = BACK_ANIM_H_STRETCH, .palette = gMonPalette_Muk, .shinyPalette = gMonShinyPalette_Muk, @@ -10343,33 +10376,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_GrimerAlolan, + .frontPic = gMonFrontPic_GrimerAlola, .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 11, - .frontAnimFrames = sAnims_GrimerAlolan, + .frontAnimFrames = sAnims_GrimerAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GrimerAlolan, + .backPic = gMonBackPic_GrimerAlola, .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GrimerAlolan, - .shinyPalette = gMonShinyPalette_GrimerAlolan, - .iconSprite = gMonIcon_GrimerAlolan, + .palette = gMonPalette_GrimerAlola, + .shinyPalette = gMonShinyPalette_GrimerAlola, + .iconSprite = gMonIcon_GrimerAlola, .iconPalIndex = 1, SHADOW(2, 1, SHADOW_SIZE_M) FOOTPRINT(Grimer) OVERWORLD( - sPicTable_GrimerAlolan, + sPicTable_GrimerAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GrimerAlolan, - gShinyOverworldPalette_GrimerAlolan + gOverworldPalette_GrimerAlola, + gShinyOverworldPalette_GrimerAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sGrimerAlolanLevelUpLearnset, - .teachableLearnset = sGrimerAlolanTeachableLearnset, - .eggMoveLearnset = sGrimerAlolanEggMoveLearnset, + .levelUpLearnset = sGrimerAlolaLevelUpLearnset, + .teachableLearnset = sGrimerAlolaTeachableLearnset, + .eggMoveLearnset = sGrimerAlolaEggMoveLearnset, .formSpeciesIdTable = sGrimerFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_MUK_ALOLA}), }, @@ -10411,32 +10444,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MukAlolan, + .frontPic = gMonFrontPic_MukAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, - .frontAnimFrames = sAnims_MukAlolan, + .frontAnimFrames = sAnims_MukAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MukAlolan, + .backPic = gMonBackPic_MukAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MukAlolan, - .shinyPalette = gMonShinyPalette_MukAlolan, - .iconSprite = gMonIcon_MukAlolan, + .palette = gMonPalette_MukAlola, + .shinyPalette = gMonShinyPalette_MukAlola, + .iconSprite = gMonIcon_MukAlola, .iconPalIndex = 0, SHADOW(-1, 7, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Muk) OVERWORLD( - sPicTable_MukAlolan, + sPicTable_MukAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MukAlolan, - gShinyOverworldPalette_MukAlolan + gOverworldPalette_MukAlola, + gShinyOverworldPalette_MukAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sMukAlolanLevelUpLearnset, - .teachableLearnset = sMukAlolanTeachableLearnset, + .levelUpLearnset = sMukAlolaLevelUpLearnset, + .teachableLearnset = sMukAlolaTeachableLearnset, .formSpeciesIdTable = sMukFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -10485,13 +10518,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Shellder, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .frontAnimFrames = sAnims_Shellder, .frontAnimId = ANIM_TWIST, .frontAnimDelay = 20, .backPic = gMonBackPic_Shellder, - .backPicSize = MON_COORDS_SIZE(48, 24), - .backPicYOffset = 21, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 24), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 21, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Shellder, .shinyPalette = gMonShinyPalette_Shellder, @@ -10554,13 +10587,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 269, .trainerOffset = 1, .frontPic = gMonFrontPic_Cloyster, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 3, .frontAnimFrames = sAnims_Cloyster, - .frontAnimId = ANIM_V_SHAKE_TWICE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_SLIDE_WOBBLE : ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Cloyster, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Cloyster, .shinyPalette = gMonShinyPalette_Cloyster, @@ -10617,14 +10650,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gastly, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 13, .frontAnimFrames = sAnims_Gastly, - .frontAnimId = ANIM_SHRINK_GROW, - .enemyMonElevation = 13, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_GLOW_BLACK : ANIM_SHRINK_GROW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 4 : 13, .backPic = gMonBackPic_Gastly, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 6, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Gastly, .shinyPalette = gMonShinyPalette_Gastly, @@ -10681,15 +10714,15 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 293, .trainerOffset = 2, .frontPic = gMonFrontPic_Haunter, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 13, .frontAnimFrames = sAnims_Haunter, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 23, - .enemyMonElevation = 14, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 4 : 14, .backPic = gMonBackPic_Haunter, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Haunter, .shinyPalette = gMonShinyPalette_Haunter, @@ -10759,12 +10792,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 2, .frontPic = gMonFrontPic_Gengar, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 7, .frontAnimFrames = sAnims_Gengar, .frontAnimId = ANIM_GROW_IN_STAGES, .backPic = gMonBackPic_Gengar, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Gengar, .shinyPalette = gMonShinyPalette_Gengar, @@ -10879,18 +10912,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 302, .trainerOffset = 2, - .frontPic = gMonFrontPic_GengarGigantamax, + .frontPic = gMonFrontPic_GengarGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 7, - .frontAnimFrames = sAnims_GengarGigantamax, + .frontAnimFrames = sAnims_GengarGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GengarGigantamax, + .backPic = gMonBackPic_GengarGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GengarGigantamax, - .shinyPalette = gMonShinyPalette_GengarGigantamax, - .iconSprite = gMonIcon_GengarGigantamax, + .palette = gMonPalette_GengarGmax, + .shinyPalette = gMonShinyPalette_GengarGmax, + .iconSprite = gMonIcon_GengarGmax, .iconPalIndex = 2, NO_SHADOW FOOTPRINT(Gengar) @@ -10939,12 +10972,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 515, .trainerOffset = 14, .frontPic = gMonFrontPic_Onix, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 3, .frontAnimFrames = sAnims_Onix, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_RAPID_H_HOPS : ANIM_H_SHAKE, .backPic = gMonBackPic_Onix, - .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Onix, @@ -11005,23 +11038,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 516, .trainerOffset = 13, .frontPic = gMonFrontPic_Steelix, - .frontPicFemale = gMonFrontPic_SteelixF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Steelix, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_SHAKE : ANIM_V_SHAKE, .frontAnimDelay = 45, .backPic = gMonBackPic_Steelix, - .backPicFemale = gMonBackPic_SteelixF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Steelix, .shinyPalette = gMonShinyPalette_Steelix, .iconSprite = gMonIcon_Steelix, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SteelixF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_SteelixF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Steelix) OVERWORLD( @@ -11145,14 +11180,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Drowzee, - .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Drowzee, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_CIRCLE_C_CLOCKWISE_SLOW : ANIM_V_STRETCH, .frontAnimDelay = 48, .backPic = gMonBackPic_Drowzee, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Drowzee, .shinyPalette = gMonShinyPalette_Drowzee, @@ -11213,23 +11248,25 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Hypno, - .frontPicFemale = gMonFrontPic_HypnoF, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Hypno, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, .backPic = gMonBackPic_Hypno, - .backPicFemale = gMonBackPic_HypnoF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 5, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Hypno, .shinyPalette = gMonShinyPalette_Hypno, .iconSprite = gMonIcon_Hypno, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_HypnoF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_HypnoF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 9, SHADOW_SIZE_L) FOOTPRINT(Hypno) OVERWORLD( @@ -11287,18 +11324,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Krabby, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 14, .frontAnimFrames = sAnims_Krabby, - .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_SLIDE : ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Krabby, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Krabby, .shinyPalette = gMonShinyPalette_Krabby, .iconSprite = gMonIcon_Krabby, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(0, -1, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Krabby) OVERWORLD( @@ -11351,19 +11388,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Kingler, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 8, .frontAnimFrames = sAnims_Kingler, - .frontAnimId = ANIM_V_SHAKE_TWICE, - .frontAnimDelay = 4, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_ZIGZAG_SLOW : ANIM_V_SHAKE_TWICE, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 0 : 4, .backPic = gMonBackPic_Kingler, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Kingler, .shinyPalette = gMonShinyPalette_Kingler, .iconSprite = gMonIcon_Kingler, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-2, 4, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Kingler) OVERWORLD( @@ -11416,18 +11453,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 2, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_KinglerGigantamax, + .frontPic = gMonFrontPic_KinglerGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_KinglerGigantamax, + .frontAnimFrames = sAnims_KinglerGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_KinglerGigantamax, + .backPic = gMonBackPic_KinglerGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_KinglerGigantamax, - .shinyPalette = gMonShinyPalette_KinglerGigantamax, - .iconSprite = gMonIcon_KinglerGigantamax, + .palette = gMonPalette_KinglerGmax, + .shinyPalette = gMonShinyPalette_KinglerGmax, + .iconSprite = gMonIcon_KinglerGmax, .iconPalIndex = 0, SHADOW(-3, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Kingler) @@ -11484,12 +11521,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Voltorb, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 32) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 19 : 15, .frontAnimFrames = sAnims_Voltorb, - .frontAnimId = ANIM_SWING_CONCAVE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_SWING_CONCAVE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 10 : 0, .backPic = gMonBackPic_Voltorb, - .backPicSize = MON_COORDS_SIZE(48, 40), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), .backPicYOffset = 14, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Voltorb, @@ -11547,12 +11585,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Electrode, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Electrode, - .frontAnimId = ANIM_SHRINK_GROW_VIBRATE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_SHRINK_GROW_VIBRATE_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 0, .backPic = gMonBackPic_Electrode, - .backPicSize = MON_COORDS_SIZE(64, 40), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Electrode, @@ -11609,32 +11648,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = -8, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_VoltorbHisuian, + .frontPic = gMonFrontPic_VoltorbHisui, .frontPicSize = MON_COORDS_SIZE(32, 32), .frontPicYOffset = 17, - .frontAnimFrames = sAnims_VoltorbHisuian, + .frontAnimFrames = sAnims_VoltorbHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_VoltorbHisuian, + .backPic = gMonBackPic_VoltorbHisui, .backPicSize = MON_COORDS_SIZE(48, 32), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_VoltorbHisuian, - .shinyPalette = gMonShinyPalette_VoltorbHisuian, - .iconSprite = gMonIcon_VoltorbHisuian, + .palette = gMonPalette_VoltorbHisui, + .shinyPalette = gMonShinyPalette_VoltorbHisui, + .iconSprite = gMonIcon_VoltorbHisui, .iconPalIndex = 0, SHADOW(1, -4, SHADOW_SIZE_S) FOOTPRINT(Voltorb) OVERWORLD( - sPicTable_VoltorbHisuian, + sPicTable_VoltorbHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_VoltorbHisuian, - gShinyOverworldPalette_VoltorbHisuian + gOverworldPalette_VoltorbHisui, + gShinyOverworldPalette_VoltorbHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sVoltorbHisuianLevelUpLearnset, - .teachableLearnset = sVoltorbHisuianTeachableLearnset, + .levelUpLearnset = sVoltorbHisuiLevelUpLearnset, + .teachableLearnset = sVoltorbHisuiTeachableLearnset, .formSpeciesIdTable = sVoltorbFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_LEAF_STONE, SPECIES_ELECTRODE_HISUI}), }, @@ -11673,32 +11712,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ElectrodeHisuian, + .frontPic = gMonFrontPic_ElectrodeHisui, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, - .frontAnimFrames = sAnims_ElectrodeHisuian, + .frontAnimFrames = sAnims_ElectrodeHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ElectrodeHisuian, + .backPic = gMonBackPic_ElectrodeHisui, .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ElectrodeHisuian, - .shinyPalette = gMonShinyPalette_ElectrodeHisuian, - .iconSprite = gMonIcon_ElectrodeHisuian, + .palette = gMonPalette_ElectrodeHisui, + .shinyPalette = gMonShinyPalette_ElectrodeHisui, + .iconSprite = gMonIcon_ElectrodeHisui, .iconPalIndex = 1, SHADOW(-1, 4, SHADOW_SIZE_M) FOOTPRINT(Electrode) OVERWORLD( - sPicTable_ElectrodeHisuian, + sPicTable_ElectrodeHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ElectrodeHisuian, - gShinyOverworldPalette_ElectrodeHisuian + gOverworldPalette_ElectrodeHisui, + gShinyOverworldPalette_ElectrodeHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sElectrodeHisuianLevelUpLearnset, - .teachableLearnset = sElectrodeHisuianTeachableLearnset, + .levelUpLearnset = sElectrodeHisuiLevelUpLearnset, + .teachableLearnset = sElectrodeHisuiTeachableLearnset, .formSpeciesIdTable = sElectrodeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -11741,13 +11780,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Exeggcute, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 12, .frontAnimFrames = sAnims_Exeggcute, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Exeggcute, - .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 18, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 18, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Exeggcute, .shinyPalette = gMonShinyPalette_Exeggcute, @@ -11820,8 +11859,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontAnimFrames = sAnims_Exeggutor, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Exeggutor, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Exeggutor, .shinyPalette = gMonShinyPalette_Exeggutor, @@ -11877,32 +11916,32 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 5, - .frontPic = gMonFrontPic_ExeggutorAlolan, + .frontPic = gMonFrontPic_ExeggutorAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_ExeggutorAlolan, + .frontAnimFrames = sAnims_ExeggutorAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ExeggutorAlolan, + .backPic = gMonBackPic_ExeggutorAlola, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ExeggutorAlolan, - .shinyPalette = gMonShinyPalette_ExeggutorAlolan, - .iconSprite = gMonIcon_ExeggutorAlolan, + .palette = gMonPalette_ExeggutorAlola, + .shinyPalette = gMonShinyPalette_ExeggutorAlola, + .iconSprite = gMonIcon_ExeggutorAlola, .iconPalIndex = 1, SHADOW(6, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Exeggutor) OVERWORLD( - sPicTable_ExeggutorAlolan, + sPicTable_ExeggutorAlola, SIZE_64x64, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ExeggutorAlolan, - gShinyOverworldPalette_ExeggutorAlolan + gOverworldPalette_ExeggutorAlola, + gShinyOverworldPalette_ExeggutorAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sExeggutorAlolanLevelUpLearnset, - .teachableLearnset = sExeggutorAlolanTeachableLearnset, + .levelUpLearnset = sExeggutorAlolaLevelUpLearnset, + .teachableLearnset = sExeggutorAlolaTeachableLearnset, .formSpeciesIdTable = sExeggutorFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -11945,19 +11984,19 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Cubone, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 13, .frontAnimFrames = sAnims_Cubone, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .frontAnimDelay = 30, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL : ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimDelay = P_GBA_STYLE_SPECIES_GFX ? 0 : 30, .backPic = gMonBackPic_Cubone, - .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Cubone, .shinyPalette = gMonShinyPalette_Cubone, .iconSprite = gMonIcon_Cubone, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(1, 0, SHADOW_SIZE_S) FOOTPRINT(Cubone) OVERWORLD( @@ -12012,18 +12051,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Marowak, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .frontAnimFrames = sAnims_Marowak, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, .backPic = gMonBackPic_Marowak, - .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Marowak, .shinyPalette = gMonShinyPalette_Marowak, .iconSprite = gMonIcon_Marowak, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(6, 6, SHADOW_SIZE_M) FOOTPRINT(Marowak) OVERWORLD( @@ -12066,37 +12105,37 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .categoryName = _("Bone Keeper"), .height = 10, .weight = 340, - .description = gMarowakAlolanPokedexText, + .description = gMarowakAlolaPokedexText, .pokemonScale = 293, .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MarowakAlolan, + .frontPic = gMonFrontPic_MarowakAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_MarowakAlolan, + .frontAnimFrames = sAnims_MarowakAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MarowakAlolan, + .backPic = gMonBackPic_MarowakAlola, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MarowakAlolan, - .shinyPalette = gMonShinyPalette_MarowakAlolan, - .iconSprite = gMonIcon_MarowakAlolan, + .palette = gMonPalette_MarowakAlola, + .shinyPalette = gMonShinyPalette_MarowakAlola, + .iconSprite = gMonIcon_MarowakAlola, .iconPalIndex = 1, SHADOW(-2, 11, SHADOW_SIZE_M) FOOTPRINT(Marowak) OVERWORLD( - sPicTable_MarowakAlolan, + sPicTable_MarowakAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MarowakAlolan, - gShinyOverworldPalette_MarowakAlolan + gOverworldPalette_MarowakAlola, + gShinyOverworldPalette_MarowakAlola ) .isAlolanForm = TRUE, - .levelUpLearnset = sMarowakAlolanLevelUpLearnset, - .teachableLearnset = sMarowakAlolanTeachableLearnset, + .levelUpLearnset = sMarowakAlolaLevelUpLearnset, + .teachableLearnset = sMarowakAlolaTeachableLearnset, .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, @@ -12126,39 +12165,39 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .categoryName = _("Bone Keeper"), .height = 17, .weight = 980, - .description = gMarowakAlolanPokedexText, + .description = gMarowakAlolaPokedexText, .pokemonScale = 293, .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MarowakAlolan, + .frontPic = gMonFrontPic_MarowakAlola, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_MarowakAlolan, + .frontAnimFrames = sAnims_MarowakAlola, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MarowakAlolan, + .backPic = gMonBackPic_MarowakAlola, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MarowakAlolan, - .shinyPalette = gMonShinyPalette_MarowakAlolan, - .iconSprite = gMonIcon_MarowakAlolan, + .palette = gMonPalette_MarowakAlola, + .shinyPalette = gMonShinyPalette_MarowakAlola, + .iconSprite = gMonIcon_MarowakAlola, .iconPalIndex = 1, SHADOW(-2, 11, SHADOW_SIZE_M) FOOTPRINT(Marowak) OVERWORLD( - sPicTable_MarowakAlolan, + sPicTable_MarowakAlola, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MarowakAlolan, - gShinyOverworldPalette_MarowakAlolan + gOverworldPalette_MarowakAlola, + gShinyOverworldPalette_MarowakAlola ) .isTotem = TRUE, .isAlolanForm = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sMarowakAlolanLevelUpLearnset, - .teachableLearnset = sMarowakAlolanTeachableLearnset, + .levelUpLearnset = sMarowakAlolaLevelUpLearnset, + .teachableLearnset = sMarowakAlolaTeachableLearnset, .formSpeciesIdTable = sMarowakFormSpeciesIdTable, }, #endif //P_ALOLAN_FORMS @@ -12205,13 +12244,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Tyrogue, - .frontPicSize = MON_COORDS_SIZE(40, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Tyrogue, - .frontAnimId = ANIM_BACK_AND_LUNGE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_BACK_AND_LUNGE, .backPic = gMonBackPic_Tyrogue, .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Tyrogue, .shinyPalette = gMonShinyPalette_Tyrogue, @@ -12275,13 +12314,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 259, .trainerOffset = 1, .frontPic = gMonFrontPic_Hitmonlee, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .frontAnimFrames = sAnims_Hitmonlee, - .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Hitmonlee, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 4, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Hitmonlee, .shinyPalette = gMonShinyPalette_Hitmonlee, @@ -12340,13 +12379,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 277, .trainerOffset = 2, .frontPic = gMonFrontPic_Hitmonchan, - .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 64), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Hitmonchan, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Hitmonchan, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Hitmonchan, .shinyPalette = gMonShinyPalette_Hitmonchan, @@ -12406,13 +12445,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Hitmontop, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 7, .frontAnimFrames = sAnims_Hitmontop, - .frontAnimId = ANIM_SWING_CONCAVE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_VIBRATE : ANIM_SWING_CONCAVE, .backPic = gMonBackPic_Hitmontop, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_CIRCLE_COUNTERCLOCKWISE, .palette = gMonPalette_Hitmontop, .shinyPalette = gMonShinyPalette_Hitmontop, @@ -12471,18 +12510,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Lickitung, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Lickitung, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE_SLOW : ANIM_V_STRETCH, .backPic = gMonBackPic_Lickitung, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Lickitung, .shinyPalette = gMonShinyPalette_Lickitung, .iconSprite = gMonIcon_Lickitung, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 0, SHADOW(2, 6, SHADOW_SIZE_M) FOOTPRINT(Lickitung) OVERWORLD( @@ -12605,14 +12644,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Koffing, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .frontAnimFrames = sAnims_Koffing, - .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, - .enemyMonElevation = 14, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SHRINK_GROW : ANIM_V_SLIDE_WOBBLE_SMALL, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 14, .backPic = gMonBackPic_Koffing, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 3, .backAnimId = BACK_ANIM_GROW, .palette = gMonPalette_Koffing, .shinyPalette = gMonShinyPalette_Koffing, @@ -12677,13 +12716,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Weezing, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 0, .frontAnimFrames = sAnims_Weezing, .frontAnimId = ANIM_V_SLIDE, - .enemyMonElevation = 3, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 3, .backPic = gMonBackPic_Weezing, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 9, .backAnimId = BACK_ANIM_GROW, .palette = gMonPalette_Weezing, .shinyPalette = gMonShinyPalette_Weezing, @@ -12741,33 +12780,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_WeezingGalarian, + .frontPic = gMonFrontPic_WeezingGalar, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_WeezingGalarian, + .frontAnimFrames = sAnims_WeezingGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 6, - .backPic = gMonBackPic_WeezingGalarian, + .backPic = gMonBackPic_WeezingGalar, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_WeezingGalarian, - .shinyPalette = gMonShinyPalette_WeezingGalarian, - .iconSprite = gMonIcon_WeezingGalarian, + .palette = gMonPalette_WeezingGalar, + .shinyPalette = gMonShinyPalette_WeezingGalar, + .iconSprite = gMonIcon_WeezingGalar, .iconPalIndex = 1, SHADOW(7, 17, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Weezing) OVERWORLD( - sPicTable_WeezingGalarian, + sPicTable_WeezingGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_WeezingGalarian, - gShinyOverworldPalette_WeezingGalarian + gOverworldPalette_WeezingGalar, + gShinyOverworldPalette_WeezingGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sWeezingGalarianLevelUpLearnset, - .teachableLearnset = sWeezingGalarianTeachableLearnset, + .levelUpLearnset = sWeezingGalarLevelUpLearnset, + .teachableLearnset = sWeezingGalarTeachableLearnset, .formSpeciesIdTable = sWeezingFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -12809,22 +12848,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Rhyhorn, - .frontPicFemale = gMonFrontPic_RhyhornF, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 12, .frontAnimFrames = sAnims_Rhyhorn, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Rhyhorn, - .backPicFemale = gMonBackPic_RhyhornF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 11, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Rhyhorn, .shinyPalette = gMonShinyPalette_Rhyhorn, .iconSprite = gMonIcon_Rhyhorn, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RhyhornF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 40), + .backPicFemale = gMonBackPic_RhyhornF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 0, SHADOW_SIZE_L) FOOTPRINT(Rhyhorn) OVERWORLD( @@ -12882,22 +12923,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 299, .trainerOffset = 2, .frontPic = gMonFrontPic_Rhydon, - .frontPicFemale = gMonFrontPic_RhydonF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 3, .frontAnimFrames = sAnims_Rhydon, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SHRINK_GROW : ANIM_V_STRETCH, .backPic = gMonBackPic_Rhydon, - .backPicFemale = gMonBackPic_RhydonF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Rhydon, .shinyPalette = gMonShinyPalette_Rhydon, .iconSprite = gMonIcon_Rhydon, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RhydonF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_RhydonF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(3, 9, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Rhydon) OVERWORLD( @@ -12962,22 +13005,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 369, .trainerOffset = 7, .frontPic = gMonFrontPic_Rhyperior, - .frontPicFemale = gMonFrontPic_RhyperiorF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Rhyperior, .frontAnimId = ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Rhyperior, - .backPicFemale = gMonBackPic_RhyperiorF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Rhyperior, .shinyPalette = gMonShinyPalette_Rhyperior, .iconSprite = gMonIcon_Rhyperior, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RhyperiorF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_RhyperiorF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Rhyperior) OVERWORLD( @@ -13107,7 +13152,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Chansey, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE_SLOW : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Chansey, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 11, @@ -13170,17 +13215,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 3, .frontPic = gMonFrontPic_Blissey, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 5, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .frontAnimFrames = sAnims_Blissey, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Blissey, - .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 16, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 16, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Blissey, .shinyPalette = gMonShinyPalette_Blissey, .iconSprite = gMonIcon_Blissey, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 0, SHADOW(1, 8, SHADOW_SIZE_L) FOOTPRINT(Blissey) OVERWORLD( @@ -13237,13 +13282,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Tangela, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 12, .frontAnimFrames = sAnims_Tangela, - .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL : ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Tangela, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 12, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Tangela, .shinyPalette = gMonShinyPalette_Tangela, @@ -13301,9 +13346,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 334, .trainerOffset = 4, .frontPic = gMonFrontPic_Tangrowth, - .frontPicFemale = gMonFrontPic_TangrowthF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Tangrowth, .frontAnimId = ANIM_H_STRETCH, @@ -13315,6 +13358,10 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .shinyPalette = gMonShinyPalette_Tangrowth, .iconSprite = gMonIcon_Tangrowth, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_TangrowthF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 9, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Tangrowth) OVERWORLD( @@ -13374,17 +13421,17 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 8, .frontPic = gMonFrontPic_Kangaskhan, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .frontAnimFrames = sAnims_Kangaskhan, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Kangaskhan, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Kangaskhan, .shinyPalette = gMonShinyPalette_Kangaskhan, .iconSprite = gMonIcon_Kangaskhan, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(0, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Kangaskhan) OVERWORLD( @@ -13504,12 +13551,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Horsea, .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 14, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 14, .frontAnimFrames = sAnims_Horsea, - .frontAnimId = ANIM_V_JUMPS_SMALL, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_TWIST : ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Horsea, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 14, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 14, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Horsea, .shinyPalette = gMonShinyPalette_Horsea, @@ -13572,13 +13619,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Seadra, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .frontAnimFrames = sAnims_Seadra, .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Seadra, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Seadra, .shinyPalette = gMonShinyPalette_Seadra, @@ -13649,13 +13696,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 287, .trainerOffset = 0, .frontPic = gMonFrontPic_Kingdra, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 1, .frontAnimFrames = sAnims_Kingdra, .frontAnimId = ANIM_CIRCLE_INTO_BG, .backPic = gMonBackPic_Kingdra, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Kingdra, .shinyPalette = gMonShinyPalette_Kingdra, @@ -13714,22 +13761,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Goldeen, - .frontPicFemale = gMonFrontPic_GoldeenF, - .frontPicSize = MON_COORDS_SIZE(64, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 13, .frontAnimFrames = sAnims_Goldeen, - .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONVEX : ANIM_H_SLIDE_WOBBLE, .backPic = gMonBackPic_Goldeen, - .backPicFemale = gMonBackPic_GoldeenF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Goldeen, .shinyPalette = gMonShinyPalette_Goldeen, .iconSprite = gMonIcon_Goldeen, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GoldeenF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 40), + .backPicFemale = gMonBackPic_GoldeenF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-6, 0, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Goldeen) OVERWORLD( @@ -13788,22 +13837,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Seaking, - .frontPicFemale = gMonFrontPic_SeakingF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .frontAnimFrames = sAnims_Seaking, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .backPic = gMonBackPic_Seaking, - .backPicFemale = gMonBackPic_SeakingF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Seaking, .shinyPalette = gMonShinyPalette_Seaking, .iconSprite = gMonIcon_Seaking, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SeakingF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_SeakingF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 8, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Seaking) OVERWORLD( @@ -13864,13 +13915,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Staryu, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .frontAnimFrames = sAnims_Staryu, .frontAnimId = ANIM_TWIST_TWICE, .backPic = gMonBackPic_Staryu, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Staryu, .shinyPalette = gMonShinyPalette_Staryu, @@ -13933,8 +13984,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontAnimFrames = sAnims_Starmie, .frontAnimId = ANIM_TWIST, .backPic = gMonBackPic_Starmie, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 4, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Starmie, .shinyPalette = gMonShinyPalette_Starmie, @@ -14069,13 +14120,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_MrMime, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .frontAnimFrames = sAnims_MrMime, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_MrMime, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_MrMime, .shinyPalette = gMonShinyPalette_MrMime, @@ -14132,33 +14183,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 6, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MrMimeGalarian, + .frontPic = gMonFrontPic_MrMimeGalar, .frontPicSize = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, - .frontAnimFrames = sAnims_MrMimeGalarian, + .frontAnimFrames = sAnims_MrMimeGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MrMimeGalarian, + .backPic = gMonBackPic_MrMimeGalar, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MrMimeGalarian, - .shinyPalette = gMonShinyPalette_MrMimeGalarian, - .iconSprite = gMonIcon_MrMimeGalarian, + .palette = gMonPalette_MrMimeGalar, + .shinyPalette = gMonShinyPalette_MrMimeGalar, + .iconSprite = gMonIcon_MrMimeGalar, .iconPalIndex = 0, SHADOW(-1, 6, SHADOW_SIZE_M) FOOTPRINT(MrMime) OVERWORLD( - sPicTable_MrMimeGalarian, + sPicTable_MrMimeGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MrMimeGalarian, - gShinyOverworldPalette_MrMimeGalarian + gOverworldPalette_MrMimeGalar, + gShinyOverworldPalette_MrMimeGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sMrMimeGalarianLevelUpLearnset, - .teachableLearnset = sMrMimeGalarianTeachableLearnset, - .eggMoveLearnset = sMrMimeGalarianEggMoveLearnset, + .levelUpLearnset = sMrMimeGalarLevelUpLearnset, + .teachableLearnset = sMrMimeGalarTeachableLearnset, + .eggMoveLearnset = sMrMimeGalarEggMoveLearnset, .formSpeciesIdTable = sMrMimeFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 42, SPECIES_MR_RIME}), }, @@ -14265,21 +14316,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 293, .trainerOffset = 2, .frontPic = gMonFrontPic_Scyther, - .frontPicFemale = gMonFrontPic_ScytherF, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 1, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .frontAnimFrames = sAnims_Scyther, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 10, .backPic = gMonBackPic_Scyther, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Scyther, .shinyPalette = gMonShinyPalette_Scyther, .iconSprite = gMonIcon_Scyther, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ScytherF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 7, SHADOW_SIZE_L) FOOTPRINT(Scyther) OVERWORLD( @@ -14344,21 +14397,23 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Scizor, - .frontPicFemale = gMonFrontPic_ScizorF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .frontAnimFrames = sAnims_Scizor, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 19, .backPic = gMonBackPic_Scizor, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Scizor, .shinyPalette = gMonShinyPalette_Scizor, .iconSprite = gMonIcon_Scizor, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ScizorF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(3, 9, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Scizor) OVERWORLD( @@ -14545,8 +14600,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Smoochum, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(24, 40) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 13, .frontAnimFrames = sAnims_Smoochum, .frontAnimId = ANIM_GROW_VIBRATE, .frontAnimDelay = 40, @@ -14614,13 +14669,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 300, .trainerOffset = 1, .frontPic = gMonFrontPic_Jynx, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 9, .frontAnimFrames = sAnims_Jynx, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Jynx, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Jynx, .shinyPalette = gMonShinyPalette_Jynx, @@ -14680,13 +14735,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Elekid, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .frontAnimFrames = sAnims_Elekid, .frontAnimId = ANIM_FLASH_YELLOW, .backPic = gMonBackPic_Elekid, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Elekid, .shinyPalette = gMonShinyPalette_Elekid, @@ -14746,13 +14801,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Electabuzz, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 4, .frontAnimFrames = sAnims_Electabuzz, - .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_FLASH_YELLOW : ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW, .backPic = gMonBackPic_Electabuzz, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Electabuzz, .shinyPalette = gMonShinyPalette_Electabuzz, @@ -14884,18 +14939,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magby, - .frontPicSize = MON_COORDS_SIZE(32, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(32, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 11, .frontAnimFrames = sAnims_Magby, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Magby, - .backPicSize = MON_COORDS_SIZE(40, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 10, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Magby, .shinyPalette = gMonShinyPalette_Magby, .iconSprite = gMonIcon_Magby, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 0, SHADOW(0, 2, SHADOW_SIZE_S) FOOTPRINT(Magby) OVERWORLD( @@ -14949,13 +15004,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magmar, - .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Magmar, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Magmar, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Magmar, .shinyPalette = gMonShinyPalette_Magmar, @@ -15089,13 +15144,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Pinsir, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .frontAnimFrames = sAnims_Pinsir, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_GROW_VIBRATE : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Pinsir, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Pinsir, .shinyPalette = gMonShinyPalette_Pinsir, @@ -15220,13 +15275,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Tauros, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 5, .frontAnimFrames = sAnims_Tauros, .frontAnimId = ANIM_V_SHAKE_TWICE, .frontAnimDelay = 10, .backPic = gMonBackPic_Tauros, - .backPicSize = MON_COORDS_SIZE(64, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Tauros, @@ -15283,33 +15338,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_TaurosPaldeanCombatBreed, + .frontPic = gMonFrontPic_TaurosPaldeaCombat, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, + .frontAnimFrames = sAnims_TaurosPaldea, /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ - .backPic = gMonBackPic_TaurosPaldeanCombatBreed, + .backPic = gMonBackPic_TaurosPaldeaCombat, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - .palette = gMonPalette_TaurosPaldeanCombatBreed, - .shinyPalette = gMonShinyPalette_TaurosPaldeanCombatBreed, - .iconSprite = gMonIcon_TaurosPaldeanCombatBreed, + .palette = gMonPalette_TaurosPaldeaCombat, + .shinyPalette = gMonShinyPalette_TaurosPaldeaCombat, + .iconSprite = gMonIcon_TaurosPaldeaCombat, .iconPalIndex = 0, SHADOW(1, 7, SHADOW_SIZE_L) FOOTPRINT(Tauros) OVERWORLD( - sPicTable_TaurosPaldeanCombatBreed, + sPicTable_TaurosPaldeaCombat, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_TaurosPaldeanCombatBreed, - gShinyOverworldPalette_TaurosPaldeanCombatBreed + gOverworldPalette_TaurosPaldeaCombat, + gShinyOverworldPalette_TaurosPaldeaCombat ) .isPaldeanForm = TRUE, - .levelUpLearnset = sTaurosPaldeanCombatBreedLevelUpLearnset, - .teachableLearnset = sTaurosPaldeanCombatBreedTeachableLearnset, - .eggMoveLearnset = sTaurosPaldeanCombatBreedEggMoveLearnset, + .levelUpLearnset = sTaurosPaldeaCombatLevelUpLearnset, + .teachableLearnset = sTaurosPaldeaCombatTeachableLearnset, + .eggMoveLearnset = sTaurosPaldeaCombatEggMoveLearnset, .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, @@ -15347,33 +15402,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_TaurosPaldeanBlazeBreed, + .frontPic = gMonFrontPic_TaurosPaldeaBlaze, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, + .frontAnimFrames = sAnims_TaurosPaldea, /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ - .backPic = gMonBackPic_TaurosPaldeanBlazeBreed, + .backPic = gMonBackPic_TaurosPaldeaBlaze, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - .palette = gMonPalette_TaurosPaldeanBlazeBreed, - .shinyPalette = gMonShinyPalette_TaurosPaldeanBlazeBreed, - .iconSprite = gMonIcon_TaurosPaldeanBlazeBreed, + .palette = gMonPalette_TaurosPaldeaBlaze, + .shinyPalette = gMonShinyPalette_TaurosPaldeaBlaze, + .iconSprite = gMonIcon_TaurosPaldeaBlaze, .iconPalIndex = 0, SHADOW(1, 7, SHADOW_SIZE_L) FOOTPRINT(Tauros) OVERWORLD( - sPicTable_TaurosPaldeanBlazeBreed, + sPicTable_TaurosPaldeaBlaze, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_TaurosPaldeanBlazeBreed, - gShinyOverworldPalette_TaurosPaldeanBlazeBreed + gOverworldPalette_TaurosPaldeaBlaze, + gShinyOverworldPalette_TaurosPaldeaBlaze ) .isPaldeanForm = TRUE, - .levelUpLearnset = sTaurosPaldeanBlazeBreedLevelUpLearnset, - .teachableLearnset = sTaurosPaldeanBlazeBreedTeachableLearnset, - .eggMoveLearnset = sTaurosPaldeanBlazeBreedEggMoveLearnset, + .levelUpLearnset = sTaurosPaldeaBlazeLevelUpLearnset, + .teachableLearnset = sTaurosPaldeaBlazeTeachableLearnset, + .eggMoveLearnset = sTaurosPaldeaBlazeEggMoveLearnset, .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, @@ -15411,33 +15466,33 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_TaurosPaldeanAquaBreed, + .frontPic = gMonFrontPic_TaurosPaldeaAqua, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_TaurosPaldean, + .frontAnimFrames = sAnims_TaurosPaldea, /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ - .backPic = gMonBackPic_TaurosPaldeanAquaBreed, + .backPic = gMonBackPic_TaurosPaldeaAqua, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, - .palette = gMonPalette_TaurosPaldeanAquaBreed, - .shinyPalette = gMonShinyPalette_TaurosPaldeanAquaBreed, - .iconSprite = gMonIcon_TaurosPaldeanAquaBreed, + .palette = gMonPalette_TaurosPaldeaAqua, + .shinyPalette = gMonShinyPalette_TaurosPaldeaAqua, + .iconSprite = gMonIcon_TaurosPaldeaAqua, .iconPalIndex = 0, SHADOW(1, 7, SHADOW_SIZE_L) FOOTPRINT(Tauros) OVERWORLD( - sPicTable_TaurosPaldeanAquaBreed, + sPicTable_TaurosPaldeaAqua, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_TaurosPaldeanAquaBreed, - gShinyOverworldPalette_TaurosPaldeanAquaBreed + gOverworldPalette_TaurosPaldeaAqua, + gShinyOverworldPalette_TaurosPaldeaAqua ) .isPaldeanForm = TRUE, - .levelUpLearnset = sTaurosPaldeanAquaBreedLevelUpLearnset, - .teachableLearnset = sTaurosPaldeanAquaBreedTeachableLearnset, - .eggMoveLearnset = sTaurosPaldeanAquaBreedEggMoveLearnset, + .levelUpLearnset = sTaurosPaldeaAquaLevelUpLearnset, + .teachableLearnset = sTaurosPaldeaAquaTeachableLearnset, + .eggMoveLearnset = sTaurosPaldeaAquaEggMoveLearnset, .formSpeciesIdTable = sTaurosFormSpeciesIdTable, }, #endif //P_PALDEAN_FORMS @@ -15479,22 +15534,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magikarp, - .frontPicFemale = gMonFrontPic_MagikarpF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .frontAnimFrames = sAnims_Magikarp, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, .backPic = gMonBackPic_Magikarp, - .backPicFemale = gMonBackPic_MagikarpF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Magikarp, .shinyPalette = gMonShinyPalette_Magikarp, .iconSprite = gMonIcon_Magikarp, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MagikarpF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_MagikarpF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 7, SHADOW_SIZE_M) FOOTPRINT(Magikarp) OVERWORLD( @@ -15552,22 +15609,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 481, .trainerOffset = 13, .frontPic = gMonFrontPic_Gyarados, - .frontPicFemale = gMonFrontPic_GyaradosF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 2, .frontAnimFrames = sAnims_Gyarados, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL, .backPic = gMonBackPic_Gyarados, - .backPicFemale = gMonBackPic_GyaradosF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 5, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Gyarados, .shinyPalette = gMonShinyPalette_Gyarados, .iconSprite = gMonIcon_Gyarados, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GyaradosF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_GyaradosF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(5, 9, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Gyarados) OVERWORLD( @@ -15688,13 +15747,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 423, .trainerOffset = 8, .frontPic = gMonFrontPic_Lapras, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 2, .frontAnimFrames = sAnims_Lapras, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Lapras, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Lapras, .shinyPalette = gMonShinyPalette_Lapras, @@ -15754,18 +15813,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - .frontPic = gMonFrontPic_LaprasGigantamax, + .frontPic = gMonFrontPic_LaprasGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_LaprasGigantamax, + .frontAnimFrames = sAnims_LaprasGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_LaprasGigantamax, + .backPic = gMonBackPic_LaprasGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_LaprasGigantamax, - .shinyPalette = gMonShinyPalette_LaprasGigantamax, - .iconSprite = gMonIcon_LaprasGigantamax, + .palette = gMonPalette_LaprasGmax, + .shinyPalette = gMonShinyPalette_LaprasGmax, + .iconSprite = gMonIcon_LaprasGmax, .iconPalIndex = 2, SHADOW(2, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Lapras) @@ -15817,12 +15876,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ditto, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 15, .frontAnimFrames = sAnims_Ditto, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .backPic = gMonBackPic_Ditto, - .backPicSize = MON_COORDS_SIZE(48, 32), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(48, 32), .backPicYOffset = 17, .backAnimId = BACK_ANIM_SHRINK_GROW, .palette = gMonPalette_Ditto, @@ -15881,22 +15940,24 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Eevee, - .frontPicFemale = gMonFrontPic_EeveeF, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .frontAnimFrames = sAnims_Eevee, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Eevee, - .backPicFemale = gMonBackPic_EeveeF, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Eevee, .shinyPalette = gMonShinyPalette_Eevee, .iconSprite = gMonIcon_Eevee, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_EeveeF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 2, SHADOW_SIZE_S) FOOTPRINT(Eevee) OVERWORLD( @@ -15965,18 +16026,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 18, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_EeveeGigantamax, + .frontPic = gMonFrontPic_EeveeGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_EeveeGigantamax, + .frontAnimFrames = sAnims_EeveeGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_EeveeGigantamax, + .backPic = gMonBackPic_EeveeGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_EeveeGigantamax, - .shinyPalette = gMonShinyPalette_EeveeGigantamax, - .iconSprite = gMonIcon_EeveeGigantamax, + .palette = gMonPalette_EeveeGmax, + .shinyPalette = gMonShinyPalette_EeveeGmax, + .iconSprite = gMonIcon_EeveeGmax, .iconPalIndex = 2, SHADOW(0, 4, SHADOW_SIZE_L) FOOTPRINT(Eevee) @@ -16020,26 +16081,28 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Eevee, - .frontPicFemale = gMonFrontPic_EeveeF, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Eevee, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Eevee, - .backPicFemale = gMonBackPic_EeveeF, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Eevee, .shinyPalette = gMonShinyPalette_Eevee, .iconSprite = gMonIcon_EeveePartner, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_EeveeF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_EeveeF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE .iconSpriteFemale = gMonIcon_EeveePartnerF, .iconPalIndexFemale = 2, #endif +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 2, SHADOW_SIZE_S) FOOTPRINT(Eevee) OVERWORLD( @@ -16093,13 +16156,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Vaporeon, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 9, .frontAnimFrames = sAnims_Vaporeon, - .frontAnimId = ANIM_GLOW_BLUE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_GLOW_BLUE, .backPic = gMonBackPic_Vaporeon, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Vaporeon, .shinyPalette = gMonShinyPalette_Vaporeon, @@ -16154,18 +16217,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Jolteon, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .frontAnimFrames = sAnims_Jolteon, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Jolteon, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Jolteon, .shinyPalette = gMonShinyPalette_Jolteon, .iconSprite = gMonIcon_Jolteon, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(0, 2, SHADOW_SIZE_M) FOOTPRINT(Jolteon) OVERWORLD( @@ -16215,18 +16278,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Flareon, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .frontAnimFrames = sAnims_Flareon, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_V_SHAKE, .backPic = gMonBackPic_Flareon, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Flareon, .shinyPalette = gMonShinyPalette_Flareon, .iconSprite = gMonIcon_Flareon, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 3, SHADOW(-2, 1, SHADOW_SIZE_L) FOOTPRINT(Flareon) OVERWORLD( @@ -16277,13 +16340,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Espeon, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .frontAnimFrames = sAnims_Espeon, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Espeon, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Espeon, .shinyPalette = gMonShinyPalette_Espeon, @@ -16338,18 +16401,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Umbreon, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .frontAnimFrames = sAnims_Umbreon, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Umbreon, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Umbreon, .shinyPalette = gMonShinyPalette_Umbreon, .iconSprite = gMonIcon_Umbreon, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(0, 3, SHADOW_SIZE_M) FOOTPRINT(Umbreon) OVERWORLD( @@ -16595,11 +16658,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Porygon, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 14, .frontAnimFrames = sAnims_Porygon, .frontAnimId = ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Porygon, - .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Porygon, @@ -16666,10 +16729,10 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicYOffset = 15, .frontAnimFrames = sAnims_Porygon2, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 9, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 0 : 9, .backPic = gMonBackPic_Porygon2, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Porygon2, .shinyPalette = gMonShinyPalette_Porygon2, @@ -16805,13 +16868,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Omanyte, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 14, .frontAnimFrames = sAnims_Omanyte, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .backPic = gMonBackPic_Omanyte, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Omanyte, .shinyPalette = gMonShinyPalette_Omanyte, @@ -16868,13 +16931,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Omastar, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .frontAnimFrames = sAnims_Omastar, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Omastar, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Omastar, .shinyPalette = gMonShinyPalette_Omastar, @@ -16938,7 +17001,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Kabuto, .frontPicSize = MON_COORDS_SIZE(40, 32), - .frontPicYOffset = 16, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 16, .frontAnimFrames = sAnims_Kabuto, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .backPic = gMonBackPic_Kabuto, @@ -17007,12 +17070,12 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Kabutops, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 2, .frontAnimFrames = sAnims_Kabutops, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Kabutops, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Kabutops, .shinyPalette = gMonShinyPalette_Kabutops, @@ -17070,18 +17133,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 4, .frontPic = gMonFrontPic_Aerodactyl, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 4, .frontAnimFrames = sAnims_Aerodactyl, .frontAnimId = ANIM_V_SLIDE_SLOW, - .enemyMonElevation = 9, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .backPic = gMonBackPic_Aerodactyl, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Aerodactyl, .shinyPalette = gMonShinyPalette_Aerodactyl, .iconSprite = gMonIcon_Aerodactyl, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(-2, 16, SHADOW_SIZE_M) FOOTPRINT(Aerodactyl) OVERWORLD( @@ -17264,18 +17327,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 423, .trainerOffset = 11, .frontPic = gMonFrontPic_Snorlax, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 1, .frontAnimFrames = sAnims_Snorlax, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_V_STRETCH, .backPic = gMonBackPic_Snorlax, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Snorlax, .shinyPalette = gMonShinyPalette_Snorlax, .iconSprite = gMonIcon_Snorlax, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 3, SHADOW(0, 9, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Snorlax) OVERWORLD( @@ -17330,18 +17393,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 4, .trainerScale = 423, .trainerOffset = 11, - .frontPic = gMonFrontPic_SnorlaxGigantamax, + .frontPic = gMonFrontPic_SnorlaxGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_SnorlaxGigantamax, + .frontAnimFrames = sAnims_SnorlaxGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SnorlaxGigantamax, + .backPic = gMonBackPic_SnorlaxGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SnorlaxGigantamax, - .shinyPalette = gMonShinyPalette_SnorlaxGigantamax, - .iconSprite = gMonIcon_SnorlaxGigantamax, + .palette = gMonPalette_SnorlaxGmax, + .shinyPalette = gMonShinyPalette_SnorlaxGmax, + .iconSprite = gMonIcon_SnorlaxGmax, .iconPalIndex = 3, SHADOW(0, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Snorlax) @@ -17398,17 +17461,18 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 2, .frontPic = gMonFrontPic_Articuno, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 2, .frontAnimFrames = sAnims_Articuno, .frontAnimId = ANIM_GROW_VIBRATE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 0, .backPic = gMonBackPic_Articuno, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Articuno, .shinyPalette = gMonShinyPalette_Articuno, .iconSprite = gMonIcon_Articuno, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(3, 10, SHADOW_SIZE_M) FOOTPRINT(Articuno) OVERWORLD( @@ -17461,35 +17525,35 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 309, .trainerOffset = 2, - .frontPic = gMonFrontPic_ArticunoGalarian, + .frontPic = gMonFrontPic_ArticunoGalar, .frontPicSize = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 7, - .frontAnimFrames = sAnims_ArticunoGalarian, + .frontAnimFrames = sAnims_ArticunoGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, - .backPic = gMonBackPic_ArticunoGalarian, + .backPic = gMonBackPic_ArticunoGalar, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ArticunoGalarian, - .shinyPalette = gMonShinyPalette_ArticunoGalarian, - .iconSprite = gMonIcon_ArticunoGalarian, + .palette = gMonPalette_ArticunoGalar, + .shinyPalette = gMonShinyPalette_ArticunoGalar, + .iconSprite = gMonIcon_ArticunoGalar, .iconPalIndex = 2, SHADOW(3, 14, SHADOW_SIZE_M) FOOTPRINT(Articuno) OVERWORLD( - sPicTable_ArticunoGalarian, + sPicTable_ArticunoGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ArticunoGalarian, - gShinyOverworldPalette_ArticunoGalarian + gOverworldPalette_ArticunoGalar, + gShinyOverworldPalette_ArticunoGalar ) .isLegendary = TRUE, .isGalarianForm = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sArticunoGalarianLevelUpLearnset, - .teachableLearnset = sArticunoGalarianTeachableLearnset, + .levelUpLearnset = sArticunoGalarLevelUpLearnset, + .teachableLearnset = sArticunoGalarTeachableLearnset, .formSpeciesIdTable = sArticunoFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -17547,8 +17611,8 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontAnimId = ANIM_FLASH_YELLOW, .enemyMonElevation = 8, .backPic = gMonBackPic_Zapdos, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 12, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Zapdos, .shinyPalette = gMonShinyPalette_Zapdos, @@ -17606,34 +17670,34 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 318, .trainerOffset = 3, - .frontPic = gMonFrontPic_ZapdosGalarian, + .frontPic = gMonFrontPic_ZapdosGalar, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_ZapdosGalarian, + .frontAnimFrames = sAnims_ZapdosGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZapdosGalarian, + .backPic = gMonBackPic_ZapdosGalar, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZapdosGalarian, - .shinyPalette = gMonShinyPalette_ZapdosGalarian, - .iconSprite = gMonIcon_ZapdosGalarian, + .palette = gMonPalette_ZapdosGalar, + .shinyPalette = gMonShinyPalette_ZapdosGalar, + .iconSprite = gMonIcon_ZapdosGalar, .iconPalIndex = 0, SHADOW(-2, 11, SHADOW_SIZE_M) FOOTPRINT(Zapdos) OVERWORLD( - sPicTable_ZapdosGalarian, + sPicTable_ZapdosGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZapdosGalarian, - gShinyOverworldPalette_ZapdosGalarian + gOverworldPalette_ZapdosGalar, + gShinyOverworldPalette_ZapdosGalar ) .isLegendary = TRUE, .isGalarianForm = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sZapdosGalarianLevelUpLearnset, - .teachableLearnset = sZapdosGalarianTeachableLearnset, + .levelUpLearnset = sZapdosGalarLevelUpLearnset, + .teachableLearnset = sZapdosGalarTeachableLearnset, .formSpeciesIdTable = sZapdosFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -17682,12 +17746,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerOffset = 8, .frontPic = gMonFrontPic_Moltres, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .frontAnimFrames = sAnims_Moltres, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 5 : 0, .backPic = gMonBackPic_Moltres, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Moltres, .shinyPalette = gMonShinyPalette_Moltres, @@ -17745,34 +17810,34 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .pokemonOffset = 0, .trainerScale = 387, .trainerOffset = 8, - .frontPic = gMonFrontPic_MoltresGalarian, + .frontPic = gMonFrontPic_MoltresGalar, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_MoltresGalarian, + .frontAnimFrames = sAnims_MoltresGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MoltresGalarian, + .backPic = gMonBackPic_MoltresGalar, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MoltresGalarian, - .shinyPalette = gMonShinyPalette_MoltresGalarian, - .iconSprite = gMonIcon_MoltresGalarian, + .palette = gMonPalette_MoltresGalar, + .shinyPalette = gMonShinyPalette_MoltresGalar, + .iconSprite = gMonIcon_MoltresGalar, .iconPalIndex = 0, SHADOW(0, 12, SHADOW_SIZE_M) FOOTPRINT(Moltres) OVERWORLD( - sPicTable_MoltresGalarian, + sPicTable_MoltresGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MoltresGalarian, - gShinyOverworldPalette_MoltresGalarian + gOverworldPalette_MoltresGalar, + gShinyOverworldPalette_MoltresGalar ) .isLegendary = TRUE, .isGalarianForm = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sMoltresGalarianLevelUpLearnset, - .teachableLearnset = sMoltresGalarianTeachableLearnset, + .levelUpLearnset = sMoltresGalarLevelUpLearnset, + .teachableLearnset = sMoltresGalarTeachableLearnset, .formSpeciesIdTable = sMoltresFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -17815,13 +17880,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 386, .trainerOffset = 6, .frontPic = gMonFrontPic_Dratini, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 9, .frontAnimFrames = sAnims_Dratini, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Dratini, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Dratini, .shinyPalette = gMonShinyPalette_Dratini, @@ -17879,13 +17944,13 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 411, .trainerOffset = 5, .frontPic = gMonFrontPic_Dragonair, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 1, .frontAnimFrames = sAnims_Dragonair, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Dragonair, - .backPicSize = MON_COORDS_SIZE(40, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(40, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 4, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Dragonair, .shinyPalette = gMonShinyPalette_Dragonair, @@ -17951,10 +18016,11 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Dragonite, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SLIDE_SLOW : ANIM_V_SHAKE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 0, .backPic = gMonBackPic_Dragonite, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 1, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Dragonite, .shinyPalette = gMonShinyPalette_Dragonite, @@ -18022,7 +18088,7 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .frontAnimFrames = sAnims_Mewtwo, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Mewtwo, - .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Mewtwo, @@ -18214,14 +18280,14 @@ const struct SpeciesInfo gSpeciesInfoGen1[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mew, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 9, .frontAnimFrames = sAnims_Mew, - .frontAnimId = ANIM_ZIGZAG_SLOW, - .enemyMonElevation = 11, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONVEX : ANIM_ZIGZAG_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 11, .backPic = gMonBackPic_Mew, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Mew, .shinyPalette = gMonShinyPalette_Mew, diff --git a/src/data/pokemon/species_info/gen_2_families.h b/src/data/pokemon/species_info/gen_2_families.h index ae5a69439a..b3bd0da95a 100644 --- a/src/data/pokemon/species_info/gen_2_families.h +++ b/src/data/pokemon/species_info/gen_2_families.h @@ -39,12 +39,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Chikorita, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 10, .frontAnimFrames = sAnims_Chikorita, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Chikorita, - .backPicSize = MON_COORDS_SIZE(56, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(56, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Chikorita, @@ -103,13 +103,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Bayleef, - .frontPicSize = MON_COORDS_SIZE(48, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Bayleef, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Bayleef, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 5, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Bayleef, .shinyPalette = gMonShinyPalette_Bayleef, @@ -172,22 +172,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 277, .trainerOffset = 1, .frontPic = gMonFrontPic_Meganium, - .frontPicFemale = gMonFrontPic_MeganiumF, - .frontPicSize = MON_COORDS_SIZE(48, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Meganium, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Meganium, - .backPicFemale = gMonBackPic_MeganiumF, .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 2, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Meganium, .shinyPalette = gMonShinyPalette_Meganium, .iconSprite = gMonIcon_Meganium, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MeganiumF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), + .backPicFemale = gMonBackPic_MeganiumF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 13, SHADOW_SIZE_M) FOOTPRINT(Meganium) OVERWORLD( @@ -245,18 +247,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Cyndaquil, - .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Cyndaquil, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_SMALL : ANIM_V_STRETCH, .backPic = gMonBackPic_Cyndaquil, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Cyndaquil, .shinyPalette = gMonShinyPalette_Cyndaquil, .iconSprite = gMonIcon_Cyndaquil, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 3, SHADOW(0, -1, SHADOW_SIZE_S) FOOTPRINT(Cyndaquil) OVERWORLD( @@ -309,18 +311,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Quilava, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .frontAnimFrames = sAnims_Quilava, - .frontAnimId = ANIM_H_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_H_STRETCH, .backPic = gMonBackPic_Quilava, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 0, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Quilava, .shinyPalette = gMonShinyPalette_Quilava, .iconSprite = gMonIcon_Quilava, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 3, SHADOW(0, 2, SHADOW_SIZE_M) FOOTPRINT(Quilava) OVERWORLD( @@ -386,13 +388,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontAnimId = ANIM_V_SHAKE, .frontAnimDelay = 20, .backPic = gMonBackPic_Typhlosion, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Typhlosion, .shinyPalette = gMonShinyPalette_Typhlosion, .iconSprite = gMonIcon_Typhlosion, - .iconPalIndex = 3, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 3, SHADOW(4, 14, SHADOW_SIZE_L) FOOTPRINT(Typhlosion) OVERWORLD( @@ -443,32 +445,32 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 268, .trainerOffset = 1, - .frontPic = gMonFrontPic_TyphlosionHisuian, + .frontPic = gMonFrontPic_TyphlosionHisui, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_TyphlosionHisuian, + .frontAnimFrames = sAnims_TyphlosionHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_TyphlosionHisuian, + .backPic = gMonBackPic_TyphlosionHisui, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_TyphlosionHisuian, - .shinyPalette = gMonShinyPalette_TyphlosionHisuian, - .iconSprite = gMonIcon_TyphlosionHisuian, + .palette = gMonPalette_TyphlosionHisui, + .shinyPalette = gMonShinyPalette_TyphlosionHisui, + .iconSprite = gMonIcon_TyphlosionHisui, .iconPalIndex = 1, SHADOW(2, 14, SHADOW_SIZE_L) FOOTPRINT(Typhlosion) OVERWORLD( - sPicTable_TyphlosionHisuian, + sPicTable_TyphlosionHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_TyphlosionHisuian, - gShinyOverworldPalette_TyphlosionHisuian + gOverworldPalette_TyphlosionHisui, + gShinyOverworldPalette_TyphlosionHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sTyphlosionHisuianLevelUpLearnset, - .teachableLearnset = sTyphlosionHisuianTeachableLearnset, + .levelUpLearnset = sTyphlosionHisuiLevelUpLearnset, + .teachableLearnset = sTyphlosionHisuiTeachableLearnset, .formSpeciesIdTable = sTyphlosionFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -511,17 +513,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Totodile, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 14, .frontAnimFrames = sAnims_Totodile, .frontAnimId = ANIM_H_JUMPS, .backPic = gMonBackPic_Totodile, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 10, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Totodile, .shinyPalette = gMonShinyPalette_Totodile, .iconSprite = gMonIcon_Totodile, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(2, 0, SHADOW_SIZE_S) FOOTPRINT(Totodile) OVERWORLD( @@ -576,17 +578,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Croconaw, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 5, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .frontAnimFrames = sAnims_Croconaw, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Croconaw, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Croconaw, .shinyPalette = gMonShinyPalette_Croconaw, .iconSprite = gMonIcon_Croconaw, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(2, 8, SHADOW_SIZE_M) FOOTPRINT(Croconaw) OVERWORLD( @@ -645,18 +647,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 7, .frontPic = gMonFrontPic_Feraligatr, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .frontAnimFrames = sAnims_Feraligatr, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 5, .backPic = gMonBackPic_Feraligatr, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 2, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Feraligatr, .shinyPalette = gMonShinyPalette_Feraligatr, .iconSprite = gMonIcon_Feraligatr, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(3, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Feraligatr) OVERWORLD( @@ -708,13 +710,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sentret, - .frontPicSize = MON_COORDS_SIZE(40, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 56) : MON_COORDS_SIZE(40, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .frontAnimFrames = sAnims_Sentret, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Sentret, - .backPicSize = MON_COORDS_SIZE(48, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(48, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Sentret, .shinyPalette = gMonShinyPalette_Sentret, @@ -772,12 +774,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Furret, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 4, .frontAnimFrames = sAnims_Furret, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Furret, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Furret, .shinyPalette = gMonShinyPalette_Furret, @@ -835,12 +837,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Hoothoot, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .frontAnimFrames = sAnims_Hoothoot, .frontAnimId = ANIM_V_SLIDE_SLOW, .backPic = gMonBackPic_Hoothoot, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Hoothoot, .shinyPalette = gMonShinyPalette_Hoothoot, @@ -904,7 +906,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Noctowl, .frontPicSize = MON_COORDS_SIZE(40, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 2, .frontAnimFrames = sAnims_Noctowl, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Noctowl, @@ -966,22 +968,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ledyba, - .frontPicFemale = gMonFrontPic_LedybaF, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Ledyba, .frontAnimId = ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Ledyba, - .backPicFemale = gMonBackPic_LedybaF, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Ledyba, .shinyPalette = gMonShinyPalette_Ledyba, .iconSprite = gMonIcon_Ledyba, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LedybaF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_LedybaF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 4, SHADOW_SIZE_M) FOOTPRINT(Ledyba) OVERWORLD( @@ -1039,23 +1043,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ledian, - .frontPicFemale = gMonFrontPic_LedianF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 6, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 6, .frontAnimFrames = sAnims_Ledian, - .frontAnimId = ANIM_V_SLIDE_WOBBLE, - .enemyMonElevation = 10, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SLIDE_SLOW : ANIM_V_SLIDE_WOBBLE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backPic = gMonBackPic_Ledian, - .backPicFemale = gMonBackPic_LedianF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Ledian, .shinyPalette = gMonShinyPalette_Ledian, .iconSprite = gMonIcon_Ledian, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LedianF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_LedianF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 15, SHADOW_SIZE_S) FOOTPRINT(Ledian) OVERWORLD( @@ -1113,13 +1119,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Spinarak, - .frontPicSize = MON_COORDS_SIZE(48, 32), - .frontPicYOffset = 16, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(48, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 19 : 16, .frontAnimFrames = sAnims_Spinarak, .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, .backPic = gMonBackPic_Spinarak, - .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 16, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 24) : MON_COORDS_SIZE(64, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 21 : 16, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Spinarak, .shinyPalette = gMonShinyPalette_Spinarak, @@ -1183,12 +1189,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Ariados, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 7, .frontAnimFrames = sAnims_Ariados, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Ariados, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Ariados, .shinyPalette = gMonShinyPalette_Ariados, @@ -1246,13 +1252,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Chinchou, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Chinchou, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Chinchou, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 11, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Chinchou, .shinyPalette = gMonShinyPalette_Chinchou, @@ -1310,13 +1316,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Lanturn, - .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Lanturn, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .backPic = gMonBackPic_Lanturn, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Lanturn, .shinyPalette = gMonShinyPalette_Lanturn, @@ -1376,17 +1382,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Togepi, .frontPicSize = MON_COORDS_SIZE(24, 32), - .frontPicYOffset = 16, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 16, .frontAnimFrames = sAnims_Togepi, - .frontAnimId = ANIM_V_JUMPS_BIG, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_V_JUMPS_BIG, .backPic = gMonBackPic_Togepi, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Togepi, .shinyPalette = gMonShinyPalette_Togepi, .iconSprite = gMonIcon_Togepi, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-1, -3, SHADOW_SIZE_S) FOOTPRINT(Togepi) OVERWORLD( @@ -1439,17 +1445,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Togetic, .frontPicSize = MON_COORDS_SIZE(32, 48), - .frontPicYOffset = 8, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .frontAnimFrames = sAnims_Togetic, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Togetic, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Togetic, .shinyPalette = gMonShinyPalette_Togetic, .iconSprite = gMonIcon_Togetic, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(0, 6, SHADOW_SIZE_S) FOOTPRINT(Togetic) OVERWORLD( @@ -1575,18 +1581,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Natu, .frontPicSize = MON_COORDS_SIZE(32, 32), - .frontPicYOffset = 17, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 17, .frontAnimFrames = sAnims_Natu, .frontAnimId = ANIM_H_JUMPS, .frontAnimDelay = 30, .backPic = gMonBackPic_Natu, - .backPicSize = MON_COORDS_SIZE(40, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Natu, .shinyPalette = gMonShinyPalette_Natu, .iconSprite = gMonIcon_Natu, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(-2, -4, SHADOW_SIZE_S) FOOTPRINT(Natu) OVERWORLD( @@ -1639,20 +1645,22 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 318, .trainerOffset = 4, .frontPic = gMonFrontPic_Xatu, - .frontPicFemale = gMonFrontPic_XatuF, - .frontPicSize = MON_COORDS_SIZE(40, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 56) : MON_COORDS_SIZE(40, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 5, .frontAnimFrames = sAnims_Xatu, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Xatu, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Xatu, .shinyPalette = gMonShinyPalette_Xatu, .iconSprite = gMonIcon_Xatu, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_XatuF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 9, SHADOW_SIZE_S) FOOTPRINT(Xatu) OVERWORLD( @@ -1710,19 +1718,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mareep, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Mareep, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 50, .backPic = gMonBackPic_Mareep, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Mareep, .shinyPalette = gMonShinyPalette_Mareep, .iconSprite = gMonIcon_Mareep, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 1, SHADOW_SIZE_M) FOOTPRINT(Mareep) OVERWORLD( @@ -1774,13 +1782,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Flaaffy, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .frontAnimFrames = sAnims_Flaaffy, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_BIG : ANIM_V_STRETCH, .backPic = gMonBackPic_Flaaffy, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 7, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Flaaffy, .shinyPalette = gMonShinyPalette_Flaaffy, @@ -1846,14 +1854,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ampharos, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 2, .frontAnimFrames = sAnims_Ampharos, .frontAnimId = ANIM_FLASH_YELLOW, .frontAnimDelay = 10, .backPic = gMonBackPic_Ampharos, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 3, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Ampharos, .shinyPalette = gMonShinyPalette_Ampharos, @@ -1975,18 +1983,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Azurill, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 11, .frontAnimFrames = sAnims_Azurill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Azurill, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Azurill, .shinyPalette = gMonShinyPalette_Azurill, .iconSprite = gMonIcon_Azurill, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-4, 3, SHADOW_SIZE_S) FOOTPRINT(Azurill) OVERWORLD( @@ -2043,18 +2051,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Marill, - .frontPicSize = MON_COORDS_SIZE(56, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Marill, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Marill, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Marill, .shinyPalette = gMonShinyPalette_Marill, .iconSprite = gMonIcon_Marill, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-2, 0, SHADOW_SIZE_S) FOOTPRINT(Marill) OVERWORLD( @@ -2118,18 +2126,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Azumarill, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 6, .frontAnimFrames = sAnims_Azumarill, - .frontAnimId = ANIM_SHRINK_GROW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SMALL_SLOW : ANIM_SHRINK_GROW, .backPic = gMonBackPic_Azumarill, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Azumarill, .shinyPalette = gMonShinyPalette_Azumarill, .iconSprite = gMonIcon_Azumarill, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-4, 8, SHADOW_SIZE_S) FOOTPRINT(Azumarill) OVERWORLD( @@ -2246,22 +2254,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sudowoodo, - .frontPicFemale = gMonFrontPic_SudowoodoF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .frontAnimFrames = sAnims_Sudowoodo, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Sudowoodo, - .backPicFemale = gMonBackPic_SudowoodoF, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicSizeFemale = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 5, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Sudowoodo, .shinyPalette = gMonShinyPalette_Sudowoodo, .iconSprite = gMonIcon_Sudowoodo, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SudowoodoF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_SudowoodoF, + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 7, SHADOW_SIZE_S) FOOTPRINT(Sudowoodo) OVERWORLD( @@ -2324,14 +2334,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Hoppip, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 14, .frontAnimFrames = sAnims_Hoppip, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - .enemyMonElevation = 15, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 11 : 15, .backPic = gMonBackPic_Hoppip, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Hoppip, .shinyPalette = gMonShinyPalette_Hoppip, @@ -2396,10 +2406,10 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontPicYOffset = 15, .frontAnimFrames = sAnims_Skiploom, .frontAnimId = ANIM_RISING_WOBBLE, - .enemyMonElevation = 15, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 15, .backPic = gMonBackPic_Skiploom, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Skiploom, .shinyPalette = gMonShinyPalette_Skiploom, @@ -2467,14 +2477,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Jumpluff, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .frontAnimFrames = sAnims_Jumpluff, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 9, .backPic = gMonBackPic_Jumpluff, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Jumpluff, .shinyPalette = gMonShinyPalette_Jumpluff, @@ -2531,22 +2541,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Aipom, - .frontPicFemale = gMonFrontPic_AipomF, - .frontPicSize = MON_COORDS_SIZE(32, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(32, 64), - .frontPicYOffset = 1, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 64) : MON_COORDS_SIZE(32, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 1, .frontAnimFrames = sAnims_Aipom, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Aipom, - .backPicFemale = gMonBackPic_AipomF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Aipom, .shinyPalette = gMonShinyPalette_Aipom, .iconSprite = gMonIcon_Aipom, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_AipomF, + .frontPicSizeFemale = MON_COORDS_SIZE(32, 64), + .backPicFemale = gMonBackPic_AipomF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 12, SHADOW_SIZE_S) FOOTPRINT(Aipom) OVERWORLD( @@ -2605,22 +2617,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ambipom, - .frontPicFemale = gMonFrontPic_AmbipomF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, .frontAnimFrames = sAnims_Ambipom, .frontAnimId = ANIM_BACK_AND_LUNGE, .backPic = gMonBackPic_Ambipom, - .backPicFemale = gMonBackPic_AmbipomF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Ambipom, .shinyPalette = gMonShinyPalette_Ambipom, .iconSprite = gMonIcon_Ambipom, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_AmbipomF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_AmbipomF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 13, SHADOW_SIZE_S) FOOTPRINT(Ambipom) OVERWORLD( @@ -2683,12 +2697,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sunkern, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 17, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 32) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 17, .frontAnimFrames = sAnims_Sunkern, - .frontAnimId = ANIM_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_SMALL : ANIM_H_JUMPS, .backPic = gMonBackPic_Sunkern, - .backPicSize = MON_COORDS_SIZE(48, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Sunkern, @@ -2755,8 +2769,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontAnimFrames = sAnims_Sunflora, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Sunflora, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Sunflora, .shinyPalette = gMonShinyPalette_Sunflora, @@ -2814,14 +2828,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Yanma, - .frontPicSize = MON_COORDS_SIZE(64, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 14, .frontAnimFrames = sAnims_Yanma, .frontAnimId = ANIM_FIGURE_8, - .enemyMonElevation = 13, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 13, .backPic = gMonBackPic_Yanma, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Yanma, .shinyPalette = gMonShinyPalette_Yanma, @@ -2945,22 +2959,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wooper, - .frontPicFemale = gMonFrontPic_WooperF, .frontPicSize = MON_COORDS_SIZE(40, 32), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, .frontAnimFrames = sAnims_Wooper, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Wooper, - .backPicFemale = gMonBackPic_WooperF, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicSizeFemale = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Wooper, .shinyPalette = gMonShinyPalette_Wooper, .iconSprite = gMonIcon_Wooper, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_WooperF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 32), + .backPicFemale = gMonBackPic_WooperF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(1, -2, SHADOW_SIZE_S) FOOTPRINT(Wooper) OVERWORLD( @@ -3019,22 +3035,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Quagsire, - .frontPicFemale = gMonFrontPic_QuagsireF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 5, .frontAnimFrames = sAnims_Quagsire, .frontAnimId = ANIM_H_STRETCH, .backPic = gMonBackPic_Quagsire, - .backPicFemale = gMonBackPic_QuagsireF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 5, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Quagsire, .shinyPalette = gMonShinyPalette_Quagsire, .iconSprite = gMonIcon_Quagsire, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_QuagsireF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_QuagsireF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 8, SHADOW_SIZE_M) FOOTPRINT(Quagsire) OVERWORLD( @@ -3090,33 +3108,33 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 21, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_WooperPaldean, + .frontPic = gMonFrontPic_WooperPaldea, .frontPicSize = MON_COORDS_SIZE(40, 32), .frontPicYOffset = 16, - .frontAnimFrames = sAnims_WooperPaldean, + .frontAnimFrames = sAnims_WooperPaldea, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_WooperPaldean, + .backPic = gMonBackPic_WooperPaldea, .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_V_STRETCH, - .palette = gMonPalette_WooperPaldean, - .shinyPalette = gMonShinyPalette_WooperPaldean, - .iconSprite = gMonIcon_WooperPaldean, + .palette = gMonPalette_WooperPaldea, + .shinyPalette = gMonShinyPalette_WooperPaldea, + .iconSprite = gMonIcon_WooperPaldea, .iconPalIndex = 2, SHADOW(-1, -2, SHADOW_SIZE_S) FOOTPRINT(Wooper) OVERWORLD( - sPicTable_WooperPaldean, + sPicTable_WooperPaldea, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_WooperPaldean, - gShinyOverworldPalette_WooperPaldean + gOverworldPalette_WooperPaldea, + gShinyOverworldPalette_WooperPaldea ) .isPaldeanForm = TRUE, - .levelUpLearnset = sWooperPaldeanLevelUpLearnset, - .teachableLearnset = sWooperPaldeanTeachableLearnset, - .eggMoveLearnset = sWooperPaldeanEggMoveLearnset, + .levelUpLearnset = sWooperPaldeaLevelUpLearnset, + .teachableLearnset = sWooperPaldeaTeachableLearnset, + .eggMoveLearnset = sWooperPaldeaEggMoveLearnset, .formSpeciesIdTable = sWooperFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_CLODSIRE}), }, @@ -3224,23 +3242,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 1, .frontPic = gMonFrontPic_Murkrow, - .frontPicFemale = gMonFrontPic_MurkrowF, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 15, .frontAnimFrames = sAnims_Murkrow, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .enemyMonElevation = 12, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 0 : 12, .backPic = gMonBackPic_Murkrow, - .backPicFemale = gMonBackPic_MurkrowF, - .backPicSize = MON_COORDS_SIZE(40, 56), - .backPicSizeFemale = MON_COORDS_SIZE(40, 56), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Murkrow, .shinyPalette = gMonShinyPalette_Murkrow, .iconSprite = gMonIcon_Murkrow, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MurkrowF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), + .backPicFemale = gMonBackPic_MurkrowF, + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 8, SHADOW_SIZE_S) FOOTPRINT(Murkrow) OVERWORLD( @@ -3364,14 +3384,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Misdreavus, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .frontAnimFrames = sAnims_Misdreavus, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - .enemyMonElevation = 12, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 12, .backPic = gMonBackPic_Misdreavus, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Misdreavus, .shinyPalette = gMonShinyPalette_Misdreavus, @@ -3522,34 +3542,34 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .formSpeciesIdTable = sUnownFormSpeciesIdTable, \ } - [SPECIES_UNOWN] = UNOWN_MISC_INFO(A, FALSE, 24, 40, 24, 48, 8 ), - [SPECIES_UNOWN_B] = UNOWN_MISC_INFO(B, TRUE, 24, 32, 40, 48, 9 ), - [SPECIES_UNOWN_C] = UNOWN_MISC_INFO(C, TRUE, 32, 32, 48, 56, 6 ), - [SPECIES_UNOWN_D] = UNOWN_MISC_INFO(D, TRUE, 32, 32, 40, 48, 8 ), - [SPECIES_UNOWN_E] = UNOWN_MISC_INFO(E, TRUE, 32, 32, 40, 48, 10 ), - [SPECIES_UNOWN_F] = UNOWN_MISC_INFO(F, TRUE, 32, 32, 48, 48, 10 ), - [SPECIES_UNOWN_G] = UNOWN_MISC_INFO(G, TRUE, 24, 40, 40, 56, 5 ), - [SPECIES_UNOWN_H] = UNOWN_MISC_INFO(H, TRUE, 32, 32, 48, 48, 8 ), - [SPECIES_UNOWN_I] = UNOWN_MISC_INFO(I, FALSE, 24, 32, 24, 56, 7 ), - [SPECIES_UNOWN_J] = UNOWN_MISC_INFO(J, TRUE, 24, 32, 32, 48, 9 ), - [SPECIES_UNOWN_K] = UNOWN_MISC_INFO(K, TRUE, 32, 32, 40, 56, 7 ), - [SPECIES_UNOWN_L] = UNOWN_MISC_INFO(L, TRUE, 24, 32, 32, 48, 10 ), - [SPECIES_UNOWN_M] = UNOWN_MISC_INFO(M, FALSE, 32, 32, 48, 40, 13 ), - [SPECIES_UNOWN_N] = UNOWN_MISC_INFO(N, TRUE, 32, 24, 48, 40, 13 ), - [SPECIES_UNOWN_O] = UNOWN_MISC_INFO(O, FALSE, 32, 32, 48, 48, 8 ), - [SPECIES_UNOWN_P] = UNOWN_MISC_INFO(P, TRUE, 24, 32, 32, 48, 10 ), - [SPECIES_UNOWN_Q] = UNOWN_MISC_INFO(Q, TRUE, 32, 24, 40, 40, 15 ), - [SPECIES_UNOWN_R] = UNOWN_MISC_INFO(R, TRUE, 24, 32, 32, 40, 12 ), - [SPECIES_UNOWN_S] = UNOWN_MISC_INFO(S, TRUE, 32, 40, 40, 56, 4 ), - [SPECIES_UNOWN_T] = UNOWN_MISC_INFO(T, FALSE, 24, 32, 32, 40, 13 ), - [SPECIES_UNOWN_U] = UNOWN_MISC_INFO(U, FALSE, 32, 32, 48, 40, 13 ), - [SPECIES_UNOWN_V] = UNOWN_MISC_INFO(V, TRUE, 32, 32, 40, 48, 11 ), - [SPECIES_UNOWN_W] = UNOWN_MISC_INFO(W, FALSE, 32, 32, 40, 40, 13 ), - [SPECIES_UNOWN_X] = UNOWN_MISC_INFO(X, FALSE, 24, 24, 40, 40, 15 ), - [SPECIES_UNOWN_Y] = UNOWN_MISC_INFO(Y, FALSE, 24, 32, 32, 48, 10 ), - [SPECIES_UNOWN_Z] = UNOWN_MISC_INFO(Z, TRUE, 24, 32, 32, 48, 10 ), - [SPECIES_UNOWN_EXCLAMATION] = UNOWN_MISC_INFO(ExclamationMark, FALSE, 24, 40, 24, 56, 6 ), - [SPECIES_UNOWN_QUESTION] = UNOWN_MISC_INFO(QuestionMark, TRUE, 24, 40, 32, 56, 6 ), + [SPECIES_UNOWN] = UNOWN_MISC_INFO(A, FALSE, 24, 40, 24, 48, 8 ), + [SPECIES_UNOWN_B] = UNOWN_MISC_INFO(B, TRUE, 24, 32, 40, 48, 9 ), + [SPECIES_UNOWN_C] = UNOWN_MISC_INFO(C, TRUE, 32, 32, 48, 56, 6 ), + [SPECIES_UNOWN_D] = UNOWN_MISC_INFO(D, TRUE, 32, 32, 40, 48, 8 ), + [SPECIES_UNOWN_E] = UNOWN_MISC_INFO(E, TRUE, 32, 32, 40, 48, 10 ), + [SPECIES_UNOWN_F] = UNOWN_MISC_INFO(F, TRUE, 32, 32, 48, 48, 10 ), + [SPECIES_UNOWN_G] = UNOWN_MISC_INFO(G, TRUE, 24, 40, 40, 56, 5 ), + [SPECIES_UNOWN_H] = UNOWN_MISC_INFO(H, TRUE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_I] = UNOWN_MISC_INFO(I, FALSE, 24, 32, 24, 56, 7 ), + [SPECIES_UNOWN_J] = UNOWN_MISC_INFO(J, TRUE, 24, 32, 32, 48, 9 ), + [SPECIES_UNOWN_K] = UNOWN_MISC_INFO(K, TRUE, 32, 32, 40, 56, 7 ), + [SPECIES_UNOWN_L] = UNOWN_MISC_INFO(L, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_M] = UNOWN_MISC_INFO(M, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_N] = UNOWN_MISC_INFO(N, TRUE, 32, 24, 48, 40, 13 ), + [SPECIES_UNOWN_O] = UNOWN_MISC_INFO(O, FALSE, 32, 32, 48, 48, 8 ), + [SPECIES_UNOWN_P] = UNOWN_MISC_INFO(P, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Q] = UNOWN_MISC_INFO(Q, TRUE, 32, 24, 40, 40, 15 ), + [SPECIES_UNOWN_R] = UNOWN_MISC_INFO(R, TRUE, 24, 32, 32, 40, 12 ), + [SPECIES_UNOWN_S] = UNOWN_MISC_INFO(S, TRUE, 32, 40, 40, 56, 4 ), + [SPECIES_UNOWN_T] = UNOWN_MISC_INFO(T, FALSE, 24, 32, 32, 40, 13 ), + [SPECIES_UNOWN_U] = UNOWN_MISC_INFO(U, FALSE, 32, 32, 48, 40, 13 ), + [SPECIES_UNOWN_V] = UNOWN_MISC_INFO(V, TRUE, 32, 32, 40, 48, 11 ), + [SPECIES_UNOWN_W] = UNOWN_MISC_INFO(W, FALSE, 32, 32, 40, 40, 13 ), + [SPECIES_UNOWN_X] = UNOWN_MISC_INFO(X, FALSE, 24, 24, 40, 40, 15 ), + [SPECIES_UNOWN_Y] = UNOWN_MISC_INFO(Y, FALSE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_Z] = UNOWN_MISC_INFO(Z, TRUE, 24, 32, 32, 48, 10 ), + [SPECIES_UNOWN_EXCLAMATION] = UNOWN_MISC_INFO(Exclamation, FALSE, 24, 40, 24, 56, 6 ), + [SPECIES_UNOWN_QUESTION] = UNOWN_MISC_INFO(Question, TRUE, 24, 40, 32, 56, 6 ), #endif //P_FAMILY_UNOWN #if P_FAMILY_WOBBUFFET @@ -3589,14 +3609,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wynaut, - .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Wynaut, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, .backPic = gMonBackPic_Wynaut, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Wynaut, .shinyPalette = gMonShinyPalette_Wynaut, @@ -3654,26 +3674,28 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wobbuffet, - .frontPicFemale = gMonFrontPic_WobbuffetF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .frontAnimFrames = sAnims_Wobbuffet, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_DEEP_V_SQUISH_AND_BOUNCE : ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Wobbuffet, - .backPicFemale = gMonBackPic_WobbuffetF, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Wobbuffet, .shinyPalette = gMonShinyPalette_Wobbuffet, .iconSprite = gMonIcon_Wobbuffet, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_WobbuffetF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_WobbuffetF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE .iconSpriteFemale = gMonIcon_WobbuffetF, .iconPalIndexFemale = 0, #endif +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 8, SHADOW_SIZE_M) FOOTPRINT(Wobbuffet) OVERWORLD( @@ -3732,22 +3754,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Girafarig, - .frontPicFemale = gMonFrontPic_GirafarigF, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 0, .frontAnimFrames = sAnims_Girafarig, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_BIG : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Girafarig, - .backPicFemale = gMonBackPic_GirafarigF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 1, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Girafarig, .shinyPalette = gMonShinyPalette_Girafarig, .iconSprite = gMonIcon_Girafarig, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GirafarigF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .backPicFemale = gMonBackPic_GirafarigF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 13, SHADOW_SIZE_M) FOOTPRINT(Girafarig) OVERWORLD( @@ -3870,13 +3894,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pineco, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .frontAnimFrames = sAnims_Pineco, .frontAnimId = ANIM_SWING_CONCAVE, .backPic = gMonBackPic_Pineco, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 13, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Pineco, .shinyPalette = gMonShinyPalette_Pineco, @@ -3933,8 +3957,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Forretress, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .frontAnimFrames = sAnims_Forretress, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Forretress, @@ -4002,19 +4026,19 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Dunsparce, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 9, .frontAnimFrames = sAnims_Dunsparce, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .frontAnimDelay = 10, .backPic = gMonBackPic_Dunsparce, - .backPicSize = MON_COORDS_SIZE(56, 32), - .backPicYOffset = 17, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 17, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Dunsparce, .shinyPalette = gMonShinyPalette_Dunsparce, .iconSprite = gMonIcon_Dunsparce, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(0, -4, SHADOW_SIZE_M) FOOTPRINT(Dunsparce) OVERWORLD( @@ -4122,8 +4146,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .weight = 474, .description = COMPOUND_STRING( "A recent study uncovered that the\n" - "number of segments a\n" - "Dudunsparce's body has is determined by the\n" + "number of segments a Dudunsparce's\n" + "body has is determined by the\n" "Pokémon's genes."), .pokemonScale = 356, .pokemonOffset = 17, @@ -4195,23 +4219,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gligar, - .frontPicFemale = gMonFrontPic_GligarF, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 4, .frontAnimFrames = sAnims_Gligar, .frontAnimId = ANIM_SHRINK_GROW, - .enemyMonElevation = 8, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 8, .backPic = gMonBackPic_Gligar, - .backPicFemale = gMonBackPic_GligarF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 2, .backAnimId = BACK_ANIM_SHRINK_GROW, .palette = gMonPalette_Gligar, .shinyPalette = gMonShinyPalette_Gligar, .iconSprite = gMonIcon_Gligar, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GligarF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_GligarF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 15, SHADOW_SIZE_S) FOOTPRINT(Gligar) OVERWORLD( @@ -4341,12 +4367,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Snubbull, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .frontAnimFrames = sAnims_Snubbull, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Snubbull, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Snubbull, .shinyPalette = gMonShinyPalette_Snubbull, @@ -4411,13 +4437,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Granbull, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 56) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .frontAnimFrames = sAnims_Granbull, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Granbull, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 8, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Granbull, .shinyPalette = gMonShinyPalette_Granbull, @@ -4485,13 +4511,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Qwilfish, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 8, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .frontAnimFrames = sAnims_Qwilfish, .frontAnimId = ANIM_GROW_IN_STAGES, .frontAnimDelay = 39, .backPic = gMonBackPic_Qwilfish, .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Qwilfish, .shinyPalette = gMonShinyPalette_Qwilfish, @@ -4549,33 +4575,33 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 0, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_QwilfishHisuian, + .frontPic = gMonFrontPic_QwilfishHisui, .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 16, - .frontAnimFrames = sAnims_QwilfishHisuian, + .frontAnimFrames = sAnims_QwilfishHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 9, - .backPic = gMonBackPic_QwilfishHisuian, + .backPic = gMonBackPic_QwilfishHisui, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_QwilfishHisuian, - .shinyPalette = gMonShinyPalette_QwilfishHisuian, - .iconSprite = gMonIcon_QwilfishHisuian, + .palette = gMonPalette_QwilfishHisui, + .shinyPalette = gMonShinyPalette_QwilfishHisui, + .iconSprite = gMonIcon_QwilfishHisui, .iconPalIndex = 1, SHADOW(-5, 4, SHADOW_SIZE_S) FOOTPRINT(Qwilfish) OVERWORLD( - sPicTable_QwilfishHisuian, + sPicTable_QwilfishHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_QwilfishHisuian, - gShinyOverworldPalette_QwilfishHisuian + gOverworldPalette_QwilfishHisui, + gShinyOverworldPalette_QwilfishHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sQwilfishHisuianLevelUpLearnset, - .teachableLearnset = sQwilfishHisuianTeachableLearnset, + .levelUpLearnset = sQwilfishHisuiLevelUpLearnset, + .teachableLearnset = sQwilfishHisuiTeachableLearnset, .formSpeciesIdTable = sQwilfishFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_MOVE, MOVE_BARB_BARRAGE, SPECIES_OVERQWIL}), }, @@ -4686,12 +4712,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Shuckle, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .frontAnimFrames = sAnims_Shuckle, .frontAnimId = ANIM_SWING_CONCAVE, .backPic = gMonBackPic_Shuckle, - .backPicSize = MON_COORDS_SIZE(48, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Shuckle, @@ -4750,22 +4776,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Heracross, - .frontPicFemale = gMonFrontPic_HeracrossF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 1, .frontAnimFrames = sAnims_Heracross, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_LUNGE_GROW : ANIM_V_STRETCH, .backPic = gMonBackPic_Heracross, - .backPicFemale = gMonBackPic_HeracrossF, - .backPicSize = MON_COORDS_SIZE(48, 64), - .backPicSizeFemale = MON_COORDS_SIZE(48, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Heracross, .shinyPalette = gMonShinyPalette_Heracross, .iconSprite = gMonIcon_Heracross, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_HeracrossF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_HeracrossF, + .backPicSizeFemale = MON_COORDS_SIZE(48, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 10, SHADOW_SIZE_M) FOOTPRINT(Heracross) OVERWORLD( @@ -4887,22 +4915,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sneasel, - .frontPicFemale = gMonFrontPic_SneaselF, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 8, .frontAnimFrames = sAnims_Sneasel, - .frontAnimId = ANIM_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_H_JUMPS, .backPic = gMonBackPic_Sneasel, - .backPicFemale = gMonBackPic_SneaselF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Sneasel, .shinyPalette = gMonShinyPalette_Sneasel, .iconSprite = gMonIcon_Sneasel, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SneaselF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicFemale = gMonBackPic_SneaselF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 5, SHADOW_SIZE_S) FOOTPRINT(Sneasel) OVERWORLD( @@ -4965,22 +4995,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Weavile, - .frontPicFemale = gMonFrontPic_WeavileF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Weavile, .frontAnimId = ANIM_H_VIBRATE, .backPic = gMonBackPic_Weavile, - .backPicFemale = gMonBackPic_WeavileF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Weavile, .shinyPalette = gMonShinyPalette_Weavile, .iconSprite = gMonIcon_Weavile, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_WeavileF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_WeavileF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-4, 10, SHADOW_SIZE_M) FOOTPRINT(Weavile) OVERWORLD( @@ -5039,42 +5071,44 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = -3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_SneaselHisuian, - .frontPicFemale = gMonFrontPic_SneaselHisuianF, + .frontPic = gMonFrontPic_SneaselHisui, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 8, - .frontAnimFrames = sAnims_SneaselHisuian, + .frontAnimFrames = sAnims_SneaselHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SneaselHisuian, - .backPicFemale = gMonBackPic_SneaselHisuianF, + .backPic = gMonBackPic_SneaselHisui, .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SneaselHisuian, - .shinyPalette = gMonShinyPalette_SneaselHisuian, - .iconSprite = gMonIcon_SneaselHisuian, + .palette = gMonPalette_SneaselHisui, + .shinyPalette = gMonShinyPalette_SneaselHisui, + .iconSprite = gMonIcon_SneaselHisui, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SneaselHisuiF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_SneaselHisuiF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 5, SHADOW_SIZE_S) FOOTPRINT(Sneasel) OVERWORLD( - sPicTable_SneaselHisuian, + sPicTable_SneaselHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SneaselHisuian, - gShinyOverworldPalette_SneaselHisuian + gOverworldPalette_SneaselHisui, + gShinyOverworldPalette_SneaselHisui ) OVERWORLD_FEMALE( - sPicTable_SneaselHisuianF, + sPicTable_SneaselHisuiF, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT ) .isHisuianForm = TRUE, - .levelUpLearnset = sSneaselHisuianLevelUpLearnset, - .teachableLearnset = sSneaselHisuianTeachableLearnset, + .levelUpLearnset = sSneaselHisuiLevelUpLearnset, + .teachableLearnset = sSneaselHisuiTeachableLearnset, .formSpeciesIdTable = sSneaselFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM_HOLD_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}, {EVO_ITEM_DAY, ITEM_RAZOR_CLAW, SPECIES_SNEASLER}), @@ -5185,13 +5219,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Teddiursa, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .frontAnimFrames = sAnims_Teddiursa, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Teddiursa, .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Teddiursa, .shinyPalette = gMonShinyPalette_Teddiursa, @@ -5252,22 +5286,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Ursaring, - .frontPicFemale = gMonFrontPic_UrsaringF, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Ursaring, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE : ANIM_H_SHAKE, .backPic = gMonBackPic_Ursaring, - .backPicFemale = gMonBackPic_UrsaringF, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 2, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Ursaring, .shinyPalette = gMonShinyPalette_Ursaring, .iconSprite = gMonIcon_Ursaring, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_UrsaringF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_UrsaringF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 14, SHADOW_SIZE_L) FOOTPRINT(Ursaring) OVERWORLD( @@ -5444,13 +5480,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Slugma, - .frontPicSize = MON_COORDS_SIZE(32, 48), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(32, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .frontAnimFrames = sAnims_Slugma, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Slugma, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Slugma, .shinyPalette = gMonShinyPalette_Slugma, @@ -5514,13 +5550,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Magcargo, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 56) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 6, .frontAnimFrames = sAnims_Magcargo, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Magcargo, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Magcargo, .shinyPalette = gMonShinyPalette_Magcargo, @@ -5581,13 +5617,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Swinub, - .frontPicSize = MON_COORDS_SIZE(40, 32), - .frontPicYOffset = 18, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 24) : MON_COORDS_SIZE(40, 32), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 18, .frontAnimFrames = sAnims_Swinub, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Swinub, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 24) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 21 : 15, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Swinub, .shinyPalette = gMonShinyPalette_Swinub, @@ -5649,22 +5685,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Piloswine, - .frontPicFemale = gMonFrontPic_PiloswineF, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Piloswine, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Piloswine, - .backPicFemale = gMonBackPic_PiloswineF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 8, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Piloswine, .shinyPalette = gMonShinyPalette_Piloswine, .iconSprite = gMonIcon_Piloswine, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PiloswineF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_PiloswineF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 3, SHADOW_SIZE_M) FOOTPRINT(Piloswine) OVERWORLD( @@ -5728,9 +5766,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 423, .trainerOffset = 8, .frontPic = gMonFrontPic_Mamoswine, - .frontPicFemale = gMonFrontPic_MamoswineF, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), .frontPicYOffset = 4, .frontAnimFrames = sAnims_Mamoswine, .frontAnimId = ANIM_BACK_AND_LUNGE, @@ -5742,6 +5778,10 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .shinyPalette = gMonShinyPalette_Mamoswine, .iconSprite = gMonIcon_Mamoswine, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MamoswineF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(7, 7, SHADOW_SIZE_L) FOOTPRINT(Mamoswine) OVERWORLD( @@ -5817,8 +5857,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontAnimFrames = sAnims_Corsola, .frontAnimId = ANIM_H_SLIDE, .backPic = gMonBackPic_Corsola, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 8, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Corsola, .shinyPalette = gMonShinyPalette_Corsola, @@ -5875,33 +5915,33 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .pokemonOffset = 15, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CorsolaGalarian, + .frontPic = gMonFrontPic_CorsolaGalar, .frontPicSize = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, - .frontAnimFrames = sAnims_CorsolaGalarian, + .frontAnimFrames = sAnims_CorsolaGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CorsolaGalarian, + .backPic = gMonBackPic_CorsolaGalar, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CorsolaGalarian, - .shinyPalette = gMonShinyPalette_CorsolaGalarian, - .iconSprite = gMonIcon_CorsolaGalarian, + .palette = gMonPalette_CorsolaGalar, + .shinyPalette = gMonShinyPalette_CorsolaGalar, + .iconSprite = gMonIcon_CorsolaGalar, .iconPalIndex = 0, SHADOW(0, 2, SHADOW_SIZE_M) FOOTPRINT(Corsola) OVERWORLD( - sPicTable_CorsolaGalarian, + sPicTable_CorsolaGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_CorsolaGalarian, - gShinyOverworldPalette_CorsolaGalarian + gOverworldPalette_CorsolaGalar, + gShinyOverworldPalette_CorsolaGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sCorsolaGalarianLevelUpLearnset, - .teachableLearnset = sCorsolaGalarianTeachableLearnset, - .eggMoveLearnset = sCorsolaGalarianEggMoveLearnset, + .levelUpLearnset = sCorsolaGalarLevelUpLearnset, + .teachableLearnset = sCorsolaGalarTeachableLearnset, + .eggMoveLearnset = sCorsolaGalarEggMoveLearnset, .formSpeciesIdTable = sCorsolaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 38, SPECIES_CURSOLA}), }, @@ -6009,13 +6049,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Remoraid, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Remoraid, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_SMALL : ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Remoraid, .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Remoraid, .shinyPalette = gMonShinyPalette_Remoraid, @@ -6077,23 +6117,25 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Octillery, - .frontPicFemale = gMonFrontPic_OctilleryF, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .frontAnimFrames = sAnims_Octillery, .frontAnimId = ANIM_V_STRETCH, .frontAnimDelay = 20, .backPic = gMonBackPic_Octillery, - .backPicFemale = gMonBackPic_OctilleryF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .backAnimId = BACK_ANIM_SHRINK_GROW, .palette = gMonPalette_Octillery, .shinyPalette = gMonShinyPalette_Octillery, .iconSprite = gMonIcon_Octillery, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_OctilleryF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicFemale = gMonBackPic_OctilleryF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 4, SHADOW_SIZE_M) FOOTPRINT(Octillery) OVERWORLD( @@ -6151,18 +6193,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Delibird, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(48, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Delibird, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_SMALL : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Delibird, - .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Delibird, .shinyPalette = gMonShinyPalette_Delibird, .iconSprite = gMonIcon_Delibird, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(0, 7, SHADOW_SIZE_M) FOOTPRINT(Delibird) OVERWORLD( @@ -6286,14 +6328,14 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 342, .trainerOffset = 7, .frontPic = gMonFrontPic_Mantine, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 9, .frontAnimFrames = sAnims_Mantine, .frontAnimId = ANIM_SWING_CONVEX, - .enemyMonElevation = 6, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 0 : 6, .backPic = gMonBackPic_Mantine, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 2, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Mantine, .shinyPalette = gMonShinyPalette_Mantine, @@ -6353,12 +6395,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 1, .frontPic = gMonFrontPic_Skarmory, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .frontAnimFrames = sAnims_Skarmory, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_STRETCH : ANIM_V_SHAKE, .backPic = gMonBackPic_Skarmory, - .backPicSize = MON_COORDS_SIZE(48, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(48, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 1, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Skarmory, .shinyPalette = gMonShinyPalette_Skarmory, @@ -6417,12 +6459,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Houndour, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 9, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .frontAnimFrames = sAnims_Houndour, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Houndour, - .backPicSize = MON_COORDS_SIZE(40, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(40, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Houndour, .shinyPalette = gMonShinyPalette_Houndour, @@ -6479,22 +6521,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Houndoom, - .frontPicFemale = gMonFrontPic_HoundoomF, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 0, .frontAnimFrames = sAnims_Houndoom, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Houndoom, - .backPicFemale = gMonBackPic_HoundoomF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Houndoom, .shinyPalette = gMonShinyPalette_Houndoom, .iconSprite = gMonIcon_Houndoom, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_HoundoomF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_HoundoomF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-5, 13, SHADOW_SIZE_L) FOOTPRINT(Houndoom) OVERWORLD( @@ -6616,8 +6660,8 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontAnimFrames = sAnims_Phanpy, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Phanpy, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Phanpy, .shinyPalette = gMonShinyPalette_Phanpy, @@ -6675,22 +6719,24 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Donphan, - .frontPicFemale = gMonFrontPic_DonphanF, .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .frontAnimFrames = sAnims_Donphan, - .frontAnimId = ANIM_ROTATE_UP_SLAM_DOWN, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE_TWICE : ANIM_ROTATE_UP_SLAM_DOWN, .backPic = gMonBackPic_Donphan, - .backPicFemale = gMonBackPic_DonphanF, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 9, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Donphan, .shinyPalette = gMonShinyPalette_Donphan, .iconSprite = gMonIcon_Donphan, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_DonphanF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), + .backPicFemale = gMonBackPic_DonphanF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(7, 2, SHADOW_SIZE_L) FOOTPRINT(Donphan) OVERWORLD( @@ -6752,13 +6798,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Stantler, - .frontPicSize = MON_COORDS_SIZE(48, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(48, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Stantler, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Stantler, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 1, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Stantler, .shinyPalette = gMonShinyPalette_Stantler, @@ -6885,13 +6931,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Smeargle, - .frontPicSize = MON_COORDS_SIZE(64, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Smeargle, - .frontAnimId = ANIM_H_JUMPS_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_JUMPS : ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Smeargle, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Smeargle, .shinyPalette = gMonShinyPalette_Smeargle, @@ -6955,18 +7001,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Miltank, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 8, .frontAnimFrames = sAnims_Miltank, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Miltank, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Miltank, .shinyPalette = gMonShinyPalette_Miltank, .iconSprite = gMonIcon_Miltank, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 0, SHADOW(-3, 4, SHADOW_SIZE_M) FOOTPRINT(Miltank) OVERWORLD( @@ -7030,18 +7076,18 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 345, .trainerOffset = 7, .frontPic = gMonFrontPic_Raikou, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 5, .frontAnimFrames = sAnims_Raikou, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_FLASH_YELLOW : ANIM_V_STRETCH, .backPic = gMonBackPic_Raikou, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 6, .backAnimId = BACK_ANIM_SHAKE_FLASH_YELLOW, .palette = gMonPalette_Raikou, .shinyPalette = gMonShinyPalette_Raikou, .iconSprite = gMonIcon_Raikou, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(-4, 7, SHADOW_SIZE_L) FOOTPRINT(Raikou) OVERWORLD( @@ -7107,12 +7153,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 7, .frontPic = gMonFrontPic_Entei, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .frontAnimFrames = sAnims_Entei, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Entei, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 11, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Entei, .shinyPalette = gMonShinyPalette_Entei, @@ -7183,7 +7229,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 7, .frontPic = gMonFrontPic_Suicune, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 3, .frontAnimFrames = sAnims_Suicune, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Suicune, @@ -7193,7 +7239,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .palette = gMonPalette_Suicune, .shinyPalette = gMonShinyPalette_Suicune, .iconSprite = gMonIcon_Suicune, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(3, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Suicune) OVERWORLD( @@ -7247,12 +7293,12 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Larvitar, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .frontAnimFrames = sAnims_Larvitar, .frontAnimId = ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Larvitar, - .backPicSize = MON_COORDS_SIZE(56, 64), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 64), .backPicYOffset = 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Larvitar, @@ -7311,17 +7357,17 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Pupitar, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .frontAnimFrames = sAnims_Pupitar, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE : ANIM_H_SHAKE, .backPic = gMonBackPic_Pupitar, .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 9, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Pupitar, .shinyPalette = gMonShinyPalette_Pupitar, .iconSprite = gMonIcon_Pupitar, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(3, 3, SHADOW_SIZE_S) FOOTPRINT(Pupitar) OVERWORLD( @@ -7381,16 +7427,16 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Tyranitar, - .frontAnimId = ANIM_V_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_SHAKE : ANIM_V_SHAKE, .frontAnimDelay = 10, .backPic = gMonBackPic_Tyranitar, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Tyranitar, .shinyPalette = gMonShinyPalette_Tyranitar, .iconSprite = gMonIcon_Tyranitar, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, SHADOW(-1, 11, SHADOW_SIZE_L) FOOTPRINT(Tyranitar) OVERWORLD( @@ -7516,7 +7562,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .enemyMonElevation = 6, .backPic = gMonBackPic_Lugia, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Lugia, .shinyPalette = gMonShinyPalette_Lugia, @@ -7591,7 +7637,7 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .enemyMonElevation = 6, .backPic = gMonBackPic_HoOh, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 2, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_HoOh, .shinyPalette = gMonShinyPalette_HoOh, @@ -7660,13 +7706,13 @@ const struct SpeciesInfo gSpeciesInfoGen2[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Celebi, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 12, .frontAnimFrames = sAnims_Celebi, - .frontAnimId = ANIM_H_SLIDE_WOBBLE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_RISING_WOBBLE : ANIM_H_SLIDE_WOBBLE, .enemyMonElevation = 15, .backPic = gMonBackPic_Celebi, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, .palette = gMonPalette_Celebi, .shinyPalette = gMonShinyPalette_Celebi, diff --git a/src/data/pokemon/species_info/gen_3_families.h b/src/data/pokemon/species_info/gen_3_families.h index 002e0d460c..af1b4476d8 100644 --- a/src/data/pokemon/species_info/gen_3_families.h +++ b/src/data/pokemon/species_info/gen_3_families.h @@ -44,8 +44,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Treecko, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Treecko, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 8, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Treecko, .shinyPalette = gMonShinyPalette_Treecko, @@ -103,17 +103,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Grovyle, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 5, .frontAnimFrames = sAnims_Grovyle, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Grovyle, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Grovyle, .shinyPalette = gMonShinyPalette_Grovyle, .iconSprite = gMonIcon_Grovyle, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(1, 7, SHADOW_SIZE_M) FOOTPRINT(Grovyle) OVERWORLD( @@ -176,7 +176,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Sceptile, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 6, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Sceptile, .shinyPalette = gMonShinyPalette_Sceptile, @@ -293,20 +293,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Torchic, - .frontPicSize = MON_COORDS_SIZE(32, 48), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(32, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 12, .frontAnimFrames = sAnims_Torchic, - .frontAnimId = ANIM_V_JUMPS_SMALL, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_V_JUMPS_SMALL, .backPic = gMonBackPic_Torchic, - .backPicFemale = gMonBackPic_TorchicF, - .backPicSize = MON_COORDS_SIZE(40, 48), - .backPicSizeFemale = MON_COORDS_SIZE(40, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(40, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 10, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Torchic, .shinyPalette = gMonShinyPalette_Torchic, .iconSprite = gMonIcon_Torchic, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .backPicFemale = gMonBackPic_TorchicF, + .backPicSizeFemale = MON_COORDS_SIZE(40, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 1, SHADOW_SIZE_S) FOOTPRINT(Torchic) OVERWORLD( @@ -365,22 +367,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Combusken, - .frontPicFemale = gMonFrontPic_CombuskenF, - .frontPicSize = MON_COORDS_SIZE(48, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(48, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 3, .frontAnimFrames = sAnims_Combusken, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Combusken, - .backPicFemale = gMonBackPic_CombuskenF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 1, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Combusken, .shinyPalette = gMonShinyPalette_Combusken, .iconSprite = gMonIcon_Combusken, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_CombuskenF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 64), + .backPicFemale = gMonBackPic_CombuskenF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 8, SHADOW_SIZE_M) FOOTPRINT(Combusken) OVERWORLD( @@ -443,22 +447,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 301, .trainerOffset = 4, .frontPic = gMonFrontPic_Blaziken, - .frontPicFemale = gMonFrontPic_BlazikenF, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Blaziken, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Blaziken, - .backPicFemale = gMonBackPic_BlazikenF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Blaziken, .shinyPalette = gMonShinyPalette_Blaziken, .iconSprite = gMonIcon_Blaziken, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_BlazikenF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .backPicFemale = gMonBackPic_BlazikenF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(4, 8, SHADOW_SIZE_M) FOOTPRINT(Blaziken) OVERWORLD( @@ -576,13 +582,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mudkip, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 13, .frontAnimFrames = sAnims_Mudkip, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .backPic = gMonBackPic_Mudkip, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 10, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Mudkip, .shinyPalette = gMonShinyPalette_Mudkip, @@ -640,12 +646,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Marshtomp, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 7, .frontAnimFrames = sAnims_Marshtomp, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SLIDE : ANIM_V_STRETCH, .backPic = gMonBackPic_Marshtomp, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Marshtomp, .shinyPalette = gMonShinyPalette_Marshtomp, @@ -707,13 +713,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Swampert, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 6, .frontAnimFrames = sAnims_Swampert, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_JUMPS_BIG : ANIM_H_SHAKE, .backPic = gMonBackPic_Swampert, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Swampert, .shinyPalette = gMonShinyPalette_Swampert, @@ -840,13 +846,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Poochyena, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 11, .frontAnimFrames = sAnims_Poochyena, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Poochyena, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Poochyena, .shinyPalette = gMonShinyPalette_Poochyena, @@ -907,13 +913,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mightyena, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Mightyena, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Mightyena, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Mightyena, .shinyPalette = gMonShinyPalette_Mightyena, @@ -984,13 +990,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Zigzagoon, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .frontAnimFrames = sAnims_Zigzagoon, .frontAnimId = ANIM_H_SLIDE, .backPic = gMonBackPic_Zigzagoon, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Zigzagoon, .shinyPalette = gMonShinyPalette_Zigzagoon, @@ -1054,13 +1060,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Linoone, - .frontPicSize = MON_COORDS_SIZE(64, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 13, .frontAnimFrames = sAnims_Linoone, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Linoone, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Linoone, .shinyPalette = gMonShinyPalette_Linoone, @@ -1116,33 +1122,33 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 22, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZigzagoonGalarian, + .frontPic = gMonFrontPic_ZigzagoonGalar, .frontPicSize = MON_COORDS_SIZE(56, 40), .frontPicYOffset = 13, - .frontAnimFrames = sAnims_ZigzagoonGalarian, + .frontAnimFrames = sAnims_ZigzagoonGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZigzagoonGalarian, + .backPic = gMonBackPic_ZigzagoonGalar, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZigzagoonGalarian, - .shinyPalette = gMonShinyPalette_ZigzagoonGalarian, - .iconSprite = gMonIcon_ZigzagoonGalarian, + .palette = gMonPalette_ZigzagoonGalar, + .shinyPalette = gMonShinyPalette_ZigzagoonGalar, + .iconSprite = gMonIcon_ZigzagoonGalar, .iconPalIndex = 0, SHADOW(-5, 0, SHADOW_SIZE_M) FOOTPRINT(Zigzagoon) OVERWORLD( - sPicTable_ZigzagoonGalarian, + sPicTable_ZigzagoonGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZigzagoonGalarian, - gShinyOverworldPalette_ZigzagoonGalarian + gOverworldPalette_ZigzagoonGalar, + gShinyOverworldPalette_ZigzagoonGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sZigzagoonGalarianLevelUpLearnset, - .teachableLearnset = sZigzagoonGalarianTeachableLearnset, - .eggMoveLearnset = sZigzagoonGalarianEggMoveLearnset, + .levelUpLearnset = sZigzagoonGalarLevelUpLearnset, + .teachableLearnset = sZigzagoonGalarTeachableLearnset, + .eggMoveLearnset = sZigzagoonGalarEggMoveLearnset, .formSpeciesIdTable = sZigzagoonFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 20, SPECIES_LINOONE_GALAR}), }, @@ -1181,32 +1187,32 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_LinooneGalarian, + .frontPic = gMonFrontPic_LinooneGalar, .frontPicSize = MON_COORDS_SIZE(64, 40), .frontPicYOffset = 13, - .frontAnimFrames = sAnims_LinooneGalarian, + .frontAnimFrames = sAnims_LinooneGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_LinooneGalarian, + .backPic = gMonBackPic_LinooneGalar, .backPicSize = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_LinooneGalarian, - .shinyPalette = gMonShinyPalette_LinooneGalarian, - .iconSprite = gMonIcon_LinooneGalarian, + .palette = gMonPalette_LinooneGalar, + .shinyPalette = gMonShinyPalette_LinooneGalar, + .iconSprite = gMonIcon_LinooneGalar, .iconPalIndex = 0, SHADOW(-4, 0, SHADOW_SIZE_L) FOOTPRINT(Linoone) OVERWORLD( - sPicTable_LinooneGalarian, + sPicTable_LinooneGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_LinooneGalarian, - gShinyOverworldPalette_LinooneGalarian + gOverworldPalette_LinooneGalar, + gShinyOverworldPalette_LinooneGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sLinooneGalarianLevelUpLearnset, - .teachableLearnset = sLinooneGalarianTeachableLearnset, + .levelUpLearnset = sLinooneGalarLevelUpLearnset, + .teachableLearnset = sLinooneGalarTeachableLearnset, .formSpeciesIdTable = sLinooneFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_NIGHT, 35, SPECIES_OBSTAGOON}), }, @@ -1318,13 +1324,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wurmple, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 12, .frontAnimFrames = sAnims_Wurmple, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Wurmple, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Wurmple, .shinyPalette = gMonShinyPalette_Wurmple, @@ -1382,13 +1388,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Silcoon, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 10, .frontAnimFrames = sAnims_Silcoon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Silcoon, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 21 : 13, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Silcoon, .shinyPalette = gMonShinyPalette_Silcoon, @@ -1454,23 +1460,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Beautifly, - .frontPicFemale = gMonFrontPic_BeautiflyF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Beautifly, .frontAnimId = ANIM_V_SLIDE, - .enemyMonElevation = 10, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .backPic = gMonBackPic_Beautifly, - .backPicFemale = gMonBackPic_BeautiflyF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Beautifly, .shinyPalette = gMonShinyPalette_Beautifly, .iconSprite = gMonIcon_Beautifly, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_BeautiflyF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_BeautiflyF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-5, 12, SHADOW_SIZE_S) FOOTPRINT(Beautifly) OVERWORLD( @@ -1532,13 +1540,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Cascoon, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 10, .frontAnimFrames = sAnims_Cascoon, .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Cascoon, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 24) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 15, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Cascoon, .shinyPalette = gMonShinyPalette_Cascoon, @@ -1606,23 +1614,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Dustox, - .frontPicFemale = gMonFrontPic_DustoxF, .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .frontAnimFrames = sAnims_Dustox, .frontAnimId = ANIM_V_JUMPS_H_JUMPS, - .enemyMonElevation = 12, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .backPic = gMonBackPic_Dustox, - .backPicFemale = gMonBackPic_DustoxF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 1, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Dustox, .shinyPalette = gMonShinyPalette_Dustox, .iconSprite = gMonIcon_Dustox, - .iconPalIndex = 5, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 5, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_DustoxF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), + .backPicFemale = gMonBackPic_DustoxF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 11, SHADOW_SIZE_S) FOOTPRINT(Dustox) OVERWORLD( @@ -1681,18 +1691,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Lotad, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .frontAnimFrames = sAnims_Lotad, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Lotad, .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Lotad, .shinyPalette = gMonShinyPalette_Lotad, .iconSprite = gMonIcon_Lotad, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 4, SHADOW(2, -3, SHADOW_SIZE_S) FOOTPRINT(Lotad) OVERWORLD( @@ -1746,12 +1756,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Lombre, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .frontAnimFrames = sAnims_Lombre, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Lombre, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Lombre, .shinyPalette = gMonShinyPalette_Lombre, @@ -1814,22 +1824,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 268, .trainerOffset = -1, .frontPic = gMonFrontPic_Ludicolo, - .frontPicFemale = gMonFrontPic_LudicoloF, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Ludicolo, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .backPic = gMonBackPic_Ludicolo, - .backPicFemale = gMonBackPic_LudicoloF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 6, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Ludicolo, .shinyPalette = gMonShinyPalette_Ludicolo, .iconSprite = gMonIcon_Ludicolo, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LudicoloF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .backPicFemale = gMonBackPic_LudicoloF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 14, SHADOW_SIZE_M) FOOTPRINT(Ludicolo) OVERWORLD( @@ -1888,18 +1900,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Seedot, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Seedot, - .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES : ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Seedot, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Seedot, .shinyPalette = gMonShinyPalette_Seedot, .iconSprite = gMonIcon_Seedot, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(0, 1, SHADOW_SIZE_S) FOOTPRINT(Seedot) OVERWORLD( @@ -1952,22 +1964,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Nuzleaf, - .frontPicFemale = gMonFrontPic_NuzleafF, - .frontPicSize = MON_COORDS_SIZE(40, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(40, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Nuzleaf, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Nuzleaf, - .backPicFemale = gMonBackPic_NuzleafF, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Nuzleaf, .shinyPalette = gMonShinyPalette_Nuzleaf, .iconSprite = gMonIcon_Nuzleaf, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_NuzleafF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 56), + .backPicFemale = gMonBackPic_NuzleafF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 5, SHADOW_SIZE_S) FOOTPRINT(Nuzleaf) OVERWORLD( @@ -2035,22 +2049,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Shiftry, - .frontPicFemale = gMonFrontPic_ShiftryF, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 7, .frontAnimFrames = sAnims_Shiftry, .frontAnimId = ANIM_H_VIBRATE, .backPic = gMonBackPic_Shiftry, - .backPicFemale = gMonBackPic_ShiftryF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Shiftry, .shinyPalette = gMonShinyPalette_Shiftry, .iconSprite = gMonIcon_Shiftry, - .iconPalIndex = 5, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 5, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ShiftryF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_ShiftryF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-5, 5, SHADOW_SIZE_M) FOOTPRINT(Shiftry) OVERWORLD( @@ -2108,13 +2124,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Taillow, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 32) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 11, .frontAnimFrames = sAnims_Taillow, .frontAnimId = ANIM_V_JUMPS_BIG, .backPic = gMonBackPic_Taillow, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 32) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 15, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Taillow, .shinyPalette = gMonShinyPalette_Taillow, @@ -2178,12 +2194,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Swellow, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .frontAnimFrames = sAnims_Swellow, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .backPic = gMonBackPic_Swellow, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Swellow, .shinyPalette = gMonShinyPalette_Swellow, @@ -2245,14 +2261,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Wingull, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 24 : 11, .frontAnimFrames = sAnims_Wingull, .frontAnimId = ANIM_H_PIVOT, - .enemyMonElevation = 15, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 16 : 15, .backPic = gMonBackPic_Wingull, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Wingull, .shinyPalette = gMonShinyPalette_Wingull, @@ -2320,8 +2336,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pelipper, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .frontAnimFrames = sAnims_Pelipper, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, @@ -2332,7 +2348,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .palette = gMonPalette_Pelipper, .shinyPalette = gMonShinyPalette_Pelipper, .iconSprite = gMonIcon_Pelipper, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(-1, 17, SHADOW_SIZE_M) FOOTPRINT(Pelipper) OVERWORLD( @@ -2393,7 +2409,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Ralts, .frontPicSize = MON_COORDS_SIZE(24, 40), - .frontPicYOffset = 12, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .frontAnimFrames = sAnims_Ralts, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Ralts, @@ -2460,7 +2476,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Kirlia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Kirlia, - .backPicSize = MON_COORDS_SIZE(48, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 56) : MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Kirlia, @@ -2524,13 +2540,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gardevoir, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Gardevoir, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Gardevoir, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Gardevoir, .shinyPalette = gMonShinyPalette_Gardevoir, @@ -2781,18 +2797,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Surskit, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 8, .frontAnimFrames = sAnims_Surskit, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Surskit, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 13, .backAnimId = BACK_ANIM_H_SPRING, .palette = gMonPalette_Surskit, .shinyPalette = gMonShinyPalette_Surskit, .iconSprite = gMonIcon_Surskit, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(-1, -3, SHADOW_SIZE_S) FOOTPRINT(Surskit) OVERWORLD( @@ -2853,7 +2869,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Masquerain, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 4, .frontAnimFrames = sAnims_Masquerain, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 10, @@ -2922,13 +2938,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Shroomish, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 14, .frontAnimFrames = sAnims_Shroomish, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Shroomish, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 9, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Shroomish, .shinyPalette = gMonShinyPalette_Shroomish, @@ -2991,13 +3007,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Breloom, - .frontPicSize = MON_COORDS_SIZE(48, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(48, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Breloom, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Breloom, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Breloom, .shinyPalette = gMonShinyPalette_Breloom, @@ -3054,13 +3070,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Slakoth, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 15, .frontAnimFrames = sAnims_Slakoth, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Slakoth, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Slakoth, .shinyPalette = gMonShinyPalette_Slakoth, @@ -3117,13 +3133,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Vigoroth, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 7, .frontAnimFrames = sAnims_Vigoroth, .frontAnimId = ANIM_H_JUMPS, .backPic = gMonBackPic_Vigoroth, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Vigoroth, .shinyPalette = gMonShinyPalette_Vigoroth, @@ -3185,18 +3201,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 300, .trainerOffset = 1, .frontPic = gMonFrontPic_Slaking, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Slaking, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Slaking, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Slaking, .shinyPalette = gMonShinyPalette_Slaking, .iconSprite = gMonIcon_Slaking, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(0, 6, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Slaking) OVERWORLD( @@ -3250,12 +3266,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Nincada, .frontPicSize = MON_COORDS_SIZE(56, 32), - .frontPicYOffset = 16, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 16, .frontAnimFrames = sAnims_Nincada, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Nincada, - .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 18, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 18, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Nincada, .shinyPalette = gMonShinyPalette_Nincada, @@ -3314,13 +3330,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Ninjask, .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .frontAnimFrames = sAnims_Ninjask, .frontAnimId = ANIM_H_SLIDE_SLOW, .enemyMonElevation = 10, .backPic = gMonBackPic_Ninjask, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 13, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Ninjask, .shinyPalette = gMonShinyPalette_Ninjask, @@ -3381,7 +3397,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_V_SLIDE_WOBBLE, .enemyMonElevation = 8, .backPic = gMonBackPic_Shedinja, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Shedinja, @@ -3439,18 +3455,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Whismur, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .frontAnimFrames = sAnims_Whismur, .frontAnimId = ANIM_H_SLIDE, .backPic = gMonBackPic_Whismur, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Whismur, .shinyPalette = gMonShinyPalette_Whismur, .iconSprite = gMonIcon_Whismur, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(1, 0, SHADOW_SIZE_S) FOOTPRINT(Whismur) OVERWORLD( @@ -3505,10 +3521,10 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Loudred, - .frontAnimId = ANIM_SHRINK_GROW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW : ANIM_SHRINK_GROW, .backPic = gMonBackPic_Loudred, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Loudred, .shinyPalette = gMonShinyPalette_Loudred, @@ -3573,12 +3589,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Exploud, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Exploud, .frontAnimId = ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Exploud, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 0, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Exploud, .shinyPalette = gMonShinyPalette_Exploud, @@ -3636,18 +3652,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Makuhita, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 8, .frontAnimFrames = sAnims_Makuhita, - .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE : ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Makuhita, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Makuhita, .shinyPalette = gMonShinyPalette_Makuhita, .iconSprite = gMonIcon_Makuhita, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 1, SHADOW(1, 5, SHADOW_SIZE_M) FOOTPRINT(Makuhita) OVERWORLD( @@ -3701,17 +3717,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 7, .frontPic = gMonFrontPic_Hariyama, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Hariyama, .frontAnimId = ANIM_ROTATE_UP_TO_SIDES, .backPic = gMonBackPic_Hariyama, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 4, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Hariyama, .shinyPalette = gMonShinyPalette_Hariyama, .iconSprite = gMonIcon_Hariyama, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(-3, 9, SHADOW_SIZE_L) FOOTPRINT(Hariyama) OVERWORLD( @@ -3765,12 +3781,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 3, .frontPic = gMonFrontPic_Nosepass, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 10, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Nosepass, - .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW : ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Nosepass, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Nosepass, .shinyPalette = gMonShinyPalette_Nosepass, @@ -3900,13 +3916,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Skitty, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 12, .frontAnimFrames = sAnims_Skitty, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Skitty, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 6, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Skitty, .shinyPalette = gMonShinyPalette_Skitty, @@ -3974,13 +3990,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Delcatty, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 4, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .frontAnimFrames = sAnims_Delcatty, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Delcatty, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Delcatty, .shinyPalette = gMonShinyPalette_Delcatty, @@ -4044,12 +4060,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Sableye, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 10, .frontAnimFrames = sAnims_Sableye, .frontAnimId = ANIM_GLOW_BLACK, .backPic = gMonBackPic_Sableye, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 13, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Sableye, .shinyPalette = gMonShinyPalette_Sableye, @@ -4176,13 +4192,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Mawile, - .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Mawile, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Mawile, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 7, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Mawile, .shinyPalette = gMonShinyPalette_Mawile, @@ -4303,13 +4319,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Aron, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 24) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 14, .frontAnimFrames = sAnims_Aron, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Aron, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 12, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Aron, .shinyPalette = gMonShinyPalette_Aron, @@ -4367,13 +4383,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Lairon, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 8, .frontAnimFrames = sAnims_Lairon, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Lairon, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 15, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Lairon, .shinyPalette = gMonShinyPalette_Lairon, @@ -4442,7 +4458,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Aggron, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 5, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 5, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Aggron, .shinyPalette = gMonShinyPalette_Aggron, @@ -4560,22 +4576,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Meditite, - .frontPicFemale = gMonFrontPic_MedititeF, - .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(48, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Meditite, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES, .backPic = gMonBackPic_Meditite, - .backPicFemale = gMonBackPic_MedititeF, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicSizeFemale = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Meditite, .shinyPalette = gMonShinyPalette_Meditite, .iconSprite = gMonIcon_Meditite, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MedititeF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_MedititeF, + .backPicSizeFemale = MON_COORDS_SIZE(48, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 1, SHADOW_SIZE_S) FOOTPRINT(Meditite) OVERWORLD( @@ -4633,22 +4651,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Medicham, - .frontPicFemale = gMonFrontPic_MedichamF, - .frontPicSize = MON_COORDS_SIZE(40, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 64) : MON_COORDS_SIZE(40, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Medicham, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Medicham, - .backPicFemale = gMonBackPic_MedichamF, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Medicham, .shinyPalette = gMonShinyPalette_Medicham, .iconSprite = gMonIcon_Medicham, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MedichamF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 64), + .backPicFemale = gMonBackPic_MedichamF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 13, SHADOW_SIZE_S) FOOTPRINT(Medicham) OVERWORLD( @@ -4699,9 +4719,9 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .weight = 315, .description = COMPOUND_STRING( "It uses its amped-up willpower to create\n" - "additional arms for itself. The more it has\n" - "trained its spirit, the more realistic and\n" - "dexterous these self-created arms become."), + "additional arms for itself. The more it\n" + "has trained its spirit, the more realistic\n" + "and dexterous these arms become."), .pokemonScale = 298, .pokemonOffset = 5, .trainerScale = 256, @@ -4766,13 +4786,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Electrike, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 32) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 14, .frontAnimFrames = sAnims_Electrike, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Electrike, - .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(56, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Electrike, .shinyPalette = gMonShinyPalette_Electrike, @@ -4829,13 +4849,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Manectric, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 56) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .frontAnimFrames = sAnims_Manectric, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Manectric, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 0, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Manectric, .shinyPalette = gMonShinyPalette_Manectric, @@ -4957,12 +4977,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Plusle, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Plusle, - .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SQUISH_AND_BOUNCE : ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Plusle, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Plusle, .shinyPalette = gMonShinyPalette_Plusle, @@ -5025,13 +5045,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Minun, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 11, .frontAnimFrames = sAnims_Minun, - .frontAnimId = ANIM_V_JUMPS_H_JUMPS, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_CIRCULAR_STRETCH_TWICE : ANIM_V_JUMPS_H_JUMPS, .backPic = gMonBackPic_Minun, - .backPicSize = MON_COORDS_SIZE(48, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Minun, .shinyPalette = gMonShinyPalette_Minun, @@ -5096,13 +5116,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Volbeat, - .frontPicSize = MON_COORDS_SIZE(48, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Volbeat, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Volbeat, - .backPicSize = MON_COORDS_SIZE(48, 64), - .backPicYOffset = 3, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 3, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Volbeat, .shinyPalette = gMonShinyPalette_Volbeat, @@ -5170,12 +5190,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Illumise, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 10, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 10, .frontAnimFrames = sAnims_Illumise, - .frontAnimId = ANIM_RISING_WOBBLE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_BOUNCE_ROTATE_TO_SIDES : ANIM_RISING_WOBBLE, .backPic = gMonBackPic_Illumise, .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 8, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 8, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Illumise, .shinyPalette = gMonShinyPalette_Illumise, @@ -5302,22 +5322,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Roselia, - .frontPicFemale = gMonFrontPic_RoseliaF, .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 11, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 11, .frontAnimFrames = sAnims_Roselia, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Roselia, - .backPicFemale = gMonBackPic_RoseliaF, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_GREEN, .palette = gMonPalette_Roselia, .shinyPalette = gMonShinyPalette_Roselia, .iconSprite = gMonIcon_Roselia, - .iconPalIndex = 4, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 4, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RoseliaF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), + .backPicFemale = gMonBackPic_RoseliaF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 3, SHADOW_SIZE_S) FOOTPRINT(Roselia) OVERWORLD( @@ -5386,22 +5408,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Roserade, - .frontPicFemale = gMonFrontPic_RoseradeF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Roserade, .frontAnimId = ANIM_H_VIBRATE, .backPic = gMonBackPic_Roserade, - .backPicFemale = gMonBackPic_RoseradeF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Roserade, .shinyPalette = gMonShinyPalette_Roserade, .iconSprite = gMonIcon_Roserade, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RoseradeF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), + .backPicFemale = gMonBackPic_RoseradeF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 6, SHADOW_SIZE_S) FOOTPRINT(Roserade) OVERWORLD( @@ -5462,22 +5486,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gulpin, - .frontPicFemale = gMonFrontPic_GulpinF, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 15, .frontAnimFrames = sAnims_Gulpin, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Gulpin, - .backPicFemale = gMonBackPic_GulpinF, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Gulpin, .shinyPalette = gMonShinyPalette_Gulpin, .iconSprite = gMonIcon_Gulpin, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GulpinF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_GulpinF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(1, -2, SHADOW_SIZE_S) FOOTPRINT(Gulpin) OVERWORLD( @@ -5537,22 +5563,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 345, .trainerOffset = 3, .frontPic = gMonFrontPic_Swalot, - .frontPicFemale = gMonFrontPic_SwalotF, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 5, .frontAnimFrames = sAnims_Swalot, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .backPic = gMonBackPic_Swalot, - .backPicFemale = gMonBackPic_SwalotF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 2, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Swalot, .shinyPalette = gMonShinyPalette_Swalot, .iconSprite = gMonIcon_Swalot, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SwalotF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_SwalotF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(4, 3, SHADOW_SIZE_L) FOOTPRINT(Swalot) OVERWORLD( @@ -5616,8 +5644,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Carvanha, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .backPic = gMonBackPic_Carvanha, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, .palette = gMonPalette_Carvanha, .shinyPalette = gMonShinyPalette_Carvanha, @@ -5675,13 +5703,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 317, .trainerOffset = 3, .frontPic = gMonFrontPic_Sharpedo, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 0, .frontAnimFrames = sAnims_Sharpedo, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, .backPic = gMonBackPic_Sharpedo, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 3, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Sharpedo, .shinyPalette = gMonShinyPalette_Sharpedo, @@ -5800,13 +5828,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 493, .trainerOffset = 0, .frontPic = gMonFrontPic_Wailmer, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 10, .frontAnimFrames = sAnims_Wailmer, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .backPic = gMonBackPic_Wailmer, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 21 : 9, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Wailmer, .shinyPalette = gMonShinyPalette_Wailmer, @@ -5864,13 +5892,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 18, .frontPic = gMonFrontPic_Wailord, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 4, .frontAnimFrames = sAnims_Wailord, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .frontAnimDelay = 10, .backPic = gMonBackPic_Wailord, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 14, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 22 : 14, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Wailord, .shinyPalette = gMonShinyPalette_Wailord, @@ -5931,22 +5959,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Numel, - .frontPicFemale = gMonFrontPic_NumelF, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 9, .frontAnimFrames = sAnims_Numel, .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Numel, - .backPicFemale = gMonBackPic_NumelF, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Numel, .shinyPalette = gMonShinyPalette_Numel, .iconSprite = gMonIcon_Numel, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_NumelF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_NumelF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(4, 2, SHADOW_SIZE_S) FOOTPRINT(Numel) OVERWORLD( @@ -6009,22 +6039,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 345, .trainerOffset = 6, .frontPic = gMonFrontPic_Camerupt, - .frontPicFemale = gMonFrontPic_CameruptF, .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 6, .frontAnimFrames = sAnims_Camerupt, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Camerupt, - .backPicFemale = gMonBackPic_CameruptF, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicSizeFemale = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 19 : 13, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Camerupt, .shinyPalette = gMonShinyPalette_Camerupt, .iconSprite = gMonIcon_Camerupt, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_CameruptF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 56), + .backPicFemale = gMonBackPic_CameruptF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 4, SHADOW_SIZE_L) FOOTPRINT(Camerupt) OVERWORLD( @@ -6149,17 +6181,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Torkoal, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 3, .frontAnimFrames = sAnims_Torkoal, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Torkoal, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Torkoal, .shinyPalette = gMonShinyPalette_Torkoal, .iconSprite = gMonIcon_Torkoal, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(2, 7, SHADOW_SIZE_L) FOOTPRINT(Torkoal) OVERWORLD( @@ -6217,8 +6249,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Spoink, .frontAnimId = ANIM_H_JUMPS_V_STRETCH_TWICE, .backPic = gMonBackPic_Spoink, - .backPicSize = MON_COORDS_SIZE(40, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(40, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 4, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, .palette = gMonPalette_Spoink, .shinyPalette = gMonShinyPalette_Spoink, @@ -6275,14 +6307,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Grumpig, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 2, .frontAnimFrames = sAnims_Grumpig, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .frontAnimDelay = 15, .backPic = gMonBackPic_Grumpig, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 2, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Grumpig, .shinyPalette = gMonShinyPalette_Grumpig, @@ -6347,7 +6379,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Spinda, - .frontAnimId = ANIM_CIRCLE_INTO_BG, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_JUMPS : ANIM_CIRCLE_INTO_BG, .backPic = gMonBackPic_Spinda, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 4, @@ -6413,18 +6445,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Trapinch, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 32) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 12, .frontAnimFrames = sAnims_Trapinch, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Trapinch, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 40) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 10, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Trapinch, .shinyPalette = gMonShinyPalette_Trapinch, .iconSprite = gMonIcon_Trapinch, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 0, SHADOW(4, -1, SHADOW_SIZE_S) FOOTPRINT(Trapinch) OVERWORLD( @@ -6482,12 +6514,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Vibrava, .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 10, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .frontAnimFrames = sAnims_Vibrava, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Vibrava, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 12, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Vibrava, .shinyPalette = gMonShinyPalette_Vibrava, @@ -6561,7 +6593,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .enemyMonElevation = 7, .backPic = gMonBackPic_Flygon, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 3, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 3, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Flygon, .shinyPalette = gMonShinyPalette_Flygon, @@ -6619,13 +6651,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Cacnea, - .frontPicSize = MON_COORDS_SIZE(56, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 32) : MON_COORDS_SIZE(56, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .frontAnimFrames = sAnims_Cacnea, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .backPic = gMonBackPic_Cacnea, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 15 : 12, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Cacnea, .shinyPalette = gMonShinyPalette_Cacnea, @@ -6684,20 +6716,22 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Cacturne, - .frontPicFemale = gMonFrontPic_CacturneF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Cacturne, .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Cacturne, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 0, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Cacturne, .shinyPalette = gMonShinyPalette_Cacturne, .iconSprite = gMonIcon_Cacturne, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_CacturneF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 14, SHADOW_SIZE_M) FOOTPRINT(Cacturne) OVERWORLD( @@ -6755,13 +6789,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Swablu, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 17 : 14, .frontAnimFrames = sAnims_Swablu, - .frontAnimId = ANIM_GROW_VIBRATE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SLIDE : ANIM_GROW_VIBRATE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 0, .backPic = gMonBackPic_Swablu, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 11, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Swablu, .shinyPalette = gMonShinyPalette_Swablu, @@ -6819,12 +6854,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Altaria, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 1, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 1, .frontAnimFrames = sAnims_Altaria, - .frontAnimId = ANIM_V_STRETCH, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_H_STRETCH : ANIM_V_STRETCH, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, .backPic = gMonBackPic_Altaria, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 10, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Altaria, .shinyPalette = gMonShinyPalette_Altaria, @@ -6944,13 +6980,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Zangoose, - .frontPicSize = MON_COORDS_SIZE(56, 56), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Zangoose, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Zangoose, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 6, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Zangoose, .shinyPalette = gMonShinyPalette_Zangoose, @@ -7011,13 +7047,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Seviper, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .frontAnimFrames = sAnims_Seviper, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Seviper, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 1, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 1, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Seviper, .shinyPalette = gMonShinyPalette_Seviper, @@ -7089,8 +7125,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_SWING_CONVEX_FAST, .enemyMonElevation = 13, .backPic = gMonBackPic_Lunatone, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 8, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Lunatone, .shinyPalette = gMonShinyPalette_Lunatone, @@ -7156,13 +7192,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Solrock, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Solrock, .frontAnimId = ANIM_ROTATE_TO_SIDES_TWICE, .enemyMonElevation = 4, .backPic = gMonBackPic_Solrock, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 2, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Solrock, .shinyPalette = gMonShinyPalette_Solrock, @@ -7223,14 +7259,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Barboach, - .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicYOffset = 15, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(48, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 15, .frontAnimFrames = sAnims_Barboach, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, - .enemyMonElevation = 7, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 0 : 7, .backPic = gMonBackPic_Barboach, - .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Barboach, .shinyPalette = gMonShinyPalette_Barboach, @@ -7291,13 +7327,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Whiscash, - .frontPicSize = MON_COORDS_SIZE(64, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(64, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Whiscash, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .backPic = gMonBackPic_Whiscash, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Whiscash, .shinyPalette = gMonShinyPalette_Whiscash, @@ -7354,13 +7390,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Corphish, - .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 8, .frontAnimFrames = sAnims_Corphish, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Corphish, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 8, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Corphish, .shinyPalette = gMonShinyPalette_Corphish, @@ -7418,12 +7454,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Crawdaunt, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 4, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 4, .frontAnimFrames = sAnims_Crawdaunt, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Crawdaunt, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 7, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 7, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Crawdaunt, .shinyPalette = gMonShinyPalette_Crawdaunt, @@ -7482,10 +7518,10 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Baltoy, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 14, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 14, .frontAnimFrames = sAnims_Baltoy, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - .enemyMonElevation = 8, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 4 : 8, .backPic = gMonBackPic_Baltoy, .backPicSize = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, @@ -7493,7 +7529,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .palette = gMonPalette_Baltoy, .shinyPalette = gMonShinyPalette_Baltoy, .iconSprite = gMonIcon_Baltoy, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, SHADOW(-2, 5, SHADOW_SIZE_S) FOOTPRINT(Baltoy) OVERWORLD( @@ -7546,7 +7582,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 1, .frontPic = gMonFrontPic_Claydol, .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 3, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 3, .frontAnimFrames = sAnims_Claydol, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .enemyMonElevation = 10, @@ -7621,8 +7657,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Lileep, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Lileep, - .backPicSize = MON_COORDS_SIZE(48, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(48, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 9 : 8, .backAnimId = BACK_ANIM_H_STRETCH, .palette = gMonPalette_Lileep, .shinyPalette = gMonShinyPalette_Lileep, @@ -7691,13 +7727,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Cradily, .frontAnimId = ANIM_V_SHAKE_TWICE, .backPic = gMonBackPic_Cradily, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 0, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Cradily, .shinyPalette = gMonShinyPalette_Cradily, .iconSprite = gMonIcon_Cradily, - .iconPalIndex = 1, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 1, SHADOW(2, 11, SHADOW_SIZE_M) FOOTPRINT(Cradily) OVERWORLD( @@ -7755,13 +7791,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Anorith, - .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 7, .frontAnimFrames = sAnims_Anorith, .frontAnimId = ANIM_TWIST, .backPic = gMonBackPic_Anorith, - .backPicSize = MON_COORDS_SIZE(56, 32), - .backPicYOffset = 19, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(56, 32), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 23 : 19, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Anorith, .shinyPalette = gMonShinyPalette_Anorith, @@ -7825,17 +7861,17 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Armaldo, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .frontAnimFrames = sAnims_Armaldo, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Armaldo, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 0, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Armaldo, .shinyPalette = gMonShinyPalette_Armaldo, .iconSprite = gMonIcon_Armaldo, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, SHADOW(-2, 11, SHADOW_SIZE_L) FOOTPRINT(Armaldo) OVERWORLD( @@ -7891,13 +7927,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Feebas, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 10, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 10, .frontAnimFrames = sAnims_Feebas, .frontAnimId = ANIM_BOUNCE_ROTATE_TO_SIDES_SLOW, .backPic = gMonBackPic_Feebas, .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 6, .backAnimId = BACK_ANIM_H_SPRING, .palette = gMonPalette_Feebas, .shinyPalette = gMonShinyPalette_Feebas, @@ -7960,23 +7996,25 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 360, .trainerOffset = 7, .frontPic = gMonFrontPic_Milotic, - .frontPicFemale = gMonFrontPic_MiloticF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .frontAnimFrames = sAnims_Milotic, - .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_GLOW_BLUE : ANIM_CIRCULAR_STRETCH_TWICE, .frontAnimDelay = 45, .backPic = gMonBackPic_Milotic, - .backPicFemale = gMonBackPic_MiloticF, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 64) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 0, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Milotic, .shinyPalette = gMonShinyPalette_Milotic, .iconSprite = gMonIcon_Milotic, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 0 : 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_MiloticF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_MiloticF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 12, SHADOW_SIZE_M) FOOTPRINT(Milotic) OVERWORLD( @@ -8309,12 +8347,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Kecleon, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicYOffset = 5, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 5, .frontAnimFrames = sAnims_Kecleon, .frontAnimId = ANIM_FLICKER_INCREASING, .frontAnimDelay = 30, .backPic = gMonBackPic_Kecleon, - .backPicSize = MON_COORDS_SIZE(56, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Kecleon, @@ -8378,14 +8416,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Shuppet, - .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicYOffset = 13, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(40, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 13, .frontAnimFrames = sAnims_Shuppet, .frontAnimId = ANIM_V_SLIDE_WOBBLE, - .enemyMonElevation = 14, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 14, .backPic = gMonBackPic_Shuppet, .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 5, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 5, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Shuppet, .shinyPalette = gMonShinyPalette_Shuppet, @@ -8447,13 +8485,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Banette, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 7, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 7, .frontAnimFrames = sAnims_Banette, - .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONVEX : ANIM_CIRCULAR_STRETCH_TWICE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 8 : 0, .backPic = gMonBackPic_Banette, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 5, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 5, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Banette, .shinyPalette = gMonShinyPalette_Banette, @@ -8577,14 +8616,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Duskull, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .frontAnimFrames = sAnims_Duskull, .frontAnimId = ANIM_ZIGZAG_FAST, - .enemyMonElevation = 13, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 9 : 13, .backPic = gMonBackPic_Duskull, - .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Duskull, .shinyPalette = gMonShinyPalette_Duskull, @@ -8647,14 +8686,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 299, .trainerOffset = 1, .frontPic = gMonFrontPic_Dusclops, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 3, .frontAnimFrames = sAnims_Dusclops, .frontAnimId = ANIM_H_VIBRATE, .frontAnimDelay = 30, .backPic = gMonBackPic_Dusclops, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 2, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 2, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Dusclops, .shinyPalette = gMonShinyPalette_Dusclops, @@ -8798,8 +8837,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Tropius, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Tropius, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 0, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Tropius, .shinyPalette = gMonShinyPalette_Tropius, @@ -8935,10 +8974,10 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontPicYOffset = 11, .frontAnimFrames = sAnims_Chimecho, .frontAnimId = ANIM_H_SLIDE_WOBBLE, - .enemyMonElevation = 16, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 16, .backPic = gMonBackPic_Chimecho, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 9, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Chimecho, .shinyPalette = gMonShinyPalette_Chimecho, @@ -9001,13 +9040,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Absol, - .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicYOffset = 2, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 64) : MON_COORDS_SIZE(56, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 0 : 2, .frontAnimFrames = sAnims_Absol, .frontAnimId = ANIM_CIRCULAR_VIBRATE, .frontAnimDelay = 45, .backPic = gMonBackPic_Absol, - .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Absol, @@ -9133,8 +9172,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Snorunt, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 12, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 12, .frontAnimFrames = sAnims_Snorunt, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE_SLOW, .frontAnimDelay = 20, @@ -9202,14 +9241,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 344, .trainerOffset = 0, .frontPic = gMonFrontPic_Glalie, - .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 48) : MON_COORDS_SIZE(56, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 8, .frontAnimFrames = sAnims_Glalie, .frontAnimId = ANIM_ZIGZAG_FAST, .enemyMonElevation = 12, .backPic = gMonBackPic_Glalie, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 10, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 12 : 10, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Glalie, .shinyPalette = gMonShinyPalette_Glalie, @@ -9394,14 +9433,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Spheal, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 11, .frontAnimFrames = sAnims_Spheal, - .frontAnimId = ANIM_SPIN_LONG, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SPIN : ANIM_SPIN_LONG, .frontAnimDelay = 15, .backPic = gMonBackPic_Spheal, - .backPicSize = MON_COORDS_SIZE(48, 40), - .backPicYOffset = 15, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 32) : MON_COORDS_SIZE(48, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 18 : 15, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Spheal, .shinyPalette = gMonShinyPalette_Spheal, @@ -9462,13 +9501,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Sealeo, - .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(56, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Sealeo, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Sealeo, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 11, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Sealeo, .shinyPalette = gMonShinyPalette_Sealeo, @@ -9539,8 +9578,8 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimFrames = sAnims_Walrein, .frontAnimId = ANIM_H_SHAKE, .backPic = gMonBackPic_Walrein, - .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 0, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Walrein, .shinyPalette = gMonShinyPalette_Walrein, @@ -9599,12 +9638,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Clamperl, - .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicYOffset = 11, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(40, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .frontAnimFrames = sAnims_Clamperl, .frontAnimId = ANIM_TWIST, .backPic = gMonBackPic_Clamperl, - .backPicSize = MON_COORDS_SIZE(56, 40), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(56, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_DIP_RIGHT_SIDE, .palette = gMonPalette_Clamperl, @@ -9667,13 +9706,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Huntail, - .frontPicSize = MON_COORDS_SIZE(64, 64), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Huntail, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Huntail, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 64) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 4, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Huntail, .shinyPalette = gMonShinyPalette_Huntail, @@ -9729,13 +9768,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gorebyss, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 6, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 6, .frontAnimFrames = sAnims_Gorebyss, .frontAnimId = ANIM_V_SLIDE_WOBBLE, .backPic = gMonBackPic_Gorebyss, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Gorebyss, .shinyPalette = gMonShinyPalette_Gorebyss, @@ -9794,22 +9833,24 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Relicanth, - .frontPicFemale = gMonFrontPic_RelicanthF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), - .frontPicYOffset = 8, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 8, .frontAnimFrames = sAnims_Relicanth, .frontAnimId = ANIM_TIP_MOVE_FORWARD, .backPic = gMonBackPic_Relicanth, - .backPicFemale = gMonBackPic_RelicanthF, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicSizeFemale = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 12, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Relicanth, .shinyPalette = gMonShinyPalette_Relicanth, .iconSprite = gMonIcon_Relicanth, - .iconPalIndex = 2, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 1 : 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_RelicanthF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_RelicanthF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 3, SHADOW_SIZE_M) FOOTPRINT(Relicanth) OVERWORLD( @@ -9869,12 +9910,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Luvdisc, - .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicYOffset = 14, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(32, 40), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 24 : 14, .frontAnimFrames = sAnims_Luvdisc, .frontAnimId = ANIM_H_SLIDE_WOBBLE, .backPic = gMonBackPic_Luvdisc, - .backPicSize = MON_COORDS_SIZE(40, 48), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(32, 48) : MON_COORDS_SIZE(40, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_H_SPRING_REPEATED, .palette = gMonPalette_Luvdisc, @@ -9934,18 +9975,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Bagon, - .frontPicSize = MON_COORDS_SIZE(32, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 48) : MON_COORDS_SIZE(32, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 11 : 9, .frontAnimFrames = sAnims_Bagon, - .frontAnimId = ANIM_H_SHAKE, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE_TWICE : ANIM_H_SHAKE, .backPic = gMonBackPic_Bagon, - .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(48, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 8 : 6, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Bagon, .shinyPalette = gMonShinyPalette_Bagon, .iconSprite = gMonIcon_Bagon, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(4, 3, SHADOW_SIZE_S) FOOTPRINT(Bagon) OVERWORLD( @@ -10004,7 +10045,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Shelgon, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 12, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 13 : 12, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Shelgon, .shinyPalette = gMonShinyPalette_Shelgon, @@ -10067,14 +10108,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Salamence, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Salamence, .frontAnimId = ANIM_H_SHAKE, .frontAnimDelay = 70, .backPic = gMonBackPic_Salamence, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 4, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 56) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 4, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Salamence, .shinyPalette = gMonShinyPalette_Salamence, @@ -10193,14 +10234,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Beldum, - .frontPicSize = MON_COORDS_SIZE(48, 40), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(40, 40) : MON_COORDS_SIZE(48, 40), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Beldum, .frontAnimId = ANIM_H_SHAKE, .enemyMonElevation = 8, .backPic = gMonBackPic_Beldum, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 9, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 10 : 9, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Beldum, .shinyPalette = gMonShinyPalette_Beldum, @@ -10258,13 +10299,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Metang, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 9, .frontAnimFrames = sAnims_Metang, .frontAnimId = ANIM_V_SLIDE, .backPic = gMonBackPic_Metang, - .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicYOffset = 13, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 32) : MON_COORDS_SIZE(64, 40), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 16 : 13, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Metang, .shinyPalette = gMonShinyPalette_Metang, @@ -10327,13 +10368,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 447, .trainerOffset = 9, .frontPic = gMonFrontPic_Metagross, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 9, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 6 : 9, .frontAnimFrames = sAnims_Metagross, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Metagross, - .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 24) : MON_COORDS_SIZE(64, 56), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 20 : 6, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Metagross, .shinyPalette = gMonShinyPalette_Metagross, @@ -10458,12 +10499,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 309, .trainerOffset = 1, .frontPic = gMonFrontPic_Regirock, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 3, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 3, .frontAnimFrames = sAnims_Regirock, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, .backPic = gMonBackPic_Regirock, - .backPicSize = MON_COORDS_SIZE(64, 56), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 48) : MON_COORDS_SIZE(64, 56), .backPicYOffset = 10, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Regirock, @@ -10532,15 +10573,15 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Regice, - .frontAnimId = ANIM_H_SLIDE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_FOUR_PETAL : ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Regice, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Regice, .shinyPalette = gMonShinyPalette_Regice, .iconSprite = gMonIcon_Regice, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 10, SHADOW_SIZE_L) FOOTPRINT(Regice) OVERWORLD( @@ -10601,13 +10642,13 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 359, .trainerOffset = 6, .frontPic = gMonFrontPic_Registeel, - .frontPicSize = MON_COORDS_SIZE(64, 56), - .frontPicYOffset = 5, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 56), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 5, .frontAnimFrames = sAnims_Registeel, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Registeel, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 11, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 40) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 14 : 11, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Registeel, .shinyPalette = gMonShinyPalette_Registeel, @@ -10672,14 +10713,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Latias, - .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicYOffset = 8, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(64, 48), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 8, .frontAnimFrames = sAnims_Latias, - .frontAnimId = ANIM_ZIGZAG_SLOW, - .enemyMonElevation = 12, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONCAVE_FAST_SHORT : ANIM_ZIGZAG_SLOW, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 6 : 12, .backPic = gMonBackPic_Latias, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 0, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Latias, .shinyPalette = gMonShinyPalette_Latias, @@ -10808,18 +10849,18 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 3, .frontPic = gMonFrontPic_Latios, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 0, .frontAnimFrames = sAnims_Latios, - .frontAnimId = ANIM_CIRCLE_C_CLOCKWISE_SLOW, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_V_SHAKE : ANIM_CIRCLE_C_CLOCKWISE_SLOW, .enemyMonElevation = 6, .backPic = gMonBackPic_Latios, - .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicYOffset = 0, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 64) : MON_COORDS_SIZE(56, 64), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 3 : 0, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Latios, .shinyPalette = gMonShinyPalette_Latios, .iconSprite = gMonIcon_Latios, - .iconPalIndex = 0, + .iconPalIndex = P_GBA_STYLE_SPECIES_ICONS ? 2 : 0, SHADOW(1, 17, SHADOW_SIZE_M) FOOTPRINT(Latios) OVERWORLD( @@ -10942,14 +10983,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 614, .trainerOffset = 13, .frontPic = gMonFrontPic_Kyogre, - .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 64), + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 4 : 0, .frontAnimFrames = sAnims_Kyogre, .frontAnimId = ANIM_SWING_CONCAVE_FAST_SHORT, .frontAnimDelay = 60, .backPic = gMonBackPic_Kyogre, .backPicSize = MON_COORDS_SIZE(64, 32), - .backPicYOffset = 18, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 19 : 18, .backAnimId = BACK_ANIM_SHAKE_GLOW_BLUE, .palette = gMonPalette_Kyogre, .shinyPalette = gMonShinyPalette_Kyogre, @@ -11078,12 +11119,12 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerOffset = 14, .frontPic = gMonFrontPic_Groudon, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 0, + .frontPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 1 : 0, .frontAnimFrames = sAnims_Groudon, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Groudon, - .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicYOffset = 8, + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(64, 56) : MON_COORDS_SIZE(64, 48), + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 7 : 8, .backAnimId = BACK_ANIM_SHAKE_GLOW_RED, .palette = gMonPalette_Groudon, .shinyPalette = gMonShinyPalette_Groudon, @@ -11220,7 +11261,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimDelay = 60, .enemyMonElevation = 6, .backPic = gMonBackPic_Rayquaza, - .backPicSize = MON_COORDS_SIZE(64, 64), + .backPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(56, 64) : MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Rayquaza, @@ -11354,14 +11395,14 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Jirachi, - .frontPicSize = MON_COORDS_SIZE(56, 48), + .frontPicSize = P_GBA_STYLE_SPECIES_GFX ? MON_COORDS_SIZE(48, 48) : MON_COORDS_SIZE(56, 48), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Jirachi, - .frontAnimId = ANIM_RISING_WOBBLE, - .enemyMonElevation = 14, + .frontAnimId = P_GBA_STYLE_SPECIES_GFX ? ANIM_SWING_CONVEX : ANIM_RISING_WOBBLE, + .enemyMonElevation = P_GBA_STYLE_SPECIES_GFX ? 12 : 14, .backPic = gMonBackPic_Jirachi, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 5 : 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Jirachi, .shinyPalette = gMonShinyPalette_Jirachi, @@ -11433,7 +11474,7 @@ const struct SpeciesInfo gSpeciesInfoGen3[] = .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_DeoxysNormal, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicYOffset = 6, + .backPicYOffset = P_GBA_STYLE_SPECIES_GFX ? 2 : 6, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_DeoxysNormal, .shinyPalette = gMonShinyPalette_DeoxysNormal, diff --git a/src/data/pokemon/species_info/gen_4_families.h b/src/data/pokemon/species_info/gen_4_families.h index fd7b8c0f70..b84284de29 100644 --- a/src/data/pokemon/species_info/gen_4_families.h +++ b/src/data/pokemon/species_info/gen_4_families.h @@ -569,10 +569,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .height = 17, .weight = 845, .description = COMPOUND_STRING( - "The three horns that extend from its beak\n" - "attest to its power. It avoids unnecessary\n" - "disputes, but it will decimate anything\n" - "that threatens its pride."), + "The three horns that extend from its\n" + "beak attest to its power. It avoids\n" + "unnecessary disputes, but it will decimate\n" + "anything that threatens its pride."), .pokemonScale = 259, .pokemonOffset = 0, .trainerScale = 290, @@ -645,22 +645,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Starly, - .frontPicFemale = gMonFrontPic_StarlyF, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Starly, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Starly, - .backPicFemale = gMonBackPic_StarlyF, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_CONCAVE_ARC_SMALL, .palette = gMonPalette_Starly, .shinyPalette = gMonShinyPalette_Starly, .iconSprite = gMonIcon_Starly, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_StarlyF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), + .backPicFemale = gMonBackPic_StarlyF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 1, SHADOW_SIZE_S) FOOTPRINT(Starly) OVERWORLD( @@ -718,22 +720,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Staravia, - .frontPicFemale = gMonFrontPic_StaraviaF, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Staravia, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Staravia, - .backPicFemale = gMonBackPic_StaraviaF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Staravia, .shinyPalette = gMonShinyPalette_Staravia, .iconSprite = gMonIcon_Staravia, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_StaraviaF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_StaraviaF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 5, SHADOW_SIZE_S) FOOTPRINT(Staravia) OVERWORLD( @@ -798,9 +802,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Staraptor, - .frontPicFemale = gMonFrontPic_StaraptorF, .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Staraptor, .frontAnimId = ANIM_V_SHAKE, @@ -812,6 +814,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .shinyPalette = gMonShinyPalette_Staraptor, .iconSprite = gMonIcon_Staraptor, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_StaraptorF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 10, SHADOW_SIZE_M) FOOTPRINT(Staraptor) OVERWORLD( @@ -869,22 +875,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Bidoof, - .frontPicFemale = gMonFrontPic_BidoofF, .frontPicSize = MON_COORDS_SIZE(40, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Bidoof, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Bidoof, - .backPicFemale = gMonBackPic_BidoofF, .backPicSize = MON_COORDS_SIZE(64, 40), - .backPicSizeFemale = MON_COORDS_SIZE(64, 40), .backPicYOffset = 13, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Bidoof, .shinyPalette = gMonShinyPalette_Bidoof, .iconSprite = gMonIcon_Bidoof, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_BidoofF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 40), + .backPicFemale = gMonBackPic_BidoofF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 1, SHADOW_SIZE_M) FOOTPRINT(Bidoof) OVERWORLD( @@ -942,9 +950,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Bibarel, - .frontPicFemale = gMonFrontPic_BibarelF, .frontPicSize = MON_COORDS_SIZE(56, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Bibarel, .frontAnimId = ANIM_GROW_VIBRATE, @@ -956,6 +962,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .shinyPalette = gMonShinyPalette_Bibarel, .iconSprite = gMonIcon_Bibarel, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_BibarelF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-5, 5, SHADOW_SIZE_M) FOOTPRINT(Bibarel) OVERWORLD( @@ -1014,22 +1024,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Kricketot, - .frontPicFemale = gMonFrontPic_KricketotF, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 11, .frontAnimFrames = sAnims_Kricketot, .frontAnimId = ANIM_H_JUMPS, .backPic = gMonBackPic_Kricketot, - .backPicFemale = gMonBackPic_KricketotF, .backPicSize = MON_COORDS_SIZE(48, 56), - .backPicSizeFemale = MON_COORDS_SIZE(48, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Kricketot, .shinyPalette = gMonShinyPalette_Kricketot, .iconSprite = gMonIcon_Kricketot, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_KricketotF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_KricketotF, + .backPicSizeFemale = MON_COORDS_SIZE(48, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-5, 2, SHADOW_SIZE_S) FOOTPRINT(Kricketot) OVERWORLD( @@ -1088,22 +1100,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Kricketune, - .frontPicFemale = gMonFrontPic_KricketuneF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 7, .frontAnimFrames = sAnims_Kricketune, .frontAnimId = ANIM_H_SLIDE_SLOW, .backPic = gMonBackPic_Kricketune, - .backPicFemale = gMonBackPic_KricketuneF, .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_VIBRATE, .palette = gMonPalette_Kricketune, .shinyPalette = gMonShinyPalette_Kricketune, .iconSprite = gMonIcon_Kricketune, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_KricketuneF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_KricketuneF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-3, 6, SHADOW_SIZE_S) FOOTPRINT(Kricketune) OVERWORLD( @@ -1161,22 +1175,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Shinx, - .frontPicFemale = gMonFrontPic_ShinxF, .frontPicSize = MON_COORDS_SIZE(48, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, .frontAnimFrames = sAnims_Shinx, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Shinx, - .backPicFemale = gMonBackPic_ShinxF, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Shinx, .shinyPalette = gMonShinyPalette_Shinx, .iconSprite = gMonIcon_Shinx, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ShinxF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 40), + .backPicFemale = gMonBackPic_ShinxF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 1, SHADOW_SIZE_S) FOOTPRINT(Shinx) OVERWORLD( @@ -1234,22 +1250,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Luxio, - .frontPicFemale = gMonFrontPic_LuxioF, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Luxio, .frontAnimId = ANIM_H_STRETCH, .backPic = gMonBackPic_Luxio, - .backPicFemale = gMonBackPic_LuxioF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, .backAnimId = BACK_ANIM_JOLT_RIGHT, .palette = gMonPalette_Luxio, .shinyPalette = gMonShinyPalette_Luxio, .iconSprite = gMonIcon_Luxio, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LuxioF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_LuxioF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-4, 2, SHADOW_SIZE_M) FOOTPRINT(Luxio) OVERWORLD( @@ -1312,22 +1330,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 262, .trainerOffset = 0, .frontPic = gMonFrontPic_Luxray, - .frontPicFemale = gMonFrontPic_LuxrayF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Luxray, .frontAnimId = ANIM_GLOW_YELLOW, .backPic = gMonBackPic_Luxray, - .backPicFemale = gMonBackPic_LuxrayF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, .palette = gMonPalette_Luxray, .shinyPalette = gMonShinyPalette_Luxray, .iconSprite = gMonIcon_Luxray, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LuxrayF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_LuxrayF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 10, SHADOW_SIZE_L) FOOTPRINT(Luxray) OVERWORLD( @@ -1703,29 +1723,29 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_BurmySandyCloak, + .frontPic = gMonFrontPic_BurmySandy, .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Burmy, .frontAnimId = ANIM_V_STRETCH, .enemyMonElevation = 10, - .backPic = gMonBackPic_BurmySandyCloak, + .backPic = gMonBackPic_BurmySandy, .backPicSize = MON_COORDS_SIZE(32, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_H_SHAKE, - .palette = gMonPalette_BurmySandyCloak, - .shinyPalette = gMonShinyPalette_BurmySandyCloak, - .iconSprite = gMonIcon_BurmySandyCloak, + .palette = gMonPalette_BurmySandy, + .shinyPalette = gMonShinyPalette_BurmySandy, + .iconSprite = gMonIcon_BurmySandy, .iconPalIndex = 1, SHADOW(-1, 9, SHADOW_SIZE_S) FOOTPRINT(Burmy) OVERWORLD( - sPicTable_BurmySandyCloak, + sPicTable_BurmySandy, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_BurmySandyCloak, - gShinyOverworldPalette_BurmySandyCloak + gOverworldPalette_BurmySandy, + gShinyOverworldPalette_BurmySandy ) .tmIlliterate = TRUE, .levelUpLearnset = sBurmyLevelUpLearnset, @@ -1770,29 +1790,29 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 24, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_BurmyTrashCloak, + .frontPic = gMonFrontPic_BurmyTrash, .frontPicSize = MON_COORDS_SIZE(32, 56), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Burmy, .frontAnimId = ANIM_V_STRETCH, .enemyMonElevation = 10, - .backPic = gMonBackPic_BurmyTrashCloak, + .backPic = gMonBackPic_BurmyTrash, .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_H_SHAKE, - .palette = gMonPalette_BurmyTrashCloak, - .shinyPalette = gMonShinyPalette_BurmyTrashCloak, - .iconSprite = gMonIcon_BurmyTrashCloak, + .palette = gMonPalette_BurmyTrash, + .shinyPalette = gMonShinyPalette_BurmyTrash, + .iconSprite = gMonIcon_BurmyTrash, .iconPalIndex = 0, SHADOW(-1, 13, SHADOW_SIZE_S) FOOTPRINT(Burmy) OVERWORLD( - sPicTable_BurmyTrashCloak, + sPicTable_BurmyTrash, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_BurmyTrashCloak, - gShinyOverworldPalette_BurmyTrashCloak + gOverworldPalette_BurmyTrash, + gShinyOverworldPalette_BurmyTrash ) .tmIlliterate = TRUE, .levelUpLearnset = sBurmyLevelUpLearnset, @@ -1902,32 +1922,32 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_WormadamSandyCloak, + .frontPic = gMonFrontPic_WormadamSandy, .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wormadam, .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, .enemyMonElevation = 8, - .backPic = gMonBackPic_WormadamSandyCloak, + .backPic = gMonBackPic_WormadamSandy, .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - .palette = gMonPalette_WormadamSandyCloak, - .shinyPalette = gMonShinyPalette_WormadamSandyCloak, - .iconSprite = gMonIcon_WormadamSandyCloak, + .palette = gMonPalette_WormadamSandy, + .shinyPalette = gMonShinyPalette_WormadamSandy, + .iconSprite = gMonIcon_WormadamSandy, .iconPalIndex = 1, SHADOW(-1, 9, SHADOW_SIZE_S) FOOTPRINT(Wormadam) OVERWORLD( - sPicTable_WormadamSandyCloak, + sPicTable_WormadamSandy, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_WormadamSandyCloak, - gShinyOverworldPalette_WormadamSandyCloak + gOverworldPalette_WormadamSandy, + gShinyOverworldPalette_WormadamSandy ) - .levelUpLearnset = sWormadamSandyCloakLevelUpLearnset, - .teachableLearnset = sWormadamSandyCloakTeachableLearnset, + .levelUpLearnset = sWormadamSandyLevelUpLearnset, + .teachableLearnset = sWormadamSandyTeachableLearnset, .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, @@ -1967,32 +1987,32 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_WormadamTrashCloak, + .frontPic = gMonFrontPic_WormadamTrash, .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Wormadam, .frontAnimId = ANIM_SWING_CONVEX_FAST_SHORT, .enemyMonElevation = 8, - .backPic = gMonBackPic_WormadamTrashCloak, + .backPic = gMonBackPic_WormadamTrash, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE, - .palette = gMonPalette_WormadamTrashCloak, - .shinyPalette = gMonShinyPalette_WormadamTrashCloak, - .iconSprite = gMonIcon_WormadamTrashCloak, + .palette = gMonPalette_WormadamTrash, + .shinyPalette = gMonShinyPalette_WormadamTrash, + .iconSprite = gMonIcon_WormadamTrash, .iconPalIndex = 0, SHADOW(0, 9, SHADOW_SIZE_S) FOOTPRINT(Wormadam) OVERWORLD( - sPicTable_WormadamTrashCloak, + sPicTable_WormadamTrash, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_WormadamTrashCloak, - gShinyOverworldPalette_WormadamTrashCloak + gOverworldPalette_WormadamTrash, + gShinyOverworldPalette_WormadamTrash ) - .levelUpLearnset = sWormadamTrashCloakLevelUpLearnset, - .teachableLearnset = sWormadamTrashCloakTeachableLearnset, + .levelUpLearnset = sWormadamTrashLevelUpLearnset, + .teachableLearnset = sWormadamTrashTeachableLearnset, .formSpeciesIdTable = sWormadamFormSpeciesIdTable, }, @@ -2109,11 +2129,13 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .backPicYOffset = 22, .backAnimId = BACK_ANIM_TRIANGLE_DOWN, .palette = gMonPalette_Combee, - .paletteFemale = gMonPalette_CombeeF, .shinyPalette = gMonShinyPalette_Combee, - .shinyPaletteFemale = gMonShinyPalette_CombeeF, .iconSprite = gMonIcon_Combee, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .paletteFemale = gMonPalette_CombeeF, + .shinyPaletteFemale = gMonShinyPalette_CombeeF, +#endif //P_GENDER_DIFFERENCES SHADOW(-4, 10, SHADOW_SIZE_S) FOOTPRINT(Combee) OVERWORLD( @@ -2237,9 +2259,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Pachirisu, - .frontPicFemale = gMonFrontPic_PachirisuF, .frontPicSize = MON_COORDS_SIZE(48, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 12, .frontAnimFrames = sAnims_Pachirisu, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, @@ -2251,6 +2271,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .shinyPalette = gMonShinyPalette_Pachirisu, .iconSprite = gMonIcon_Pachirisu, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PachirisuF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 1, SHADOW_SIZE_S) FOOTPRINT(Pachirisu) OVERWORLD( @@ -2314,15 +2338,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .frontAnimFrames = sAnims_Buizel, .frontAnimId = ANIM_GROW_VIBRATE, .backPic = gMonBackPic_Buizel, - .backPicFemale = gMonBackPic_BuizelF, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Buizel, .shinyPalette = gMonShinyPalette_Buizel, .iconSprite = gMonIcon_Buizel, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .backPicFemale = gMonBackPic_BuizelF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 4, SHADOW_SIZE_S) FOOTPRINT(Buizel) OVERWORLD( @@ -2385,15 +2411,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .frontAnimFrames = sAnims_Floatzel, .frontAnimId = ANIM_H_JUMPS_V_STRETCH, .backPic = gMonBackPic_Floatzel, - .backPicFemale = gMonBackPic_FloatzelF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Floatzel, .shinyPalette = gMonShinyPalette_Floatzel, .iconSprite = gMonIcon_Floatzel, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .backPicFemale = gMonBackPic_FloatzelF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-4, 10, SHADOW_SIZE_M) FOOTPRINT(Floatzel) OVERWORLD( @@ -2700,28 +2728,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ShellosEastSea, + .frontPic = gMonFrontPic_ShellosEast, .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Shellos, .frontAnimId = ANIM_V_STRETCH, - .backPic = gMonBackPic_ShellosEastSea, + .backPic = gMonBackPic_ShellosEast, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 8, .backAnimId = BACK_ANIM_H_SPRING, - .palette = gMonPalette_ShellosEastSea, - .shinyPalette = gMonShinyPalette_ShellosEastSea, - .iconSprite = gMonIcon_ShellosEastSea, + .palette = gMonPalette_ShellosEast, + .shinyPalette = gMonShinyPalette_ShellosEast, + .iconSprite = gMonIcon_ShellosEast, .iconPalIndex = 0, SHADOW(2, -1, SHADOW_SIZE_S) FOOTPRINT(Shellos) OVERWORLD( - sPicTable_ShellosEastSea, + sPicTable_ShellosEast, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ShellosEastSea, - gShinyOverworldPalette_ShellosEastSea + gOverworldPalette_ShellosEast, + gShinyOverworldPalette_ShellosEast ) .levelUpLearnset = sShellosLevelUpLearnset, .teachableLearnset = sShellosTeachableLearnset, @@ -2826,28 +2854,28 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_GastrodonEastSea, + .frontPic = gMonFrontPic_GastrodonEast, .frontPicSize = MON_COORDS_SIZE(56, 48), .frontPicYOffset = 8, .frontAnimFrames = sAnims_Gastrodon, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - .backPic = gMonBackPic_GastrodonEastSea, + .backPic = gMonBackPic_GastrodonEast, .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, - .palette = gMonPalette_GastrodonEastSea, - .shinyPalette = gMonShinyPalette_GastrodonEastSea, - .iconSprite = gMonIcon_GastrodonEastSea, + .palette = gMonPalette_GastrodonEast, + .shinyPalette = gMonShinyPalette_GastrodonEast, + .iconSprite = gMonIcon_GastrodonEast, .iconPalIndex = 0, SHADOW(2, 4, SHADOW_SIZE_M) FOOTPRINT(Gastrodon) OVERWORLD( - sPicTable_GastrodonEastSea, + sPicTable_GastrodonEast, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GastrodonEastSea, - gShinyOverworldPalette_GastrodonEastSea + gOverworldPalette_GastrodonEast, + gShinyOverworldPalette_GastrodonEast ) .levelUpLearnset = sGastrodonLevelUpLearnset, .teachableLearnset = sGastrodonTeachableLearnset, @@ -3717,22 +3745,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Gible, - .frontPicFemale = gMonFrontPic_GibleF, .frontPicSize = MON_COORDS_SIZE(48, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Gible, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Gible, - .backPicFemale = gMonBackPic_GibleF, .backPicSize = MON_COORDS_SIZE(56, 48), - .backPicSizeFemale = MON_COORDS_SIZE(56, 48), .backPicYOffset = 9, .backAnimId = BACK_ANIM_H_SHAKE, .palette = gMonPalette_Gible, .shinyPalette = gMonShinyPalette_Gible, .iconSprite = gMonIcon_Gible, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GibleF, + .frontPicSizeFemale = MON_COORDS_SIZE(48, 48), + .backPicFemale = gMonBackPic_GibleF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 48), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 5, SHADOW_SIZE_M) FOOTPRINT(Gible) OVERWORLD( @@ -3790,22 +3820,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 262, .trainerOffset = 0, .frontPic = gMonFrontPic_Gabite, - .frontPicFemale = gMonFrontPic_GabiteF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Gabite, .frontAnimId = ANIM_V_STRETCH, .backPic = gMonBackPic_Gabite, - .backPicFemale = gMonBackPic_GabiteF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_V_SHAKE, .palette = gMonPalette_Gabite, .shinyPalette = gMonShinyPalette_Gabite, .iconSprite = gMonIcon_Gabite, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GabiteF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_GabiteF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(3, 8, SHADOW_SIZE_M) FOOTPRINT(Gabite) OVERWORLD( @@ -3868,9 +3900,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 326, .trainerOffset = 4, .frontPic = gMonFrontPic_Garchomp, - .frontPicFemale = gMonFrontPic_GarchompF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Garchomp, .frontAnimId = ANIM_V_SHAKE_TWICE, @@ -3882,6 +3912,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .shinyPalette = gMonShinyPalette_Garchomp, .iconSprite = gMonIcon_Garchomp, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_GarchompF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(5, 11, SHADOW_SIZE_L) FOOTPRINT(Garchomp) OVERWORLD( @@ -4196,15 +4230,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .backPicYOffset = 14, .backAnimId = BACK_ANIM_H_SLIDE, .palette = gMonPalette_Hippopotas, - .paletteFemale = gMonPalette_HippopotasF, .shinyPalette = gMonShinyPalette_Hippopotas, - .shinyPaletteFemale = gMonShinyPalette_HippopotasF, .iconSprite = gMonIcon_Hippopotas, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .paletteFemale = gMonPalette_HippopotasF, + .shinyPaletteFemale = gMonShinyPalette_HippopotasF, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE .iconSpriteFemale = gMonIcon_HippopotasF, .iconPalIndexFemale = 1, #endif +#endif //P_GENDER_DIFFERENCES SHADOW(2, -1, SHADOW_SIZE_L) FOOTPRINT(Hippopotas) OVERWORLD( @@ -4271,15 +4307,17 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_LOW, .palette = gMonPalette_Hippowdon, - .paletteFemale = gMonPalette_HippowdonF, .shinyPalette = gMonShinyPalette_Hippowdon, - .shinyPaletteFemale = gMonShinyPalette_HippowdonF, .iconSprite = gMonIcon_Hippowdon, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .paletteFemale = gMonPalette_HippowdonF, + .shinyPaletteFemale = gMonShinyPalette_HippowdonF, #if P_CUSTOM_GENDER_DIFF_ICONS == TRUE .iconSpriteFemale = gMonIcon_HippowdonF, .iconPalIndexFemale = 1, #endif +#endif //P_GENDER_DIFFERENCES NO_SHADOW FOOTPRINT(Hippowdon) OVERWORLD( @@ -4464,22 +4502,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Croagunk, - .frontPicFemale = gMonFrontPic_CroagunkF, .frontPicSize = MON_COORDS_SIZE(40, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Croagunk, .frontAnimId = ANIM_RAPID_H_HOPS, .backPic = gMonBackPic_Croagunk, - .backPicFemale = gMonBackPic_CroagunkF, .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_GROW, .palette = gMonPalette_Croagunk, .shinyPalette = gMonShinyPalette_Croagunk, .iconSprite = gMonIcon_Croagunk, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_CroagunkF, + .frontPicSizeFemale = MON_COORDS_SIZE(40, 48), + .backPicFemale = gMonBackPic_CroagunkF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(2, 4, SHADOW_SIZE_S) FOOTPRINT(Croagunk) OVERWORLD( @@ -4538,22 +4578,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Toxicroak, - .frontPicFemale = gMonFrontPic_ToxicroakF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Toxicroak, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Toxicroak, - .backPicFemale = gMonBackPic_ToxicroakF, .backPicSize = MON_COORDS_SIZE(56, 56), - .backPicSizeFemale = MON_COORDS_SIZE(56, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, .palette = gMonPalette_Toxicroak, .shinyPalette = gMonShinyPalette_Toxicroak, .iconSprite = gMonIcon_Toxicroak, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_ToxicroakF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_ToxicroakF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(3, 7, SHADOW_SIZE_M) FOOTPRINT(Toxicroak) OVERWORLD( @@ -4676,22 +4718,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Finneon, - .frontPicFemale = gMonFrontPic_FinneonF, .frontPicSize = MON_COORDS_SIZE(32, 40), - .frontPicSizeFemale = MON_COORDS_SIZE(32, 40), .frontPicYOffset = 14, .frontAnimFrames = sAnims_Finneon, .frontAnimId = ANIM_V_SLIDE_WOBBLE_SMALL, .backPic = gMonBackPic_Finneon, - .backPicFemale = gMonBackPic_FinneonF, .backPicSize = MON_COORDS_SIZE(56, 40), - .backPicSizeFemale = MON_COORDS_SIZE(56, 40), .backPicYOffset = 12, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Finneon, .shinyPalette = gMonShinyPalette_Finneon, .iconSprite = gMonIcon_Finneon, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_FinneonF, + .frontPicSizeFemale = MON_COORDS_SIZE(32, 40), + .backPicFemale = gMonBackPic_FinneonF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 40), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 1, SHADOW_SIZE_S) FOOTPRINT(Finneon) OVERWORLD( @@ -4749,22 +4793,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Lumineon, - .frontPicFemale = gMonFrontPic_LumineonF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Lumineon, .frontAnimId = ANIM_H_STRETCH, .backPic = gMonBackPic_Lumineon, - .backPicFemale = gMonBackPic_LumineonF, .backPicSize = MON_COORDS_SIZE(56, 64), - .backPicSizeFemale = MON_COORDS_SIZE(56, 64), .backPicYOffset = 0, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Lumineon, .shinyPalette = gMonShinyPalette_Lumineon, .iconSprite = gMonIcon_Lumineon, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_LumineonF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_LumineonF, + .backPicSizeFemale = MON_COORDS_SIZE(56, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 8, SHADOW_SIZE_M) FOOTPRINT(Lumineon) OVERWORLD( @@ -4823,22 +4869,24 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 257, .trainerOffset = 0, .frontPic = gMonFrontPic_Snover, - .frontPicFemale = gMonFrontPic_SnoverF, .frontPicSize = MON_COORDS_SIZE(64, 48), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 10, .frontAnimFrames = sAnims_Snover, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Snover, - .backPicFemale = gMonBackPic_SnoverF, .backPicSize = MON_COORDS_SIZE(64, 56), - .backPicSizeFemale = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Snover, .shinyPalette = gMonShinyPalette_Snover, .iconSprite = gMonIcon_Snover, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_SnoverF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 48), + .backPicFemale = gMonBackPic_SnoverF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 56), +#endif //P_GENDER_DIFFERENCES SHADOW(1, 4, SHADOW_SIZE_M) FOOTPRINT(Snover) OVERWORLD( @@ -4898,9 +4946,7 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .trainerScale = 348, .trainerOffset = 6, .frontPic = gMonFrontPic_Abomasnow, - .frontPicFemale = gMonFrontPic_AbomasnowF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Abomasnow, .frontAnimId = ANIM_H_SHAKE, @@ -4912,6 +4958,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .shinyPalette = gMonShinyPalette_Abomasnow, .iconSprite = gMonIcon_Abomasnow, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_AbomasnowF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), +#endif //P_GENDER_DIFFERENCES SHADOW(0, 11, SHADOW_SIZE_L) FOOTPRINT(Abomasnow) OVERWORLD( @@ -5096,10 +5146,10 @@ const struct SpeciesInfo gSpeciesInfoGen4[] = .height = 3, .weight = 3, .description = COMPOUND_STRING( - "If the convection microwave oven is not\n" - "working properly, then the Rotom inhabiting\n" - "it will become lethargic. It will gleefully\n" - "burn your favorite outfit in mischief."), + "If the convection microwave oven is\n" + "not working properly, then the Rotom\n" + "inhabiting it will become lethargic. It\n" + "makes mischief by turning up the heat."), .pokemonScale = 530, .pokemonOffset = 13, .trainerScale = 256, diff --git a/src/data/pokemon/species_info/gen_5_families.h b/src/data/pokemon/species_info/gen_5_families.h index 87c1bf561c..052b0f40c5 100644 --- a/src/data/pokemon/species_info/gen_5_families.h +++ b/src/data/pokemon/species_info/gen_5_families.h @@ -670,32 +670,32 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - .frontPic = gMonFrontPic_SamurottHisuian, + .frontPic = gMonFrontPic_SamurottHisui, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_SamurottHisuian, + .frontAnimFrames = sAnims_SamurottHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SamurottHisuian, + .backPic = gMonBackPic_SamurottHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SamurottHisuian, - .shinyPalette = gMonShinyPalette_SamurottHisuian, - .iconSprite = gMonIcon_SamurottHisuian, + .palette = gMonPalette_SamurottHisui, + .shinyPalette = gMonShinyPalette_SamurottHisui, + .iconSprite = gMonIcon_SamurottHisui, .iconPalIndex = 0, SHADOW(-2, 13, SHADOW_SIZE_L) FOOTPRINT(Samurott) OVERWORLD( - sPicTable_SamurottHisuian, + sPicTable_SamurottHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SamurottHisuian, - gShinyOverworldPalette_SamurottHisuian + gOverworldPalette_SamurottHisui, + gShinyOverworldPalette_SamurottHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sSamurottHisuianLevelUpLearnset, - .teachableLearnset = sSamurottHisuianTeachableLearnset, + .levelUpLearnset = sSamurottHisuiLevelUpLearnset, + .teachableLearnset = sSamurottHisuiTeachableLearnset, .formSpeciesIdTable = sSamurottFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -1822,26 +1822,28 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Unfezant, - .frontPicFemale = gMonFrontPic_UnfezantF, .frontPicSize = MON_COORDS_SIZE(56, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Unfezant, .frontAnimId = ANIM_SHRINK_GROW, .backPic = gMonBackPic_Unfezant, - .backPicFemale = gMonBackPic_UnfezantF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, .backAnimId = BACK_ANIM_V_STRETCH, .palette = gMonPalette_Unfezant, - .paletteFemale = gMonPalette_UnfezantF, .shinyPalette = gMonShinyPalette_Unfezant, - .shinyPaletteFemale = gMonShinyPalette_UnfezantF, .iconSprite = gMonIcon_Unfezant, - .iconSpriteFemale = gMonIcon_UnfezantF, .iconPalIndex = 1, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_UnfezantF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 64), + .backPicFemale = gMonBackPic_UnfezantF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), + .paletteFemale = gMonPalette_UnfezantF, + .shinyPaletteFemale = gMonShinyPalette_UnfezantF, + .iconSpriteFemale = gMonIcon_UnfezantF, .iconPalIndexFemale = 1, +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 12, SHADOW_SIZE_M) FOOTPRINT(Unfezant) OVERWORLD( @@ -3811,32 +3813,32 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_LilligantHisuian, + .frontPic = gMonFrontPic_LilligantHisui, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_LilligantHisuian, + .frontAnimFrames = sAnims_LilligantHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_LilligantHisuian, + .backPic = gMonBackPic_LilligantHisui, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_LilligantHisuian, - .shinyPalette = gMonShinyPalette_LilligantHisuian, - .iconSprite = gMonIcon_LilligantHisuian, + .palette = gMonPalette_LilligantHisui, + .shinyPalette = gMonShinyPalette_LilligantHisui, + .iconSprite = gMonIcon_LilligantHisui, .iconPalIndex = 1, SHADOW(-3, 13, SHADOW_SIZE_S) FOOTPRINT(Lilligant) OVERWORLD( - sPicTable_LilligantHisuian, + sPicTable_LilligantHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_LilligantHisuian, - gShinyOverworldPalette_LilligantHisuian + gOverworldPalette_LilligantHisui, + gShinyOverworldPalette_LilligantHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sLilligantHisuianLevelUpLearnset, - .teachableLearnset = sLilligantHisuianTeachableLearnset, + .levelUpLearnset = sLilligantHisuiLevelUpLearnset, + .teachableLearnset = sLilligantHisuiTeachableLearnset, .formSpeciesIdTable = sLilligantFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -4074,29 +4076,29 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_BasculegionMale, + .frontPic = gMonFrontPic_BasculegionM, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Basculegion, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - .backPic = gMonBackPic_BasculegionMale, + .backPic = gMonBackPic_BasculegionM, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_BasculegionMale, - .shinyPalette = gMonShinyPalette_BasculegionMale, - .iconSprite = gMonIcon_BasculegionMale, + .palette = gMonPalette_BasculegionM, + .shinyPalette = gMonShinyPalette_BasculegionM, + .iconSprite = gMonIcon_BasculegionM, .iconPalIndex = 1, SHADOW(0, 16, SHADOW_SIZE_M) FOOTPRINT(Basculegion) OVERWORLD( - sPicTable_BasculegionMale, + sPicTable_BasculegionM, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_BasculegionMale, - gShinyOverworldPalette_BasculegionMale + gOverworldPalette_BasculegionM, + gShinyOverworldPalette_BasculegionM ) .levelUpLearnset = sBasculegionLevelUpLearnset, .teachableLearnset = sBasculegionTeachableLearnset, @@ -4136,29 +4138,29 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_BasculegionFemale, + .frontPic = gMonFrontPic_BasculegionF, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Basculegion, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 5, - .backPic = gMonBackPic_BasculegionFemale, + .backPic = gMonBackPic_BasculegionF, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_BasculegionFemale, - .shinyPalette = gMonShinyPalette_BasculegionFemale, - .iconSprite = gMonIcon_BasculegionFemale, + .palette = gMonPalette_BasculegionF, + .shinyPalette = gMonShinyPalette_BasculegionF, + .iconSprite = gMonIcon_BasculegionF, .iconPalIndex = 0, SHADOW(0, 16, SHADOW_SIZE_M) FOOTPRINT(Basculegion) OVERWORLD( - sPicTable_BasculegionFemale, + sPicTable_BasculegionF, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_BasculegionFemale, - gShinyOverworldPalette_BasculegionFemale + gOverworldPalette_BasculegionF, + gShinyOverworldPalette_BasculegionF ) .levelUpLearnset = sBasculegionLevelUpLearnset, .teachableLearnset = sBasculegionTeachableLearnset, @@ -4463,28 +4465,28 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DarmanitanStandardMode, + .frontPic = gMonFrontPic_DarmanitanStandard, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_DarmanitanStandardMode, + .frontAnimFrames = sAnims_DarmanitanStandard, .frontAnimId = ANIM_CIRCULAR_STRETCH_TWICE, - .backPic = gMonBackPic_DarmanitanStandardMode, + .backPic = gMonBackPic_DarmanitanStandard, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, .backAnimId = BACK_ANIM_V_SHAKE_H_SLIDE, - .palette = gMonPalette_DarmanitanStandardMode, - .shinyPalette = gMonShinyPalette_DarmanitanStandardMode, - .iconSprite = gMonIcon_DarmanitanStandardMode, + .palette = gMonPalette_DarmanitanStandard, + .shinyPalette = gMonShinyPalette_DarmanitanStandard, + .iconSprite = gMonIcon_DarmanitanStandard, .iconPalIndex = 0, SHADOW(3, 5, SHADOW_SIZE_L) FOOTPRINT(Darmanitan) OVERWORLD( - sPicTable_DarmanitanStandardMode, + sPicTable_DarmanitanStandard, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DarmanitanStandardMode, - gShinyOverworldPalette_DarmanitanStandardMode + gOverworldPalette_DarmanitanStandard, + gShinyOverworldPalette_DarmanitanStandard ) .levelUpLearnset = sDarmanitanLevelUpLearnset, .teachableLearnset = sDarmanitanTeachableLearnset, @@ -4525,18 +4527,18 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DarmanitanZenMode, + .frontPic = gMonFrontPic_DarmanitanZen, .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 14, - .frontAnimFrames = sAnims_DarmanitanZenMode, + .frontAnimFrames = sAnims_DarmanitanZen, .frontAnimId = ANIM_GROW_VIBRATE, - .backPic = gMonBackPic_DarmanitanZenMode, + .backPic = gMonBackPic_DarmanitanZen, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, .backAnimId = BACK_ANIM_H_SHAKE, - .palette = gMonPalette_DarmanitanZenMode, - .shinyPalette = gMonShinyPalette_DarmanitanZenMode, - .iconSprite = gMonIcon_DarmanitanZenMode, + .palette = gMonPalette_DarmanitanZen, + .shinyPalette = gMonShinyPalette_DarmanitanZen, + .iconSprite = gMonIcon_DarmanitanZen, .iconPalIndex = 0, SHADOW(-1, -1, SHADOW_SIZE_S) FOOTPRINT(Darmanitan) @@ -4581,33 +4583,33 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DarumakaGalarian, + .frontPic = gMonFrontPic_DarumakaGalar, .frontPicSize = MON_COORDS_SIZE(40, 40), .frontPicYOffset = 15, - .frontAnimFrames = sAnims_DarumakaGalarian, + .frontAnimFrames = sAnims_DarumakaGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DarumakaGalarian, + .backPic = gMonBackPic_DarumakaGalar, .backPicSize = MON_COORDS_SIZE(56, 48), .backPicYOffset = 11, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DarumakaGalarian, - .shinyPalette = gMonShinyPalette_DarumakaGalarian, - .iconSprite = gMonIcon_DarumakaGalarian, + .palette = gMonPalette_DarumakaGalar, + .shinyPalette = gMonShinyPalette_DarumakaGalar, + .iconSprite = gMonIcon_DarumakaGalar, .iconPalIndex = 0, SHADOW(-3, -1, SHADOW_SIZE_S) FOOTPRINT(Darumaka) OVERWORLD( - sPicTable_DarumakaGalarian, + sPicTable_DarumakaGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DarumakaGalarian, - gShinyOverworldPalette_DarumakaGalarian + gOverworldPalette_DarumakaGalar, + gShinyOverworldPalette_DarumakaGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sDarumakaGalarianLevelUpLearnset, - .teachableLearnset = sDarumakaGalarianTeachableLearnset, - .eggMoveLearnset = sDarumakaGalarianEggMoveLearnset, + .levelUpLearnset = sDarumakaGalarLevelUpLearnset, + .teachableLearnset = sDarumakaGalarTeachableLearnset, + .eggMoveLearnset = sDarumakaGalarEggMoveLearnset, .formSpeciesIdTable = sDarumakaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_ITEM, ITEM_ICE_STONE, SPECIES_DARMANITAN_GALAR_STANDARD}), }, @@ -4646,34 +4648,34 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DarmanitanGalarianStandardMode, + .frontPic = gMonFrontPic_DarmanitanGalarStandard, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_DarmanitanGalarianStandardMode, + .frontAnimFrames = sAnims_DarmanitanGalarStandard, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DarmanitanGalarianStandardMode, + .backPic = gMonBackPic_DarmanitanGalarStandard, .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DarmanitanGalarianStandardMode, - .shinyPalette = gMonShinyPalette_DarmanitanGalarianStandardMode, - .iconSprite = gMonIcon_DarmanitanGalarianStandardMode, + .palette = gMonPalette_DarmanitanGalarStandard, + .shinyPalette = gMonShinyPalette_DarmanitanGalarStandard, + .iconSprite = gMonIcon_DarmanitanGalarStandard, .iconPalIndex = 0, SHADOW(4, 8, SHADOW_SIZE_L) FOOTPRINT(Darmanitan) OVERWORLD( - sPicTable_DarmanitanGalarianStandardMode, + sPicTable_DarmanitanGalarStandard, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DarmanitanGalarianStandardMode, - gShinyOverworldPalette_DarmanitanGalarianStandardMode + gOverworldPalette_DarmanitanGalarStandard, + gShinyOverworldPalette_DarmanitanGalarStandard ) .isGalarianForm = TRUE, - .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, - .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .levelUpLearnset = sDarmanitanGalarLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarTeachableLearnset, .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, - .formChangeTable = sDarmanitanGalarianFormChangeTable, + .formChangeTable = sDarmanitanGalarFormChangeTable, }, [SPECIES_DARMANITAN_GALAR_ZEN] = @@ -4710,26 +4712,26 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 3, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_DarmanitanGalarianZenMode, + .frontPic = gMonFrontPic_DarmanitanGalarZen, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_DarmanitanGalarianZenMode, + .frontAnimFrames = sAnims_DarmanitanGalarZen, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DarmanitanGalarianZenMode, + .backPic = gMonBackPic_DarmanitanGalarZen, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DarmanitanGalarianZenMode, - .shinyPalette = gMonShinyPalette_DarmanitanGalarianZenMode, - .iconSprite = gMonIcon_DarmanitanGalarianZenMode, + .palette = gMonPalette_DarmanitanGalarZen, + .shinyPalette = gMonShinyPalette_DarmanitanGalarZen, + .iconSprite = gMonIcon_DarmanitanGalarZen, .iconPalIndex = 0, SHADOW(0, 11, SHADOW_SIZE_S) FOOTPRINT(Darmanitan) .isGalarianForm = TRUE, - .levelUpLearnset = sDarmanitanGalarianLevelUpLearnset, - .teachableLearnset = sDarmanitanGalarianTeachableLearnset, + .levelUpLearnset = sDarmanitanGalarLevelUpLearnset, + .teachableLearnset = sDarmanitanGalarTeachableLearnset, .formSpeciesIdTable = sDarmanitanFormSpeciesIdTable, - .formChangeTable = sDarmanitanGalarianFormChangeTable, + .formChangeTable = sDarmanitanGalarFormChangeTable, }, #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA @@ -5285,34 +5287,34 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_YamaskGalarian, + .frontPic = gMonFrontPic_YamaskGalar, .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 13, - .frontAnimFrames = sAnims_YamaskGalarian, + .frontAnimFrames = sAnims_YamaskGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 4, - .backPic = gMonBackPic_YamaskGalarian, + .backPic = gMonBackPic_YamaskGalar, .backPicSize = MON_COORDS_SIZE(40, 40), .backPicYOffset = 13, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_YamaskGalarian, - .shinyPalette = gMonShinyPalette_YamaskGalarian, - .iconSprite = gMonIcon_YamaskGalarian, + .palette = gMonPalette_YamaskGalar, + .shinyPalette = gMonShinyPalette_YamaskGalar, + .iconSprite = gMonIcon_YamaskGalar, .iconPalIndex = 2, SHADOW(0, 2, SHADOW_SIZE_S) FOOTPRINT(Yamask) OVERWORLD( - sPicTable_YamaskGalarian, + sPicTable_YamaskGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_YamaskGalarian, - gShinyOverworldPalette_YamaskGalarian + gOverworldPalette_YamaskGalar, + gShinyOverworldPalette_YamaskGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sYamaskGalarianLevelUpLearnset, - .teachableLearnset = sYamaskGalarianTeachableLearnset, - .eggMoveLearnset = sYamaskGalarianEggMoveLearnset, + .levelUpLearnset = sYamaskGalarLevelUpLearnset, + .teachableLearnset = sYamaskGalarTeachableLearnset, + .eggMoveLearnset = sYamaskGalarEggMoveLearnset, .formSpeciesIdTable = sYamaskFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_SCRIPT_TRIGGER_DMG, 49, SPECIES_RUNERIGUS}), }, @@ -5802,18 +5804,18 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_GarbodorGigantamax, + .frontPic = gMonFrontPic_GarbodorGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_GarbodorGigantamax, + .frontAnimFrames = sAnims_GarbodorGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GarbodorGigantamax, + .backPic = gMonBackPic_GarbodorGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GarbodorGigantamax, - .shinyPalette = gMonShinyPalette_GarbodorGigantamax, - .iconSprite = gMonIcon_GarbodorGigantamax, + .palette = gMonPalette_GarbodorGmax, + .shinyPalette = gMonShinyPalette_GarbodorGmax, + .iconSprite = gMonIcon_GarbodorGmax, .iconPalIndex = 0, NO_SHADOW FOOTPRINT(Garbodor) @@ -5988,32 +5990,32 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZoruaHisuian, + .frontPic = gMonFrontPic_ZoruaHisui, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_ZoruaHisuian, + .frontAnimFrames = sAnims_ZoruaHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZoruaHisuian, + .backPic = gMonBackPic_ZoruaHisui, .backPicSize = MON_COORDS_SIZE(56, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZoruaHisuian, - .shinyPalette = gMonShinyPalette_ZoruaHisuian, - .iconSprite = gMonIcon_ZoruaHisuian, + .palette = gMonPalette_ZoruaHisui, + .shinyPalette = gMonShinyPalette_ZoruaHisui, + .iconSprite = gMonIcon_ZoruaHisui, .iconPalIndex = 0, SHADOW(2, 12, SHADOW_SIZE_S) FOOTPRINT(Zorua) OVERWORLD( - sPicTable_ZoruaHisuian, + sPicTable_ZoruaHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZoruaHisuian, - gShinyOverworldPalette_ZoruaHisuian + gOverworldPalette_ZoruaHisui, + gShinyOverworldPalette_ZoruaHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sZoruaHisuianLevelUpLearnset, - .teachableLearnset = sZoruaHisuianTeachableLearnset, + .levelUpLearnset = sZoruaHisuiLevelUpLearnset, + .teachableLearnset = sZoruaHisuiTeachableLearnset, .formSpeciesIdTable = sZoruaFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL, 30, SPECIES_ZOROARK_HISUI}), }, @@ -6052,32 +6054,32 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - .frontPic = gMonFrontPic_ZoroarkHisuian, + .frontPic = gMonFrontPic_ZoroarkHisui, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_ZoroarkHisuian, + .frontAnimFrames = sAnims_ZoroarkHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZoroarkHisuian, + .backPic = gMonBackPic_ZoroarkHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZoroarkHisuian, - .shinyPalette = gMonShinyPalette_ZoroarkHisuian, - .iconSprite = gMonIcon_ZoroarkHisuian, + .palette = gMonPalette_ZoroarkHisui, + .shinyPalette = gMonShinyPalette_ZoroarkHisui, + .iconSprite = gMonIcon_ZoroarkHisui, .iconPalIndex = 0, SHADOW(11, 13, SHADOW_SIZE_L) FOOTPRINT(Zoroark) OVERWORLD( - sPicTable_ZoroarkHisuian, + sPicTable_ZoroarkHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZoroarkHisuian, - gShinyOverworldPalette_ZoroarkHisuian + gOverworldPalette_ZoroarkHisui, + gShinyOverworldPalette_ZoroarkHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sZoroarkHisuianLevelUpLearnset, - .teachableLearnset = sZoroarkHisuianTeachableLearnset, + .levelUpLearnset = sZoroarkHisuiLevelUpLearnset, + .teachableLearnset = sZoroarkHisuiTeachableLearnset, .formSpeciesIdTable = sZoroarkFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -7796,26 +7798,28 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .trainerScale = 256, .trainerOffset = 0, .frontPic = gMonFrontPic_Frillish, - .frontPicFemale = gMonFrontPic_FrillishF, .frontPicSize = MON_COORDS_SIZE(56, 56), - .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), .frontPicYOffset = 5, .frontAnimFrames = sAnims_Frillish, .frontAnimId = ANIM_RISING_WOBBLE, .backPic = gMonBackPic_Frillish, - .backPicFemale = gMonBackPic_FrillishF, .backPicSize = MON_COORDS_SIZE(40, 56), - .backPicSizeFemale = MON_COORDS_SIZE(40, 56), .backPicYOffset = 7, .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, .palette = gMonPalette_Frillish, - .paletteFemale = gMonPalette_FrillishF, .shinyPalette = gMonShinyPalette_Frillish, - .shinyPaletteFemale = gMonShinyPalette_FrillishF, .iconSprite = gMonIcon_Frillish, - .iconSpriteFemale = gMonIcon_FrillishF, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_FrillishF, + .frontPicSizeFemale = MON_COORDS_SIZE(56, 56), + .backPicFemale = gMonBackPic_FrillishF, + .backPicSizeFemale = MON_COORDS_SIZE(40, 56), + .paletteFemale = gMonPalette_FrillishF, + .shinyPaletteFemale = gMonShinyPalette_FrillishF, + .iconSpriteFemale = gMonIcon_FrillishF, .iconPalIndexFemale = 1, +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 9, SHADOW_SIZE_S) FOOTPRINT(Frillish) OVERWORLD( @@ -7875,26 +7879,28 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .trainerScale = 348, .trainerOffset = 6, .frontPic = gMonFrontPic_Jellicent, - .frontPicFemale = gMonFrontPic_JellicentF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Jellicent, .frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Jellicent, - .backPicFemale = gMonBackPic_JellicentF, .backPicSize = MON_COORDS_SIZE(64, 48), - .backPicSizeFemale = MON_COORDS_SIZE(64, 48), .backPicYOffset = 10, .backAnimId = BACK_ANIM_GROW_STUTTER, .palette = gMonPalette_Jellicent, - .paletteFemale = gMonPalette_JellicentF, .shinyPalette = gMonShinyPalette_Jellicent, - .shinyPaletteFemale = gMonShinyPalette_JellicentF, .iconSprite = gMonIcon_Jellicent, - .iconSpriteFemale = gMonIcon_JellicentF, .iconPalIndex = 0, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_JellicentF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_JellicentF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 48), + .paletteFemale = gMonPalette_JellicentF, + .shinyPaletteFemale = gMonShinyPalette_JellicentF, + .iconSpriteFemale = gMonIcon_JellicentF, .iconPalIndexFemale = 1, +#endif //P_GENDER_DIFFERENCES SHADOW(-1, 11, SHADOW_SIZE_M) FOOTPRINT(Jellicent) OVERWORLD( @@ -9567,33 +9573,33 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 14, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_StunfiskGalarian, + .frontPic = gMonFrontPic_StunfiskGalar, .frontPicSize = MON_COORDS_SIZE(48, 40), .frontPicYOffset = 14, - .frontAnimFrames = sAnims_StunfiskGalarian, + .frontAnimFrames = sAnims_StunfiskGalar, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_StunfiskGalarian, + .backPic = gMonBackPic_StunfiskGalar, .backPicSize = MON_COORDS_SIZE(64, 24), .backPicYOffset = 23, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_StunfiskGalarian, - .shinyPalette = gMonShinyPalette_StunfiskGalarian, - .iconSprite = gMonIcon_StunfiskGalarian, + .palette = gMonPalette_StunfiskGalar, + .shinyPalette = gMonShinyPalette_StunfiskGalar, + .iconSprite = gMonIcon_StunfiskGalar, .iconPalIndex = 1, SHADOW(0, -1, SHADOW_SIZE_M) FOOTPRINT(Stunfisk) OVERWORLD( - sPicTable_StunfiskGalarian, + sPicTable_StunfiskGalar, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_StunfiskGalarian, - gShinyOverworldPalette_StunfiskGalarian + gOverworldPalette_StunfiskGalar, + gShinyOverworldPalette_StunfiskGalar ) .isGalarianForm = TRUE, - .levelUpLearnset = sStunfiskGalarianLevelUpLearnset, - .teachableLearnset = sStunfiskGalarianTeachableLearnset, - .eggMoveLearnset = sStunfiskGalarianEggMoveLearnset, + .levelUpLearnset = sStunfiskGalarLevelUpLearnset, + .teachableLearnset = sStunfiskGalarTeachableLearnset, + .eggMoveLearnset = sStunfiskGalarEggMoveLearnset, .formSpeciesIdTable = sStunfiskFormSpeciesIdTable, }, #endif //P_GALARIAN_FORMS @@ -10335,33 +10341,33 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - .frontPic = gMonFrontPic_BraviaryHisuian, + .frontPic = gMonFrontPic_BraviaryHisui, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_BraviaryHisuian, + .frontAnimFrames = sAnims_BraviaryHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .enemyMonElevation = 3, - .backPic = gMonBackPic_BraviaryHisuian, + .backPic = gMonBackPic_BraviaryHisui, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_BraviaryHisuian, - .shinyPalette = gMonShinyPalette_BraviaryHisuian, - .iconSprite = gMonIcon_BraviaryHisuian, + .palette = gMonPalette_BraviaryHisui, + .shinyPalette = gMonShinyPalette_BraviaryHisui, + .iconSprite = gMonIcon_BraviaryHisui, .iconPalIndex = 2, SHADOW(0, 14, SHADOW_SIZE_M) FOOTPRINT(Braviary) OVERWORLD( - sPicTable_BraviaryHisuian, + sPicTable_BraviaryHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_BraviaryHisuian, - gShinyOverworldPalette_BraviaryHisuian + gOverworldPalette_BraviaryHisui, + gShinyOverworldPalette_BraviaryHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sBraviaryHisuianLevelUpLearnset, - .teachableLearnset = sBraviaryHisuianTeachableLearnset, + .levelUpLearnset = sBraviaryHisuiLevelUpLearnset, + .teachableLearnset = sBraviaryHisuiTeachableLearnset, .formSpeciesIdTable = sBraviaryFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -10520,10 +10526,10 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .height = 14, .weight = 580, .description = COMPOUND_STRING( - "It draws in air through its tail, transforms\n" - "it into fire, and uses it like a tongue.\n" - "They burn through Durant's steel bodies\n" - "and consume their insides."), + "It draws in air through its tail,\n" + "transforms it into fire, and uses it like\n" + "a tongue. They burn through Durant's steel\n" + "bodies and consume their insides."), .pokemonScale = 265, .pokemonOffset = 2, .trainerScale = 262, @@ -11360,10 +11366,10 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .height = 30, .weight = 610, .description = COMPOUND_STRING( - "It pulverizes foes into\n" - "nothingness with showers of devastatingly\n" - "powerful lightning bolts launched from\n" - "the string of orbs on its tail."), + "It pulverizes foes into nothingness\n" + "with showers of devastatingly\n" + "powerful lightning bolts launched\n" + "from the string of orbs on its tail."), .pokemonScale = 268, .pokemonOffset = 2, .trainerScale = 271, @@ -11560,9 +11566,9 @@ const struct SpeciesInfo gSpeciesInfoGen5[] = .height = 15, .weight = 680, .description = COMPOUND_STRING( - "The energy that comes pouring from its tail\n" - "increases the nutrition in the soil, making\n" - "crops grow to great size. It has been\n" + "The energy that comes pouring from its\n" + "tail increases the nutrition in the soil,\n" + "granting bountiful crops. It has been\n" "hailed as “The Guardian of the Fields.”"), .pokemonScale = 268, .pokemonOffset = 2, diff --git a/src/data/pokemon/species_info/gen_6_families.h b/src/data/pokemon/species_info/gen_6_families.h index 47df7969ca..147fadbaf8 100644 --- a/src/data/pokemon/species_info/gen_6_families.h +++ b/src/data/pokemon/species_info/gen_6_families.h @@ -650,11 +650,7 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .categoryName = _("Ninja"), .height = 15, .weight = 400, - .description = COMPOUND_STRING( - "It appears and vanishes with a ninja's\n" - "grace. It toys with its enemies using swift\n" - "movements, while slicing them with throwing\n" - "stars made of compressed water."), + .description = gGreninjaPokedexText, .pokemonScale = 268, .pokemonOffset = 2, .trainerScale = 271, @@ -1500,24 +1496,26 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .trainerScale = 271, .trainerOffset = 0, .frontPic = gMonFrontPic_Pyroar, - .frontPicFemale = gMonFrontPic_PyroarF, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Pyroar, .frontAnimId = ANIM_V_SHAKE, .backPic = gMonBackPic_Pyroar, - .backPicFemale = gMonBackPic_PyroarF, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicSizeFemale = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, .backAnimId = BACK_ANIM_H_STRETCH, .palette = gMonPalette_Pyroar, .shinyPalette = gMonShinyPalette_Pyroar, .iconSprite = gMonIcon_Pyroar, - .iconSpriteFemale = gMonIcon_PyroarF, .iconPalIndex = 2, +#if P_GENDER_DIFFERENCES + .frontPicFemale = gMonFrontPic_PyroarF, + .frontPicSizeFemale = MON_COORDS_SIZE(64, 64), + .backPicFemale = gMonBackPic_PyroarF, + .backPicSizeFemale = MON_COORDS_SIZE(64, 64), + .iconSpriteFemale = gMonIcon_PyroarF, .iconPalIndexFemale = 2, +#endif //P_GENDER_DIFFERENCES SHADOW(-2, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Pyroar) OVERWORLD( @@ -1578,19 +1576,19 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .backPicSize = MON_COORDS_SIZE(64, 40), \ .backPicYOffset = 12, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - .palette = gMonPalette_Flabebe##Form##Flower, \ - .shinyPalette = gMonShinyPalette_Flabebe##Form##Flower, \ - .iconSprite = gMonIcon_Flabebe##Form##Flower, \ + .palette = gMonPalette_Flabebe##Form, \ + .shinyPalette = gMonShinyPalette_Flabebe##Form, \ + .iconSprite = gMonIcon_Flabebe##Form, \ .iconPalIndex = iconPal, \ - SHADOW(0, 11, SHADOW_SIZE_S) \ + SHADOW(0, 11, SHADOW_SIZE_S) \ FOOTPRINT(Flabebe) \ OVERWORLD( \ - sPicTable_Flabebe##Form##Flower, \ + sPicTable_Flabebe##Form, \ SIZE_32x32, \ SHADOW_SIZE_M, \ TRACKS_FOOT, \ - gOverworldPalette_Flabebe##Form##Flower, \ - gShinyOverworldPalette_Flabebe##Form##Flower \ + gOverworldPalette_Flabebe##Form, \ + gShinyOverworldPalette_Flabebe##Form \ ) \ .levelUpLearnset = sFlabebeLevelUpLearnset, \ .teachableLearnset = sFlabebeTeachableLearnset, \ @@ -1666,19 +1664,19 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .frontAnimFrames = sAnims_Floette, \ .frontAnimId = ANIM_V_SLIDE_WOBBLE, \ .backAnimId = BACK_ANIM_CONVEX_DOUBLE_ARC, \ - .palette = gMonPalette_Floette ##form##Flower, \ - .shinyPalette = gMonShinyPalette_Floette ##form##Flower, \ - .iconSprite = gMonIcon_Floette##form##Flower, \ + .palette = gMonPalette_Floette ##form, \ + .shinyPalette = gMonShinyPalette_Floette ##form, \ + .iconSprite = gMonIcon_Floette##form, \ .iconPalIndex = iconPal, \ - SHADOW(-3, 12, SHADOW_SIZE_S) \ + SHADOW(-3, 12, SHADOW_SIZE_S) \ FOOTPRINT(Floette) \ OVERWORLD( \ - sPicTable_Floette ##form##Flower, \ + sPicTable_Floette ##form, \ SIZE_32x32, \ SHADOW_SIZE_M, \ TRACKS_FOOT, \ - gOverworldPalette_Floette ##form##Flower, \ - gShinyOverworldPalette_Floette ##form##Flower \ + gOverworldPalette_Floette ##form, \ + gShinyOverworldPalette_Floette ##form \ ) \ .formSpeciesIdTable = sFloetteFormSpeciesIdTable @@ -1766,15 +1764,15 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = "longer be found blooming anywhere. It's\n" "also thought to contain terrifying\n" "power."), - .frontPic = gMonFrontPic_FloetteEternalFlower, + .frontPic = gMonFrontPic_FloetteEternal, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .enemyMonElevation = 4, - .backPic = gMonBackPic_FloetteEternalFlower, + .backPic = gMonBackPic_FloetteEternal, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, - .levelUpLearnset = sFloetteEternalFlowerLevelUpLearnset, - .teachableLearnset = sFloetteEternalFlowerTeachableLearnset, + .levelUpLearnset = sFloetteEternalLevelUpLearnset, + .teachableLearnset = sFloetteEternalTeachableLearnset, }, #define FLORGES_MISC_INFO(Form, iconPal) \ @@ -1814,19 +1812,19 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .backPicSize = MON_COORDS_SIZE(64, 48), \ .backPicYOffset = 9, \ .backAnimId = BACK_ANIM_SHRINK_GROW_VIBRATE, \ - .palette = gMonPalette_Florges##Form##Flower, \ - .shinyPalette = gMonShinyPalette_Florges##Form##Flower, \ - .iconSprite = gMonIcon_Florges##Form##Flower, \ + .palette = gMonPalette_Florges##Form, \ + .shinyPalette = gMonShinyPalette_Florges##Form, \ + .iconSprite = gMonIcon_Florges##Form, \ .iconPalIndex = iconPal, \ - SHADOW(-5, 15, SHADOW_SIZE_M) \ + SHADOW(-5, 15, SHADOW_SIZE_M) \ FOOTPRINT(Florges) \ OVERWORLD( \ - sPicTable_Florges ##Form##Flower, \ + sPicTable_Florges ##Form, \ SIZE_32x32, \ SHADOW_SIZE_M, \ TRACKS_FOOT, \ - gOverworldPalette_Florges ##Form##Flower, \ - gShinyOverworldPalette_Florges ##Form##Flower \ + gOverworldPalette_Florges ##Form, \ + gShinyOverworldPalette_Florges ##Form \ ) \ .levelUpLearnset = sFlorgesLevelUpLearnset, \ .teachableLearnset = sFlorgesTeachableLearnset, \ @@ -1836,8 +1834,8 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = { FLORGES_MISC_INFO(Red, 0), .description = COMPOUND_STRING( - "This Pokémon creates an\n" - "impressive flower garden in its territory. It\n" + "This Pokémon creates an impressive\n" + "flower garden in its territory. It\n" "draws forth the power of the red\n" "flowers around its neck."), }, @@ -2305,31 +2303,31 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MeowsticMale, + .frontPic = gMonFrontPic_MeowsticM, .frontPicSize = MON_COORDS_SIZE(48, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Meowstic, .frontAnimId = ANIM_GROW_VIBRATE, - .backPic = gMonBackPic_MeowsticMale, + .backPic = gMonBackPic_MeowsticM, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - .palette = gMonPalette_MeowsticMale, - .shinyPalette = gMonShinyPalette_MeowsticMale, - .iconSprite = gMonIcon_MeowsticMale, + .palette = gMonPalette_MeowsticM, + .shinyPalette = gMonShinyPalette_MeowsticM, + .iconSprite = gMonIcon_MeowsticM, .iconPalIndex = 0, SHADOW(-2, 11, SHADOW_SIZE_S) FOOTPRINT(Meowstic) OVERWORLD( - sPicTable_MeowsticMale, + sPicTable_MeowsticM, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MeowsticMale, - gShinyOverworldPalette_MeowsticMale + gOverworldPalette_MeowsticM, + gShinyOverworldPalette_MeowsticM ) - .levelUpLearnset = sMeowsticMaleLevelUpLearnset, - .teachableLearnset = sMeowsticMaleTeachableLearnset, + .levelUpLearnset = sMeowsticMLevelUpLearnset, + .teachableLearnset = sMeowsticMTeachableLearnset, .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, @@ -2367,31 +2365,31 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MeowsticFemale, + .frontPic = gMonFrontPic_MeowsticF, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, .frontAnimFrames = sAnims_Meowstic, .frontAnimId = ANIM_GROW_VIBRATE, - .backPic = gMonBackPic_MeowsticFemale, + .backPic = gMonBackPic_MeowsticF, .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 9, .backAnimId = BACK_ANIM_CONCAVE_ARC_LARGE, - .palette = gMonPalette_MeowsticFemale, - .shinyPalette = gMonShinyPalette_MeowsticFemale, - .iconSprite = gMonIcon_MeowsticFemale, + .palette = gMonPalette_MeowsticF, + .shinyPalette = gMonShinyPalette_MeowsticF, + .iconSprite = gMonIcon_MeowsticF, .iconPalIndex = 0, SHADOW(-2, 12, SHADOW_SIZE_S) FOOTPRINT(Meowstic) OVERWORLD( - sPicTable_MeowsticFemale, + sPicTable_MeowsticF, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MeowsticFemale, - gShinyOverworldPalette_MeowsticFemale + gOverworldPalette_MeowsticF, + gShinyOverworldPalette_MeowsticF ) - .levelUpLearnset = sMeowsticFemaleLevelUpLearnset, - .teachableLearnset = sMeowsticFemaleTeachableLearnset, + .levelUpLearnset = sMeowsticFLevelUpLearnset, + .teachableLearnset = sMeowsticFTeachableLearnset, .formSpeciesIdTable = sMeowsticFormSpeciesIdTable, }, #endif //P_FAMILY_ESPURR @@ -4223,32 +4221,32 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - .frontPic = gMonFrontPic_SliggooHisuian, + .frontPic = gMonFrontPic_SliggooHisui, .frontPicSize = MON_COORDS_SIZE(48, 56), .frontPicYOffset = 7, - .frontAnimFrames = sAnims_SliggooHisuian, + .frontAnimFrames = sAnims_SliggooHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SliggooHisuian, + .backPic = gMonBackPic_SliggooHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SliggooHisuian, - .shinyPalette = gMonShinyPalette_SliggooHisuian, - .iconSprite = gMonIcon_SliggooHisuian, + .palette = gMonPalette_SliggooHisui, + .shinyPalette = gMonShinyPalette_SliggooHisui, + .iconSprite = gMonIcon_SliggooHisui, .iconPalIndex = 2, SHADOW(2, 6, SHADOW_SIZE_M) FOOTPRINT(Sliggoo) OVERWORLD( - sPicTable_SliggooHisuian, + sPicTable_SliggooHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_SliggooHisuian, - gShinyOverworldPalette_SliggooHisuian + gOverworldPalette_SliggooHisui, + gShinyOverworldPalette_SliggooHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sSliggooHisuianLevelUpLearnset, - .teachableLearnset = sSliggooHisuianTeachableLearnset, + .levelUpLearnset = sSliggooHisuiLevelUpLearnset, + .teachableLearnset = sSliggooHisuiTeachableLearnset, .formSpeciesIdTable = sSliggooFormSpeciesIdTable, .evolutions = EVOLUTION({EVO_LEVEL_RAIN, 50, SPECIES_GOODRA_HISUI}, {EVO_LEVEL_FOG, 50, SPECIES_GOODRA_HISUI}), @@ -4280,40 +4278,40 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .height = 17, .weight = 3341, .description = COMPOUND_STRING( - "It loathes solitude and is\n" - "extremely clingy-it will fume and run riot if\n" + "It loathes solitude and is extremely\n" + "clingy--it will fume and run riot if\n" "those dearest to it ever leave its\n" "side."), .pokemonScale = 261, .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - .frontPic = gMonFrontPic_GoodraHisuian, + .frontPic = gMonFrontPic_GoodraHisui, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_GoodraHisuian, + .frontAnimFrames = sAnims_GoodraHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GoodraHisuian, + .backPic = gMonBackPic_GoodraHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GoodraHisuian, - .shinyPalette = gMonShinyPalette_GoodraHisuian, - .iconSprite = gMonIcon_GoodraHisuian, + .palette = gMonPalette_GoodraHisui, + .shinyPalette = gMonShinyPalette_GoodraHisui, + .iconSprite = gMonIcon_GoodraHisui, .iconPalIndex = 2, SHADOW(1, 12, SHADOW_SIZE_M) FOOTPRINT(Goodra) OVERWORLD( - sPicTable_GoodraHisuian, + sPicTable_GoodraHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_GoodraHisuian, - gShinyOverworldPalette_GoodraHisuian + gOverworldPalette_GoodraHisui, + gShinyOverworldPalette_GoodraHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sGoodraHisuianLevelUpLearnset, - .teachableLearnset = sGoodraHisuianTeachableLearnset, + .levelUpLearnset = sGoodraHisuiLevelUpLearnset, + .teachableLearnset = sGoodraHisuiTeachableLearnset, .formSpeciesIdTable = sGoodraFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -5191,32 +5189,32 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .pokemonOffset = 1, .trainerScale = 334, .trainerOffset = 4, - .frontPic = gMonFrontPic_AvaluggHisuian, + .frontPic = gMonFrontPic_AvaluggHisui, .frontPicSize = MON_COORDS_SIZE(64, 48), .frontPicYOffset = 6, - .frontAnimFrames = sAnims_AvaluggHisuian, + .frontAnimFrames = sAnims_AvaluggHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_AvaluggHisuian, + .backPic = gMonBackPic_AvaluggHisui, .backPicSize = MON_COORDS_SIZE(64, 32), .backPicYOffset = 16, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_AvaluggHisuian, - .shinyPalette = gMonShinyPalette_AvaluggHisuian, - .iconSprite = gMonIcon_AvaluggHisuian, + .palette = gMonPalette_AvaluggHisui, + .shinyPalette = gMonShinyPalette_AvaluggHisui, + .iconSprite = gMonIcon_AvaluggHisui, .iconPalIndex = 5, SHADOW(2, -2, SHADOW_SIZE_L) FOOTPRINT(Avalugg) OVERWORLD( - sPicTable_AvaluggHisuian, + sPicTable_AvaluggHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_AvaluggHisuian, - gShinyOverworldPalette_AvaluggHisuian + gOverworldPalette_AvaluggHisui, + gShinyOverworldPalette_AvaluggHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sAvaluggHisuianLevelUpLearnset, - .teachableLearnset = sAvaluggHisuianTeachableLearnset, + .levelUpLearnset = sAvaluggHisuiLevelUpLearnset, + .teachableLearnset = sAvaluggHisuiTeachableLearnset, .formSpeciesIdTable = sAvaluggFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -5322,9 +5320,9 @@ const struct SpeciesInfo gSpeciesInfoGen6[] = .weight = 850, .description = COMPOUND_STRING( "They fly around on moonless nights and\n" - "attack careless prey. The ultrasonic waves\n" - "it emits from its ears can reduce a large\n" - "boulder to pebbles."), + "attack careless prey. The ultrasonic\n" + "waves it emits from its ears can reduce\n" + "a large boulder to pebbles."), .pokemonScale = 268, .pokemonOffset = 2, .trainerScale = 271, diff --git a/src/data/pokemon/species_info/gen_7_families.h b/src/data/pokemon/species_info/gen_7_families.h index c6f0e0faf3..cb126fd171 100644 --- a/src/data/pokemon/species_info/gen_7_families.h +++ b/src/data/pokemon/species_info/gen_7_families.h @@ -228,32 +228,32 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - .frontPic = gMonFrontPic_DecidueyeHisuian, + .frontPic = gMonFrontPic_DecidueyeHisui, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_DecidueyeHisuian, + .frontAnimFrames = sAnims_DecidueyeHisui, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DecidueyeHisuian, + .backPic = gMonBackPic_DecidueyeHisui, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DecidueyeHisuian, - .shinyPalette = gMonShinyPalette_DecidueyeHisuian, - .iconSprite = gMonIcon_DecidueyeHisuian, + .palette = gMonPalette_DecidueyeHisui, + .shinyPalette = gMonShinyPalette_DecidueyeHisui, + .iconSprite = gMonIcon_DecidueyeHisui, .iconPalIndex = 0, SHADOW(-1, 14, SHADOW_SIZE_L) FOOTPRINT(Decidueye) OVERWORLD( - sPicTable_DecidueyeHisuian, + sPicTable_DecidueyeHisui, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_DecidueyeHisuian, - gShinyOverworldPalette_DecidueyeHisuian + gOverworldPalette_DecidueyeHisui, + gShinyOverworldPalette_DecidueyeHisui ) .isHisuianForm = TRUE, - .levelUpLearnset = sDecidueyeHisuianLevelUpLearnset, - .teachableLearnset = sDecidueyeHisuianTeachableLearnset, + .levelUpLearnset = sDecidueyeHisuiLevelUpLearnset, + .teachableLearnset = sDecidueyeHisuiTeachableLearnset, .formSpeciesIdTable = sDecidueyeFormSpeciesIdTable, }, #endif //P_HISUIAN_FORMS @@ -3890,8 +3890,8 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .height = 5, .weight = 700, .description = COMPOUND_STRING( - "It takes control of anyone who puts a hand\n" - "in its mouth, to add to the accumulation\n" + "It takes control of anyone who puts a\n" + "hand in its mouth, to add to the pile\n" "of its sand-mound body. This Pokémon\n" "embodies the grudges of the departed."), .pokemonScale = 432, @@ -5493,7 +5493,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .palette = gMonPalette_TapuFini, .shinyPalette = gMonShinyPalette_TapuFini, .iconSprite = gMonIcon_TapuFini, - .iconPalIndex = 0, + .iconPalIndex = 2, SHADOW(1, 15, SHADOW_SIZE_M) FOOTPRINT(TapuFini) OVERWORLD( @@ -5694,7 +5694,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .palette = gMonPalette_Solgaleo, .shinyPalette = gMonShinyPalette_Solgaleo, .iconSprite = gMonIcon_Solgaleo, - .iconPalIndex = 0, + .iconPalIndex = 2, SHADOW(-1, 11, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Solgaleo) OVERWORLD( @@ -5826,7 +5826,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .palette = gMonPalette_Nihilego, .shinyPalette = gMonShinyPalette_Nihilego, .iconSprite = gMonIcon_Nihilego, - .iconPalIndex = 0, + .iconPalIndex = 2, SHADOW(-2, 14, SHADOW_SIZE_S) FOOTPRINT(Nihilego) OVERWORLD( @@ -6220,7 +6220,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .palette = gMonPalette_Guzzlord, .shinyPalette = gMonShinyPalette_Guzzlord, .iconSprite = gMonIcon_Guzzlord, - .iconPalIndex = 0, + .iconPalIndex = 2, SHADOW(4, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Guzzlord) OVERWORLD( @@ -6288,7 +6288,7 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .palette = gMonPalette_Necrozma, .shinyPalette = gMonShinyPalette_Necrozma, .iconSprite = gMonIcon_Necrozma, - .iconPalIndex = 0, + .iconPalIndex = 1, SHADOW(-1, 15, SHADOW_SIZE_M) FOOTPRINT(Necrozma) OVERWORLD( @@ -6335,10 +6335,10 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .height = 38, .weight = 4600, .description = COMPOUND_STRING( - "This is its form while it is\n" - "devouring the light of Solgaleo. It pounces\n" - "on foes and then slashes them with\n" - "the claws on its four limbs and back."), + "This is its form while it is devouring\n" + "the light of Solgaleo. It pounces on\n" + "foes and then slashes them with the\n" + "claws on its four limbs and back."), .pokemonScale = 256, .pokemonOffset = 3, .trainerScale = 369, @@ -6611,28 +6611,28 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - .frontPic = gMonFrontPic_MagearnaOriginalColor, + .frontPic = gMonFrontPic_MagearnaOriginal, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Magearna, .frontAnimId = ANIM_H_SLIDE_SLOW, - .backPic = gMonBackPic_MagearnaOriginalColor, + .backPic = gMonBackPic_MagearnaOriginal, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, /*.backAnimId = BACK_ANIM_NONE,*/ - .palette = gMonPalette_MagearnaOriginalColor, - .shinyPalette = gMonShinyPalette_MagearnaOriginalColor, - .iconSprite = gMonIcon_MagearnaOriginalColor, + .palette = gMonPalette_MagearnaOriginal, + .shinyPalette = gMonShinyPalette_MagearnaOriginal, + .iconSprite = gMonIcon_MagearnaOriginal, .iconPalIndex = 0, SHADOW(-2, 14, SHADOW_SIZE_M) FOOTPRINT(Magearna) OVERWORLD( - sPicTable_MagearnaOriginalColor, + sPicTable_MagearnaOriginal, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_MagearnaOriginalColor, - gShinyOverworldPalette_MagearnaOriginalColor + gOverworldPalette_MagearnaOriginal, + gShinyOverworldPalette_MagearnaOriginal ) .isMythical = TRUE, .isFrontierBanned = TRUE, @@ -7125,9 +7125,9 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .height = 25, .weight = 800, .description = COMPOUND_STRING( - "Revered long ago for its capacity to create\n" - "iron from nothing, for some reason it has\n" - "come back to life after 3,000 years."), + "Revered long ago for its capacity to\n" + "create iron from nothing, for some reason\n" + "it has come back to life after 3,000 years."), .pokemonScale = 257, .pokemonOffset = 10, .trainerScale = 423, @@ -7199,18 +7199,18 @@ const struct SpeciesInfo gSpeciesInfoGen7[] = .pokemonOffset = 10, .trainerScale = 423, .trainerOffset = 8, - .frontPic = gMonFrontPic_MelmetalGigantamax, + .frontPic = gMonFrontPic_MelmetalGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_MelmetalGigantamax, + .frontAnimFrames = sAnims_MelmetalGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_MelmetalGigantamax, + .backPic = gMonBackPic_MelmetalGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 14, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_MelmetalGigantamax, - .shinyPalette = gMonShinyPalette_MelmetalGigantamax, - .iconSprite = gMonIcon_MelmetalGigantamax, + .palette = gMonPalette_MelmetalGmax, + .shinyPalette = gMonShinyPalette_MelmetalGmax, + .iconSprite = gMonIcon_MelmetalGmax, .iconPalIndex = 0, SHADOW(2, 13, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Melmetal) diff --git a/src/data/pokemon/species_info/gen_8_families.h b/src/data/pokemon/species_info/gen_8_families.h index 0794527921..37eefda7f9 100644 --- a/src/data/pokemon/species_info/gen_8_families.h +++ b/src/data/pokemon/species_info/gen_8_families.h @@ -224,18 +224,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - .frontPic = gMonFrontPic_RillaboomGigantamax, + .frontPic = gMonFrontPic_RillaboomGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_RillaboomGigantamax, + .frontAnimFrames = sAnims_RillaboomGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_RillaboomGigantamax, + .backPic = gMonBackPic_RillaboomGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_RillaboomGigantamax, - .shinyPalette = gMonShinyPalette_RillaboomGigantamax, - .iconSprite = gMonIcon_RillaboomGigantamax, + .palette = gMonPalette_RillaboomGmax, + .shinyPalette = gMonShinyPalette_RillaboomGmax, + .iconSprite = gMonIcon_RillaboomGmax, .iconPalIndex = 1, SHADOW(0, 8, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Rillaboom) @@ -471,18 +471,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - .frontPic = gMonFrontPic_CinderaceGigantamax, + .frontPic = gMonFrontPic_CinderaceGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_CinderaceGigantamax, + .frontAnimFrames = sAnims_CinderaceGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CinderaceGigantamax, + .backPic = gMonBackPic_CinderaceGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CinderaceGigantamax, - .shinyPalette = gMonShinyPalette_CinderaceGigantamax, - .iconSprite = gMonIcon_CinderaceGigantamax, + .palette = gMonPalette_CinderaceGmax, + .shinyPalette = gMonShinyPalette_CinderaceGmax, + .iconSprite = gMonIcon_CinderaceGmax, .iconPalIndex = 0, SHADOW(-3, 13, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Cinderace) @@ -719,18 +719,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_InteleonGigantamax, + .frontPic = gMonFrontPic_InteleonGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_InteleonGigantamax, + .frontAnimFrames = sAnims_InteleonGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_InteleonGigantamax, + .backPic = gMonBackPic_InteleonGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_InteleonGigantamax, - .shinyPalette = gMonShinyPalette_InteleonGigantamax, - .iconSprite = gMonIcon_InteleonGigantamax, + .palette = gMonPalette_InteleonGmax, + .shinyPalette = gMonShinyPalette_InteleonGmax, + .iconSprite = gMonIcon_InteleonGmax, .iconPalIndex = 0, SHADOW(-5, 12, SHADOW_SIZE_L) FOOTPRINT(Inteleon) @@ -899,8 +899,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .description = COMPOUND_STRING( "It will bravely challenge any opponent,\n" "no matter how powerful. This Pokémon\n" - "benefits from every battle--even a defeat\n" - "increases its strength a bit."), + "benefits from every battle--even a\n" + "defeat increases its strength a bit."), .pokemonScale = 682, .pokemonOffset = 24, .trainerScale = 256, @@ -1095,18 +1095,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 348, .trainerOffset = 6, - .frontPic = gMonFrontPic_CorviknightGigantamax, + .frontPic = gMonFrontPic_CorviknightGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_CorviknightGigantamax, + .frontAnimFrames = sAnims_CorviknightGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CorviknightGigantamax, + .backPic = gMonBackPic_CorviknightGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CorviknightGigantamax, - .shinyPalette = gMonShinyPalette_CorviknightGigantamax, - .iconSprite = gMonIcon_CorviknightGigantamax, + .palette = gMonPalette_CorviknightGmax, + .shinyPalette = gMonShinyPalette_CorviknightGmax, + .iconSprite = gMonIcon_CorviknightGmax, .iconPalIndex = 0, SHADOW(2, 8, SHADOW_SIZE_L) FOOTPRINT(Corviknight) @@ -1339,26 +1339,26 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .height = 140, .weight = 0, .description = COMPOUND_STRING( - "Its brain has grown to a\n" - "gargantuan size, as has the rest of its body.\n" + "Its brain has grown to a gargantuan\n" + "size, as has the rest of its body.\n" "This Pokémon's intellect and\n" "psychic abilities are overpowering."), .pokemonScale = 491, .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_OrbeetleGigantamax, + .frontPic = gMonFrontPic_OrbeetleGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_OrbeetleGigantamax, + .frontAnimFrames = sAnims_OrbeetleGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_OrbeetleGigantamax, + .backPic = gMonBackPic_OrbeetleGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_OrbeetleGigantamax, - .shinyPalette = gMonShinyPalette_OrbeetleGigantamax, - .iconSprite = gMonIcon_OrbeetleGigantamax, + .palette = gMonPalette_OrbeetleGmax, + .shinyPalette = gMonShinyPalette_OrbeetleGmax, + .iconSprite = gMonIcon_OrbeetleGmax, .iconPalIndex = 0, SHADOW(0, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Orbeetle) @@ -1909,18 +1909,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 257, .trainerOffset = 0, - .frontPic = gMonFrontPic_DrednawGigantamax, + .frontPic = gMonFrontPic_DrednawGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_DrednawGigantamax, + .frontAnimFrames = sAnims_DrednawGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DrednawGigantamax, + .backPic = gMonBackPic_DrednawGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 12, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DrednawGigantamax, - .shinyPalette = gMonShinyPalette_DrednawGigantamax, - .iconSprite = gMonIcon_DrednawGigantamax, + .palette = gMonPalette_DrednawGmax, + .shinyPalette = gMonShinyPalette_DrednawGmax, + .iconSprite = gMonIcon_DrednawGmax, .iconPalIndex = 0, SHADOW(2, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Drednaw) @@ -2282,18 +2282,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CoalossalGigantamax, + .frontPic = gMonFrontPic_CoalossalGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_CoalossalGigantamax, + .frontAnimFrames = sAnims_CoalossalGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CoalossalGigantamax, + .backPic = gMonBackPic_CoalossalGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CoalossalGigantamax, - .shinyPalette = gMonShinyPalette_CoalossalGigantamax, - .iconSprite = gMonIcon_CoalossalGigantamax, + .palette = gMonPalette_CoalossalGmax, + .shinyPalette = gMonShinyPalette_CoalossalGmax, + .iconSprite = gMonIcon_CoalossalGmax, .iconPalIndex = 0, SHADOW(1, 12, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Coalossal) @@ -2471,18 +2471,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_FlappleGigantamax, + .frontPic = gMonFrontPic_FlappleGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, - .frontAnimFrames = sAnims_FlappleGigantamax, + .frontAnimFrames = sAnims_FlappleGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_FlappleGigantamax, + .backPic = gMonBackPic_FlappleGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_FlappleGigantamax, - .shinyPalette = gMonShinyPalette_FlappleGigantamax, - .iconSprite = gMonIcon_FlappleGigantamax, + .palette = gMonPalette_FlappleGmax, + .shinyPalette = gMonShinyPalette_FlappleGmax, + .iconSprite = gMonIcon_FlappleGmax, .iconPalIndex = 1, SHADOW(0, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Flapple) @@ -2591,18 +2591,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 12, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_AppletunGigantamax, + .frontPic = gMonFrontPic_AppletunGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, - .frontAnimFrames = sAnims_AppletunGigantamax, + .frontAnimFrames = sAnims_AppletunGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_AppletunGigantamax, + .backPic = gMonBackPic_AppletunGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 2, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_AppletunGigantamax, - .shinyPalette = gMonShinyPalette_AppletunGigantamax, - .iconSprite = gMonIcon_AppletunGigantamax, + .palette = gMonPalette_AppletunGmax, + .shinyPalette = gMonShinyPalette_AppletunGmax, + .iconSprite = gMonIcon_AppletunGmax, .iconPalIndex = 1, SHADOW(0, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Appletun) @@ -2900,18 +2900,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 610, .trainerOffset = 17, - .frontPic = gMonFrontPic_SandacondaGigantamax, + .frontPic = gMonFrontPic_SandacondaGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_SandacondaGigantamax, + .frontAnimFrames = sAnims_SandacondaGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_SandacondaGigantamax, + .backPic = gMonBackPic_SandacondaGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_SandacondaGigantamax, - .shinyPalette = gMonShinyPalette_SandacondaGigantamax, - .iconSprite = gMonIcon_SandacondaGigantamax, + .palette = gMonPalette_SandacondaGmax, + .shinyPalette = gMonShinyPalette_SandacondaGmax, + .iconSprite = gMonIcon_SandacondaGmax, .iconPalIndex = 1, SHADOW(0, 14, SHADOW_SIZE_M) FOOTPRINT(Sandaconda) @@ -3386,18 +3386,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPic = gMonFrontPic_ToxtricityGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_ToxtricityGigantamax, + .frontAnimFrames = sAnims_ToxtricityGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ToxtricityGigantamax, + .backPic = gMonBackPic_ToxtricityGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ToxtricityGigantamax, - .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, - .iconSprite = gMonIcon_ToxtricityGigantamax, + .palette = gMonPalette_ToxtricityGmax, + .shinyPalette = gMonShinyPalette_ToxtricityGmax, + .iconSprite = gMonIcon_ToxtricityGmax, .iconPalIndex = 0, SHADOW(1, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Toxtricity) @@ -3502,18 +3502,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 296, .trainerOffset = 1, - .frontPic = gMonFrontPic_ToxtricityGigantamax, + .frontPic = gMonFrontPic_ToxtricityGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_ToxtricityGigantamax, + .frontAnimFrames = sAnims_ToxtricityGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ToxtricityGigantamax, + .backPic = gMonBackPic_ToxtricityGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ToxtricityGigantamax, - .shinyPalette = gMonShinyPalette_ToxtricityGigantamax, - .iconSprite = gMonIcon_ToxtricityGigantamax, + .palette = gMonPalette_ToxtricityGmax, + .shinyPalette = gMonShinyPalette_ToxtricityGmax, + .iconSprite = gMonIcon_ToxtricityGmax, .iconPalIndex = 0, SHADOW(1, 10, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Toxtricity) @@ -3680,25 +3680,25 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .weight = 0, .description = COMPOUND_STRING( "The heat that comes off a\n" - "Gigantamax Centiskorch may destabilize air\n" - "currents. Sometimes it can even\n" - "cause storms."), + "Gigantamax Centiskorch may\n" + "destabilize air currents. Sometimes\n" + "it can even cause storms."), .pokemonScale = 275, .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CentiskorchGigantamax, + .frontPic = gMonFrontPic_CentiskorchGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 5, - .frontAnimFrames = sAnims_CentiskorchGigantamax, + .frontAnimFrames = sAnims_CentiskorchGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CentiskorchGigantamax, + .backPic = gMonBackPic_CentiskorchGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 1, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CentiskorchGigantamax, - .shinyPalette = gMonShinyPalette_CentiskorchGigantamax, - .iconSprite = gMonIcon_CentiskorchGigantamax, + .palette = gMonPalette_CentiskorchGmax, + .shinyPalette = gMonShinyPalette_CentiskorchGmax, + .iconSprite = gMonIcon_CentiskorchGmax, .iconPalIndex = 0, SHADOW(6, 9, SHADOW_SIZE_L) FOOTPRINT(Centiskorch) @@ -4312,18 +4312,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 0, .trainerScale = 365, .trainerOffset = 7, - .frontPic = gMonFrontPic_HattereneGigantamax, + .frontPic = gMonFrontPic_HattereneGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_HattereneGigantamax, + .frontAnimFrames = sAnims_HattereneGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_HattereneGigantamax, + .backPic = gMonBackPic_HattereneGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_HattereneGigantamax, - .shinyPalette = gMonShinyPalette_HattereneGigantamax, - .iconSprite = gMonIcon_HattereneGigantamax, + .palette = gMonPalette_HattereneGmax, + .shinyPalette = gMonShinyPalette_HattereneGmax, + .iconSprite = gMonIcon_HattereneGmax, .iconPalIndex = 0, SHADOW(-3, 13, SHADOW_SIZE_S) FOOTPRINT(Hatterene) @@ -4364,9 +4364,9 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .weight = 55, .description = COMPOUND_STRING( "Through its nose, it sucks in the\n" - "emanations produced by people and Pokémon\n" - "when they feel annoyed. It thrives off\n" - "this negative energy."), + "emanations produced by people and\n" + "Pokémon when they feel annoyed. It\n" + "thrives off this negative energy."), .pokemonScale = 491, .pokemonOffset = 12, .trainerScale = 256, @@ -4559,18 +4559,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 271, .trainerOffset = 0, - .frontPic = gMonFrontPic_GrimmsnarlGigantamax, + .frontPic = gMonFrontPic_GrimmsnarlGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 1, - .frontAnimFrames = sAnims_GrimmsnarlGigantamax, + .frontAnimFrames = sAnims_GrimmsnarlGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_GrimmsnarlGigantamax, + .backPic = gMonBackPic_GrimmsnarlGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 10, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_GrimmsnarlGigantamax, - .shinyPalette = gMonShinyPalette_GrimmsnarlGigantamax, - .iconSprite = gMonIcon_GrimmsnarlGigantamax, + .palette = gMonPalette_GrimmsnarlGmax, + .shinyPalette = gMonShinyPalette_GrimmsnarlGmax, + .iconSprite = gMonIcon_GrimmsnarlGmax, .iconPalIndex = 0, SHADOW(0, 14, SHADOW_SIZE_XL_BATTLE_ONLY) FOOTPRINT(Grimmsnarl) @@ -4799,18 +4799,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 13, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_AlcremieGigantamax, + .frontPic = gMonFrontPic_AlcremieGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_AlcremieGigantamax, + .frontAnimFrames = sAnims_AlcremieGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_AlcremieGigantamax, + .backPic = gMonBackPic_AlcremieGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 9, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_AlcremieGigantamax, - .shinyPalette = gMonShinyPalette_AlcremieGigantamax, - .iconSprite = gMonIcon_AlcremieGigantamax, + .palette = gMonPalette_AlcremieGmax, + .shinyPalette = gMonShinyPalette_AlcremieGmax, + .iconSprite = gMonIcon_AlcremieGmax, .iconPalIndex = 1, SHADOW(0, 10, SHADOW_SIZE_L) FOOTPRINT(Alcremie) @@ -5175,28 +5175,28 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - .frontPic = gMonFrontPic_EiscueIceFace, + .frontPic = gMonFrontPic_EiscueIce, .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_EiscueIceFace, + .backPic = gMonBackPic_EiscueIce, .backPicSize = MON_COORDS_SIZE(48, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_EiscueIceFace, - .shinyPalette = gMonShinyPalette_EiscueIceFace, - .iconSprite = gMonIcon_EiscueIceFace, + .palette = gMonPalette_EiscueIce, + .shinyPalette = gMonShinyPalette_EiscueIce, + .iconSprite = gMonIcon_EiscueIce, .iconPalIndex = 0, SHADOW(-1, 13, SHADOW_SIZE_S) FOOTPRINT(Eiscue) OVERWORLD( - sPicTable_EiscueIceFace, + sPicTable_EiscueIce, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_EiscueIceFace, - gShinyOverworldPalette_EiscueIceFace + gOverworldPalette_EiscueIce, + gShinyOverworldPalette_EiscueIce ) .levelUpLearnset = sEiscueLevelUpLearnset, .teachableLearnset = sEiscueTeachableLearnset, @@ -5239,18 +5239,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 262, .trainerOffset = 0, - .frontPic = gMonFrontPic_EiscueNoiceFace, + .frontPic = gMonFrontPic_EiscueNoice, .frontPicSize = MON_COORDS_SIZE(40, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Eiscue, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_EiscueNoiceFace, + .backPic = gMonBackPic_EiscueNoice, .backPicSize = MON_COORDS_SIZE(40, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_EiscueNoiceFace, - .shinyPalette = gMonShinyPalette_EiscueNoiceFace, - .iconSprite = gMonIcon_EiscueNoiceFace, + .palette = gMonPalette_EiscueNoice, + .shinyPalette = gMonShinyPalette_EiscueNoice, + .iconSprite = gMonIcon_EiscueNoice, .iconPalIndex = 0, SHADOW(-1, 13, SHADOW_SIZE_S) FOOTPRINT(Eiscue) @@ -5297,31 +5297,31 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_IndeedeeMale, + .frontPic = gMonFrontPic_IndeedeeM, .frontPicSize = MON_COORDS_SIZE(40, 56), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_IndeedeeMale, + .backPic = gMonBackPic_IndeedeeM, .backPicSize = MON_COORDS_SIZE(56, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_IndeedeeMale, - .shinyPalette = gMonShinyPalette_IndeedeeMale, - .iconSprite = gMonIcon_IndeedeeMale, + .palette = gMonPalette_IndeedeeM, + .shinyPalette = gMonShinyPalette_IndeedeeM, + .iconSprite = gMonIcon_IndeedeeM, .iconPalIndex = 2, SHADOW(2, 4, SHADOW_SIZE_S) FOOTPRINT(Indeedee) OVERWORLD( - sPicTable_IndeedeeMale, + sPicTable_IndeedeeM, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_IndeedeeMale, - gShinyOverworldPalette_IndeedeeMale + gOverworldPalette_IndeedeeM, + gShinyOverworldPalette_IndeedeeM ) - .levelUpLearnset = sIndeedeeMaleLevelUpLearnset, - .teachableLearnset = sIndeedeeMaleTeachableLearnset, + .levelUpLearnset = sIndeedeeMLevelUpLearnset, + .teachableLearnset = sIndeedeeMTeachableLearnset, .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, @@ -5359,32 +5359,32 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 8, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_IndeedeeFemale, + .frontPic = gMonFrontPic_IndeedeeF, .frontPicSize = MON_COORDS_SIZE(40, 48), .frontPicYOffset = 9, .frontAnimFrames = sAnims_Indeedee, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_IndeedeeFemale, + .backPic = gMonBackPic_IndeedeeF, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_IndeedeeFemale, - .shinyPalette = gMonShinyPalette_IndeedeeFemale, - .iconSprite = gMonIcon_IndeedeeFemale, + .palette = gMonPalette_IndeedeeF, + .shinyPalette = gMonShinyPalette_IndeedeeF, + .iconSprite = gMonIcon_IndeedeeF, .iconPalIndex = 2, SHADOW(2, 4, SHADOW_SIZE_S) FOOTPRINT(Indeedee) OVERWORLD( - sPicTable_IndeedeeFemale, + sPicTable_IndeedeeF, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_IndeedeeFemale, - gShinyOverworldPalette_IndeedeeFemale + gOverworldPalette_IndeedeeF, + gShinyOverworldPalette_IndeedeeF ) - .levelUpLearnset = sIndeedeeFemaleLevelUpLearnset, - .teachableLearnset = sIndeedeeFemaleTeachableLearnset, - .eggMoveLearnset = sIndeedeeFemaleEggMoveLearnset, + .levelUpLearnset = sIndeedeeFLevelUpLearnset, + .teachableLearnset = sIndeedeeFTeachableLearnset, + .eggMoveLearnset = sIndeedeeFEggMoveLearnset, .formSpeciesIdTable = sIndeedeeFormSpeciesIdTable, }, #endif //P_FAMILY_INDEEDEE @@ -5667,26 +5667,26 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .height = 230, .weight = 0, .description = COMPOUND_STRING( - "After this Pokémon has\n" - "Gigantamaxed, its massive nose can utterly\n" - "demolish large structures with a single\n" + "After this Pokémon has Gigantamaxed,\n" + "its massive nose can utterly demolish\n" + "large structures with a single\n" "smashing blow."), .pokemonScale = 275, .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CopperajahGigantamax, + .frontPic = gMonFrontPic_CopperajahGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 2, - .frontAnimFrames = sAnims_CopperajahGigantamax, + .frontAnimFrames = sAnims_CopperajahGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CopperajahGigantamax, + .backPic = gMonBackPic_CopperajahGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CopperajahGigantamax, - .shinyPalette = gMonShinyPalette_CopperajahGigantamax, - .iconSprite = gMonIcon_CopperajahGigantamax, + .palette = gMonPalette_CopperajahGmax, + .shinyPalette = gMonShinyPalette_CopperajahGmax, + .iconSprite = gMonIcon_CopperajahGmax, .iconPalIndex = 0, SHADOW(0, 11, SHADOW_SIZE_L) FOOTPRINT(Copperajah) @@ -6050,18 +6050,18 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 2, .trainerScale = 286, .trainerOffset = 1, - .frontPic = gMonFrontPic_DuraludonGigantamax, + .frontPic = gMonFrontPic_DuraludonGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_DuraludonGigantamax, + .frontAnimFrames = sAnims_DuraludonGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_DuraludonGigantamax, + .backPic = gMonBackPic_DuraludonGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_DuraludonGigantamax, - .shinyPalette = gMonShinyPalette_DuraludonGigantamax, - .iconSprite = gMonIcon_DuraludonGigantamax, + .palette = gMonPalette_DuraludonGmax, + .shinyPalette = gMonShinyPalette_DuraludonGmax, + .iconSprite = gMonIcon_DuraludonGmax, .iconPalIndex = 0, SHADOW(3, 12, SHADOW_SIZE_L) FOOTPRINT(Duraludon) @@ -6356,34 +6356,34 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .weight = 1100, .description = COMPOUND_STRING( "Known as a legendary hero, this Pokémon\n" - "absorbs metal particles, transforming them\n" - "into a weapon it uses to battle."), + "absorbs metal particles, transforming\n" + "them into a weapon it uses to battle."), .pokemonScale = 275, .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZacianHeroOfManyBattles, + .frontPic = gMonFrontPic_ZacianHero, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 3, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZacianHeroOfManyBattles, + .backPic = gMonBackPic_ZacianHero, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZacianHeroOfManyBattles, - .shinyPalette = gMonShinyPalette_ZacianHeroOfManyBattles, - .iconSprite = gMonIcon_ZacianHeroOfManyBattles, + .palette = gMonPalette_ZacianHero, + .shinyPalette = gMonShinyPalette_ZacianHero, + .iconSprite = gMonIcon_ZacianHero, .iconPalIndex = 2, SHADOW(-1, 9, SHADOW_SIZE_L) FOOTPRINT(Zacian) OVERWORLD( - sPicTable_ZacianHeroOfManyBattles, + sPicTable_ZacianHero, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZacianHeroOfManyBattles, - gShinyOverworldPalette_ZacianHeroOfManyBattles + gOverworldPalette_ZacianHero, + gShinyOverworldPalette_ZacianHero ) .isLegendary = TRUE, .isFrontierBanned = TRUE, @@ -6414,7 +6414,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_INTREPID_SWORD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLUE, .speciesName = _("Zacian"), - .cryId = CRY_ZACIAN_CROWNED_SWORD, + .cryId = CRY_ZACIAN_CROWNED, .natDexNum = NATIONAL_DEX_ZACIAN, .categoryName = _("Warrior"), .height = 28, @@ -6428,28 +6428,28 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZacianCrownedSword, + .frontPic = gMonFrontPic_ZacianCrowned, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zacian, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZacianCrownedSword, + .backPic = gMonBackPic_ZacianCrowned, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 6, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZacianCrownedSword, - .shinyPalette = gMonShinyPalette_ZacianCrownedSword, - .iconSprite = gMonIcon_ZacianCrownedSword, + .palette = gMonPalette_ZacianCrowned, + .shinyPalette = gMonShinyPalette_ZacianCrowned, + .iconSprite = gMonIcon_ZacianCrowned, .iconPalIndex = 2, SHADOW(-3, 12, SHADOW_SIZE_L) FOOTPRINT(Zacian) OVERWORLD( - sPicTable_ZacianCrownedSword, + sPicTable_ZacianCrowned, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZacianCrownedSword, - gShinyOverworldPalette_ZacianCrownedSword + gOverworldPalette_ZacianCrowned, + gShinyOverworldPalette_ZacianCrowned ) .isLegendary = TRUE, .isFrontierBanned = TRUE, @@ -6496,28 +6496,28 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZamazentaHeroOfManyBattles, + .frontPic = gMonFrontPic_ZamazentaHero, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZamazentaHeroOfManyBattles, + .backPic = gMonBackPic_ZamazentaHero, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 5, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZamazentaHeroOfManyBattles, - .shinyPalette = gMonShinyPalette_ZamazentaHeroOfManyBattles, - .iconSprite = gMonIcon_ZamazentaHeroOfManyBattles, + .palette = gMonPalette_ZamazentaHero, + .shinyPalette = gMonShinyPalette_ZamazentaHero, + .iconSprite = gMonIcon_ZamazentaHero, .iconPalIndex = 2, SHADOW(-1, 12, SHADOW_SIZE_L) FOOTPRINT(Zamazenta) OVERWORLD( - sPicTable_ZamazentaHeroOfManyBattles, + sPicTable_ZamazentaHero, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZamazentaHeroOfManyBattles, - gShinyOverworldPalette_ZamazentaHeroOfManyBattles + gOverworldPalette_ZamazentaHero, + gShinyOverworldPalette_ZamazentaHero ) .isLegendary = TRUE, .isFrontierBanned = TRUE, @@ -6548,7 +6548,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_DAUNTLESS_SHIELD, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_RED, .speciesName = _("Zamazenta"), - .cryId = CRY_ZAMAZENTA_CROWNED_SHIELD, + .cryId = CRY_ZAMAZENTA_CROWNED, .natDexNum = NATIONAL_DEX_ZAMAZENTA, .categoryName = _("Warrior"), .height = 29, @@ -6562,28 +6562,28 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_ZamazentaCrownedShield, + .frontPic = gMonFrontPic_ZamazentaCrowned, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Zamazenta, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_ZamazentaCrownedShield, + .backPic = gMonBackPic_ZamazentaCrowned, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 3, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_ZamazentaCrownedShield, - .shinyPalette = gMonShinyPalette_ZamazentaCrownedShield, - .iconSprite = gMonIcon_ZamazentaCrownedShield, + .palette = gMonPalette_ZamazentaCrowned, + .shinyPalette = gMonShinyPalette_ZamazentaCrowned, + .iconSprite = gMonIcon_ZamazentaCrowned, .iconPalIndex = 2, SHADOW(0, 12, SHADOW_SIZE_L) FOOTPRINT(Zamazenta) OVERWORLD( - sPicTable_ZamazentaCrownedShield, + sPicTable_ZamazentaCrowned, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_ZamazentaCrownedShield, - gShinyOverworldPalette_ZamazentaCrownedShield + gOverworldPalette_ZamazentaCrowned, + gShinyOverworldPalette_ZamazentaCrowned ) .isLegendary = TRUE, .isFrontierBanned = TRUE, @@ -6808,7 +6808,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Urshifu"), - .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .cryId = CRY_URSHIFU_SINGLE_STRIKE, .natDexNum = NATIONAL_DEX_URSHIFU, .categoryName = _("Wushu"), .height = 19, @@ -6822,17 +6822,17 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_UrshifuSingleStrikeStyle, + .frontPic = gMonFrontPic_UrshifuSingleStrike, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_UrshifuSingleStrikeStyle, + .backPic = gMonBackPic_UrshifuSingleStrike, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_UrshifuSingleStrikeStyle, - .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyle, + .palette = gMonPalette_UrshifuSingleStrike, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrike, .iconSprite = gMonIcon_Urshifu, .iconPalIndex = 2, SHADOW(0, 14, SHADOW_SIZE_L) @@ -6847,8 +6847,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = ) .isLegendary = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, - .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .levelUpLearnset = sUrshifuSingleStrikeLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuSingleStrikeFormChangeTable, }, @@ -6874,7 +6874,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Urshifu"), - .cryId = CRY_URSHIFU_SINGLE_STRIKE_STYLE, + .cryId = CRY_URSHIFU_SINGLE_STRIKE, .natDexNum = NATIONAL_DEX_URSHIFU, .categoryName = _("Wushu"), .height = 290, @@ -6888,26 +6888,26 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_UrshifuSingleStrikeStyleGigantamax, + .frontPic = gMonFrontPic_UrshifuSingleStrikeGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_UrshifuSingleStrikeStyleGigantamax, + .frontAnimFrames = sAnims_UrshifuSingleStrikeGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_UrshifuSingleStrikeStyleGigantamax, + .backPic = gMonBackPic_UrshifuSingleStrikeGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_UrshifuSingleStrikeStyleGigantamax, - .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeStyleGigantamax, - .iconSprite = gMonIcon_UrshifuSingleStrikeStyleGigantamax, + .palette = gMonPalette_UrshifuSingleStrikeGmax, + .shinyPalette = gMonShinyPalette_UrshifuSingleStrikeGmax, + .iconSprite = gMonIcon_UrshifuSingleStrikeGmax, .iconPalIndex = 0, SHADOW(1, 13, SHADOW_SIZE_L) FOOTPRINT(Urshifu) .isLegendary = TRUE, .isGigantamax = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sUrshifuSingleStrikeStyleLevelUpLearnset, - .teachableLearnset = sUrshifuSingleStrikeStyleTeachableLearnset, + .levelUpLearnset = sUrshifuSingleStrikeLevelUpLearnset, + .teachableLearnset = sUrshifuSingleStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, }, #endif //P_GIGANTAMAX_FORMS @@ -6932,7 +6932,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Urshifu"), - .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .cryId = CRY_URSHIFU_RAPID_STRIKE, .natDexNum = NATIONAL_DEX_URSHIFU, .categoryName = _("Wushu"), .height = 19, @@ -6946,17 +6946,17 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_UrshifuRapidStrikeStyle, + .frontPic = gMonFrontPic_UrshifuRapidStrike, .frontPicSize = MON_COORDS_SIZE(56, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Urshifu, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_UrshifuRapidStrikeStyle, + .backPic = gMonBackPic_UrshifuRapidStrike, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_UrshifuRapidStrikeStyle, - .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyle, + .palette = gMonPalette_UrshifuRapidStrike, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrike, .iconSprite = gMonIcon_Urshifu, .iconPalIndex = 2, SHADOW(4, 14, SHADOW_SIZE_M) @@ -6971,8 +6971,8 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = ) .isLegendary = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, - .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .levelUpLearnset = sUrshifuRapidStrikeLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, .formChangeTable = sUrshifuRapidStrikeFormChangeTable, }, @@ -6998,7 +6998,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_UNSEEN_FIST, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_GRAY, .speciesName = _("Urshifu"), - .cryId = CRY_URSHIFU_RAPID_STRIKE_STYLE, + .cryId = CRY_URSHIFU_RAPID_STRIKE, .natDexNum = NATIONAL_DEX_URSHIFU, .categoryName = _("Wushu"), .height = 260, @@ -7012,26 +7012,26 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 1, .trainerScale = 326, .trainerOffset = 4, - .frontPic = gMonFrontPic_UrshifuRapidStrikeStyleGigantamax, + .frontPic = gMonFrontPic_UrshifuRapidStrikeGmax, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, - .frontAnimFrames = sAnims_UrshifuRapidStrikeStyleGigantamax, + .frontAnimFrames = sAnims_UrshifuRapidStrikeGmax, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_UrshifuRapidStrikeStyleGigantamax, + .backPic = gMonBackPic_UrshifuRapidStrikeGmax, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_UrshifuRapidStrikeStyleGigantamax, - .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeStyleGigantamax, - .iconSprite = gMonIcon_UrshifuRapidStrikeStyleGigantamax, + .palette = gMonPalette_UrshifuRapidStrikeGmax, + .shinyPalette = gMonShinyPalette_UrshifuRapidStrikeGmax, + .iconSprite = gMonIcon_UrshifuRapidStrikeGmax, .iconPalIndex = 0, SHADOW(2, 13, SHADOW_SIZE_M) FOOTPRINT(Urshifu) .isLegendary = TRUE, .isGigantamax = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sUrshifuRapidStrikeStyleLevelUpLearnset, - .teachableLearnset = sUrshifuRapidStrikeStyleTeachableLearnset, + .levelUpLearnset = sUrshifuRapidStrikeLevelUpLearnset, + .teachableLearnset = sUrshifuRapidStrikeTeachableLearnset, .formSpeciesIdTable = sUrshifuFormSpeciesIdTable, }, #endif //P_GIGANTAMAX_FORMS @@ -7509,7 +7509,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_AS_ONE_ICE_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Calyrex"), - .cryId = CRY_CALYREX_ICE_RIDER, + .cryId = CRY_CALYREX_ICE, .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, @@ -7523,35 +7523,35 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CalyrexIceRider, + .frontPic = gMonFrontPic_CalyrexIce, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CalyrexIceRider, + .backPic = gMonBackPic_CalyrexIce, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CalyrexIceRider, - .shinyPalette = gMonShinyPalette_CalyrexIceRider, - .iconSprite = gMonIcon_CalyrexIceRider, + .palette = gMonPalette_CalyrexIce, + .shinyPalette = gMonShinyPalette_CalyrexIce, + .iconSprite = gMonIcon_CalyrexIce, .iconPalIndex = 0, SHADOW(-5, 11, SHADOW_SIZE_L) FOOTPRINT(Calyrex) OVERWORLD( - sPicTable_CalyrexIceRider, + sPicTable_CalyrexIce, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_CalyrexIceRider, - gShinyOverworldPalette_CalyrexIceRider + gOverworldPalette_CalyrexIce, + gShinyOverworldPalette_CalyrexIce ) .isLegendary = TRUE, .cannotBeTraded = TRUE, .isFrontierBanned = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sCalyrexIceRiderLevelUpLearnset, - .teachableLearnset = sCalyrexIceRiderTeachableLearnset, + .levelUpLearnset = sCalyrexIceLevelUpLearnset, + .teachableLearnset = sCalyrexIceTeachableLearnset, .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, @@ -7575,7 +7575,7 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .abilities = { ABILITY_AS_ONE_SHADOW_RIDER, ABILITY_NONE, ABILITY_NONE }, .bodyColor = BODY_COLOR_BLACK, .speciesName = _("Calyrex"), - .cryId = CRY_CALYREX_SHADOW_RIDER, + .cryId = CRY_CALYREX_SHADOW, .natDexNum = NATIONAL_DEX_CALYREX, .categoryName = _("High King"), .height = 24, @@ -7589,35 +7589,35 @@ const struct SpeciesInfo gSpeciesInfoGen8[] = .pokemonOffset = 7, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_CalyrexShadowRider, + .frontPic = gMonFrontPic_CalyrexShadow, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 0, .frontAnimFrames = sAnims_Calyrex, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_CalyrexShadowRider, + .backPic = gMonBackPic_CalyrexShadow, .backPicSize = MON_COORDS_SIZE(64, 56), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_CalyrexShadowRider, - .shinyPalette = gMonShinyPalette_CalyrexShadowRider, - .iconSprite = gMonIcon_CalyrexShadowRider, + .palette = gMonPalette_CalyrexShadow, + .shinyPalette = gMonShinyPalette_CalyrexShadow, + .iconSprite = gMonIcon_CalyrexShadow, .iconPalIndex = 0, SHADOW(-5, 12, SHADOW_SIZE_L) FOOTPRINT(Calyrex) OVERWORLD( - sPicTable_CalyrexShadowRider, + sPicTable_CalyrexShadow, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_CalyrexShadowRider, - gShinyOverworldPalette_CalyrexShadowRider + gOverworldPalette_CalyrexShadow, + gShinyOverworldPalette_CalyrexShadow ) .isLegendary = TRUE, .cannotBeTraded = TRUE, .isFrontierBanned = TRUE, .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, - .levelUpLearnset = sCalyrexShadowRiderLevelUpLearnset, - .teachableLearnset = sCalyrexShadowRiderTeachableLearnset, + .levelUpLearnset = sCalyrexShadowLevelUpLearnset, + .teachableLearnset = sCalyrexShadowTeachableLearnset, .formSpeciesIdTable = sCalyrexFormSpeciesIdTable, }, #endif //P_FUSION_FORMS diff --git a/src/data/pokemon/species_info/gen_9_families.h b/src/data/pokemon/species_info/gen_9_families.h index e0346d63a9..d617d36f1b 100644 --- a/src/data/pokemon/species_info/gen_9_families.h +++ b/src/data/pokemon/species_info/gen_9_families.h @@ -665,30 +665,30 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_OinkologneMale, + .frontPic = gMonFrontPic_OinkologneM, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_OinkologneMale, + .backPic = gMonBackPic_OinkologneM, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 8, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_OinkologneMale, - .shinyPalette = gMonShinyPalette_OinkologneMale, - .iconSprite = gMonIcon_OinkologneMale, + .palette = gMonPalette_OinkologneM, + .shinyPalette = gMonShinyPalette_OinkologneM, + .iconSprite = gMonIcon_OinkologneM, .iconPalIndex = 1, SHADOW(-2, 6, SHADOW_SIZE_M) FOOTPRINT(Oinkologne) OVERWORLD( - sPicTable_OinkologneMale, + sPicTable_OinkologneM, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_OinkologneMale, - gShinyOverworldPalette_OinkologneMale + gOverworldPalette_OinkologneM, + gShinyOverworldPalette_OinkologneM ) - .levelUpLearnset = sOinkologneMaleLevelUpLearnset, + .levelUpLearnset = sOinkologneMLevelUpLearnset, .teachableLearnset = sOinkologneTeachableLearnset, .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, @@ -727,30 +727,30 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_OinkologneFemale, + .frontPic = gMonFrontPic_OinkologneF, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 6, .frontAnimFrames = sAnims_Oinkologne, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, - .backPic = gMonBackPic_OinkologneFemale, + .backPic = gMonBackPic_OinkologneF, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 7, //.backAnimId = BACK_ANIM_NONE, - .palette = gMonPalette_OinkologneFemale, - .shinyPalette = gMonShinyPalette_OinkologneFemale, - .iconSprite = gMonIcon_OinkologneFemale, + .palette = gMonPalette_OinkologneF, + .shinyPalette = gMonShinyPalette_OinkologneF, + .iconSprite = gMonIcon_OinkologneF, .iconPalIndex = 0, SHADOW(3, 7, SHADOW_SIZE_M) FOOTPRINT(Oinkologne) OVERWORLD( - sPicTable_OinkologneFemale, + sPicTable_OinkologneF, SIZE_32x32, SHADOW_SIZE_M, TRACKS_FOOT, - gOverworldPalette_OinkologneFemale, - gShinyOverworldPalette_OinkologneFemale + gOverworldPalette_OinkologneF, + gShinyOverworldPalette_OinkologneF ) - .levelUpLearnset = sOinkologneFemaleLevelUpLearnset, + .levelUpLearnset = sOinkologneFLevelUpLearnset, .teachableLearnset = sOinkologneTeachableLearnset, .formSpeciesIdTable = sOinkologneFormSpeciesIdTable, }, @@ -1035,8 +1035,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 3, .weight = 25, .description = COMPOUND_STRING( - "The pads of its paws are\n" - "electricity-discharging organs. Pawmi fires\n" + "The pads of its paws are electricity-\n" + "discharging organs. Pawmi fires\n" "electricity from its forepaws while\n" "standing unsteadily on its hind legs."), .pokemonScale = 356, @@ -1281,7 +1281,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Maushold"), - .cryId = CRY_MAUSHOLD_FAMILY_OF_THREE, + .cryId = CRY_MAUSHOLD_THREE, .natDexNum = NATIONAL_DEX_MAUSHOLD, .categoryName = _("Family"), .height = 3, @@ -1295,28 +1295,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MausholdFamilyOfThree, + .frontPic = gMonFrontPic_MausholdThree, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Maushold, /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ - .backPic = gMonBackPic_MausholdFamilyOfThree, + .backPic = gMonBackPic_MausholdThree, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, /*.backAnimId = BACK_ANIM_NONE,*/ .palette = gMonPalette_Maushold, .shinyPalette = gMonShinyPalette_Maushold, - .iconSprite = gMonIcon_MausholdFamilyOfThree, + .iconSprite = gMonIcon_MausholdThree, .iconPalIndex = 1, SHADOW(4, -1, SHADOW_SIZE_L) - FOOTPRINT(MausholdFamilyOfThree) + FOOTPRINT(MausholdThree) OVERWORLD( - sPicTable_MausholdFamilyOfThree, + sPicTable_MausholdThree, SIZE_32x32, SHADOW_SIZE_S, TRACKS_FOOT, - gOverworldPalette_MausholdFamilyOfThree, - gShinyOverworldPalette_MausholdFamilyOfThree + gOverworldPalette_MausholdThree, + gShinyOverworldPalette_MausholdThree ) .levelUpLearnset = sMausholdLevelUpLearnset, .teachableLearnset = sMausholdTeachableLearnset, @@ -1342,7 +1342,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .abilities = { ABILITY_FRIEND_GUARD, ABILITY_CHEEK_POUCH, ABILITY_TECHNICIAN }, .bodyColor = BODY_COLOR_WHITE, .speciesName = _("Maushold"), - .cryId = CRY_MAUSHOLD_FAMILY_OF_FOUR, + .cryId = CRY_MAUSHOLD_FOUR, .natDexNum = NATIONAL_DEX_MAUSHOLD, .categoryName = _("Family"), .height = 3, @@ -1356,28 +1356,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, .trainerScale = 256, .trainerOffset = 0, - .frontPic = gMonFrontPic_MausholdFamilyOfFour, + .frontPic = gMonFrontPic_MausholdFour, .frontPicSize = MON_COORDS_SIZE(64, 64), .frontPicYOffset = 15, .frontAnimFrames = sAnims_Maushold, /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ - .backPic = gMonBackPic_MausholdFamilyOfFour, + .backPic = gMonBackPic_MausholdFour, .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 15, /*.backAnimId = BACK_ANIM_NONE,*/ .palette = gMonPalette_Maushold, .shinyPalette = gMonShinyPalette_Maushold, - .iconSprite = gMonIcon_MausholdFamilyOfFour, + .iconSprite = gMonIcon_MausholdFour, .iconPalIndex = 1, SHADOW(0, -1, SHADOW_SIZE_L) - FOOTPRINT(MausholdFamilyOfFour) + FOOTPRINT(MausholdFour) OVERWORLD( - sPicTable_MausholdFamilyOfFour, + sPicTable_MausholdFour, SIZE_32x32, SHADOW_SIZE_S, TRACKS_FOOT, - gOverworldPalette_MausholdFamilyOfFour, - gShinyOverworldPalette_MausholdFamilyOfFour + gOverworldPalette_MausholdFour, + gShinyOverworldPalette_MausholdFour ) .levelUpLearnset = sMausholdLevelUpLearnset, .teachableLearnset = sMausholdTeachableLearnset, @@ -1743,19 +1743,19 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, /*.backAnimId = BACK_ANIM_NONE,*/ - .palette = gMonPalette_SquawkabillyGreenPlumage, - .shinyPalette = gMonShinyPalette_SquawkabillyGreenPlumage, - .iconSprite = gMonIcon_SquawkabillyGreenPlumage, + .palette = gMonPalette_SquawkabillyGreen, + .shinyPalette = gMonShinyPalette_SquawkabillyGreen, + .iconSprite = gMonIcon_SquawkabillyGreen, .iconPalIndex = 1, SHADOW(-6, 9, SHADOW_SIZE_M) FOOTPRINT(Squawkabilly) OVERWORLD( - sPicTable_SquawkabillyGreenPlumage, + sPicTable_SquawkabillyGreen, SIZE_32x32, SHADOW_SIZE_S, TRACKS_NONE, - gOverworldPalette_SquawkabillyGreenPlumage, - gShinyOverworldPalette_SquawkabillyGreenPlumage + gOverworldPalette_SquawkabillyGreen, + gShinyOverworldPalette_SquawkabillyGreen ) .levelUpLearnset = sSquawkabillyLevelUpLearnset, .teachableLearnset = sSquawkabillyTeachableLearnset, @@ -1806,19 +1806,19 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, /*.backAnimId = BACK_ANIM_NONE,*/ - .palette = gMonPalette_SquawkabillyBluePlumage, - .shinyPalette = gMonShinyPalette_SquawkabillyBluePlumage, - .iconSprite = gMonIcon_SquawkabillyBluePlumage, + .palette = gMonPalette_SquawkabillyBlue, + .shinyPalette = gMonShinyPalette_SquawkabillyBlue, + .iconSprite = gMonIcon_SquawkabillyBlue, .iconPalIndex = 0, SHADOW(-6, 9, SHADOW_SIZE_M) FOOTPRINT(Squawkabilly) OVERWORLD( - sPicTable_SquawkabillyBluePlumage, + sPicTable_SquawkabillyBlue, SIZE_32x32, SHADOW_SIZE_S, TRACKS_NONE, - gOverworldPalette_SquawkabillyBluePlumage, - gShinyOverworldPalette_SquawkabillyBluePlumage + gOverworldPalette_SquawkabillyBlue, + gShinyOverworldPalette_SquawkabillyBlue ) .levelUpLearnset = sSquawkabillyLevelUpLearnset, .teachableLearnset = sSquawkabillyTeachableLearnset, @@ -1869,19 +1869,19 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, /*.backAnimId = BACK_ANIM_NONE,*/ - .palette = gMonPalette_SquawkabillyYellowPlumage, - .shinyPalette = gMonShinyPalette_SquawkabillyYellowPlumage, - .iconSprite = gMonIcon_SquawkabillyYellowPlumage, + .palette = gMonPalette_SquawkabillyYellow, + .shinyPalette = gMonShinyPalette_SquawkabillyYellow, + .iconSprite = gMonIcon_SquawkabillyYellow, .iconPalIndex = 1, SHADOW(-6, 9, SHADOW_SIZE_M) FOOTPRINT(Squawkabilly) OVERWORLD( - sPicTable_SquawkabillyYellowPlumage, + sPicTable_SquawkabillyYellow, SIZE_32x32, SHADOW_SIZE_S, TRACKS_NONE, - gOverworldPalette_SquawkabillyYellowPlumage, - gShinyOverworldPalette_SquawkabillyYellowPlumage + gOverworldPalette_SquawkabillyYellow, + gShinyOverworldPalette_SquawkabillyYellow ) .levelUpLearnset = sSquawkabillyLevelUpLearnset, .teachableLearnset = sSquawkabillyTeachableLearnset, @@ -1932,19 +1932,19 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .backPicSize = MON_COORDS_SIZE(64, 64), .backPicYOffset = 4, /*.backAnimId = BACK_ANIM_NONE,*/ - .palette = gMonPalette_SquawkabillyWhitePlumage, - .shinyPalette = gMonShinyPalette_SquawkabillyWhitePlumage, - .iconSprite = gMonIcon_SquawkabillyWhitePlumage, + .palette = gMonPalette_SquawkabillyWhite, + .shinyPalette = gMonShinyPalette_SquawkabillyWhite, + .iconSprite = gMonIcon_SquawkabillyWhite, .iconPalIndex = 0, SHADOW(-6, 9, SHADOW_SIZE_M) FOOTPRINT(Squawkabilly) OVERWORLD( - sPicTable_SquawkabillyWhitePlumage, + sPicTable_SquawkabillyWhite, SIZE_32x32, SHADOW_SIZE_S, TRACKS_NONE, - gOverworldPalette_SquawkabillyWhitePlumage, - gShinyOverworldPalette_SquawkabillyWhitePlumage + gOverworldPalette_SquawkabillyWhite, + gShinyOverworldPalette_SquawkabillyWhite ) .levelUpLearnset = sSquawkabillyLevelUpLearnset, .teachableLearnset = sSquawkabillyTeachableLearnset, @@ -2619,7 +2619,7 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Maschiff, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 8, + .frontPicYOffset = 11, .frontAnimFrames = sAnims_Maschiff, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Maschiff, @@ -4002,8 +4002,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .height = 13, .weight = 602, .description = COMPOUND_STRING( - "This Pokémon changes its\n" - "appearance if it hears its allies calling for\n" + "This Pokémon changes its appearance\n" + "if it hears its allies calling for\n" "help. Palafin will never show\n" "anybody its moment of transformation."), .pokemonScale = 356, @@ -4066,8 +4066,8 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .weight = 974, .description = COMPOUND_STRING( "This Pokémon's ancient genes have\n" - "awakened. It is now so\n" - "extraordinarily strong that it can easily lift a\n" + "awakened. It is now so extraordinarily\n" + "strong that it can easily lift a\n" "cruise ship with one fin."), .pokemonScale = 356, .pokemonOffset = 17, @@ -7341,12 +7341,12 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .trainerOffset = 0, .frontPic = gMonFrontPic_Fezandipiti, .frontPicSize = MON_COORDS_SIZE(64, 64), - .frontPicYOffset = 2, + .frontPicYOffset = 1, .frontAnimFrames = sAnims_Fezandipiti, //.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE, .backPic = gMonBackPic_Fezandipiti, .backPicSize = MON_COORDS_SIZE(64, 64), - .backPicYOffset = 4, + .backPicYOffset = 0, //.backAnimId = BACK_ANIM_NONE, .palette = gMonPalette_Fezandipiti, .shinyPalette = gMonShinyPalette_Fezandipiti, @@ -7401,28 +7401,28 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .pokemonOffset = 17, \ .trainerScale = 256, \ .trainerOffset = 0, \ - .frontPic = gMonFrontPic_Ogerpon##Form1##Form2, \ + .frontPic = gMonFrontPic_Ogerpon##Form2, \ .frontPicSize = MON_COORDS_SIZE(64, 64), \ .frontPicYOffset = 0, \ .frontAnimFrames = sAnims_Ogerpon, \ /*.frontAnimId = ANIM_V_SQUISH_AND_BOUNCE,*/ \ - .backPic = gMonBackPic_Ogerpon##Form1##Form2, \ + .backPic = gMonBackPic_Ogerpon##Form2, \ .backPicSize = MON_COORDS_SIZE(64, 64), \ .backPicYOffset = 0, \ /*.backAnimId = BACK_ANIM_NONE,*/ \ - .palette = gMonPalette_Ogerpon##Form1##Form2, \ - .shinyPalette = gMonShinyPalette_Ogerpon##Form1##Form2, \ - .iconSprite = gMonIcon_Ogerpon##Form1##Mask, \ + .palette = gMonPalette_Ogerpon##Form2, \ + .shinyPalette = gMonShinyPalette_Ogerpon##Form2, \ + .iconSprite = gMonIcon_Ogerpon##Form1, \ .iconPalIndex = iconpalette, \ SHADOW(7, 13, SHADOW_SIZE_L) \ FOOTPRINT(Ogerpon) \ OVERWORLD( \ - sPicTable_Ogerpon##Form1##Form2, \ + sPicTable_Ogerpon##Form2, \ SIZE_32x32, \ SHADOW_SIZE_M, \ TRACKS_FOOT, \ - gOverworldPalette_Ogerpon##Form1##Form2, \ - gShinyOverworldPalette_Ogerpon##Form1##Form2 \ + gOverworldPalette_Ogerpon##Form2, \ + gShinyOverworldPalette_Ogerpon##Form2 \ ) \ .levelUpLearnset = sOgerponLevelUpLearnset, \ .teachableLearnset = sOgerponTeachableLearnset, \ @@ -7433,15 +7433,15 @@ const struct SpeciesInfo gSpeciesInfoGen9[] = .perfectIVCount = LEGENDARY_PERFECT_IV_COUNT, \ } - [SPECIES_OGERPON_TEAL] = OGERPON_SPECIES_INFO(Teal, Mask, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1, FALSE), - [SPECIES_OGERPON_WELLSPRING] = OGERPON_SPECIES_INFO(Wellspring, Mask, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, 0, FALSE), - [SPECIES_OGERPON_HEARTHFLAME] = OGERPON_SPECIES_INFO(Hearthflame, Mask, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, 0, FALSE), - [SPECIES_OGERPON_CORNERSTONE] = OGERPON_SPECIES_INFO(Cornerstone, Mask, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, 0, FALSE), + [SPECIES_OGERPON_TEAL] = OGERPON_SPECIES_INFO(Teal, Teal, TYPE_GRASS, ABILITY_DEFIANT, BODY_COLOR_GREEN, 1, FALSE), + [SPECIES_OGERPON_WELLSPRING] = OGERPON_SPECIES_INFO(Wellspring, Wellspring, TYPE_WATER, ABILITY_WATER_ABSORB, BODY_COLOR_BLUE, 0, FALSE), + [SPECIES_OGERPON_HEARTHFLAME] = OGERPON_SPECIES_INFO(Hearthflame, Hearthflame, TYPE_FIRE, ABILITY_MOLD_BREAKER, BODY_COLOR_RED, 0, FALSE), + [SPECIES_OGERPON_CORNERSTONE] = OGERPON_SPECIES_INFO(Cornerstone, Cornerstone, TYPE_ROCK, ABILITY_STURDY, BODY_COLOR_GRAY, 0, FALSE), #if P_TERA_FORMS - [SPECIES_OGERPON_TEAL_TERA] = OGERPON_SPECIES_INFO(Teal, MaskTera, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL_MASK, BODY_COLOR_GREEN, 1, TRUE), - [SPECIES_OGERPON_WELLSPRING_TERA] = OGERPON_SPECIES_INFO(Wellspring, MaskTera, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING_MASK, BODY_COLOR_BLUE, 0, TRUE), - [SPECIES_OGERPON_HEARTHFLAME_TERA] = OGERPON_SPECIES_INFO(Hearthflame, MaskTera, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME_MASK, BODY_COLOR_RED, 0, TRUE), - [SPECIES_OGERPON_CORNERSTONE_TERA] = OGERPON_SPECIES_INFO(Cornerstone, MaskTera, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE_MASK, BODY_COLOR_GRAY, 0, TRUE), + [SPECIES_OGERPON_TEAL_TERA] = OGERPON_SPECIES_INFO(Teal, TealTera, TYPE_GRASS, ABILITY_EMBODY_ASPECT_TEAL_MASK, BODY_COLOR_GREEN, 1, TRUE), + [SPECIES_OGERPON_WELLSPRING_TERA] = OGERPON_SPECIES_INFO(Wellspring, WellspringTera, TYPE_WATER, ABILITY_EMBODY_ASPECT_WELLSPRING_MASK, BODY_COLOR_BLUE, 0, TRUE), + [SPECIES_OGERPON_HEARTHFLAME_TERA] = OGERPON_SPECIES_INFO(Hearthflame, HearthflameTera, TYPE_FIRE, ABILITY_EMBODY_ASPECT_HEARTHFLAME_MASK, BODY_COLOR_RED, 0, TRUE), + [SPECIES_OGERPON_CORNERSTONE_TERA] = OGERPON_SPECIES_INFO(Cornerstone, CornerstoneTera, TYPE_ROCK, ABILITY_EMBODY_ASPECT_CORNERSTONE_MASK, BODY_COLOR_GRAY, 0, TRUE), #endif //P_TERA_FORMS #endif //P_FAMILY_OGERPON diff --git a/src/data/pokemon/species_info/shared_dex_text.h b/src/data/pokemon/species_info/shared_dex_text.h index 0c591bd811..370b004097 100644 --- a/src/data/pokemon/species_info/shared_dex_text.h +++ b/src/data/pokemon/species_info/shared_dex_text.h @@ -6,7 +6,7 @@ const u8 gFallbackPokedexText[] = _( "at this time."); // Gen 1 families -const u8 gRaticateAlolanPokedexText[] = _( +const u8 gRaticateAlolaPokedexText[] = _( "It forms a group of Rattata, which it \n" "assumes command of. Each group\n" "has its own territory, and disputes\n" @@ -24,7 +24,7 @@ const u8 gPikachuPokedexText[] = _( "energy in a burst, the electric power is\n" "equal to a lightning bolt."); -const u8 gMarowakAlolanPokedexText[] = _( +const u8 gMarowakAlolaPokedexText[] = _( "The cursed flames that light up the bone\n" "carried by this Pokémon are said\n" "to cause both mental and physical\n" @@ -73,9 +73,9 @@ const u8 gGenesectPokedexText[] = _( // Gen 6 families const u8 gGreninjaPokedexText[] = _( "It appears and vanishes with a ninja's\n" - "grace. It toys with its enemies using swift\n" - "movements, while slicing them with throwing\n" - "stars made of compressed water."); + "grace. It toys with its enemies using\n" + "swift movements, while slicing them with\n" + "throwing stars made of compressed water."); const u8 gScatterbugPokedexText[] = _( "When under attack from bird Pokémon,\n" @@ -207,7 +207,7 @@ const u8 gKommoOPokedexText[] = _( // Gen 8 families const u8 gAlcremieVanillaCreamPokedexText[] = _( "If Alcremie is content, the secreted cream\n" - "from its hands becomes sweeter and richer." + "from its hands becomes sweeter and richer.\n" "When it trusts a Trainer, it will treat\n" "them to berries it's decorated with cream."); @@ -279,8 +279,8 @@ const u8 gOgerponWellspringMaskPokedexText[] = _( const u8 gOgerponHearthflameMaskPokedexText[] = _( "This form is the most aggressive,\n" - "bombarding enemies with the\n" - "intensity of flames blazing within a hearth."); + "bombarding enemies with the intensity\n" + "of flames blazing within a hearth."); const u8 gOgerponCornerstoneMaskPokedexText[] = _( "In this form, it draws on the power\n" diff --git a/src/data/pokemon/teachable_learnsets.h b/src/data/pokemon/teachable_learnsets.h index a8f6605588..46354db5a0 100644 --- a/src/data/pokemon/teachable_learnsets.h +++ b/src/data/pokemon/teachable_learnsets.h @@ -728,7 +728,7 @@ static const u16 sRaticateTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sRattataAlolanTeachableLearnset[] = { +static const u16 sRattataAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, @@ -757,7 +757,7 @@ static const u16 sRattataAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sRaticateAlolanTeachableLearnset[] = { +static const u16 sRaticateAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BULK_UP, @@ -1031,7 +1031,7 @@ static const u16 sRaichuTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sRaichuAlolanTeachableLearnset[] = { +static const u16 sRaichuAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -1155,7 +1155,7 @@ static const u16 sSandslashTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sSandshrewAlolanTeachableLearnset[] = { +static const u16 sSandshrewAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, @@ -1194,7 +1194,7 @@ static const u16 sSandshrewAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sSandslashAlolanTeachableLearnset[] = { +static const u16 sSandslashAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, @@ -1731,7 +1731,7 @@ static const u16 sNinetalesTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sVulpixAlolanTeachableLearnset[] = { +static const u16 sVulpixAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, @@ -1759,7 +1759,7 @@ static const u16 sVulpixAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sNinetalesAlolanTeachableLearnset[] = { +static const u16 sNinetalesAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -2339,7 +2339,7 @@ static const u16 sDugtrioTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sDiglettAlolanTeachableLearnset[] = { +static const u16 sDiglettAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, @@ -2365,7 +2365,7 @@ static const u16 sDiglettAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sDugtrioAlolanTeachableLearnset[] = { +static const u16 sDugtrioAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, @@ -2477,7 +2477,7 @@ static const u16 sPersianTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sMeowthAlolanTeachableLearnset[] = { +static const u16 sMeowthAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, @@ -2512,7 +2512,7 @@ static const u16 sMeowthAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sPersianAlolanTeachableLearnset[] = { +static const u16 sPersianAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_DIG, @@ -2551,7 +2551,7 @@ static const u16 sPersianAlolanTeachableLearnset[] = { #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -static const u16 sMeowthGalarianTeachableLearnset[] = { +static const u16 sMeowthGalarTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -2910,7 +2910,7 @@ static const u16 sArcanineTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sGrowlitheHisuianTeachableLearnset[] = { +static const u16 sGrowlitheHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DIG, MOVE_FACADE, @@ -2934,7 +2934,7 @@ static const u16 sGrowlitheHisuianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sArcanineHisuianTeachableLearnset[] = { +static const u16 sArcanineHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_DIG, MOVE_FACADE, @@ -3677,7 +3677,7 @@ static const u16 sGolemTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sGeodudeAlolanTeachableLearnset[] = { +static const u16 sGeodudeAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, @@ -3715,7 +3715,7 @@ static const u16 sGeodudeAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sGravelerAlolanTeachableLearnset[] = { +static const u16 sGravelerAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, @@ -3755,7 +3755,7 @@ static const u16 sGravelerAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sGolemAlolanTeachableLearnset[] = { +static const u16 sGolemAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, @@ -3854,7 +3854,7 @@ static const u16 sRapidashTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sPonytaGalarianTeachableLearnset[] = { +static const u16 sPonytaGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, @@ -3873,7 +3873,7 @@ static const u16 sPonytaGalarianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sRapidashGalarianTeachableLearnset[] = { +static const u16 sRapidashGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, @@ -4064,7 +4064,7 @@ static const u16 sSlowkingTeachableLearnset[] = { #endif //P_GEN_2_CROSS_EVOS #if P_GALARIAN_FORMS -static const u16 sSlowpokeGalarianTeachableLearnset[] = { +static const u16 sSlowpokeGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -4100,7 +4100,7 @@ static const u16 sSlowpokeGalarianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sSlowbroGalarianTeachableLearnset[] = { +static const u16 sSlowbroGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -4147,7 +4147,7 @@ static const u16 sSlowbroGalarianTeachableLearnset[] = { }; #if P_GEN_2_CROSS_EVOS -static const u16 sSlowkingGalarianTeachableLearnset[] = { +static const u16 sSlowkingGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -4320,7 +4320,7 @@ static const u16 sFarfetchdTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sFarfetchdGalarianTeachableLearnset[] = { +static const u16 sFarfetchdGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_FACADE, @@ -4567,7 +4567,7 @@ static const u16 sMukTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sGrimerAlolanTeachableLearnset[] = { +static const u16 sGrimerAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, @@ -4608,7 +4608,7 @@ static const u16 sGrimerAlolanTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sMukAlolanTeachableLearnset[] = { +static const u16 sMukAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_DIG, @@ -5128,7 +5128,7 @@ static const u16 sElectrodeTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sVoltorbHisuianTeachableLearnset[] = { +static const u16 sVoltorbHisuiTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, @@ -5151,7 +5151,7 @@ static const u16 sVoltorbHisuianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sElectrodeHisuianTeachableLearnset[] = { +static const u16 sElectrodeHisuiTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_FACADE, MOVE_GIGA_DRAIN, @@ -5247,7 +5247,7 @@ static const u16 sExeggutorTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sExeggutorAlolanTeachableLearnset[] = { +static const u16 sExeggutorAlolaTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BRICK_BREAK, MOVE_BULLET_SEED, @@ -5378,7 +5378,7 @@ static const u16 sMarowakTeachableLearnset[] = { }; #if P_ALOLAN_FORMS -static const u16 sMarowakAlolanTeachableLearnset[] = { +static const u16 sMarowakAlolaTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BLIZZARD, @@ -5754,7 +5754,7 @@ static const u16 sWeezingTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sWeezingGalarianTeachableLearnset[] = { +static const u16 sWeezingGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_FACADE, MOVE_FIRE_BLAST, @@ -6548,7 +6548,7 @@ static const u16 sMrMimeTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sMrMimeGalarianTeachableLearnset[] = { +static const u16 sMrMimeGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -7148,7 +7148,7 @@ static const u16 sTaurosTeachableLearnset[] = { }; #if P_PALDEAN_FORMS -static const u16 sTaurosPaldeanCombatBreedTeachableLearnset[] = { +static const u16 sTaurosPaldeaCombatTeachableLearnset[] = { MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, @@ -7171,7 +7171,7 @@ static const u16 sTaurosPaldeanCombatBreedTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sTaurosPaldeanBlazeBreedTeachableLearnset[] = { +static const u16 sTaurosPaldeaBlazeTeachableLearnset[] = { MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, @@ -7196,7 +7196,7 @@ static const u16 sTaurosPaldeanBlazeBreedTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sTaurosPaldeanAquaBreedTeachableLearnset[] = { +static const u16 sTaurosPaldeaAquaTeachableLearnset[] = { MOVE_BULK_UP, MOVE_DIG, MOVE_EARTHQUAKE, @@ -8075,7 +8075,7 @@ static const u16 sArticunoTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sArticunoGalarianTeachableLearnset[] = { +static const u16 sArticunoGalarTeachableLearnset[] = { MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, MOVE_FACADE, @@ -8136,7 +8136,7 @@ static const u16 sZapdosTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sZapdosGalarianTeachableLearnset[] = { +static const u16 sZapdosGalarTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -8197,7 +8197,7 @@ static const u16 sMoltresTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sMoltresGalarianTeachableLearnset[] = { +static const u16 sMoltresGalarTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_FACADE, MOVE_FLY, @@ -8643,7 +8643,7 @@ static const u16 sTyphlosionTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sTyphlosionHisuianTeachableLearnset[] = { +static const u16 sTyphlosionHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -10091,7 +10091,7 @@ static const u16 sQuagsireTeachableLearnset[] = { }; #if P_PALDEAN_FORMS -static const u16 sWooperPaldeanTeachableLearnset[] = { +static const u16 sWooperPaldeaTeachableLearnset[] = { MOVE_DIG, MOVE_EARTHQUAKE, MOVE_FACADE, @@ -10767,7 +10767,7 @@ static const u16 sQwilfishTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sQwilfishHisuianTeachableLearnset[] = { +static const u16 sQwilfishHisuiTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_FACADE, MOVE_ICE_BEAM, @@ -10990,7 +10990,7 @@ static const u16 sWeavileTeachableLearnset[] = { #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -static const u16 sSneaselHisuianTeachableLearnset[] = { +static const u16 sSneaselHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -11434,7 +11434,7 @@ static const u16 sCorsolaTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sCorsolaGalarianTeachableLearnset[] = { +static const u16 sCorsolaGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_CALM_MIND, @@ -12904,7 +12904,7 @@ static const u16 sLinooneTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sZigzagoonGalarianTeachableLearnset[] = { +static const u16 sZigzagoonGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, @@ -12933,7 +12933,7 @@ static const u16 sZigzagoonGalarianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sLinooneGalarianTeachableLearnset[] = { +static const u16 sLinooneGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_DIG, @@ -18932,7 +18932,7 @@ static const u16 sWormadamPlantCloakTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sWormadamSandyCloakTeachableLearnset[] = { +static const u16 sWormadamSandyTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -18965,7 +18965,7 @@ static const u16 sWormadamSandyCloakTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sWormadamTrashCloakTeachableLearnset[] = { +static const u16 sWormadamTrashTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, MOVE_DOUBLE_TEAM, @@ -21335,7 +21335,7 @@ static const u16 sSamurottTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sSamurottHisuianTeachableLearnset[] = { +static const u16 sSamurottHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -22725,7 +22725,7 @@ static const u16 sLilligantTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sLilligantHisuianTeachableLearnset[] = { +static const u16 sLilligantHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULLET_SEED, @@ -23011,7 +23011,7 @@ static const u16 sDarmanitanTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sDarumakaGalarianTeachableLearnset[] = { +static const u16 sDarumakaGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -23040,7 +23040,7 @@ static const u16 sDarumakaGalarianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sDarmanitanGalarianTeachableLearnset[] = { +static const u16 sDarmanitanGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_BLIZZARD, MOVE_BRICK_BREAK, @@ -23333,7 +23333,7 @@ static const u16 sCofagrigusTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sYamaskGalarianTeachableLearnset[] = { +static const u16 sYamaskGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_EARTHQUAKE, @@ -23631,7 +23631,7 @@ static const u16 sZoroarkTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sZoruaHisuianTeachableLearnset[] = { +static const u16 sZoruaHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_CALM_MIND, MOVE_DIG, @@ -23655,7 +23655,7 @@ static const u16 sZoruaHisuianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sZoroarkHisuianTeachableLearnset[] = { +static const u16 sZoroarkHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_CALM_MIND, @@ -25087,7 +25087,7 @@ static const u16 sStunfiskTeachableLearnset[] = { }; #if P_GALARIAN_FORMS -static const u16 sStunfiskGalarianTeachableLearnset[] = { +static const u16 sStunfiskGalarTeachableLearnset[] = { MOVE_ATTRACT, MOVE_DIG, MOVE_EARTHQUAKE, @@ -25492,7 +25492,7 @@ static const u16 sBraviaryTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sBraviaryHisuianTeachableLearnset[] = { +static const u16 sBraviaryHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BULK_UP, MOVE_CALM_MIND, @@ -26918,7 +26918,7 @@ static const u16 sFloetteTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sFloetteEternalFlowerTeachableLearnset[] = { +static const u16 sFloetteEternalTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_DOUBLE_TEAM, @@ -27188,7 +27188,7 @@ static const u16 sEspurrTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sMeowsticMaleTeachableLearnset[] = { +static const u16 sMeowsticMTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, @@ -27224,7 +27224,7 @@ static const u16 sMeowsticMaleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sMeowsticFemaleTeachableLearnset[] = { +static const u16 sMeowsticFTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_CUT, @@ -28137,7 +28137,7 @@ static const u16 sGoodraTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sSliggooHisuianTeachableLearnset[] = { +static const u16 sSliggooHisuiTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_FACADE, MOVE_ICE_BEAM, @@ -28160,7 +28160,7 @@ static const u16 sSliggooHisuianTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sGoodraHisuianTeachableLearnset[] = { +static const u16 sGoodraHisuiTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DRAGON_CLAW, MOVE_EARTHQUAKE, @@ -28422,7 +28422,7 @@ static const u16 sAvaluggTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sAvaluggHisuianTeachableLearnset[] = { +static const u16 sAvaluggHisuiTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_DIG, MOVE_EARTHQUAKE, @@ -28846,7 +28846,7 @@ static const u16 sDecidueyeTeachableLearnset[] = { }; #if P_HISUIAN_FORMS -static const u16 sDecidueyeHisuianTeachableLearnset[] = { +static const u16 sDecidueyeHisuiTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_BRICK_BREAK, MOVE_BULK_UP, @@ -32722,7 +32722,7 @@ static const u16 sEiscueTeachableLearnset[] = { #endif //P_FAMILY_EISCUE #if P_FAMILY_INDEEDEE -static const u16 sIndeedeeMaleTeachableLearnset[] = { +static const u16 sIndeedeeMTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, @@ -32741,7 +32741,7 @@ static const u16 sIndeedeeMaleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sIndeedeeFemaleTeachableLearnset[] = { +static const u16 sIndeedeeFTeachableLearnset[] = { MOVE_ATTRACT, MOVE_CALM_MIND, MOVE_FACADE, @@ -33180,7 +33180,7 @@ static const u16 sKubfuTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { +static const u16 sUrshifuSingleStrikeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -33212,7 +33212,7 @@ static const u16 sUrshifuSingleStrikeStyleTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sUrshifuRapidStrikeStyleTeachableLearnset[] = { +static const u16 sUrshifuRapidStrikeTeachableLearnset[] = { MOVE_AERIAL_ACE, MOVE_ATTRACT, MOVE_BRICK_BREAK, @@ -33394,7 +33394,7 @@ static const u16 sCalyrexTeachableLearnset[] = { }; #if P_FUSION_FORMS -static const u16 sCalyrexIceRiderTeachableLearnset[] = { +static const u16 sCalyrexIceTeachableLearnset[] = { MOVE_BLIZZARD, MOVE_BULLET_SEED, MOVE_CALM_MIND, @@ -33428,7 +33428,7 @@ static const u16 sCalyrexIceRiderTeachableLearnset[] = { MOVE_UNAVAILABLE, }; -static const u16 sCalyrexShadowRiderTeachableLearnset[] = { +static const u16 sCalyrexShadowTeachableLearnset[] = { MOVE_BULLET_SEED, MOVE_CALM_MIND, MOVE_FACADE, diff --git a/src/data/pokemon_graphics/front_pic_anims.h b/src/data/pokemon_graphics/front_pic_anims.h index d802521afe..deceeb0420 100644 --- a/src/data/pokemon_graphics/front_pic_anims.h +++ b/src/data/pokemon_graphics/front_pic_anims.h @@ -52,7 +52,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(VenusaurGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR @@ -89,7 +89,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardMegaY); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CharizardGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER @@ -125,7 +125,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(BlastoiseGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE @@ -169,7 +169,7 @@ static const union AnimCmd sAnim_Butterfree_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ButterfreeGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(ButterfreeGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE @@ -278,8 +278,8 @@ static const union AnimCmd sAnim_Raticate_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(RattataAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(RaticateAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(RattataAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(RaticateAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA @@ -361,18 +361,18 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPhD); PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuLibre); #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuOriginalCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuHoennCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuSinnohCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuUnovaCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuKalosCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuAlolaCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPartnerCap); -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuWorldCap); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuOriginal); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuHoenn); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuSinnoh); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuUnova); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuKalos); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuPartner); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuWorld); #endif //P_CAP_PIKACHU_FORMS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(PikachuGmax); #endif //P_GIGANTAMAX_FORMS static const union AnimCmd sAnim_Raichu_1[] = @@ -386,7 +386,7 @@ static const union AnimCmd sAnim_Raichu_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(RaichuAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(RaichuAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU @@ -412,8 +412,8 @@ static const union AnimCmd sAnim_Sandslash_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SandshrewAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(SandslashAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandshrewAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandslashAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW @@ -523,8 +523,8 @@ static const union AnimCmd sAnim_Ninetales_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(VulpixAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(NinetalesAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(VulpixAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(NinetalesAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_VULPIX @@ -782,8 +782,8 @@ static const union AnimCmd sAnim_Dugtrio_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(DiglettAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(DugtrioAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(DiglettAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(DugtrioAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT @@ -807,17 +807,17 @@ static const union AnimCmd sAnim_Persian_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(PersianAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(PersianAlola); #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(Perrserker); #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(MeowthGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MEOWTH @@ -892,8 +892,8 @@ static const union AnimCmd sAnim_Arcanine_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GrowlitheHisuian); -PLACEHOLDER_ANIM_SINGLE_FRAME(ArcanineHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(GrowlitheHisui); +PLACEHOLDER_ANIM_SINGLE_FRAME(ArcanineHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE @@ -1001,7 +1001,7 @@ static const union AnimCmd sAnim_Machamp_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MachampGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(MachampGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP @@ -1091,9 +1091,9 @@ static const union AnimCmd sAnim_Golem_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GeodudeAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(GravelerAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(GolemAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GeodudeAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(GravelerAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(GolemAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE @@ -1114,8 +1114,8 @@ static const union AnimCmd sAnim_Rapidash_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(PonytaGalarian); -PLACEHOLDER_ANIM_SINGLE_FRAME(RapidashGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(PonytaGalar); +PLACEHOLDER_ANIM_SINGLE_FRAME(RapidashGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA @@ -1150,10 +1150,10 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroMega); #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SlowpokeGalarian); -PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowpokeGalar); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowbroGalar); #if P_GEN_2_CROSS_EVOS -PLACEHOLDER_ANIM_SINGLE_FRAME(SlowkingGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SlowkingGalar); #endif //P_GEN_2_CROSS_EVOS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_SLOWPOKE @@ -1213,7 +1213,7 @@ static const union AnimCmd sAnim_Farfetchd_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(FarfetchdGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(FarfetchdGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(Sirfetchd); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_FARFETCHD @@ -1283,8 +1283,8 @@ static const union AnimCmd sAnim_Muk_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GrimerAlolan); -PLACEHOLDER_ANIM_SINGLE_FRAME(MukAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimerAlola); +PLACEHOLDER_ANIM_SINGLE_FRAME(MukAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER @@ -1344,7 +1344,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(GengarMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GengarGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(GengarGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY @@ -1418,7 +1418,7 @@ static const union AnimCmd sAnim_Kingler_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(KinglerGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(KinglerGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY @@ -1443,8 +1443,8 @@ static const union AnimCmd sAnim_Electrode_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(VoltorbHisuian); -PLACEHOLDER_ANIM_SINGLE_FRAME(ElectrodeHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(VoltorbHisui); +PLACEHOLDER_ANIM_SINGLE_FRAME(ElectrodeHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB @@ -1471,7 +1471,7 @@ static const union AnimCmd sAnim_Exeggutor_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_TWO_FRAMES(ExeggutorAlolan); +PLACEHOLDER_ANIM_TWO_FRAMES(ExeggutorAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE @@ -1499,7 +1499,7 @@ static const union AnimCmd sAnim_Marowak_1[] = }; #if P_ALOLAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MarowakAlolan); +PLACEHOLDER_ANIM_SINGLE_FRAME(MarowakAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_CUBONE @@ -1597,7 +1597,7 @@ static const union AnimCmd sAnim_Weezing_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(WeezingGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(WeezingGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING @@ -1809,7 +1809,7 @@ static const union AnimCmd sAnim_MrMime_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MrMimeGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MrMimeGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(MrRime); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MR_MIME @@ -1955,7 +1955,7 @@ static const union AnimCmd sAnim_Tauros_1[] = }; #if P_PALDEAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(TaurosPaldean); +PLACEHOLDER_ANIM_SINGLE_FRAME(TaurosPaldea); #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS @@ -1996,7 +1996,7 @@ static const union AnimCmd sAnim_Lapras_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(LaprasGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(LaprasGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS @@ -2020,7 +2020,7 @@ static const union AnimCmd sAnim_Eevee_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(EeveeGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(EeveeGmax); #endif //P_GIGANTAMAX_FORMS static const union AnimCmd sAnim_Vaporeon_1[] = @@ -2207,7 +2207,7 @@ static const union AnimCmd sAnim_Snorlax_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SnorlaxGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(SnorlaxGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX @@ -2222,7 +2222,7 @@ static const union AnimCmd sAnim_Articuno_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ArticunoGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ArticunoGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO @@ -2237,7 +2237,7 @@ static const union AnimCmd sAnim_Zapdos_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ZapdosGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZapdosGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS @@ -2280,7 +2280,7 @@ static const union AnimCmd sAnim_Moltres_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MoltresGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(MoltresGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES @@ -2387,7 +2387,7 @@ static const union AnimCmd sAnim_Typhlosion_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(TyphlosionHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(TyphlosionHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL @@ -2834,7 +2834,7 @@ static const union AnimCmd sAnim_Quagsire_1[] = }; #if P_PALDEAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(WooperPaldean); +PLACEHOLDER_ANIM_SINGLE_FRAME(WooperPaldea); PLACEHOLDER_ANIM_SINGLE_FRAME(Clodsire); #endif //P_PALDEAN_FORMS #endif //P_FAMILY_WOOPER @@ -3024,7 +3024,7 @@ static const union AnimCmd sAnim_Qwilfish_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(QwilfishHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(QwilfishHisui); PLACEHOLDER_ANIM_SINGLE_FRAME(Overqwil); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_QWILFISH @@ -3077,7 +3077,7 @@ static const union AnimCmd sAnim_Weavile_1[] = #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SneaselHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SneaselHisui); PLACEHOLDER_ANIM_SINGLE_FRAME(Sneasler); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_SNEASEL @@ -3167,7 +3167,7 @@ static const union AnimCmd sAnim_Corsola_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CorsolaGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(CorsolaGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(Cursola); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_CORSOLA @@ -3555,8 +3555,8 @@ static const union AnimCmd sAnim_Linoone_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ZigzagoonGalarian); -PLACEHOLDER_ANIM_SINGLE_FRAME(LinooneGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZigzagoonGalar); +PLACEHOLDER_ANIM_SINGLE_FRAME(LinooneGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(Obstagoon); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZIGZAGOON @@ -5205,8 +5205,7 @@ static const union AnimCmd sAnim_DeoxysNormal_1[] = { ANIMCMD_FRAME(0, 16), ANIMCMD_FRAME(1, 16), - ANIMCMD_FRAME(0, 26), - ANIMCMD_FRAME(1, 16), + ANIMCMD_FRAME(1, 26), ANIMCMD_FRAME(0, 16), ANIMCMD_END, }; @@ -6340,7 +6339,7 @@ static const union AnimCmd sAnim_Samurott_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SamurottHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SamurottHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_OSHAWOTT @@ -6832,7 +6831,7 @@ static const union AnimCmd sAnim_Lilligant_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(LilligantHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(LilligantHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_PETILIL @@ -6889,7 +6888,7 @@ static const union AnimCmd sAnim_Darumaka_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_DarmanitanStandardMode_1[] = +static const union AnimCmd sAnim_DarmanitanStandard_1[] = { ANIMCMD_FRAME(1, 10), ANIMCMD_FRAME(0, 10), @@ -6898,7 +6897,7 @@ static const union AnimCmd sAnim_DarmanitanStandardMode_1[] = ANIMCMD_END, }; -static const union AnimCmd sAnim_DarmanitanZenMode_1[] = +static const union AnimCmd sAnim_DarmanitanZen_1[] = { ANIMCMD_FRAME(1, 15), ANIMCMD_FRAME(0, 20), @@ -6906,9 +6905,9 @@ static const union AnimCmd sAnim_DarmanitanZenMode_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(DarumakaGalarian); -PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianStandardMode); -PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarianZenMode); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarumakaGalar); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarStandard); +PLACEHOLDER_ANIM_SINGLE_FRAME(DarmanitanGalarZen); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA @@ -7006,7 +7005,7 @@ static const union AnimCmd sAnim_Cofagrigus_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(YamaskGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(YamaskGalar); PLACEHOLDER_ANIM_SINGLE_FRAME(Runerigus); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_YAMASK @@ -7078,7 +7077,7 @@ static const union AnimCmd sAnim_Garbodor_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GarbodorGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(GarbodorGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TRUBBISH @@ -7104,8 +7103,8 @@ static const union AnimCmd sAnim_Zoroark_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ZoruaHisuian); -PLACEHOLDER_ANIM_SINGLE_FRAME(ZoroarkHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoruaHisui); +PLACEHOLDER_ANIM_SINGLE_FRAME(ZoroarkHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ZORUA @@ -7591,7 +7590,7 @@ static const union AnimCmd sAnim_Stunfisk_1[] = }; #if P_GALARIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(StunfiskGalarian); +PLACEHOLDER_ANIM_SINGLE_FRAME(StunfiskGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_STUNFISK @@ -7703,7 +7702,7 @@ static const union AnimCmd sAnim_Braviary_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(BraviaryHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(BraviaryHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_RUFFLET @@ -8679,8 +8678,8 @@ static const union AnimCmd sAnim_Goodra_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SliggooHisuian); -PLACEHOLDER_ANIM_SINGLE_FRAME(GoodraHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(SliggooHisui); +PLACEHOLDER_ANIM_SINGLE_FRAME(GoodraHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GOOMY @@ -8765,7 +8764,7 @@ static const union AnimCmd sAnim_Avalugg_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(AvaluggHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(AvaluggHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BERGMITE @@ -8907,7 +8906,7 @@ static const union AnimCmd sAnim_Decidueye_1[] = }; #if P_HISUIAN_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(DecidueyeHisuian); +PLACEHOLDER_ANIM_SINGLE_FRAME(DecidueyeHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ROWLET @@ -9426,7 +9425,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Meltan); PLACEHOLDER_ANIM_SINGLE_FRAME(Melmetal); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(MelmetalGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(MelmetalGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MELTAN @@ -9436,7 +9435,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Thwackey); PLACEHOLDER_ANIM_SINGLE_FRAME(Rillaboom); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(RillaboomGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(RillaboomGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GROOKEY @@ -9446,7 +9445,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Raboot); PLACEHOLDER_ANIM_SINGLE_FRAME(Cinderace); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CinderaceGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CinderaceGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SCORBUNNY @@ -9456,7 +9455,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Drizzile); PLACEHOLDER_ANIM_SINGLE_FRAME(Inteleon); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(InteleonGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(InteleonGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SOBBLE @@ -9499,7 +9498,7 @@ static const union AnimCmd sAnim_Corviknight_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CorviknightGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CorviknightGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROOKIDEE @@ -9509,7 +9508,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Dottler); PLACEHOLDER_ANIM_SINGLE_FRAME(Orbeetle); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(OrbeetleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(OrbeetleGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BLIPBUG @@ -9546,7 +9545,7 @@ static const union AnimCmd sAnim_Drednaw_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(DrednawGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(DrednawGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHEWTLE @@ -9561,7 +9560,7 @@ PLACEHOLDER_ANIM_TWO_FRAMES(Carkol); PLACEHOLDER_ANIM_TWO_FRAMES(Coalossal); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CoalossalGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CoalossalGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROLYCOLY @@ -9570,13 +9569,13 @@ PLACEHOLDER_ANIM_TWO_FRAMES(Applin); PLACEHOLDER_ANIM_TWO_FRAMES(Flapple); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(FlappleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(FlappleGmax); #endif //P_GIGANTAMAX_FORMS PLACEHOLDER_ANIM_TWO_FRAMES(Appletun); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(AppletunGmax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS @@ -9590,7 +9589,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Silicobra); PLACEHOLDER_ANIM_SINGLE_FRAME(Sandaconda); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(SandacondaGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(SandacondaGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SILICOBRA @@ -9608,7 +9607,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Toxel); PLACEHOLDER_ANIM_SINGLE_FRAME(Toxtricity); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(ToxtricityGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(ToxtricityGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TOXEL @@ -9630,7 +9629,7 @@ static const union AnimCmd sAnim_Centiskorch_1[] = }; #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CentiskorchGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CentiskorchGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SIZZLIPEDE @@ -9650,7 +9649,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Hattrem); PLACEHOLDER_ANIM_SINGLE_FRAME(Hatterene); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(HattereneGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(HattereneGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_HATENNA @@ -9660,7 +9659,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Morgrem); PLACEHOLDER_ANIM_SINGLE_FRAME(Grimmsnarl); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(GrimmsnarlGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(GrimmsnarlGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_IMPIDIMP @@ -9669,7 +9668,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Milcery); PLACEHOLDER_ANIM_SINGLE_FRAME(Alcremie); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(AlcremieGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(AlcremieGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MILCERY @@ -9707,7 +9706,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Cufant); PLACEHOLDER_ANIM_SINGLE_FRAME(Copperajah); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(CopperajahGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(CopperajahGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CUFANT @@ -9731,7 +9730,7 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Arctovish); PLACEHOLDER_ANIM_SINGLE_FRAME(Duraludon); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(DuraludonGmax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS @@ -9762,11 +9761,11 @@ PLACEHOLDER_ANIM_SINGLE_FRAME(Kubfu); PLACEHOLDER_ANIM_SINGLE_FRAME(Urshifu); #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuSingleStrikeStyleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuSingleStrikeGmax); #endif //P_GIGANTAMAX_FORMS #if P_GIGANTAMAX_FORMS -PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuRapidStrikeStyleGigantamax); +PLACEHOLDER_ANIM_SINGLE_FRAME(UrshifuRapidStrikeGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU @@ -10167,7 +10166,7 @@ SINGLE_ANIMATION(Venusaur); SINGLE_ANIMATION(VenusaurMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(VenusaurGigantamax); +SINGLE_ANIMATION(VenusaurGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BULBASAUR #if P_FAMILY_CHARMANDER @@ -10179,7 +10178,7 @@ SINGLE_ANIMATION(CharizardMegaX); SINGLE_ANIMATION(CharizardMegaY); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CharizardGigantamax); +SINGLE_ANIMATION(CharizardGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHARMANDER #if P_FAMILY_SQUIRTLE @@ -10190,7 +10189,7 @@ SINGLE_ANIMATION(Blastoise); SINGLE_ANIMATION(BlastoiseMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(BlastoiseGigantamax); +SINGLE_ANIMATION(BlastoiseGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SQUIRTLE #if P_FAMILY_CATERPIE @@ -10198,7 +10197,7 @@ SINGLE_ANIMATION(Caterpie); SINGLE_ANIMATION(Metapod); SINGLE_ANIMATION(Butterfree); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(ButterfreeGigantamax); +SINGLE_ANIMATION(ButterfreeGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CATERPIE #if P_FAMILY_WEEDLE @@ -10221,8 +10220,8 @@ SINGLE_ANIMATION(PidgeotMega); SINGLE_ANIMATION(Rattata); SINGLE_ANIMATION(Raticate); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(RattataAlolan); -SINGLE_ANIMATION(RaticateAlolan); +SINGLE_ANIMATION(RattataAlola); +SINGLE_ANIMATION(RaticateAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_RATTATA #if P_FAMILY_SPEAROW @@ -10248,29 +10247,29 @@ SINGLE_ANIMATION(PikachuPhD); SINGLE_ANIMATION(PikachuLibre); #endif //P_COSPLAY_PIKACHU_FORMS #if P_CAP_PIKACHU_FORMS -SINGLE_ANIMATION(PikachuOriginalCap); -SINGLE_ANIMATION(PikachuHoennCap); -SINGLE_ANIMATION(PikachuSinnohCap); -SINGLE_ANIMATION(PikachuUnovaCap); -SINGLE_ANIMATION(PikachuKalosCap); -SINGLE_ANIMATION(PikachuAlolaCap); -SINGLE_ANIMATION(PikachuPartnerCap); -SINGLE_ANIMATION(PikachuWorldCap); +SINGLE_ANIMATION(PikachuOriginal); +SINGLE_ANIMATION(PikachuHoenn); +SINGLE_ANIMATION(PikachuSinnoh); +SINGLE_ANIMATION(PikachuUnova); +SINGLE_ANIMATION(PikachuKalos); +SINGLE_ANIMATION(PikachuAlola); +SINGLE_ANIMATION(PikachuPartner); +SINGLE_ANIMATION(PikachuWorld); #endif //P_CAP_PIKACHU_FORMS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(PikachuGigantamax); +SINGLE_ANIMATION(PikachuGmax); #endif //P_GIGANTAMAX_FORMS SINGLE_ANIMATION(Raichu); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(RaichuAlolan); +SINGLE_ANIMATION(RaichuAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_PIKACHU #if P_FAMILY_SANDSHREW SINGLE_ANIMATION(Sandshrew); SINGLE_ANIMATION(Sandslash); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(SandshrewAlolan); -SINGLE_ANIMATION(SandslashAlolan); +SINGLE_ANIMATION(SandshrewAlola); +SINGLE_ANIMATION(SandslashAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_SANDSHREW #if P_FAMILY_NIDORAN @@ -10292,8 +10291,8 @@ SINGLE_ANIMATION(Clefable); SINGLE_ANIMATION(Vulpix); SINGLE_ANIMATION(Ninetales); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(VulpixAlolan); -SINGLE_ANIMATION(NinetalesAlolan); +SINGLE_ANIMATION(VulpixAlola); +SINGLE_ANIMATION(NinetalesAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_VULPIX #if P_FAMILY_JIGGLYPUFF @@ -10330,23 +10329,23 @@ SINGLE_ANIMATION(Venomoth); SINGLE_ANIMATION(Diglett); SINGLE_ANIMATION(Dugtrio); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(DiglettAlolan); -SINGLE_ANIMATION(DugtrioAlolan); +SINGLE_ANIMATION(DiglettAlola); +SINGLE_ANIMATION(DugtrioAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_DIGLETT #if P_FAMILY_MEOWTH SINGLE_ANIMATION(Meowth); SINGLE_ANIMATION(Persian); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(MeowthAlolan); -SINGLE_ANIMATION(PersianAlolan); +SINGLE_ANIMATION(MeowthAlola); +SINGLE_ANIMATION(PersianAlola); #endif //P_ALOLAN_FORMS #if P_GALARIAN_FORMS -SINGLE_ANIMATION(MeowthGalarian); +SINGLE_ANIMATION(MeowthGalar); SINGLE_ANIMATION(Perrserker); #endif //P_GALARIAN_FORMS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(MeowthGigantamax); +SINGLE_ANIMATION(MeowthGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MEOWTH #if P_FAMILY_PSYDUCK @@ -10364,8 +10363,8 @@ SINGLE_ANIMATION(Annihilape); SINGLE_ANIMATION(Growlithe); SINGLE_ANIMATION(Arcanine); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(GrowlitheHisuian); -SINGLE_ANIMATION(ArcanineHisuian); +SINGLE_ANIMATION(GrowlitheHisui); +SINGLE_ANIMATION(ArcanineHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GROWLITHE #if P_FAMILY_POLIWAG @@ -10389,7 +10388,7 @@ SINGLE_ANIMATION(Machop); SINGLE_ANIMATION(Machoke); SINGLE_ANIMATION(Machamp); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(MachampGigantamax); +SINGLE_ANIMATION(MachampGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MACHOP #if P_FAMILY_BELLSPROUT @@ -10406,17 +10405,17 @@ SINGLE_ANIMATION(Geodude); SINGLE_ANIMATION(Graveler); SINGLE_ANIMATION(Golem); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(GeodudeAlolan); -SINGLE_ANIMATION(GravelerAlolan); -SINGLE_ANIMATION(GolemAlolan); +SINGLE_ANIMATION(GeodudeAlola); +SINGLE_ANIMATION(GravelerAlola); +SINGLE_ANIMATION(GolemAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GEODUDE #if P_FAMILY_PONYTA SINGLE_ANIMATION(Ponyta); SINGLE_ANIMATION(Rapidash); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(PonytaGalarian); -SINGLE_ANIMATION(RapidashGalarian); +SINGLE_ANIMATION(PonytaGalar); +SINGLE_ANIMATION(RapidashGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_PONYTA #if P_FAMILY_SLOWPOKE @@ -10429,10 +10428,10 @@ SINGLE_ANIMATION(Slowking); SINGLE_ANIMATION(SlowbroMega); #endif //P_MEGA_EVOLUTIONS #if P_GALARIAN_FORMS -SINGLE_ANIMATION(SlowpokeGalarian); -SINGLE_ANIMATION(SlowbroGalarian); +SINGLE_ANIMATION(SlowpokeGalar); +SINGLE_ANIMATION(SlowbroGalar); #if P_GEN_2_CROSS_EVOS -SINGLE_ANIMATION(SlowkingGalarian); +SINGLE_ANIMATION(SlowkingGalar); #endif //P_GEN_2_CROSS_EVOS #endif //P_GALARIAN_FORMS #endif //P_FAMILY_SLOWPOKE @@ -10446,7 +10445,7 @@ SINGLE_ANIMATION(Magnezone); #if P_FAMILY_FARFETCHD SINGLE_ANIMATION(Farfetchd); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(FarfetchdGalarian); +SINGLE_ANIMATION(FarfetchdGalar); SINGLE_ANIMATION(Sirfetchd); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_FARFETCHD @@ -10462,8 +10461,8 @@ SINGLE_ANIMATION(Dewgong); SINGLE_ANIMATION(Grimer); SINGLE_ANIMATION(Muk); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(GrimerAlolan); -SINGLE_ANIMATION(MukAlolan); +SINGLE_ANIMATION(GrimerAlola); +SINGLE_ANIMATION(MukAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_GRIMER #if P_FAMILY_SHELLDER @@ -10478,7 +10477,7 @@ SINGLE_ANIMATION(Gengar); SINGLE_ANIMATION(GengarMega); #endif //P_MEGA_EVOLUTIONS #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(GengarGigantamax); +SINGLE_ANIMATION(GengarGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GASTLY #if P_FAMILY_ONIX @@ -10498,29 +10497,29 @@ SINGLE_ANIMATION(Hypno); SINGLE_ANIMATION(Krabby); SINGLE_ANIMATION(Kingler); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(KinglerGigantamax); +SINGLE_ANIMATION(KinglerGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KRABBY #if P_FAMILY_VOLTORB SINGLE_ANIMATION(Voltorb); SINGLE_ANIMATION(Electrode); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(VoltorbHisuian); -SINGLE_ANIMATION(ElectrodeHisuian); +SINGLE_ANIMATION(VoltorbHisui); +SINGLE_ANIMATION(ElectrodeHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_VOLTORB #if P_FAMILY_EXEGGCUTE SINGLE_ANIMATION(Exeggcute); SINGLE_ANIMATION(Exeggutor); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(ExeggutorAlolan); +SINGLE_ANIMATION(ExeggutorAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_EXEGGCUTE #if P_FAMILY_CUBONE SINGLE_ANIMATION(Cubone); SINGLE_ANIMATION(Marowak); #if P_ALOLAN_FORMS -SINGLE_ANIMATION(MarowakAlolan); +SINGLE_ANIMATION(MarowakAlola); #endif //P_ALOLAN_FORMS #endif //P_FAMILY_CUBONE #if P_FAMILY_HITMONS @@ -10543,7 +10542,7 @@ SINGLE_ANIMATION(Lickilicky); SINGLE_ANIMATION(Koffing); SINGLE_ANIMATION(Weezing); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(WeezingGalarian); +SINGLE_ANIMATION(WeezingGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_KOFFING #if P_FAMILY_RHYHORN @@ -10595,7 +10594,7 @@ SINGLE_ANIMATION(MimeJr); #endif //P_GEN_4_CROSS_EVOS SINGLE_ANIMATION(MrMime); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(MrMimeGalarian); +SINGLE_ANIMATION(MrMimeGalar); SINGLE_ANIMATION(MrRime); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MR_MIME @@ -10644,7 +10643,7 @@ SINGLE_ANIMATION(PinsirMega); #if P_FAMILY_TAUROS SINGLE_ANIMATION(Tauros); #if P_PALDEAN_FORMS -SINGLE_ANIMATION(TaurosPaldean); +SINGLE_ANIMATION(TaurosPaldea); #endif //P_PALDEAN_FORMS #endif //P_FAMILY_TAUROS #if P_FAMILY_MAGIKARP @@ -10657,7 +10656,7 @@ SINGLE_ANIMATION(GyaradosMega); #if P_FAMILY_LAPRAS SINGLE_ANIMATION(Lapras); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(LaprasGigantamax); +SINGLE_ANIMATION(LaprasGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_LAPRAS #if P_FAMILY_DITTO @@ -10666,7 +10665,7 @@ SINGLE_ANIMATION(Ditto); #if P_FAMILY_EEVEE SINGLE_ANIMATION(Eevee); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(EeveeGigantamax); +SINGLE_ANIMATION(EeveeGmax); #endif //P_GIGANTAMAX_FORMS SINGLE_ANIMATION(Vaporeon); SINGLE_ANIMATION(Jolteon); @@ -10712,25 +10711,25 @@ SINGLE_ANIMATION(Munchlax); #endif //P_GEN_4_CROSS_EVOS SINGLE_ANIMATION(Snorlax); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(SnorlaxGigantamax); +SINGLE_ANIMATION(SnorlaxGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SNORLAX #if P_FAMILY_ARTICUNO SINGLE_ANIMATION(Articuno); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(ArticunoGalarian); +SINGLE_ANIMATION(ArticunoGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ARTICUNO #if P_FAMILY_ZAPDOS SINGLE_ANIMATION(Zapdos); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(ZapdosGalarian); +SINGLE_ANIMATION(ZapdosGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZAPDOS #if P_FAMILY_MOLTRES SINGLE_ANIMATION(Moltres); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(MoltresGalarian); +SINGLE_ANIMATION(MoltresGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_MOLTRES #if P_FAMILY_DRATINI @@ -10758,7 +10757,7 @@ SINGLE_ANIMATION(Cyndaquil); SINGLE_ANIMATION(Quilava); SINGLE_ANIMATION(Typhlosion); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(TyphlosionHisuian); +SINGLE_ANIMATION(TyphlosionHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_CYNDAQUIL #if P_FAMILY_TOTODILE @@ -10843,7 +10842,7 @@ SINGLE_ANIMATION(Yanmega); SINGLE_ANIMATION(Wooper); SINGLE_ANIMATION(Quagsire); #if P_PALDEAN_FORMS -SINGLE_ANIMATION(WooperPaldean); +SINGLE_ANIMATION(WooperPaldea); SINGLE_ANIMATION(Clodsire); #endif //P_PALDEAN_FORMS #endif //P_FAMILY_WOOPER @@ -10897,7 +10896,7 @@ SINGLE_ANIMATION(Granbull); #if P_FAMILY_QWILFISH SINGLE_ANIMATION(Qwilfish); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(QwilfishHisuian); +SINGLE_ANIMATION(QwilfishHisui); SINGLE_ANIMATION(Overqwil); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_QWILFISH @@ -10916,7 +10915,7 @@ SINGLE_ANIMATION(Sneasel); SINGLE_ANIMATION(Weavile); #endif //P_GEN_4_CROSS_EVOS #if P_HISUIAN_FORMS -SINGLE_ANIMATION(SneaselHisuian); +SINGLE_ANIMATION(SneaselHisui); SINGLE_ANIMATION(Sneasler); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_SNEASEL @@ -10942,7 +10941,7 @@ SINGLE_ANIMATION(Mamoswine); #if P_FAMILY_CORSOLA SINGLE_ANIMATION(Corsola); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(CorsolaGalarian); +SINGLE_ANIMATION(CorsolaGalar); SINGLE_ANIMATION(Cursola); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_CORSOLA @@ -11043,8 +11042,8 @@ SINGLE_ANIMATION(Mightyena); SINGLE_ANIMATION(Zigzagoon); SINGLE_ANIMATION(Linoone); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(ZigzagoonGalarian); -SINGLE_ANIMATION(LinooneGalarian); +SINGLE_ANIMATION(ZigzagoonGalar); +SINGLE_ANIMATION(LinooneGalar); SINGLE_ANIMATION(Obstagoon); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_ZIGZAGOON @@ -11595,7 +11594,7 @@ SINGLE_ANIMATION(Oshawott); SINGLE_ANIMATION(Dewott); SINGLE_ANIMATION(Samurott); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(SamurottHisuian); +SINGLE_ANIMATION(SamurottHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_OSHAWOTT #if P_FAMILY_PATRAT @@ -11689,7 +11688,7 @@ SINGLE_ANIMATION(Whimsicott); SINGLE_ANIMATION(Petilil); SINGLE_ANIMATION(Lilligant); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(LilligantHisuian); +SINGLE_ANIMATION(LilligantHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_PETILIL #if P_FAMILY_BASCULIN @@ -11705,12 +11704,12 @@ SINGLE_ANIMATION(Krookodile); #endif //P_FAMILY_SANDILE #if P_FAMILY_DARUMAKA SINGLE_ANIMATION(Darumaka); -SINGLE_ANIMATION(DarmanitanStandardMode); -SINGLE_ANIMATION(DarmanitanZenMode); +SINGLE_ANIMATION(DarmanitanStandard); +SINGLE_ANIMATION(DarmanitanZen); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(DarumakaGalarian); -SINGLE_ANIMATION(DarmanitanGalarianStandardMode); -SINGLE_ANIMATION(DarmanitanGalarianZenMode); +SINGLE_ANIMATION(DarumakaGalar); +SINGLE_ANIMATION(DarmanitanGalarStandard); +SINGLE_ANIMATION(DarmanitanGalarZen); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_DARUMAKA #if P_FAMILY_MARACTUS @@ -11731,7 +11730,7 @@ SINGLE_ANIMATION(Sigilyph); SINGLE_ANIMATION(Yamask); SINGLE_ANIMATION(Cofagrigus); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(YamaskGalarian); +SINGLE_ANIMATION(YamaskGalar); SINGLE_ANIMATION(Runerigus); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_YAMASK @@ -11747,15 +11746,15 @@ SINGLE_ANIMATION(Archeops); SINGLE_ANIMATION(Trubbish); SINGLE_ANIMATION(Garbodor); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(GarbodorGigantamax); +SINGLE_ANIMATION(GarbodorGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TRUBBISH #if P_FAMILY_ZORUA SINGLE_ANIMATION(Zorua); SINGLE_ANIMATION(Zoroark); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(ZoruaHisuian); -SINGLE_ANIMATION(ZoroarkHisuian); +SINGLE_ANIMATION(ZoruaHisui); +SINGLE_ANIMATION(ZoroarkHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ZORUA #if P_FAMILY_MINCCINO @@ -11849,7 +11848,7 @@ SINGLE_ANIMATION(Accelgor); #if P_FAMILY_STUNFISK SINGLE_ANIMATION(Stunfisk); #if P_GALARIAN_FORMS -SINGLE_ANIMATION(StunfiskGalarian); +SINGLE_ANIMATION(StunfiskGalar); #endif //P_GALARIAN_FORMS #endif //P_FAMILY_STUNFISK #if P_FAMILY_MIENFOO @@ -11877,7 +11876,7 @@ SINGLE_ANIMATION(Bouffalant); SINGLE_ANIMATION(Rufflet); SINGLE_ANIMATION(Braviary); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(BraviaryHisuian); +SINGLE_ANIMATION(BraviaryHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_RUFFLET #if P_FAMILY_VULLABY @@ -12054,8 +12053,8 @@ SINGLE_ANIMATION(Goomy); SINGLE_ANIMATION(Sliggoo); SINGLE_ANIMATION(Goodra); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(SliggooHisuian); -SINGLE_ANIMATION(GoodraHisuian); +SINGLE_ANIMATION(SliggooHisui); +SINGLE_ANIMATION(GoodraHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_GOOMY #if P_FAMILY_KLEFKI @@ -12073,7 +12072,7 @@ SINGLE_ANIMATION(Gourgeist); SINGLE_ANIMATION(Bergmite); SINGLE_ANIMATION(Avalugg); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(AvaluggHisuian); +SINGLE_ANIMATION(AvaluggHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_BERGMITE #if P_FAMILY_NOIBAT @@ -12109,7 +12108,7 @@ SINGLE_ANIMATION(Rowlet); SINGLE_ANIMATION(Dartrix); SINGLE_ANIMATION(Decidueye); #if P_HISUIAN_FORMS -SINGLE_ANIMATION(DecidueyeHisuian); +SINGLE_ANIMATION(DecidueyeHisui); #endif //P_HISUIAN_FORMS #endif //P_FAMILY_ROWLET #if P_FAMILY_LITTEN @@ -12310,7 +12309,7 @@ SINGLE_ANIMATION(Zeraora); SINGLE_ANIMATION(Meltan); SINGLE_ANIMATION(Melmetal); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(MelmetalGigantamax); +SINGLE_ANIMATION(MelmetalGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MELTAN #if P_FAMILY_GROOKEY @@ -12318,7 +12317,7 @@ SINGLE_ANIMATION(Grookey); SINGLE_ANIMATION(Thwackey); SINGLE_ANIMATION(Rillaboom); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(RillaboomGigantamax); +SINGLE_ANIMATION(RillaboomGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_GROOKEY #if P_FAMILY_SCORBUNNY @@ -12326,7 +12325,7 @@ SINGLE_ANIMATION(Scorbunny); SINGLE_ANIMATION(Raboot); SINGLE_ANIMATION(Cinderace); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CinderaceGigantamax); +SINGLE_ANIMATION(CinderaceGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SCORBUNNY #if P_FAMILY_SOBBLE @@ -12334,7 +12333,7 @@ SINGLE_ANIMATION(Sobble); SINGLE_ANIMATION(Drizzile); SINGLE_ANIMATION(Inteleon); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(InteleonGigantamax); +SINGLE_ANIMATION(InteleonGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SOBBLE #if P_FAMILY_SKWOVET @@ -12346,7 +12345,7 @@ SINGLE_ANIMATION(Rookidee); SINGLE_ANIMATION(Corvisquire); SINGLE_ANIMATION(Corviknight); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CorviknightGigantamax); +SINGLE_ANIMATION(CorviknightGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROOKIDEE #if P_FAMILY_BLIPBUG @@ -12354,7 +12353,7 @@ SINGLE_ANIMATION(Blipbug); SINGLE_ANIMATION(Dottler); SINGLE_ANIMATION(Orbeetle); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(OrbeetleGigantamax); +SINGLE_ANIMATION(OrbeetleGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_BLIPBUG #if P_FAMILY_NICKIT @@ -12373,7 +12372,7 @@ SINGLE_ANIMATION(Dubwool); SINGLE_ANIMATION(Chewtle); SINGLE_ANIMATION(Drednaw); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(DrednawGigantamax); +SINGLE_ANIMATION(DrednawGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CHEWTLE #if P_FAMILY_YAMPER @@ -12385,18 +12384,18 @@ SINGLE_ANIMATION(Rolycoly); SINGLE_ANIMATION(Carkol); SINGLE_ANIMATION(Coalossal); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CoalossalGigantamax); +SINGLE_ANIMATION(CoalossalGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_ROLYCOLY #if P_FAMILY_APPLIN SINGLE_ANIMATION(Applin); SINGLE_ANIMATION(Flapple); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(FlappleGigantamax); +SINGLE_ANIMATION(FlappleGmax); #endif //P_GIGANTAMAX_FORMS SINGLE_ANIMATION(Appletun); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(AppletunGigantamax); +SINGLE_ANIMATION(AppletunGmax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Dipplin); @@ -12407,7 +12406,7 @@ SINGLE_ANIMATION(Hydrapple); SINGLE_ANIMATION(Silicobra); SINGLE_ANIMATION(Sandaconda); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(SandacondaGigantamax); +SINGLE_ANIMATION(SandacondaGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SILICOBRA #if P_FAMILY_CRAMORANT @@ -12421,14 +12420,14 @@ SINGLE_ANIMATION(Barraskewda); SINGLE_ANIMATION(Toxel); SINGLE_ANIMATION(Toxtricity); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(ToxtricityGigantamax); +SINGLE_ANIMATION(ToxtricityGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_TOXEL #if P_FAMILY_SIZZLIPEDE SINGLE_ANIMATION(Sizzlipede); SINGLE_ANIMATION(Centiskorch); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CentiskorchGigantamax); +SINGLE_ANIMATION(CentiskorchGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_SIZZLIPEDE #if P_FAMILY_CLOBBOPUS @@ -12444,7 +12443,7 @@ SINGLE_ANIMATION(Hatenna); SINGLE_ANIMATION(Hattrem); SINGLE_ANIMATION(Hatterene); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(HattereneGigantamax); +SINGLE_ANIMATION(HattereneGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_HATENNA #if P_FAMILY_IMPIDIMP @@ -12452,14 +12451,14 @@ SINGLE_ANIMATION(Impidimp); SINGLE_ANIMATION(Morgrem); SINGLE_ANIMATION(Grimmsnarl); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(GrimmsnarlGigantamax); +SINGLE_ANIMATION(GrimmsnarlGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_IMPIDIMP #if P_FAMILY_MILCERY SINGLE_ANIMATION(Milcery); SINGLE_ANIMATION(Alcremie); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(AlcremieGigantamax); +SINGLE_ANIMATION(AlcremieGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_MILCERY #if P_FAMILY_FALINKS @@ -12488,7 +12487,7 @@ SINGLE_ANIMATION(Morpeko); SINGLE_ANIMATION(Cufant); SINGLE_ANIMATION(Copperajah); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(CopperajahGigantamax); +SINGLE_ANIMATION(CopperajahGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_CUFANT #if P_FAMILY_DRACOZOLT @@ -12506,7 +12505,7 @@ SINGLE_ANIMATION(Arctovish); #if P_FAMILY_DURALUDON SINGLE_ANIMATION(Duraludon); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(DuraludonGigantamax); +SINGLE_ANIMATION(DuraludonGmax); #endif //P_GIGANTAMAX_FORMS #if P_GEN_9_CROSS_EVOS SINGLE_ANIMATION(Archaludon); @@ -12530,8 +12529,8 @@ SINGLE_ANIMATION(Eternatus); SINGLE_ANIMATION(Kubfu); SINGLE_ANIMATION(Urshifu); #if P_GIGANTAMAX_FORMS -SINGLE_ANIMATION(UrshifuSingleStrikeStyleGigantamax); -SINGLE_ANIMATION(UrshifuRapidStrikeStyleGigantamax); +SINGLE_ANIMATION(UrshifuSingleStrikeGmax); +SINGLE_ANIMATION(UrshifuRapidStrikeGmax); #endif //P_GIGANTAMAX_FORMS #endif //P_FAMILY_KUBFU #if P_FAMILY_ZARUDE diff --git a/src/data/script_menu.h b/src/data/script_menu.h index 3b29171327..fc0b574a2f 100644 --- a/src/data/script_menu.h +++ b/src/data/script_menu.h @@ -1,23 +1,23 @@ // multichoice lists static const struct MenuAction MultichoiceList_BrineyOnDewford[] = { - {gText_Petalburg}, - {gText_Slateport}, + {COMPOUND_STRING("PETALBURG")}, + {COMPOUND_STRING("SLATEPORT")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_EnterInfo[] = { - {gText_Enter2}, + {COMPOUND_STRING("ENTER")}, {gText_Info2}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_ContestInfo[] = { - {gText_WhatsAContest}, - {gText_TypesOfContests}, - {gText_Ranks}, + {COMPOUND_STRING("What's a CONTEST?")}, + {COMPOUND_STRING("Types of CONTESTS")}, + {COMPOUND_STRING("Ranks")}, {gText_Cancel2}, }; @@ -56,30 +56,30 @@ static const struct MenuAction MultichoiceList_RegisterMenu[] = static const struct MenuAction MultichoiceList_Bike[] = { - {gText_Mach}, - {gText_Acro}, + {COMPOUND_STRING("MACH")}, + {COMPOUND_STRING("ACRO")}, }; static const struct MenuAction MultichoiceList_StatusInfo[] = { - {gText_Psn}, - {gText_Par}, - {gText_Slp}, - {gText_Brn}, - {gText_Frz}, + {COMPOUND_STRING("PSN")}, + {COMPOUND_STRING("PAR")}, + {COMPOUND_STRING("SLP")}, + {COMPOUND_STRING("BRN")}, + {COMPOUND_STRING("FRZ")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_BrineyOffDewford[] = { - {gText_Dewford}, + {COMPOUND_STRING("DEWFORD")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_ViewedPaintings[] = { - {gText_SawIt}, - {gText_NotYet}, + {COMPOUND_STRING("Saw it")}, + {COMPOUND_STRING("Not yet")}, }; static const struct MenuAction MultichoiceList_YesNoInfo2[] = @@ -91,8 +91,8 @@ static const struct MenuAction MultichoiceList_YesNoInfo2[] = static const struct MenuAction MultichoiceList_ChallengeInfo[] = { - {gText_Challenge}, - {gText_Info3}, + {COMPOUND_STRING("CHALLENGE")}, + {COMPOUND_STRING("INFO")}, {gText_Exit}, }; @@ -210,82 +210,82 @@ static const struct MenuAction MultichoiceList_Mechadoll5_Q3[] = static const struct MenuAction MultichoiceList_VendingMachine[] = { - {gText_FreshWaterAndPrice}, - {gText_SodaPopAndPrice}, - {gText_LemonadeAndPrice}, + {COMPOUND_STRING("FRESH WATER{CLEAR_TO 0x48}¥200")}, + {COMPOUND_STRING("SODA POP{CLEAR_TO 0x48}¥300")}, + {COMPOUND_STRING("LEMONADE{CLEAR_TO 0x48}¥350")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_MachBikeInfo[] = { - {gText_HowToRide}, - {gText_HowToTurn}, - {gText_SandySlopes}, + {COMPOUND_STRING("HOW TO RIDE")}, + {COMPOUND_STRING("HOW TO TURN")}, + {COMPOUND_STRING("SANDY SLOPES")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_AcroBikeInfo[] = { - {gText_Wheelies}, - {gText_BunnyHops}, - {gText_Jump}, + {COMPOUND_STRING("WHEELIES")}, + {COMPOUND_STRING("BUNNY-HOPS")}, + {COMPOUND_STRING("JUMP")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_Satisfaction[] = { - {gText_Satisfied}, - {gText_Dissatisfied}, + {COMPOUND_STRING("Satisfied")}, + {COMPOUND_STRING("Dissatisfied")}, }; static const struct MenuAction MultichoiceList_SternDeepSea[] = { - {gText_DeepSeaTooth}, - {gText_DeepSeaScale}, + {COMPOUND_STRING("DEEPSEATOOTH")}, + {COMPOUND_STRING("DEEPSEASCALE")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_UnusedAshVendor[] = { - {gText_BlueFlute2}, - {gText_YellowFlute2}, - {gText_RedFlute2}, - {gText_WhiteFlute2}, - {gText_BlackFlute2}, - {gText_GlassChair}, - {gText_GlassDesk}, + {COMPOUND_STRING("BLUE FLUTE")}, + {COMPOUND_STRING("YELLOW FLUTE")}, + {COMPOUND_STRING("RED FLUTE")}, + {COMPOUND_STRING("WHITE FLUTE")}, + {COMPOUND_STRING("BLACK FLUTE")}, + {COMPOUND_STRING("GLASS CHAIR")}, + {COMPOUND_STRING("GLASS DESK")}, {gText_Cancel2}, }; static const struct MenuAction MultichoiceList_GameCornerDolls[] = { - {gText_TreeckoDollAndPrice}, - {gText_TorchicDollAndPrice}, - {gText_MudkipDollAndPrice}, + {COMPOUND_STRING("TREECKO DOLL 1,000 COINS")}, + {COMPOUND_STRING("TORCHIC DOLL 1,000 COINS")}, + {COMPOUND_STRING("MUDKIP DOLL 1,000 COINS")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_GameCornerTMs[] = { - {gText_TM32AndPrice}, - {gText_TM29AndPrice}, - {gText_TM35AndPrice}, - {gText_TM24AndPrice}, - {gText_TM13AndPrice}, + {COMPOUND_STRING("TM32{CLEAR_TO 0x48}1,500 COINS")}, + {COMPOUND_STRING("TM29{CLEAR_TO 0x48}3,500 COINS")}, + {COMPOUND_STRING("TM35{CLEAR_TO 0x48}4,000 COINS")}, + {COMPOUND_STRING("TM24{CLEAR_TO 0x48}4,000 COINS")}, + {COMPOUND_STRING("TM13{CLEAR_TO 0x48}4,000 COINS")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_GameCornerCoins[] = { - {gText_50CoinsAndPrice}, - {gText_500CoinsAndPrice}, + {COMPOUND_STRING(" 50 COINS ¥1,000")}, + {COMPOUND_STRING("500 COINS ¥10,000")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_HowsFishing[] = { - {gText_Excellent2}, - {gText_NotSoGood}, + {COMPOUND_STRING("Excellent")}, + {COMPOUND_STRING("Not so good")}, }; static const struct MenuAction MultichoiceList_SSTidalSlateportWithBF[] = @@ -304,8 +304,8 @@ static const struct MenuAction MultichoiceList_SSTidalBattleFrontier[] = static const struct MenuAction MultichoiceList_RightLeft[] = { - {gText_Right}, - {gText_Left}, + {COMPOUND_STRING("Right")}, + {COMPOUND_STRING("Left")}, }; static const struct MenuAction MultichoiceList_SSTidalSlateportNoBF[] = @@ -452,8 +452,8 @@ static const struct MenuAction MultichoiceList_TourneyNoRecord[] = static const struct MenuAction MultichoiceList_Tent[] = { - {gText_RedTent}, - {gText_BlueTent}, + {COMPOUND_STRING("RED TENT")}, + {COMPOUND_STRING("BLUE TENT")}, }; static const struct MenuAction MultichoiceList_LinkServicesNoBerry[] = @@ -473,9 +473,9 @@ static const struct MenuAction MultichoiceList_YesNoInfo[] = static const struct MenuAction MultichoiceList_BattleMode[] = { - {gText_SingleBattle}, - {gText_DoubleBattle}, - {gText_MultiBattle}, + {COMPOUND_STRING("SINGLE BATTLE")}, + {COMPOUND_STRING("DOUBLE BATTLE")}, + {COMPOUND_STRING("MULTI BATTLE")}, {gText_Info2}, {gText_Exit}, }; @@ -506,46 +506,46 @@ static const struct MenuAction MultichoiceList_LinkServicesNoRecordBerry[] = static const struct MenuAction MultichoiceList_WirelessMinigame[] = { - {gText_PokemonJump}, - {gText_DodrioBerryPicking}, + {COMPOUND_STRING("POKéMON JUMP")}, + {COMPOUND_STRING("DODRIO BERRY-PICKING")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_LinkLeader[] = { - {gText_JoinGroup}, - {gText_BecomeLeader}, + {COMPOUND_STRING("JOIN GROUP")}, + {COMPOUND_STRING("BECOME LEADER")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_ContestRank[] = { - {gText_NormalRank}, - {gText_SuperRank}, - {gText_HyperRank}, - {gText_MasterRank}, + {COMPOUND_STRING("NORMAL RANK")}, + {COMPOUND_STRING("SUPER RANK")}, + {COMPOUND_STRING("HYPER RANK")}, + {COMPOUND_STRING("MASTER RANK")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_FrontierItemChoose[] = { - {gText_BattleBag}, - {gText_HeldItem}, + {COMPOUND_STRING("BATTLE BAG")}, + {COMPOUND_STRING("HELD ITEM")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_LinkContestInfo[] = { - {gText_LinkContest}, - {gText_AboutE_Mode}, - {gText_AboutG_Mode}, + {COMPOUND_STRING("LINK CONTEST")}, + {COMPOUND_STRING("ABOUT E-MODE")}, + {COMPOUND_STRING("ABOUT G-MODE")}, {gText_Cancel2}, }; static const struct MenuAction MultichoiceList_LinkContestMode[] = { - {gText_E_Mode}, - {gText_G_Mode}, + {COMPOUND_STRING("E-MODE")}, + {COMPOUND_STRING("G-MODE")}, {gText_Exit}, }; @@ -563,9 +563,9 @@ static const struct MenuAction MultichoiceList_ForcedStartMenu[] = static const struct MenuAction MultichoiceList_FrontierGamblerBet[] = { - {gText_5BP}, - {gText_10BP}, - {gText_15BP}, + {COMPOUND_STRING(" 5BP")}, + {COMPOUND_STRING("10BP")}, + {COMPOUND_STRING("15BP")}, {gText_Exit}, }; @@ -600,32 +600,32 @@ static const struct MenuAction MultichoiceList_UnusedSSTidal4[] = static const struct MenuAction MultichoiceList_Fossil[] = { - {gText_ClawFossil}, - {gText_RootFossil}, + {COMPOUND_STRING("CLAW FOSSIL")}, + {COMPOUND_STRING("ROOT FOSSIL")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_YesNo[] = { {gText_Yes}, - {gText_No4}, + {COMPOUND_STRING("NO")}, }; static const struct MenuAction MultichoiceList_FrontierRules[] = { - {gText_TwoStyles}, - {gText_Lv50_3}, - {gText_OpenLevel2}, - {gText_MonTypeAndNo}, - {gText_HoldItems}, + {COMPOUND_STRING("TWO STYLES")}, + {COMPOUND_STRING("LV. 50")}, + {COMPOUND_STRING("OPEN LEVEL")}, + {COMPOUND_STRING("{PKMN} TYPE & NO.")}, + {COMPOUND_STRING("HOLD ITEMS")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_FrontierPassInfo[] = { - {gText_Symbols2}, - {gText_Record3}, - {gText_BattlePts}, + {COMPOUND_STRING("SYMBOLS")}, + {COMPOUND_STRING("RECORD")}, + {COMPOUND_STRING("BATTLE PTS")}, {gText_Exit}, }; @@ -640,18 +640,18 @@ static const struct MenuAction MultichoiceList_BattleArenaRules[] = static const struct MenuAction MultichoiceList_BattleTowerRules[] = { - {gText_TowerInfo}, - {gText_BattleMon}, - {gText_BattleSalon}, - {gText_MultiLink2}, + {COMPOUND_STRING("TOWER INFO")}, + {COMPOUND_STRING("BATTLE {PKMN}")}, + {COMPOUND_STRING("BATTLE SALON")}, + {COMPOUND_STRING("MULTI-LINK")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_BattleDomeRules[] = { - {gText_Matchup}, - {gText_TourneyTree}, - {gText_DoubleKO}, + {COMPOUND_STRING("MATCHUP")}, + {COMPOUND_STRING("TOURNEY TREE")}, + {COMPOUND_STRING("DOUBLE KO")}, {gText_Exit}, }; @@ -661,7 +661,7 @@ static const struct MenuAction MultichoiceList_BattleFactoryRules[] = {gText_SwapPartners}, {gText_SwapNumber}, {gText_SwapNotes}, - {gText_OpenLevel3}, + {COMPOUND_STRING("OPEN LEVEL")}, {gText_Exit}, }; @@ -677,18 +677,18 @@ static const struct MenuAction MultichoiceList_BattlePalaceRules[] = static const struct MenuAction MultichoiceList_BattlePyramidRules[] = { - {gText_PyramidPokemon}, - {gText_PyramidTrainers}, - {gText_PyramidMaze}, - {gText_BattleBag2}, + {COMPOUND_STRING("PYRAMID: POKéMON")}, + {COMPOUND_STRING("PYRAMID: TRAINERS")}, + {COMPOUND_STRING("PYRAMID: MAZE")}, + {COMPOUND_STRING("BATTLE BAG")}, {gText_Exit}, }; static const struct MenuAction MultichoiceList_BattlePikeRules[] = { - {gText_PokenavAndBag}, - {gText_HeldItems}, - {gText_PokemonOrder}, + {COMPOUND_STRING("POKéNAV AND BAG")}, + {COMPOUND_STRING("HELD ITEMS")}, + {COMPOUND_STRING("POKéMON ORDER")}, {gText_Exit}, }; @@ -722,24 +722,24 @@ static const struct MenuAction MultichoiceList_GoOnRetire[] = static const struct MenuAction MultichoiceList_TVLati[] = { - {gText_Red}, - {gText_Blue}, + {COMPOUND_STRING("RED")}, + {COMPOUND_STRING("BLUE")}, }; static const struct MenuAction MultichoiceList_BattleTowerFeelings[] = { - {gText_IllBattleNow}, - {gText_IWon}, - {gText_ILost}, - {gText_IWontTell}, + {COMPOUND_STRING("I'll battle now!")}, + {COMPOUND_STRING("I won!")}, + {COMPOUND_STRING("I lost!")}, + {COMPOUND_STRING("I won't tell.")}, }; static const struct MenuAction MultichoiceList_WheresRayquaza[] = { - {gText_CaveOfOrigin}, - {gText_MtPyre}, - {gText_SkyPillar}, - {gText_DontRemember}, + {COMPOUND_STRING("CAVE OF ORIGIN")}, + {COMPOUND_STRING("MT. PYRE")}, + {COMPOUND_STRING("SKY PILLAR")}, + {COMPOUND_STRING("Don't remember")}, }; static const struct MenuAction MultichoiceList_SlateportTentRules[] = @@ -773,8 +773,8 @@ static const struct MenuAction MultichoiceList_TagMatchType[] = static const struct MenuAction MultichoiceList_BerryPlot[] = { - {gText_Fertilize}, - {gText_PlantBerry}, + {COMPOUND_STRING("FERTILIZE")}, + {COMPOUND_STRING("PLANT BERRY")}, {gText_Exit}, }; diff --git a/src/data/union_room.h b/src/data/union_room.h index 89b57c3d39..ada118b96a 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/daycare.c b/src/daycare.c index 7a31f15b27..013e0b05ba 100644 --- a/src/daycare.c +++ b/src/daycare.c @@ -716,17 +716,17 @@ static void InheritIVs(struct Pokemon *egg, struct DayCare *daycare) static void InheritPokeball(struct Pokemon *egg, struct BoxPokemon *father, struct BoxPokemon *mother) { - u16 inheritBall = ITEM_POKE_BALL; - u16 fatherBall = GetBoxMonData(father, MON_DATA_POKEBALL); - u16 motherBall = GetBoxMonData(mother, MON_DATA_POKEBALL); + enum PokeBall inheritBall = BALL_POKE; + enum PokeBall fatherBall = GetBoxMonData(father, MON_DATA_POKEBALL); + enum PokeBall motherBall = GetBoxMonData(mother, MON_DATA_POKEBALL); u16 fatherSpecies = GetBoxMonData(father, MON_DATA_SPECIES); u16 motherSpecies = GetBoxMonData(mother, MON_DATA_SPECIES); - if (fatherBall == ITEM_MASTER_BALL || fatherBall == ITEM_CHERISH_BALL) - fatherBall = ITEM_POKE_BALL; + if (fatherBall == BALL_MASTER || fatherBall == BALL_CHERISH || fatherBall == BALL_STRANGE) + fatherBall = BALL_POKE; - if (motherBall == ITEM_MASTER_BALL || motherBall == ITEM_CHERISH_BALL) - motherBall = ITEM_POKE_BALL; + if (motherBall == BALL_MASTER || motherBall == BALL_CHERISH || motherBall == BALL_STRANGE) + motherBall = BALL_POKE; if (P_BALL_INHERITING >= GEN_7) { @@ -996,6 +996,8 @@ static void GiveMoveIfItem(struct Pokemon *mon, struct DayCare *daycare) } } +STATIC_ASSERT(P_SCATTERBUG_LINE_FORM_BREED == SPECIES_SCATTERBUG_ICY_SNOW || (P_SCATTERBUG_LINE_FORM_BREED >= SPECIES_SCATTERBUG_POLAR && P_SCATTERBUG_LINE_FORM_BREED <= SPECIES_SCATTERBUG_POKEBALL), ScatterbugLineFormBreedMustBeAValidScatterbugForm); + static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parentSlots) { u16 i; @@ -1030,6 +1032,8 @@ static u16 DetermineEggSpeciesAndParentSlots(struct DayCare *daycare, u8 *parent eggSpecies = SPECIES_PHIONE; else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_ROTOM) eggSpecies = SPECIES_ROTOM; + else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_SCATTERBUG) + eggSpecies = P_SCATTERBUG_LINE_FORM_BREED; else if (GET_BASE_SPECIES_ID(eggSpecies) == SPECIES_FURFROU) eggSpecies = SPECIES_FURFROU; else if (eggSpecies == SPECIES_SINISTEA_ANTIQUE) @@ -1083,14 +1087,14 @@ static void _GiveEggFromDaycare(struct DayCare *daycare) void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) { u8 metLevel; - u16 ball; + enum PokeBall ball; u8 language; u8 metLocation; u8 isEgg; CreateMon(mon, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, FALSE, 0, OT_ID_PLAYER_ID, 0); metLevel = 0; - ball = ITEM_POKE_BALL; + ball = BALL_POKE; language = LANGUAGE_JAPANESE; SetMonData(mon, MON_DATA_POKEBALL, &ball); SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname); @@ -1110,14 +1114,14 @@ void CreateEgg(struct Pokemon *mon, u16 species, bool8 setHotSpringsLocation) static void SetInitialEggData(struct Pokemon *mon, u16 species, struct DayCare *daycare) { u32 personality; - u16 ball; + enum PokeBall ball; u8 metLevel; u8 language; personality = daycare->offspringPersonality; CreateMon(mon, species, EGG_HATCH_LEVEL, USE_RANDOM_IVS, TRUE, personality, OT_ID_PLAYER_ID, 0); metLevel = 0; - ball = ITEM_POKE_BALL; + ball = BALL_POKE; language = LANGUAGE_JAPANESE; SetMonData(mon, MON_DATA_POKEBALL, &ball); SetMonData(mon, MON_DATA_NICKNAME, sJapaneseEggNickname); diff --git a/src/debug.c b/src/debug.c index a3978fbd40..590e415b7e 100644 --- a/src/debug.c +++ b/src/debug.c @@ -89,6 +89,7 @@ enum UtilDebugMenu DEBUG_UTIL_MENU_ITEM_SAVEBLOCK, DEBUG_UTIL_MENU_ITEM_ROM_SPACE, DEBUG_UTIL_MENU_ITEM_WEATHER, + DEBUG_UTIL_MENU_ITEM_FONT_TEST, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS, @@ -365,6 +366,7 @@ static void DebugAction_Util_CheckSaveBlock(u8 taskId); static void DebugAction_Util_CheckROMSpace(u8 taskId); static void DebugAction_Util_Weather(u8 taskId); static void DebugAction_Util_Weather_SelectId(u8 taskId); +static void DebugAction_Util_FontTest(u8 taskId); static void DebugAction_Util_CheckWallClock(u8 taskId); static void DebugAction_Util_SetWallClock(u8 taskId); static void DebugAction_Util_WatchCredits(u8 taskId); @@ -453,6 +455,7 @@ static void DebugAction_BerryFunctions_Weeds(u8 taskId); extern const u8 Debug_FlagsNotSetOverworldConfigMessage[]; extern const u8 Debug_FlagsNotSetBattleConfigMessage[]; extern const u8 Debug_FlagsAndVarNotSetBattleConfigMessage[]; +extern const u8 Debug_EventScript_FontTest[]; extern const u8 Debug_EventScript_CheckEVs[]; extern const u8 Debug_EventScript_CheckIVs[]; extern const u8 Debug_EventScript_InflictStatus1[]; @@ -525,6 +528,7 @@ static const u8 sDebugText_Util_SaveBlockSpace[] = _("Save Block space static const u8 sDebugText_Util_ROMSpace[] = _("ROM space…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Util_Weather[] = _("Set weather…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Util_Weather_ID[] = _("Weather ID: {STR_VAR_3}\n{STR_VAR_1}\n{STR_VAR_2}"); +static const u8 sDebugText_Util_FontTest[] = _("Font Test…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Util_CheckWallClock[] = _("Check wall clock…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Util_SetWallClock[] = _("Set wall clock…{CLEAR_TO 110}{RIGHT_ARROW}"); static const u8 sDebugText_Util_WatchCredits[] = _("Watch credits…{CLEAR_TO 110}{RIGHT_ARROW}"); @@ -714,6 +718,7 @@ static const struct ListMenuItem sDebugMenu_Items_Utilities[] = [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {sDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK}, [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = {sDebugText_Util_ROMSpace, DEBUG_UTIL_MENU_ITEM_ROM_SPACE}, [DEBUG_UTIL_MENU_ITEM_WEATHER] = {sDebugText_Util_Weather, DEBUG_UTIL_MENU_ITEM_WEATHER}, + [DEBUG_UTIL_MENU_ITEM_FONT_TEST] = {sDebugText_Util_FontTest, DEBUG_UTIL_MENU_ITEM_FONT_TEST}, [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {sDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK}, [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {sDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK}, [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {sDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS}, @@ -884,6 +889,7 @@ static void (*const sDebugMenu_Actions_Utilities[])(u8) = [DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock, [DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = DebugAction_Util_CheckROMSpace, [DEBUG_UTIL_MENU_ITEM_WEATHER] = DebugAction_Util_Weather, + [DEBUG_UTIL_MENU_ITEM_FONT_TEST] = DebugAction_Util_FontTest, [DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock, [DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock, [DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits, @@ -2294,6 +2300,11 @@ static void DebugAction_Util_Weather_SelectId(u8 taskId) } } +static void DebugAction_Util_FontTest(u8 taskId) +{ + Debug_DestroyMenu_Full_Script(taskId, Debug_EventScript_FontTest); +} + static void DebugAction_Util_CheckWallClock(u8 taskId) { Debug_DestroyMenu_Full_Script(taskId, PlayersHouse_2F_EventScript_CheckWallClock); @@ -4174,12 +4185,12 @@ static void DebugAction_PCBag_Fill_PocketItems(u8 taskId) static void DebugAction_PCBag_Fill_PocketPokeBalls(u8 taskId) { - u16 itemId; + u16 ballId; - for (itemId = FIRST_BALL; itemId < LAST_BALL; itemId++) + for (ballId = BALL_STRANGE; ballId < POKEBALL_COUNT; ballId++) { - if (CheckBagHasSpace(itemId, MAX_BAG_ITEM_CAPACITY)) - AddBagItem(itemId, MAX_BAG_ITEM_CAPACITY); + if (CheckBagHasSpace(ballId, MAX_BAG_ITEM_CAPACITY)) + AddBagItem(ballId, MAX_BAG_ITEM_CAPACITY); } } diff --git a/src/decompress.c b/src/decompress.c index d9ad044ebb..59394bc772 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -130,18 +130,24 @@ void LoadSpecialPokePic(void *dest, s32 species, u32 personality, bool8 isFrontP if (isFrontPic) { + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].frontPicFemale != NULL && IsPersonalityFemale(species, personality)) LZ77UnCompWram(gSpeciesInfo[species].frontPicFemale, dest); - else if (gSpeciesInfo[species].frontPic != NULL) + else + #endif + if (gSpeciesInfo[species].frontPic != NULL) LZ77UnCompWram(gSpeciesInfo[species].frontPic, dest); else LZ77UnCompWram(gSpeciesInfo[SPECIES_NONE].frontPic, dest); } else { + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].backPicFemale != NULL && IsPersonalityFemale(species, personality)) LZ77UnCompWram(gSpeciesInfo[species].backPicFemale, dest); - else if (gSpeciesInfo[species].backPic != NULL) + else + #endif + if (gSpeciesInfo[species].backPic != NULL) LZ77UnCompWram(gSpeciesInfo[species].backPic, dest); else LZ77UnCompWram(gSpeciesInfo[SPECIES_NONE].backPic, dest); 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/src/egg_hatch.c b/src/egg_hatch.c index 88f2b329e9..ee45635ce7 100644 --- a/src/egg_hatch.c +++ b/src/egg_hatch.c @@ -314,7 +314,8 @@ static void CreateHatchedMon(struct Pokemon *egg, struct Pokemon *temp) { u16 species; u32 personality, pokerus; - u8 i, friendship, language, gameMet, markings, isModernFatefulEncounter, ball; + enum PokeBall ball; + u8 i, friendship, language, gameMet, markings, isModernFatefulEncounter; u16 moves[MAX_MON_MOVES]; u32 ivs[NUM_STATS]; diff --git a/src/ereader_screen.c b/src/ereader_screen.c index c625c78a9e..556acf8e3c 100755 --- a/src/ereader_screen.c +++ b/src/ereader_screen.c @@ -40,7 +40,10 @@ struct EReaderData static void Task_EReader(u8); -struct EReaderData gEReaderData; +// This belongs in COMMON somewhere between party_menu and ereader_screen, but it's unused so it's unclear where. +COMMON_DATA UNUSED u8 gUnknownSpace[64] = {0}; + +COMMON_DATA struct EReaderData gEReaderData = {0}; extern const u8 gMultiBootProgram_EReader_Start[]; extern const u8 gMultiBootProgram_EReader_End[]; diff --git a/src/event_object_movement.c b/src/event_object_movement.c index f8a56f8ef6..68e4288ee0 100644 --- a/src/event_object_movement.c +++ b/src/event_object_movement.c @@ -181,7 +181,6 @@ static void SpriteCB_CameraObject(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 ObjectEventSetSingleMovement(struct ObjectEvent *, struct Sprite *, u8); static void SetSpriteDataForNormalStep(struct Sprite *, u8, u8); static void InitSpriteForFigure8Anim(struct Sprite *); @@ -204,7 +203,6 @@ static const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u16 species, static bool8 NpcTakeStep(struct Sprite *); static bool8 IsElevationMismatchAt(u8, s16, s16); static bool8 AreElevationsCompatible(u8, u8); -static u16 PackGraphicsId(const struct ObjectEventTemplate *template); static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphicsId, u16 movementType, struct SpriteTemplate *spriteTemplate, const struct SubspriteTable **subspriteTables); static const struct SpriteFrameImage sPicTable_PechaBerryTree[]; @@ -1408,7 +1406,7 @@ static u8 InitObjectEventStateFromTemplate(const struct ObjectEventTemplate *tem y = template->y + MAP_OFFSET; objectEvent->active = TRUE; objectEvent->triggerGroundEffectsOnMove = TRUE; - objectEvent->graphicsId = PackGraphicsId(template); + objectEvent->graphicsId = template->graphicsId; SetObjectEventDynamicGraphicsId(objectEvent); if (IS_OW_MON_OBJ(objectEvent)) { @@ -1726,33 +1724,10 @@ static u8 TrySetupObjectEventSprite(const struct ObjectEventTemplate *objectEven return objectEventId; } -// Pack pokemon form info into a graphicsId, from a template's script -static u16 PackGraphicsId(const struct ObjectEventTemplate *template) -{ - u16 graphicsId = template->graphicsId; - u32 form = 0; - // set form based on template's script, - // if first command is bufferspeciesname - if (IS_OW_MON_OBJ(template)) - { - if (template->script && template->script[0] == 0x7d) - { - form = T1_READ_16(&template->script[2]); - form = (form >> 10) & 0x1F; - } - else if (template->trainerRange_berryTreeId) - { - form = template->trainerRange_berryTreeId & 0x1F; - } - graphicsId |= form << OBJ_EVENT_GFX_SPECIES_BITS; - } - return graphicsId; -} - static u8 TrySpawnObjectEventTemplate(const struct ObjectEventTemplate *objectEventTemplate, u8 mapNum, u8 mapGroup, s16 cameraX, s16 cameraY) { u8 objectEventId; - u16 graphicsId = PackGraphicsId(objectEventTemplate); + u16 graphicsId = objectEventTemplate->graphicsId; struct SpriteTemplate spriteTemplate; struct SpriteFrameImage spriteFrameImage; const struct ObjectEventGraphicsInfo *graphicsInfo; @@ -1918,6 +1893,51 @@ u8 CreateObjectGraphicsSpriteWithTag(u16 graphicsId, void (*callback)(struct Spr return spriteId; } +// Horrible workaround for sprite the visualizer, this should probably be reworked later +u8 CreateObjectGraphicsFollowerSpriteForVisualizer(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority, struct FollowerSpriteVisualizerData *data) +{ + struct SpriteTemplate *spriteTemplate; + const struct SubspriteTable *subspriteTables; + const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId); + struct Sprite *sprite; + u8 spriteId; + bool32 isShiny = data->isShiny; + + spriteTemplate = Alloc(sizeof(struct SpriteTemplate)); + CopyObjectGraphicsInfoToSpriteTemplate(graphicsId, callback, spriteTemplate, &subspriteTables); + + if (OW_GFX_COMPRESS) + { + // Checking only for compressed here so as not to mess with decorations + if (graphicsInfo->compressed) + spriteTemplate->tileTag = LoadSheetGraphicsInfo(graphicsInfo, graphicsId, NULL); + } + + if (spriteTemplate->paletteTag == OBJ_EVENT_PAL_TAG_DYNAMIC) + { + u32 paletteNum = LoadDynamicFollowerPaletteFromGraphicsId(graphicsId, isShiny, spriteTemplate); + spriteTemplate->paletteTag = GetSpritePaletteTagByPaletteNum(paletteNum); + } + else if (spriteTemplate->paletteTag != TAG_NONE) + { + LoadObjectEventPalette(spriteTemplate->paletteTag); + } + + spriteId = CreateSprite(spriteTemplate, x, y, subpriority); + + Free(spriteTemplate); + + if (spriteId != MAX_SPRITES && subspriteTables != NULL) + { + sprite = &gSprites[spriteId]; + if (OW_GFX_COMPRESS && graphicsInfo->compressed) + sprite->sheetSpan = GetSpanPerImage(sprite->oam.shape, sprite->oam.size); + SetSubspriteTables(sprite, subspriteTables); + sprite->subspriteMode = SUBSPRITES_IGNORE_PRIORITY; + } + return spriteId; +} + u8 CreateObjectGraphicsSprite(u16 graphicsId, void (*callback)(struct Sprite *), s16 x, s16 y, u8 subpriority) { return CreateObjectGraphicsSpriteWithTag(graphicsId, callback, x, y, subpriority, TAG_NONE); @@ -2007,11 +2027,13 @@ static const struct ObjectEventGraphicsInfo *SpeciesToGraphicsInfo(u16 species, graphicsInfo = &gSpeciesInfo[form ? SPECIES_UNOWN_B + form - 1 : species].overworldData; break; default: + #if P_GENDER_DIFFERENCES if (form == 1 && gSpeciesInfo[species].overworldDataFemale.paletteTag == OBJ_EVENT_PAL_TAG_DYNAMIC) { graphicsInfo = &gSpeciesInfo[species].overworldDataFemale; } else + #endif { graphicsInfo = &gSpeciesInfo[species].overworldData; } @@ -2045,6 +2067,7 @@ static u8 LoadDynamicFollowerPalette(u16 species, u8 form, bool32 shiny) if ((paletteNum = IndexOfSpritePaletteTag(palTag)) < 16) return paletteNum; spritePalette.tag = palTag; + #if P_GENDER_DIFFERENCES if (female && gSpeciesInfo[species].overworldPaletteFemale != NULL) { if (shiny) @@ -2053,6 +2076,7 @@ static u8 LoadDynamicFollowerPalette(u16 species, u8 form, bool32 shiny) spritePalette.data = gSpeciesInfo[species].overworldPaletteFemale; } else + #endif { if (shiny) spritePalette.data = gSpeciesInfo[species].overworldShinyPalette; @@ -3051,9 +3075,6 @@ const struct ObjectEventGraphicsInfo *GetObjectEventGraphicsInfo(u16 graphicsId) if (graphicsId >= OBJ_EVENT_GFX_VARS && graphicsId <= OBJ_EVENT_GFX_VAR_F) graphicsId = VarGetObjectEventGraphicsId(graphicsId - OBJ_EVENT_GFX_VARS); - if (graphicsId >= OBJ_EVENT_GFX_MON_BASE + SPECIES_SHINY_TAG) - graphicsId -= SPECIES_SHINY_TAG; - // graphicsId may contain mon form info if (graphicsId > OBJ_EVENT_GFX_SPECIES_MASK) { form = graphicsId >> OBJ_EVENT_GFX_SPECIES_BITS; @@ -3603,7 +3624,7 @@ static const struct ObjectEventTemplate *GetObjectEventTemplateByLocalIdAndMap(u return FindObjectEventTemplateByLocalId(localId, templates, count); } -static const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, const struct ObjectEventTemplate *templates, u8 count) +const struct ObjectEventTemplate *FindObjectEventTemplateByLocalId(u8 localId, const struct ObjectEventTemplate *templates, u8 count) { u8 i; @@ -7509,12 +7530,12 @@ static u8 LoadFillColorPalette(u16 color, u16 paletteTag, struct Sprite *sprite) static void ObjectEventSetPokeballGfx(struct ObjectEvent *objEvent) { #if OW_FOLLOWERS_POKEBALLS - u32 ball = BALL_POKE; + enum PokeBall ball = BALL_STRANGE; if (objEvent->localId == OBJ_EVENT_ID_FOLLOWER) { struct Pokemon *mon = GetFirstLiveMon(); if (mon) - ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); + ball = GetMonData(mon, MON_DATA_POKEBALL); } if (ball != BALL_POKE && ball < POKEBALL_COUNT) diff --git a/src/evolution_scene.c b/src/evolution_scene.c index 98879430cb..20eb136f39 100644 --- a/src/evolution_scene.c +++ b/src/evolution_scene.c @@ -47,7 +47,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] @@ -545,19 +545,13 @@ static void CB2_TradeEvolutionSceneUpdate(void) static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) { u32 data = 0; - #if P_SHEDINJA_BALL >= GEN_4 - u16 ball = ITEM_POKE_BALL; - #endif + u16 ball = ITEM_POKE_BALL; const struct Evolution *evolutions = GetSpeciesEvolutions(preEvoSpecies); if (evolutions == NULL) return; - if (evolutions[0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE - #if P_SHEDINJA_BALL >= GEN_4 - && (CheckBagHasItem(ball, 1)) - #endif - ) + if (evolutions[0].method == EVO_LEVEL_NINJASK && gPlayerPartyCount < PARTY_SIZE && (P_SHEDINJA_BALL < GEN_4 || CheckBagHasItem(ball, 1))) { s32 i; struct Pokemon *shedinja = &gPlayerParty[gPlayerPartyCount]; @@ -567,10 +561,11 @@ static void CreateShedinja(u16 preEvoSpecies, struct Pokemon *mon) SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_NICKNAME, GetSpeciesName(evolutions[1].targetSpecies)); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_HELD_ITEM, &data); SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_MARKINGS, &data); - #if P_SHEDINJA_BALL >= GEN_4 - SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_POKEBALL, &ball); - RemoveBagItem(ball, 1); - #endif + if (P_SHEDINJA_BALL >= GEN_4) + { + SetMonData(&gPlayerParty[gPlayerPartyCount], MON_DATA_POKEBALL, &ball); + RemoveBagItem(ball, 1); + } for (i = MON_DATA_COOL_RIBBON; i < MON_DATA_COOL_RIBBON + CONTEST_CATEGORIES_COUNT; i++) SetMonData(&gPlayerParty[gPlayerPartyCount], i, &data); @@ -867,7 +862,7 @@ static void Task_EvolutionScene(u8 taskId) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskId].tState++; @@ -885,7 +880,7 @@ static void Task_EvolutionScene(u8 taskId) { // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -894,7 +889,7 @@ static void Task_EvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "But, {mon} can't learn more than four moves" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -903,7 +898,7 @@ static void Task_EvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "Delete a move to make room for {move}?" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveYesState = MVSTATE_SHOW_MOVE_SELECT; gTasks[taskId].tLearnMoveNoState = MVSTATE_ASK_CANCEL; @@ -991,7 +986,7 @@ static void Task_EvolutionScene(u8 taskId) if (IsMoveHM(move)) { // Can't forget HMs - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState = MVSTATE_RETRY_AFTER_HM; } @@ -1008,14 +1003,14 @@ static void Task_EvolutionScene(u8 taskId) } break; case MVSTATE_FORGET_MSG_1: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; break; case MVSTATE_FORGET_MSG_2: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveState++; } @@ -1023,20 +1018,20 @@ static void Task_EvolutionScene(u8 taskId) case MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tState = EVOSTATE_LEARNED_MOVE; } break; case MVSTATE_ASK_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tLearnMoveYesState = MVSTATE_CANCEL; gTasks[taskId].tLearnMoveNoState = MVSTATE_INTRO_MSG_1; gTasks[taskId].tLearnMoveState = MVSTATE_PRINT_YES_NO; break; case MVSTATE_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE]); BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MSG); gTasks[taskId].tState = EVOSTATE_TRY_LEARN_MOVE; break; @@ -1270,7 +1265,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { BufferMoveToLearnIntoBattleTextBuff2(); PlayFanfare(MUS_LEVEL_UP); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNLEARNEDMOVE]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnsFirstMove = 0x40; // re-used as a counter gTasks[taskId].tState++; @@ -1288,7 +1283,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { // "{mon} is trying to learn {move}" BufferMoveToLearnIntoBattleTextBuff2(); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE1]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1297,7 +1292,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "But, {mon} can't learn more than four moves" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE2]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1306,7 +1301,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (!IsTextPrinterActive(0) && !IsSEPlaying()) { // "Delete a move to make room for {move}?" - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_TRYTOLEARNMOVE3]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveYesState = T_MVSTATE_SHOW_MOVE_SELECT; gTasks[taskId].tLearnMoveNoState = T_MVSTATE_ASK_CANCEL; @@ -1327,7 +1322,7 @@ static void Task_TradeEvolutionScene(u8 taskId) { case 0: // YES sEvoCursorPos = 0; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveYesState; if (gTasks[taskId].tLearnMoveState == T_MVSTATE_SHOW_MOVE_SELECT) @@ -1336,7 +1331,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case 1: // NO case MENU_B_PRESSED: sEvoCursorPos = 1; - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3 - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_EMPTYSTRING3]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = gTasks[taskId].tLearnMoveNoState; break; @@ -1375,7 +1370,7 @@ static void Task_TradeEvolutionScene(u8 taskId) if (IsMoveHM(move)) { // Can't forget HMs - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_HMMOVESCANTBEFORGOTTEN]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState = T_MVSTATE_RETRY_AFTER_HM; } @@ -1386,7 +1381,7 @@ static void Task_TradeEvolutionScene(u8 taskId) RemoveMonPPBonus(mon, var); SetMonMoveSlot(mon, gMoveToLearn, var); - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_123POOF]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1396,7 +1391,7 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_FORGET_MSG: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_PKMNFORGOTMOVE]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveState++; } @@ -1404,20 +1399,20 @@ static void Task_TradeEvolutionScene(u8 taskId) case T_MVSTATE_LEARNED_MOVE: if (!IsTextPrinterActive(0) && !IsSEPlaying()) { - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_ANDELLIPSIS]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tState = T_EVOSTATE_LEARNED_MOVE; } break; case T_MVSTATE_ASK_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_STOPLEARNINGMOVE]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tLearnMoveYesState = T_MVSTATE_CANCEL; gTasks[taskId].tLearnMoveNoState = T_MVSTATE_INTRO_MSG_1; gTasks[taskId].tLearnMoveState = T_MVSTATE_PRINT_YES_NO; break; case T_MVSTATE_CANCEL: - BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE - BATTLESTRINGS_TABLE_START]); + BattleStringExpandPlaceholdersToDisplayedString(gBattleStringsTable[STRINGID_DIDNOTLEARNMOVE]); DrawTextOnTradeWindow(0, gDisplayedStringBattle, 1); gTasks[taskId].tState = T_EVOSTATE_TRY_LEARN_MOVE; break; 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 2a20ae5a78..05da7d2041 100644 --- a/src/field_control_avatar.c +++ b/src/field_control_avatar.c @@ -42,7 +42,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_player_avatar.c b/src/field_player_avatar.c index 6cb46cb378..ebf61bdaa3 100644 --- a/src/field_player_avatar.c +++ b/src/field_player_avatar.c @@ -146,8 +146,9 @@ static bool32 Fishing_EndNoMon(struct Task *); static void AlignFishingAnimationFrames(void); static bool32 DoesFishingMinigameAllowCancel(void); static bool32 Fishing_DoesFirstMonInPartyHaveSuctionCupsOrStickyHold(void); -static bool32 Fishing_RollForBite(bool32); -static u32 CalculateFishingBiteOdds(bool32); +static bool32 Fishing_RollForBite(u32, bool32); +static u32 CalculateFishingBiteOdds(u32, bool32); +static u32 CalculateFishingFollowerBoost(void); static u32 CalculateFishingProximityBoost(u32 odds); static void GetCoordinatesAroundBobber(s16[], s16[][AXIS_COUNT], u32); static u32 CountQualifyingTiles(s16[][AXIS_COUNT], s16 player[], u8 facingDirection, struct ObjectEvent *objectEvent, bool32 isTileLand[]); @@ -1725,7 +1726,20 @@ static void Task_WaitStopSurfing(u8 taskId) #define FISHING_PROXIMITY_BOOST 4 #define FISHING_STICKY_BOOST 36 -#define FISHING_DEFAULT_ODDS 50 + +#if I_FISHING_BITE_ODDS >= GEN_4 + #define FISHING_OLD_ROD_ODDS 75 + #define FISHING_GOOD_ROD_ODDS 50 + #define FISHING_SUPER_ROD_ODDS 25 +#elif I_FISHING_BITE_ODDS >= GEN_3 + #define FISHING_OLD_ROD_ODDS 50 + #define FISHING_GOOD_ROD_ODDS 50 + #define FISHING_SUPER_ROD_ODDS 50 +#else + #define FISHING_OLD_ROD_ODDS 0 + #define FISHING_GOOD_ROD_ODDS 33 + #define FISHING_SUPER_ROD_ODDS 50 +#endif enum { @@ -1902,10 +1916,10 @@ static bool32 Fishing_CheckForBite(struct Task *task) firstMonHasSuctionOrSticky = Fishing_DoesFirstMonInPartyHaveSuctionCupsOrStickyHold(); if(firstMonHasSuctionOrSticky) - bite = Fishing_RollForBite(firstMonHasSuctionOrSticky); + bite = Fishing_RollForBite(task->tFishingRod, firstMonHasSuctionOrSticky); if (!bite) - bite = Fishing_RollForBite(FALSE); + bite = Fishing_RollForBite(task->tFishingRod, FALSE); if (!bite) task->tStep = FISHING_NOT_EVEN_NIBBLE; @@ -2127,22 +2141,58 @@ static bool32 Fishing_DoesFirstMonInPartyHaveSuctionCupsOrStickyHold(void) return (ability == ABILITY_SUCTION_CUPS || ability == ABILITY_STICKY_HOLD); } -static bool32 Fishing_RollForBite(bool32 isStickyHold) +static bool32 Fishing_RollForBite(u32 rod, bool32 isStickyHold) { - return ((Random() % 100) > CalculateFishingBiteOdds(isStickyHold)); + return ((Random() % 100) > CalculateFishingBiteOdds(rod, isStickyHold)); } -static u32 CalculateFishingBiteOdds(bool32 isStickyHold) +static u32 CalculateFishingBiteOdds(u32 rod, bool32 isStickyHold) { - u32 odds = FISHING_DEFAULT_ODDS; + u32 odds; + + if (rod == OLD_ROD) + odds = FISHING_OLD_ROD_ODDS; + if (rod == GOOD_ROD) + odds = FISHING_GOOD_ROD_ODDS; + if (rod == SUPER_ROD) + odds = FISHING_SUPER_ROD_ODDS; + + odds -= CalculateFishingFollowerBoost(); if (isStickyHold) - odds -= FISHING_STICKY_BOOST; + { + if (I_FISHING_STICKY_BOOST >= GEN_4) + odds -= (100 - odds); + else + odds -= FISHING_STICKY_BOOST; + } odds -= CalculateFishingProximityBoost(odds); + return odds; } +static u32 CalculateFishingFollowerBoost() +{ + u32 friendship; + struct Pokemon *mon = GetFirstLiveMon(); + + if (!I_FISHING_FOLLOWER_BOOST || !mon) + return 0; + + friendship = GetMonData(mon, MON_DATA_FRIENDSHIP); + if (friendship >= 250) + return 50; + else if (friendship >= 200) + return 40; + else if (friendship >= 150) + return 30; + else if (friendship >= 100) + return 20; + else + return 0; +} + static u32 CalculateFishingProximityBoost(u32 odds) { s16 player[AXIS_COUNT], bobber[AXIS_COUNT]; diff --git a/src/field_poison.c b/src/field_poison.c index 655bd9ec02..30ae7c21a7 100644 --- a/src/field_poison.c +++ b/src/field_poison.c @@ -93,7 +93,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; diff --git a/src/field_specials.c b/src/field_specials.c index 3c47a414c9..5ca6134bc5 100644 --- a/src/field_specials.c +++ b/src/field_specials.c @@ -30,6 +30,7 @@ #include "overworld.h" #include "party_menu.h" #include "pokeblock.h" +#include "pokedex.h" #include "pokemon.h" #include "pokemon_storage_system.h" #include "random.h" @@ -97,7 +98,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}; EWRAM_DATA u16 gScrollableMultichoice_ScrollOffset = 0; void TryLoseFansFromPlayTime(void); @@ -148,6 +149,15 @@ static void BufferFanClubTrainerName_(struct LinkBattleRecords *, u8, u8); static void BufferFanClubTrainerName_(u8 whichLinkTrainer, u8 whichNPCTrainer); #endif //FREE_LINK_BATTLE_RECORDS +static const u8 sText_BigGuy[] = _("Big guy"); +static const u8 sText_BigGirl[] = _("Big girl"); +static const u8 sText_Son[] = _("son"); +static const u8 sText_Daughter[] = _("daughter"); +static const u8 sText_99TimesPlus[] = _("99 times +"); +static const u8 sText_1MinutePlus[] = _("1 minute +"); +static const u8 sText_SpaceSeconds[] = _(" seconds"); +static const u8 sText_SpaceTimes[] = _(" time(s)"); + void Special_ShowDiploma(void) { SetMainCallback2(CB2_ShowDiploma); @@ -191,11 +201,11 @@ static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) if (numBikeCollisions < 100) { ConvertIntToDecimalStringN(gStringVar1, numBikeCollisions, STR_CONV_MODE_LEFT_ALIGN, 2); - StringAppend(gStringVar1, gText_SpaceTimes); + StringAppend(gStringVar1, sText_SpaceTimes); } else { - StringCopy(gStringVar1, gText_99TimesPlus); + StringCopy(gStringVar1, sText_99TimesPlus); } if (numFrames < 3600) @@ -203,11 +213,11 @@ static void DetermineCyclingRoadResults(u32 numFrames, u8 numBikeCollisions) ConvertIntToDecimalStringN(gStringVar2, numFrames / 60, STR_CONV_MODE_RIGHT_ALIGN, 2); gStringVar2[2] = CHAR_DEC_SEPARATOR; ConvertIntToDecimalStringN(&gStringVar2[3], ((numFrames % 60) * 100) / 60, STR_CONV_MODE_LEADING_ZEROS, 2); - StringAppend(gStringVar2, gText_SpaceSeconds); + StringAppend(gStringVar2, sText_SpaceSeconds); } else { - StringCopy(gStringVar2, gText_1MinutePlus); + StringCopy(gStringVar2, sText_1MinutePlus); } result = 0; @@ -273,7 +283,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) @@ -916,17 +926,17 @@ u8 GetPlayerTrainerIdOnesDigit(void) void GetPlayerBigGuyGirlString(void) { if (gSaveBlock2Ptr->playerGender == MALE) - StringCopy(gStringVar1, gText_BigGuy); + StringCopy(gStringVar1, sText_BigGuy); else - StringCopy(gStringVar1, gText_BigGirl); + StringCopy(gStringVar1, sText_BigGirl); } void GetRivalSonDaughterString(void) { if (gSaveBlock2Ptr->playerGender == MALE) - StringCopy(gStringVar1, gText_Daughter); + StringCopy(gStringVar1, sText_Daughter); else - StringCopy(gStringVar1, gText_Son); + StringCopy(gStringVar1, sText_Son); } u8 GetBattleOutcome(void) @@ -2421,89 +2431,89 @@ static const u8 *const sScrollableMultichoiceOptions[][MAX_SCROLL_MULTI_LENGTH] }, [SCROLL_MULTI_GLASS_WORKSHOP_VENDOR] = { - gText_BlueFlute, - gText_YellowFlute, - gText_RedFlute, - gText_WhiteFlute, - gText_BlackFlute, - gText_PrettyChair, - gText_PrettyDesk, + COMPOUND_STRING("BLUE FLUTE"), + COMPOUND_STRING("YELLOW FLUTE"), + COMPOUND_STRING("RED FLUTE"), + COMPOUND_STRING("WHITE FLUTE"), + COMPOUND_STRING("BLACK FLUTE"), + COMPOUND_STRING("PRETTY CHAIR"), + COMPOUND_STRING("PRETTY DESK"), gText_Exit }, [SCROLL_MULTI_POKEMON_FAN_CLUB_RATER] = { - gText_0Pts, - gText_10Pts, - gText_20Pts, - gText_30Pts, - gText_40Pts, - gText_50Pts, - gText_60Pts, - gText_70Pts, - gText_80Pts, - gText_90Pts, - gText_100Pts, - gText_QuestionMark + COMPOUND_STRING("0 pts"), + COMPOUND_STRING("10 pts"), + COMPOUND_STRING("20 pts"), + COMPOUND_STRING("30 pts"), + COMPOUND_STRING("40 pts"), + COMPOUND_STRING("50 pts"), + COMPOUND_STRING("60 pts"), + COMPOUND_STRING("70 pts"), + COMPOUND_STRING("80 pts"), + COMPOUND_STRING("90 pts"), + COMPOUND_STRING("100 pts"), + COMPOUND_STRING("?") }, [SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_1] = { - gText_KissPoster16BP, - gText_KissCushion32BP, - gText_SmoochumDoll32BP, - gText_TogepiDoll48BP, - gText_MeowthDoll48BP, - gText_ClefairyDoll48BP, - gText_DittoDoll48BP, - gText_CyndaquilDoll80BP, - gText_ChikoritaDoll80BP, - gText_TotodileDoll80BP, + COMPOUND_STRING("KISS POSTER{CLEAR_TO 0x5E}16BP"), + COMPOUND_STRING("KISS CUSHION{CLEAR_TO 0x5E}32BP"), + COMPOUND_STRING("SMOOCHUM DOLL{CLEAR_TO 0x5E}32BP"), + COMPOUND_STRING("TOGEPI DOLL{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("MEOWTH DOLL{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("CLEFAIRY DOLL{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("DITTO DOLL{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("CYNDAQUIL DOLL{CLEAR_TO 0x5E}80BP"), + COMPOUND_STRING("CHIKORITA DOLL{CLEAR_TO 0x5E}80BP"), + COMPOUND_STRING("TOTODILE DOLL{CLEAR_TO 0x5E}80BP"), gText_Exit }, [SCROLL_MULTI_BF_EXCHANGE_CORNER_DECOR_VENDOR_2] = { - gText_LaprasDoll128BP, - gText_SnorlaxDoll128BP, - gText_VenusaurDoll256BP, - gText_CharizardDoll256BP, - gText_BlastoiseDoll256BP, + COMPOUND_STRING("LAPRAS DOLL{CLEAR_TO 0x58}128BP"), + COMPOUND_STRING("SNORLAX DOLL{CLEAR_TO 0x58}128BP"), + COMPOUND_STRING("VENUSAUR DOLL{CLEAR_TO 0x58}256BP"), + COMPOUND_STRING("CHARIZARD DOLL{CLEAR_TO 0x58}256BP"), + COMPOUND_STRING("BLASTOISE DOLL{CLEAR_TO 0x58}256BP"), gText_Exit }, [SCROLL_MULTI_BF_EXCHANGE_CORNER_VITAMIN_VENDOR] = { - gText_Protein1BP, - gText_Calcium1BP, - gText_Iron1BP, - gText_Zinc1BP, - gText_Carbos1BP, - gText_HpUp1BP, + COMPOUND_STRING("PROTEIN{CLEAR_TO 0x64}1BP"), + COMPOUND_STRING("CALCIUM{CLEAR_TO 0x64}1BP"), + COMPOUND_STRING("IRON{CLEAR_TO 0x64}1BP"), + COMPOUND_STRING("ZINC{CLEAR_TO 0x64}1BP"), + COMPOUND_STRING("CARBOS{CLEAR_TO 0x64}1BP"), + COMPOUND_STRING("HP UP{CLEAR_TO 0x64}1BP"), gText_Exit }, [SCROLL_MULTI_BF_EXCHANGE_CORNER_HOLD_ITEM_VENDOR] = { - gText_Leftovers48BP, - gText_WhiteHerb48BP, - gText_QuickClaw48BP, - gText_MentalHerb48BP, - gText_BrightPowder64BP, - gText_ChoiceBand64BP, - gText_KingsRock64BP, - gText_FocusBand64BP, - gText_ScopeLens64BP, + COMPOUND_STRING("LEFTOVERS{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("WHITE HERB{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("QUICK CLAW{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("MENTAL HERB{CLEAR_TO 0x5E}48BP"), + COMPOUND_STRING("BRIGHTPOWDER{CLEAR_TO 0x5E}64BP"), + COMPOUND_STRING("CHOICE BAND{CLEAR_TO 0x5E}64BP"), + COMPOUND_STRING("KING'S ROCK{CLEAR_TO 0x5E}64BP"), + COMPOUND_STRING("FOCUS BAND{CLEAR_TO 0x5E}64BP"), + COMPOUND_STRING("SCOPE LENS{CLEAR_TO 0x5E}64BP"), gText_Exit }, [SCROLL_MULTI_BERRY_POWDER_VENDOR] = { - gText_EnergyPowder50, - gText_EnergyRoot80, - gText_HealPowder50, - gText_RevivalHerb300, - gText_Protein1000, - gText_Iron1000, - gText_Carbos1000, - gText_Calcium1000, - gText_Zinc1000, - gText_HPUp1000, - gText_PPUp3000, + COMPOUND_STRING("ENERGYPOWDER{CLEAR_TO 114}{FONT_SMALL}50"), + COMPOUND_STRING("ENERGY ROOT{CLEAR_TO 114}{FONT_SMALL}80"), + COMPOUND_STRING("HEAL POWDER{CLEAR_TO 114}{FONT_SMALL}50"), + COMPOUND_STRING("REVIVAL HERB{CLEAR_TO 108}{FONT_SMALL}300"), + COMPOUND_STRING("PROTEIN{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("IRON{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("CARBOS{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("CALCIUM{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("ZINC{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("HP UP{CLEAR_TO 99}{FONT_SMALL}1,000"), + COMPOUND_STRING("PP UP{CLEAR_TO 99}{FONT_SMALL}3,000"), gText_Exit }, [SCROLL_MULTI_BF_RECEPTIONIST] = @@ -2521,30 +2531,30 @@ static const u8 *const sScrollableMultichoiceOptions[][MAX_SCROLL_MULTI_LENGTH] }, [SCROLL_MULTI_BF_MOVE_TUTOR_1] = { - gText_Softboiled16BP, - gText_SeismicToss24BP, - gText_DreamEater24BP, - gText_MegaPunch24BP, - gText_MegaKick48BP, - gText_BodySlam48BP, - gText_RockSlide48BP, - gText_Counter48BP, - gText_ThunderWave48BP, - gText_SwordsDance48BP, + COMPOUND_STRING("SOFTBOILED{CLEAR_TO 0x4E}16BP"), + COMPOUND_STRING("SEISMIC TOSS{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("DREAM EATER{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("MEGA PUNCH{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("MEGA KICK{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("BODY SLAM{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("ROCK SLIDE{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("COUNTER{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("THUNDER WAVE{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("SWORDS DANCE{CLEAR_TO 0x4E}48BP"), gText_Exit }, [SCROLL_MULTI_BF_MOVE_TUTOR_2] = { - gText_DefenseCurl16BP, - gText_Snore24BP, - gText_MudSlap24BP, - gText_Swift24BP, - gText_IcyWind24BP, - gText_Endure48BP, - gText_PsychUp48BP, - gText_IcePunch48BP, - gText_ThunderPunch48BP, - gText_FirePunch48BP, + COMPOUND_STRING("DEFENSE CURL{CLEAR_TO 0x4E}16BP"), + COMPOUND_STRING("SNORE{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("MUD-SLAP{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("SWIFT{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("ICY WIND{CLEAR_TO 0x4E}24BP"), + COMPOUND_STRING("ENDURE{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("PSYCH UP{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("ICE PUNCH{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("THUNDERPUNCH{CLEAR_TO 0x4E}48BP"), + COMPOUND_STRING("FIRE PUNCH{CLEAR_TO 0x4E}48BP"), gText_Exit }, [SCROLL_MULTI_SS_TIDAL_DESTINATION] = @@ -3552,7 +3562,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; @@ -3889,14 +3899,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) { @@ -4279,6 +4289,55 @@ void PreparePartyForSkyBattle(void) CompactPartySlots(); } +void GetObjectPosition(u16* xPointer, u16* yPointer, u32 localId, u32 useTemplate) +{ + u32 objectId; + struct ObjectEvent* objEvent; + + if (useTemplate) + { + const struct ObjectEventTemplate *objTemplate = FindObjectEventTemplateByLocalId(localId, gSaveBlock1Ptr->objectEventTemplates, gMapHeader.events->objectEventCount); + *xPointer = objTemplate->x; + *yPointer = objTemplate->y; + return; + } + + objectId = GetObjectEventIdByLocalId(localId); + objEvent = &gObjectEvents[objectId]; + *xPointer = objEvent->currentCoords.x - 7; + *yPointer = objEvent->currentCoords.y - 7; +} + +bool32 CheckObjectAtXY(u32 x, u32 y) +{ + u32 i; + + for (i = 0; i < OBJECT_EVENTS_COUNT; i++) + { + if (!gObjectEvents[i].active) + continue; + + if (gObjectEvents[i].currentCoords.x != x) + continue; + + if (gObjectEvents[i].currentCoords.y != y) + continue; + return TRUE; + } + return FALSE; +} + +bool32 CheckPartyHasSpecies(u32 givenSpecies) +{ + u32 partyIndex; + + for (partyIndex = 0; partyIndex < CalculatePlayerPartyCount(); partyIndex++) + if (GetMonData(&gPlayerParty[partyIndex], MON_DATA_SPECIES) == givenSpecies) + return TRUE; + + return FALSE; +} + void UseBlankMessageToCancelPokemonPic(void) { u8 t = EOS; diff --git a/src/fieldmap.c b/src/fieldmap.c index 0fa60b964f..559761c63c 100644 --- a/src/fieldmap.c +++ b/src/fieldmap.c @@ -32,7 +32,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/fldeff_dig.c b/src/fldeff_dig.c index c3ab989cd8..63eb848bf2 100644 --- a/src/fldeff_dig.c +++ b/src/fldeff_dig.c @@ -1,11 +1,13 @@ #include "global.h" #include "braille_puzzles.h" +#include "event_scripts.h" #include "field_effect.h" #include "field_player_avatar.h" #include "fldeff.h" #include "item_use.h" #include "overworld.h" #include "party_menu.h" +#include "script.h" #include "sprite.h" #include "constants/field_effects.h" @@ -31,8 +33,8 @@ bool8 SetUpFieldMove_Dig(void) static void FieldCallback_Dig(void) { Overworld_ResetStateAfterDigEscRope(); - FieldEffectStart(FLDEFF_USE_DIG); gFieldEffectArguments[0] = GetCursorSelectionMonId(); + ScriptContext_SetupScript(EventScript_UseDig); } bool8 FldEff_UseDig(void) @@ -53,7 +55,8 @@ static void StartDigFieldEffect(void) FieldEffectActiveListRemove(FLDEFF_USE_DIG); if (ShouldDoBrailleDigEffect()) { - DoBrailleDigEffect(); + // EventScript_DigSealedChamber handles DoBrailleDigEffect call + ScriptContext_Enable(); } else { diff --git a/src/fonts.c b/src/fonts.c index 3f2c536985..2eb8ed062b 100644 --- a/src/fonts.c +++ b/src/fonts.c @@ -17,7 +17,7 @@ ALIGNED(4) const u8 gFontSmallNarrowLatinGlyphWidths[] = { 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 4, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 7, - 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 8, 3, 3, 3, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -53,7 +53,7 @@ ALIGNED(4) const u8 gFontSmallLatinGlyphWidths[] = { 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, - 7, 5, 5, 5, 5, 5, 5, 9, 3, 3, 3, 3, 3, 3, 3, 3, + 7, 5, 5, 5, 5, 5, 5, 9, 3, 3, 3, 8, 3, 3, 3, 3, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -89,7 +89,7 @@ ALIGNED(4) const u8 gFontNarrowLatinGlyphWidths[] = { 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 8, - 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 8, 3, 3, 3, 3, 10, 10, 10, 10, 8, 8, 10, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -125,7 +125,7 @@ ALIGNED(4) const u8 gFontShortLatinGlyphWidths[] = { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 5, 6, 6, 4, 6, 5, 5, 6, 5, 6, 6, 6, 5, 5, 5, 6, 6, 6, 6, 6, 6, 8, - 5, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 8, 3, 3, 3, 3, 12, 12, 12, 12, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -161,7 +161,7 @@ ALIGNED(4) const u8 gFontNormalLatinGlyphWidths[] = { 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 4, 5, 6, 4, 6, 6, 6, 6, 6, 5, 6, 6, 6, 6, 6, 6, 6, 6, 8, - 3, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 6, 6, 6, 6, 6, 6, 3, 3, 3, 3, 8, 3, 3, 3, 3, 10, 10, 10, 10, 8, 10, 10, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -197,7 +197,7 @@ ALIGNED(4) const u8 gFontNarrowerLatinGlyphWidths[] = { 4, 4, 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 8, 3, 3, 3, 3, 10, 10, 10, 10, 8, 8, 10, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -233,7 +233,7 @@ ALIGNED(4) const u8 gFontSmallNarrowerLatinGlyphWidths[] = { 4, 4, 4, 4, 4, 4, 4, 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 3, 4, 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 7, - 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 8, 3, 3, 3, 3, 8, 8, 8, 8, 8, 7, 8, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -269,7 +269,7 @@ ALIGNED(4) const u8 gFontShortNarrowLatinGlyphWidths[] = { 5, 5, 5, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 5, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 4, 5, 5, 4, 6, 5, 5, 5, 5, 5, 5, 4, 5, 5, 6, 4, 5, 5, 8, - 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5, 5, 5, 5, 5, 5, 5, 3, 3, 3, 3, 8, 3, 3, 3, 3, 12, 12, 12, 12, 8, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, @@ -288,6 +288,42 @@ ALIGNED(4) const u8 gFontShortNarrowLatinGlyphWidths[] = { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, }; +ALIGNED(4) const u16 gFontShortNarrowerLatinGlyphs[] = INCBIN_U16("graphics/fonts/short_narrower.latfont"); +ALIGNED(4) const u8 gFontShortNarrowerLatinGlyphWidths[] = { + 1, 4, 4, 4, 4, 4, 4, 4, 4, 4, 3, 4, 4, 4, 4, 4, + 8, 4, 4, 4, 5, 5, 4, 4, 3, 4, 4, 4, 4, 4, 4, 3, + 4, 4, 4, 4, 4, 6, 4, 4, 4, 5, 4, 5, 8, 6, 6, 3, + 3, 3, 3, 3, 8, 8, 3, 5, 5, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 5, 5, 4, 8, 8, 8, 7, 8, 8, 4, 4, 6, 4, 4, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 4, 3, 3, 3, 3, 3, 3, 4, + 3, 3, 3, 3, 3, 3, 3, 5, 3, 7, 7, 7, 7, 0, 0, 3, + 4, 5, 6, 7, 4, 6, 6, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 7, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 3, 5, 3, + 5, 5, 5, 3, 3, 5, 5, 6, 3, 6, 6, 4, 4, 4, 4, 4, + 4, 4, 4, 4, 4, 4, 4, 5, 5, 4, 4, 4, 4, 4, 4, 4, + 4, 5, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 2, 4, 4, + 2, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 8, + 4, 4, 4, 4, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 10, 10, 10, 10, 8, 8, 10, 8, 10, 10, 10, 10, 10, 10, 10, 10, + 10, 10, 10, 10, 10, 10, 10, 10, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 3, +}; + ALIGNED(4) const u16 gFontSmallJapaneseGlyphs[] = INCBIN_U16("graphics/fonts/small.hwjpnfont"); ALIGNED(4) const u16 gFontNormalJapaneseGlyphs[] = INCBIN_U16("graphics/fonts/normal.hwjpnfont"); 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/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/src/graphics.c b/src/graphics.c index 3bb97835d2..239062726d 100644 --- a/src/graphics.c +++ b/src/graphics.c @@ -1263,6 +1263,9 @@ const u32 gBattleAnimSpriteGfx_XSign[] = INCBIN_U32("graphics/battle_anims/sprit const u32 gBattleAnimSpriteGfx_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.4bpp.lz"); const u32 gBattleAnimSpritePal_BluegreenOrb[] = INCBIN_U32("graphics/battle_anims/sprites/bluegreen_orb.gbapal.lz"); +const u32 gBattleAnimSpriteGfx_PinkVioletOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pinkvio_orb.4bpp.lz"); +const u32 gBattleAnimSpritePal_PinkVioletOrb[] = INCBIN_U32("graphics/battle_anims/sprites/pinkvio_orb.gbapal.lz"); + const u32 gBattleAnimSpriteGfx_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.4bpp.lz"); const u32 gBattleAnimSpritePal_PawPrint[] = INCBIN_U32("graphics/battle_anims/sprites/paw_print.gbapal.lz"); 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 e575f4e0fa..5409833733 100644 --- a/src/intro.c +++ b/src/intro.c @@ -112,6 +112,13 @@ extern const struct CompressedSpriteSheet gBattleAnimPicTable[]; extern const struct CompressedSpritePalette gBattleAnimPaletteTable[]; extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[]; +enum { + COPYRIGHT_INITIALIZE, + COPYRIGHT_EMULATOR_BLEND, + COPYRIGHT_START_FADE = 140, + COPYRIGHT_START_INTRO, +}; + #define TAG_VOLBEAT 1500 #define TAG_TORCHIC 1501 #define TAG_MANECTRIC 1502 @@ -172,8 +179,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"); @@ -1067,7 +1074,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); @@ -1098,14 +1105,14 @@ static u8 SetUpCopyrightScreen(void) GameCubeMultiBoot_Init(&gMultibootProgramStruct); // REG_DISPCNT needs to be overwritten the second time, because otherwise the intro won't show up on VBA 1.7.2 and John GBA Lite emulators. // The REG_DISPCNT overwrite is NOT needed in m-GBA, No$GBA, VBA 1.8.0, My Boy and Pizza Boy GBA emulators. - case 1: + case COPYRIGHT_EMULATOR_BLEND: REG_DISPCNT = DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_BG0_ON; default: UpdatePaletteFade(); gMain.state++; GameCubeMultiBoot_Main(&gMultibootProgramStruct); break; - case 140: + case COPYRIGHT_START_FADE: GameCubeMultiBoot_Main(&gMultibootProgramStruct); if (gMultibootProgramStruct.gcmb_field_2 != 1) { @@ -1113,7 +1120,7 @@ static u8 SetUpCopyrightScreen(void) gMain.state++; } break; - case 141: + case COPYRIGHT_START_INTRO: if (UpdatePaletteFade()) break; #if EXPANSION_INTRO == TRUE 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/src/item.c b/src/item.c index 6c3742fd76..b0135d8f83 100644 --- a/src/item.c +++ b/src/item.c @@ -1,6 +1,7 @@ #include "global.h" #include "item.h" #include "berry.h" +#include "pokeball.h" #include "string_util.h" #include "text.h" #include "event_data.h" @@ -166,11 +167,11 @@ bool8 HasAtLeastOneBerry(void) bool8 HasAtLeastOnePokeBall(void) { - u16 i; + u16 ballId; - for (i = FIRST_BALL; i <= LAST_BALL; i++) + for (ballId = BALL_STRANGE; ballId < POKEBALL_COUNT; ballId++) { - if (CheckBagHasItem(i, 1) == TRUE) + if (CheckBagHasItem(ballId, 1) == TRUE) return TRUE; } return FALSE; @@ -916,6 +917,11 @@ u8 ItemId_GetImportance(u16 itemId) return gItemsInfo[SanitizeItemId(itemId)].importance; } +u8 ItemId_GetConsumability(u16 itemId) +{ + return !gItemsInfo[SanitizeItemId(itemId)].notConsumed; +} + u8 ItemId_GetPocket(u16 itemId) { return gItemsInfo[SanitizeItemId(itemId)].pocket; @@ -963,7 +969,7 @@ u8 ItemId_GetBattleUsage(u16 itemId) return gItemsInfo[item].battleUsage; } -u8 ItemId_GetSecondaryId(u16 itemId) +u32 ItemId_GetSecondaryId(u32 itemId) { return gItemsInfo[SanitizeItemId(itemId)].secondaryId; } diff --git a/src/item_menu.c b/src/item_menu.c index d885f0a8ec..709dded46b 100755 --- a/src/item_menu.c +++ b/src/item_menu.c @@ -212,6 +212,12 @@ static void ConfirmSell(u8); static void CancelSell(u8); static void Task_FadeAndCloseBagMenuIfMulch(u8 taskId); +static const u8 sText_Var1CantBeHeldHere[] = _("The {STR_VAR_1} can't be held\nhere."); +static const u8 sText_DepositHowManyVar1[] = _("Deposit how many\n{STR_VAR_1}?"); +static const u8 sText_DepositedVar2Var1s[] = _("Deposited {STR_VAR_2}\n{STR_VAR_1}."); +static const u8 sText_NoRoomForItems[] = _("There's no room to\nstore items."); +static const u8 sText_CantStoreImportantItems[] = _("Important items\ncan't be stored in\nthe PC!"); + static const struct BgTemplate sBgTemplates_ItemMenu[] = { { @@ -266,20 +272,20 @@ static const struct ListMenuTemplate sItemListMenu = }; static const struct MenuAction sItemMenuActions[] = { - [ACTION_USE] = {gMenuText_Use, {ItemMenu_UseOutOfBattle}}, - [ACTION_TOSS] = {gMenuText_Toss, {ItemMenu_Toss}}, - [ACTION_REGISTER] = {gMenuText_Register, {ItemMenu_Register}}, - [ACTION_GIVE] = {gMenuText_Give, {ItemMenu_Give}}, - [ACTION_CANCEL] = {gText_Cancel2, {ItemMenu_Cancel}}, - [ACTION_BATTLE_USE] = {gMenuText_Use, {ItemMenu_UseInBattle}}, - [ACTION_CHECK] = {gMenuText_Check, {ItemMenu_UseOutOfBattle}}, - [ACTION_WALK] = {gMenuText_Walk, {ItemMenu_UseOutOfBattle}}, - [ACTION_DESELECT] = {gMenuText_Deselect, {ItemMenu_Register}}, - [ACTION_CHECK_TAG] = {gMenuText_CheckTag, {ItemMenu_CheckTag}}, - [ACTION_CONFIRM] = {gMenuText_Confirm, {Task_FadeAndCloseBagMenu}}, - [ACTION_SHOW] = {gMenuText_Show, {ItemMenu_Show}}, - [ACTION_GIVE_FAVOR_LADY] = {gMenuText_Give2, {ItemMenu_GiveFavorLady}}, - [ACTION_CONFIRM_QUIZ_LADY] = {gMenuText_Confirm, {ItemMenu_ConfirmQuizLady}}, + [ACTION_USE] = {gMenuText_Use, {ItemMenu_UseOutOfBattle}}, + [ACTION_TOSS] = {gMenuText_Toss, {ItemMenu_Toss}}, + [ACTION_REGISTER] = {gMenuText_Register, {ItemMenu_Register}}, + [ACTION_GIVE] = {gMenuText_Give, {ItemMenu_Give}}, + [ACTION_CANCEL] = {gText_Cancel2, {ItemMenu_Cancel}}, + [ACTION_BATTLE_USE] = {gMenuText_Use, {ItemMenu_UseInBattle}}, + [ACTION_CHECK] = {COMPOUND_STRING("CHECK"), {ItemMenu_UseOutOfBattle}}, + [ACTION_WALK] = {COMPOUND_STRING("WALK"), {ItemMenu_UseOutOfBattle}}, + [ACTION_DESELECT] = {COMPOUND_STRING("CHECK TAG"), {ItemMenu_Register}}, + [ACTION_CHECK_TAG] = {COMPOUND_STRING("DESELECT"), {ItemMenu_CheckTag}}, + [ACTION_CONFIRM] = {gMenuText_Confirm, {Task_FadeAndCloseBagMenu}}, + [ACTION_SHOW] = {COMPOUND_STRING("SHOW"), {ItemMenu_Show}}, + [ACTION_GIVE_FAVOR_LADY] = {gMenuText_Give2, {ItemMenu_GiveFavorLady}}, + [ACTION_CONFIRM_QUIZ_LADY] = {gMenuText_Confirm, {ItemMenu_ConfirmQuizLady}}, [ACTION_DUMMY] = {gText_EmptyString2, {NULL}} }; @@ -2038,7 +2044,7 @@ static void Task_ItemContext_GiveToParty(u8 taskId) else if (!IsHoldingItemAllowed(gSpecialVar_ItemId)) { CopyItemName(gSpecialVar_ItemId, gStringVar1); - StringExpandPlaceholders(gStringVar4, gText_Var1CantBeHeldHere); + StringExpandPlaceholders(gStringVar4, sText_Var1CantBeHeldHere); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, HandleErrorMessage); } else if (gBagPosition.pocket != KEYITEMS_POCKET && !ItemId_GetImportance(gSpecialVar_ItemId)) @@ -2236,7 +2242,7 @@ static void Task_ItemContext_Deposit(u8 taskId) { u8 *end = CopyItemNameHandlePlural(gSpecialVar_ItemId, gStringVar1, 2); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(WIN_DESCRIPTION) - 10 - 6); - StringExpandPlaceholders(gStringVar4, gText_DepositHowManyVar1); + StringExpandPlaceholders(gStringVar4, sText_DepositHowManyVar1); FillWindowPixelBuffer(WIN_DESCRIPTION, PIXEL_FILL(0)); BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); AddItemQuantityWindow(ITEMWIN_QUANTITY); @@ -2276,7 +2282,7 @@ static void TryDepositItem(u8 taskId) if (ItemId_GetImportance(gSpecialVar_ItemId)) { // Can't deposit important items - BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, gText_CantStoreImportantItems, 3, 1, 0, 0, 0, COLORID_NORMAL); + BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, sText_CantStoreImportantItems, 3, 1, 0, 0, 0, COLORID_NORMAL); gTasks[taskId].func = WaitDepositErrorMessage; } else if (AddPCItem(gSpecialVar_ItemId, tItemCount) == TRUE) @@ -2285,14 +2291,14 @@ static void TryDepositItem(u8 taskId) u8 *end = CopyItemNameHandlePlural(gSpecialVar_ItemId, gStringVar1, tItemCount); WrapFontIdToFit(gStringVar1, end, FONT_NORMAL, WindowWidthPx(WIN_DESCRIPTION) - 10 - 6); ConvertIntToDecimalStringN(gStringVar2, tItemCount, STR_CONV_MODE_LEFT_ALIGN, MAX_ITEM_DIGITS); - StringExpandPlaceholders(gStringVar4, gText_DepositedVar2Var1s); + StringExpandPlaceholders(gStringVar4, sText_DepositedVar2Var1s); BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, gStringVar4, 3, 1, 0, 0, 0, COLORID_NORMAL); gTasks[taskId].func = Task_RemoveItemFromBag; } else { // No room to deposit - BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, gText_NoRoomForItems, 3, 1, 0, 0, 0, COLORID_NORMAL); + BagMenu_Print(WIN_DESCRIPTION, FONT_NORMAL, sText_NoRoomForItems, 3, 1, 0, 0, 0, COLORID_NORMAL); gTasks[taskId].func = WaitDepositErrorMessage; } } diff --git a/src/item_use.c b/src/item_use.c index c04d9b9911..2dc33b164c 100644 --- a/src/item_use.c +++ b/src/item_use.c @@ -80,6 +80,21 @@ static void CB2_OpenPokeblockFromBag(void); static void ItemUseOnFieldCB_Honey(u8 taskId); static bool32 IsValidLocationForVsSeeker(void); +static const u8 sText_CantDismountBike[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); +static const u8 sText_ItemFinderNearby[] = _("Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}"); +static const u8 sText_ItemFinderOnTop[] = _("Oh!\nThe ITEMFINDER's shaking wildly!{PAUSE_UNTIL_PRESS}"); +static const u8 sText_ItemFinderNothing[] = _("… … … …Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}"); +static const u8 sText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +static const u8 sText_PowderQty[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); +static const u8 sText_BootedUpTM[] = _("Booted up a TM."); +static const u8 sText_BootedUpHM[] = _("Booted up an HM."); +static const u8 sText_TMHMContainedVar1[] = _("It contained\n{STR_VAR_1}.\pTeach {STR_VAR_1}\nto a POKéMON?"); +static const u8 sText_UsedVar2WildLured[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); +static const u8 sText_UsedVar2WildRepelled[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); +static const u8 sText_PlayedPokeFluteCatchy[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); +static const u8 sText_PlayedPokeFlute[] = _("Played the POKé FLUTE."); +static const u8 sText_PokeFluteAwakenedMon[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); + // EWRAM variables EWRAM_DATA static void(*sItemUseOnFieldCB)(u8 taskId) = NULL; @@ -168,7 +183,7 @@ void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKey static void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) { - DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_CantDismountBike); + DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, sText_CantDismountBike); } static void Task_CloseCantUseKeyItemMessage(u8 taskId) @@ -322,7 +337,7 @@ static void ItemUseOnFieldCB_Itemfinder(u8 taskId) if (ItemfinderCheckForHiddenItems(gMapHeader.events, taskId) == TRUE) gTasks[taskId].func = Task_UseItemfinder; else - DisplayItemMessageOnField(taskId, gText_ItemFinderNothing, Task_CloseItemfinderMessage); + DisplayItemMessageOnField(taskId, sText_ItemFinderNothing, Task_CloseItemfinderMessage); } // Define itemfinder task data @@ -615,7 +630,7 @@ static void PlayerFaceHiddenItem(u8 direction) static void Task_HiddenItemNearby(u8 taskId) { if (ObjectEventCheckHeldMovementStatus(&gObjectEvents[GetObjectEventIdByLocalIdAndMap(OBJ_EVENT_ID_PLAYER, 0, 0)]) == TRUE) - DisplayItemMessageOnField(taskId, gText_ItemFinderNearby, Task_CloseItemfinderMessage); + DisplayItemMessageOnField(taskId, sText_ItemFinderNearby, Task_CloseItemfinderMessage); } static void Task_StandingOnHiddenItem(u8 taskId) @@ -632,7 +647,7 @@ static void Task_StandingOnHiddenItem(u8 taskId) tCounter++; if (tCounter == 4) - DisplayItemMessageOnField(taskId, gText_ItemFinderOnTop, Task_CloseItemfinderMessage); + DisplayItemMessageOnField(taskId, sText_ItemFinderOnTop, Task_CloseItemfinderMessage); } } @@ -693,7 +708,7 @@ static void Task_AccessPokemonBoxLink(u8 taskId) void ItemUseOutOfBattle_CoinCase(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetCoins(), STR_CONV_MODE_LEFT_ALIGN, 4); - StringExpandPlaceholders(gStringVar4, gText_CoinCase); + StringExpandPlaceholders(gStringVar4, sText_CoinCase); if (!gTasks[taskId].tUsingRegisteredKeyItem) { @@ -708,7 +723,7 @@ void ItemUseOutOfBattle_CoinCase(u8 taskId) void ItemUseOutOfBattle_PowderJar(u8 taskId) { ConvertIntToDecimalStringN(gStringVar1, GetBerryPowder(), STR_CONV_MODE_LEFT_ALIGN, 5); - StringExpandPlaceholders(gStringVar4, gText_PowderQty); + StringExpandPlaceholders(gStringVar4, sText_PowderQty); if (!gTasks[taskId].tUsingRegisteredKeyItem) { @@ -858,9 +873,9 @@ void ItemUseOutOfBattle_DynamaxCandy(u8 taskId) void ItemUseOutOfBattle_TMHM(u8 taskId) { if (gSpecialVar_ItemId >= ITEM_HM01) - DisplayItemMessage(taskId, FONT_NORMAL, gText_BootedUpHM, BootUpSoundTMHM); // HM + DisplayItemMessage(taskId, FONT_NORMAL, sText_BootedUpHM, BootUpSoundTMHM); // HM else - DisplayItemMessage(taskId, FONT_NORMAL, gText_BootedUpTM, BootUpSoundTMHM); // TM + DisplayItemMessage(taskId, FONT_NORMAL, sText_BootedUpTM, BootUpSoundTMHM); // TM } static void BootUpSoundTMHM(u8 taskId) @@ -874,7 +889,7 @@ static void Task_ShowTMHMContainedMessage(u8 taskId) if (JOY_NEW(A_BUTTON | B_BUTTON)) { StringCopy(gStringVar1, GetMoveName(ItemIdToBattleMoveId(gSpecialVar_ItemId))); - StringExpandPlaceholders(gStringVar4, gText_TMHMContainedVar1); + StringExpandPlaceholders(gStringVar4, sText_TMHMContainedVar1); DisplayItemMessage(taskId, FONT_NORMAL, gStringVar4, UseTMHMYesNo); } } @@ -1015,13 +1030,13 @@ void ItemUseOutOfBattle_BlackWhiteFlute(u8 taskId) { FlagSet(FLAG_SYS_ENC_UP_ITEM); FlagClear(FLAG_SYS_ENC_DOWN_ITEM); - StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildLured); + StringExpandPlaceholders(gStringVar4, sText_UsedVar2WildLured); } else { FlagSet(FLAG_SYS_ENC_DOWN_ITEM); FlagClear(FLAG_SYS_ENC_UP_ITEM); - StringExpandPlaceholders(gStringVar4, gText_UsedVar2WildRepelled); + StringExpandPlaceholders(gStringVar4, sText_UsedVar2WildRepelled); } gTasks[taskId].data[8] = 0; gTasks[taskId].func = Task_UsedBlackWhiteFlute; @@ -1504,9 +1519,9 @@ static void Task_DisplayPokeFluteMessage(u8 taskId) if (WaitFanfare(FALSE)) { if (gTasks[taskId].data[3] == 0) - DisplayItemMessage(taskId, FONT_NORMAL, gText_PokeFluteAwakenedMon, CloseItemMessage); + DisplayItemMessage(taskId, FONT_NORMAL, sText_PokeFluteAwakenedMon, CloseItemMessage); else - DisplayItemMessageOnField(taskId, gText_PokeFluteAwakenedMon, Task_CloseCantUseKeyItemMessage); + DisplayItemMessageOnField(taskId, sText_PokeFluteAwakenedMon, Task_CloseCantUseKeyItemMessage); } } @@ -1530,16 +1545,16 @@ void ItemUseOutOfBattle_PokeFlute(u8 taskId) if (wokeSomeoneUp) { if (gTasks[taskId].data[3] == 0) - DisplayItemMessage(taskId, FONT_NORMAL, gText_PlayedPokeFlute, Task_PlayPokeFlute); + DisplayItemMessage(taskId, FONT_NORMAL, sText_PlayedPokeFlute, Task_PlayPokeFlute); else - DisplayItemMessageOnField(taskId, gText_PlayedPokeFlute, Task_PlayPokeFlute); + DisplayItemMessageOnField(taskId, sText_PlayedPokeFlute, Task_PlayPokeFlute); } else { if (gTasks[taskId].data[3] == 0) - DisplayItemMessage(taskId, FONT_NORMAL, gText_PlayedPokeFluteCatchy, CloseItemMessage); + DisplayItemMessage(taskId, FONT_NORMAL, sText_PlayedPokeFluteCatchy, CloseItemMessage); else - DisplayItemMessageOnField(taskId, gText_PlayedPokeFluteCatchy, Task_CloseCantUseKeyItemMessage); + DisplayItemMessageOnField(taskId, sText_PlayedPokeFluteCatchy, Task_CloseCantUseKeyItemMessage); } } diff --git a/src/librfu_rfu.c b/src/librfu_rfu.c index cd7cb6cc5a..0097ac349c 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 4f49fbd1b4..2a1b0c94c4 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/line_break.c b/src/line_break.c new file mode 100644 index 0000000000..b8888f501f --- /dev/null +++ b/src/line_break.c @@ -0,0 +1,281 @@ +#include "global.h" +#include "line_break.h" +#include "text.h" +#include "malloc.h" + +void StripLineBreaks(u8 *src) +{ + u32 currIndex = 0; + while (src[currIndex] != EOS) + { + if (src[currIndex] == CHAR_PROMPT_SCROLL || src[currIndex] == CHAR_NEWLINE) + src[currIndex] = CHAR_SPACE; + currIndex++; + } +} + +void BreakStringAutomatic(u8 *src, u32 maxWidth, u32 screenLines, u8 fontId) +{ + u32 currIndex = 0; + u8 *currSrc = src; + while (src[currIndex] != EOS) + { + if (src[currIndex] == CHAR_PROMPT_CLEAR) + { + u8 replacedChar = src[currIndex + 1]; + src[currIndex + 1] = EOS; + BreakSubStringAutomatic(currSrc, maxWidth, screenLines, fontId); + src[currIndex + 1] = replacedChar; + currSrc = &src[currIndex + 1]; + } + currIndex++; + } + BreakSubStringAutomatic(currSrc, maxWidth, screenLines, fontId); +} + +void BreakSubStringAutomatic(u8 *src, u32 maxWidth, u32 screenLines, u8 fontId) +{ + // If the string already has line breaks, don't interfere with them + if (StringHasManualBreaks(src)) + return; + // Sanity check + if (src[0] == EOS) + return; + u32 numChars = 1; + u32 numWords = 1; + u32 currWordIndex = 0; + u32 currWordLength = 1; + bool32 isPrevCharSplitting = FALSE; + bool32 isCurrCharSplitting; + // Get numbers of chars in string and count words + while (src[numChars] != EOS) + { + isCurrCharSplitting = IsWordSplittingChar(src, numChars); + if (isCurrCharSplitting && !isPrevCharSplitting) + numWords++; + isPrevCharSplitting = isCurrCharSplitting; + numChars++; + } + // Allocate enough space for word data + struct StringWord *allWords = Alloc(numWords*sizeof(struct StringWord)); + + allWords[currWordIndex].startIndex = 0; + allWords[currWordIndex].width = 0; + isPrevCharSplitting = FALSE; + // Fill in word begin index and lengths + for (u32 i = 1; i < numChars; i++) + { + isCurrCharSplitting = IsWordSplittingChar(src, i); + if (isCurrCharSplitting && !isPrevCharSplitting) + { + allWords[currWordIndex].length = currWordLength; + currWordIndex++; + currWordLength = 0; + } + else if (!isCurrCharSplitting && isPrevCharSplitting) + { + allWords[currWordIndex].startIndex = i; + allWords[currWordIndex].width = 0; + currWordLength++; + } + else + { + currWordLength++; + } + isPrevCharSplitting = isCurrCharSplitting; + } + allWords[currWordIndex].length = currWordLength; + + // Fill in individual word widths + for (u32 i = 0; i < numWords; i++) + { + for (u32 j = 0; j < allWords[i].length; j++) + allWords[i].width += GetGlyphWidth(src[allWords[i].startIndex + j], FALSE, fontId); + } + + // Step 1: Does it all fit one one line? Then no break + // Step 2: Try to split across minimum number of lines + u32 spaceWidth = GetGlyphWidth(0, FALSE, fontId); + u32 totalWidth = allWords[0].width; + // Calculate total widths without any line breaks + for (u32 i = 1; i < numWords; i++) + totalWidth += allWords[i].width + spaceWidth; + + // If it doesn't fit on 1 line, do fancy line break calculation + // NOTE: Currently the line break calculation isn't fancy + if (totalWidth > maxWidth) + { + // Figure out how many lines are needed with naive method + u32 currLineWidth = 0; + u32 totalLines = 1; + bool32 shouldTryAgain; + for (currWordIndex = 0; currWordIndex < numWords; currWordIndex++) + { + if (currLineWidth + allWords[currWordIndex].length > maxWidth) + { + totalLines++; + currLineWidth = allWords[currWordIndex].width; + } + else + { + currLineWidth += allWords[currWordIndex].width + spaceWidth; + } + } + // LINE LAYOUT STARTS HERE + struct StringLine *stringLines; + do + { + shouldTryAgain = FALSE; + u16 targetLineWidth = totalWidth/totalLines; + stringLines = Alloc(totalLines*sizeof(struct StringLine)); + for (u32 lineIndex = 0; lineIndex < totalLines; lineIndex++) + { + stringLines[lineIndex].numWords = 0; + stringLines[lineIndex].spaceWidth = spaceWidth; + stringLines[lineIndex].extraSpaceWidth = 0; + } + currWordIndex = 0; + u16 currLineIndex = 0; + stringLines[currLineIndex].words = &allWords[currWordIndex]; + stringLines[currLineIndex].numWords = 1; + currLineWidth = allWords[currWordIndex].width; + currWordIndex++; + while (currWordIndex < numWords) + { + if (currLineWidth + spaceWidth + allWords[currWordIndex].width > maxWidth) + { + // go to next line + currLineIndex++; + if (currLineIndex == totalLines) + { + totalLines++; + Free(stringLines); + shouldTryAgain = TRUE; + break; + } + stringLines[currLineIndex].words = &allWords[currWordIndex]; + stringLines[currLineIndex].numWords = 1; + currLineWidth = allWords[currWordIndex].width; + currWordIndex++; + } + else if (currLineWidth > targetLineWidth) + { + // go to next line + currLineIndex++; + if (currLineIndex == totalLines) + { + totalLines++; + Free(stringLines); + shouldTryAgain = TRUE; + break; + } + stringLines[currLineIndex].words = &allWords[currWordIndex]; + stringLines[currLineIndex].numWords = 1; + currLineWidth = allWords[currWordIndex].width; + currWordIndex++; + } + else + { + // continue on current line + // add word and space width + currLineWidth += spaceWidth + allWords[currWordIndex].width; + stringLines[currLineIndex].numWords++; + currWordIndex++; + } + } + } while (shouldTryAgain); + //u32 currBadness = GetStringBadness(stringLines, totalLines, maxWidth); + BuildNewString(stringLines, totalLines, screenLines, src); + Free(stringLines); + } + + Free(allWords); +} + +// Only allow word splitting on allowed chars +bool32 IsWordSplittingChar(const u8 *src, u32 index) +{ + switch (src[index]) + { + case CHAR_SPACE: + return TRUE; + default: + return FALSE; + } +} + +// Badness calculation +// unfilled lines scale linerarly +// jagged lines scales by the square +// runts scale linearly +// numbers not final +// ISN'T ACTUALLY USED RIGHT NOW +u32 GetStringBadness(struct StringLine *stringLines, u32 numLines, u32 maxWidth) +{ + u32 badness = 0; + u32 *lineWidths = Alloc(numLines*4); + u32 widestWidth = 0; + for (u32 i = 0; i < numLines; i++) + { + lineWidths[i] = 0; + for (u32 j = 0; j < stringLines[i].numWords; j++) + lineWidths[i] += stringLines[i].words[j].width; + lineWidths[i] += (stringLines[i].numWords-1)*stringLines[i].spaceWidth; + if (lineWidths[i] > widestWidth) + widestWidth = lineWidths[i]; + if (stringLines[i].numWords == 1) + badness += BADNESS_RUNT; + } + for (u32 i = 0; i < numLines; i++) + { + u32 extraSpaceWidth = 0; + if (lineWidths[i] != widestWidth) + { + // Not the best way to do this, ideally a line should be allowed to get longer than current widest + // line. But then the widest line has to be recalculated. + while (lineWidths[i] + (extraSpaceWidth + 1) * (stringLines[i].numWords - 1) < widestWidth && extraSpaceWidth < MAX_SPACE_WIDTH) + extraSpaceWidth++; + lineWidths[i] += extraSpaceWidth*(stringLines[i].numWords-1); + } + badness += (maxWidth - lineWidths[i]) * BADNESS_UNFILLED; + u32 baseBadness = (widestWidth - lineWidths[i]) * BADNESS_JAGGED; + badness += baseBadness*baseBadness; + stringLines[i].extraSpaceWidth = extraSpaceWidth; + } + Free(lineWidths); + return badness; +} + +// Build the new string from the data stored in the StringLine structs +void BuildNewString(struct StringLine *stringLines, u32 numLines, u32 maxLines, u8 *str) +{ + u32 srcCharIndex = 0; + for (u32 lineIndex = 0; lineIndex < numLines; lineIndex++) + { + srcCharIndex += stringLines[lineIndex].words[0].length; + for (u32 wordIndex = 1; wordIndex < stringLines[lineIndex].numWords; wordIndex++) + // Add length of word and a space + srcCharIndex += stringLines[lineIndex].words[wordIndex].length + 1; + if (lineIndex + 1 < numLines) + { + // Add the appropriate line break depending on line number + if (lineIndex >= maxLines - 1 && numLines > maxLines) + str[srcCharIndex] = CHAR_PROMPT_SCROLL; + else + str[srcCharIndex] = CHAR_NEWLINE; + srcCharIndex++; + } + } +} + +bool32 StringHasManualBreaks(u8 *src) +{ + u32 charIndex = 0; + while (src[charIndex] != EOS) + { + if (src[charIndex] == CHAR_PROMPT_SCROLL || src[charIndex] == CHAR_NEWLINE) + return TRUE; + charIndex++; + } + return FALSE; +} diff --git a/src/link.c b/src/link.c index a78e69260a..ef928e8d62 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 9979097a49..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]; @@ -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/list_menu.c b/src/list_menu.c index aa65683edd..ab93961fd5 100644 --- a/src/list_menu.c +++ b/src/list_menu.c @@ -98,7 +98,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; @@ -106,9 +106,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 a5f2693538..6fde540b8c 100644 --- a/src/load_save.c +++ b/src/load_save.c @@ -40,11 +40,11 @@ EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0}; EWRAM_DATA u32 gLastEncryptionKey = 0; // IWRAM common -bool32 gFlashMemoryPresent; -struct SaveBlock1 *gSaveBlock1Ptr; -struct SaveBlock2 *gSaveBlock2Ptr; +COMMON_DATA bool32 gFlashMemoryPresent = 0; +COMMON_DATA struct SaveBlock1 *gSaveBlock1Ptr = NULL; +COMMON_DATA struct SaveBlock2 *gSaveBlock2Ptr = NULL; IWRAM_INIT struct SaveBlock3 *gSaveBlock3Ptr = &gSaveblock3; -struct PokemonStorage *gPokemonStoragePtr; +COMMON_DATA struct PokemonStorage *gPokemonStoragePtr = NULL; // code void CheckForFlashMemory(void) diff --git a/src/m4a.c b/src/m4a.c index b80a357974..e90e9b06f0 100644 --- a/src/m4a.c +++ b/src/m4a.c @@ -8,18 +8,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 616c67800b..29f02c20e4 100644 --- a/src/main.c +++ b/src/main.c @@ -62,16 +62,16 @@ const IntrFunc gIntrTableTemplate[] = #define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc))) -u16 gKeyRepeatStartDelay; -bool8 gLinkTransferringData; -struct Main gMain; -u16 gKeyRepeatContinueDelay; -bool8 gSoftResetDisabled; -IntrFunc gIntrTable[INTR_COUNT]; -u8 gLinkVSyncDisabled; -u32 IntrMain_Buffer[0x200]; -s8 gPcmDmaCounter; -void *gAgbMainLoop_sp; +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; +COMMON_DATA void *gAgbMainLoop_sp = NULL; static EWRAM_DATA u16 sTrainerId = 0; 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/match_call.c b/src/match_call.c index 95028221c2..662dd209a4 100644 --- a/src/match_call.c +++ b/src/match_call.c @@ -132,7 +132,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); @@ -1099,7 +1099,7 @@ static bool32 UpdateMatchCallStepCounter(void) static bool32 SelectMatchCallTrainer(void) { u32 matchCallId; - u32 numRegistered = GetNumRegisteredNPCs(); + u32 numRegistered = GetNumRegisteredTrainers(); if (numRegistered == 0) return FALSE; @@ -1115,12 +1115,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++; } @@ -1132,7 +1133,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/mauville_old_man.c b/src/mauville_old_man.c index 0c0714354a..efadd4de1f 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/menu_specialized.c b/src/menu_specialized.c index a709a878dc..693e9f12bc 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/mini_printf.c b/src/mini_printf.c index 2420efbd18..9332a270a4 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/general.h" -#include "characters.h" +#include "constants/characters.h" #include "string_util.h" #ifndef NDEBUG @@ -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; diff --git a/src/move_relearner.c b/src/move_relearner.c index 817dbd16e0..a4cc778a45 100644 --- a/src/move_relearner.c +++ b/src/move_relearner.c @@ -17,6 +17,7 @@ #include "menu_specialized.h" #include "overworld.h" #include "palette.h" +#include "party_menu.h" #include "pokemon_summary_screen.h" #include "script.h" #include "sound.h" @@ -184,6 +185,8 @@ static EWRAM_DATA struct { bool8 showContestInfo; } sMoveRelearnerMenuSate = {0}; +EWRAM_DATA u8 gOriginSummaryScreenPage = 0; // indicates summary screen page that the move relearner was opened from (if opened from PSS) + static const u16 sUI_Pal[] = INCBIN_U16("graphics/interface/ui_learn_move.gbapal"); // The arrow sprites in this spritesheet aren't used. The scroll-arrow system provides its own @@ -354,7 +357,6 @@ static void CreateLearnableMovesList(void); static void CreateUISprites(void); static void CB2_MoveRelearnerMain(void); static void Task_WaitForFadeOut(u8 taskId); -static void CB2_InitLearnMove(void); static void CB2_InitLearnMoveReturnFromSelectMove(void); static void InitMoveRelearnerBackgroundLayers(void); static void AddScrollArrows(void); @@ -391,7 +393,7 @@ static void Task_WaitForFadeOut(u8 taskId) } } -static void CB2_InitLearnMove(void) +void CB2_InitLearnMove(void) { ResetSpriteData(); FreeAllSpritePalettes(); @@ -402,11 +404,11 @@ static void CB2_InitLearnMove(void) SetVBlankCallback(VBlankCB_MoveRelearner); InitMoveRelearnerBackgroundLayers(); - InitMoveRelearnerWindows(FALSE); + InitMoveRelearnerWindows(gOriginSummaryScreenPage == PSS_PAGE_CONTEST_MOVES); sMoveRelearnerMenuSate.listOffset = 0; sMoveRelearnerMenuSate.listRow = 0; - sMoveRelearnerMenuSate.showContestInfo = FALSE; + sMoveRelearnerMenuSate.showContestInfo = gOriginSummaryScreenPage == PSS_PAGE_CONTEST_MOVES; CreateLearnableMovesList(); @@ -482,12 +484,17 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_FADE_TO_BLACK: sMoveRelearnerStruct->state++; HideHeartSpritesAndShowTeachMoveText(FALSE); + if (gOriginSummaryScreenPage == PSS_PAGE_CONTEST_MOVES) + MoveRelearnerShowHideHearts(GetCurrentSelectedMove()); BeginNormalPaletteFade(PALETTES_ALL, 0, 16, 0, RGB_BLACK); break; case MENU_STATE_WAIT_FOR_FADE: if (!gPaletteFade.active) { - sMoveRelearnerStruct->state = MENU_STATE_IDLE_BATTLE_MODE; + if (gOriginSummaryScreenPage == PSS_PAGE_CONTEST_MOVES) + sMoveRelearnerStruct->state = MENU_STATE_IDLE_CONTEST_MODE; + else + sMoveRelearnerStruct->state = MENU_STATE_IDLE_BATTLE_MODE; } break; case MENU_STATE_UNREACHABLE: @@ -681,8 +688,28 @@ static void DoMoveRelearnerMain(void) case MENU_STATE_RETURN_TO_FIELD: if (!gPaletteFade.active) { + if (gInitialSummaryScreenCallback != NULL) + { + switch (gOriginSummaryScreenPage) + { + case PSS_PAGE_BATTLE_MOVES: + ShowPokemonSummaryScreen(SUMMARY_MODE_RELEARNER_BATTLE, gPlayerParty, sMoveRelearnerStruct->partyMon, gPlayerPartyCount - 1, gInitialSummaryScreenCallback); + break; + case PSS_PAGE_CONTEST_MOVES: + ShowPokemonSummaryScreen(SUMMARY_MODE_RELEARNER_CONTEST, gPlayerParty, sMoveRelearnerStruct->partyMon, gPlayerPartyCount - 1, gInitialSummaryScreenCallback); + break; + default: + ShowPokemonSummaryScreen(SUMMARY_MODE_NORMAL, gPlayerParty, sMoveRelearnerStruct->partyMon, gPlayerPartyCount - 1, gInitialSummaryScreenCallback); + break; + } + gOriginSummaryScreenPage = 0; + } + else + { + SetMainCallback2(CB2_ReturnToField); + } + FreeMoveRelearnerResources(); - SetMainCallback2(CB2_ReturnToField); } break; case MENU_STATE_FADE_FROM_SUMMARY_SCREEN: @@ -709,10 +736,14 @@ static void DoMoveRelearnerMain(void) else { u16 moveId = GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_MOVE1 + sMoveRelearnerStruct->moveSlot); - + u8 originalPP = GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_PP1 + sMoveRelearnerStruct->moveSlot); + StringCopy(gStringVar3, GetMoveName(moveId)); RemoveMonPPBonus(&gPlayerParty[sMoveRelearnerStruct->partyMon], sMoveRelearnerStruct->moveSlot); SetMonMoveSlot(&gPlayerParty[sMoveRelearnerStruct->partyMon], GetCurrentSelectedMove(), sMoveRelearnerStruct->moveSlot); + u8 newPP = GetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_PP1 + sMoveRelearnerStruct->moveSlot); + if (!P_SUMMARY_MOVE_RELEARNER_FULL_PP && gOriginSummaryScreenPage != 0 && originalPP < newPP) + SetMonData(&gPlayerParty[sMoveRelearnerStruct->partyMon], MON_DATA_PP1 + sMoveRelearnerStruct->moveSlot, &originalPP); StringCopy(gStringVar2, GetMoveName(GetCurrentSelectedMove())); PrintMessageWithPlaceholders(gText_MoveRelearnerAndPoof); sMoveRelearnerStruct->state = MENU_STATE_DOUBLE_FANFARE_FORGOT_MOVE; diff --git a/src/overworld.c b/src/overworld.c index 5b8310f167..f516ebdccd 100644 --- a/src/overworld.c +++ b/src/overworld.c @@ -188,14 +188,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; u8 gTimeOfDay; struct TimeBlendSettings currentTimeBlend; @@ -431,6 +431,7 @@ void Overworld_ResetBattleFlagsAndVars(void) FlagClear(B_SMART_WILD_AI_FLAG); FlagClear(B_FLAG_NO_BAG_USE); FlagClear(B_FLAG_NO_CATCHING); + FlagClear(B_FLAG_NO_RUNNING); FlagClear(B_FLAG_DYNAMAX_BATTLE); FlagClear(B_FLAG_SKY_BATTLE); } diff --git a/src/party_menu.c b/src/party_menu.c index d737fd3df1..285ad5e839 100644 --- a/src/party_menu.c +++ b/src/party_menu.c @@ -245,7 +245,7 @@ static EWRAM_DATA u8 sInitialLevel = 0; static EWRAM_DATA u8 sFinalLevel = 0; // IWRAM common -void (*gItemUseCB)(u8, TaskFunc); +COMMON_DATA void (*gItemUseCB)(u8, TaskFunc) = NULL; static void ResetPartyMenu(void); static void CB2_InitPartyMenu(void); @@ -4578,7 +4578,7 @@ static bool8 NotUsingHPEVItemOnShedinja(struct Pokemon *mon, u16 item) return TRUE; } -bool32 IsItemFlute(u16 item) +static bool32 IsItemFlute(u16 item) { if (item == ITEM_BLUE_FLUTE || item == ITEM_RED_FLUTE || item == ITEM_YELLOW_FLUTE) return TRUE; diff --git a/src/player_pc.c b/src/player_pc.c index 3dd5fcc36f..b44799223c 100644 --- a/src/player_pc.c +++ b/src/player_pc.c @@ -181,20 +181,30 @@ static EWRAM_DATA u8 sTopMenuNumOptions = 0; EWRAM_DATA struct PlayerPCItemPageStruct gPlayerPCItemPageInfo = {}; static EWRAM_DATA struct ItemStorageMenu *sItemStorageMenu = NULL; +static const u8 sText_WithdrawItem[] = _("WITHDRAW ITEM"); +static const u8 sText_DepositItem[] = _("DEPOSIT ITEM"); +static const u8 sText_TossItem[] = _("TOSS ITEM"); +static const u8 sText_Mailbox[] = _("MAILBOX"); + +static const u8 sText_WithdrawHowManyItems[] = _("Withdraw how many\n{STR_VAR_1}?"); +static const u8 sText_WithdrawXItems[] = _("Withdrew {STR_VAR_2}\n{STR_VAR_1}."); +static const u8 sText_NoRoomInBag[] = _("There is no more\nroom in the BAG."); +static const u8 sText_TooImportantToToss[] = _("That's much too\nimportant to toss\nout!"); + static const u8 *const sItemStorage_OptionDescriptions[] = { - [MENU_WITHDRAW] = gText_TakeOutItemsFromPC, - [MENU_DEPOSIT] = gText_StoreItemsInPC, - [MENU_TOSS] = gText_ThrowAwayItemsInPC, + [MENU_WITHDRAW] = COMPOUND_STRING("Take out items from the PC."), + [MENU_DEPOSIT] = COMPOUND_STRING("Store items in the PC."), + [MENU_TOSS] = COMPOUND_STRING("Throw away items stored in the PC."), [MENU_EXIT] = gText_GoBackPrevMenu, }; static const struct MenuAction sPlayerPCMenuActions[] = { - [MENU_ITEMSTORAGE] = { gText_ItemStorage, {PlayerPC_ItemStorage} }, - [MENU_MAILBOX] = { gText_Mailbox, {PlayerPC_Mailbox} }, - [MENU_DECORATION] = { gText_Decoration, {PlayerPC_Decoration} }, - [MENU_TURNOFF] = { gText_TurnOff, {PlayerPC_TurnOff} } + [MENU_ITEMSTORAGE] = { COMPOUND_STRING("ITEM STORAGE"), {PlayerPC_ItemStorage} }, + [MENU_MAILBOX] = { sText_Mailbox, {PlayerPC_Mailbox} }, + [MENU_DECORATION] = { COMPOUND_STRING("DECORATION"), {PlayerPC_Decoration} }, + [MENU_TURNOFF] = { COMPOUND_STRING("TURN OFF"), {PlayerPC_TurnOff} } }; static const u8 sBedroomPC_OptionOrder[] = @@ -216,9 +226,9 @@ static const u8 sPlayerPC_OptionOrder[] = static const struct MenuAction sItemStorage_MenuActions[] = { - [MENU_WITHDRAW] = { gText_WithdrawItem, {ItemStorage_Withdraw} }, - [MENU_DEPOSIT] = { gText_DepositItem, {ItemStorage_Deposit} }, - [MENU_TOSS] = { gText_TossItem, {ItemStorage_Toss} }, + [MENU_WITHDRAW] = { sText_WithdrawItem, {ItemStorage_Withdraw} }, + [MENU_DEPOSIT] = { sText_DepositItem, {ItemStorage_Deposit} }, + [MENU_TOSS] = { sText_TossItem, {ItemStorage_Toss} }, [MENU_EXIT] = { gText_Cancel, {ItemStorage_Exit} } }; @@ -230,10 +240,10 @@ static const u16 sNewGamePCItems[][2] = const struct MenuAction gMailboxMailOptions[] = { - { gText_Read, {Mailbox_DoMailRead} }, - { gText_MoveToBag, {Mailbox_MoveToBag} }, - { gText_Give2, {Mailbox_Give} }, - { gText_Cancel2, {Mailbox_Cancel} } + { COMPOUND_STRING("READ"), {Mailbox_DoMailRead} }, + { COMPOUND_STRING("MOVE TO BAG"), {Mailbox_MoveToBag} }, + { COMPOUND_STRING("GIVE"), {Mailbox_Give} }, + { gText_Cancel2, {Mailbox_Cancel} } }; static const struct WindowTemplate sWindowTemplates_MainMenus[] = @@ -697,7 +707,7 @@ static void Mailbox_DrawMailboxMenu(u8 taskId) { u8 windowId = MailboxMenu_AddWindow(MAILBOXWIN_TITLE); MailboxMenu_AddWindow(MAILBOXWIN_LIST); - AddTextPrinterParameterized(windowId, FONT_NORMAL, gText_Mailbox, GetStringCenterAlignXOffset(FONT_NORMAL, gText_Mailbox, 0x40), 1, 0, NULL); + AddTextPrinterParameterized(windowId, FONT_NORMAL, sText_Mailbox, GetStringCenterAlignXOffset(FONT_NORMAL, sText_Mailbox, 0x40), 1, 0, NULL); ScheduleBgCopyTilemapToVram(0); gTasks[taskId].tListTaskId = MailboxMenu_CreateList(&gPlayerPCItemPageInfo); MailboxMenu_AddScrollArrows(&gPlayerPCItemPageInfo); @@ -1145,9 +1155,9 @@ static void ItemStorage_CreateListMenu(u8 taskId) for (i = 0; i <= ITEMPC_WIN_LIST_END; i++) ItemStorage_AddWindow(i); toss = tInTossMenu; - text = gText_TossItem; + text = sText_TossItem; if (!toss) - text = gText_WithdrawItem; + text = sText_WithdrawItem; x = GetStringCenterAlignXOffset(FONT_NORMAL, text, 104); AddTextPrinterParameterized(sItemStorageMenu->windowIds[ITEMPC_WIN_TITLE], FONT_NORMAL, text, x, 1, 0, NULL); CopyWindowToVram(sItemStorageMenu->windowIds[ITEMPC_WIN_ICON], COPYWIN_GFX); @@ -1170,10 +1180,10 @@ static const u8 *ItemStorage_GetMessage(u16 itemId) string = gText_GoBackPrevMenu; break; case MSG_HOW_MANY_TO_WITHDRAW: - string = gText_WithdrawHowManyItems; + string = sText_WithdrawHowManyItems; break; case MSG_WITHDREW_ITEM: - string = gText_WithdrawXItems; + string = sText_WithdrawXItems; break; case MSG_HOW_MANY_TO_TOSS: string = gText_TossHowManyVar1s; @@ -1182,10 +1192,10 @@ static const u8 *ItemStorage_GetMessage(u16 itemId) string = gText_ThrewAwayVar2Var1s; break; case MSG_NO_MORE_ROOM: - string = gText_NoRoomInBag; + string = sText_NoRoomInBag; break; case MSG_TOO_IMPORTANT: - string = gText_TooImportantToToss; + string = sText_TooImportantToToss; break; case MSG_OKAY_TO_THROW_AWAY: string = gText_ConfirmTossItems; diff --git a/src/pokeball.c b/src/pokeball.c index 21557d973a..2b168cd7e3 100644 --- a/src/pokeball.c +++ b/src/pokeball.c @@ -13,6 +13,7 @@ #include "trig.h" #include "util.h" #include "data.h" +#include "item.h" #include "constants/songs.h" static void Task_DoPokeballSendOutAnim(u8 taskId); @@ -47,36 +48,38 @@ static u16 GetBattlerPokeballItemId(u8 battlerId); // rom const data -#define GFX_TAG_POKE_BALL 55000 -#define GFX_TAG_GREAT_BALL 55001 -#define GFX_TAG_ULTRA_BALL 55002 -#define GFX_TAG_MASTER_BALL 55003 -#define GFX_TAG_PREMIER_BALL 55004 -#define GFX_TAG_HEAL_BALL 55005 -#define GFX_TAG_NET_BALL 55006 -#define GFX_TAG_NEST_BALL 55007 -#define GFX_TAG_DIVE_BALL 55008 -#define GFX_TAG_DUSK_BALL 55009 -#define GFX_TAG_TIMER_BALL 55010 -#define GFX_TAG_QUICK_BALL 55011 -#define GFX_TAG_REPEAT_BALL 55012 -#define GFX_TAG_LUXURY_BALL 55013 -#define GFX_TAG_LEVEL_BALL 55014 -#define GFX_TAG_LURE_BALL 55015 -#define GFX_TAG_MOON_BALL 55016 -#define GFX_TAG_FRIEND_BALL 55017 -#define GFX_TAG_LOVE_BALL 55018 -#define GFX_TAG_FAST_BALL 55019 -#define GFX_TAG_HEAVY_BALL 55020 -#define GFX_TAG_DREAM_BALL 55021 -#define GFX_TAG_SAFARI_BALL 55022 -#define GFX_TAG_SPORT_BALL 55023 -#define GFX_TAG_PARK_BALL 55024 -#define GFX_TAG_BEAST_BALL 55025 -#define GFX_TAG_CHERISH_BALL 55026 +#define GFX_TAG_STRANGE_BALL 55000 +#define GFX_TAG_POKE_BALL 55001 +#define GFX_TAG_GREAT_BALL 55002 +#define GFX_TAG_ULTRA_BALL 55003 +#define GFX_TAG_MASTER_BALL 55004 +#define GFX_TAG_PREMIER_BALL 55005 +#define GFX_TAG_HEAL_BALL 55006 +#define GFX_TAG_NET_BALL 55007 +#define GFX_TAG_NEST_BALL 55008 +#define GFX_TAG_DIVE_BALL 55009 +#define GFX_TAG_DUSK_BALL 55010 +#define GFX_TAG_TIMER_BALL 55011 +#define GFX_TAG_QUICK_BALL 55012 +#define GFX_TAG_REPEAT_BALL 55013 +#define GFX_TAG_LUXURY_BALL 55014 +#define GFX_TAG_LEVEL_BALL 55015 +#define GFX_TAG_LURE_BALL 55016 +#define GFX_TAG_MOON_BALL 55017 +#define GFX_TAG_FRIEND_BALL 55018 +#define GFX_TAG_LOVE_BALL 55019 +#define GFX_TAG_FAST_BALL 55020 +#define GFX_TAG_HEAVY_BALL 55021 +#define GFX_TAG_DREAM_BALL 55022 +#define GFX_TAG_SAFARI_BALL 55023 +#define GFX_TAG_SPORT_BALL 55024 +#define GFX_TAG_PARK_BALL 55025 +#define GFX_TAG_BEAST_BALL 55026 +#define GFX_TAG_CHERISH_BALL 55027 const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = { + [BALL_STRANGE] = {gBallGfx_Strange, 384, GFX_TAG_STRANGE_BALL}, [BALL_POKE] = {gBallGfx_Poke, 384, GFX_TAG_POKE_BALL}, [BALL_GREAT] = {gBallGfx_Great, 384, GFX_TAG_GREAT_BALL}, [BALL_ULTRA] = {gBallGfx_Ultra, 384, GFX_TAG_ULTRA_BALL}, @@ -108,6 +111,7 @@ const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] = const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] = { + [BALL_STRANGE] = {gBallPal_Strange, GFX_TAG_STRANGE_BALL}, [BALL_POKE] = {gBallPal_Poke, GFX_TAG_POKE_BALL}, [BALL_GREAT] = {gBallPal_Great, GFX_TAG_GREAT_BALL}, [BALL_ULTRA] = {gBallPal_Ultra, GFX_TAG_ULTRA_BALL}, @@ -252,6 +256,16 @@ static const union AffineAnimCmd *const sAffineAnim_BallRotate[] = const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] = { + [BALL_STRANGE] = + { + .tileTag = GFX_TAG_STRANGE_BALL, + .paletteTag = GFX_TAG_STRANGE_BALL, + .oam = &sBallOamData, + .anims = sBallAnimSequences, + .images = NULL, + .affineAnims = sAffineAnim_BallRotate, + .callback = SpriteCB_BallThrow, + }, [BALL_POKE] = { .tileTag = GFX_TAG_POKE_BALL, @@ -562,7 +576,7 @@ static void Task_DoPokeballSendOutAnim(u8 taskId) throwCaseId = gTasks[taskId].tThrowId; battlerId = gTasks[taskId].tBattler; - ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId)); + ballId = GetBattlerPokeballItemId(battlerId); LoadBallGfx(ballId); ballSpriteId = CreateSprite(&gBallSpriteTemplates[ballId], 32, 80, 29); gSprites[ballSpriteId].data[0] = 0x80; @@ -651,7 +665,7 @@ static void SpriteCB_BallThrow(struct Sprite *sprite) sprite->x2 = 0; sprite->y2 = 0; sprite->data[5] = 0; - ballId = ItemIdToBallId(GetBattlerPokeballItemId(opponentBattler)); + ballId = GetBattlerPokeballItemId(opponentBattler); AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); sprite->data[0] = LaunchBallFadeMonTask(FALSE, opponentBattler, 14, ballId); sprite->sBattler = opponentBattler; @@ -967,7 +981,7 @@ static void SpriteCB_ReleaseMonFromBall(struct Sprite *sprite) u32 ballId; StartSpriteAnim(sprite, 1); - ballId = ItemIdToBallId(GetBattlerPokeballItemId(battlerId)); + ballId = GetBattlerPokeballItemId(battlerId); AnimateBallOpenParticles(sprite->x, sprite->y - 5, 1, 28, ballId); sprite->data[0] = LaunchBallFadeMonTask(TRUE, sprite->sBattler, 14, ballId); sprite->callback = HandleBallAnimEnd; @@ -1580,3 +1594,13 @@ static u16 GetBattlerPokeballItemId(u8 battlerId) return GetMonData(mon, MON_DATA_POKEBALL); } + +enum PokeBall ItemIdToBallId(u32 ballItem) +{ + enum PokeBall secondaryId = ItemId_GetSecondaryId(ballItem); + + if (secondaryId <= BALL_STRANGE || secondaryId >= POKEBALL_COUNT) + return BALL_STRANGE; + + return secondaryId; +} diff --git a/src/pokedex.c b/src/pokedex.c index 2cf8274db5..87702d3371 100644 --- a/src/pokedex.c +++ b/src/pokedex.c @@ -122,8 +122,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/pokedex_plus_hgss.c b/src/pokedex_plus_hgss.c index e3b7793bbd..74b57fa3a5 100644 --- a/src/pokedex_plus_hgss.c +++ b/src/pokedex_plus_hgss.c @@ -460,7 +460,8 @@ struct PokedexView u16 maxScrollTimer; u16 scrollSpeed; u16 unkArr1[4]; // Cleared, never read - u8 filler[8]; + u16 originalSearchSelectionNum; + u8 filler[6]; u8 currentPage; u8 currentPageBackup; bool8 isSearchResults:1; @@ -2139,6 +2140,7 @@ static void ResetPokedexView(struct PokedexView *pokedexView) pokedexView->unkArr2[i] = 0; for (i = 0; i < ARRAY_COUNT(pokedexView->unkArr3); i++) pokedexView->unkArr3[i] = 0; + pokedexView->originalSearchSelectionNum = 0; } static void VBlankCB_Pokedex(void) @@ -2438,6 +2440,13 @@ static bool8 LoadPokedexListPage(u8 page) case 3: if (page == PAGE_MAIN) CreatePokedexList(sPokedexView->dexMode, sPokedexView->dexOrder); + if (sPokedexView->originalSearchSelectionNum != 0) + { + // when returning to search results after selecting an evo, we have to restore + // the original dexNum because the search results page doesn't rebuild the list + sPokedexListItem->dexNum = sPokedexView->originalSearchSelectionNum; + sPokedexView->originalSearchSelectionNum = 0; + } CreateMonSpritesAtPos(sPokedexView->selectedPokemon, 0xE); sPokedexView->statBarsSpriteId = 0xFF; //stat bars CreateStatBars(&sPokedexView->pokedexList[sPokedexView->selectedPokemon]); //stat bars @@ -6146,6 +6155,9 @@ static void Task_HandleEvolutionScreenInput(u8 taskId) { u16 targetSpecies = sPokedexView->sEvoScreenData.targetSpecies[sPokedexView->sEvoScreenData.menuPos]; u16 dexNum = SpeciesToNationalPokedexNum(targetSpecies); + if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0) + sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum; + sPokedexListItem->dexNum = dexNum; sPokedexListItem->seen = GetSetPokedexFlag(dexNum, FLAG_GET_SEEN); sPokedexListItem->owned = GetSetPokedexFlag(dexNum, FLAG_GET_CAUGHT); @@ -6881,6 +6893,9 @@ static void Task_HandleFormsScreenInput(u8 taskId) { u8 formId = sPokedexView->sFormScreenData.formIds[menuPos]; u16 formSpecies = GetFormSpeciesId(NationalPokedexNumToSpecies(sPokedexListItem->dexNum), formId); + if (sPokedexView->isSearchResults && sPokedexView->originalSearchSelectionNum == 0) + sPokedexView->originalSearchSelectionNum = sPokedexListItem->dexNum; + if (formSpecies == GetFormSpeciesId(formSpecies, 0)) sPokedexView->formSpecies = 0; else diff --git a/src/pokemon.c b/src/pokemon.c index 84e0688c6b..743f5b2771 100644 --- a/src/pokemon.c +++ b/src/pokemon.c @@ -61,7 +61,7 @@ #include "constants/weather.h" #include "wild_encounter.h" -#define FRIENDSHIP_EVO_THRESHOLD ((P_FRIENDSHIP_EVO_THRESHOLD >= GEN_9) ? 160 : 220) +#define FRIENDSHIP_EVO_THRESHOLD ((P_FRIENDSHIP_EVO_THRESHOLD >= GEN_8) ? 160 : 220) struct SpeciesItem { @@ -1022,7 +1022,7 @@ STATIC_ASSERT(NUM_SPECIES < (1 << 11), PokemonSubstruct0_species_TooSmall); STATIC_ASSERT(NUMBER_OF_MON_TYPES + 1 <= (1 << 5), PokemonSubstruct0_teraType_TooSmall); STATIC_ASSERT(ITEMS_COUNT < (1 << 10), PokemonSubstruct0_heldItem_TooSmall); STATIC_ASSERT(MAX_LEVEL <= 100, PokemonSubstruct0_experience_PotentiallTooSmall); // Maximum of ~2 million exp. -STATIC_ASSERT(LAST_BALL < (1 << 6), PokemonSubstruct0_pokeball_TooSmall); +STATIC_ASSERT(POKEBALL_COUNT <= (1 << 6), PokemonSubstruct0_pokeball_TooSmall); STATIC_ASSERT(MOVES_COUNT_ALL < (1 << 11), PokemonSubstruct1_moves_TooSmall); STATIC_ASSERT(ARRAY_COUNT(sCompressedStatuses) <= (1 << 4), PokemonSubstruct3_compressedStatus_TooSmall); STATIC_ASSERT(MAX_LEVEL < (1 << 7), PokemonSubstruct3_metLevel_TooSmall); @@ -3367,6 +3367,20 @@ u8 CalculatePartyCount(struct Pokemon *party) return partyCount; } +u8 CalculatePartyCountOfSide(u32 battler, struct Pokemon *party) +{ + s32 partyCount, partySize; + GetAIPartyIndexes(battler, &partyCount, &partySize); + + while (partyCount < partySize + && GetMonData(&party[partyCount], MON_DATA_SPECIES, NULL) != SPECIES_NONE) + { + partyCount++; + } + + return partyCount; +} + u8 CalculatePlayerPartyCount(void) { gPlayerPartyCount = CalculatePartyCount(gPlayerParty); @@ -3379,6 +3393,11 @@ u8 CalculateEnemyPartyCount(void) return gEnemyPartyCount; } +u8 CalculateEnemyPartyCountInSide(u32 battler) +{ + return CalculatePartyCountOfSide(battler, gEnemyParty); +} + u8 GetMonsStateToDoubles(void) { s32 aliveCount = 0; @@ -3674,10 +3693,12 @@ void PokemonToBattleMon(struct Pokemon *src, struct BattlePokemon *dst) dst->status2 = 0; } -void CopyPlayerPartyMonToBattleData(u8 battlerId, u8 partyIndex) +void CopyPartyMonToBattleData(u32 battlerId, u32 partyIndex) { - PokemonToBattleMon(&gPlayerParty[partyIndex], &gBattleMons[battlerId]); - gBattleStruct->hpOnSwitchout[GetBattlerSide(battlerId)] = gBattleMons[battlerId].hp; + u32 side = GetBattlerSide(battlerId); + struct Pokemon *party = GetSideParty(side); + PokemonToBattleMon(&party[partyIndex], &gBattleMons[battlerId]); + gBattleStruct->hpOnSwitchout[side] = gBattleMons[battlerId].hp; UpdateSentPokesToOpponentValue(battlerId); ClearTemporarySpeciesSpriteData(battlerId, FALSE); } @@ -4178,7 +4199,24 @@ bool8 HealStatusConditions(struct Pokemon *mon, u32 healMask, u8 battlerId) status &= ~healMask; SetMonData(mon, MON_DATA_STATUS, &status); if (gMain.inBattle && battlerId != MAX_BATTLERS_COUNT) + { gBattleMons[battlerId].status1 &= ~healMask; + if((healMask & STATUS1_SLEEP)) + { + u32 i = 0; + u32 battlerSide = GetBattlerSide(battlerId); + struct Pokemon *party = GetSideParty(battlerSide); + + for (i = 0; i < PARTY_SIZE; i++) + { + if (&party[i] == mon) + { + TryDeactivateSleepClause(battlerSide, i); + break; + } + } + } + } return FALSE; } else @@ -4956,16 +4994,25 @@ u16 HoennToNationalOrder(u16 hoennNum) The function then 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 function: 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)); \ + } + + void DrawSpindaSpots(u32 personality, u8 *dest, bool32 isSecondFrame) { s32 i; @@ -5007,16 +5054,12 @@ void DrawSpindaSpots(u32 personality, u8 *dest, bool32 isSecondFrame) 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); } } @@ -5809,18 +5852,24 @@ const u32 *GetMonSpritePalFromSpecies(u16 species, bool32 isShiny, bool32 isFema if (isShiny) { + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].shinyPaletteFemale != NULL && isFemale) return gSpeciesInfo[species].shinyPaletteFemale; - else if (gSpeciesInfo[species].shinyPalette != NULL) + else + #endif + if (gSpeciesInfo[species].shinyPalette != NULL) return gSpeciesInfo[species].shinyPalette; else return gSpeciesInfo[SPECIES_NONE].shinyPalette; } else { + #if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].paletteFemale != NULL && isFemale) return gSpeciesInfo[species].paletteFemale; - else if (gSpeciesInfo[species].palette != NULL) + else + #endif + if (gSpeciesInfo[species].palette != NULL) return gSpeciesInfo[species].palette; else return gSpeciesInfo[SPECIES_NONE].palette; @@ -5923,7 +5972,7 @@ void SetMonPreventsSwitchingString(void) PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff2, gBattlerInMenuId, GetPartyIdFromBattlePartyId(gBattlerPartyIndexes[gBattlerInMenuId])) - BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4); + BattleStringExpandPlaceholders(gText_PkmnsXPreventsSwitching, gStringVar4, sizeof(gStringVar4)); } static s32 GetWildMonTableIdInAlteringCave(u16 species) @@ -6674,12 +6723,14 @@ void TrySpecialOverworldEvo(void) bool32 SpeciesHasGenderDifferences(u16 species) { +#if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].frontPicFemale != NULL || gSpeciesInfo[species].backPicFemale != NULL || gSpeciesInfo[species].paletteFemale != NULL || gSpeciesInfo[species].shinyPaletteFemale != NULL || gSpeciesInfo[species].iconSpriteFemale != NULL) return TRUE; +#endif return FALSE; } diff --git a/src/pokemon_icon.c b/src/pokemon_icon.c index 639f24327a..00aa93ffc7 100644 --- a/src/pokemon_icon.c +++ b/src/pokemon_icon.c @@ -150,8 +150,10 @@ u8 CreateMonIcon(u16 species, void (*callback)(struct Sprite *), s16 x, s16 y, u if (species > NUM_SPECIES) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG; +#if P_GENDER_DIFFERENCES else if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) iconTemplate.paletteTag = POKE_ICON_BASE_PAL_TAG + gSpeciesInfo[species].iconPalIndexFemale; +#endif spriteId = CreateMonIconSprite(&iconTemplate, x, y, subpriority); @@ -244,9 +246,11 @@ void LoadMonIconPalettePersonality(u16 species, u32 personality) { u8 palIndex; species = SanitizeSpeciesId(species); +#if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) palIndex = gSpeciesInfo[species].iconPalIndexFemale; else +#endif palIndex = gSpeciesInfo[species].iconPalIndex; if (IndexOfSpritePaletteTag(gMonIconPaletteTable[palIndex].tag) == 0xFF) LoadSpritePalette(&gMonIconPaletteTable[palIndex]); @@ -286,9 +290,12 @@ const u8 *GetMonIconTiles(u16 species, u32 personality) if (species > NUM_SPECIES) species = SPECIES_NONE; +#if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) iconSprite = gSpeciesInfo[species].iconSpriteFemale; - else if (gSpeciesInfo[species].iconSprite != NULL) + else +#endif + if (gSpeciesInfo[species].iconSprite != NULL) iconSprite = gSpeciesInfo[species].iconSprite; else iconSprite = gSpeciesInfo[SPECIES_NONE].iconSprite; diff --git a/src/pokemon_jump.c b/src/pokemon_jump.c index 0f21e7b282..9492a4a9f8 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 @@ -435,38 +435,38 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_WEEDLE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_KAKUNA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_RATTATA, .jumpType = JUMP_TYPE_FAST, }, - { .species = SPECIES_RATTATA_ALOLA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_RATTATA_ALOLA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_RATICATE, .jumpType = JUMP_TYPE_FAST, }, - { .species = SPECIES_RATICATE_ALOLA, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_RATICATE_ALOLA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_PIKACHU, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_COSPLAY, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_ROCK_STAR, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_BELLE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_POP_STAR, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_PHD, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_PHD, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_LIBRE, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_ORIGINAL, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_HOENN, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_SINNOH, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_UNOVA, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_KALOS, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_PARTNER_CAP, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_PIKACHU_WORLD, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_ORIGINAL, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_HOENN, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_SINNOH, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_UNOVA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_KALOS, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_PARTNER, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_PIKACHU_WORLD, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PIKACHU_STARTER, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SANDSHREW, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_SANDSHREW_ALOLA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SANDSHREW_ALOLA, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_NIDORAN_F, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_NIDORAN_M, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_CLEFAIRY, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_VULPIX, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_VULPIX_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_VULPIX_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_JIGGLYPUFF, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ODDISH, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PARAS, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_MEOWTH, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_MEOWTH_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_MEOWTH_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_MEOWTH_ALOLA, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_MEOWTH_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_PSYDUCK, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_MANKEY, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_GROWLITHE, .jumpType = JUMP_TYPE_FAST, }, @@ -495,7 +495,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_MARILL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SUNKERN, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_WOOPER, .jumpType = JUMP_TYPE_SLOW, }, - { .species = SPECIES_WOOPER_PALDEA, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_WOOPER_PALDEA, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PINECO, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SNUBBULL, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_SHUCKLE, .jumpType = JUMP_TYPE_SLOW, }, @@ -516,9 +516,9 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_MARSHTOMP, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_POOCHYENA, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_ZIGZAGOON, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_ZIGZAGOON_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_ZIGZAGOON_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_LINOONE, .jumpType = JUMP_TYPE_NORMAL, }, - { .species = SPECIES_LINOONE_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, + { .species = SPECIES_LINOONE_GALAR, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_WURMPLE, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_SILCOON, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_CASCOON, .jumpType = JUMP_TYPE_SLOW, }, @@ -567,8 +567,8 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_CHERUBI, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_CHERRIM_OVERCAST, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_CHERRIM_SUNSHINE, .jumpType = JUMP_TYPE_FAST, }, - { .species = SPECIES_SHELLOS_WEST, .jumpType = JUMP_TYPE_SLOW, }, - { .species = SPECIES_SHELLOS_EAST, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SHELLOS_WEST, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_SHELLOS_EAST, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_BUNEARY, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_GLAMEOW, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_STUNKY, .jumpType = JUMP_TYPE_NORMAL, }, @@ -599,7 +599,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_PETILIL, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SANDILE, .jumpType = JUMP_TYPE_NORMAL, }, { .species = SPECIES_DARUMAKA, .jumpType = JUMP_TYPE_FAST, }, - { .species = SPECIES_DARUMAKA_GALAR, .jumpType = JUMP_TYPE_FAST, }, + { .species = SPECIES_DARUMAKA_GALAR, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_DWEBBLE, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_SCRAGGY, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_ARCHEN, .jumpType = JUMP_TYPE_NORMAL, }, @@ -622,7 +622,7 @@ static const struct PokemonJumpMons sPokeJumpMons[] = { .species = SPECIES_CUBCHOO, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_SHELMET, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_STUNFISK, .jumpType = JUMP_TYPE_SLOW, }, - { .species = SPECIES_STUNFISK_GALAR, .jumpType = JUMP_TYPE_SLOW, }, + { .species = SPECIES_STUNFISK_GALAR, .jumpType = JUMP_TYPE_SLOW, }, { .species = SPECIES_PAWNIARD, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_DURANT, .jumpType = JUMP_TYPE_FAST, }, { .species = SPECIES_CHESPIN, .jumpType = JUMP_TYPE_SLOW, }, diff --git a/src/pokemon_sprite_visualizer.c b/src/pokemon_sprite_visualizer.c index 87caf862ae..c6bb39faaf 100644 --- a/src/pokemon_sprite_visualizer.c +++ b/src/pokemon_sprite_visualizer.c @@ -439,7 +439,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data) u8 textInstructionsGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Exit {A_BUTTON} Anims and BG$"); u8 textInstructionsSubmenuOne[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back {A_BUTTON} Sprite Coords$"); u8 textInstructionsSubmenuOneGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back {A_BUTTON} Sprite Coords$"); -#if B_ENEMY_MON_SHADOW_STYLE >= GEN_4 +#if B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE u8 textInstructionsSubmenuTwo[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back {A_BUTTON} Shadow Coords$"); u8 textInstructionsSubmenuTwoGender[] = _("{START_BUTTON} Shiny {SELECT_BUTTON} Gender\n{B_BUTTON} Back {A_BUTTON} Shadow Coords$"); u8 textInstructionsSubmenuThree[] = _("{START_BUTTON} Shiny\n{B_BUTTON} Back"); @@ -766,7 +766,7 @@ static void ResetOffsetSpriteValues(struct PokemonSpriteVisualizer *data) static void ResetShadowSettings(struct PokemonSpriteVisualizer *data, u16 species) { - if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3) + if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset; @@ -801,7 +801,7 @@ static u8 GetBattlerSpriteFinal_YCustom(u16 species, s8 offset_picCoords, s8 off static void UpdateShadowSpriteInvisible(struct PokemonSpriteVisualizer *data) { - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) return; if (data->constSpriteValues.frontElevation + data->offsetsSpriteValues.offset_front_elevation == 0) @@ -825,7 +825,7 @@ static void SpriteCB_EnemyShadowCustom(struct Sprite *shadowSprite) struct Sprite *battlerSprite = &gSprites[frontSpriteId]; s8 xOffset = 0, yOffset = 0; - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { xOffset = shadowSprite->tShadowXOffset + (shadowSprite->tSpriteSide == SPRITE_SIDE_LEFT ? -16 : 16); yOffset = shadowSprite->tShadowYOffset + 16; @@ -870,7 +870,7 @@ static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer bool8 invisible = FALSE; species = SanitizeSpeciesId(species); - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { invisible = gSpeciesInfo[species].suppressEnemyShadow; @@ -1152,7 +1152,7 @@ static void UpdateYPosOffsetText(struct PokemonSpriteVisualizer *data) static void UpdateShadowSettingsText(struct PokemonSpriteVisualizer *data) { - if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3) + if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; u8 text[16]; @@ -1572,7 +1572,7 @@ static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment) static void UpdateShadowSettingsValue(u8 taskId, bool8 increment) { - if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3) + if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); @@ -1605,7 +1605,7 @@ static void UpdateShadowSettingsValue(u8 taskId, bool8 increment) static void UpdateShadowSizeValue(u8 taskId, bool8 increment) { - if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3) + if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE) return; struct PokemonSpriteVisualizer *data = GetStructPtr(taskId); @@ -1847,7 +1847,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId) } else if (data->currentSubmenu == 2) //Submenu 2 { - if (JOY_NEW(A_BUTTON) && B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (JOY_NEW(A_BUTTON) && B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) { data->currentSubmenu = 3; PrintInstructionsOnWindow(data); @@ -1954,7 +1954,7 @@ static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data) DestroySprite(&gSprites[data->followerspriteId]); DestroySprite(&gSprites[data->frontShadowSpriteIdPrimary]); - if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4) + if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE) DestroySprite(&gSprites[data->frontShadowSpriteIdSecondary]); FreeMonSpritesGfx(); @@ -2002,13 +2002,17 @@ static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data) //Follower Sprite u16 graphicsId = (OBJ_EVENT_GFX_MON_BASE + species) & OBJ_EVENT_GFX_SPECIES_MASK; + struct FollowerSpriteVisualizerData followerData; + followerData.currentmonId = graphicsId; + followerData.isFemale = data->isFemale; + followerData.isShiny = data->isShiny; graphicsId |= data->isFemale << OBJ_EVENT_GFX_SPECIES_BITS; - graphicsId += data->isShiny ? SPECIES_SHINY_TAG : 0; - data->followerspriteId = CreateObjectGraphicsSprite(graphicsId, + data->followerspriteId = CreateObjectGraphicsFollowerSpriteForVisualizer(graphicsId, SpriteCB_Follower, VISUALIZER_FOLLOWER_X, VISUALIZER_FOLLOWER_Y, - 0); + 0, + &followerData); gSprites[data->followerspriteId].oam.priority = 0; gSprites[data->followerspriteId].anims = sAnims_Follower; diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c index ef0c644c7d..e34c4d8e37 100644 --- a/src/pokemon_storage_system.c +++ b/src/pokemon_storage_system.c @@ -4873,7 +4873,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; } @@ -5140,9 +5140,11 @@ static u16 TryLoadMonIconTiles(u16 species, u32 personality) { u16 i, offset; +#if P_GENDER_DIFFERENCES // Treat female mons as a seperate species as they may have a different icon than males if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) - species |= 0x8000; // 1 << 15 + species |= (1 << 15); +#endif // Search icon list for this species for (i = 0; i < MAX_MON_ICONS; i++) @@ -5208,11 +5210,13 @@ static struct Sprite *CreateMonIconSprite(u16 species, u32 personality, s16 x, s struct SpriteTemplate template = sSpriteTemplate_MonIcon; species = GetIconSpecies(species, personality); +#if P_GENDER_DIFFERENCES if (gSpeciesInfo[species].iconSpriteFemale != NULL && IsPersonalityFemale(species, personality)) { template.paletteTag = PALTAG_MON_ICON_0 + gSpeciesInfo[species].iconPalIndexFemale; } else +#endif { template.paletteTag = PALTAG_MON_ICON_0 + gSpeciesInfo[species].iconPalIndex; } @@ -6798,7 +6802,7 @@ static void InitSummaryScreenData(void) sStorage->summaryMon.mon = &sSavedMovingMon; sStorage->summaryStartPos = 0; sStorage->summaryMaxPos = 0; - sStorage->summaryScreenMode = SUMMARY_MODE_NORMAL; + sStorage->summaryScreenMode = SUMMARY_MODE_BOX_CURSOR; } else if (sCursorArea == CURSOR_AREA_IN_PARTY) { @@ -8377,7 +8381,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++; } @@ -8410,7 +8414,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; @@ -8454,25 +8458,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; diff --git a/src/pokemon_summary_screen.c b/src/pokemon_summary_screen.c index 06efd2ee42..4cfc17c707 100644 --- a/src/pokemon_summary_screen.c +++ b/src/pokemon_summary_screen.c @@ -24,6 +24,8 @@ #include "menu.h" #include "menu_helpers.h" #include "mon_markings.h" +#include "move_relearner.h" +#include "naming_screen.h" #include "party_menu.h" #include "palette.h" #include "pokeball.h" @@ -50,14 +52,6 @@ #include "constants/rgb.h" #include "constants/songs.h" -enum { - PSS_PAGE_INFO, - PSS_PAGE_SKILLS, - PSS_PAGE_BATTLE_MOVES, - PSS_PAGE_CONTEST_MOVES, - PSS_PAGE_COUNT, -}; - // Screen titles (upper left) #define PSS_LABEL_WINDOW_POKEMON_INFO_TITLE 0 #define PSS_LABEL_WINDOW_POKEMON_SKILLS_TITLE 1 @@ -65,7 +59,7 @@ enum { #define PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE 3 // Button control text (upper right) -#define PSS_LABEL_WINDOW_PROMPT_CANCEL 4 +#define PSS_LABEL_WINDOW_PROMPT_CANCEL 4 // Also handles the "rename" prompt if P_SUMMARY_SCREEN_RENAME is true #define PSS_LABEL_WINDOW_PROMPT_INFO 5 #define PSS_LABEL_WINDOW_PROMPT_SWITCH 6 #define PSS_LABEL_WINDOW_UNUSED1 7 @@ -83,7 +77,7 @@ enum { // Moves screen #define PSS_LABEL_WINDOW_MOVES_POWER_ACC 14 // Also contains the power and accuracy values #define PSS_LABEL_WINDOW_MOVES_APPEAL_JAM 15 -#define PSS_LABEL_WINDOW_UNUSED2 16 +#define PSS_LABEL_WINDOW_PROMPT_RELEARN 16 // Above/below the pokemon's portrait (left) #define PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER 17 @@ -187,7 +181,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData u8 secondMoveIndex; bool8 lockMovesFlag; // This is used to prevent the player from changing position of moves in a battle or when trading. u8 bgDisplayOrder; // Determines the order page backgrounds are loaded while scrolling between them - u8 filler40CA; + u8 relearnableMovesNum; u8 windowIds[8]; u8 spriteIds[SPRITE_ARR_ID_COUNT]; bool8 handleDeoxys; @@ -199,6 +193,7 @@ static EWRAM_DATA struct PokemonSummaryScreenData EWRAM_DATA u8 gLastViewedMonIndex = 0; static EWRAM_DATA u8 sMoveSlotToReplace = 0; ALIGNED(4) static EWRAM_DATA u8 sAnimDelayTaskId = 0; +EWRAM_DATA MainCallback gInitialSummaryScreenCallback = NULL; // stores callback from the first time the screen is opened from the party or PC menu // forward declarations static bool8 LoadGraphics(void); @@ -320,6 +315,11 @@ static void DestroyMoveSelectorSprites(u8); static void SetMainMoveSelectorColor(u8); static void KeepMoveSelectorVisible(u8); static void SummaryScreen_DestroyAnimDelayTask(void); +static bool32 ShouldShowMoveRelearner(void); +static bool32 ShouldShowRename(void); +static void ShowCancelOrRenamePrompt(void); +static void CB2_ReturnToSummaryScreenFromNamingScreen(void); +static void CB2_PssChangePokemonNickname(void); static const struct BgTemplate sBgTemplates[] = { @@ -535,13 +535,13 @@ static const struct WindowTemplate sSummaryTemplate[] = .paletteNum = 6, .baseBlock = 367, }, - [PSS_LABEL_WINDOW_UNUSED2] = { + [PSS_LABEL_WINDOW_PROMPT_RELEARN] = { .bg = 0, .tilemapLeft = 22, - .tilemapTop = 4, - .width = 0, + .tilemapTop = 2, + .width = 8, .height = 2, - .paletteNum = 6, + .paletteNum = 15, .baseBlock = 387, }, [PSS_LABEL_WINDOW_PORTRAIT_DEX_NUMBER] = { @@ -551,7 +551,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .width = 5, .height = 2, .paletteNum = 7, - .baseBlock = 387, + .baseBlock = 403, }, [PSS_LABEL_WINDOW_PORTRAIT_NICKNAME] = { .bg = 0, @@ -560,7 +560,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .width = 9, .height = 2, .paletteNum = 6, - .baseBlock = 397, + .baseBlock = 413, }, [PSS_LABEL_WINDOW_PORTRAIT_SPECIES] = { .bg = 0, @@ -569,7 +569,7 @@ static const struct WindowTemplate sSummaryTemplate[] = .width = 9, .height = 4, .paletteNum = 6, - .baseBlock = 415, + .baseBlock = 431, }, [PSS_LABEL_WINDOW_END] = DUMMY_WIN_TEMPLATE }; @@ -582,7 +582,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .width = 11, .height = 2, .paletteNum = 6, - .baseBlock = 451, + .baseBlock = 467, }, [PSS_DATA_WINDOW_INFO_ID] = { .bg = 0, @@ -591,7 +591,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .width = 7, .height = 2, .paletteNum = 6, - .baseBlock = 473, + .baseBlock = 489, }, [PSS_DATA_WINDOW_INFO_ABILITY] = { .bg = 0, @@ -600,7 +600,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .width = 18, .height = 4, .paletteNum = 6, - .baseBlock = 487, + .baseBlock = 503, }, [PSS_DATA_WINDOW_INFO_MEMO] = { .bg = 0, @@ -609,7 +609,7 @@ static const struct WindowTemplate sPageInfoTemplate[] = .width = 18, .height = 6, .paletteNum = 6, - .baseBlock = 559, + .baseBlock = 575, }, }; static const struct WindowTemplate sPageSkillsTemplate[] = @@ -621,7 +621,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .width = 10, .height = 2, .paletteNum = 6, - .baseBlock = 451, + .baseBlock = 467, }, [PSS_DATA_WINDOW_SKILLS_RIBBON_COUNT] = { .bg = 0, @@ -630,7 +630,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .width = 10, .height = 2, .paletteNum = 6, - .baseBlock = 471, + .baseBlock = 487, }, [PSS_DATA_WINDOW_SKILLS_STATS_LEFT] = { .bg = 0, @@ -639,7 +639,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .width = 6, .height = 6, .paletteNum = 6, - .baseBlock = 491, + .baseBlock = 507, }, [PSS_DATA_WINDOW_SKILLS_STATS_RIGHT] = { .bg = 0, @@ -648,7 +648,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .width = 3, .height = 6, .paletteNum = 6, - .baseBlock = 527, + .baseBlock = 543, }, [PSS_DATA_WINDOW_EXP] = { .bg = 0, @@ -657,7 +657,7 @@ static const struct WindowTemplate sPageSkillsTemplate[] = .width = 6, .height = 4, .paletteNum = 6, - .baseBlock = 545, + .baseBlock = 561, }, }; static const struct WindowTemplate sPageMovesTemplate[] = // This is used for both battle and contest moves @@ -669,7 +669,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .width = 9, .height = 10, .paletteNum = 6, - .baseBlock = 451, + .baseBlock = 467, }, [PSS_DATA_WINDOW_MOVE_PP] = { .bg = 0, @@ -678,7 +678,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .width = 6, .height = 10, .paletteNum = 8, - .baseBlock = 541, + .baseBlock = 557, }, [PSS_DATA_WINDOW_MOVE_DESCRIPTION] = { .bg = 0, @@ -687,7 +687,7 @@ static const struct WindowTemplate sPageMovesTemplate[] = // This is used for bo .width = 20, .height = 4, .paletteNum = 6, - .baseBlock = 601, + .baseBlock = 617, }, }; static const u8 sTextColors[][3] = @@ -1166,6 +1166,8 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, sMonSummaryScreen->curMonIndex = monIndex; sMonSummaryScreen->maxMonIndex = maxMonIndex; sMonSummaryScreen->callback = callback; + if (gInitialSummaryScreenCallback == NULL) + gInitialSummaryScreenCallback = callback; if (mode == SUMMARY_MODE_BOX) sMonSummaryScreen->isBoxMon = TRUE; @@ -1176,6 +1178,9 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, { case SUMMARY_MODE_NORMAL: case SUMMARY_MODE_BOX: + case SUMMARY_MODE_BOX_CURSOR: + case SUMMARY_MODE_RELEARNER_BATTLE: + case SUMMARY_MODE_RELEARNER_CONTEST: sMonSummaryScreen->minPageIndex = 0; sMonSummaryScreen->maxPageIndex = PSS_PAGE_COUNT - 1; break; @@ -1191,7 +1196,13 @@ void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, break; } - sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex; + if (mode == SUMMARY_MODE_RELEARNER_BATTLE) + sMonSummaryScreen->currPageIndex = PSS_PAGE_BATTLE_MOVES; + else if (mode == SUMMARY_MODE_RELEARNER_CONTEST) + sMonSummaryScreen->currPageIndex = PSS_PAGE_CONTEST_MOVES; + else + sMonSummaryScreen->currPageIndex = sMonSummaryScreen->minPageIndex; + sMonSummaryScreen->categoryIconSpriteId = 0xFF; SummaryScreen_SetAnimDelayTaskId(TASK_NONE); @@ -1533,6 +1544,7 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) sum->ribbonCount = GetMonData(mon, MON_DATA_RIBBON_COUNT); sum->teraType = GetMonData(mon, MON_DATA_TERA_TYPE); sum->isShiny = GetMonData(mon, MON_DATA_IS_SHINY); + sMonSummaryScreen->relearnableMovesNum = P_SUMMARY_SCREEN_MOVE_RELEARNER ? GetNumberOfRelearnableMoves(mon) : 0; return TRUE; } sMonSummaryScreen->switchCounter++; @@ -1541,7 +1553,9 @@ static bool8 ExtractMonDataToSummaryStruct(struct Pokemon *mon) static void SetDefaultTilemaps(void) { - if (sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) + if ((sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) + || sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_BATTLE + || sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_CONTEST) { HandlePowerAccTilemap(0, 0xFF); HandleAppealJamTilemap(0, 0xFF, 0); @@ -1558,9 +1572,36 @@ static void SetDefaultTilemaps(void) ClearWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); } + // these blocks handle preparing the gfx to return straight to the respective move info screens + if (sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_BATTLE) + { + SetBgTilemapBuffer(1, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_SKILLS][0]); + SetBgTilemapBuffer(2, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgAttribute(1, BG_ATTR_PRIORITY, 2); + SetBgAttribute(2, BG_ATTR_PRIORITY, 1); + ChangeBgX(1, 0x10000, BG_COORD_ADD); + ChangeBgX(2, 0x10000, BG_COORD_ADD); + ShowBg(1); + ShowBg(2); + } + else if (sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_CONTEST) + { + sMonSummaryScreen->bgDisplayOrder = 1; + SetBgTilemapBuffer(1, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0]); + SetBgTilemapBuffer(2, sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0]); + SetBgAttribute(1, BG_ATTR_PRIORITY, 1); + SetBgAttribute(2, BG_ATTR_PRIORITY, 2); + ChangeBgX(1, 0x10000, BG_COORD_ADD); + ChangeBgX(2, 0x10000, BG_COORD_ADD); + ShowBg(1); + ShowBg(2); + } + if (sMonSummaryScreen->summary.ailment == AILMENT_NONE) HandleStatusTilemap(0, 0xFF); - else if (sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) + else if ((sMonSummaryScreen->currPageIndex != PSS_PAGE_BATTLE_MOVES && sMonSummaryScreen->currPageIndex != PSS_PAGE_CONTEST_MOVES) + || sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_BATTLE + || sMonSummaryScreen->mode == SUMMARY_MODE_RELEARNER_CONTEST) PutWindowTilemap(PSS_LABEL_WINDOW_POKEMON_SKILLS_STATUS); LimitEggSummaryPageDisplay(); @@ -1583,6 +1624,8 @@ static void CloseSummaryScreen(u8 taskId) { if (MenuHelpers_ShouldWaitForLinkRecv() != TRUE && !gPaletteFade.active) { + if (sMonSummaryScreen->callback == gInitialSummaryScreenCallback) + gInitialSummaryScreenCallback = NULL; SetMainCallback2(sMonSummaryScreen->callback); gLastViewedMonIndex = sMonSummaryScreen->curMonIndex; SummaryScreen_DestroyAnimDelayTask(); @@ -1623,6 +1666,12 @@ static void Task_HandleInput(u8 taskId) { if (sMonSummaryScreen->currPageIndex == PSS_PAGE_INFO) { + if (ShouldShowRename()) + { + sMonSummaryScreen->callback = CB2_PssChangePokemonNickname; + gSpecialVar_0x8004 = sMonSummaryScreen->curMonIndex; + } + StopPokemonAnimations(); PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); @@ -1640,6 +1689,17 @@ static void Task_HandleInput(u8 taskId) PlaySE(SE_SELECT); BeginCloseSummaryScreen(taskId); } + else if (JOY_NEW(START_BUTTON) + && ShouldShowMoveRelearner() + && (sMonSummaryScreen->currPageIndex == PSS_PAGE_BATTLE_MOVES || sMonSummaryScreen->currPageIndex == PSS_PAGE_CONTEST_MOVES)) + { + sMonSummaryScreen->callback = CB2_InitLearnMove; + gSpecialVar_0x8004 = sMonSummaryScreen->curMonIndex; + gOriginSummaryScreenPage = sMonSummaryScreen->currPageIndex; + StopPokemonAnimations(); + PlaySE(SE_SELECT); + BeginCloseSummaryScreen(taskId); + } else if (DEBUG_POKEMON_SPRITE_VISUALIZER && JOY_NEW(SELECT_BUTTON) && !gMain.inBattle) { sMonSummaryScreen->callback = CB2_Pokemon_Sprite_Visualizer; @@ -1722,7 +1782,20 @@ static void Task_ChangeSummaryMon(u8 taskId) break; case 4: if (ExtractMonDataToSummaryStruct(&sMonSummaryScreen->currentMon) == FALSE) + { return; + } + else + { + if (P_SUMMARY_SCREEN_MOVE_RELEARNER + && (sMonSummaryScreen->currPageIndex == PSS_PAGE_BATTLE_MOVES || sMonSummaryScreen->currPageIndex == PSS_PAGE_CONTEST_MOVES)) + { + if (ShouldShowMoveRelearner()) + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); + else + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); + } + } break; case 5: RemoveAndCreateMonMarkingsSprite(&sMonSummaryScreen->currentMon); @@ -1753,6 +1826,12 @@ static void Task_ChangeSummaryMon(u8 taskId) case 11: PrintPageSpecificText(sMonSummaryScreen->currPageIndex); LimitEggSummaryPageDisplay(); + if (P_SUMMARY_SCREEN_RENAME && sMonSummaryScreen->currPageIndex == PSS_PAGE_INFO) + { + FillWindowPixelBuffer(PSS_LABEL_WINDOW_PROMPT_CANCEL, PIXEL_FILL(0)); + ShowCancelOrRenamePrompt(); + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_CANCEL); + } break; case 12: gSprites[sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_MON]].data[2] = 0; @@ -1969,6 +2048,8 @@ static void SwitchToMoveSelection(u8 taskId) if (!sMonSummaryScreen->lockMovesFlag) { ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); } TilemapFiveMovesDisplay(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, FALSE); @@ -2099,6 +2180,8 @@ static void CloseMoveSelectMode(u8 taskId) DestroyMoveSelectorSprites(SPRITE_ARR_ID_MOVE_SELECTOR1); ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_SWITCH); PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); PrintMoveDetails(0); TilemapFiveMovesDisplay(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_BATTLE_MOVES][0], 3, TRUE); TilemapFiveMovesDisplay(sMonSummaryScreen->bgTilemapBuffers[PSS_PAGE_CONTEST_MOVES][0], 1, TRUE); @@ -2925,12 +3008,7 @@ static void PrintPageNamesAndStats(void) PrintTextOnWindow(PSS_LABEL_WINDOW_BATTLE_MOVES_TITLE, gText_BattleMoves, 2, 1, 0, 1); PrintTextOnWindow(PSS_LABEL_WINDOW_CONTEST_MOVES_TITLE, gText_ContestMoves, 2, 1, 0, 1); - stringXPos = GetStringRightAlignXOffset(FONT_NORMAL, gText_Cancel2, 62); - iconXPos = stringXPos - 16; - if (iconXPos < 0) - iconXPos = 0; - PrintAOrBButtonIcon(PSS_LABEL_WINDOW_PROMPT_CANCEL, FALSE, iconXPos); - PrintTextOnWindow(PSS_LABEL_WINDOW_PROMPT_CANCEL, gText_Cancel2, stringXPos, 1, 0, 0); + ShowCancelOrRenamePrompt(); stringXPos = GetStringRightAlignXOffset(FONT_NORMAL, gText_Info, 62); iconXPos = stringXPos - 16; @@ -2967,6 +3045,7 @@ static void PrintPageNamesAndStats(void) PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_POWER_ACC, gText_Accuracy2, 0, 17, 0, 1); PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM, gText_Appeal, 0, 1, 0, 1); PrintTextOnWindow(PSS_LABEL_WINDOW_MOVES_APPEAL_JAM, gText_Jam, 0, 17, 0, 1); + PrintTextOnWindowWithFont(PSS_LABEL_WINDOW_PROMPT_RELEARN, gText_Relearn, 0, 4, 0, 0, FONT_SMALL); } static void PutPageWindowTilemaps(u8 page) @@ -3003,6 +3082,8 @@ static void PutPageWindowTilemaps(u8 page) else { PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); } break; case PSS_PAGE_CONTEST_MOVES: @@ -3015,6 +3096,8 @@ static void PutPageWindowTilemaps(u8 page) else { PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + PutWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); } break; } @@ -3054,6 +3137,8 @@ static void ClearPageWindowTilemaps(u8 page) else { ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); } break; case PSS_PAGE_CONTEST_MOVES: @@ -3065,6 +3150,8 @@ static void ClearPageWindowTilemaps(u8 page) else { ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_INFO); + if (ShouldShowMoveRelearner()) + ClearWindowTilemap(PSS_LABEL_WINDOW_PROMPT_RELEARN); } break; } @@ -4184,7 +4271,7 @@ static void RemoveAndCreateMonMarkingsSprite(struct Pokemon *mon) static void CreateCaughtBallSprite(struct Pokemon *mon) { - u8 ball = ItemIdToBallId(GetMonData(mon, MON_DATA_POKEBALL)); + enum PokeBall ball = GetMonData(mon, MON_DATA_POKEBALL); LoadBallGfx(ball); sMonSummaryScreen->spriteIds[SPRITE_ARR_ID_BALL] = CreateSprite(&gBallSpriteTemplates[ball], 16, 136, 0); @@ -4297,3 +4384,54 @@ static void KeepMoveSelectorVisible(u8 firstSpriteId) gSprites[spriteIds[i]].invisible = FALSE; } } + +static inline bool32 ShouldShowMoveRelearner(void) +{ + return (P_SUMMARY_SCREEN_MOVE_RELEARNER + && !sMonSummaryScreen->lockMovesFlag + && sMonSummaryScreen->mode != SUMMARY_MODE_BOX + && sMonSummaryScreen->mode != SUMMARY_MODE_BOX_CURSOR + && sMonSummaryScreen->relearnableMovesNum > 0 + && !InBattleFactory() + && !InSlateportBattleTent()); +} + +static inline bool32 ShouldShowRename(void) +{ + return (P_SUMMARY_SCREEN_RENAME + && !sMonSummaryScreen->lockMovesFlag + && !sMonSummaryScreen->summary.isEgg + && sMonSummaryScreen->mode != SUMMARY_MODE_BOX + && sMonSummaryScreen->mode != SUMMARY_MODE_BOX_CURSOR + && !InBattleFactory() + && !InSlateportBattleTent() + && GetPlayerIDAsU32() == sMonSummaryScreen->summary.OTID); +} + +static void ShowCancelOrRenamePrompt(void) +{ + const u8 *promptText = ShouldShowRename() ? gText_Rename : gText_Cancel2; + + int stringXPos = GetStringRightAlignXOffset(FONT_NORMAL, promptText, 62); + int iconXPos = stringXPos - 16; + if (iconXPos < 0) + iconXPos = 0; + + PrintAOrBButtonIcon(PSS_LABEL_WINDOW_PROMPT_CANCEL, FALSE, iconXPos); + PrintTextOnWindow(PSS_LABEL_WINDOW_PROMPT_CANCEL, promptText, stringXPos, 1, 0, 0); +} + +static void CB2_ReturnToSummaryScreenFromNamingScreen(void) +{ + SetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); + ShowPokemonSummaryScreen(SUMMARY_MODE_NORMAL, gPlayerParty, gSpecialVar_0x8004, gPlayerPartyCount - 1, gInitialSummaryScreenCallback); +} + +static void CB2_PssChangePokemonNickname(void) +{ + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar3); + GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_NICKNAME, gStringVar2); + DoNamingScreen(NAMING_SCREEN_NICKNAME, gStringVar2, GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES, NULL), + GetMonGender(&gPlayerParty[gSpecialVar_0x8004]), GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_PERSONALITY, NULL), + CB2_ReturnToSummaryScreenFromNamingScreen); +} diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c index a2cf3f93c4..65f3e55780 100644 --- a/src/pokenav_match_call_data.c +++ b/src/pokenav_match_call_data.c @@ -510,7 +510,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, @@ -526,7 +526,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, @@ -542,7 +542,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, @@ -558,7 +558,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, @@ -574,7 +574,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 = COMPOUND_STRING("CHAMPION"), .name = NULL, @@ -1163,7 +1163,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 94a13031da..9a51c092e9 100755 --- a/src/pokenav_match_call_list.c +++ b/src/pokenav_match_call_list.c @@ -263,7 +263,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; } diff --git a/src/pokenav_ribbons_summary.c b/src/pokenav_ribbons_summary.c index 9a5eafeea5..85082c2620 100644 --- a/src/pokenav_ribbons_summary.c +++ b/src/pokenav_ribbons_summary.c @@ -1084,7 +1084,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/random.c b/src/random.c index 969aa6d404..883649a072 100644 --- a/src/random.c +++ b/src/random.c @@ -5,8 +5,8 @@ #endif // IWRAM common -rng_value_t gRngValue; -rng_value_t gRng2Value; +COMMON_DATA rng_value_t gRngValue = {0}; +COMMON_DATA rng_value_t gRng2Value = {0}; EWRAM_DATA static volatile bool8 sRngLoopUnlocked; diff --git a/src/region_map.c b/src/region_map.c index 8936e668ac..92771c8220 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/rtc.c b/src/rtc.c index ae5b3f9e8f..8cd27a71fa 100644 --- a/src/rtc.c +++ b/src/rtc.c @@ -13,7 +13,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 e65dda971e..7d7d1e4292 100644 --- a/src/save.c +++ b/src/save.c @@ -82,19 +82,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 diff --git a/src/scrcmd.c b/src/scrcmd.c index 05402c5192..fe6ed4a316 100644 --- a/src/scrcmd.c +++ b/src/scrcmd.c @@ -32,6 +32,7 @@ #include "mystery_event_script.h" #include "palette.h" #include "party_menu.h" +#include "pokedex.h" #include "pokemon_storage_system.h" #include "random.h" #include "overworld.h" @@ -2488,3 +2489,73 @@ void ScriptSetDoubleBattleFlag(struct ScriptContext *ctx) { sIsScriptedWildDouble = TRUE; } + +bool8 ScrCmd_removeallitem(struct ScriptContext *ctx) +{ + u32 itemId = VarGet(ScriptReadHalfword(ctx)); + u32 count = CountTotalItemQuantityInBag(itemId); + gSpecialVar_Result = count; + RemoveBagItem(itemId, count); + + return FALSE; +} + +bool8 ScrCmd_getobjectxy(struct ScriptContext *ctx) +{ + u32 localId = VarGet(ScriptReadHalfword(ctx)); + u32 useTemplate = VarGet(ScriptReadHalfword(ctx)); + u16 *pX = GetVarPointer(ScriptReadHalfword(ctx)); + u16 *pY = GetVarPointer(ScriptReadHalfword(ctx)); + GetObjectPosition(pX, pY, localId, useTemplate); + + return FALSE; +} + +bool8 ScrCmd_checkobjectat(struct ScriptContext *ctx) +{ + u32 x = VarGet(ScriptReadHalfword(ctx)) + 7; + u32 y = VarGet(ScriptReadHalfword(ctx)) + 7; + u16 *varPointer = GetVarPointer(ScriptReadHalfword(ctx)); + + *varPointer = CheckObjectAtXY(x, y); + + return FALSE; +} + +bool8 Scrcmd_getsetpokedexflag(struct ScriptContext *ctx) +{ + u32 speciesId = SpeciesToNationalPokedexNum(VarGet(ScriptReadHalfword(ctx))); + bool32 desiredFlag = VarGet(ScriptReadHalfword(ctx)); + gSpecialVar_Result = GetSetPokedexFlag(speciesId, desiredFlag); + + if (desiredFlag == FLAG_SET_CAUGHT) + GetSetPokedexFlag(speciesId, FLAG_SET_SEEN); + + return FALSE; +} + +bool8 Scrcmd_checkspecies(struct ScriptContext *ctx) +{ + u32 givenSpecies = VarGet(ScriptReadHalfword(ctx)); + gSpecialVar_Result = CheckPartyHasSpecies(givenSpecies); + + return FALSE; +} + +bool8 Scrcmd_checkspecies_choose(struct ScriptContext *ctx) +{ + u32 givenSpecies = VarGet(ScriptReadHalfword(ctx)); + gSpecialVar_Result = (GetMonData(&gPlayerParty[gSpecialVar_0x8004], MON_DATA_SPECIES) == givenSpecies); + + return FALSE; +} + +bool8 Scrcmd_getobjectfacingdirection(struct ScriptContext *ctx) +{ + u32 objectId = VarGet(ScriptReadHalfword(ctx)); + u16 *varPointer = GetVarPointer(ScriptReadHalfword(ctx)); + + *varPointer = gObjectEvents[GetObjectEventIdByLocalId(objectId)].facingDirection; + + return FALSE; +} diff --git a/src/script_pokemon_util.c b/src/script_pokemon_util.c index 3d2c7d640c..020094389a 100644 --- a/src/script_pokemon_util.c +++ b/src/script_pokemon_util.c @@ -317,7 +317,7 @@ void SetTeraType(struct ScriptContext *ctx) * if side/slot are assigned, it will create the mon at the assigned party location * if slot == PARTY_SIZE, it will give the mon to first available party or storage slot */ -static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u16 item, u8 ball, u8 nature, u8 abilityNum, u8 gender, u8 *evs, u8 *ivs, u16 *moves, bool8 isShiny, bool8 ggMaxFactor, u8 teraType) +static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u16 item, enum PokeBall ball, u8 nature, u8 abilityNum, u8 gender, u8 *evs, u8 *ivs, u16 *moves, bool8 isShiny, bool8 ggMaxFactor, u8 teraType) { u16 nationalDexNum; int sentToPc; @@ -396,8 +396,8 @@ static u32 ScriptGiveMonParameterized(u8 side, u8 slot, u16 species, u8 level, u SetMonData(&mon, MON_DATA_ABILITY_NUM, &abilityNum); // ball - if (ball > LAST_BALL) - ball = ITEM_POKE_BALL; + if (ball > POKEBALL_COUNT) + ball = BALL_POKE; SetMonData(&mon, MON_DATA_POKEBALL, &ball); // held item diff --git a/src/sound.c b/src/sound.c index 548e48f163..db59e7e73c 100644 --- a/src/sound.c +++ b/src/sound.c @@ -24,14 +24,13 @@ 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[]; static void Task_Fanfare(u8 taskId); static void CreateFanfareTask(void); -static void Task_DuckBGMForPokemonCry(u8 taskId); static void RestoreBGMVolumeAfterPokemonCry(void); static const struct Fanfare sFanfares[] = { @@ -513,7 +512,7 @@ bool8 IsCryPlaying(void) return FALSE; } -static void Task_DuckBGMForPokemonCry(u8 taskId) +void Task_DuckBGMForPokemonCry(u8 taskId) { if (gPokemonCryBGMDuckingCounter) { diff --git a/gflib/sprite.c b/src/sprite.c similarity index 99% rename from gflib/sprite.c rename to src/sprite.c index 67192aabab..57970440b4 100644 --- a/gflib/sprite.c +++ b/src/sprite.c @@ -258,8 +258,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 u8 sSpriteOrder[MAX_SPRITES] = {0}; diff --git a/src/start_menu.c b/src/start_menu.c index 71ab87363c..0c364bb07d 100644 --- a/src/start_menu.c +++ b/src/start_menu.c @@ -77,7 +77,7 @@ enum }; // IWRAM common -bool8 (*gMenuCallback)(void); +COMMON_DATA bool8 (*gMenuCallback)(void) = NULL; // EWRAM EWRAM_DATA static u8 sSafariBallsWindowId = 0; diff --git a/gflib/string_util.c b/src/string_util.c similarity index 97% rename from gflib/string_util.c rename to src/string_util.c index 0fde2cb861..fd4a0861ee 100644 --- a/gflib/string_util.c +++ b/src/string_util.c @@ -122,6 +122,28 @@ u16 StringLength(const u8 *str) return length; } +u16 StringLineLength(const u8 *str) +{ + u16 i = 0, length = 0; + + while (str[length] != EOS) + { + switch (str[length]) + { + case CHAR_PROMPT_SCROLL: + case CHAR_PROMPT_CLEAR: + case CHAR_NEWLINE: + return length; + default: + i++; + length++; + break; + } + } + + return length; +} + s32 StringCompare(const u8 *str1, const u8 *str2) { while (*str1 == *str2) diff --git a/src/strings.c b/src/strings.c index ff1dde2cce..fb3c96eb9d 100644 --- a/src/strings.c +++ b/src/strings.c @@ -126,21 +126,11 @@ const u8 gMenuText_Use[] = _("USE"); const u8 gMenuText_Toss[] = _("TOSS"); const u8 gMenuText_Register[] = _("REGISTER"); const u8 gMenuText_Give[] = _("GIVE"); -const u8 gMenuText_CheckTag[] = _("CHECK TAG"); const u8 gMenuText_Confirm[] = _("CONFIRM"); -const u8 gMenuText_Walk[] = _("WALK"); const u8 gText_Cancel[] = _("CANCEL"); const u8 gText_Cancel2[] = _("CANCEL"); -const u8 gMenuText_Show[] = _("SHOW"); const u8 gText_EmptyString2[] = _(""); -const u8 gText_Cancel7[] = _("CANCEL"); // Unused -const u8 gText_Item[] = _("ITEM"); -const u8 gText_Mail[] = _("MAIL"); -const u8 gText_Take[] = _("TAKE"); -const u8 gText_Store[] = _("STORE"); -const u8 gMenuText_Check[] = _("CHECK"); const u8 gText_None[] = _("NONE"); -const u8 gMenuText_Deselect[] = _("DESELECT"); const u8 gText_FiveMarks[] = _("?????"); const u8 gText_Slash[] = _("/"); const u8 gText_OneDash[] = _("-"); @@ -166,39 +156,19 @@ const u8 gText_CantWriteMail[] = _("You can't write\nMAIL here."); const u8 gText_NoPokemon[] = _("There is no\nPOKéMON."); const u8 gText_MoveVar1Where[] = _("Move the\n{STR_VAR_1}\nwhere?"); const u8 gText_Var1CantBeHeld[] = _("The {STR_VAR_1} can't be held."); -const u8 gText_Var1CantBeHeldHere[] = _("The {STR_VAR_1} can't be held\nhere."); -const u8 gText_DepositHowManyVar1[] = _("Deposit how many\n{STR_VAR_1}?"); -const u8 gText_DepositedVar2Var1s[] = _("Deposited {STR_VAR_2}\n{STR_VAR_1}."); -const u8 gText_NoRoomForItems[] = _("There's no room to\nstore items."); -const u8 gText_CantStoreImportantItems[] = _("Important items\ncan't be stored in\nthe PC!"); -const u8 gText_TooImportantToToss[] = _("That's much too\nimportant to toss\nout!"); const u8 gText_TossHowManyVar1s[] = _("Toss out how many\n{STR_VAR_1}?"); const u8 gText_ThrewAwayVar2Var1s[] = _("Threw away {STR_VAR_2}\n{STR_VAR_1}."); const u8 gText_ConfirmTossItems[] = _("Is it okay to\nthrow away {STR_VAR_2}\n{STR_VAR_1}?"); const u8 gText_DadsAdvice[] = _("DAD's advice…\n{PLAYER}, there's a time and place for\leverything!{PAUSE_UNTIL_PRESS}"); -const u8 gText_CantDismountBike[] = _("You can't dismount your BIKE here.{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderNearby[] = _("Huh?\nThe ITEMFINDER's responding!\pThere's an item buried around here!{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderOnTop[] = _("Oh!\nThe ITEMFINDER's shaking wildly!{PAUSE_UNTIL_PRESS}"); -const u8 gText_ItemFinderNothing[] = _("… … … …Nope!\nThere's no response.{PAUSE_UNTIL_PRESS}"); -const u8 gText_CoinCase[] = _("Your COINS:\n{STR_VAR_1}{PAUSE_UNTIL_PRESS}"); -const u8 gText_BootedUpTM[] = _("Booted up a TM."); -const u8 gText_BootedUpHM[] = _("Booted up an HM."); -const u8 gText_TMHMContainedVar1[] = _("It contained\n{STR_VAR_1}.\pTeach {STR_VAR_1}\nto a POKéMON?"); const u8 gText_PlayerUsedVar2[] = _("{PLAYER} used the\n{STR_VAR_2}.{PAUSE_UNTIL_PRESS}"); const u8 gText_RepelEffectsLingered[] = _("But the effects of a REPEL\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); const u8 gText_LureEffectsLingered[] = _("But the effects of a Lure\nlingered from earlier.{PAUSE_UNTIL_PRESS}"); -const u8 gText_UsedVar2WildLured[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be lured.{PAUSE_UNTIL_PRESS}"); -const u8 gText_UsedVar2WildRepelled[] = _("{PLAYER} used the\n{STR_VAR_2}.\pWild POKéMON will be repelled.{PAUSE_UNTIL_PRESS}"); const u8 gText_BoxFull[] = _("The BOX is full.{PAUSE_UNTIL_PRESS}"); -const u8 gText_PowderQty[] = _("POWDER QTY: {STR_VAR_1}{PAUSE_UNTIL_PRESS}"); const u8 gText_TheField[] = _("the field"); const u8 gText_TheBattle[] = _("the battle"); const u8 gText_ThePokemonList[] = _("the POKéMON LIST"); const u8 gText_TheShop[] = _("the shop"); const u8 gText_ThePC[] = _("the PC"); -const u8 gText_PlayedPokeFluteCatchy[] = _("Played the POKé FLUTE.\pNow, that's a catchy tune!{PAUSE_UNTIL_PRESS}"); -const u8 gText_PlayedPokeFlute[] = _("Played the POKé FLUTE."); -const u8 gText_PokeFluteAwakenedMon[] = _("The POKé FLUTE awakened sleeping\nPOKéMON.{PAUSE_UNTIL_PRESS}"); const u8 *const gBagMenu_ReturnToStrings[] = { @@ -266,16 +236,6 @@ const u8 gText_HowManyToSell[] = _("{STR_VAR_2}?\nHow many would you like to sel const u8 gText_ICanPayVar1[] = _("I can pay ¥{STR_VAR_1}.\nWould that be okay?"); const u8 gText_TurnedOverVar1ForVar2[] = _("Turned over the {STR_VAR_2}\nand received ¥{STR_VAR_1}."); const u8 gText_PokedollarVar1[] = _("¥{STR_VAR_1}"); -const u8 gText_Shift[] = _("SHIFT"); -const u8 gText_SendOut[] = _("SEND OUT"); -const u8 gText_Switch2[] = _("SWITCH"); -const u8 gText_Summary5[] = _("SUMMARY"); -const u8 gText_Moves[] = _("MOVES"); // Unused -const u8 gText_Enter[] = _("ENTER"); -const u8 gText_NoEntry[] = _("NO ENTRY"); -const u8 gText_Take2[] = _("TAKE"); -const u8 gText_Read2[] = _("READ"); -const u8 gText_Trade4[] = _("TRADE"); const u8 gText_HP3[] = _("HP"); const u8 gText_SpAtk3[] = _("SP. ATK"); const u8 gText_SpDef3[] = _("SP. DEF"); @@ -483,23 +443,7 @@ const u8 gText_Tristan[] = _("TRISTAN"); const u8 gText_Philip[] = _("PHILIP"); const u8 gText_Dennis[] = _("DENNIS"); const u8 gText_Roberto[] = _("ROBERTO"); -const u8 gText_TurnOff[] = _("TURN OFF"); -const u8 gText_Decoration[] = _("DECORATION"); -const u8 gText_ItemStorage[] = _("ITEM STORAGE"); -const u8 gText_Mailbox[] = _("MAILBOX"); -const u8 gText_DepositItem[] = _("DEPOSIT ITEM"); -const u8 gText_WithdrawItem[] = _("WITHDRAW ITEM"); -const u8 gText_TossItem[] = _("TOSS ITEM"); -const u8 gText_StoreItemsInPC[] = _("Store items in the PC."); -const u8 gText_TakeOutItemsFromPC[] = _("Take out items from the PC."); -const u8 gText_ThrowAwayItemsInPC[] = _("Throw away items stored in the PC."); const u8 gText_NoItems[] = _("There are no items.{PAUSE_UNTIL_PRESS}"); -const u8 gText_NoRoomInBag[] = _("There is no more\nroom in the BAG."); -const u8 gText_WithdrawHowManyItems[] = _("Withdraw how many\n{STR_VAR_1}?"); -const u8 gText_WithdrawXItems[] = _("Withdrew {STR_VAR_2}\n{STR_VAR_1}."); -const u8 gText_Read[] = _("READ"); -const u8 gText_MoveToBag[] = _("MOVE TO BAG"); -const u8 gText_Give2[] = _("GIVE"); const u8 gText_NoMailHere[] = _("There's no MAIL here.{PAUSE_UNTIL_PRESS}"); const u8 gText_WhatToDoWithVar1sMail[] = _("What would you like to do with\n{STR_VAR_1}'s MAIL?"); const u8 gText_MessageWillBeLost[] = _("The message will be lost.\nIs that okay?"); @@ -513,17 +457,7 @@ const u8 gText_Brawly[] = _("BRAWLY"); const u8 gText_Winona[] = _("WINONA"); const u8 gText_Phoebe[] = _("PHOEBE"); const u8 gText_Glacia[] = _("GLACIA"); -const u8 gText_Petalburg[] = _("PETALBURG"); -const u8 gText_Slateport[] = _("SLATEPORT"); -const u8 gText_Littleroot[] = _("LITTLEROOT"); // Unused. Given the context, Briney may at one point have been able to sail the player here -const u8 gText_Lilycove[] = _("LILYCOVE"); // Unused. Given the context, Briney may at one point have been able to sail the player here -const u8 gText_Dewford[] = _("DEWFORD"); -const u8 gText_Enter2[] = _("ENTER"); const u8 gText_Info2[] = _("INFO"); -const u8 gText_WhatsAContest[] = _("What's a CONTEST?"); -const u8 gText_TypesOfContests[] = _("Types of CONTESTS"); -const u8 gText_Ranks[] = _("Ranks"); -const u8 gText_Judging[] = _("Judging"); //unused const u8 gText_CoolnessContest[] = _("COOLNESS CONTEST"); const u8 gText_BeautyContest[] = _("BEAUTY CONTEST"); const u8 gText_CutenessContest[] = _("CUTENESS CONTEST"); @@ -531,71 +465,17 @@ const u8 gText_SmartnessContest[] = _("SMARTNESS CONTEST"); const u8 gText_ToughnessContest[] = _("TOUGHNESS CONTEST"); const u8 gText_Decoration2[] = _("DECORATION"); const u8 gText_PackUp[] = _("PACK UP"); -const u8 gText_Count[] = _("COUNT"); //unused const u8 gText_Registry[] = _("REGISTRY"); const u8 gText_Information[] = _("INFORMATION"); -const u8 gText_Mach[] = _("MACH"); -const u8 gText_Acro[] = _("ACRO"); -const u8 gText_Psn[] = _("PSN"); -const u8 gText_Par[] = _("PAR"); -const u8 gText_Slp[] = _("SLP"); -const u8 gText_Brn[] = _("BRN"); -const u8 gText_Frz[] = _("FRZ"); -const u8 gText_Toxic[] = _("TOXIC"); // Unused -const u8 gText_Ok3[] = _("OK"); // Unused -const u8 gText_Quit[] = _("QUIT"); // Unused -const u8 gText_SawIt[] = _("Saw it"); -const u8 gText_NotYet[] = _("Not yet"); const u8 gText_Yes[] = _("YES"); const u8 gText_No[] = _("NO"); -const u8 gText_Info4[] = _("INFO"); // Unused -const u8 gText_SingleBattle[] = _("SINGLE BATTLE"); -const u8 gText_DoubleBattle[] = _("DOUBLE BATTLE"); -const u8 gText_MultiBattle[] = _("MULTI BATTLE"); -const u8 gText_MrBriney[] = _("MR. BRINEY"); // Unused -const u8 gText_Challenge[] = _("CHALLENGE"); -const u8 gText_Info3[] = _("INFO"); const u8 gText_Lv50[] = _("LV. 50"); const u8 gText_OpenLevel[] = _("OPEN LEVEL"); -const u8 gText_FreshWaterAndPrice[] = _("FRESH WATER{CLEAR_TO 0x48}¥200"); -const u8 gText_SodaPopAndPrice[] = _("SODA POP{CLEAR_TO 0x48}¥300"); -const u8 gText_LemonadeAndPrice[] = _("LEMONADE{CLEAR_TO 0x48}¥350"); -const u8 gText_HowToRide[] = _("HOW TO RIDE"); -const u8 gText_HowToTurn[] = _("HOW TO TURN"); -const u8 gText_SandySlopes[] = _("SANDY SLOPES"); -const u8 gText_Wheelies[] = _("WHEELIES"); -const u8 gText_BunnyHops[] = _("BUNNY-HOPS"); -const u8 gText_Jump[] = _("JUMP"); -const u8 gText_Satisfied[] = _("Satisfied"); -const u8 gText_Dissatisfied[] = _("Dissatisfied"); -const u8 gText_DeepSeaTooth[] = _("DEEPSEATOOTH"); -const u8 gText_DeepSeaScale[] = _("DEEPSEASCALE"); -const u8 gText_BlueFlute2[] = _("BLUE FLUTE"); -const u8 gText_YellowFlute2[] = _("YELLOW FLUTE"); -const u8 gText_RedFlute2[] = _("RED FLUTE"); -const u8 gText_WhiteFlute2[] = _("WHITE FLUTE"); -const u8 gText_BlackFlute2[] = _("BLACK FLUTE"); -const u8 gText_GlassChair[] = _("GLASS CHAIR"); -const u8 gText_GlassDesk[] = _("GLASS DESK"); -const u8 gText_TreeckoDollAndPrice[] = _("TREECKO DOLL 1,000 COINS"); -const u8 gText_TorchicDollAndPrice[] = _("TORCHIC DOLL 1,000 COINS"); -const u8 gText_MudkipDollAndPrice[] = _("MUDKIP DOLL 1,000 COINS"); -const u8 gText_50CoinsAndPrice[] = _(" 50 COINS ¥1,000"); -const u8 gText_500CoinsAndPrice[] = _("500 COINS ¥10,000"); -const u8 gText_Excellent2[] = _("Excellent"); -const u8 gText_NotSoGood[] = _("Not so good"); const u8 gText_RedShard[] = _("RED SHARD"); const u8 gText_YellowShard[] = _("YELLOW SHARD"); const u8 gText_BlueShard[] = _("BLUE SHARD"); const u8 gText_GreenShard[] = _("GREEN SHARD"); const u8 gText_BattleFrontier[] = _("BATTLE FRONTIER"); -const u8 gText_Right[] = _("Right"); -const u8 gText_Left[] = _("Left"); -const u8 gText_TM32AndPrice[] = _("TM32{CLEAR_TO 0x48}1,500 COINS"); -const u8 gText_TM29AndPrice[] = _("TM29{CLEAR_TO 0x48}3,500 COINS"); -const u8 gText_TM35AndPrice[] = _("TM35{CLEAR_TO 0x48}4,000 COINS"); -const u8 gText_TM24AndPrice[] = _("TM24{CLEAR_TO 0x48}4,000 COINS"); -const u8 gText_TM13AndPrice[] = _("TM13{CLEAR_TO 0x48}4,000 COINS"); const u8 gText_Cool[] = _("COOL"); const u8 gText_Beauty[] = _("BEAUTY"); const u8 gText_Cute[] = _("CUTE"); @@ -623,21 +503,10 @@ const u8 gText_LogOff[] = _("LOG OFF"); const u8 gText_Opponent[] = _("OPPONENT"); const u8 gText_Tourney_Tree[] = _("TOURNEY TREE"); const u8 gText_ReadyToStart[] = _("READY TO START"); -const u8 gText_NormalRank[] = _("NORMAL RANK"); -const u8 gText_SuperRank[] = _("SUPER RANK"); -const u8 gText_HyperRank[] = _("HYPER RANK"); -const u8 gText_MasterRank[] = _("MASTER RANK"); const u8 gText_Single2[] = _("SINGLE"); const u8 gText_Double2[] = _("DOUBLE"); const u8 gText_Multi[] = _("MULTI"); const u8 gText_MultiLink[] = _("MULTI-LINK"); -const u8 gText_BattleBag[] = _("BATTLE BAG"); -const u8 gText_HeldItem[] = _("HELD ITEM"); -const u8 gText_LinkContest[] = _("LINK CONTEST"); -const u8 gText_AboutE_Mode[] = _("ABOUT E-MODE"); -const u8 gText_AboutG_Mode[] = _("ABOUT G-MODE"); -const u8 gText_E_Mode[] = _("E-MODE"); -const u8 gText_G_Mode[] = _("G-MODE"); const u8 gText_MenuOptionPokedex[] = _("POKéDEX"); const u8 gText_MenuOptionPokemon[] = _("POKéMON"); const u8 gText_MenuOptionBag[] = _("BAG"); @@ -646,22 +515,10 @@ const u8 gText_Blank[] = _(""); const u8 gText_MenuOptionSave[] = _("SAVE"); const u8 gText_MenuOptionOption[] = _("OPTION"); const u8 gText_MenuOptionExit[] = _("EXIT"); -const u8 gText_5BP[] = _(" 5BP"); -const u8 gText_10BP[] = _("10BP"); -const u8 gText_15BP[] = _("15BP"); -const u8 gText_RedTent[] = _("RED TENT"); -const u8 gText_BlueTent[] = _("BLUE TENT"); const u8 gText_SouthernIsland[] = _("SOUTHERN ISLAND"); const u8 gText_BirthIsland[] = _("BIRTH ISLAND"); const u8 gText_FarawayIsland[] = _("FARAWAY ISLAND"); const u8 gText_NavelRock[] = _("NAVEL ROCK"); -const u8 gText_ClawFossil[] = _("CLAW FOSSIL"); -const u8 gText_RootFossil[] = _("ROOT FOSSIL"); -const u8 gText_No4[] = _("NO"); -const u8 gText_IllBattleNow[] = _("I'll battle now!"); -const u8 gText_IWon[] = _("I won!"); -const u8 gText_ILost[] = _("I lost!"); -const u8 gText_IWontTell[] = _("I won't tell."); const u8 gText_NormalTagMatch[] = _("NORMAL TAG MATCH"); const u8 gText_VarietyTagMatch[] = _("VARIETY TAG MATCH"); const u8 gText_UniqueTagMatch[] = _("UNIQUE TAG MATCH"); @@ -670,69 +527,25 @@ const u8 gText_TradeCenter[] = _("TRADE CENTER"); const u8 gText_Colosseum[] = _("COLOSSEUM"); const u8 gText_RecordCorner[] = _("RECORD CORNER"); const u8 gText_BerryCrush3[] = _("BERRY CRUSH"); -const u8 gText_EmptyLinkService[] = _(""); // Maybe Spin Trade? -const u8 gText_PokemonJump[] = _("POKéMON JUMP"); -const u8 gText_DodrioBerryPicking[] = _("DODRIO BERRY-PICKING"); -const u8 gText_BecomeLeader[] = _("BECOME LEADER"); -const u8 gText_JoinGroup[] = _("JOIN GROUP"); -const u8 gText_TwoStyles[] = _("TWO STYLES"); -const u8 gText_Lv50_3[] = _("LV. 50"); -const u8 gText_OpenLevel2[] = _("OPEN LEVEL"); -const u8 gText_MonTypeAndNo[] = _("{PKMN} TYPE & NO."); -const u8 gText_HoldItems[] = _("HOLD ITEMS"); -const u8 gText_Symbols2[] = _("SYMBOLS"); -const u8 gText_Record3[] = _("RECORD"); -const u8 gText_BattlePts[] = _("BATTLE PTS"); -const u8 gText_TowerInfo[] = _("TOWER INFO"); -const u8 gText_BattleMon[] = _("BATTLE {PKMN}"); -const u8 gText_BattleSalon[] = _("BATTLE SALON"); -const u8 gText_MultiLink2[] = _("MULTI-LINK"); const u8 gText_BattleRules[] = _("BATTLE RULES"); const u8 gText_JudgeMind[] = _("JUDGE: MIND"); const u8 gText_JudgeSkill[] = _("JUDGE: SKILL"); const u8 gText_JudgeBody[] = _("JUDGE: BODY"); -const u8 gText_Matchup[] = _("MATCHUP"); -const u8 gText_TourneyTree[] = _("TOURNEY TREE"); -const u8 gText_DoubleKO[] = _("DOUBLE KO"); const u8 gText_BasicRules[] = _("BASIC RULES"); const u8 gText_SwapPartners[] = _("SWAP: PARTNER"); const u8 gText_SwapNumber[] = _("SWAP: NUMBER"); const u8 gText_SwapNotes[] = _("SWAP: NOTES"); -const u8 gText_OpenLevel3[] = _("OPEN LEVEL"); const u8 gText_BattleBasics[] = _("BATTLE BASICS"); const u8 gText_PokemonNature[] = _("POKéMON NATURE"); const u8 gText_PokemonMoves[] = _("POKéMON MOVES"); const u8 gText_Underpowered[] = _("UNDERPOWERED"); const u8 gText_WhenInDanger[] = _("WHEN IN DANGER"); -const u8 gText_PyramidPokemon[] = _("PYRAMID: POKéMON"); -const u8 gText_PyramidTrainers[] = _("PYRAMID: TRAINERS"); -const u8 gText_PyramidMaze[] = _("PYRAMID: MAZE"); -const u8 gText_BattleBag2[] = _("BATTLE BAG"); -const u8 gText_PokenavAndBag[] = _("POKéNAV AND BAG"); -const u8 gText_HeldItems[] = _("HELD ITEMS"); -const u8 gText_PokemonOrder[] = _("POKéMON ORDER"); const u8 gText_BattlePokemon[] = _("BATTLE POKéMON"); const u8 gText_BattleTrainers[] = _("BATTLE TRAINERS"); const u8 gText_GoOn[] = _("GO ON"); const u8 gText_Record2[] = _("RECORD"); const u8 gText_Rest[] = _("REST"); const u8 gText_Retire[] = _("RETIRE"); -const u8 gText_99TimesPlus[] = _("99 times +"); -const u8 gText_1MinutePlus[] = _("1 minute +"); -const u8 gText_SpaceSeconds[] = _(" seconds"); -const u8 gText_SpaceTimes[] = _(" time(s)"); -const u8 gText_Dot[] = _("."); // Unused -const u8 gText_BigGuy[] = _("Big guy"); -const u8 gText_BigGirl[] = _("Big girl"); -const u8 gText_Son[] = _("son"); -const u8 gText_Daughter[] = _("daughter"); -const u8 gText_BlueFlute[] = _("BLUE FLUTE"); -const u8 gText_YellowFlute[] = _("YELLOW FLUTE"); -const u8 gText_RedFlute[] = _("RED FLUTE"); -const u8 gText_WhiteFlute[] = _("WHITE FLUTE"); -const u8 gText_BlackFlute[] = _("BLACK FLUTE"); -const u8 gText_PrettyChair[] = _("PRETTY CHAIR"); -const u8 gText_PrettyDesk[] = _("PRETTY DESK"); const u8 gText_1F[] = _("1F"); const u8 gText_2F[] = _("2F"); const u8 gText_3F[] = _("3F"); @@ -751,25 +564,10 @@ const u8 gText_B4F[] = _("B4F"); const u8 gText_Rooftop[] = _("ROOFTOP"); const u8 gText_ElevatorNowOn[] = _("Now on:"); const u8 gText_BP[] = _("BP"); -const u8 gText_EnergyPowder50[] = _("ENERGYPOWDER{CLEAR_TO 114}{FONT_SMALL}50"); -const u8 gText_EnergyRoot80[] = _("ENERGY ROOT{CLEAR_TO 114}{FONT_SMALL}80"); -const u8 gText_HealPowder50[] = _("HEAL POWDER{CLEAR_TO 114}{FONT_SMALL}50"); -const u8 gText_RevivalHerb300[] = _("REVIVAL HERB{CLEAR_TO 108}{FONT_SMALL}300"); -const u8 gText_Protein1000[] = _("PROTEIN{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_Iron1000[] = _("IRON{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_Carbos1000[] = _("CARBOS{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_Calcium1000[] = _("CALCIUM{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_Zinc1000[] = _("ZINC{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_HPUp1000[] = _("HP UP{CLEAR_TO 99}{FONT_SMALL}1,000"); -const u8 gText_PPUp3000[] = _("PP UP{CLEAR_TO 99}{FONT_SMALL}3,000"); const u8 gText_RankingHall[] = _("RANKING HALL"); const u8 gText_ExchangeService[] = _("EXCHANGE SERVICE"); const u8 gText_LilycoveCity[] = _("LILYCOVE CITY"); const u8 gText_SlateportCity[] = _("SLATEPORT CITY"); -const u8 gText_CaveOfOrigin[] = _("CAVE OF ORIGIN"); -const u8 gText_MtPyre[] = _("MT. PYRE"); -const u8 gText_SkyPillar[] = _("SKY PILLAR"); -const u8 gText_DontRemember[] = _("Don't remember"); const u8 gText_Exit[] = _("EXIT"); const u8 gText_YourPartysFull[] = _("Your party's full!{PAUSE_UNTIL_PRESS}"); const u8 gText_NatureSlash[] = _("NATURE/"); @@ -909,68 +707,6 @@ const u8 gText_Jackpot[] = _("jackpot"); const u8 gText_First[] = _("first"); const u8 gText_Second[] = _("second"); const u8 gText_Third[] = _("third"); -const u8 gText_0Pts[] = _("0 pts"); -const u8 gText_10Pts[] = _("10 pts"); -const u8 gText_20Pts[] = _("20 pts"); -const u8 gText_30Pts[] = _("30 pts"); -const u8 gText_40Pts[] = _("40 pts"); -const u8 gText_50Pts[] = _("50 pts"); -const u8 gText_60Pts[] = _("60 pts"); -const u8 gText_70Pts[] = _("70 pts"); -const u8 gText_80Pts[] = _("80 pts"); -const u8 gText_90Pts[] = _("90 pts"); -const u8 gText_100Pts[] = _("100 pts"); -const u8 gText_QuestionMark[] = _("?"); -const u8 gText_KissPoster16BP[] = _("KISS POSTER{CLEAR_TO 0x5E}16BP"); -const u8 gText_KissCushion32BP[] = _("KISS CUSHION{CLEAR_TO 0x5E}32BP"); -const u8 gText_SmoochumDoll32BP[] = _("SMOOCHUM DOLL{CLEAR_TO 0x5E}32BP"); -const u8 gText_TogepiDoll48BP[] = _("TOGEPI DOLL{CLEAR_TO 0x5E}48BP"); -const u8 gText_MeowthDoll48BP[] = _("MEOWTH DOLL{CLEAR_TO 0x5E}48BP"); -const u8 gText_ClefairyDoll48BP[] = _("CLEFAIRY DOLL{CLEAR_TO 0x5E}48BP"); -const u8 gText_DittoDoll48BP[] = _("DITTO DOLL{CLEAR_TO 0x5E}48BP"); -const u8 gText_CyndaquilDoll80BP[] = _("CYNDAQUIL DOLL{CLEAR_TO 0x5E}80BP"); -const u8 gText_ChikoritaDoll80BP[] = _("CHIKORITA DOLL{CLEAR_TO 0x5E}80BP"); -const u8 gText_TotodileDoll80BP[] = _("TOTODILE DOLL{CLEAR_TO 0x5E}80BP"); -const u8 gText_LaprasDoll128BP[] = _("LAPRAS DOLL{CLEAR_TO 0x58}128BP"); -const u8 gText_SnorlaxDoll128BP[] = _("SNORLAX DOLL{CLEAR_TO 0x58}128BP"); -const u8 gText_VenusaurDoll256BP[] = _("VENUSAUR DOLL{CLEAR_TO 0x58}256BP"); -const u8 gText_CharizardDoll256BP[] = _("CHARIZARD DOLL{CLEAR_TO 0x58}256BP"); -const u8 gText_BlastoiseDoll256BP[] = _("BLASTOISE DOLL{CLEAR_TO 0x58}256BP"); -const u8 gText_Protein1BP[] = _("PROTEIN{CLEAR_TO 0x64}1BP"); -const u8 gText_Calcium1BP[] = _("CALCIUM{CLEAR_TO 0x64}1BP"); -const u8 gText_Iron1BP[] = _("IRON{CLEAR_TO 0x64}1BP"); -const u8 gText_Zinc1BP[] = _("ZINC{CLEAR_TO 0x64}1BP"); -const u8 gText_Carbos1BP[] = _("CARBOS{CLEAR_TO 0x64}1BP"); -const u8 gText_HpUp1BP[] = _("HP UP{CLEAR_TO 0x64}1BP"); -const u8 gText_Leftovers48BP[] = _("LEFTOVERS{CLEAR_TO 0x5E}48BP"); -const u8 gText_WhiteHerb48BP[] = _("WHITE HERB{CLEAR_TO 0x5E}48BP"); -const u8 gText_QuickClaw48BP[] = _("QUICK CLAW{CLEAR_TO 0x5E}48BP"); -const u8 gText_MentalHerb48BP[] = _("MENTAL HERB{CLEAR_TO 0x5E}48BP"); -const u8 gText_BrightPowder64BP[] = _("BRIGHTPOWDER{CLEAR_TO 0x5E}64BP"); -const u8 gText_ChoiceBand64BP[] = _("CHOICE BAND{CLEAR_TO 0x5E}64BP"); -const u8 gText_KingsRock64BP[] = _("KING'S ROCK{CLEAR_TO 0x5E}64BP"); -const u8 gText_FocusBand64BP[] = _("FOCUS BAND{CLEAR_TO 0x5E}64BP"); -const u8 gText_ScopeLens64BP[] = _("SCOPE LENS{CLEAR_TO 0x5E}64BP"); -const u8 gText_Softboiled16BP[] = _("SOFTBOILED{CLEAR_TO 0x4E}16BP"); -const u8 gText_SeismicToss24BP[] = _("SEISMIC TOSS{CLEAR_TO 0x4E}24BP"); -const u8 gText_DreamEater24BP[] = _("DREAM EATER{CLEAR_TO 0x4E}24BP"); -const u8 gText_MegaPunch24BP[] = _("MEGA PUNCH{CLEAR_TO 0x4E}24BP"); -const u8 gText_MegaKick48BP[] = _("MEGA KICK{CLEAR_TO 0x4E}48BP"); -const u8 gText_BodySlam48BP[] = _("BODY SLAM{CLEAR_TO 0x4E}48BP"); -const u8 gText_RockSlide48BP[] = _("ROCK SLIDE{CLEAR_TO 0x4E}48BP"); -const u8 gText_Counter48BP[] = _("COUNTER{CLEAR_TO 0x4E}48BP"); -const u8 gText_ThunderWave48BP[] = _("THUNDER WAVE{CLEAR_TO 0x4E}48BP"); -const u8 gText_SwordsDance48BP[] = _("SWORDS DANCE{CLEAR_TO 0x4E}48BP"); -const u8 gText_DefenseCurl16BP[] = _("DEFENSE CURL{CLEAR_TO 0x4E}16BP"); -const u8 gText_Snore24BP[] = _("SNORE{CLEAR_TO 0x4E}24BP"); -const u8 gText_MudSlap24BP[] = _("MUD-SLAP{CLEAR_TO 0x4E}24BP"); -const u8 gText_Swift24BP[] = _("SWIFT{CLEAR_TO 0x4E}24BP"); -const u8 gText_IcyWind24BP[] = _("ICY WIND{CLEAR_TO 0x4E}24BP"); -const u8 gText_Endure48BP[] = _("ENDURE{CLEAR_TO 0x4E}48BP"); -const u8 gText_PsychUp48BP[] = _("PSYCH UP{CLEAR_TO 0x4E}48BP"); -const u8 gText_IcePunch48BP[] = _("ICE PUNCH{CLEAR_TO 0x4E}48BP"); -const u8 gText_ThunderPunch48BP[] = _("THUNDERPUNCH{CLEAR_TO 0x4E}48BP"); -const u8 gText_FirePunch48BP[] = _("FIRE PUNCH{CLEAR_TO 0x4E}48BP"); #if OW_POISON_DAMAGE < GEN_4 const u8 gText_PkmnFainted_FldPsn[] = _("{STR_VAR_1} fainted…\p\n"); #else @@ -1193,9 +929,6 @@ const u8 gJPText_ConnectionComplete[] = _("つうしん しゅうりょう!" const u8 gJPText_NewTrainerHasComeToHoenn[] = _("あらたな トレーナーが\nホウエンに やってきた!"); const u8 gJPText_PleaseWaitAMoment[] = _("しばらく おまちください"); const u8 gJPText_WriteErrorUnableToSaveData[] = _("かきこみ エラー です\nデータが ほぞん できませんでした"); -const u8 gText_Red[] = _("RED"); -const u8 gText_Blue[] = _("BLUE"); -const u8 gText_3Dashes[] = _("---"); // Unused const u8 gText_SingleBattleRoomResults[] = _("{PLAYER}'s Single Battle Room Results"); const u8 gText_DoubleBattleRoomResults[] = _("{PLAYER}'s Double Battle Room Results"); const u8 gText_MultiBattleRoomResults[] = _("{PLAYER}'s Multi Battle Room Results"); @@ -1497,15 +1230,7 @@ const u8 gText_TrainerHill1F[] = _("1F"); const u8 gText_TrainerHill2F[] = _("2F"); const u8 gText_TrainerHill3F[] = _("3F"); const u8 gText_TrainerHill4F[] = _("4F"); -const u8 gText_LightBulb[] = _("Light bulb"); -const u8 gText_MicrowaveOven[] = _("Microwave oven"); -const u8 gText_WashingMachine[] = _("Washing machine"); -const u8 gText_Refrigerator[] = _("Refrigerator"); -const u8 gText_ElectricFan[] = _("Electric fan"); -const u8 gText_LawnMower[] = _("Lawn mower"); -const u8 gText_ChangeForm[] = _("Change form"); -const u8 gText_ChangeAbility[] = _("Change Ability"); -const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to {STR_VAR_1}?"); +const u8 gText_TeachWhichMoveToPkmn[] = _("Teach which move to\n{STR_VAR_1}?"); const u8 gText_MoveRelearnerTeachMoveConfirm[] = _("Teach {STR_VAR_2}?"); const u8 gText_MoveRelearnerPkmnLearnedMove[] = _("{STR_VAR_1} learned\n{STR_VAR_2}!"); const u8 gText_MoveRelearnerPkmnTryingToLearnMove[] = _("{STR_VAR_1} is trying to learn\n{STR_VAR_2}.\pBut {STR_VAR_1} can't learn more\nthan four moves.\pDelete an older move to make\nroom for {STR_VAR_2}?"); @@ -1563,7 +1288,7 @@ const u8 gText_Berries[] = _("BERRIES"); const u8 gText_ExpShareOn[] = _("The Exp. Share has been turned on.{PAUSE_UNTIL_PRESS}"); const u8 gText_ExpShareOff[] = _("The Exp. Share has been turned off.{PAUSE_UNTIL_PRESS}"); const u8 gText_BasePointsResetToZero[] = _("{STR_VAR_1}'s base points\nwere all reset to zero!{PAUSE_UNTIL_PRESS}"); -const u8 gText_Fertilize[] = _("FERTILIZE"); -const u8 gText_PlantBerry[] = _("PLANT BERRY"); const u8 gText_AM[] = _("AM"); const u8 gText_PM[] = _("PM"); +const u8 gText_Relearn[] = _("{START_BUTTON} RELEARN"); // future note: don't decap this, because it mimics the summary screen BG graphics which will not get decapped +const u8 gText_Rename[] = _("RENAME"); 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/gflib/text.c b/src/text.c similarity index 95% rename from gflib/text.c rename to src/text.c index e2adba1cdb..29ffc5ea3a 100644 --- a/gflib/text.c +++ b/src/text.c @@ -26,6 +26,7 @@ static u16 FontFunc_SmallNarrow(struct TextPrinter *); static u16 FontFunc_Narrower(struct TextPrinter *); static u16 FontFunc_SmallNarrower(struct TextPrinter *); static u16 FontFunc_ShortNarrow(struct TextPrinter *); +static u16 FontFunc_ShortNarrower(struct TextPrinter *); static void DecompressGlyph_Small(u16, bool32); static void DecompressGlyph_Normal(u16, bool32); static void DecompressGlyph_Short(u16, bool32); @@ -35,6 +36,7 @@ static void DecompressGlyph_Bold(u16); static void DecompressGlyph_Narrower(u16, bool32); static void DecompressGlyph_SmallNarrower(u16, bool32); static void DecompressGlyph_ShortNarrow(u16, bool32); +static void DecompressGlyph_ShortNarrower(u16, bool32); static u32 GetGlyphWidth_Small(u16, bool32); static u32 GetGlyphWidth_Normal(u16, bool32); static u32 GetGlyphWidth_Short(u16, bool32); @@ -43,6 +45,7 @@ static u32 GetGlyphWidth_SmallNarrow(u16, bool32); static u32 GetGlyphWidth_Narrower(u16, bool32); static u32 GetGlyphWidth_SmallNarrower(u16, bool32); static u32 GetGlyphWidth_ShortNarrow(u16, bool32); +static u32 GetGlyphWidth_ShortNarrower(u16, bool32); static EWRAM_DATA struct TextPrinter sTempTextPrinter = {0}; static EWRAM_DATA struct TextPrinter sTextPrinters[WINDOWS_MAX] = {0}; @@ -52,10 +55,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[] = { @@ -102,6 +105,7 @@ static const struct GlyphWidthFunc sGlyphWidthFuncs[] = { FONT_NARROWER, GetGlyphWidth_Narrower }, { FONT_SMALL_NARROWER, GetGlyphWidth_SmallNarrower }, { FONT_SHORT_NARROW, GetGlyphWidth_ShortNarrow }, + { FONT_SHORT_NARROWER, GetGlyphWidth_ShortNarrower }, }; struct @@ -260,6 +264,16 @@ static const struct FontInfo sFontInfos[] = .bgColor = 1, .shadowColor = 3, }, + [FONT_SHORT_NARROWER] = { + .fontFunction = FontFunc_ShortNarrower, + .maxLetterWidth = 5, + .maxLetterHeight = 14, + .letterSpacing = 0, + .lineSpacing = 0, + .fgColor = 2, + .bgColor = 1, + .shadowColor = 3, + }, }; static const u8 sMenuCursorDimensions[][2] = @@ -277,6 +291,7 @@ static const u8 sMenuCursorDimensions[][2] = [FONT_NARROWER] = { 8, 15 }, [FONT_SMALL_NARROWER] = { 8, 8 }, [FONT_SHORT_NARROW] = { 8, 14 }, + [FONT_SHORT_NARROWER] = { 8, 14 }, }; static const u16 sFontBoldJapaneseGlyphs[] = INCBIN_U16("graphics/fonts/bold.hwjpnfont"); @@ -850,6 +865,18 @@ static u16 FontFunc_ShortNarrow(struct TextPrinter *textPrinter) return RenderText(textPrinter); } +static u16 FontFunc_ShortNarrower(struct TextPrinter *textPrinter) +{ + struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); + + if (subStruct->hasFontIdBeenSet == FALSE) + { + subStruct->fontId = FONT_SHORT_NARROWER; + subStruct->hasFontIdBeenSet = TRUE; + } + return RenderText(textPrinter); +} + void TextPrinterInitDownArrowCounters(struct TextPrinter *textPrinter) { struct TextPrinterSubStruct *subStruct = (struct TextPrinterSubStruct *)(&textPrinter->subStructFields); @@ -1238,6 +1265,9 @@ static u16 RenderText(struct TextPrinter *textPrinter) case FONT_SHORT_NARROW: DecompressGlyph_ShortNarrow(currChar, textPrinter->japanese); break; + case FONT_SHORT_NARROWER: + DecompressGlyph_ShortNarrower(currChar, textPrinter->japanese); + break; case FONT_BRAILLE: break; } @@ -1423,6 +1453,16 @@ static u32 (*GetFontWidthFunc(u8 fontId))(u16, bool32) return NULL; } +s32 GetGlyphWidth(u16 glyphId, bool32 isJapanese, u8 fontId) +{ + u32 (*func)(u16 fontId, bool32 isJapanese); + + func = GetFontWidthFunc(fontId); + if (func == NULL) + return 0; + return func(glyphId, isJapanese); +} + s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) { bool32 isJapanese; @@ -1595,6 +1635,28 @@ s32 GetStringWidth(u8 fontId, const u8 *str, s16 letterSpacing) return width; } +s32 GetStringLineWidth(u8 fontId, const u8 *str, s16 letterSpacing, u32 lineNum, u32 strSize) +{ + u32 strWidth = 0, strLen, currLine; + u8 strCopy[strSize]; + + for (currLine = 1; currLine <= lineNum; currLine++) + { + strWidth = GetStringWidth(fontId, str, letterSpacing); + strLen = StringLineLength(str); + memset(strCopy, EOS, strSize); + if (currLine == lineNum && strLen != 0) + { + StringCopyN(strCopy, str, strLen); + strWidth = GetStringWidth(fontId, strCopy, letterSpacing); + strLen = StringLineLength(strCopy); + StringAppend(strCopy, gText_EmptyString3); + } + str += strLen + 1; + } + return strWidth; +} + u8 RenderTextHandleBold(u8 *pixels, u8 fontId, u8 *str) { u8 shadowColor; @@ -2129,6 +2191,50 @@ static u32 GetGlyphWidth_ShortNarrow(u16 glyphId, bool32 isJapanese) return gFontShortNarrowLatinGlyphWidths[glyphId]; } +static void DecompressGlyph_ShortNarrower(u16 glyphId, bool32 isJapanese) +{ + const u16 *glyphs; + + if (isJapanese == TRUE) + { + glyphs = gFontShortJapaneseGlyphs + (0x100 * (glyphId >> 0x3)) + (0x10 * (glyphId & 0x7)); + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x80, gCurGlyph.gfxBufferBottom); // gCurGlyph + 0x20 + DecompressGlyphTile(glyphs + 0x88, gCurGlyph.gfxBufferBottom + 8); // gCurGlyph + 0x60 + gCurGlyph.width = gFontShortJapaneseGlyphWidths[glyphId]; + gCurGlyph.height = 14; + } + else + { + glyphs = gFontShortNarrowerLatinGlyphs + (0x20 * glyphId); + gCurGlyph.width = gFontShortNarrowerLatinGlyphWidths[glyphId]; + + if (gCurGlyph.width <= 8) + { + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + } + else + { + DecompressGlyphTile(glyphs, gCurGlyph.gfxBufferTop); + DecompressGlyphTile(glyphs + 0x8, gCurGlyph.gfxBufferTop + 8); + DecompressGlyphTile(glyphs + 0x10, gCurGlyph.gfxBufferBottom); + DecompressGlyphTile(glyphs + 0x18, gCurGlyph.gfxBufferBottom + 8); + } + + gCurGlyph.height = 14; + } +} + +static u32 GetGlyphWidth_ShortNarrower(u16 glyphId, bool32 isJapanese) +{ + if (isJapanese == TRUE) + return gFontShortJapaneseGlyphWidths[glyphId]; + else + return gFontShortNarrowerLatinGlyphWidths[glyphId]; +} + static const s8 sNarrowerFontIds[] = { [FONT_SMALL] = FONT_SMALL_NARROW, @@ -2143,7 +2249,8 @@ static const s8 sNarrowerFontIds[] = [FONT_BOLD] = -1, [FONT_NARROWER] = -1, [FONT_SMALL_NARROWER] = -1, - [FONT_SHORT_NARROW] = -1, + [FONT_SHORT_NARROW] = FONT_SHORT_NARROWER, + [FONT_SHORT_NARROWER] = -1, }; // If the narrowest font ID doesn't fit the text, we still return that diff --git a/src/trainer_see.c b/src/trainer_see.c index 9a2b04d1b8..e7030bbc26 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 8fc8bb684b..8313ee9bf5 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/union_room_player_avatar.c b/src/union_room_player_avatar.c index 6a2d6081c1..c99cc0e493 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; diff --git a/gflib/window.c b/src/window.c similarity index 99% rename from gflib/window.c rename to src/window.c index 5e77283945..ec998083a0 100644 --- a/gflib/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/test/battle/ability/aftermath.c b/test/battle/ability/aftermath.c index 5cfd5ef034..119c3bbec4 100644 --- a/test/battle/ability/aftermath.c +++ b/test/battle/ability/aftermath.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Aftermath damages the attacker by 1/4th of its max HP if fai } WHEN { TURN {MOVE(opponent, MOVE_TACKLE);} } SCENE { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); MESSAGE("Voltorb fainted!"); ABILITY_POPUP(player, ABILITY_AFTERMATH); diff --git a/test/battle/ability/anger_point.c b/test/battle/ability/anger_point.c index ddfa3c841d..b803b40f3f 100644 --- a/test/battle/ability/anger_point.c +++ b/test/battle/ability/anger_point.c @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Anger Point does not trigger when already at maximum Attack } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BELLY_DRUM, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Primeape cut its own HP and maximized ATTACK!"); + MESSAGE("Primeape cut its own HP and maximized its Attack!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FROST_BREATH, opponent); MESSAGE("A critical hit!"); NONE_OF { @@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Anger Point does not trigger when a substitute takes the hit TURN { MOVE(player, MOVE_SUBSTITUTE); MOVE(opponent, MOVE_FROST_BREATH); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); - MESSAGE("Primeape made a SUBSTITUTE!"); + MESSAGE("Primeape put in a substitute!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FROST_BREATH, opponent); MESSAGE("A critical hit!"); NONE_OF { diff --git a/test/battle/ability/bad_dreams.c b/test/battle/ability/bad_dreams.c index 312b9dc695..8a1d3669a2 100644 --- a/test/battle/ability/bad_dreams.c +++ b/test/battle/ability/bad_dreams.c @@ -15,13 +15,13 @@ SINGLE_BATTLE_TEST("Bad Dreams causes the sleeping enemy Pokemon to lose 1/8 of } SCENE { if (status == STATUS1_SLEEP) { ABILITY_POPUP(player, ABILITY_BAD_DREAMS); - MESSAGE("Foe Wobbuffet is tormented!"); + MESSAGE("The opposing Wobbuffet is tormented!"); HP_BAR(opponent); } else { NONE_OF { ABILITY_POPUP(player, ABILITY_BAD_DREAMS); - MESSAGE("Foe Wobbuffet is tormented!"); + MESSAGE("The opposing Wobbuffet is tormented!"); HP_BAR(opponent); }; } @@ -115,11 +115,11 @@ DOUBLE_BATTLE_TEST("Bad Dreams faints both sleeping Pokemon on opponent side") TURN {SEND_OUT(opponentLeft, 2); SEND_OUT(opponentRight, 3);} } SCENE { ABILITY_POPUP(playerLeft, ABILITY_BAD_DREAMS); - MESSAGE("Foe Wobbuffet is tormented!"); + MESSAGE("The opposing Wobbuffet is tormented!"); HP_BAR(opponentLeft); - MESSAGE("Foe Wobbuffet fainted!"); - MESSAGE("Foe Wobbuffet is tormented!"); + MESSAGE("The opposing Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet is tormented!"); HP_BAR(opponentRight); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } diff --git a/test/battle/ability/battle_bond.c b/test/battle/ability/battle_bond.c index 5f2b66593a..f61a6d171c 100644 --- a/test/battle/ability/battle_bond.c +++ b/test/battle/ability/battle_bond.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Battle Bond does not transform species other than Greninja") TURN { MOVE(player, MOVE_WATER_GUN); SEND_OUT(opponent, 1); } } SCENE { HP_BAR(opponent); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); NONE_OF { ABILITY_POPUP(player, ABILITY_BATTLE_BOND); MESSAGE("Wobbuffet became fully charged due to its bond with its trainer!"); @@ -54,7 +54,7 @@ SINGLE_BATTLE_TEST("Battle Bond transforms player's Greninja - Singles") } SCENE { HP_BAR(opponent); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); if (monsCountOpponent != 1) { ABILITY_POPUP(player, ABILITY_BATTLE_BOND); MESSAGE("Greninja became fully charged due to its bond with its trainer!"); @@ -104,12 +104,12 @@ SINGLE_BATTLE_TEST("Battle Bond transforms opponent's Greninja - Singles") MESSAGE("Wobbuffet fainted!"); if (monsCountPlayer != 1) { ABILITY_POPUP(opponent, ABILITY_BATTLE_BOND); - MESSAGE("Foe Greninja became fully charged due to its bond with its trainer!"); - MESSAGE("Foe Greninja became Ash-Greninja!"); + MESSAGE("The opposing Greninja became fully charged due to its bond with its trainer!"); + MESSAGE("The opposing Greninja became Ash-Greninja!"); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_BATTLE_BOND); - MESSAGE("Foe Greninja became fully charged due to its bond with its trainer!"); + MESSAGE("The opposing Greninja became fully charged due to its bond with its trainer!"); } } } FINALLY { diff --git a/test/battle/ability/beads_of_ruin.c b/test/battle/ability/beads_of_ruin.c index bb05031fe3..bbc71f6c2b 100644 --- a/test/battle/ability/beads_of_ruin.c +++ b/test/battle/ability/beads_of_ruin.c @@ -70,6 +70,6 @@ SINGLE_BATTLE_TEST("Beads of Ruin's message displays correctly after all battler SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Chi-Yu!"); ABILITY_POPUP(opponent, ABILITY_BEADS_OF_RUIN); - MESSAGE("Foe Chi-Yu's Beads of Ruin weakened the Sp. Def of all surrounding Pokémon!"); + MESSAGE("The opposing Chi-Yu's Beads of Ruin weakened the Sp. Def of all surrounding Pokémon!"); } } diff --git a/test/battle/ability/clear_body.c b/test/battle/ability/clear_body.c index dc82be67b4..1e955431a1 100644 --- a/test/battle/ability/clear_body.c +++ b/test/battle/ability/clear_body.c @@ -26,11 +26,11 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke prevent intimid } ABILITY_POPUP(opponent, ability); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); else - MESSAGE("Foe Metang's Clear Body prevents stat loss!"); + MESSAGE("The opposing Metang's Clear Body prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -76,11 +76,11 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke prevent stat st } ABILITY_POPUP(opponent, ability); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); else - MESSAGE("Foe Metang's Clear Body prevents stat loss!"); + MESSAGE("The opposing Metang's Clear Body prevents stat loss!"); } } @@ -104,11 +104,11 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke prevent Sticky } ABILITY_POPUP(opponent, ability); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); else - MESSAGE("Foe Metang's Clear Body prevents stat loss!"); + MESSAGE("The opposing Metang's Clear Body prevents stat loss!"); } } @@ -128,9 +128,9 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent s ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPERPOWER, opponent); NONE_OF { ABILITY_POPUP(opponent, ability); - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); - MESSAGE("Foe Metang's Clear Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Metang's Clear Body prevents stat loss!"); } } } @@ -181,15 +181,15 @@ SINGLE_BATTLE_TEST("Mold Breaker, Teravolt, and Turboblaze ignore Clear Body and if (ability == ABILITY_FULL_METAL_BODY){ // Full Metal Body can't be ignored by breaker abilities NOT ANIMATION(ANIM_TYPE_MOVE, move, player); ABILITY_POPUP(opponent, ability); - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); } else{ ANIMATION(ANIM_TYPE_MOVE, move, player); NONE_OF { ABILITY_POPUP(opponent, ability); - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); - MESSAGE("Foe Metang's Clear Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Metang's Clear Body prevents stat loss!"); } } } @@ -220,18 +220,18 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent S if (heldItem == ITEM_IRON_BALL) { MESSAGE("Wobbuffet used Celebrate!"); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); } else { if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); } } @@ -253,22 +253,22 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent S TURN { MOVE(player, MOVE_THUNDER_WAVE); } } SCENE { if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); MESSAGE("Wobbuffet used Thunder Wave!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDER_WAVE, player); NOT ABILITY_POPUP(opponent, ability); MESSAGE("Wobbuffet used Thunder Wave!"); ONE_OF { - MESSAGE("Foe Metang used Celebrate!"); - MESSAGE("Foe Metang is paralyzed! It can't move!"); - MESSAGE("Foe Solgaleo used Celebrate!"); - MESSAGE("Foe Solgaleo is paralyzed! It can't move!"); - MESSAGE("Foe Torkoal used Celebrate!"); - MESSAGE("Foe Torkoal is paralyzed! It can't move!"); + MESSAGE("The opposing Metang used Celebrate!"); + MESSAGE("The opposing Metang couldn't move because it's paralyzed!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo couldn't move because it's paralyzed!"); + MESSAGE("The opposing Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal couldn't move because it's paralyzed!"); } } } @@ -319,11 +319,11 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent r ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); ABILITY_POPUP(opponent, ability); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); } } @@ -351,16 +351,16 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent T NOT ABILITY_POPUP(opponent, ability); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); if (ability == ABILITY_FULL_METAL_BODY) { - MESSAGE("Foe Solgaleo used Celebrate!"); - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); } else if (ability == ABILITY_WHITE_SMOKE) { - MESSAGE("Foe Torkoal used Celebrate!"); - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); } else { - MESSAGE("Foe Metang used Celebrate!"); - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); } MESSAGE("Wobbuffet used Scary Face!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); @@ -387,28 +387,28 @@ SINGLE_BATTLE_TEST("Clear Body, Full Metal Body, and White Smoke don't prevent S TURN{ } } SCENE { if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Agility!"); + MESSAGE("The opposing Solgaleo used Agility!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Agility!"); + MESSAGE("The opposing Torkoal used Agility!"); else - MESSAGE("Foe Metang used Agility!"); + MESSAGE("The opposing Metang used Agility!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_AGILITY, opponent); MESSAGE("Wobbuffet used Celebrate!"); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); MESSAGE("Wobbuffet used Spectral Thief!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); NOT ABILITY_POPUP(opponent, ability); MESSAGE("Wobbuffet used Celebrate!"); if (ability == ABILITY_FULL_METAL_BODY) - MESSAGE("Foe Solgaleo used Celebrate!"); + MESSAGE("The opposing Solgaleo used Celebrate!"); else if (ability == ABILITY_WHITE_SMOKE) - MESSAGE("Foe Torkoal used Celebrate!"); + MESSAGE("The opposing Torkoal used Celebrate!"); else - MESSAGE("Foe Metang used Celebrate!"); + MESSAGE("The opposing Metang used Celebrate!"); } } diff --git a/test/battle/ability/cloud_nine.c b/test/battle/ability/cloud_nine.c index 887769a5ec..fb87b7f2ba 100644 --- a/test/battle/ability/cloud_nine.c +++ b/test/battle/ability/cloud_nine.c @@ -15,16 +15,16 @@ SINGLE_BATTLE_TEST("Cloud Nine/Air Lock prevent basic weather effects, but witho TURN {} } SCENE { ABILITY_POPUP(player, ability); - MESSAGE("The effects of weather disappeared."); - MESSAGE("Foe Wobbuffet used Sandstorm!"); - MESSAGE("The sandstorm rages."); + MESSAGE("The effects of the weather disappeared."); + MESSAGE("The opposing Wobbuffet used Sandstorm!"); + MESSAGE("The sandstorm is raging."); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SANDSTORM_CONTINUES); NONE_OF { HP_BAR(player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet is buffeted by the sandstorm!"); + MESSAGE("The opposing Wobbuffet is buffeted by the sandstorm!"); } - MESSAGE("The sandstorm rages."); + MESSAGE("The sandstorm is raging."); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SANDSTORM_CONTINUES); } } diff --git a/test/battle/ability/color_change.c b/test/battle/ability/color_change.c index 86c009e8ac..d3a6489f00 100644 --- a/test/battle/ability/color_change.c +++ b/test/battle/ability/color_change.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Color Change changes the type of a Pokemon being hit by a mo } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Wobbuffet's Color Change made it the Normal type!"); + MESSAGE("The opposing Wobbuffet's Color Change made it the Normal type!"); } } @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Color Change does not change the type when hit by a move tha ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_CUT, player); NONE_OF { ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Wobbuffet's Color Change made it the Normal type!"); + MESSAGE("The opposing Wobbuffet's Color Change made it the Normal type!"); } } } @@ -42,7 +42,7 @@ SINGLE_BATTLE_TEST("Color Change does not change the type of a dual-type Pokemon ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_CUT, player); NONE_OF { ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Xatu's Color Change made it the Psychic type!"); + MESSAGE("The opposing Xatu's Color Change made it the Psychic type!"); } } } @@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Color Change does not change the type of a dual-type Pokemon ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_CUT, player); NONE_OF { ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Slowbro's Color Change made it the Psychic type!"); + MESSAGE("The opposing Slowbro's Color Change made it the Psychic type!"); } } } @@ -73,7 +73,7 @@ SINGLE_BATTLE_TEST("Color Change changes the user to Electric type if hit by a m } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_CUT, player); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Wobbuffet's Color Change made it the Electric type!"); + MESSAGE("The opposing Wobbuffet's Color Change made it the Electric type!"); } } @@ -88,9 +88,9 @@ SINGLE_BATTLE_TEST("Color Change changes the type when a Pokemon is hit by Futur TURN { } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Snorlax took the Future Sight attack!"); + MESSAGE("The opposing Snorlax took the Future Sight attack!"); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Snorlax's Color Change made it the Psychic type!"); + MESSAGE("The opposing Snorlax's Color Change made it the Psychic type!"); } } @@ -105,9 +105,9 @@ SINGLE_BATTLE_TEST("Color Change changes the type when a Pokemon is hit by Doom TURN { } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOOM_DESIRE, player); - MESSAGE("Foe Wobbuffet took the Doom Desire attack!"); + MESSAGE("The opposing Wobbuffet took the Doom Desire attack!"); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Wobbuffet's Color Change made it the Steel type!"); + MESSAGE("The opposing Wobbuffet's Color Change made it the Steel type!"); } } @@ -123,10 +123,10 @@ SINGLE_BATTLE_TEST("Color Change changes the type to Electric when a Pokemon is TURN { MOVE(opponent, MOVE_ELECTRIFY); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Blastoise took the Future Sight attack!"); + MESSAGE("The opposing Blastoise took the Future Sight attack!"); MESSAGE("It's super effective!"); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Blastoise's Color Change made it the Electr type!"); + MESSAGE("The opposing Blastoise's Color Change made it the Electr type!"); } } @@ -141,8 +141,8 @@ SINGLE_BATTLE_TEST("Color Change changes the type to Normal when a Pokemon is hi TURN { } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Blastoise took the Future Sight attack!"); + MESSAGE("The opposing Blastoise took the Future Sight attack!"); ABILITY_POPUP(opponent, ABILITY_COLOR_CHANGE); - MESSAGE("Foe Blastoise's Color Change made it the Normal type!"); + MESSAGE("The opposing Blastoise's Color Change made it the Normal type!"); } } diff --git a/test/battle/ability/comatose.c b/test/battle/ability/comatose.c index cc65e9afac..b23a6ca85f 100644 --- a/test/battle/ability/comatose.c +++ b/test/battle/ability/comatose.c @@ -45,8 +45,8 @@ SINGLE_BATTLE_TEST("Comatose may be suppressed if pokemon transformed into a pok } SCENE { MESSAGE("Komala is drowsing!"); MESSAGE("Komala used Gastro Acid!"); - MESSAGE("Foe Ditto used Transform!"); - MESSAGE("Foe Ditto transformed into Komala!"); + MESSAGE("The opposing Ditto used Transform!"); + MESSAGE("The opposing Ditto transformed into Komala!"); ANIMATION(ANIM_TYPE_MOVE, move, player); if (move == MOVE_POISONPOWDER) { STATUS_ICON(opponent, poison: TRUE); } diff --git a/test/battle/ability/commander.c b/test/battle/ability/commander.c index e6a85b0681..26f5574ba8 100644 --- a/test/battle/ability/commander.c +++ b/test/battle/ability/commander.c @@ -51,7 +51,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri avoids moves targetted towards it") ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); - MESSAGE("Foe Wobbuffet's attack missed!"); + MESSAGE("The opposing Wobbuffet's attack missed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_POUND, opponentRight); } } @@ -71,7 +71,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri will still take residual damage from a f ABILITY_POPUP(opponentLeft, ABILITY_SAND_STREAM); MESSAGE("Dondozo is buffeted by the sandstorm!"); MESSAGE("Tatsugiri is buffeted by the sandstorm!"); - MESSAGE("Foe Wobbuffet is buffeted by the sandstorm!"); + MESSAGE("The opposing Wobbuffet is buffeted by the sandstorm!"); } } @@ -87,7 +87,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri will still take poison damage if while i } SCENE { ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); - MESSAGE("Tatsugiri is hurt by poison!"); + MESSAGE("Tatsugiri was hurt by its poisoning!"); } } @@ -104,7 +104,7 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri still avoids moves even when the attacke ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); - MESSAGE("Foe Machamp's attack missed!"); + MESSAGE("The opposing Machamp's attack missed!"); } } @@ -122,7 +122,7 @@ DOUBLE_BATTLE_TEST("Commander cannot affect a Dondozo that was previously affect } SCENE { ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); - MESSAGE("Tatsugiri is hurt by poison!"); + MESSAGE("Tatsugiri was hurt by its poisoning!"); NONE_OF { ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); @@ -144,9 +144,9 @@ DOUBLE_BATTLE_TEST("Commander prevents Whirlwind from working against Dondozo or } SCENE { ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); - MESSAGE("Foe Wobbuffet used Whirlwind!"); + MESSAGE("The opposing Wobbuffet used Whirlwind!"); MESSAGE("But it failed!"); - MESSAGE("Foe Wobbuffet used Whirlwind!"); + MESSAGE("The opposing Wobbuffet used Whirlwind!"); MESSAGE("But it failed!"); } } @@ -187,9 +187,9 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri is not damaged by a double target move i ABILITY_POPUP(playerRight, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); HP_BAR(playerLeft); - MESSAGE("Dondozo fainted!"); - NOT HP_BAR(playerRight); HP_BAR(opponentRight); + NOT HP_BAR(playerRight); + MESSAGE("Dondozo fainted!"); } } @@ -250,7 +250,7 @@ DOUBLE_BATTLE_TEST("Commander doesn't prevent Imposter from working on a Command ABILITY_POPUP(playerRight, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); ABILITY_POPUP(opponentRight, ABILITY_IMPOSTER); - MESSAGE("Foe Ditto transformed into Tatsugiri using Imposter!"); + MESSAGE("The opposing Ditto transformed into Tatsugiri using Imposter!"); } } @@ -270,17 +270,17 @@ DOUBLE_BATTLE_TEST("Commander Tatsugiri is still affected by Perish Song while c ABILITY_POPUP(playerRight, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PERISH_SONG, opponentLeft); - MESSAGE("All affected POKéMON will faint in three turns!"); - MESSAGE("Dondozo's PERISH count fell to 0!"); + MESSAGE("All Pokémon that heard the song will faint in three turns!"); + MESSAGE("Dondozo's perish count fell to 0!"); MESSAGE("Dondozo fainted!"); - MESSAGE("Foe Wobbuffet's PERISH count fell to 0!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet's perish count fell to 0!"); + MESSAGE("The opposing Wobbuffet fainted!"); NONE_OF { - MESSAGE("Tatsugiri's PERISH count fell to 0!"); + MESSAGE("Tatsugiri's perish count fell to 0!"); MESSAGE("Tatsugiri fainted!"); } - MESSAGE("Foe Wynaut's PERISH count fell to 0!"); - MESSAGE("Foe Wynaut fainted!"); + MESSAGE("The opposing Wynaut's perish count fell to 0!"); + MESSAGE("The opposing Wynaut fainted!"); } } @@ -323,8 +323,8 @@ DOUBLE_BATTLE_TEST("Commander Attacker is kept (Dondozo Left Slot)") MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft); HP_BAR(playerLeft); - MESSAGE("Foe Wobbuffet's attack missed!"); HP_BAR(opponentRight); + MESSAGE("The opposing Wobbuffet's attack missed!"); } } @@ -344,7 +344,7 @@ DOUBLE_BATTLE_TEST("Commander Attacker is kept (Dondozo Right Slot)") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); - MESSAGE("Foe Wobbuffet's attack missed!"); + MESSAGE("The opposing Wobbuffet's attack missed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft); HP_BAR(playerRight); HP_BAR(opponentRight); diff --git a/test/battle/ability/contrary.c b/test/battle/ability/contrary.c index d257a7a344..56eb6abf65 100644 --- a/test/battle/ability/contrary.c +++ b/test/battle/ability/contrary.c @@ -21,7 +21,7 @@ SINGLE_BATTLE_TEST("Contrary raises Attack when Intimidated in a single battle", if (ability == ABILITY_CONTRARY) { ABILITY_POPUP(opponent, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } HP_BAR(player, captureDamage: &results[i].damage); } @@ -51,18 +51,18 @@ DOUBLE_BATTLE_TEST("Contrary raises Attack when Intimidated in a double battle", if (abilityLeft == ABILITY_CONTRARY) { ABILITY_POPUP(opponentLeft, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); + MESSAGE("Mightyena's Intimidate cuts the opposing Spinda's Attack!"); } if (abilityRight == ABILITY_CONTRARY) { ABILITY_POPUP(opponentRight, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); + MESSAGE("Mightyena's Intimidate cuts the opposing Spinda's Attack!"); } HP_BAR(playerLeft, captureDamage: &results[i].damageLeft); HP_BAR(playerRight, captureDamage: &results[i].damageRight); @@ -90,28 +90,28 @@ SINGLE_BATTLE_TEST("Contrary raises stats after using a move which would normall TURN { MOVE(opponent, MOVE_OVERHEAT); } TURN { MOVE(opponent, MOVE_OVERHEAT); } } SCENE { - MESSAGE("Foe Spinda used Overheat!"); + MESSAGE("The opposing Spinda used Overheat!"); HP_BAR(player, captureDamage: &results[i].damageBefore); if (ability == ABILITY_CONTRARY) { // ABILITY_POPUP(opponent, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Sp. Atk sharply rose!"); + MESSAGE("The opposing Spinda's Sp. Atk sharply rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Sp. Atk harshly fell!"); + MESSAGE("The opposing Spinda's Sp. Atk harshly fell!"); } - // MESSAGE("Foe Spinda used Overheat!"); + // MESSAGE("The opposing Spinda used Overheat!"); HP_BAR(player, captureDamage: &results[i].damageAfter); if (ability == ABILITY_CONTRARY) { // ABILITY_POPUP(opponent, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Sp. Atk sharply rose!"); + MESSAGE("The opposing Spinda's Sp. Atk sharply rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Sp. Atk harshly fell!"); + MESSAGE("The opposing Spinda's Sp. Atk harshly fell!"); } } FINALLY { @@ -134,21 +134,21 @@ SINGLE_BATTLE_TEST("Contrary lowers a stat after using a move which would normal TURN { MOVE(opponent, MOVE_SWORDS_DANCE); } TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Spinda used Tackle!"); + MESSAGE("The opposing Spinda used Tackle!"); HP_BAR(player, captureDamage: &results[i].damageBefore); - //MESSAGE("Foe Spinda used Swords Dance!"); + //MESSAGE("The opposing Spinda used Swords Dance!"); if (ability == ABILITY_CONTRARY) { // ABILITY_POPUP(opponent, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Attack harshly fell!"); + MESSAGE("The opposing Spinda's Attack harshly fell!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Attack sharply rose!"); + MESSAGE("The opposing Spinda's Attack sharply rose!"); } - // MESSAGE("Foe Spinda used Tackle!"); + // MESSAGE("The opposing Spinda used Tackle!"); HP_BAR(player, captureDamage: &results[i].damageAfter); } FINALLY { @@ -173,14 +173,14 @@ SINGLE_BATTLE_TEST("Contrary raises a stat after using a move which would normal if (ability == ABILITY_CONTRARY) { // ABILITY_POPUP(opponent, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda's Attack fell!"); + MESSAGE("The opposing Spinda's Attack fell!"); } - MESSAGE("Foe Spinda used Tackle!"); + MESSAGE("The opposing Spinda used Tackle!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { @@ -202,16 +202,16 @@ SINGLE_BATTLE_TEST("Contrary lowers a stat after using a move which would normal TURN { MOVE(opponent, MOVE_BELLY_DRUM); } TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Spinda used Tackle!"); + MESSAGE("The opposing Spinda used Tackle!"); HP_BAR(player, captureDamage: &results[i].damageBefore); if (ability == ABILITY_CONTRARY) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda cut its own HP and maximized ATTACK!"); //Message stays the same + MESSAGE("The opposing Spinda cut its own HP and maximized its Attack!"); //Message stays the same } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Spinda cut its own HP and maximized ATTACK!"); + MESSAGE("The opposing Spinda cut its own HP and maximized its Attack!"); } HP_BAR(player, captureDamage: &results[i].damageAfter); @@ -221,3 +221,23 @@ SINGLE_BATTLE_TEST("Contrary lowers a stat after using a move which would normal EXPECT_MUL_EQ(results[1].damageBefore, UQ_4_12(4.0), results[1].damageAfter); } } + +SINGLE_BATTLE_TEST("Sticky Web raises Speed by 1 for Contrary mon on switch-in") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_SNIVY) { Ability(ABILITY_CONTRARY); } + } WHEN { + TURN { MOVE(player, MOVE_STICKY_WEB); } + TURN { SWITCH(opponent, 1); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); + MESSAGE("2 sent out Snivy!"); + MESSAGE("The opposing Snivy was caught in a sticky web!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + MESSAGE("The opposing Snivy's Speed rose!"); + } +} diff --git a/test/battle/ability/costar.c b/test/battle/ability/costar.c index 7674ab0966..7107b00d61 100644 --- a/test/battle/ability/costar.c +++ b/test/battle/ability/costar.c @@ -1,7 +1,29 @@ #include "global.h" #include "test/battle.h" -TO_DO_BATTLE_TEST("Costar copies an ally's stat stages upon entering battle"); +DOUBLE_BATTLE_TEST("Costar copies an ally's stat stages upon entering battle") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_FLAMIGO) { Ability(ABILITY_COSTAR); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_SWORDS_DANCE); } + TURN { SWITCH(opponentRight, 2); MOVE(playerLeft, MOVE_CELEBRATE); } + } SCENE { + // Turn 1 - buff up + MESSAGE("The opposing Wobbuffet used Swords Dance!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + // Turn 2 - Switch into Flamigo + MESSAGE("2 sent out Flamigo!"); + ABILITY_POPUP(opponentRight, ABILITY_COSTAR); + MESSAGE("The opposing Flamigo copied the opposing Wobbuffet's stat changes!"); + } THEN { + EXPECT_EQ(opponentRight->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 2); + } +} // Copy from Ruin ability tests TO_DO_BATTLE_TEST("Costar's message displays correctly after all battlers fainted - Player"); diff --git a/test/battle/ability/cotton_down.c b/test/battle/ability/cotton_down.c index 8e15283926..4d0dab9dcc 100644 --- a/test/battle/ability/cotton_down.c +++ b/test/battle/ability/cotton_down.c @@ -55,7 +55,7 @@ DOUBLE_BATTLE_TEST("Cotton Down drops speed by one of all other battlers on the ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); MESSAGE("Wynaut's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } THEN { EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); EXPECT_EQ(playerRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); diff --git a/test/battle/ability/curious_medicine.c b/test/battle/ability/curious_medicine.c new file mode 100644 index 0000000000..3844170eb0 --- /dev/null +++ b/test/battle/ability/curious_medicine.c @@ -0,0 +1,40 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Curious Medicine resets ally's stat stages upon entering battle") +{ + u32 ability; + + PARAMETRIZE { ability = ABILITY_CURIOUS_MEDICINE; } + PARAMETRIZE { ability = ABILITY_OWN_TEMPO; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_SCOLIPEDE); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_SLOWKING_GALAR) { Ability(ability); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_QUIVER_DANCE); MOVE(playerLeft, MOVE_CHARM, target: opponentLeft); } + TURN { SWITCH(opponentRight, 2); MOVE(playerLeft, MOVE_CELEBRATE); } + } SCENE { + // Turn 1 - buff up + MESSAGE("The opposing Scolipede used Quiver Dance!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + // Turn 2 - Switch into Slowking + MESSAGE("2 sent out Slowking!"); + if (ability == ABILITY_CURIOUS_MEDICINE) + { + ABILITY_POPUP(opponentRight, ABILITY_CURIOUS_MEDICINE); + MESSAGE("The opposing Scolipede's stat changes were removed!"); + } + } THEN { + EXPECT_EQ(opponentLeft->statStages[STAT_ATK], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE - 2); + EXPECT_EQ(opponentLeft->statStages[STAT_DEF], DEFAULT_STAT_STAGE); + EXPECT_EQ(opponentLeft->statStages[STAT_SPEED], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(opponentLeft->statStages[STAT_SPATK], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(opponentLeft->statStages[STAT_SPDEF], (ability == ABILITY_CURIOUS_MEDICINE) ? DEFAULT_STAT_STAGE : DEFAULT_STAT_STAGE + 1); + EXPECT_EQ(opponentLeft->statStages[STAT_ACC], DEFAULT_STAT_STAGE); + EXPECT_EQ(opponentLeft->statStages[STAT_EVASION], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/ability/cursed_body.c b/test/battle/ability/cursed_body.c index 20fe659d21..26d97a9f11 100644 --- a/test/battle/ability/cursed_body.c +++ b/test/battle/ability/cursed_body.c @@ -12,6 +12,6 @@ SINGLE_BATTLE_TEST("Cursed Body triggers 30% of the time") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_AQUA_JET, player); ABILITY_POPUP(opponent, ABILITY_CURSED_BODY); - MESSAGE("Wobbuffet's Aqua Jet was disabled by Foe Frillish's Cursed Body!"); + MESSAGE("Wobbuffet's Aqua Jet was disabled by the opposing Frillish's Cursed Body!"); } } diff --git a/test/battle/ability/cute_charm.c b/test/battle/ability/cute_charm.c index 06eb4cf842..e6eee0ae08 100644 --- a/test/battle/ability/cute_charm.c +++ b/test/battle/ability/cute_charm.c @@ -18,14 +18,14 @@ SINGLE_BATTLE_TEST("Cute Charm inflicts infatuation on contact") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(opponent, ABILITY_CUTE_CHARM); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, player); - MESSAGE("Foe Clefairy's Cute Charm infatuated Wobbuffet!"); - MESSAGE("Wobbuffet is in love with Foe Clefairy!"); + MESSAGE("The opposing Clefairy's Cute Charm infatuated Wobbuffet!"); + MESSAGE("Wobbuffet is in love with the opposing Clefairy!"); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_CUTE_CHARM); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, player); - MESSAGE("Foe Clefairy's Cute Charm infatuated Wobbuffet!"); - MESSAGE("Wobbuffet is in love with Foe Clefairy!"); + MESSAGE("The opposing Clefairy's Cute Charm infatuated Wobbuffet!"); + MESSAGE("Wobbuffet is in love with the opposing Clefairy!"); } } } @@ -60,7 +60,7 @@ SINGLE_BATTLE_TEST("Cute Charm triggers 30% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_CUTE_CHARM); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, player); - MESSAGE("Foe Clefairy's Cute Charm infatuated Wobbuffet!"); - MESSAGE("Wobbuffet is in love with Foe Clefairy!"); + MESSAGE("The opposing Clefairy's Cute Charm infatuated Wobbuffet!"); + MESSAGE("Wobbuffet is in love with the opposing Clefairy!"); } } diff --git a/test/battle/ability/dancer.c b/test/battle/ability/dancer.c index 2132530958..5519ac3222 100644 --- a/test/battle/ability/dancer.c +++ b/test/battle/ability/dancer.c @@ -90,7 +90,7 @@ SINGLE_BATTLE_TEST("Dancer doesn't trigger if the original user flinches") TURN { MOVE(opponent, MOVE_FAKE_OUT); MOVE(player, MOVE_DRAGON_DANCE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, opponent); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_DANCER); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DANCE, opponent); @@ -114,14 +114,14 @@ DOUBLE_BATTLE_TEST("Dancer still triggers if another dancer flinches") ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DANCE, playerRight); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); ABILITY_POPUP(playerLeft, ABILITY_DANCER); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); NONE_OF { MESSAGE("Wobbuffet used Dragon Dance!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DANCE, playerLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); } ABILITY_POPUP(opponentLeft, ABILITY_DANCER); - MESSAGE("Foe Oricorio used Dragon Dance!"); + MESSAGE("The opposing Oricorio used Dragon Dance!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DANCE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); } diff --git a/test/battle/ability/dauntless_shield.c b/test/battle/ability/dauntless_shield.c index ff7cc723ac..ada4ace786 100644 --- a/test/battle/ability/dauntless_shield.c +++ b/test/battle/ability/dauntless_shield.c @@ -3,7 +3,7 @@ ASSUMPTIONS { - ASSUME(B_PROTEAN_LIBERO == GEN_9); + ASSUME(B_DAUNTLESS_SHIELD == GEN_9); } SINGLE_BATTLE_TEST("Dauntless Shield raises Defense by one stage") @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Dauntless Shield raises Defense by one stage") } SCENE { ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + MESSAGE("The opposing Zamazenta's Dauntless Shield raised its Defense!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 1); } @@ -34,11 +34,11 @@ SINGLE_BATTLE_TEST("Dauntless Shield raises Defense by one stage only once per b } SCENE { ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + MESSAGE("The opposing Zamazenta's Dauntless Shield raised its Defense!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + MESSAGE("The opposing Zamazenta's Dauntless Shield raised its Defense!"); } } THEN { EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE); @@ -55,12 +55,12 @@ SINGLE_BATTLE_TEST("Dauntless Shield activates when it's no longer effected by N TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); SWITCH_OUT_MESSAGE("Weezing"); - MESSAGE("The effects of Neutralizing Gas wore off!"); + MESSAGE("The effects of the neutralizing gas wore off!"); ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + MESSAGE("The opposing Zamazenta's Dauntless Shield raised its Defense!"); } } diff --git a/test/battle/ability/defiant.c b/test/battle/ability/defiant.c index 79136a559d..9b767b8323 100644 --- a/test/battle/ability/defiant.c +++ b/test/battle/ability/defiant.c @@ -21,14 +21,14 @@ DOUBLE_BATTLE_TEST("Defiant sharply raises player's Attack after Intimidate") //1st mon Intimidate ABILITY_POPUP(opponentLeft, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); - MESSAGE("Foe Gyarados's Intimidate cuts Mankey's attack!"); + MESSAGE("The opposing Gyarados's Intimidate cuts Mankey's Attack!"); if (abilityLeft == ABILITY_DEFIANT) { ABILITY_POPUP(playerLeft, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Mankey's Attack sharply rose!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Foe Gyarados's Intimidate cuts Primeape's attack!"); + MESSAGE("The opposing Gyarados's Intimidate cuts Primeape's Attack!"); if (abilityRight == ABILITY_DEFIANT) { ABILITY_POPUP(playerRight, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); @@ -38,14 +38,14 @@ DOUBLE_BATTLE_TEST("Defiant sharply raises player's Attack after Intimidate") //2nd mon Intimidate ABILITY_POPUP(opponentRight, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); - MESSAGE("Foe Arbok's Intimidate cuts Mankey's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Mankey's Attack!"); if (abilityLeft == ABILITY_DEFIANT) { ABILITY_POPUP(playerLeft, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Mankey's Attack sharply rose!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Foe Arbok's Intimidate cuts Primeape's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Primeape's Attack!"); if (abilityRight == ABILITY_DEFIANT) { ABILITY_POPUP(playerRight, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); @@ -79,35 +79,35 @@ DOUBLE_BATTLE_TEST("Defiant sharply raises opponent's Attack after Intimidate") //1st mon Intimidate ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Gyarados's Intimidate cuts Foe Mankey's attack!"); + MESSAGE("Gyarados's Intimidate cuts the opposing Mankey's Attack!"); if (abilityLeft == ABILITY_DEFIANT) { ABILITY_POPUP(opponentLeft, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Mankey's Attack sharply rose!"); + MESSAGE("The opposing Mankey's Attack sharply rose!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Gyarados's Intimidate cuts Foe Primeape's attack!"); + MESSAGE("Gyarados's Intimidate cuts the opposing Primeape's Attack!"); if (abilityRight == ABILITY_DEFIANT) { ABILITY_POPUP(opponentRight, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Primeape's Attack sharply rose!"); + MESSAGE("The opposing Primeape's Attack sharply rose!"); } //2nd mon Intimidate ABILITY_POPUP(playerRight, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Arbok's Intimidate cuts Foe Mankey's attack!"); + MESSAGE("Arbok's Intimidate cuts the opposing Mankey's Attack!"); if (abilityLeft == ABILITY_DEFIANT) { ABILITY_POPUP(opponentLeft, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Mankey's Attack sharply rose!"); + MESSAGE("The opposing Mankey's Attack sharply rose!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Arbok's Intimidate cuts Foe Primeape's attack!"); + MESSAGE("Arbok's Intimidate cuts the opposing Primeape's Attack!"); if (abilityRight == ABILITY_DEFIANT) { ABILITY_POPUP(opponentRight, ABILITY_DEFIANT); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Primeape's Attack sharply rose!"); + MESSAGE("The opposing Primeape's Attack sharply rose!"); } } FINALLY { // -2 from Intimidates and +4 from Defiants gets +2 total @@ -129,7 +129,7 @@ SINGLE_BATTLE_TEST("Defiant activates after Sticky Web lowers Speed") ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponent); // Switch-in - Sticky Web activates SEND_IN_MESSAGE("Mankey"); - MESSAGE("Mankey was caught in a Sticky Web!"); + MESSAGE("Mankey was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Mankey's Speed fell!"); // Defiant activates @@ -153,7 +153,7 @@ SINGLE_BATTLE_TEST("Defiant doesn't activate after Sticky Web lowers Speed if Co ANIMATION(ANIM_TYPE_MOVE, MOVE_COURT_CHANGE, opponent); // Switch-in - Sticky Web activates SEND_IN_MESSAGE("Mankey"); - MESSAGE("Mankey was caught in a Sticky Web!"); + MESSAGE("Mankey was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Mankey's Speed fell!"); // Defiant doesn't activate @@ -180,7 +180,7 @@ SINGLE_BATTLE_TEST("Defiant correctly activates after Sticky Web lowers Speed if ANIMATION(ANIM_TYPE_MOVE, MOVE_COURT_CHANGE, opponent); // Switch-in - Sticky Web activates SEND_IN_MESSAGE("Mankey"); - MESSAGE("Mankey was caught in a Sticky Web!"); + MESSAGE("Mankey was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Mankey's Speed fell!"); // Defiant doesn't activate @@ -225,7 +225,7 @@ DOUBLE_BATTLE_TEST("Defiant is activated by Cotton Down for non-ally pokemon") MESSAGE("Mankey's Attack sharply rose!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Mankey's Speed fell!"); + MESSAGE("The opposing Mankey's Speed fell!"); } THEN { EXPECT_EQ(playerLeft->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); EXPECT_EQ(playerRight->statStages[STAT_SPEED], DEFAULT_STAT_STAGE - 1); @@ -257,11 +257,11 @@ SINGLE_BATTLE_TEST("Defiant activates before White Herb") if (move == MOVE_LEER) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Mankey's White Herb restored its status!"); + MESSAGE("Mankey returned its stats to normal using its White Herb!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Mankey's White Herb restored its status!"); + MESSAGE("Mankey returned its stats to normal using its White Herb!"); } } } THEN { diff --git a/test/battle/ability/desolate_land.c b/test/battle/ability/desolate_land.c index a8c9f7749c..06d604e8fc 100644 --- a/test/battle/ability/desolate_land.c +++ b/test/battle/ability/desolate_land.c @@ -16,13 +16,13 @@ SINGLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves") TURN { MOVE(opponent, MOVE_WATER_GUN); } TURN { MOVE(opponent, MOVE_WATER_GUN); } } SCENE { - MESSAGE("Foe Wobbuffet used Water Gun!"); + MESSAGE("The opposing Wobbuffet used Water Gun!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); - MESSAGE("The Water-type attack evaporated in the harsh sunlight!"); + MESSAGE("The Water-type attack evaporated in the extremely harsh sunlight!"); NOT HP_BAR(player); - MESSAGE("Foe Wobbuffet used Water Gun!"); + MESSAGE("The opposing Wobbuffet used Water Gun!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); - MESSAGE("The Water-type attack evaporated in the harsh sunlight!"); + MESSAGE("The Water-type attack evaporated in the extremely harsh sunlight!"); NOT HP_BAR(player); } THEN { EXPECT_EQ(player->hp, player->maxHP); @@ -42,10 +42,10 @@ DOUBLE_BATTLE_TEST("Desolate Land blocks damaging Water-type moves and prints th } WHEN { TURN { MOVE(opponentLeft, MOVE_SURF); } } SCENE { - MESSAGE("Foe Wobbuffet used Surf!"); + MESSAGE("The opposing Wobbuffet used Surf!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, opponentLeft); - MESSAGE("The Water-type attack evaporated in the harsh sunlight!"); - NOT MESSAGE("The Water-type attack evaporated in the harsh sunlight!"); + MESSAGE("The Water-type attack evaporated in the extremely harsh sunlight!"); + NOT MESSAGE("The Water-type attack evaporated in the extremely harsh sunlight!"); } THEN { EXPECT_EQ(playerLeft->hp, playerLeft->maxHP); EXPECT_EQ(playerRight->hp, playerRight->maxHP); @@ -61,7 +61,7 @@ SINGLE_BATTLE_TEST("Desolate Land does not block a move if pokemon is asleep and } WHEN { TURN { MOVE(opponent, MOVE_WATER_GUN); } } SCENE { - NOT MESSAGE("The Water-type attack evaporated in the harsh sunlight!"); - MESSAGE("Foe Wobbuffet is fast asleep."); + NOT MESSAGE("The Water-type attack evaporated in the extremely harsh sunlight!"); + MESSAGE("The opposing Wobbuffet is fast asleep."); } } diff --git a/test/battle/ability/disguise.c b/test/battle/ability/disguise.c index 5ab2035325..3a8df70be5 100644 --- a/test/battle/ability/disguise.c +++ b/test/battle/ability/disguise.c @@ -98,7 +98,7 @@ SINGLE_BATTLE_TEST("Disguised Mimikyu takes damage from Rocky Helmet without bre HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); HP_BAR(player); - MESSAGE("Mimikyu was hurt by Foe Wobbuffet's Rocky Helmet!"); + MESSAGE("Mimikyu was hurt by the opposing Wobbuffet's Rocky Helmet!"); } THEN { EXPECT_EQ(player->species, SPECIES_MIMIKYU_DISGUISED); } @@ -116,7 +116,7 @@ SINGLE_BATTLE_TEST("Disguised Mimikyu takes damage from Rough Skin without break HP_BAR(opponent); ABILITY_POPUP(opponent, ABILITY_ROUGH_SKIN); HP_BAR(player); - MESSAGE("Mimikyu was hurt by Foe Carvanha's Rough Skin!"); + MESSAGE("Mimikyu was hurt by the opposing Carvanha's Rough Skin!"); } THEN { EXPECT_EQ(player->species, SPECIES_MIMIKYU_DISGUISED); } @@ -146,11 +146,11 @@ SINGLE_BATTLE_TEST("Disguised Mimikyu's types revert back to Ghost/Fairy when Di TURN { MOVE(opponent, MOVE_TACKLE); } TURN { MOVE(opponent, MOVE_SHADOW_CLAW); } } SCENE { - MESSAGE("Foe Wobbuffet used Soak!"); + MESSAGE("The opposing Wobbuffet used Soak!"); MESSAGE("Mimikyu transformed into the Water type!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ABILITY_POPUP(player, ABILITY_DISGUISE); - MESSAGE("Foe Wobbuffet used Shadow Claw!"); + MESSAGE("The opposing Wobbuffet used Shadow Claw!"); MESSAGE("It's super effective!"); } } @@ -167,7 +167,7 @@ SINGLE_BATTLE_TEST("Disguised Mimikyu blocks a move after getting Gastro Acid Ba TURN { MOVE(opponent, MOVE_SHADOW_CLAW); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_GASTRO_ACID, opponent); - MESSAGE("Wobbuffet's ability was suppressed!"); + MESSAGE("Wobbuffet's Ability was suppressed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SHADOW_CLAW, opponent); ABILITY_POPUP(player, ABILITY_DISGUISE); diff --git a/test/battle/ability/download.c b/test/battle/ability/download.c index 9fecda400d..480f0bf10e 100644 --- a/test/battle/ability/download.c +++ b/test/battle/ability/download.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Download raises Attack if player has lower Def than Sp. Def" { ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Porygon's Download raised its Attack!"); + MESSAGE("The opposing Porygon's Download raised its Attack!"); } HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { @@ -85,7 +85,7 @@ SINGLE_BATTLE_TEST("Download doesn't activate if target hasn't been sent out yet { ABILITY_POPUP(opponent, ABILITY_DOWNLOAD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Porygon2's Download raised its Sp. Atk!"); + MESSAGE("The opposing Porygon2's Download raised its Sp. Atk!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TRI_ATTACK, opponent); @@ -94,3 +94,28 @@ SINGLE_BATTLE_TEST("Download doesn't activate if target hasn't been sent out yet EXPECT_MUL_EQ(results[0].damageSpecial, Q_4_12(1.5), results[1].damageSpecial); } } + +DOUBLE_BATTLE_TEST("Download raises Sp.Attack if enemies have lower total Sp. Def than Def", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_TRACE; } + PARAMETRIZE { ability = ABILITY_DOWNLOAD; } + GIVEN { + PLAYER(SPECIES_PORYGON) { Ability(ability); SpAttack(100); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET) { Defense(200); SpDefense(100); } + OPPONENT(SPECIES_WOBBUFFET) { Defense(100); SpDefense(150); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TRI_ATTACK, target: opponentLeft ); } + } SCENE { + if (ability == ABILITY_DOWNLOAD) + { + ABILITY_POPUP(playerLeft, ABILITY_DOWNLOAD); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Porygon's Download raised its Sp. Atk!"); + } + HP_BAR(opponentLeft, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); + } +} diff --git a/test/battle/ability/effect_spore.c b/test/battle/ability/effect_spore.c index 107cd08675..49750c4797 100644 --- a/test/battle/ability/effect_spore.c +++ b/test/battle/ability/effect_spore.c @@ -19,13 +19,13 @@ SINGLE_BATTLE_TEST("Effect Spore only inflicts status on contact") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Breloom's Effect Spore!"); + MESSAGE("Wobbuffet was poisoned by the opposing Breloom's Effect Spore!"); STATUS_ICON(player, poison: TRUE); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Breloom's Effect Spore!"); + MESSAGE("Wobbuffet was poisoned by the opposing Breloom's Effect Spore!"); STATUS_ICON(player, poison: TRUE); } } @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Effect Spore causes poison 9% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Breloom's Effect Spore!"); + MESSAGE("Wobbuffet was poisoned by the opposing Breloom's Effect Spore!"); STATUS_ICON(player, poison: TRUE); } } @@ -65,7 +65,7 @@ SINGLE_BATTLE_TEST("Effect Spore causes paralysis 10% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player); - MESSAGE("Foe Breloom's Effect Spore paralyzed Wobbuffet! It may be unable to move!"); + MESSAGE("The opposing Breloom's Effect Spore paralyzed Wobbuffet, so it may be unable to move!"); STATUS_ICON(player, paralysis: TRUE); } } @@ -84,7 +84,7 @@ SINGLE_BATTLE_TEST("Effect Spore causes sleep 11% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); - MESSAGE("Foe Breloom's Effect Spore made Wobbuffet sleep!"); + MESSAGE("The opposing Breloom's Effect Spore made Wobbuffet sleep!"); STATUS_ICON(player, sleep: TRUE); } } diff --git a/test/battle/ability/embody_aspect.c b/test/battle/ability/embody_aspect.c index c5c8f5d610..fffc8cf423 100644 --- a/test/battle/ability/embody_aspect.c +++ b/test/battle/ability/embody_aspect.c @@ -20,13 +20,13 @@ SINGLE_BATTLE_TEST("Embody Aspect raises a stat depending on the users form by o ABILITY_POPUP(opponent, ability); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); if (ability == ABILITY_EMBODY_ASPECT_TEAL_MASK) - MESSAGE("Foe Ogerpon's Embody Aspect raised its Speed!"); + MESSAGE("The opposing Ogerpon's Embody Aspect raised its Speed!"); else if (ability == ABILITY_EMBODY_ASPECT_HEARTHFLAME_MASK) - MESSAGE("Foe Ogerpon's Embody Aspect raised its Attack!"); + MESSAGE("The opposing Ogerpon's Embody Aspect raised its Attack!"); else if (ability == ABILITY_EMBODY_ASPECT_WELLSPRING_MASK) - MESSAGE("Foe Ogerpon's Embody Aspect raised its Sp. Def!"); + MESSAGE("The opposing Ogerpon's Embody Aspect raised its Sp. Def!"); else if (ability == ABILITY_EMBODY_ASPECT_CORNERSTONE_MASK) - MESSAGE("Foe Ogerpon's Embody Aspect raised its Defense!"); + MESSAGE("The opposing Ogerpon's Embody Aspect raised its Defense!"); } THEN { if (ability == ABILITY_EMBODY_ASPECT_TEAL_MASK) EXPECT_EQ(opponent->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 1); @@ -49,11 +49,11 @@ SINGLE_BATTLE_TEST("Embody Aspect activates when it's no longer effected by Neut TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); SWITCH_OUT_MESSAGE("Weezing"); - MESSAGE("The effects of Neutralizing Gas wore off!"); + MESSAGE("The effects of the neutralizing gas wore off!"); ABILITY_POPUP(opponent, ABILITY_EMBODY_ASPECT_TEAL_MASK); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Ogerpon's Embody Aspect raised its Speed!"); + MESSAGE("The opposing Ogerpon's Embody Aspect raised its Speed!"); } } diff --git a/test/battle/ability/flame_body.c b/test/battle/ability/flame_body.c index f44fb91724..b8fa850b65 100644 --- a/test/battle/ability/flame_body.c +++ b/test/battle/ability/flame_body.c @@ -17,13 +17,13 @@ SINGLE_BATTLE_TEST("Flame Body inflicts burn on contact") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(opponent, ABILITY_FLAME_BODY); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, player); - MESSAGE("Foe Magmar's Flame Body burned Wobbuffet!"); + MESSAGE("The opposing Magmar's Flame Body burned Wobbuffet!"); STATUS_ICON(player, burn: TRUE); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_FLAME_BODY); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, player); - MESSAGE("Foe Magmar's Flame Body burned Wobbuffet!"); + MESSAGE("The opposing Magmar's Flame Body burned Wobbuffet!"); STATUS_ICON(player, burn: TRUE); } } @@ -43,7 +43,7 @@ SINGLE_BATTLE_TEST("Flame Body triggers 30% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_FLAME_BODY); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, player); - MESSAGE("Foe Magmar's Flame Body burned Wobbuffet!"); + MESSAGE("The opposing Magmar's Flame Body burned Wobbuffet!"); STATUS_ICON(player, burn: TRUE); } } diff --git a/test/battle/ability/forecast.c b/test/battle/ability/forecast.c index 24a0eed957..dae5326fd5 100644 --- a/test/battle/ability/forecast.c +++ b/test/battle/ability/forecast.c @@ -122,13 +122,13 @@ DOUBLE_BATTLE_TEST("Forecast transforms all Castforms present in weather") MESSAGE("Castform transformed!"); ABILITY_POPUP(opponentLeft, ABILITY_FORECAST); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, opponentLeft); - MESSAGE("Foe Castform transformed!"); + MESSAGE("The opposing Castform transformed!"); ABILITY_POPUP(playerRight, ABILITY_FORECAST); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, playerRight); MESSAGE("Castform transformed!"); ABILITY_POPUP(opponentRight, ABILITY_FORECAST); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, opponentRight); - MESSAGE("Foe Castform transformed!"); + MESSAGE("The opposing Castform transformed!"); } THEN { switch (move) { diff --git a/test/battle/ability/frisk.c b/test/battle/ability/frisk.c index 385ab7e1f9..3c892329c3 100644 --- a/test/battle/ability/frisk.c +++ b/test/battle/ability/frisk.c @@ -29,9 +29,9 @@ SINGLE_BATTLE_TEST("Frisk triggers in a Single Battle") TURN { ; } } SCENE { ABILITY_POPUP(player, ABILITY_FRISK); - MESSAGE("Furret frisked Foe Sentret and found its Potion!"); + MESSAGE("Furret frisked the opposing Sentret and found its Potion!"); ABILITY_POPUP(opponent, ABILITY_FRISK); - MESSAGE("Foe Sentret frisked Furret and found its Potion!"); + MESSAGE("The opposing Sentret frisked Furret and found its Potion!"); } } @@ -51,10 +51,10 @@ DOUBLE_BATTLE_TEST("Frisk triggers for player in a Double Battle after switching } WHEN { TURN { MOVE(opponentLeft, MOVE_POUND, target: target); SEND_OUT(target, 2); } } SCENE { - MESSAGE("Foe Wynaut used Pound!"); + MESSAGE("The opposing Wynaut used Pound!"); MESSAGE("Wobbuffet fainted!"); ABILITY_POPUP(target, ABILITY_FRISK); - MESSAGE("Furret frisked Foe Wynaut and found its Potion!"); + MESSAGE("Furret frisked the opposing Wynaut and found its Potion!"); } } @@ -75,8 +75,8 @@ DOUBLE_BATTLE_TEST("Frisk triggers for opponent in a Double Battle after switchi TURN { MOVE(playerLeft, MOVE_POUND, target: target); SEND_OUT(target, 2); } } SCENE { MESSAGE("Wynaut used Pound!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); ABILITY_POPUP(target, ABILITY_FRISK); - MESSAGE("Foe Furret frisked Wynaut and found its Potion!"); + MESSAGE("The opposing Furret frisked Wynaut and found its Potion!"); } } diff --git a/test/battle/ability/gale_wings.c b/test/battle/ability/gale_wings.c index e74d34790f..eff4589649 100644 --- a/test/battle/ability/gale_wings.c +++ b/test/battle/ability/gale_wings.c @@ -16,10 +16,10 @@ SINGLE_BATTLE_TEST("Gale Wings only grants priority at full HP") } SCENE { if (hp == 100) { MESSAGE("Talonflame used Aerial Ace!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } else { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Talonflame used Aerial Ace!"); } } @@ -41,10 +41,10 @@ SINGLE_BATTLE_TEST("Gale Wings only grants priority to Flying-type moves") } SCENE { if (move == MOVE_AERIAL_ACE) { MESSAGE("Talonflame used Aerial Ace!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } else { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Talonflame used Flare Blitz!"); } } @@ -74,16 +74,16 @@ SINGLE_BATTLE_TEST("Gale Wings doesn't increase priority of Flying-type Natural } SCENE { MESSAGE("Wobbuffet used Celebrate!"); if (move == MOVE_NATURAL_GIFT) { - MESSAGE("Foe Talonflame used Natural Gift!"); + MESSAGE("The opposing Talonflame used Natural Gift!"); } else if (move == MOVE_JUDGMENT) { - MESSAGE("Foe Talonflame used Judgment!"); + MESSAGE("The opposing Talonflame used Judgment!"); } else if (move == MOVE_HIDDEN_POWER) { - MESSAGE("Foe Talonflame used Hidden Power!"); + MESSAGE("The opposing Talonflame used Hidden Power!"); } else { - MESSAGE("Foe Talonflame used Tera Blast!"); + MESSAGE("The opposing Talonflame used Tera Blast!"); } } } diff --git a/test/battle/ability/good_as_gold.c b/test/battle/ability/good_as_gold.c index 596bb6c4c7..40561ee767 100644 --- a/test/battle/ability/good_as_gold.c +++ b/test/battle/ability/good_as_gold.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Good as Gold protects from status moves") } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); ABILITY_POPUP(opponent, ABILITY_GOOD_AS_GOLD); - MESSAGE("It doesn't affect Foe Gholdengo…"); + MESSAGE("It doesn't affect the opposing Gholdengo…"); } } @@ -29,7 +29,7 @@ SINGLE_BATTLE_TEST("Good as Gold doesn't protect the user from it's own moves") ANIMATION(ANIM_TYPE_MOVE, MOVE_NASTY_PLOT, opponent); NONE_OF { ABILITY_POPUP(opponent, ABILITY_GOOD_AS_GOLD); - MESSAGE("It doesn't affect Foe Gholdengo…"); + MESSAGE("It doesn't affect the opposing Gholdengo…"); } } } @@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Good as Gold doesn't protect from moves that target the fiel ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, player); NONE_OF { ABILITY_POPUP(opponent, ABILITY_GOOD_AS_GOLD); - MESSAGE("It doesn't affect Foe Gholdengo…"); + MESSAGE("It doesn't affect the opposing Gholdengo…"); } } } @@ -65,6 +65,6 @@ DOUBLE_BATTLE_TEST("Good as Gold protects from partner's status moves") } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HELPING_HAND, opponentRight); ABILITY_POPUP(opponentLeft, ABILITY_GOOD_AS_GOLD); - MESSAGE("It doesn't affect Foe Gholdengo…"); + MESSAGE("It doesn't affect the opposing Gholdengo…"); } } diff --git a/test/battle/ability/grim_neigh.c b/test/battle/ability/grim_neigh.c index 1d1e50ee12..6e0073f955 100644 --- a/test/battle/ability/grim_neigh.c +++ b/test/battle/ability/grim_neigh.c @@ -22,8 +22,8 @@ DOUBLE_BATTLE_TEST("Grim Neigh raises Sp. Attack by one stage after directly cau for (i = 0; i < 3; i++) { ONE_OF { MESSAGE("Snorunt fainted!"); - MESSAGE("Foe Glalie fainted!"); - MESSAGE("Foe Abra fainted!"); + MESSAGE("The opposing Glalie fainted!"); + MESSAGE("The opposing Abra fainted!"); } ABILITY_POPUP(playerLeft, abilityPopUp); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); @@ -57,8 +57,8 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not trigger if Pokemon faint to indirect dam for (i = 0; i < 3; i++) { ONE_OF { MESSAGE("Snorunt fainted!"); - MESSAGE("Foe Glalie fainted!"); - MESSAGE("Foe Abra fainted!"); + MESSAGE("The opposing Glalie fainted!"); + MESSAGE("The opposing Abra fainted!"); } NONE_OF { ABILITY_POPUP(playerLeft, abilityPopUp); @@ -80,7 +80,6 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not increase damage done by the same move th PARAMETRIZE { species = SPECIES_SPECTRIER; ability = ABILITY_GRIM_NEIGH; abilityPopUp = ABILITY_GRIM_NEIGH; } PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; abilityPopUp = ABILITY_GRIM_NEIGH; } - KNOWN_FAILING; // Requires simultaneous damage implementation GIVEN { ASSUME(gMovesInfo[MOVE_DISCHARGE].target == MOVE_TARGET_FOES_AND_ALLY); PLAYER(species) { Ability(ability); } @@ -94,6 +93,7 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not increase damage done by the same move th ANIMATION(ANIM_TYPE_MOVE, MOVE_DISCHARGE, playerLeft); HP_BAR(opponentLeft, captureDamage: &damage[0]); HP_BAR(playerRight); + HP_BAR(opponentRight, captureDamage: &damage[1]); MESSAGE("Abra fainted!"); ABILITY_POPUP(playerLeft, abilityPopUp); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); @@ -101,7 +101,6 @@ DOUBLE_BATTLE_TEST("Grim Neigh does not increase damage done by the same move th MESSAGE("Spectrier's Grim Neigh raised its Sp. Atk!"); else MESSAGE("Calyrex's Grim Neigh raised its Sp. Atk!"); - HP_BAR(opponentRight, captureDamage: &damage[1]); } THEN { EXPECT_EQ(playerLeft->statStages[STAT_SPATK], DEFAULT_STAT_STAGE + 1); EXPECT_EQ(damage[0], damage[1]); diff --git a/test/battle/ability/guard_dog.c b/test/battle/ability/guard_dog.c new file mode 100644 index 0000000000..c4b44417af --- /dev/null +++ b/test/battle/ability/guard_dog.c @@ -0,0 +1,28 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Guard Dog raises Attack when intimidated", s16 damage) +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_INTIMIDATE; } + PARAMETRIZE { ability = ABILITY_SHED_SKIN; } + GIVEN { + PLAYER(SPECIES_OKIDOGI) { Ability(ABILITY_GUARD_DOG); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARBOK) { Ability(ability); } + } WHEN { + TURN { SWITCH(opponent, 1); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + if (ability == ABILITY_INTIMIDATE) + { + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + ABILITY_POPUP(player, ABILITY_GUARD_DOG); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Okidogi's Attack rose!"); + } + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[1].damage, Q_4_12(1.5), results[0].damage); + } +} diff --git a/test/battle/ability/gulp_missile.c b/test/battle/ability/gulp_missile.c index 7ccf1063b5..f5e1fd9d9d 100644 --- a/test/battle/ability/gulp_missile.c +++ b/test/battle/ability/gulp_missile.c @@ -89,7 +89,7 @@ SINGLE_BATTLE_TEST("(Gulp Missile) Transformed Cramorant deal 1/4 of damage oppo ABILITY_POPUP(player, ABILITY_GULP_MISSILE); HP_BAR(opponent, captureDamage: &gulpMissileDamage); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); } THEN { EXPECT_EQ(gulpMissileDamage, opponent->maxHP / 4); } diff --git a/test/battle/ability/healer.c b/test/battle/ability/healer.c new file mode 100644 index 0000000000..9626783ec5 --- /dev/null +++ b/test/battle/ability/healer.c @@ -0,0 +1,53 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Healer cures adjacent ally's status condition 30% of the time") +{ + u16 status; + PARAMETRIZE { status = STATUS1_SLEEP; } + PARAMETRIZE { status = STATUS1_POISON; } + PARAMETRIZE { status = STATUS1_BURN; } + // PARAMETRIZE { status = STATUS1_FREEZE; } + PARAMETRIZE { status = STATUS1_PARALYSIS; } + PARAMETRIZE { status = STATUS1_TOXIC_POISON; } + PARAMETRIZE { status = STATUS1_FROSTBITE; } + PASSES_RANDOMLY(30, 100, RNG_HEALER); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Status1(status); } + OPPONENT(SPECIES_CHANSEY) { Ability(ABILITY_HEALER); } + } WHEN { + TURN { } + } SCENE { + MESSAGE("The opposing Chansey's Healer cured the opposing Wobbuffet's problem!"); + } +} + +DOUBLE_BATTLE_TEST("Healer cures status condition before burn or poison damage is dealt") +{ + KNOWN_FAILING; // According to Bulbapedia, Healer should trigger before status damage and Wobbuffet should live + // Source: https://bulbapedia.bulbagarden.net/wiki/Healer_(Ability)#Effect + u16 status; + PARAMETRIZE { status = STATUS1_POISON; } + PARAMETRIZE { status = STATUS1_BURN; } + PARAMETRIZE { status = STATUS1_TOXIC_POISON; } + PARAMETRIZE { status = STATUS1_FROSTBITE; } + PASSES_RANDOMLY(30, 100, RNG_HEALER); + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); Status1(status); } + OPPONENT(SPECIES_CHANSEY) { Ability(ABILITY_HEALER); } + } WHEN { + TURN {} + } SCENE { + NOT { + MESSAGE("The opposing Wobbuffet fainted!"); + } + MESSAGE("The opposing Chansey's Healer cured Foe Wobbuffet's problem!"); + } +} + +// Triple battles +TO_DO_BATTLE_TEST("Healer has a 30% chance of curing each of its ally's status conditions independently"); diff --git a/test/battle/ability/hospitality.c b/test/battle/ability/hospitality.c index 0582549180..c772d6e776 100644 --- a/test/battle/ability/hospitality.c +++ b/test/battle/ability/hospitality.c @@ -82,9 +82,9 @@ DOUBLE_BATTLE_TEST("Hospitality does not trigger if there is no ally on the fiel } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BLIZZARD, opponentLeft); HP_BAR(playerLeft); - MESSAGE("Wobbuffet fainted!"); HP_BAR(playerRight); MESSAGE("Wobbuffet fainted!"); + MESSAGE("Wobbuffet fainted!"); SEND_IN_MESSAGE("Poltchageist"); NOT ABILITY_POPUP(playerLeft, ABILITY_HOSPITALITY); } diff --git a/test/battle/ability/hunger_switch.c b/test/battle/ability/hunger_switch.c index e4fbda82d1..38c3d2527d 100644 --- a/test/battle/ability/hunger_switch.c +++ b/test/battle/ability/hunger_switch.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Hunger Switch switches Morpeko's forms at the end of the tur TURN { MOVE(player, MOVE_CELEBRATE); } } SCENE { MESSAGE("Morpeko used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); } THEN { if (species == SPECIES_MORPEKO_FULL_BELLY) diff --git a/test/battle/ability/hyper_cutter.c b/test/battle/ability/hyper_cutter.c index 0d1306f118..a688da2531 100644 --- a/test/battle/ability/hyper_cutter.c +++ b/test/battle/ability/hyper_cutter.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); - MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + MESSAGE("The opposing Krabby's Hyper Cutter prevents Attack loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -36,7 +36,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter prevents Attack stage reduction from moves") TURN { MOVE(player, MOVE_GROWL); } } SCENE { ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); - MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + MESSAGE("The opposing Krabby's Hyper Cutter prevents Attack loss!"); } } @@ -50,7 +50,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack reduction from burn") TURN { MOVE(player, MOVE_WILL_O_WISP); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_WILL_O_WISP, player); - MESSAGE("Foe Krabby was burned!"); + MESSAGE("The opposing Krabby was burned!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); } @@ -68,10 +68,10 @@ SINGLE_BATTLE_TEST("Hyper Cutter is ignored by Mold Breaker") ABILITY_POPUP(player, ABILITY_MOLD_BREAKER); MESSAGE("Pinsir breaks the mold!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); - MESSAGE("Foe Krabby's Attack fell!"); + MESSAGE("The opposing Krabby's Attack fell!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_HYPER_CUTTER); - MESSAGE("Foe Krabby's Hyper Cutter prevents Attack loss!"); + MESSAGE("The opposing Krabby's Hyper Cutter prevents Attack loss!"); } } } @@ -87,8 +87,8 @@ SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Attack stage reduction from mov TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPERPOWER, opponent); - MESSAGE("Foe Krabby's Attack fell!"); - MESSAGE("Foe Krabby's Defense fell!"); + MESSAGE("The opposing Krabby's Attack fell!"); + MESSAGE("The opposing Krabby's Defense fell!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); } @@ -105,9 +105,9 @@ SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Topsy-Turvy") TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_TOPSY_TURVY); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); - MESSAGE("Foe Krabby's Attack sharply rose!"); + MESSAGE("The opposing Krabby's Attack sharply rose!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); - MESSAGE("Foe Krabby's stat changes were all reversed!"); + MESSAGE("All stat changes on the opposing Krabby were inverted!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 2); } @@ -124,7 +124,7 @@ SINGLE_BATTLE_TEST("Hyper Cutter doesn't prevent Spectral Thief from resetting p TURN { MOVE(opponent, MOVE_SWORDS_DANCE); MOVE(player, MOVE_SPECTRAL_THIEF); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SWORDS_DANCE, opponent); - MESSAGE("Foe Krabby's Attack sharply rose!"); + MESSAGE("The opposing Krabby's Attack sharply rose!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); MESSAGE("Wobbuffet stole the target's boosted stats!"); } THEN { diff --git a/test/battle/ability/ice_face.c b/test/battle/ability/ice_face.c index 54a307754c..22b67a7a53 100644 --- a/test/battle/ability/ice_face.c +++ b/test/battle/ability/ice_face.c @@ -135,3 +135,33 @@ SINGLE_BATTLE_TEST("Ice Face doesn't transform Eiscue if Cloud Nine/Air Lock is MESSAGE("Eiscue fainted!"); } } + +SINGLE_BATTLE_TEST("Ice Face is not restored if hail or snow and Eiscue are already out") +{ + u32 move; + PARAMETRIZE { move = MOVE_SNOWSCAPE; } + PARAMETRIZE { move = MOVE_HAIL; } + GIVEN { + ASSUME(gMovesInfo[MOVE_TACKLE].category == DAMAGE_CATEGORY_PHYSICAL); + ASSUME(gMovesInfo[MOVE_SNOWSCAPE].effect == EFFECT_SNOWSCAPE); + ASSUME(gMovesInfo[MOVE_HAIL].effect == EFFECT_HAIL); + PLAYER(SPECIES_EISCUE); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_TACKLE); MOVE(player, move); } + TURN { MOVE(opponent, MOVE_TACKLE); } + TURN { SWITCH(opponent, 1); } + } SCENE { + ABILITY_POPUP(player, ABILITY_ICE_FACE); + MESSAGE("Eiscue transformed!"); + ABILITY_POPUP(player, ABILITY_ICE_FACE); + MESSAGE("Eiscue transformed!"); + ABILITY_POPUP(player, ABILITY_ICE_FACE); + MESSAGE("Eiscue transformed!"); + NONE_OF { + ABILITY_POPUP(player, ABILITY_ICE_FACE); + MESSAGE("Eiscue transformed!"); + } + } +} diff --git a/test/battle/ability/immunity.c b/test/battle/ability/immunity.c index df5d1518e8..2fa90686c5 100644 --- a/test/battle/ability/immunity.c +++ b/test/battle/ability/immunity.c @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Immunity prevents Toxic bad poison") } SCENE { MESSAGE("Wobbuffet used Toxic!"); ABILITY_POPUP(opponent, ABILITY_IMMUNITY); - MESSAGE("Foe Snorlax's Immunity prevents poisoning!"); + MESSAGE("The opposing Snorlax's Immunity prevents poisoning!"); NOT STATUS_ICON(opponent, poison: TRUE); } } diff --git a/test/battle/ability/innards_out.c b/test/battle/ability/innards_out.c index a8d5c7ee3f..bc59bcfa0b 100644 --- a/test/battle/ability/innards_out.c +++ b/test/battle/ability/innards_out.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("Innards Out deal dmg on fainting equal to the amount of dmg } WHEN { TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); if (hp == 100) { SEND_OUT(opponent, 1); } } } SCENE { - MESSAGE("Foe Wobbuffet used Psychic!"); + MESSAGE("The opposing Wobbuffet used Psychic!"); HP_BAR(player, hp); ABILITY_POPUP(player, ABILITY_INNARDS_OUT); HP_BAR(opponent, hp); @@ -38,8 +38,8 @@ SINGLE_BATTLE_TEST("Innards Out does not trigger after Gastro Acid has been used TURN { MOVE(opponent, MOVE_GASTRO_ACID); } TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); } } SCENE { - MESSAGE("Foe Wobbuffet used Gastro Acid!"); - MESSAGE("Foe Wobbuffet used Psychic!"); + MESSAGE("The opposing Wobbuffet used Gastro Acid!"); + MESSAGE("The opposing Wobbuffet used Psychic!"); HP_BAR(player); NONE_OF { ABILITY_POPUP(player, ABILITY_INNARDS_OUT); @@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Innards Out does not damage Magic Guard Pokemon") } WHEN { TURN { MOVE(opponent, MOVE_PSYCHIC); SEND_OUT(player, 1); } } SCENE { - MESSAGE("Foe Clefable used Psychic!"); + MESSAGE("The opposing Clefable used Psychic!"); HP_BAR(player); ABILITY_POPUP(player, ABILITY_INNARDS_OUT); NOT HP_BAR(opponent); diff --git a/test/battle/ability/inner_focus.c b/test/battle/ability/inner_focus.c index ecd71272cb..5a470b742f 100644 --- a/test/battle/ability/inner_focus.c +++ b/test/battle/ability/inner_focus.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Inner Focus prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_INNER_FOCUS); - MESSAGE("Foe Zubat's Inner Focus prevents stat loss!"); + MESSAGE("The opposing Zubat's Inner Focus prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -38,7 +38,7 @@ SINGLE_BATTLE_TEST("Inner Focus prevents flinching") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, player); - NONE_OF { MESSAGE("Foe Zubat flinched!"); } + NONE_OF { MESSAGE("The opposing Zubat flinched and couldn't move!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } @@ -52,6 +52,6 @@ SINGLE_BATTLE_TEST("Inner Focus is ignored by Mold Breaker") TURN { MOVE(player, MOVE_FAKE_OUT); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, player); - MESSAGE("Foe Zubat flinched!"); + MESSAGE("The opposing Zubat flinched and couldn't move!"); } } diff --git a/test/battle/ability/intimidate.c b/test/battle/ability/intimidate.c index d2d7bc4af7..e0f97d5bda 100644 --- a/test/battle/ability/intimidate.c +++ b/test/battle/ability/intimidate.c @@ -23,7 +23,7 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after switch ou { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Foe Arbok's Intimidate cuts Wobbuffet's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Wobbuffet's Attack!"); } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Intimidate (opponent) lowers player's attack after KO", s16 { ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Foe Arbok's Intimidate cuts Wobbuffet's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Wobbuffet's Attack!"); } HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { @@ -92,15 +92,15 @@ DOUBLE_BATTLE_TEST("Intimidate doesn't activate on an empty field in a double ba // Intimidate activates after all battlers have been brought out ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Ekans's Intimidate cuts Foe Arbok's attack!"); + MESSAGE("Ekans's Intimidate cuts the opposing Arbok's Attack!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Ekans's Intimidate cuts Foe Wynaut's attack!"); + MESSAGE("Ekans's Intimidate cuts the opposing Wynaut's Attack!"); ABILITY_POPUP(opponentLeft, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); - MESSAGE("Foe Arbok's Intimidate cuts Ekans's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Ekans's Attack!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Foe Arbok's Intimidate cuts Abra's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Abra's Attack!"); } } @@ -120,13 +120,13 @@ SINGLE_BATTLE_TEST("Intimidate and Eject Button force the opponent to Attack") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); MESSAGE("2 sent out Hitmontop!"); ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); - MESSAGE("Foe Hitmontop's Intimidate cuts Wobbuffet's attack!"); + MESSAGE("The opposing Hitmontop's Intimidate cuts Wobbuffet's Attack!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); - MESSAGE("Foe Hitmontop used Tackle!"); + MESSAGE("The opposing Hitmontop used Tackle!"); } } } @@ -161,10 +161,10 @@ DOUBLE_BATTLE_TEST("Intimidate activates on an empty slot") SEND_IN_MESSAGE("Hitmontop"); ABILITY_POPUP(playerLeft, ABILITY_INTIMIDATE); NONE_OF { - MESSAGE("Hitmontop's Intimidate cuts Foe Ralts's attack!"); + MESSAGE("Hitmontop's Intimidate cuts the opposing Ralts's Attack!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Hitmontop's Intimidate cuts Foe Azurill's attack!"); + MESSAGE("Hitmontop's Intimidate cuts the opposing Azurill's Attack!"); } } @@ -209,9 +209,9 @@ SINGLE_BATTLE_TEST("Intimidate can not further lower opponents Atk stat if it is ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Foe Arbok's Intimidate cuts Wobbuffet's attack!"); + MESSAGE("The opposing Arbok's Intimidate cuts Wobbuffet's Attack!"); } - MESSAGE("Wobbuffet's Attack won't go lower!"); + MESSAGE("Wobbuffet's Attack won't go any lower!"); } THEN { EXPECT_EQ(player->statStages[STAT_ATK], MIN_STAT_STAGE); } @@ -246,7 +246,7 @@ DOUBLE_BATTLE_TEST("Intimidate is not going to trigger if a mon switches out thr } } -SINGLE_BATTLE_TEST("Intimidate activates when it's no longer effected by Neutralizing Gas") +SINGLE_BATTLE_TEST("Intimidate activates when it's no longer effected by Neutralizing Gas - switching out") { GIVEN { PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); } @@ -256,10 +256,98 @@ SINGLE_BATTLE_TEST("Intimidate activates when it's no longer effected by Neutral TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); SWITCH_OUT_MESSAGE("Weezing"); - MESSAGE("The effects of Neutralizing Gas wore off!"); + MESSAGE("The effects of the neutralizing gas wore off!"); ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); SEND_IN_MESSAGE("Wobbuffet"); } } + +SINGLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutralizing Gas - switching moves") +{ + u32 move; + PARAMETRIZE { move = MOVE_U_TURN; } + PARAMETRIZE { move = MOVE_HEALING_WISH; } + PARAMETRIZE { move = MOVE_BATON_PASS; } + GIVEN { + ASSUME(gMovesInfo[MOVE_U_TURN].effect == EFFECT_HIT_ESCAPE); + ASSUME(gMovesInfo[MOVE_HEALING_WISH].effect == EFFECT_HEALING_WISH); + ASSUME(gMovesInfo[MOVE_BATON_PASS].effect == EFFECT_BATON_PASS); + PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); } + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { MOVE(player, move); SEND_OUT(player, 1); } + } SCENE { + ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); + MESSAGE("Neutralizing gas filled the area!"); + ANIMATION(ANIM_TYPE_MOVE, move, player); + MESSAGE("The effects of the neutralizing gas wore off!"); + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + SEND_IN_MESSAGE("Wobbuffet"); + } THEN { + if (move == MOVE_HEALING_WISH) + EXPECT_EQ(player->hp, player->maxHP); + } +} + +SINGLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutralizing Gas - opponent caused switches") +{ + u32 move, item; + PARAMETRIZE { move = MOVE_TACKLE; item = ITEM_EJECT_BUTTON; } + PARAMETRIZE { move = MOVE_GROWL; item = ITEM_EJECT_PACK; } + PARAMETRIZE { move = MOVE_ROAR; item = ITEM_NONE; } + PARAMETRIZE { move = MOVE_DRAGON_TAIL; item = ITEM_NONE; } + GIVEN { + ASSUME(gItemsInfo[ITEM_EJECT_BUTTON].holdEffect == HOLD_EFFECT_EJECT_BUTTON); + ASSUME(gItemsInfo[ITEM_EJECT_PACK].holdEffect == HOLD_EFFECT_EJECT_PACK); + ASSUME(gMovesInfo[MOVE_GROWL].effect == EFFECT_ATTACK_DOWN); + ASSUME(gMovesInfo[MOVE_ROAR].effect == EFFECT_ROAR); + ASSUME(gMovesInfo[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); Item(item); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + if (item != ITEM_NONE) { + TURN { MOVE(opponent, move); SEND_OUT(player, 1); } + } else { + TURN { MOVE(opponent, move); } + } + } SCENE { + ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); + MESSAGE("Neutralizing gas filled the area!"); + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + if (item != ITEM_NONE) + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("The effects of the neutralizing gas wore off!"); + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + if (item != ITEM_NONE) { + SEND_IN_MESSAGE("Wobbuffet"); + } else { + MESSAGE("Wobbuffet was dragged out!"); + } + } +} + +SINGLE_BATTLE_TEST("Intimidate activates when it's no longer affected by Neutralizing Gas - fainted") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_FELL_STINGER].effect == EFFECT_FELL_STINGER); + PLAYER(SPECIES_WEEZING) { Ability(ABILITY_NEUTRALIZING_GAS); HP(1); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARBOK) { Ability(ABILITY_INTIMIDATE); } + } WHEN { + TURN { MOVE(opponent, MOVE_FELL_STINGER); SEND_OUT(player, 1); } + } SCENE { + ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); + MESSAGE("Neutralizing gas filled the area!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FELL_STINGER, opponent); + MESSAGE("The effects of the neutralizing gas wore off!"); + ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); + MESSAGE("Weezing fainted!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); + SEND_IN_MESSAGE("Wobbuffet"); + } +} + diff --git a/test/battle/ability/intrepid_sword.c b/test/battle/ability/intrepid_sword.c index fdae307a43..68300fb229 100644 --- a/test/battle/ability/intrepid_sword.c +++ b/test/battle/ability/intrepid_sword.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Intrepid Sword raises Attack by one stage") } SCENE { ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + MESSAGE("The opposing Zacian's Intrepid Sword raised its Attack!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); } @@ -34,11 +34,11 @@ SINGLE_BATTLE_TEST("Intrepid Sword raises Attack by one stage only once per batt } SCENE { ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + MESSAGE("The opposing Zacian's Intrepid Sword raised its Attack!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + MESSAGE("The opposing Zacian's Intrepid Sword raised its Attack!"); } } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); @@ -55,12 +55,12 @@ SINGLE_BATTLE_TEST("Intrepid Sword activates when it's no longer effected by Neu TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); SWITCH_OUT_MESSAGE("Weezing"); - MESSAGE("The effects of Neutralizing Gas wore off!"); + MESSAGE("The effects of the neutralizing gas wore off!"); ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + MESSAGE("The opposing Zacian's Intrepid Sword raised its Attack!"); } } @@ -77,7 +77,7 @@ SINGLE_BATTLE_TEST("Intrepid Sword and Dauntless Shield both can be Skill Swappe } SCENE { ABILITY_POPUP(opponent, ABILITY_INTREPID_SWORD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zacian's Intrepid Sword raised its Attack!"); + MESSAGE("The opposing Zacian's Intrepid Sword raised its Attack!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player); ABILITY_POPUP(player, ABILITY_INTREPID_SWORD); @@ -86,7 +86,7 @@ SINGLE_BATTLE_TEST("Intrepid Sword and Dauntless Shield both can be Skill Swappe ABILITY_POPUP(opponent, ABILITY_DAUNTLESS_SHIELD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Zamazenta's Dauntless Shield raised its Defense!"); + MESSAGE("The opposing Zamazenta's Dauntless Shield raised its Defense!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player); ABILITY_POPUP(player, ABILITY_DAUNTLESS_SHIELD); diff --git a/test/battle/ability/keen_eye.c b/test/battle/ability/keen_eye.c index 29797ef7cd..b047ec988f 100644 --- a/test/battle/ability/keen_eye.c +++ b/test/battle/ability/keen_eye.c @@ -27,11 +27,11 @@ SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye prevent accuracy stag ABILITY_POPUP(opponent, ability); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); if (species == SPECIES_HITMONCHAN) - MESSAGE("Foe Hitmonchan's Keen Eye prevents accuracy loss!"); + MESSAGE("The opposing Hitmonchan's Keen Eye prevents accuracy loss!"); else if (species == SPECIES_STARYU) - MESSAGE("Foe Staryu's Illuminate prevents accuracy loss!"); + MESSAGE("The opposing Staryu's Illuminate prevents accuracy loss!"); else - MESSAGE("Foe Ursaluna's Mind's Eye prevents accuracy loss!"); + MESSAGE("The opposing Ursaluna's Mind's Eye prevents accuracy loss!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } @@ -111,22 +111,22 @@ SINGLE_BATTLE_TEST("Keen Eye, Gen9+ Illuminate & Minds Eye don't prevent Topsy-T } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_HONE_CLAWS, opponent); if (species == SPECIES_HITMONCHAN) { - MESSAGE("Foe Hitmonchan's Attack rose!"); - MESSAGE("Foe Hitmonchan's accuracy rose!"); + MESSAGE("The opposing Hitmonchan's Attack rose!"); + MESSAGE("The opposing Hitmonchan's accuracy rose!"); } else if (species == SPECIES_STARYU) { - MESSAGE("Foe Staryu's Attack rose!"); - MESSAGE("Foe Staryu's accuracy rose!"); + MESSAGE("The opposing Staryu's Attack rose!"); + MESSAGE("The opposing Staryu's accuracy rose!"); } else { - MESSAGE("Foe Ursaluna's Attack rose!"); - MESSAGE("Foe Ursaluna's accuracy rose!"); + MESSAGE("The opposing Ursaluna's Attack rose!"); + MESSAGE("The opposing Ursaluna's accuracy rose!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TOPSY_TURVY, player); if (species == SPECIES_HITMONCHAN) - MESSAGE("Foe Hitmonchan's stat changes were all reversed!"); + MESSAGE("All stat changes on the opposing Hitmonchan were inverted!"); else if (species == SPECIES_STARYU) - MESSAGE("Foe Staryu's stat changes were all reversed!"); + MESSAGE("All stat changes on the opposing Staryu were inverted!"); else - MESSAGE("Foe Ursaluna's stat changes were all reversed!"); + MESSAGE("All stat changes on the opposing Ursaluna were inverted!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ACC], DEFAULT_STAT_STAGE - 1); } @@ -183,13 +183,13 @@ SINGLE_BATTLE_TEST("Keen Eye & Gen9+ Illuminate don't prevent Spectral Thief fro ANIMATION(ANIM_TYPE_MOVE, MOVE_HONE_CLAWS, opponent); if (species == SPECIES_HITMONCHAN) { - MESSAGE("Foe Hitmonchan's Attack rose!"); - MESSAGE("Foe Hitmonchan's accuracy rose!"); + MESSAGE("The opposing Hitmonchan's Attack rose!"); + MESSAGE("The opposing Hitmonchan's accuracy rose!"); } else { - MESSAGE("Foe Staryu's Attack rose!"); - MESSAGE("Foe Staryu's accuracy rose!"); + MESSAGE("The opposing Staryu's Attack rose!"); + MESSAGE("The opposing Staryu's accuracy rose!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_SPECTRAL_THIEF, player); MESSAGE("Wobbuffet stole the target's boosted stats!"); diff --git a/test/battle/ability/leaf_guard.c b/test/battle/ability/leaf_guard.c index 2c55236def..af113f1bb6 100644 --- a/test/battle/ability/leaf_guard.c +++ b/test/battle/ability/leaf_guard.c @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Leaf Guard prevents status conditions from Flame Orb and Tox NONE_OF { MESSAGE("Leafeon was burned!"); STATUS_ICON(player, burn: TRUE); } } else { - NONE_OF { MESSAGE("Leafeon is badly poisoned!"); STATUS_ICON(player, poison: TRUE); } + NONE_OF { MESSAGE("Leafeon was badly poisoned!"); STATUS_ICON(player, poison: TRUE); } } } } diff --git a/test/battle/ability/lightning_rod.c b/test/battle/ability/lightning_rod.c index 33dd27a6fb..c719ee145d 100644 --- a/test/battle/ability/lightning_rod.c +++ b/test/battle/ability/lightning_rod.c @@ -17,12 +17,12 @@ SINGLE_BATTLE_TEST("Lightning Rod absorbs Electric-type moves and increases the }; ABILITY_POPUP(opponent, ABILITY_LIGHTNING_ROD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Raichu's Sp. Atk rose!"); + MESSAGE("The opposing Raichu's Sp. Atk rose!"); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_LIGHTNING_ROD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Raichu's Sp. Atk rose!"); + MESSAGE("The opposing Raichu's Sp. Atk rose!"); }; ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player); HP_BAR(opponent); @@ -54,10 +54,10 @@ DOUBLE_BATTLE_TEST("Lightning Rod forces single-target Electric-type moves to ta }; ABILITY_POPUP(opponentLeft, ABILITY_LIGHTNING_ROD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Raichu's Sp. Atk rose!"); + MESSAGE("The opposing Raichu's Sp. Atk rose!"); ABILITY_POPUP(opponentLeft, ABILITY_LIGHTNING_ROD); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Raichu's Sp. Atk rose!"); + MESSAGE("The opposing Raichu's Sp. Atk rose!"); } else { NONE_OF { HP_BAR(opponentRight); diff --git a/test/battle/ability/magic_bounce.c b/test/battle/ability/magic_bounce.c index 8d583b154d..a643b22824 100644 --- a/test/battle/ability/magic_bounce.c +++ b/test/battle/ability/magic_bounce.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Magic Bounce bounces back status moves") } SCENE { ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); - MESSAGE("Wynaut's Toxic was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Wynaut's Toxic was bounced back by the opposing Espeon's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, opponent); STATUS_ICON(player, badPoison: TRUE); } @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Magic Bounce bounces back powder moves") } SCENE { ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); - MESSAGE("Wynaut's Stun Spore was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Wynaut's Stun Spore was bounced back by the opposing Espeon's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, opponent); STATUS_ICON(player, paralysis: TRUE); } @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Magic Bounce cannot bounce back powder moves against Grass T } SCENE { ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - MESSAGE("Oddish's Stun Spore was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Oddish's Stun Spore was bounced back by the opposing Espeon's Magic Bounce!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, opponent); MESSAGE("It doesn't affect Oddish…"); NOT STATUS_ICON(player, paralysis: TRUE); @@ -70,7 +70,7 @@ DOUBLE_BATTLE_TEST("Magic Bounce bounces back moves hitting both foes at two foe } SCENE { ABILITY_POPUP(opponentLeft, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_LEER, playerLeft); - MESSAGE("Abra's Leer was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Abra's Leer was bounced back by the opposing Espeon's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_LEER, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Abra's Defense fell!"); @@ -78,7 +78,7 @@ DOUBLE_BATTLE_TEST("Magic Bounce bounces back moves hitting both foes at two foe MESSAGE("Kadabra's Defense fell!"); // Also check if second original target gets hit by Leer as this was once bugged ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Wynaut's Defense fell!"); + MESSAGE("The opposing Wynaut's Defense fell!"); } } @@ -106,10 +106,10 @@ DOUBLE_BATTLE_TEST("Magic Bounce bounces back moves hitting foes field") ABILITY_POPUP(opponentRight, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, playerLeft); if (abilityBattlerOne == ABILITY_MAGIC_BOUNCE) { - MESSAGE("Abra's Stealth Rock was bounced back by Foe Natu's Magic Bounce!"); + MESSAGE("Abra's Stealth Rock was bounced back by the opposing Natu's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponentLeft); } else { - MESSAGE("Abra's Stealth Rock was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Abra's Stealth Rock was bounced back by the opposing Espeon's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponentRight); } } @@ -126,7 +126,7 @@ SINGLE_BATTLE_TEST("Magic Bounce bounced back status moves can not be bounced ba } SCENE { ABILITY_POPUP(opponent, ABILITY_MAGIC_BOUNCE); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); - MESSAGE("Espeon's Toxic was bounced back by Foe Espeon's Magic Bounce!"); + MESSAGE("Espeon's Toxic was bounced back by the opposing Espeon's Magic Bounce!"); NOT ABILITY_POPUP(player, ABILITY_MAGIC_BOUNCE); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, opponent); STATUS_ICON(player, badPoison: TRUE); diff --git a/test/battle/ability/magician.c b/test/battle/ability/magician.c index 5c67a35bac..a951c2f973 100644 --- a/test/battle/ability/magician.c +++ b/test/battle/ability/magician.c @@ -15,15 +15,15 @@ SINGLE_BATTLE_TEST("Magician does not get self-damage recoil after stealing Life // 1st turn MESSAGE("Delphox used Tackle!"); ABILITY_POPUP(player, ABILITY_MAGICIAN); - MESSAGE("Delphox stole Foe Wobbuffet's Life Orb!"); + MESSAGE("Delphox stole the opposing Wobbuffet's Life Orb!"); NONE_OF { HP_BAR(player); - MESSAGE("Delphox was hurt by its Life Orb!"); + MESSAGE("Delphox was hurt by the Life Orb!"); } // 2nd turn - Life Orb recoil happens now MESSAGE("Delphox used Tackle!"); HP_BAR(player); - MESSAGE("Delphox was hurt by its Life Orb!"); + MESSAGE("Delphox was hurt by the Life Orb!"); } } diff --git a/test/battle/ability/minds_eye.c b/test/battle/ability/minds_eye.c index 7799735ee2..bf50fa0e2e 100644 --- a/test/battle/ability/minds_eye.c +++ b/test/battle/ability/minds_eye.c @@ -36,7 +36,7 @@ SINGLE_BATTLE_TEST("Mind's Eye doesn't bypass a Ghost-type's Wonder Guard") HP_BAR(opponent); } ABILITY_POPUP(opponent, ABILITY_WONDER_GUARD); - MESSAGE("Foe Shedinja avoided damage with Wonder Guard!"); + MESSAGE("The opposing Shedinja avoided damage with Wonder Guard!"); } } diff --git a/test/battle/ability/mirror_armor.c b/test/battle/ability/mirror_armor.c index 327b493a35..288fe72334 100644 --- a/test/battle/ability/mirror_armor.c +++ b/test/battle/ability/mirror_armor.c @@ -23,22 +23,22 @@ SINGLE_BATTLE_TEST("Mirror Armor lowers a stat of the attacking pokemon") switch (statId) { case STAT_DEF: - MESSAGE("Foe Wynaut's Defense fell!"); + MESSAGE("The opposing Wynaut's Defense fell!"); break; case STAT_ATK: - MESSAGE("Foe Wynaut's Attack fell!"); + MESSAGE("The opposing Wynaut's Attack fell!"); break; case STAT_EVASION: - MESSAGE("Foe Wynaut's evasiveness harshly fell!"); + MESSAGE("The opposing Wynaut's evasiveness harshly fell!"); break; case STAT_ACC: - MESSAGE("Foe Wynaut's accuracy fell!"); + MESSAGE("The opposing Wynaut's accuracy fell!"); break; case STAT_SPATK: - MESSAGE("Foe Wynaut's Sp. Atk fell!"); + MESSAGE("The opposing Wynaut's Sp. Atk fell!"); break; case STAT_SPDEF: - MESSAGE("Foe Wynaut's Sp. Def harshly fell!"); + MESSAGE("The opposing Wynaut's Sp. Def harshly fell!"); break; } } THEN { @@ -55,11 +55,11 @@ SINGLE_BATTLE_TEST("Mirror Armor triggers even if the attacking Pokemon also has } WHEN { TURN { MOVE(opponent, MOVE_LEER); } } SCENE { - MESSAGE("Foe Corviknight used Leer!"); + MESSAGE("The opposing Corviknight used Leer!"); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Corviknight's Defense fell!"); + MESSAGE("The opposing Corviknight's Defense fell!"); } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); @@ -74,10 +74,10 @@ SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stats of an attacking Pokemon } WHEN { TURN { MOVE(opponent, MOVE_LEER); } } SCENE { - MESSAGE("Foe Wynaut used Leer!"); + MESSAGE("The opposing Wynaut used Leer!"); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); - MESSAGE("Foe Wynaut's Clear Body prevents stat loss!"); + MESSAGE("The opposing Wynaut's Clear Body prevents stat loss!"); } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE); @@ -95,7 +95,7 @@ SINGLE_BATTLE_TEST("Mirror Armor lowers the Attack of Pokemon with Intimidate") ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Gyarados's Attack fell!"); + MESSAGE("The opposing Gyarados's Attack fell!"); } THEN { EXPECT_EQ(player->statStages[STAT_ATK], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 1); @@ -113,9 +113,9 @@ SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stats of an attacking Pokemon TURN { MOVE(opponent, MOVE_SUBSTITUTE); } TURN { MOVE(opponent, MOVE_LEER); } } SCENE { - MESSAGE("Foe Wynaut used Substitute!"); + MESSAGE("The opposing Wynaut used Substitute!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, opponent); - MESSAGE("Foe Wynaut used Leer!"); + MESSAGE("The opposing Wynaut used Leer!"); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } THEN { @@ -132,10 +132,10 @@ SINGLE_BATTLE_TEST("Mirror Armor raises the stat of an attacking Pokemon with Co } WHEN { TURN { MOVE(opponent, MOVE_LEER); } } SCENE { - MESSAGE("Foe Shuckle used Leer!"); + MESSAGE("The opposing Shuckle used Leer!"); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Shuckle's Defense rose!"); + MESSAGE("The opposing Shuckle's Defense rose!"); } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 1); @@ -156,10 +156,10 @@ SINGLE_BATTLE_TEST("Mirror Armor doesn't lower the stat of the attacking Pokemon MESSAGE("Corviknight used Screech!"); MESSAGE("Corviknight used Screech!"); MESSAGE("Corviknight used Screech!"); - MESSAGE("Foe Wynaut used Leer!"); + MESSAGE("The opposing Wynaut used Leer!"); ABILITY_POPUP(player, ABILITY_MIRROR_ARMOR); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wynaut's Defense won't go lower!"); + MESSAGE("The opposing Wynaut's Defense won't go any lower!"); } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_DEF], MIN_STAT_STAGE); @@ -186,10 +186,10 @@ DOUBLE_BATTLE_TEST("Mirror Armor lowers Speed of the partner Pokemon after Court TURN { } } SCENE { MESSAGE("Wobbuffet used Sticky Web!"); - MESSAGE("Foe Wynaut used Court Change!"); - MESSAGE("Foe Wynaut swapped the battle effects affecting each side!"); + MESSAGE("The opposing Wynaut used Court Change!"); + MESSAGE("The opposing Wynaut swapped the battle effects affecting each side of the field!"); SEND_IN_MESSAGE("Corviknight"); - MESSAGE("Corviknight was caught in a Sticky Web!"); + MESSAGE("Corviknight was caught in a sticky web!"); ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wobbuffet's Speed fell!"); diff --git a/test/battle/ability/moxie.c b/test/battle/ability/moxie.c index 28fb9333fe..d6c7d11d9d 100644 --- a/test/battle/ability/moxie.c +++ b/test/battle/ability/moxie.c @@ -23,8 +23,8 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh raises Attack by one stage after direct for (i = 0; i < 3; i++) { ONE_OF { MESSAGE("Snorunt fainted!"); - MESSAGE("Foe Glalie fainted!"); - MESSAGE("Foe Abra fainted!"); + MESSAGE("The opposing Glalie fainted!"); + MESSAGE("The opposing Abra fainted!"); } ABILITY_POPUP(playerLeft, abilityPopUp); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); @@ -61,8 +61,8 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not trigger if Pokemon faint to in for (i = 0; i < 3; i++) { ONE_OF { MESSAGE("Snorunt fainted!"); - MESSAGE("Foe Glalie fainted!"); - MESSAGE("Foe Abra fainted!"); + MESSAGE("The opposing Glalie fainted!"); + MESSAGE("The opposing Abra fainted!"); } NONE_OF { ABILITY_POPUP(playerLeft, abilityPopUp); @@ -95,13 +95,13 @@ SINGLE_BATTLE_TEST("Moxie/Chilling Neigh does not trigger when already at maximu ANIMATION(ANIM_TYPE_MOVE, MOVE_BELLY_DRUM, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); if (species == SPECIES_SALAMENCE) - MESSAGE("Salamence cut its own HP and maximized ATTACK!"); + MESSAGE("Salamence cut its own HP and maximized its Attack!"); else if (species == SPECIES_GLASTRIER) - MESSAGE("Glastrier cut its own HP and maximized ATTACK!"); + MESSAGE("Glastrier cut its own HP and maximized its Attack!"); else - MESSAGE("Calyrex cut its own HP and maximized ATTACK!"); + MESSAGE("Calyrex cut its own HP and maximized its Attack!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, player); - MESSAGE("Foe Snorunt fainted!"); + MESSAGE("The opposing Snorunt fainted!"); NONE_OF { ABILITY_POPUP(player, abilityPopUp); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -122,7 +122,6 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not increase damage done by the sa PARAMETRIZE { species = SPECIES_GLASTRIER; ability = ABILITY_CHILLING_NEIGH; abilityPopUp = ABILITY_CHILLING_NEIGH; } PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; abilityPopUp = ABILITY_CHILLING_NEIGH; } - KNOWN_FAILING; // Requires simultaneous damage implementation GIVEN { ASSUME(gMovesInfo[MOVE_EARTHQUAKE].target == MOVE_TARGET_FOES_AND_ALLY); PLAYER(species) { Ability(ability); } @@ -136,6 +135,7 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not increase damage done by the sa ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft); HP_BAR(opponentLeft, captureDamage: &damage[0]); HP_BAR(playerRight); + HP_BAR(opponentRight, captureDamage: &damage[1]); MESSAGE("Abra fainted!"); ABILITY_POPUP(playerLeft, abilityPopUp); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); @@ -145,7 +145,6 @@ DOUBLE_BATTLE_TEST("Moxie/Chilling Neigh does not increase damage done by the sa MESSAGE("Glastrier's Chilling Neigh raised its Attack!"); else MESSAGE("Calyrex's Chilling Neigh raised its Attack!"); - HP_BAR(opponentRight, captureDamage: &damage[1]); } THEN { EXPECT_EQ(playerLeft->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); EXPECT_EQ(damage[0], damage[1]); diff --git a/test/battle/ability/mummy.c b/test/battle/ability/mummy.c index b6323e83ee..74461ec2ee 100644 --- a/test/battle/ability/mummy.c +++ b/test/battle/ability/mummy.c @@ -70,19 +70,19 @@ SINGLE_BATTLE_TEST("Mummy doesn't replace abilities that can't be suppressed") PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } - PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } - PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } - PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } - PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } PARAMETRIZE { species = SPECIES_CRAMORANT; ability = ABILITY_GULP_MISSILE; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } - PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } - PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } GIVEN { PLAYER(SPECIES_YAMASK); diff --git a/test/battle/ability/opportunist.c b/test/battle/ability/opportunist.c index b627b8ec6e..662d442dbc 100644 --- a/test/battle/ability/opportunist.c +++ b/test/battle/ability/opportunist.c @@ -61,18 +61,18 @@ DOUBLE_BATTLE_TEST("Opportunist raises Attack only once when partner has Intimid if (abilityLeft == ABILITY_CONTRARY) { ABILITY_POPUP(opponentLeft, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); + MESSAGE("Mightyena's Intimidate cuts the opposing Spinda's Attack!"); } if (abilityRight == ABILITY_CONTRARY) { ABILITY_POPUP(opponentRight, ABILITY_CONTRARY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Spinda's Attack rose!"); + MESSAGE("The opposing Spinda's Attack rose!"); } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Mightyena's Intimidate cuts Foe Spinda's attack!"); + MESSAGE("Mightyena's Intimidate cuts the opposing Spinda's Attack!"); } if ((abilityLeft == ABILITY_CONTRARY && abilityRight != ABILITY_CONTRARY) diff --git a/test/battle/ability/overcoat.c b/test/battle/ability/overcoat.c index 26eb90d66b..b73f098e78 100644 --- a/test/battle/ability/overcoat.c +++ b/test/battle/ability/overcoat.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Overcoat blocks powder and spore moves") } SCENE { ABILITY_POPUP(opponent, ABILITY_OVERCOAT); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - MESSAGE("It doesn't affect Foe Pineco…"); + MESSAGE("It doesn't affect the opposing Pineco…"); } } diff --git a/test/battle/ability/own_tempo.c b/test/battle/ability/own_tempo.c index a37bc0024a..4b3c42053b 100644 --- a/test/battle/ability/own_tempo.c +++ b/test/battle/ability/own_tempo.c @@ -13,11 +13,11 @@ SINGLE_BATTLE_TEST("Own Tempo prevents Intimidate but no other stat down changes } SCENE { ABILITY_POPUP(player, ABILITY_INTIMIDATE); ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Own Tempo prevents stat loss!"); + MESSAGE("The opposing Slowpoke's Own Tempo prevents stat loss!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCARY_FACE, player); NONE_OF { ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Own Tempo prevents stat loss!"); + MESSAGE("The opposing Slowpoke's Own Tempo prevents stat loss!"); } } } @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents confusion from moves by the opponent") TURN { MOVE(player, MOVE_CONFUSE_RAY); } } SCENE { ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Own Tempo prevents confusion!"); + MESSAGE("The opposing Slowpoke's Own Tempo prevents confusion!"); } } @@ -52,7 +52,7 @@ SINGLE_BATTLE_TEST("Own Tempo prevents confusion from moves by the user") ANIMATION(ANIM_TYPE_MOVE, MOVE_PETAL_DANCE, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_PETAL_DANCE, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_PETAL_DANCE, opponent); - NONE_OF { MESSAGE("Foe Slowpoke became confused due to fatigue!"); } + NONE_OF { MESSAGE("The opposing Slowpoke became confused due to fatigue!"); } } } @@ -68,7 +68,7 @@ SINGLE_BATTLE_TEST("Own Tempo is ignored by Mold Breaker") } SCENE { NONE_OF { ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Own Tempo prevents confusion!"); + MESSAGE("The opposing Slowpoke's Own Tempo prevents confusion!"); } } } @@ -84,12 +84,12 @@ SINGLE_BATTLE_TEST("Own Tempo cures confusion obtained from an opponent with Mol TURN { MOVE(player, MOVE_CONFUSE_RAY); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Slowpoke became confused!"); + MESSAGE("The opposing Slowpoke became confused!"); NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); } ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Slowpoke's Own Tempo cured its confusion problem!"); + MESSAGE("The opposing Slowpoke's Own Tempo cured its confusion problem!"); } } @@ -107,10 +107,10 @@ SINGLE_BATTLE_TEST("Own Tempo cures confusion if it's obtained via Skill Swap") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player); ABILITY_POPUP(opponent, ABILITY_OWN_TEMPO); - MESSAGE("Foe Wobbuffet's Own Tempo cured its confusion problem!"); + MESSAGE("The opposing Wobbuffet's Own Tempo cured its confusion problem!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } diff --git a/test/battle/ability/parental_bond.c b/test/battle/ability/parental_bond.c index 3ee942e789..a1614a8ffc 100644 --- a/test/battle/ability/parental_bond.c +++ b/test/battle/ability/parental_bond.c @@ -94,7 +94,7 @@ DOUBLE_BATTLE_TEST("Parental Bond does not convert multi-target moves into a two ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft); HP_BAR(opponentLeft); MESSAGE("It doesn't affect Pidgey…"); - MESSAGE("It doesn't affect Foe Pidgey…"); + MESSAGE("It doesn't affect the opposing Pidgey…"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); @@ -149,7 +149,7 @@ SINGLE_BATTLE_TEST("Parental Bond has no affect on multi hit moves and they stil MESSAGE("Kangaskhan has Mega Evolved into Mega Kangaskhan!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } THEN { @@ -176,7 +176,7 @@ SINGLE_BATTLE_TEST("Parental Bond has no affect on multi hit moves and they stil ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); - MESSAGE("Hit 3 time(s)!"); + MESSAGE("The Pokémon was hit 3 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } THEN { @@ -204,7 +204,7 @@ SINGLE_BATTLE_TEST("Parental Bond has no affect on multi hit moves and they stil ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); - MESSAGE("Hit 4 time(s)!"); + MESSAGE("The Pokémon was hit 4 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } THEN { @@ -231,7 +231,7 @@ SINGLE_BATTLE_TEST("Parental Bond has no affect on multi hit moves and they stil ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_COMET_PUNCH, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } THEN { @@ -255,9 +255,9 @@ SINGLE_BATTLE_TEST("Parental Bond Smack Down effect triggers after 2nd hit") MESSAGE("Kangaskhan has Mega Evolved into Mega Kangaskhan!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SMACK_DOWN, player); HP_BAR(opponent); - NOT MESSAGE("Foe Skarmory fell straight down!"); + NOT MESSAGE("The opposing Skarmory fell straight down!"); HP_BAR(opponent); - MESSAGE("Foe Skarmory fell straight down!"); + MESSAGE("The opposing Skarmory fell straight down!"); } THEN { EXPECT_EQ(player->species, SPECIES_KANGASKHAN_MEGA); } @@ -277,7 +277,7 @@ SINGLE_BATTLE_TEST("Parental Bond Snore strikes twice while asleep") ANIMATION(ANIM_TYPE_MOVE, MOVE_SNORE, player); HP_BAR(opponent, captureDamage: &damage[0]); HP_BAR(opponent, captureDamage: &damage[1]); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } THEN { if (B_PARENTAL_BOND_DMG == GEN_6) EXPECT_MUL_EQ(damage[0], Q_4_12(0.5), damage[1]); @@ -286,6 +286,26 @@ SINGLE_BATTLE_TEST("Parental Bond Snore strikes twice while asleep") } } +SINGLE_BATTLE_TEST("Parental Bond only triggers Dragon Tail's target switch out on the second hit") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DRAGON_TAIL].effect == EFFECT_HIT_SWITCH_TARGET); + PLAYER(SPECIES_KANGASKHAN) { Item(ITEM_KANGASKHANITE); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_DRAGON_TAIL, gimmick: GIMMICK_MEGA); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); + HP_BAR(opponent); + HP_BAR(opponent); + MESSAGE("The opposing Wynaut was dragged out!"); + } + THEN { + EXPECT_EQ(player->species, SPECIES_KANGASKHAN_MEGA); + } +} + TO_DO_BATTLE_TEST("Parental Bond tests"); // Temporary TODO: Convert Bulbapedia description into tests. diff --git a/test/battle/ability/pastel_veil.c b/test/battle/ability/pastel_veil.c index 8ea83bbf86..a6b6168547 100644 --- a/test/battle/ability/pastel_veil.c +++ b/test/battle/ability/pastel_veil.c @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Pastel Veil immediately cures Mold Breaker poison") ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC, player); STATUS_ICON(opponent, badPoison: TRUE); ABILITY_POPUP(opponent, ABILITY_PASTEL_VEIL); - MESSAGE("Foe Ponyta's Pastel Veil cured its poison problem!"); + MESSAGE("The opposing Ponyta's Pastel Veil cured its poison problem!"); STATUS_ICON(opponent, none: TRUE); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } @@ -78,7 +78,7 @@ SINGLE_BATTLE_TEST("Pastel Veil prevents Toxic bad poison") } SCENE { MESSAGE("Wobbuffet used Toxic!"); ABILITY_POPUP(opponent, ABILITY_PASTEL_VEIL); - MESSAGE("Foe Ponyta is protected by a pastel veil!"); + MESSAGE("The opposing Ponyta is protected by a pastel veil!"); NOT STATUS_ICON(opponent, badPoison: TRUE); } } @@ -96,7 +96,7 @@ DOUBLE_BATTLE_TEST("Pastel Veil prevents Toxic bad poison on partner") } SCENE { MESSAGE("Wobbuffet used Toxic!"); ABILITY_POPUP(opponentLeft, ABILITY_PASTEL_VEIL); - MESSAGE("Foe Wynaut is protected by a pastel veil!"); + MESSAGE("The opposing Wynaut is protected by a pastel veil!"); NOT STATUS_ICON(opponentRight, badPoison: TRUE); } } @@ -147,7 +147,7 @@ DOUBLE_BATTLE_TEST("Pastel Veil cures partner's poison on initial switch in") } SCENE { MESSAGE("2 sent out Wobbuffet and Ponyta!"); ABILITY_POPUP(opponentRight, ABILITY_PASTEL_VEIL); - MESSAGE("Foe Wobbuffet was cured of its poisoning!"); + MESSAGE("The opposing Wobbuffet was cured of its poisoning!"); STATUS_ICON(opponentLeft, none: TRUE); } } @@ -165,7 +165,7 @@ DOUBLE_BATTLE_TEST("Pastel Veil cures partner's poison on switch in") } SCENE { MESSAGE("2 sent out Ponyta!"); ABILITY_POPUP(opponentRight, ABILITY_PASTEL_VEIL); - MESSAGE("Foe Wobbuffet was cured of its poisoning!"); + MESSAGE("The opposing Wobbuffet was cured of its poisoning!"); STATUS_ICON(opponentLeft, none: TRUE); } } diff --git a/test/battle/ability/poison_point.c b/test/battle/ability/poison_point.c index 26c9c72968..9f9cd5e900 100644 --- a/test/battle/ability/poison_point.c +++ b/test/battle/ability/poison_point.c @@ -18,13 +18,13 @@ SINGLE_BATTLE_TEST("Poison Point inflicts poison on contact") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(opponent, ABILITY_POISON_POINT); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Nidoran♂'s Poison Point!"); + MESSAGE("Wobbuffet was poisoned by the opposing Nidoran♂'s Poison Point!"); STATUS_ICON(player, poison: TRUE); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_POISON_POINT); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Nidoran♂'s Poison Point!"); + MESSAGE("Wobbuffet was poisoned by the opposing Nidoran♂'s Poison Point!"); STATUS_ICON(player, poison: TRUE); } } @@ -45,7 +45,7 @@ SINGLE_BATTLE_TEST("Poison Point triggers 30% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_POISON_POINT); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); - MESSAGE("Wobbuffet was poisoned by Foe Nidoran♂'s Poison Point!"); + MESSAGE("Wobbuffet was poisoned by the opposing Nidoran♂'s Poison Point!"); STATUS_ICON(player, poison: TRUE); } } diff --git a/test/battle/ability/poison_puppeteer.c b/test/battle/ability/poison_puppeteer.c index af5d5389fa..b8124b975b 100644 --- a/test/battle/ability/poison_puppeteer.c +++ b/test/battle/ability/poison_puppeteer.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Poison Puppeteer confuses target if it was poisoned by a dam STATUS_ICON(opponent, poison: TRUE); ABILITY_POPUP(player, ABILITY_POISON_PUPPETEER); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Poison Puppeteer confuses target if it was (badly) poisoned STATUS_ICON(opponent, badPoison: TRUE); ABILITY_POPUP(player, ABILITY_POISON_PUPPETEER); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } @@ -67,7 +67,7 @@ SINGLE_BATTLE_TEST("Poison Puppeteer does not trigger if poison is Toxic Spikes NONE_OF { ABILITY_POPUP(player, ABILITY_POISON_PUPPETEER); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } } diff --git a/test/battle/ability/poison_touch.c b/test/battle/ability/poison_touch.c index b69fa20444..8fb4d243fb 100644 --- a/test/battle/ability/poison_touch.c +++ b/test/battle/ability/poison_touch.c @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Poison Touch has a 30% chance to poison when attacking with ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ABILITY_POPUP(player, ABILITY_POISON_TOUCH); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet was poisoned by Grimer's Poison Touch!"); + MESSAGE("The opposing Wobbuffet was poisoned by Grimer's Poison Touch!"); STATUS_ICON(opponent, poison: TRUE); } } @@ -38,13 +38,13 @@ SINGLE_BATTLE_TEST("Poison Touch only applies when using contact moves") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(player, ABILITY_POISON_TOUCH); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet was poisoned by Grimer's Poison Touch!"); + MESSAGE("The opposing Wobbuffet was poisoned by Grimer's Poison Touch!"); STATUS_ICON(opponent, poison: TRUE); } else { NONE_OF { ABILITY_POPUP(player, ABILITY_POISON_TOUCH); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet was poisoned by Grimer's Poison Touch!"); + MESSAGE("The opposing Wobbuffet was poisoned by Grimer's Poison Touch!"); STATUS_ICON(opponent, poison: TRUE); } } @@ -65,13 +65,13 @@ SINGLE_BATTLE_TEST("Poison Touch applies between multi-hit move hits") ANIMATION(ANIM_TYPE_MOVE, MOVE_ARM_THRUST, player); ABILITY_POPUP(player, ABILITY_POISON_TOUCH); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet was poisoned by Grimer's Poison Touch!"); + MESSAGE("The opposing Wobbuffet was poisoned by Grimer's Poison Touch!"); STATUS_ICON(opponent, poison: TRUE); - MESSAGE("Foe Wobbuffet's Pecha Berry cured poison!"); + MESSAGE("The opposing Wobbuffet's Pecha Berry cured its poison!"); STATUS_ICON(opponent, poison: FALSE); ABILITY_POPUP(player, ABILITY_POISON_TOUCH); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet was poisoned by Grimer's Poison Touch!"); + MESSAGE("The opposing Wobbuffet was poisoned by Grimer's Poison Touch!"); STATUS_ICON(opponent, poison: TRUE); } } diff --git a/test/battle/ability/prankster.c b/test/battle/ability/prankster.c index d5fae3edb7..c569506729 100644 --- a/test/battle/ability/prankster.c +++ b/test/battle/ability/prankster.c @@ -77,11 +77,11 @@ DOUBLE_BATTLE_TEST("Prankster-affected moves called via Instruct do not affect D } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerLeft); - MESSAGE("It doesn't affect Foe Umbreon…"); + MESSAGE("It doesn't affect the opposing Umbreon…"); MESSAGE("Wobbuffet used Instruct!"); MESSAGE("Volbeat used Confuse Ray!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerLeft); - MESSAGE("It doesn't affect Foe Umbreon…"); + MESSAGE("It doesn't affect the opposing Umbreon…"); } } @@ -114,7 +114,7 @@ DOUBLE_BATTLE_TEST("Moves called via Prankster-affected After you affect Dark-ty ANIMATION(ANIM_TYPE_MOVE, MOVE_AFTER_YOU, playerLeft); MESSAGE("Wobbuffet used Confuse Ray!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, playerRight); - MESSAGE("Foe Umbreon became confused!"); + MESSAGE("The opposing Umbreon became confused!"); } } @@ -156,10 +156,10 @@ SINGLE_BATTLE_TEST("Prankster-affected moves can still be bounced back by Dark-t TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_CONFUSE_RAY); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); - MESSAGE("Foe Volbeat used Confuse Ray!"); - MESSAGE("Foe Volbeat's Confuse Ray was bounced back by MAGIC COAT!"); + MESSAGE("The opposing Volbeat used Confuse Ray!"); + MESSAGE("Umbreon bounced the Confuse Ray back!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Volbeat became confused!"); + MESSAGE("The opposing Volbeat became confused!"); } } @@ -178,14 +178,14 @@ SINGLE_BATTLE_TEST("Prankster-affected moves which are reflected by Magic Coat c } SCENE { MESSAGE("Sableye used Magic Coat!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); - MESSAGE("Foe Murkrow used Confuse Ray!"); - MESSAGE("Foe Murkrow's Confuse Ray was bounced back by MAGIC COAT!"); + MESSAGE("The opposing Murkrow used Confuse Ray!"); + MESSAGE("Sableye bounced the Confuse Ray back!"); if (sableyeAbility == ABILITY_PRANKSTER) { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("It doesn't affect Foe Murkrow…"); + MESSAGE("It doesn't affect the opposing Murkrow…"); } else { ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Murkrow became confused!"); + MESSAGE("The opposing Murkrow became confused!"); } } } @@ -198,7 +198,7 @@ SINGLE_BATTLE_TEST("Prankster-affected moves can still be bounced back by a Dark } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); MOVE(opponent, MOVE_CONFUSE_RAY); } } SCENE { - MESSAGE("Foe Volbeat's Confuse Ray was bounced back by Absol's Magic Bounce!"); + MESSAGE("The opposing Volbeat's Confuse Ray was bounced back by Absol's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); } } @@ -211,9 +211,9 @@ SINGLE_BATTLE_TEST("Prankster-affected moves that are bounced back by Magic Boun } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); MOVE(opponent, MOVE_CONFUSE_RAY); } } SCENE { - MESSAGE("Foe Murkrow's Confuse Ray was bounced back by Absol's Magic Bounce!"); + MESSAGE("The opposing Murkrow's Confuse Ray was bounced back by Absol's Magic Bounce!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Murkrow became confused!"); + MESSAGE("The opposing Murkrow became confused!"); } } diff --git a/test/battle/ability/primordial_sea.c b/test/battle/ability/primordial_sea.c index 4fd01613b0..643dca161c 100644 --- a/test/battle/ability/primordial_sea.c +++ b/test/battle/ability/primordial_sea.c @@ -16,13 +16,13 @@ SINGLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves") TURN { MOVE(opponent, MOVE_EMBER); } TURN { MOVE(opponent, MOVE_EMBER); } } SCENE { - MESSAGE("Foe Wobbuffet used Ember!"); + MESSAGE("The opposing Wobbuffet used Ember!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent); - MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!"); + MESSAGE("The Fire-type attack fizzled out in the heavy rain!"); NOT HP_BAR(player); - MESSAGE("Foe Wobbuffet used Ember!"); + MESSAGE("The opposing Wobbuffet used Ember!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent); - MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!"); + MESSAGE("The Fire-type attack fizzled out in the heavy rain!"); NOT HP_BAR(player); } THEN { EXPECT_EQ(player->hp, player->maxHP); @@ -42,10 +42,10 @@ DOUBLE_BATTLE_TEST("Primordial Sea blocks damaging Fire-type moves and prints th } WHEN { TURN { MOVE(opponentLeft, MOVE_ERUPTION); } } SCENE { - MESSAGE("Foe Wobbuffet used Eruption!"); + MESSAGE("The opposing Wobbuffet used Eruption!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ERUPTION, opponentLeft); - MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!"); - NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!"); + MESSAGE("The Fire-type attack fizzled out in the heavy rain!"); + NOT MESSAGE("The Fire-type attack fizzled out in the heavy rain!"); } THEN { EXPECT_EQ(playerLeft->hp, playerLeft->maxHP); EXPECT_EQ(playerRight->hp, playerRight->maxHP); @@ -60,7 +60,7 @@ SINGLE_BATTLE_TEST("Primordial Sea does not block a move if pokemon is asleep an } WHEN { TURN { MOVE(opponent, MOVE_EMBER); } } SCENE { - NOT MESSAGE("The Fire-type attack fizzled out\nin the heavy rain!"); - MESSAGE("Foe Wobbuffet is fast asleep."); + NOT MESSAGE("The Fire-type attack fizzled out in the heavy rain!"); + MESSAGE("The opposing Wobbuffet is fast asleep."); } } \ No newline at end of file diff --git a/test/battle/ability/protean.c b/test/battle/ability/protean.c index 936c341f89..93162f7398 100644 --- a/test/battle/ability/protean.c +++ b/test/battle/ability/protean.c @@ -20,15 +20,15 @@ SINGLE_BATTLE_TEST("Protean changes the type of the user only once per switch in TURN { MOVE(opponent, MOVE_WATER_GUN); } } SCENE { ABILITY_POPUP(opponent, ABILITY_PROTEAN); - MESSAGE("Foe Kecleon transformed into the Water type!"); + MESSAGE("The opposing Kecleon transformed into the Water type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); NONE_OF { ABILITY_POPUP(opponent, ABILITY_PROTEAN); - MESSAGE("Foe Kecleon transformed into the Normal type!"); + MESSAGE("The opposing Kecleon transformed into the Normal type!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(opponent, ABILITY_PROTEAN); - MESSAGE("Foe Kecleon transformed into the Water type!"); + MESSAGE("The opposing Kecleon transformed into the Water type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); } } diff --git a/test/battle/ability/quick_draw.c b/test/battle/ability/quick_draw.c index 9c5afb6193..ef15801bff 100644 --- a/test/battle/ability/quick_draw.c +++ b/test/battle/ability/quick_draw.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Quick Draw has a 30% chance of going first") } SCENE { ABILITY_POPUP(player, ABILITY_QUICK_DRAW); MESSAGE("Slowbro used Tackle!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } } @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Quick Draw does not activate 70% of the time") TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_TACKLE); } } SCENE { NOT ABILITY_POPUP(player, ABILITY_QUICK_DRAW); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Slowbro used Tackle!"); } } diff --git a/test/battle/ability/rattled.c b/test/battle/ability/rattled.c index fed99b775d..5d3e47db33 100644 --- a/test/battle/ability/rattled.c +++ b/test/battle/ability/rattled.c @@ -32,22 +32,22 @@ SINGLE_BATTLE_TEST("Rattled boosts speed by 1 when hit by Bug, Dark or Ghost typ if (move != MOVE_TACKLE) { ABILITY_POPUP(opponent, ABILITY_RATTLED); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Sudowoodo's Speed rose!"); + MESSAGE("The opposing Sudowoodo's Speed rose!"); } - MESSAGE("Foe Sudowoodo used Celebrate!"); + MESSAGE("The opposing Sudowoodo used Celebrate!"); // Sudowoodo is now faster if (move != MOVE_TACKLE){ - MESSAGE("Foe Sudowoodo used Celebrate!"); + MESSAGE("The opposing Sudowoodo used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); ABILITY_POPUP(opponent, ABILITY_RATTLED); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Sudowoodo's Speed rose!"); + MESSAGE("The opposing Sudowoodo's Speed rose!"); } else { ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); - MESSAGE("Foe Sudowoodo used Celebrate!"); + MESSAGE("The opposing Sudowoodo used Celebrate!"); } } } @@ -63,10 +63,10 @@ SINGLE_BATTLE_TEST("Rattled boosts speed by 1 when affected by Intimidate") } SCENE { ABILITY_POPUP(player, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Gyarados's Intimidate cuts Foe Sudowoodo's attack!"); + MESSAGE("Gyarados's Intimidate cuts the opposing Sudowoodo's Attack!"); ABILITY_POPUP(opponent, ABILITY_RATTLED); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Sudowoodo's Speed rose!"); + MESSAGE("The opposing Sudowoodo's Speed rose!"); } } @@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("Rattled triggers correctly when hit by U-Turn") // Specific HP_BAR(opponent); ABILITY_POPUP(opponent, ABILITY_RATTLED); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Sudowoodo's Speed rose!"); + MESSAGE("The opposing Sudowoodo's Speed rose!"); SEND_IN_MESSAGE("Wynaut"); } } diff --git a/test/battle/ability/sap_sipper.c b/test/battle/ability/sap_sipper.c index b253bfaa84..d691d4e91a 100644 --- a/test/battle/ability/sap_sipper.c +++ b/test/battle/ability/sap_sipper.c @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Sap Sipper does not increase Attack if already maxed") { GIVEN { PLAYER(SPECIES_MARILL) { Ability(ABILITY_SAP_SIPPER); } - OPPONENT(SPECIES_WOBBUFFET) { Speed(1); } + OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_BELLY_DRUM); MOVE(opponent, MOVE_VINE_WHIP); } } SCENE { @@ -67,14 +67,14 @@ SINGLE_BATTLE_TEST("Sap Sipper blocks multi-hit grass type moves") } WHEN { TURN { MOVE(opponent, MOVE_BULLET_SEED); } } SCENE { - MESSAGE("Foe Shellder used Bullet Seed!"); + MESSAGE("The opposing Shellder used Bullet Seed!"); ABILITY_POPUP(player, ABILITY_SAP_SIPPER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Marill's Attack rose!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); HP_BAR(player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } } diff --git a/test/battle/ability/schooling.c b/test/battle/ability/schooling.c index efa38cbb68..19c2b14c8f 100644 --- a/test/battle/ability/schooling.c +++ b/test/battle/ability/schooling.c @@ -25,7 +25,7 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is 25 ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); } MESSAGE("Wishiwashi used Celebrate!"); - MESSAGE("Foe Wobbuffet used Super Fang!"); + MESSAGE("The opposing Wobbuffet used Super Fang!"); HP_BAR(player); if (level >= 20) { @@ -64,7 +64,7 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is ov ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); } MESSAGE("Wishiwashi used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { if (level >= 20 && overQuarterHP) EXPECT_EQ(player->species, SPECIES_WISHIWASHI_SCHOOL); @@ -92,7 +92,7 @@ SINGLE_BATTLE_TEST("Schooling switches Level 20+ Wishiwashi's form when HP is he TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_HEAL_PULSE); } } SCENE { MESSAGE("Wishiwashi used Celebrate!"); - MESSAGE("Foe Wobbuffet used Heal Pulse!"); + MESSAGE("The opposing Wobbuffet used Heal Pulse!"); HP_BAR(player); if (level >= 20) { diff --git a/test/battle/ability/scrappy.c b/test/battle/ability/scrappy.c index 22b6660b69..26a135860c 100644 --- a/test/battle/ability/scrappy.c +++ b/test/battle/ability/scrappy.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Scrappy prevents intimidate") ABILITY_POPUP(player, ABILITY_INTIMIDATE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } ABILITY_POPUP(opponent, ABILITY_SCRAPPY); - MESSAGE("Foe Kangaskhan's Scrappy prevents stat loss!"); + MESSAGE("The opposing Kangaskhan's Scrappy prevents stat loss!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -61,6 +61,6 @@ SINGLE_BATTLE_TEST("Scrappy doesn't bypass a Ghost-type's Wonder Guard") HP_BAR(opponent); } ABILITY_POPUP(opponent, ABILITY_WONDER_GUARD); - MESSAGE("Foe Shedinja avoided damage with Wonder Guard!"); + MESSAGE("The opposing Shedinja avoided damage with Wonder Guard!"); } } diff --git a/test/battle/ability/seed_sower.c b/test/battle/ability/seed_sower.c index 64c21dbdba..5134bc1311 100644 --- a/test/battle/ability/seed_sower.c +++ b/test/battle/ability/seed_sower.c @@ -9,7 +9,7 @@ SINGLE_BATTLE_TEST("Seed Sower sets up Grassy Terrain when hit by an attack") } WHEN { TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); HP_BAR(player); ABILITY_POPUP(player); MESSAGE("Grass grew to cover the battlefield!"); @@ -19,7 +19,6 @@ SINGLE_BATTLE_TEST("Seed Sower sets up Grassy Terrain when hit by an attack") #define ABILITY_PARAM(n)(abilities[n] = (k == n) ? ABILITY_SEED_SOWER : ABILITY_HARVEST) #define MOVE_HIT(target, position) \ { \ - HP_BAR(target); \ if (abilities[position] == ABILITY_SEED_SOWER) { \ ABILITY_POPUP(target); \ MESSAGE("Grass grew to cover the battlefield!");\ @@ -68,9 +67,13 @@ DOUBLE_BATTLE_TEST("Multi-target moves hit correct battlers after Seed Sower is if (usedMove == MOVE_HYPER_VOICE) { if ((attacker & BIT_SIDE) == B_SIDE_OPPONENT) { if (attacker == B_POSITION_OPPONENT_LEFT) { + HP_BAR(playerLeft); + HP_BAR(playerRight); MOVE_HIT(playerLeft, B_POSITION_PLAYER_LEFT); MOVE_HIT(playerRight, B_POSITION_PLAYER_RIGHT); } else { + HP_BAR(playerLeft); + HP_BAR(playerRight); MOVE_HIT(playerRight, B_POSITION_PLAYER_RIGHT); MOVE_HIT(playerLeft, B_POSITION_PLAYER_LEFT); } @@ -80,9 +83,13 @@ DOUBLE_BATTLE_TEST("Multi-target moves hit correct battlers after Seed Sower is } } else { if (attacker == B_POSITION_PLAYER_LEFT) { + HP_BAR(opponentLeft); + HP_BAR(opponentRight); MOVE_HIT(opponentLeft, B_POSITION_OPPONENT_LEFT); MOVE_HIT(opponentRight, B_POSITION_OPPONENT_RIGHT); } else { + HP_BAR(opponentLeft); + HP_BAR(opponentRight); MOVE_HIT(opponentRight, B_POSITION_OPPONENT_RIGHT); MOVE_HIT(opponentLeft, B_POSITION_OPPONENT_LEFT); } @@ -94,24 +101,36 @@ DOUBLE_BATTLE_TEST("Multi-target moves hit correct battlers after Seed Sower is } else { // SURF switch (attacker) { case B_POSITION_PLAYER_LEFT: + HP_BAR(opponentLeft); + HP_BAR(playerRight); + HP_BAR(opponentRight); MOVE_HIT(opponentLeft, B_POSITION_OPPONENT_LEFT); MOVE_HIT(playerRight, B_POSITION_PLAYER_RIGHT); MOVE_HIT(opponentRight, B_POSITION_OPPONENT_RIGHT); NOT HP_BAR(playerLeft); break; case B_POSITION_OPPONENT_LEFT: + HP_BAR(playerLeft); + HP_BAR(playerRight); + HP_BAR(opponentRight); MOVE_HIT(playerLeft, B_POSITION_PLAYER_LEFT); MOVE_HIT(playerRight, B_POSITION_PLAYER_RIGHT); MOVE_HIT(opponentRight, B_POSITION_OPPONENT_RIGHT); NOT HP_BAR(opponentLeft); break; case B_POSITION_PLAYER_RIGHT: + HP_BAR(playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); MOVE_HIT(playerLeft, B_POSITION_PLAYER_LEFT); MOVE_HIT(opponentLeft, B_POSITION_OPPONENT_LEFT); MOVE_HIT(opponentRight, B_POSITION_OPPONENT_RIGHT); NOT HP_BAR(playerRight); break; case B_POSITION_OPPONENT_RIGHT: + HP_BAR(playerLeft); + HP_BAR(opponentLeft); + HP_BAR(playerRight); MOVE_HIT(playerLeft, B_POSITION_PLAYER_LEFT); MOVE_HIT(opponentLeft, B_POSITION_OPPONENT_LEFT); MOVE_HIT(playerRight, B_POSITION_PLAYER_RIGHT); diff --git a/test/battle/ability/shed_skin.c b/test/battle/ability/shed_skin.c index d3030b9baf..e4ab6b736c 100644 --- a/test/battle/ability/shed_skin.c +++ b/test/battle/ability/shed_skin.c @@ -1,11 +1,13 @@ #include "global.h" #include "test/battle.h" -SINGLE_BATTLE_TEST("Shed Skin triggers 30% of the time") +SINGLE_BATTLE_TEST("Shed Skin triggers 33% of the time") { - PASSES_RANDOMLY(3, 10, RNG_SHED_SKIN); + if (B_ABILITY_TRIGGER_CHANCE == GEN_4) + PASSES_RANDOMLY(30, 100, RNG_SHED_SKIN); + else + PASSES_RANDOMLY(33, 100, RNG_SHED_SKIN); GIVEN { - ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_4); ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_ARBOK) { Status1(STATUS1_POISON); Ability(ABILITY_SHED_SKIN); } @@ -13,7 +15,7 @@ SINGLE_BATTLE_TEST("Shed Skin triggers 30% of the time") TURN; } SCENE { ABILITY_POPUP(opponent, ABILITY_SHED_SKIN); - MESSAGE("Foe Arbok's Shed Skin cured its poison problem!"); + MESSAGE("The opposing Arbok's Shed Skin cured its poison problem!"); STATUS_ICON(opponent, poison: FALSE); } } diff --git a/test/battle/ability/sheer_force.c b/test/battle/ability/sheer_force.c index c144c8596f..97dee48a31 100644 --- a/test/battle/ability/sheer_force.c +++ b/test/battle/ability/sheer_force.c @@ -51,13 +51,13 @@ SINGLE_BATTLE_TEST("Sheer Force boosts power, but removes secondary effects of m STATUS_ICON(opponent, STATUS1_TOXIC_POISON); STATUS_ICON(opponent, STATUS1_PARALYSIS); MESSAGE("Wobbuffet is confused!"); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); } // Volt Tackle/Flare Blitz edge case: recoil happens, but target isn't statused if (gMovesInfo[move].recoil > 0) { HP_BAR(player); - MESSAGE("Tauros is hit with recoil!"); + MESSAGE("Tauros was damaged by the recoil!"); } } } FINALLY { diff --git a/test/battle/ability/shield_dust.c b/test/battle/ability/shield_dust.c index d1785bd69e..9374a5f018 100644 --- a/test/battle/ability/shield_dust.c +++ b/test/battle/ability/shield_dust.c @@ -28,12 +28,12 @@ SINGLE_BATTLE_TEST("Shield Dust blocks secondary effects") ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); NONE_OF { - MESSAGE("Foe Vivillon is paralyzed! It may be unable to move!"); - MESSAGE("Foe Vivillon was burned!"); - MESSAGE("Foe Vivillon was poisoned!"); - MESSAGE("Foe Vivillon flinched!"); + MESSAGE("The opposing Vivillon is paralyzed, so it may be unable to move!"); + MESSAGE("The opposing Vivillon was burned!"); + MESSAGE("The opposing Vivillon was poisoned!"); + MESSAGE("The opposing Vivillon flinched and couldn't move!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Vivillon was prevented from healing!"); + MESSAGE("The opposing Vivillon was prevented from healing!"); } } THEN { // Can't find good way to test trapping EXPECT(!(opponent->status2 & STATUS2_ESCAPE_PREVENTION)); @@ -64,16 +64,16 @@ SINGLE_BATTLE_TEST("Shield Dust does not block primary effects") switch (move) { case MOVE_INFESTATION: - MESSAGE("Foe Vivillon has been afflicted with an infestation by Wobbuffet!"); + MESSAGE("The opposing Vivillon has been afflicted with an infestation by Wobbuffet!"); break; case MOVE_THOUSAND_ARROWS: - MESSAGE("Foe Vivillon fell straight down!"); + MESSAGE("The opposing Vivillon fell straight down!"); break; case MOVE_JAW_LOCK: MESSAGE("Neither Pokémon can run away!"); break; case MOVE_PAY_DAY: - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); break; } } THEN { // Can't find good way to test trapping @@ -137,11 +137,11 @@ DOUBLE_BATTLE_TEST("Shield Dust does or does not block Sparkling Aria depending } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPARKLING_ARIA, playerLeft); if (moveToUse == MOVE_TACKLE) { - MESSAGE("Foe Vivillon's burn was healed."); + MESSAGE("The opposing Vivillon's burn was cured!"); STATUS_ICON(opponentLeft, none: TRUE); } else { NONE_OF { - MESSAGE("Foe Vivillon's burn was healed."); + MESSAGE("The opposing Vivillon's burn was cured!"); STATUS_ICON(opponentLeft, none: TRUE); } } @@ -159,7 +159,7 @@ SINGLE_BATTLE_TEST("Shield Dust blocks Sparkling Aria in singles") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPARKLING_ARIA, player); NONE_OF { - MESSAGE("Foe Vivillon's burn was healed."); + MESSAGE("The opposing Vivillon's burn was cured!"); STATUS_ICON(opponent, none: TRUE); } } diff --git a/test/battle/ability/speed_boost.c b/test/battle/ability/speed_boost.c index 0cc82e8064..b8c9bd4966 100644 --- a/test/battle/ability/speed_boost.c +++ b/test/battle/ability/speed_boost.c @@ -10,11 +10,11 @@ SINGLE_BATTLE_TEST("Speed Boost gradually boosts Speed") TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_CELEBRATE); } TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Torchic used Celebrate!"); ABILITY_POPUP(player, ABILITY_SPEED_BOOST); - MESSAGE("Torchic's Speed Boost raised its SPEED!"); + MESSAGE("Torchic's Speed Boost raised its Speed!"); MESSAGE("Torchic used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } } diff --git a/test/battle/ability/stalwart.c b/test/battle/ability/stalwart.c index 289f25dd1c..6f8acd6d82 100644 --- a/test/battle/ability/stalwart.c +++ b/test/battle/ability/stalwart.c @@ -43,7 +43,7 @@ DOUBLE_BATTLE_TEST("Stalwart stops Lightning Rod and Storm Drain from redirectin NONE_OF { ABILITY_POPUP(opponentLeft, ability); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Raichu's Sp. Atk rose!"); + MESSAGE("The opposing Raichu's Sp. Atk rose!"); } } else { HP_BAR(opponentRight); diff --git a/test/battle/ability/stamina.c b/test/battle/ability/stamina.c index e6e500cd79..0dce4729b2 100644 --- a/test/battle/ability/stamina.c +++ b/test/battle/ability/stamina.c @@ -67,18 +67,19 @@ DOUBLE_BATTLE_TEST("Stamina activates correctly for every battler with the abili ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponentLeft); HP_BAR(playerLeft); + HP_BAR(playerRight); + NOT HP_BAR(opponentLeft); // We need to check the attacker itself does NOT get damaged. There was an issue when the targets would get overwritten by the Stamina's stat raise. + HP_BAR(opponentRight); + if (abilityLeft == ABILITY_STAMINA) { STAMINA_STAT_RAISE(playerLeft, "Wobbuffet's Defense rose!"); } - NOT HP_BAR(opponentLeft); // We need to check the attacker itself does NOT get damaged. There was an issue when the targets would get overwritten by the Stamina's stat raise. - HP_BAR(playerRight); if (abilityRight == ABILITY_STAMINA) { STAMINA_STAT_RAISE(playerRight, "Wobbuffet's Defense rose!"); } - NOT HP_BAR(opponentLeft); // We need to check the attacker itself does NOT get damaged. There was an issue when the targets would get overwritten by the Stamina's stat raise. - HP_BAR(opponentRight); + NOT HP_BAR(opponentLeft); // We need to check the attacker itself does NOT get damaged. There was an issue when the targets would get overwritten by the Stamina's stat raise. } THEN { EXPECT_NE(playerLeft->hp, playerLeft->maxHP); @@ -98,8 +99,8 @@ SINGLE_BATTLE_TEST("Stamina activates for every hit of a multi hit move") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, player); HP_BAR(opponent); - STAMINA_STAT_RAISE(opponent, "Foe Mudbray's Defense rose!"); - STAMINA_STAT_RAISE(opponent, "Foe Mudbray's Defense rose!"); + STAMINA_STAT_RAISE(opponent, "The opposing Mudbray's Defense rose!"); + STAMINA_STAT_RAISE(opponent, "The opposing Mudbray's Defense rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2); } @@ -114,7 +115,7 @@ SINGLE_BATTLE_TEST("Stamina is not activated by users own Substitute") TURN { MOVE(player, MOVE_SUBSTITUTE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); - MESSAGE("Mudbray made a SUBSTITUTE!"); + MESSAGE("Mudbray put in a substitute!"); NONE_OF { ABILITY_POPUP(player, ABILITY_STAMINA); MESSAGE("Mudbray's Defense rose!"); diff --git a/test/battle/ability/stance_change.c b/test/battle/ability/stance_change.c new file mode 100644 index 0000000000..8221e16385 --- /dev/null +++ b/test/battle/ability/stance_change.c @@ -0,0 +1,84 @@ +#include "global.h" +#include "test/battle.h" + + +SINGLE_BATTLE_TEST("Stance Change changes Aegislash from Shield to Blade when using a damaging move") +{ + u16 move; + PARAMETRIZE { move = MOVE_TACKLE; } + PARAMETRIZE { move = MOVE_SWIFT; } + PARAMETRIZE { move = MOVE_GROWL; } + GIVEN { + PLAYER(SPECIES_AEGISLASH_SHIELD); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + if (move != MOVE_GROWL) { + ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + } else { + NONE_OF { + ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + } + } + ANIMATION(ANIM_TYPE_MOVE, move, player); + } THEN { + if (move != MOVE_GROWL) + EXPECT_EQ(player->species, SPECIES_AEGISLASH_BLADE); + else + EXPECT_EQ(player->species, SPECIES_AEGISLASH_SHIELD); + } +} + +SINGLE_BATTLE_TEST("Stance Change changes Aegislash from Blade to Shield when using King's Shield") +{ + u16 move; + PARAMETRIZE { move = MOVE_PROTECT; } + PARAMETRIZE { move = MOVE_KINGS_SHIELD; } + GIVEN { + PLAYER(SPECIES_AEGISLASH_BLADE); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, move); } + } SCENE { + if (move == MOVE_KINGS_SHIELD) { + ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + } else { + NONE_OF { + ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + } + } + ANIMATION(ANIM_TYPE_MOVE, move, player); + } THEN { + if (move == MOVE_KINGS_SHIELD) + EXPECT_EQ(player->species, SPECIES_AEGISLASH_SHIELD); + else + EXPECT_EQ(player->species, SPECIES_AEGISLASH_BLADE); + } +} + +SINGLE_BATTLE_TEST("Stance Change doesn't change Aegislash to Shield if King's Shield is called by a different move - Sleep Talk") +{ + KNOWN_FAILING; // Currently does change form + GIVEN { + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + PLAYER(SPECIES_AEGISLASH_BLADE) { Moves(MOVE_KINGS_SHIELD, MOVE_SLEEP_TALK); Status1(STATUS1_SLEEP_TURN(3)); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SLEEP_TALK); } + } SCENE { + NONE_OF { + ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_KINGS_SHIELD, player); + } THEN { + EXPECT_EQ(player->species, SPECIES_AEGISLASH_BLADE); + } +} + +TO_DO_BATTLE_TEST("Stance Change doesn't change Aegislash to Shield if King's Shield is called by a different move - Me First"); diff --git a/test/battle/ability/static.c b/test/battle/ability/static.c index 2e74db3e14..3c5d042cd0 100644 --- a/test/battle/ability/static.c +++ b/test/battle/ability/static.c @@ -17,13 +17,13 @@ SINGLE_BATTLE_TEST("Static inflicts paralysis on contact") if (gMovesInfo[move].makesContact) { ABILITY_POPUP(opponent, ABILITY_STATIC); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player); - MESSAGE("Foe Pikachu's Static paralyzed Wobbuffet! It may be unable to move!"); + MESSAGE("The opposing Pikachu's Static paralyzed Wobbuffet, so it may be unable to move!"); STATUS_ICON(player, paralysis: TRUE); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_STATIC); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player); - MESSAGE("Foe Pikachu's Static paralyzed Wobbuffet! It may be unable to move!"); + MESSAGE("The opposing Pikachu's Static paralyzed Wobbuffet, so it may be unable to move!"); STATUS_ICON(player, paralysis: TRUE); } } @@ -43,7 +43,7 @@ SINGLE_BATTLE_TEST("Static triggers 30% of the time") } SCENE { ABILITY_POPUP(opponent, ABILITY_STATIC); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, player); - MESSAGE("Foe Pikachu's Static paralyzed Wobbuffet! It may be unable to move!"); + MESSAGE("The opposing Pikachu's Static paralyzed Wobbuffet, so it may be unable to move!"); STATUS_ICON(player, paralysis: TRUE); } } diff --git a/test/battle/ability/steam_engine.c b/test/battle/ability/steam_engine.c new file mode 100644 index 0000000000..bda470af2e --- /dev/null +++ b/test/battle/ability/steam_engine.c @@ -0,0 +1,23 @@ +#include "global.h" +#include "test/battle.h" + +SINGLE_BATTLE_TEST("Steam Engine raises speed when hit by a Fire or Water move") +{ + u16 move; + + PARAMETRIZE { move = MOVE_EMBER; } + PARAMETRIZE { move = MOVE_WATER_GUN; } + + GIVEN { + PLAYER(SPECIES_COALOSSAL) { Ability(ABILITY_STEAM_ENGINE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, move); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, move, opponent); + ABILITY_POPUP(player, ABILITY_STEAM_ENGINE); + MESSAGE("Coalossal's Speed drastically rose!"); + } THEN { + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 6); + } +} diff --git a/test/battle/ability/stench.c b/test/battle/ability/stench.c index f0c0e24414..76b36f3ff3 100644 --- a/test/battle/ability/stench.c +++ b/test/battle/ability/stench.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Stench has a 10% chance to flinch") } WHEN { TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } } @@ -27,7 +27,7 @@ SINGLE_BATTLE_TEST("Stench does not stack with King's Rock") } WHEN { TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } } @@ -51,7 +51,7 @@ DOUBLE_BATTLE_TEST("Stench only triggers if target takes damage") MOVE(playerRight, MOVE_TACKLE, target: opponentRight); } } SCENE { - NONE_OF { MESSAGE("Wynaut flinched!"); } + NONE_OF { MESSAGE("Wynaut flinched and couldn't move!"); } } } @@ -72,9 +72,9 @@ DOUBLE_BATTLE_TEST("Stench doesn't trigger if partner uses a move") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, playerLeft); - MESSAGE("Foe Grimer flinched!"); + MESSAGE("The opposing Grimer flinched and couldn't move!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); - NOT MESSAGE("Wynaut flinched!"); + NOT MESSAGE("Wynaut flinched and couldn't move!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); } } diff --git a/test/battle/ability/sticky_hold.c b/test/battle/ability/sticky_hold.c index 2c7cc09535..708c691c80 100644 --- a/test/battle/ability/sticky_hold.c +++ b/test/battle/ability/sticky_hold.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Sticky Hold prevents item theft") } SCENE { MESSAGE("Ursaluna used Thief!"); ABILITY_POPUP(opponent, ABILITY_STICKY_HOLD); - MESSAGE("Foe Gastrodon's Sticky Hold made Thief ineffective!"); + MESSAGE("The opposing Gastrodon's Sticky Hold made Thief ineffective!"); } } diff --git a/test/battle/ability/storm_drain.c b/test/battle/ability/storm_drain.c index 01f97de6fc..b4d5a2c169 100644 --- a/test/battle/ability/storm_drain.c +++ b/test/battle/ability/storm_drain.c @@ -17,12 +17,12 @@ SINGLE_BATTLE_TEST("Storm Drain absorbs Water-type moves and increases the Sp. A }; ABILITY_POPUP(opponent, ABILITY_STORM_DRAIN); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Gastrodon's Sp. Atk rose!"); + MESSAGE("The opposing Gastrodon's Sp. Atk rose!"); } else { NONE_OF { ABILITY_POPUP(opponent, ABILITY_STORM_DRAIN); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Gastrodon's Sp. Atk rose!"); + MESSAGE("The opposing Gastrodon's Sp. Atk rose!"); }; ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, player); HP_BAR(opponent); @@ -54,10 +54,10 @@ DOUBLE_BATTLE_TEST("Storm Drain forces single-target Water-type moves to target }; ABILITY_POPUP(opponentLeft, ABILITY_STORM_DRAIN); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Gastrodon's Sp. Atk rose!"); + MESSAGE("The opposing Gastrodon's Sp. Atk rose!"); ABILITY_POPUP(opponentLeft, ABILITY_STORM_DRAIN); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Gastrodon's Sp. Atk rose!"); + MESSAGE("The opposing Gastrodon's Sp. Atk rose!"); } else { NONE_OF { HP_BAR(opponentRight); diff --git a/test/battle/ability/sturdy.c b/test/battle/ability/sturdy.c index b90be82098..b79fd5e921 100644 --- a/test/battle/ability/sturdy.c +++ b/test/battle/ability/sturdy.c @@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Sturdy prevents OHKO moves") } WHEN { TURN { MOVE(opponent, MOVE_FISSURE); } } SCENE { - MESSAGE("Foe Wobbuffet used Fissure!"); + MESSAGE("The opposing Wobbuffet used Fissure!"); ABILITY_POPUP(player, ABILITY_STURDY); MESSAGE("Geodude was protected by Sturdy!"); } THEN { diff --git a/test/battle/ability/supersweet_syrup.c b/test/battle/ability/supersweet_syrup.c index 6a2fd4fd76..4ff8c462ba 100644 --- a/test/battle/ability/supersweet_syrup.c +++ b/test/battle/ability/supersweet_syrup.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Supersweet Syrup lowers evasion once per battle by one stage TURN { SWITCH(opponent, 0); } } SCENE { ABILITY_POPUP(opponent, ABILITY_SUPERSWEET_SYRUP); - MESSAGE("A supersweet aroma is wafting from the syrup covering Foe Dipplin!"); + MESSAGE("A supersweet aroma is wafting from the syrup covering the opposing Dipplin!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("2 withdrew Dipplin!"); MESSAGE("2 withdrew Wobbuffet!"); @@ -37,7 +37,7 @@ DOUBLE_BATTLE_TEST("Supersweet Syrup lowers evasion of both opposing mon's in ba TURN { } } SCENE { ABILITY_POPUP(opponentLeft, ABILITY_SUPERSWEET_SYRUP); - MESSAGE("A supersweet aroma is wafting from the syrup covering Foe Dipplin!"); + MESSAGE("A supersweet aroma is wafting from the syrup covering the opposing Dipplin!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); } THEN { @@ -66,7 +66,7 @@ SINGLE_BATTLE_TEST("Supersweet Syrup can not further lower opponents evasion if ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Oddish's evasiveness fell!"); } - MESSAGE("Oddish's evasiveness won't go lower!"); + MESSAGE("Oddish's evasiveness won't go any lower!"); } THEN { EXPECT_EQ(player->statStages[STAT_EVASION], MIN_STAT_STAGE); } diff --git a/test/battle/ability/supreme_overlord.c b/test/battle/ability/supreme_overlord.c index dcaaa494a0..f8868b4afb 100644 --- a/test/battle/ability/supreme_overlord.c +++ b/test/battle/ability/supreme_overlord.c @@ -130,6 +130,6 @@ SINGLE_BATTLE_TEST("Supreme Overlord's message displays correctly after all batt SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Kingambit!"); ABILITY_POPUP(opponent, ABILITY_SUPREME_OVERLORD); - MESSAGE("Foe Kingambit gained strength from the fallen!"); + MESSAGE("The opposing Kingambit gained strength from the fallen!"); } } diff --git a/test/battle/ability/sword_of_ruin.c b/test/battle/ability/sword_of_ruin.c index 02eec69ed8..3498522423 100644 --- a/test/battle/ability/sword_of_ruin.c +++ b/test/battle/ability/sword_of_ruin.c @@ -70,6 +70,6 @@ SINGLE_BATTLE_TEST("Sword of Ruin's message displays correctly after all battler SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Chien-Pao!"); ABILITY_POPUP(opponent, ABILITY_SWORD_OF_RUIN); - MESSAGE("Foe Chien-Pao's Sword of Ruin weakened the Defense of all surrounding Pokémon!"); + MESSAGE("The opposing Chien-Pao's Sword of Ruin weakened the Defense of all surrounding Pokémon!"); } } diff --git a/test/battle/ability/tablets_of_ruin.c b/test/battle/ability/tablets_of_ruin.c index 7862a0bb8c..c98384b805 100644 --- a/test/battle/ability/tablets_of_ruin.c +++ b/test/battle/ability/tablets_of_ruin.c @@ -70,6 +70,6 @@ SINGLE_BATTLE_TEST("Tablets of Ruin's message displays correctly after all battl SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Wo-Chien!"); ABILITY_POPUP(opponent, ABILITY_TABLETS_OF_RUIN); - MESSAGE("Foe Wo-Chien's Tablets of Ruin weakened the Attack of all surrounding Pokémon!"); + MESSAGE("The opposing Wo-Chien's Tablets of Ruin weakened the Attack of all surrounding Pokémon!"); } } diff --git a/test/battle/ability/tangling_hair.c b/test/battle/ability/tangling_hair.c index 508678a037..f663465163 100644 --- a/test/battle/ability/tangling_hair.c +++ b/test/battle/ability/tangling_hair.c @@ -27,7 +27,7 @@ SINGLE_BATTLE_TEST("Tangling Hair drops opposing mon's speed if ability user got if (move == MOVE_TACKLE) { ABILITY_POPUP(player, ABILITY_TANGLING_HAIR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wynaut's Speed fell!"); + MESSAGE("The opposing Wynaut's Speed fell!"); } } } @@ -44,9 +44,9 @@ SINGLE_BATTLE_TEST("Tangling Hair does not cause Rocky Helmet miss activation") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TANGLING_HAIR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wynaut's Speed fell!"); + MESSAGE("The opposing Wynaut's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Foe Wynaut was hurt by Dugtrio's Rocky Helmet!"); + MESSAGE("The opposing Wynaut was hurt by Dugtrio's Rocky Helmet!"); } } @@ -61,10 +61,10 @@ SINGLE_BATTLE_TEST("Tangling Hair Speed stat drop triggers defiant and keeps ori ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TANGLING_HAIR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Pawniard's Speed fell!"); + MESSAGE("The opposing Pawniard's Speed fell!"); ABILITY_POPUP(opponent, ABILITY_DEFIANT); - MESSAGE("Foe Pawniard's Attack sharply rose!"); + MESSAGE("The opposing Pawniard's Attack sharply rose!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Foe Pawniard was hurt by Dugtrio's Rocky Helmet!"); + MESSAGE("The opposing Pawniard was hurt by Dugtrio's Rocky Helmet!"); } } diff --git a/test/battle/ability/tera_shell.c b/test/battle/ability/tera_shell.c index 138a56f9b4..ef2993a0e7 100644 --- a/test/battle/ability/tera_shell.c +++ b/test/battle/ability/tera_shell.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Tera Shell makes all moves against Terapagos not very effect TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { if (hp == 100) { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ABILITY_POPUP(player, ABILITY_TERA_SHELL); MESSAGE("Terapagos made its shell gleam! It's distorting type matchups!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); @@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Tera Shell makes all hits of multi-hit moves against Terapag } WHEN { TURN { MOVE(opponent, MOVE_DOUBLE_HIT); } } SCENE { - MESSAGE("Foe Wobbuffet used Double Hit!"); + MESSAGE("The opposing Wobbuffet used Double Hit!"); ABILITY_POPUP(player, ABILITY_TERA_SHELL); MESSAGE("Terapagos made its shell gleam! It's distorting type matchups!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_HIT, opponent); @@ -92,8 +92,8 @@ DOUBLE_BATTLE_TEST("Tera Shell only makes the first hit against Terapagos from a MESSAGE("Terapagos made its shell gleam! It's distorting type matchups!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BLIZZARD, opponentLeft); HP_BAR(playerLeft); - MESSAGE("It's not very effective…"); HP_BAR(playerRight); + MESSAGE("It's not very effective…"); NOT MESSAGE("It's not very effective…"); } } diff --git a/test/battle/ability/teraform_zero.c b/test/battle/ability/teraform_zero.c index 6540515322..819d0eef3d 100644 --- a/test/battle/ability/teraform_zero.c +++ b/test/battle/ability/teraform_zero.c @@ -46,7 +46,7 @@ SINGLE_BATTLE_TEST("Teraform Zero can be replaced") } WHEN { TURN { MOVE(opponent, MOVE_WORRY_SEED); MOVE(player, MOVE_REST, gimmick: GIMMICK_TERA); } } SCENE { - MESSAGE("Foe Whimsicott used Worry Seed!"); + MESSAGE("The opposing Whimsicott used Worry Seed!"); MESSAGE("Terapagos acquired Insomnia!"); MESSAGE("Terapagos used Rest!"); ABILITY_POPUP(player, ABILITY_INSOMNIA); @@ -63,7 +63,7 @@ SINGLE_BATTLE_TEST("Teraform Zero cannot be swapped") } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_SKILL_SWAP); } } SCENE { - MESSAGE("Foe Wobbuffet used Skill Swap!"); + MESSAGE("The opposing Wobbuffet used Skill Swap!"); MESSAGE("But it failed!"); } } @@ -77,7 +77,7 @@ SINGLE_BATTLE_TEST("Teraform Zero cannot be copied") } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_ROLE_PLAY); } } SCENE { - MESSAGE("Foe Wobbuffet used Role Play!"); + MESSAGE("The opposing Wobbuffet used Role Play!"); MESSAGE("But it failed!"); } } diff --git a/test/battle/ability/toxic_chain.c b/test/battle/ability/toxic_chain.c index 2c29770f52..c233f5fc92 100644 --- a/test/battle/ability/toxic_chain.c +++ b/test/battle/ability/toxic_chain.c @@ -14,7 +14,7 @@ SINGLE_BATTLE_TEST("Toxic Chain inflicts bad poison when attacking") } SCENE { ABILITY_POPUP(player, ABILITY_TOXIC_CHAIN); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, badPoison: TRUE); } THEN { EXPECT(opponent->status1 & STATUS1_TOXIC_POISON); @@ -35,13 +35,13 @@ SINGLE_BATTLE_TEST("Toxic Chain inflicts bad poison on any hit of a multi-hit mo } SCENE { ABILITY_POPUP(player, ABILITY_TOXIC_CHAIN); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, badPoison: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); STATUS_ICON(opponent, badPoison: FALSE); ABILITY_POPUP(player, ABILITY_TOXIC_CHAIN); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, badPoison: TRUE); } THEN { EXPECT(opponent->status1 & STATUS1_TOXIC_POISON); @@ -62,14 +62,14 @@ DOUBLE_BATTLE_TEST("Toxic Chain can inflict bad poison on both foes") TURN { MOVE(playerLeft, MOVE_RAZOR_LEAF, WITH_RNG(RNG_TOXIC_CHAIN, TRUE)); } } SCENE { HP_BAR(opponentLeft); - ABILITY_POPUP(playerLeft, ABILITY_TOXIC_CHAIN); - ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponentLeft); - MESSAGE("Foe Wobbuffet is badly poisoned!"); - STATUS_ICON(opponentLeft, badPoison: TRUE); HP_BAR(opponentRight); ABILITY_POPUP(playerLeft, ABILITY_TOXIC_CHAIN); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponentLeft); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); + STATUS_ICON(opponentLeft, badPoison: TRUE); + ABILITY_POPUP(playerLeft, ABILITY_TOXIC_CHAIN); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponentRight); - MESSAGE("Foe Wynaut is badly poisoned!"); + MESSAGE("The opposing Wynaut was badly poisoned!"); STATUS_ICON(opponentRight, badPoison: TRUE); } THEN { EXPECT(opponentLeft->status1 & STATUS1_TOXIC_POISON); @@ -97,14 +97,14 @@ SINGLE_BATTLE_TEST("Toxic Chain makes Lum/Pecha Berry trigger before being knock } SCENE { ABILITY_POPUP(player, ABILITY_TOXIC_CHAIN); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, badPoison: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); STATUS_ICON(opponent, badPoison: FALSE); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Okidogi knocked off Foe Wobbuffet's Pecha Berry!"); - MESSAGE("Okidogi knocked off Foe Wobbuffet's Lum Berry!"); + MESSAGE("Okidogi knocked off the opposing Wobbuffet's Pecha Berry!"); + MESSAGE("Okidogi knocked off the opposing Wobbuffet's Lum Berry!"); } } THEN { EXPECT(opponent->status1 == 0); diff --git a/test/battle/ability/toxic_debris.c b/test/battle/ability/toxic_debris.c index ed2c60e594..c4a50a5d13 100644 --- a/test/battle/ability/toxic_debris.c +++ b/test/battle/ability/toxic_debris.c @@ -22,11 +22,11 @@ SINGLE_BATTLE_TEST("Toxic Debris sets Toxic Spikes on the opposing side if hit b } SCENE { if (move == MOVE_TACKLE) { ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } else { NONE_OF { ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } } } @@ -44,14 +44,14 @@ SINGLE_BATTLE_TEST("Toxic Debris does not activate if two layers of Toxic Spikes } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } } } @@ -69,7 +69,7 @@ SINGLE_BATTLE_TEST("If a Substitute is hit, Toxic Debris does not set Toxic Spik ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } } } @@ -84,10 +84,10 @@ SINGLE_BATTLE_TEST("Each hit of a Multi Hit move activates Toxic Debris") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } } @@ -102,7 +102,7 @@ SINGLE_BATTLE_TEST("Toxic Debris activates if user faints after physical hit") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); MESSAGE("Glimmora fainted!"); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); } } @@ -116,7 +116,7 @@ SINGLE_BATTLE_TEST("Air Balloon is popped after Toxic Debris activates") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ABILITY_POPUP(player, ABILITY_TOXIC_DEBRIS); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); MESSAGE("Glimmora's Air Balloon popped!"); } } diff --git a/test/battle/ability/trace.c b/test/battle/ability/trace.c index 3042f8e22b..6dbd9bda26 100644 --- a/test/battle/ability/trace.c +++ b/test/battle/ability/trace.c @@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Trace copies opponents ability") TURN { } } SCENE { ABILITY_POPUP(player, ABILITY_TRACE); - MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + MESSAGE("It traced the opposing Torchic's Blaze!"); } } @@ -24,7 +24,7 @@ SINGLE_BATTLE_TEST("Trace copies opponents ability on switch-in") TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_TRACE); - MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + MESSAGE("It traced the opposing Torchic's Blaze!"); } } @@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Trace copies opponents ability on switch-in even if opponent } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_EXPLOSION); ABILITY_POPUP(player, ABILITY_TRACE); - MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + MESSAGE("It traced the opposing Torchic's Blaze!"); } } @@ -61,7 +61,7 @@ DOUBLE_BATTLE_TEST("Trace copies opponents ability randomly") TURN { } } SCENE { ABILITY_POPUP(playerLeft, ABILITY_TRACE); - MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + MESSAGE("It traced the opposing Torchic's Blaze!"); } } @@ -76,7 +76,7 @@ SINGLE_BATTLE_TEST("Trace will copy an opponent's ability whenever it has the ch } SCENE { // TURN 2 ABILITY_POPUP(player, ABILITY_TRACE); - MESSAGE("Ralts TRACED Foe Torchic's Blaze!"); + MESSAGE("It traced the opposing Torchic's Blaze!"); } } diff --git a/test/battle/ability/transistor.c b/test/battle/ability/transistor.c index 4588badcc9..f02743ab8c 100644 --- a/test/battle/ability/transistor.c +++ b/test/battle/ability/transistor.c @@ -1,6 +1,9 @@ #include "global.h" #include "test/battle.h" +#include "global.h" +#include "test/battle.h" + SINGLE_BATTLE_TEST("Transistor increases Electric-type move damage", s16 damage) { u32 move; @@ -27,12 +30,37 @@ SINGLE_BATTLE_TEST("Transistor increases Electric-type move damage", s16 damage) HP_BAR(opponent, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); // Tackle should be unaffected - #if B_TRANSISTOR_BOOST >= GEN_9 - EXPECT_MUL_EQ(results[2].damage, Q_4_12(5325 / 4096), results[3].damage); // Wild Charge should be affected - EXPECT_MUL_EQ(results[4].damage, Q_4_12(5325 / 4096), results[5].damage); // Thunder Shock should be affected - #else - EXPECT_MUL_EQ(results[2].damage, Q_4_12(1.5), results[3].damage); // Wild Charge should be affected - EXPECT_MUL_EQ(results[4].damage, Q_4_12(1.5), results[5].damage); // Thunder Shock should be affected - #endif + if (B_TRANSISTOR_BOOST >= GEN_9) + { + EXPECT_MUL_EQ(results[2].damage, Q_4_12(1.3), results[3].damage); // Wild Charge should be affected + EXPECT_MUL_EQ(results[4].damage, Q_4_12(1.3), results[5].damage); // Thunder Shock should be affected + } + else + { + EXPECT_MUL_EQ(results[2].damage, Q_4_12(1.5), results[3].damage); // Wild Charge should be affected + EXPECT_MUL_EQ(results[4].damage, Q_4_12(1.5), results[5].damage); // Thunder Shock should be affected + } + } +} + +SINGLE_BATTLE_TEST("Transistor boosts Electric type moves by 1.5 in Gen8 and 1.3 in Gen9+", s16 damage) +{ + u16 ability; + PARAMETRIZE { ability = ABILITY_NEUTRALIZING_GAS; } + PARAMETRIZE { ability = ABILITY_LEVITATE; } + + GIVEN { + ASSUME(gMovesInfo[MOVE_THUNDER_SHOCK].type == TYPE_ELECTRIC); + PLAYER(SPECIES_REGIELEKI) { Ability(ABILITY_TRANSISTOR); } + OPPONENT(SPECIES_KOFFING) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_THUNDER_SHOCK); } + } SCENE { + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + if (B_TRANSISTOR_BOOST >= GEN_9) + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.3), results[1].damage); + else + EXPECT_MUL_EQ(results[0].damage, Q_4_12(1.5), results[1].damage); } } diff --git a/test/battle/ability/vessel_of_ruin.c b/test/battle/ability/vessel_of_ruin.c index 362b44c003..6531cbbf3a 100644 --- a/test/battle/ability/vessel_of_ruin.c +++ b/test/battle/ability/vessel_of_ruin.c @@ -70,6 +70,6 @@ SINGLE_BATTLE_TEST("Vessel of Ruin's message displays correctly after all battle SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Ting-Lu!"); ABILITY_POPUP(opponent, ABILITY_VESSEL_OF_RUIN); - MESSAGE("Foe Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); + MESSAGE("The opposing Ting-Lu's Vessel of Ruin weakened the Sp. Atk of all surrounding Pokémon!"); } } diff --git a/test/battle/ability/weak_armor.c b/test/battle/ability/weak_armor.c index 291b2ac639..7fd7e10ef7 100644 --- a/test/battle/ability/weak_armor.c +++ b/test/battle/ability/weak_armor.c @@ -95,7 +95,7 @@ SINGLE_BATTLE_TEST("Weak Armor still lowers boosts Speed if Defense can't go any ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Slugma's Weak Armor lowered its Defense!"); } - MESSAGE("Slugma's Defense won't go lower!"); + MESSAGE("Slugma's Defense won't go any lower!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Slugma's Weak Armor raised its Speed!"); } THEN { @@ -124,7 +124,7 @@ SINGLE_BATTLE_TEST("Weak Armor still lowers Defense if Speed can't go any higher ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Slugma's Weak Armor raised its Speed!"); } - MESSAGE("Slugma's Speed won't go higher!"); + MESSAGE("Slugma's Speed won't go any higher!"); } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 1); EXPECT_EQ(player->statStages[STAT_SPEED], MAX_STAT_STAGE); @@ -151,7 +151,7 @@ SINGLE_BATTLE_TEST("Weak Armor doesn't interrupt multi hit moves if Defense can' } ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); - MESSAGE("Magcargo's Defense won't go lower!"); + MESSAGE("Magcargo's Defense won't go any lower!"); MESSAGE("Magcargo's Weak Armor raised its Speed!"); for (j = 0; j < 2; j++) { @@ -159,8 +159,8 @@ SINGLE_BATTLE_TEST("Weak Armor doesn't interrupt multi hit moves if Defense can' // Ability doesn't activate if neither stat can be changed. NONE_OF { ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); - MESSAGE("Magcargo's Defense won't go lower!"); - MESSAGE("Magcargo's Speed won't go higher!"); + MESSAGE("Magcargo's Defense won't go any lower!"); + MESSAGE("Magcargo's Speed won't go any higher!"); } } } THEN { @@ -189,7 +189,7 @@ SINGLE_BATTLE_TEST("Weak Armor doesn't interrupt multi hit moves if Speed can't ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_SWIPES, opponent); ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); MESSAGE("Magcargo's Weak Armor lowered its Defense!"); - MESSAGE("Magcargo's Speed won't go higher!"); + MESSAGE("Magcargo's Speed won't go any higher!"); } } THEN { EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 5); diff --git a/test/battle/ability/wind_power.c b/test/battle/ability/wind_power.c index 146c47f3dd..831a2a66df 100644 --- a/test/battle/ability/wind_power.c +++ b/test/battle/ability/wind_power.c @@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo HP_BAR(opponent); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(opponent, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Foe Wattrel with power!"); + MESSAGE("Being hit by Air Cutter charged the opposing Wattrel with power!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, opponent); @@ -92,7 +92,7 @@ SINGLE_BATTLE_TEST("Wind Power sets up Charge for opponent when hit by a wind mo HP_BAR(opponent); if (move == MOVE_AIR_CUTTER) { ABILITY_POPUP(opponent, ABILITY_WIND_POWER); - MESSAGE("Being hit by Air Cutter charged Foe Wattrel with power!"); + MESSAGE("Being hit by Air Cutter charged the opposing Wattrel with power!"); } } THEN { @@ -165,17 +165,17 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly for every battler with the ab ANIMATION(ANIM_TYPE_MOVE, MOVE_PETAL_BLIZZARD, opponentLeft); HP_BAR(playerLeft); + HP_BAR(playerRight); + HP_BAR(opponentRight); + NOT HP_BAR(opponentLeft); if (abilityLeft == ABILITY_WIND_POWER) { ABILITY_POPUP(playerLeft, ABILITY_WIND_POWER); MESSAGE("Being hit by Petal Blizzard charged Wattrel with power!"); } - HP_BAR(playerRight); if (abilityRight == ABILITY_WIND_POWER) { ABILITY_POPUP(playerRight, ABILITY_WIND_POWER); MESSAGE("Being hit by Petal Blizzard charged Wattrel with power!"); } - HP_BAR(opponentRight); - NOT HP_BAR(opponentLeft); } THEN { EXPECT_NE(playerLeft->hp, playerLeft->maxHP); @@ -205,10 +205,10 @@ DOUBLE_BATTLE_TEST("Wind Power activates correctly when Tailwind is used") ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponentLeft); ABILITY_POPUP(opponentLeft, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Foe Wattrel with power!"); + MESSAGE("Being hit by Tailwind charged the opposing Wattrel with power!"); ABILITY_POPUP(opponentRight, ABILITY_WIND_POWER); - MESSAGE("Being hit by Tailwind charged Foe Wattrel with power!"); + MESSAGE("Being hit by Tailwind charged the opposing Wattrel with power!"); } else { ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, playerLeft); diff --git a/test/battle/ability/wind_rider.c b/test/battle/ability/wind_rider.c index cd4dbeed1f..44baacc8a2 100644 --- a/test/battle/ability/wind_rider.c +++ b/test/battle/ability/wind_rider.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Wind Rider raises Attack by one stage if it sets up Tailwind ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponent); ABILITY_POPUP(opponent, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Bramblin's Attack rose!"); + MESSAGE("The opposing Bramblin's Attack rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); } @@ -37,7 +37,7 @@ DOUBLE_BATTLE_TEST("Wind Rider raises Attack by one stage if Tailwind is setup b ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponentLeft); ABILITY_POPUP(opponentRight, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Bramblin's Attack rose!"); + MESSAGE("The opposing Bramblin's Attack rose!"); } THEN { EXPECT_EQ(opponentRight->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); } @@ -55,7 +55,7 @@ SINGLE_BATTLE_TEST("Wind Rider doesn't raise Attack if opponent sets up Tailwind NONE_OF { ABILITY_POPUP(opponent, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Bramblin's Attack rose!"); + MESSAGE("The opposing Bramblin's Attack rose!"); } } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); @@ -75,7 +75,7 @@ SINGLE_BATTLE_TEST("Wind Rider raises Attack by one stage if switched into Tailw ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponent); ABILITY_POPUP(opponent, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Bramblin's Wind Rider raised its Attack!"); + MESSAGE("The opposing Bramblin's Wind Rider raised its Attack!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); @@ -93,13 +93,13 @@ SINGLE_BATTLE_TEST("Wind Rider activates when it's no longer effected by Neutral TURN { SWITCH(player, 1); } } SCENE { ABILITY_POPUP(player, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TAILWIND, opponent); SWITCH_OUT_MESSAGE("Weezing"); - MESSAGE("The effects of Neutralizing Gas wore off!"); + MESSAGE("The effects of the neutralizing gas wore off!"); ABILITY_POPUP(opponent, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Bramblin's Wind Rider raised its Attack!"); + MESSAGE("The opposing Bramblin's Wind Rider raised its Attack!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); } @@ -120,7 +120,7 @@ SINGLE_BATTLE_TEST("Wind Rider absorbs Wind moves and raises Attack by one stage } ABILITY_POPUP(opponent, ABILITY_WIND_RIDER); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Bramblin's Attack rose!"); + MESSAGE("The opposing Bramblin's Attack rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 1); } diff --git a/test/battle/ability/zen_mode.c b/test/battle/ability/zen_mode.c index 728921a484..6dae38e0fe 100644 --- a/test/battle/ability/zen_mode.c +++ b/test/battle/ability/zen_mode.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is half or less TURN { MOVE(player, MOVE_CELEBRATE); MOVE(opponent, MOVE_TACKLE); } } SCENE { MESSAGE("Darmanitan used Celebrate!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); HP_BAR(player); ABILITY_POPUP(player, ABILITY_ZEN_MODE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); @@ -51,7 +51,7 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is half or less ABILITY_POPUP(player, ABILITY_ZEN_MODE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); MESSAGE("Darmanitan used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { EXPECT_LE(player->hp, player->maxHP / 2); EXPECT_EQ(player->species, zenSpecies); @@ -79,7 +79,7 @@ SINGLE_BATTLE_TEST("Zen Mode switches Darmanitan's form when HP is healed above ABILITY_POPUP(player, ABILITY_ZEN_MODE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); MESSAGE("Darmanitan used Celebrate!"); - MESSAGE("Foe Wobbuffet used Heal Pulse!"); + MESSAGE("The opposing Wobbuffet used Heal Pulse!"); HP_BAR(player); ABILITY_POPUP(player, ABILITY_ZEN_MODE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); diff --git a/test/battle/ability/zero_to_hero.c b/test/battle/ability/zero_to_hero.c index be72a55a7e..733104f153 100644 --- a/test/battle/ability/zero_to_hero.c +++ b/test/battle/ability/zero_to_hero.c @@ -50,7 +50,7 @@ SINGLE_BATTLE_TEST("Zero to Hero transforms both player and opponent") ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); MESSAGE("Palafin underwent a heroic transformation!"); ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); - MESSAGE("Foe Palafin underwent a heroic transformation!"); + MESSAGE("The opposing Palafin underwent a heroic transformation!"); } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); EXPECT_EQ(opponent->species, SPECIES_PALAFIN_HERO); @@ -109,7 +109,7 @@ SINGLE_BATTLE_TEST("Transform doesn't apply the heroic transformation message wh ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); MESSAGE("Palafin underwent a heroic transformation!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TRANSFORM, opponent); - MESSAGE("Foe Wobbuffet transformed into Palafin!"); + MESSAGE("The opposing Wobbuffet transformed into Palafin!"); NOT ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } } @@ -128,10 +128,10 @@ SINGLE_BATTLE_TEST("Imposter doesn't apply the heroic transformation message whe ABILITY_POPUP(player, ABILITY_ZERO_TO_HERO); MESSAGE("Palafin underwent a heroic transformation!"); ABILITY_POPUP(opponent, ABILITY_IMPOSTER); - MESSAGE("Foe Ditto transformed into Palafin using Imposter!"); + MESSAGE("The opposing Ditto transformed into Palafin using Imposter!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); - MESSAGE("Foe Ditto underwent a heroic transformation!"); + MESSAGE("The opposing Ditto underwent a heroic transformation!"); } } THEN { EXPECT_EQ(player->species, SPECIES_PALAFIN_HERO); } } @@ -178,7 +178,7 @@ SINGLE_BATTLE_TEST("Zero to Hero's message displays correctly after all battlers SEND_IN_MESSAGE("Wobbuffet"); MESSAGE("2 sent out Palafin!"); ABILITY_POPUP(opponent, ABILITY_ZERO_TO_HERO); - MESSAGE("Foe Palafin underwent a heroic transformation!"); + MESSAGE("The opposing Palafin underwent a heroic transformation!"); } } @@ -193,7 +193,7 @@ SINGLE_BATTLE_TEST("Zero to Hero cannot be copied by Trace") } SCENE { NONE_OF { ABILITY_POPUP(opponent, ABILITY_TRACE); - MESSAGE("Foe Ralts Traced Palafin's Zero to Hero!"); + MESSAGE("The opposing Ralts Traced Palafin's Zero to Hero!"); } } } diff --git a/test/battle/ai/ai.c b/test/battle/ai/ai.c index a19481c7ed..0883e3cc59 100644 --- a/test/battle/ai/ai.c +++ b/test/battle/ai/ai.c @@ -419,7 +419,7 @@ AI_DOUBLE_BATTLE_TEST("AI will not use Helping Hand if partner does not have any SCORE_LT_VAL(opponentLeft, MOVE_HELPING_HAND, AI_SCORE_DEFAULT, target:opponentLeft); } } SCENE { - NOT MESSAGE("Foe Wobbuffet used Helping Hand!"); + NOT MESSAGE("The opposing Wobbuffet used Helping Hand!"); } } @@ -448,7 +448,7 @@ AI_DOUBLE_BATTLE_TEST("AI will not use a status move if partner already chose He SCORE_LT_VAL(opponentRight, statusMove, AI_SCORE_DEFAULT, target:opponentLeft); } } SCENE { - MESSAGE("Foe Wobbuffet used Helping Hand!"); + MESSAGE("The opposing Wobbuffet used Helping Hand!"); } } @@ -567,8 +567,8 @@ AI_SINGLE_BATTLE_TEST("AI will only choose Surf 1/3 times if the opposing mon ha TURN { EXPECT_MOVE(opponent, MOVE_SURF); } TURN { EXPECT_MOVE(opponent, MOVE_SURF); } } SCENE { - MESSAGE("Foe Lanturn used Surf!"); - MESSAGE("Foe Lanturn used Surf!"); + MESSAGE("The opposing Lanturn used Surf!"); + MESSAGE("The opposing Lanturn used Surf!"); } } @@ -584,8 +584,8 @@ AI_SINGLE_BATTLE_TEST("AI will choose Thunderbolt then Surf 2/3 times if the opp TURN { EXPECT_MOVE(opponent, MOVE_THUNDERBOLT); } TURN { EXPECT_MOVE(opponent, MOVE_SURF); } } SCENE { - MESSAGE("Foe Lanturn used Thunderbolt!"); - MESSAGE("Foe Lanturn used Surf!"); + MESSAGE("The opposing Lanturn used Thunderbolt!"); + MESSAGE("The opposing Lanturn used Surf!"); } } @@ -739,6 +739,7 @@ AI_SINGLE_BATTLE_TEST("AI calculates guaranteed criticals and detects critical i AI_DOUBLE_BATTLE_TEST("AI recognizes Volt Absorb received from Trace") { + KNOWN_FAILING; // MGriffin's PR that switched two turn charging moves in AI tests broke this test, waiting on a fix GIVEN { AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); PLAYER(SPECIES_MAGNETON); @@ -805,3 +806,28 @@ AI_SINGLE_BATTLE_TEST("AI uses a guaranteed KO move instead of the move with the NOT MESSAGE("Wobbuffet fainted!"); } } + +AI_SINGLE_BATTLE_TEST("AI stays choice locked into moves in spite of the player's ability disabling them") +{ + u32 playerMon, ability, aiMove; + PARAMETRIZE { ability = ABILITY_DAZZLING; playerMon = SPECIES_BRUXISH; aiMove = MOVE_QUICK_ATTACK; } + PARAMETRIZE { ability = ABILITY_QUEENLY_MAJESTY; playerMon = SPECIES_TSAREENA; aiMove = MOVE_QUICK_ATTACK; } + PARAMETRIZE { ability = ABILITY_ARMOR_TAIL; playerMon = SPECIES_FARIGIRAF; aiMove = MOVE_QUICK_ATTACK; } + PARAMETRIZE { ability = ABILITY_SOUNDPROOF; playerMon = SPECIES_EXPLOUD; aiMove = MOVE_BOOMBURST; } + PARAMETRIZE { ability = ABILITY_BULLETPROOF; playerMon = SPECIES_CHESNAUGHT; aiMove = MOVE_BULLET_SEED; } + + GIVEN { + ASSUME(gItemsInfo[ITEM_CHOICE_BAND].holdEffect == HOLD_EFFECT_CHOICE_BAND); + ASSUME(gMovesInfo[MOVE_QUICK_ATTACK].priority == 1); + ASSUME(gMovesInfo[MOVE_BOOMBURST].soundMove == TRUE); + ASSUME(gMovesInfo[MOVE_BULLET_SEED].ballisticMove == TRUE); + ASSUME(gMovesInfo[MOVE_TAIL_WHIP].category == DAMAGE_CATEGORY_STATUS); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(playerMon) { Ability(ability); } + OPPONENT(SPECIES_SMEARGLE) { Item(ITEM_CHOICE_BAND); Moves(aiMove, MOVE_TACKLE); } + } WHEN { + TURN { SWITCH(player, 1); EXPECT_MOVE(opponent, aiMove); } + TURN { EXPECT_MOVE(opponent, aiMove); } + } +} diff --git a/test/battle/ai/ai_check_viability.c b/test/battle/ai/ai_check_viability.c index 039d8ca331..37ad7edb15 100644 --- a/test/battle/ai/ai_check_viability.c +++ b/test/battle/ai/ai_check_viability.c @@ -167,7 +167,7 @@ AI_SINGLE_BATTLE_TEST("AI can choose Counter or Mirror Coat if the predicted mov TURN { MOVE(player, playerMove); EXPECT_MOVE(opponent, opponentMove); } TURN { MOVE(player, playerMove); EXPECT_MOVE(opponent, MOVE_STRENGTH); } } SCENE { - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } diff --git a/test/battle/ai/ai_double_ace.c b/test/battle/ai/ai_double_ace.c new file mode 100644 index 0000000000..aec37b9307 --- /dev/null +++ b/test/battle/ai/ai_double_ace.c @@ -0,0 +1,96 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS { + ASSUME(gMovesInfo[MOVE_U_TURN].effect == EFFECT_HIT_ESCAPE); + ASSUME(gMovesInfo[MOVE_CRUNCH].type == TYPE_DARK); + ASSUME(gSpeciesInfo[SPECIES_WOBBUFFET].types[0] == TYPE_PSYCHIC); + ASSUME(gSpeciesInfo[SPECIES_WOBBUFFET].types[1] == TYPE_PSYCHIC); +} + +AI_DOUBLE_BATTLE_TEST("AI_FLAG_DOUBLE_ACE_POKEMON: U-Turn won't send out any of the Ace Mons if other options exist") +{ + u32 flag; + + PARAMETRIZE { flag = AI_FLAG_DOUBLE_ACE_POKEMON; } + PARAMETRIZE { flag = 0; } + + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_SMART_SWITCHING | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES | flag); + + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + + OPPONENT(SPECIES_GASTLY) { Moves(MOVE_U_TURN); } + OPPONENT(SPECIES_DUSKULL) { Moves(MOVE_U_TURN); } + + OPPONENT(SPECIES_HAUNTER) { Moves(MOVE_U_TURN); } + OPPONENT(SPECIES_GENGAR) { Moves(MOVE_U_TURN); } + + // Aces + // Crunch is super effective against Wobbuffet Psychic type, so normally the AI would switch them in + OPPONENT(SPECIES_POOCHYENA) { Moves(MOVE_CRUNCH); } + OPPONENT(SPECIES_MIGHTYENA) { Moves(MOVE_CRUNCH); } + } WHEN { + TURN { + EXPECT_MOVE(opponentLeft, MOVE_U_TURN); + EXPECT_MOVE(opponentRight, MOVE_U_TURN); + + if(flag == AI_FLAG_DOUBLE_ACE_POKEMON) { + EXPECT_SEND_OUT(opponentLeft, 3); + EXPECT_SEND_OUT(opponentRight, 2); + } else { + EXPECT_SEND_OUT(opponentLeft, 4); + EXPECT_SEND_OUT(opponentRight, 5); + } + } + } +} + +AI_DOUBLE_BATTLE_TEST("AI_FLAG_DOUBLE_ACE_POKEMON: U-Turn will send out an Ace Mon if no other options remain") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_SMART_SWITCHING | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_DOUBLE_ACE_POKEMON); + + PLAYER(SPECIES_WOBBUFFET) { Level(50); } + PLAYER(SPECIES_WOBBUFFET) { Level(50); } + + OPPONENT(SPECIES_GASTLY) { Moves(MOVE_U_TURN); Level(50); } + OPPONENT(SPECIES_DUSKULL) { Moves(MOVE_U_TURN); Level(5); } + + // Aces + // Should choose Poochyena as its level is higher. + OPPONENT(SPECIES_MIGHTYENA) { Moves(MOVE_CRUNCH); Level(5); } + OPPONENT(SPECIES_POOCHYENA) { Moves(MOVE_CRUNCH); Level(50); } + } WHEN { + TURN { + EXPECT_MOVE(opponentLeft, MOVE_U_TURN); + EXPECT_MOVE(opponentRight, MOVE_U_TURN); + + EXPECT_SEND_OUT(opponentLeft, 3); + EXPECT_SEND_OUT(opponentRight, 0); + } + } +} + +AI_DOUBLE_BATTLE_TEST("AI_FLAG_DOUBLE_ACE_POKEMON: Ace mons won't be switched in even if they are the best candidates") +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_GENGAR].types[0] == TYPE_GHOST); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_SMART_SWITCHING | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_MON_CHOICES | AI_FLAG_DOUBLE_ACE_POKEMON); + + PLAYER(SPECIES_GENGAR) { Level(10); } + PLAYER(SPECIES_GENGAR) { Level(10); } + + OPPONENT(SPECIES_RATTATA) { Moves(MOVE_TACKLE); Level(10); } + OPPONENT(SPECIES_PSYDUCK) { Moves(MOVE_TACKLE); Level(10); } + + OPPONENT(SPECIES_ABRA) { Moves(MOVE_ABSORB); Level(20); } + + // Aces + OPPONENT(SPECIES_MIGHTYENA) { Moves(MOVE_CRUNCH); Level(50); } + OPPONENT(SPECIES_POOCHYENA) { Moves(MOVE_CRUNCH); Level(50); } + } WHEN { + TURN { EXPECT_SWITCH(opponentLeft, 2); } + } +} diff --git a/test/battle/ai/ai_flag_predict_ability.c b/test/battle/ai/ai_flag_predict_ability.c new file mode 100644 index 0000000000..ab934698b8 --- /dev/null +++ b/test/battle/ai/ai_flag_predict_ability.c @@ -0,0 +1,16 @@ +#include "global.h" +#include "test/battle.h" +#include "battle_ai_util.h" + +AI_SINGLE_BATTLE_TEST("AI_FLAG_WEIGH_ABILITY_PREDICTION: AI will predict opposing ability based on its aiRating") +{ + PASSES_RANDOMLY(7, 14, RNG_AI_PREDICT_ABILITY); + GIVEN { + ASSUME(gMovesInfo[MOVE_THUNDERBOLT].type == TYPE_ELECTRIC); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_WEIGH_ABILITY_PREDICTION); + PLAYER(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); }; + OPPONENT(SPECIES_LANTURN) { Moves(MOVE_THUNDERBOLT, MOVE_ICE_BEAM, MOVE_SURF); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_THUNDERBOLT); } + } +} diff --git a/test/battle/ai/ai_flag_risky.c b/test/battle/ai/ai_flag_risky.c index e1ceeb2161..87be344ab8 100644 --- a/test/battle/ai/ai_flag_risky.c +++ b/test/battle/ai/ai_flag_risky.c @@ -68,7 +68,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_RISKY: Mid-battle switches prioritize offensive o PLAYER(SPECIES_SWELLOW) { Level(30); Moves(MOVE_WING_ATTACK, MOVE_BOOMBURST); Speed(5); } OPPONENT(SPECIES_PONYTA) { Level(1); Moves(MOVE_NONE); Speed(4); } // Forces switchout OPPONENT(SPECIES_ARON) { Level(30); Moves(MOVE_HEADBUTT); Speed(4); SpDefense(41); } // Mid battle, AI sends out Aron - OPPONENT(SPECIES_ELECTRODE) { Level(30); Moves(MOVE_CHARGE_BEAM); Speed(6); } + OPPONENT(SPECIES_ELECTRODE) { Level(30); Moves(MOVE_CHARGE_BEAM); Speed(6); Ability(ABILITY_STATIC); } } WHEN { TURN { MOVE(player, MOVE_WING_ATTACK); EXPECT_SWITCH(opponent, aiRiskyFlag? 2 : 1); } } diff --git a/test/battle/ai/ai_flag_sequence_switching.c b/test/battle/ai/ai_flag_sequence_switching.c index 7a0f3528bd..8502efbba7 100644 --- a/test/battle/ai/ai_flag_sequence_switching.c +++ b/test/battle/ai/ai_flag_sequence_switching.c @@ -27,14 +27,14 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SEQUENCE_SWITCHING: AI will always switch after a } } SCENE { if (aiSequenceSwitchingFlag) { - MESSAGE("{PKMN} TRAINER LEAF sent out Machoke!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Machamp!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Mankey!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Primeape!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Magnezone!"); + MESSAGE(AI_TRAINER_NAME " sent out Machoke!"); + MESSAGE(AI_TRAINER_NAME " sent out Machamp!"); + MESSAGE(AI_TRAINER_NAME " sent out Mankey!"); + MESSAGE(AI_TRAINER_NAME " sent out Primeape!"); + MESSAGE(AI_TRAINER_NAME " sent out Magnezone!"); } else { - MESSAGE("{PKMN} TRAINER LEAF sent out Magnezone!"); + MESSAGE(AI_TRAINER_NAME " sent out Magnezone!"); } } } @@ -60,7 +60,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SEQUENCE_SWITCHING: Roar and Dragon Tail still fo TURN { MOVE(player, move); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, move, player); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } } diff --git a/test/battle/ai/ai_switching.c b/test/battle/ai/ai_switching.c index f3b2429dd8..00caff5932 100644 --- a/test/battle/ai/ai_switching.c +++ b/test/battle/ai/ai_switching.c @@ -35,11 +35,11 @@ AI_SINGLE_BATTLE_TEST("AI switches if Perish Song is about to kill") TURN { ; } TURN { EXPECT_SWITCH(opponent, 1); } } SCENE { - MESSAGE("{PKMN} TRAINER LEAF sent out Crobat!"); + MESSAGE(AI_TRAINER_NAME " sent out Crobat!"); } } -AI_DOUBLE_BATTLE_TEST("AI will not try to switch for the same pokemon for 2 spots in a double battle") +AI_DOUBLE_BATTLE_TEST("AI will not try to switch for the same pokemon for 2 spots in a double battle (all bad moves)") { u32 flags; @@ -58,11 +58,34 @@ AI_DOUBLE_BATTLE_TEST("AI will not try to switch for the same pokemon for 2 spot } WHEN { TURN { EXPECT_SWITCH(opponentLeft, 3); }; } SCENE { - MESSAGE("{PKMN} TRAINER LEAF withdrew Gengar!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Raticate!"); + MESSAGE(AI_TRAINER_NAME " withdrew Gengar!"); + MESSAGE(AI_TRAINER_NAME " sent out Raticate!"); NONE_OF { - MESSAGE("{PKMN} TRAINER LEAF withdrew Haunter!"); - MESSAGE("{PKMN} TRAINER LEAF sent out Raticate!"); + MESSAGE(AI_TRAINER_NAME " withdrew Haunter!"); + MESSAGE(AI_TRAINER_NAME " sent out Raticate!"); + } + } +} + +AI_DOUBLE_BATTLE_TEST("AI will not try to switch for the same pokemon for 2 spots in a double battle (Wonder Guard)") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SHEDINJA); + PLAYER(SPECIES_SHEDINJA); + // No moves to damage player. + OPPONENT(SPECIES_LINOONE) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_LINOONE) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_GENGAR) { Moves(MOVE_SHADOW_BALL); } + } WHEN { + TURN { EXPECT_SWITCH(opponentLeft, 3); }; + } SCENE { + MESSAGE("{PKMN} TRAINER LEAF withdrew Linoone!"); + MESSAGE("{PKMN} TRAINER LEAF sent out Gengar!"); + NONE_OF { + MESSAGE("{PKMN} TRAINER LEAF withdrew Zigzagoon!"); + MESSAGE("{PKMN} TRAINER LEAF sent out Gengar!"); } } } @@ -158,11 +181,11 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI will not switch in a Pokemo } WHEN { TURN { MOVE(player, MOVE_NIGHT_SLASH) ; EXPECT_SEND_OUT(opponent, alakazamFirst ? 1 : 2); } // AI doesn't send out Alakazam if it gets outsped } SCENE { - MESSAGE("Foe Kadabra fainted!"); + MESSAGE("The opposing Kadabra fainted!"); if (alakazamFirst) { - MESSAGE("{PKMN} TRAINER LEAF sent out Alakazam!"); + MESSAGE(AI_TRAINER_NAME " sent out Alakazam!"); } else { - MESSAGE("{PKMN} TRAINER LEAF sent out Blastoise!"); + MESSAGE(AI_TRAINER_NAME " sent out Blastoise!"); } } } @@ -441,6 +464,7 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if mon would ASSUME(gSpeciesInfo[SPECIES_PELIPPER].types[1] == TYPE_FLYING); ASSUME(gMovesInfo[MOVE_THUNDERBOLT].type == TYPE_ELECTRIC); ASSUME(gMovesInfo[MOVE_EARTHQUAKE].type == TYPE_GROUND); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING | AI_FLAG_SMART_MON_CHOICES); PLAYER(SPECIES_ELECTRODE) { Moves(MOVE_THUNDERBOLT, MOVE_THUNDER_WAVE, MOVE_THUNDER_SHOCK); } OPPONENT(SPECIES_PELIPPER) { Moves(MOVE_EARTHQUAKE); }; @@ -450,12 +474,14 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if mon would } } -AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if it can't deal damage to a mon with Wonder Guard 66% of the time") +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if it can't deal damage to a mon with Wonder Guard") { - PASSES_RANDOMLY(66, 100, RNG_AI_SWITCH_WONDER_GUARD); GIVEN { ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].types[0] == TYPE_BUG); ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].types[1] == TYPE_GHOST); + ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].abilities[0] == ABILITY_WONDER_GUARD); + ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].abilities[1] == ABILITY_NONE); + ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].abilities[2] == ABILITY_NONE); ASSUME(gMovesInfo[MOVE_TACKLE].type == TYPE_NORMAL); ASSUME(gMovesInfo[MOVE_SHADOW_BALL].type == TYPE_GHOST); AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); @@ -467,9 +493,8 @@ AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if it can't deal damage to } } -AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it can't deal damage to a mon with Wonder Guard 100% of the time") +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it can't deal damage to a mon with Wonder Guard") { - PASSES_RANDOMLY(100, 100, RNG_AI_SWITCH_WONDER_GUARD); GIVEN { ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].types[0] == TYPE_BUG); ASSUME(gSpeciesInfo[SPECIES_SHEDINJA].types[1] == TYPE_GHOST); @@ -486,3 +511,416 @@ AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it can't d TURN { MOVE(player, MOVE_TACKLE) ; EXPECT_SWITCH(opponent, 1); } } } + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Toxic'd for at least two turns 50% of the time with more than 1/3 HP remaining with good switchin") +{ + u32 species = SPECIES_NONE, odds = 0; + PARAMETRIZE { species = SPECIES_ZIGZAGOON, odds = 0; } + PARAMETRIZE { species = SPECIES_HARIYAMA, odds = 50; } + PASSES_RANDOMLY(odds, 100, RNG_AI_SWITCH_BADLY_POISONED); + GIVEN { + ASSUME(gMovesInfo[MOVE_TOXIC].effect == EFFECT_TOXIC); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE, MOVE_CELEBRATE, MOVE_TOXIC, MOVE_AURA_SPHERE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(species) { Moves(MOVE_ROCK_SMASH); } + } WHEN { + TURN { MOVE(player, MOVE_TOXIC); EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_AURA_SPHERE); EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_AURA_SPHERE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Curse'd 50% of the time") +{ + PASSES_RANDOMLY(50, 100, RNG_AI_SWITCH_CURSED); + GIVEN { + ASSUME(gMovesInfo[MOVE_CURSE].effect == EFFECT_CURSE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_DUSCLOPS) { Moves(MOVE_FIRE_PUNCH, MOVE_CURSE); } + PLAYER(SPECIES_MILOTIC) { Moves(MOVE_WATER_GUN); } + OPPONENT(SPECIES_DUSCLOPS) { Moves(MOVE_SHADOW_BALL); } + OPPONENT(SPECIES_DUSCLOPS) { Moves(MOVE_SHADOW_BALL); } + } WHEN { + TURN { MOVE(player, MOVE_CURSE) ; EXPECT_MOVE(opponent, MOVE_SHADOW_BALL); } + TURN { MOVE(player, MOVE_FIRE_PUNCH); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Nightmare'd 33% of the time") +{ + PASSES_RANDOMLY(33, 100, RNG_AI_SWITCH_NIGHTMARE); + GIVEN { + ASSUME(gMovesInfo[MOVE_NIGHTMARE].effect == EFFECT_NIGHTMARE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_GENGAR) { Moves(MOVE_NIGHTMARE); } + OPPONENT(SPECIES_DUSCLOPS) { Moves(MOVE_SHADOW_BALL); Status1(STATUS1_SLEEP); } + OPPONENT(SPECIES_DUSCLOPS) { Moves(MOVE_SHADOW_BALL); } + } WHEN { + TURN { MOVE(player, MOVE_NIGHTMARE) ; EXPECT_MOVE(opponent, MOVE_SHADOW_BALL); } + TURN { MOVE(player, MOVE_NIGHTMARE) ; EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Leech Seed'd 25% of the time") +{ + PASSES_RANDOMLY(25, 100, RNG_AI_SWITCH_SEEDED); + GIVEN { + ASSUME(gMovesInfo[MOVE_LEECH_SEED].effect == EFFECT_LEECH_SEED); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_WHIMSICOTT) { Moves(MOVE_LEECH_SEED); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_LEECH_SEED) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_LEECH_SEED); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been infatuated") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ATTRACT].effect == EFFECT_ATTRACT); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_LUVDISC) { Moves(MOVE_ATTRACT); Gender(MON_FEMALE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); Gender(MON_MALE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); Gender(MON_MALE); } + } WHEN { + TURN { MOVE(player, MOVE_ATTRACT) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_ATTRACT) ; EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Yawn'd with more than 1/3 HP remaining") +{ + u32 hp; + PARAMETRIZE { hp = 30; } + PARAMETRIZE { hp = 10; } + GIVEN { + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SLAKOTH) { Moves(MOVE_TACKLE, MOVE_YAWN); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); HP(hp); MaxHP(30); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_YAWN) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + if (hp == 30) + TURN { MOVE(player, MOVE_YAWN) ; EXPECT_SWITCH(opponent, 1); } + else + TURN { MOVE(player, MOVE_YAWN) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + } +} + +AI_DOUBLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Yawn'd with more than 1/3 HP remaining (Doubles)") +{ + u32 hp; + PARAMETRIZE { hp = 30; } + PARAMETRIZE { hp = 10; } + GIVEN { + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SLAKOTH) { Moves(MOVE_TACKLE, MOVE_CELEBRATE, MOVE_YAWN); } + PLAYER(SPECIES_SLAKOTH) { Moves(MOVE_TACKLE, MOVE_CELEBRATE, MOVE_YAWN); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); HP(hp); MaxHP(30); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_YAWN, target: opponentLeft); MOVE(playerRight, MOVE_CELEBRATE, target: opponentLeft); } + if (hp == 30) + TURN { MOVE(playerLeft, MOVE_YAWN, target: opponentLeft); MOVE(playerRight, MOVE_CELEBRATE, target: opponentLeft); EXPECT_SWITCH(opponentLeft, 2); } + else + TURN { MOVE(playerLeft, MOVE_YAWN, target: opponentLeft); MOVE(playerRight, MOVE_CELEBRATE, target: opponentLeft); EXPECT_MOVE(opponentLeft, MOVE_TACKLE); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if player's mon is semi-invulnerable and it has an absorber") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DIVE].type == TYPE_WATER); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_LUVDISC) { Moves(MOVE_DIVE); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_MANTINE) { Moves(MOVE_TACKLE); Ability(ABILITY_WATER_ABSORB); } + } WHEN { + TURN { MOVE(player, MOVE_DIVE) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has an absorber but current mon has SE move 33% of the time") +{ + PASSES_RANDOMLY(33, 100, RNG_AI_SWITCH_ABSORBING); + GIVEN { + ASSUME(gMovesInfo[MOVE_WATER_GUN].type == TYPE_WATER); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_LUVDISC) { Moves(MOVE_WATER_GUN); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_SHOCK_WAVE); } + OPPONENT(SPECIES_MANTINE) { Moves(MOVE_TACKLE); Ability(ABILITY_WATER_ABSORB); } + } WHEN { + TURN { MOVE(player, MOVE_WATER_GUN) ; EXPECT_MOVE(opponent, MOVE_SHOCK_WAVE); } + TURN { MOVE(player, MOVE_WATER_GUN) ; EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if player's mon is charging and it has an absorber") +{ + PASSES_RANDOMLY(100, 100, RNG_AI_SWITCH_ABSORBING); + GIVEN { + ASSUME(gMovesInfo[MOVE_SOLAR_BEAM].type == TYPE_GRASS); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_BELLOSSOM) { Moves(MOVE_SOLAR_BEAM); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_AZUMARILL) { Moves(MOVE_PLAY_ROUGH); Ability(ABILITY_SAP_SIPPER); } + } WHEN { + TURN { MOVE(player, MOVE_SOLAR_BEAM) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if player's mon is charging and it has a good switchin immunity (type)") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DIG].type == TYPE_GROUND); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SANDSHREW) { Moves(MOVE_DIG); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_SWELLOW) { Moves(MOVE_WING_ATTACK); } + } WHEN { + TURN { MOVE(player, MOVE_DIG) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if player's mon is charging and it has a good switchin immunity (ability)") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DIG].type == TYPE_GROUND); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SANDSHREW) { Moves(MOVE_DIG); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_BRONZONG) { Moves(MOVE_PSYCHIC); Ability(ABILITY_LEVITATE); } + } WHEN { + TURN { MOVE(player, MOVE_DIG) ; EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has an absorber") +{ + u32 aiMon; u32 move; u32 absorbingAbility; + PARAMETRIZE { aiMon = SPECIES_NINETALES; absorbingAbility = ABILITY_FLASH_FIRE; move = MOVE_FLAMETHROWER;} + PARAMETRIZE { aiMon = SPECIES_MANTINE; absorbingAbility = ABILITY_WATER_ABSORB; move = MOVE_SURF;} + PARAMETRIZE { aiMon = SPECIES_TOXICROAK; absorbingAbility = ABILITY_DRY_SKIN; move = MOVE_SURF;} + PARAMETRIZE { aiMon = SPECIES_GASTRODON; absorbingAbility = ABILITY_STORM_DRAIN; move = MOVE_SURF;} + PARAMETRIZE { aiMon = SPECIES_JOLTEON; absorbingAbility = ABILITY_VOLT_ABSORB; move = MOVE_THUNDERBOLT;} + PARAMETRIZE { aiMon = SPECIES_ELECTIVIRE; absorbingAbility = ABILITY_MOTOR_DRIVE; move = MOVE_THUNDERBOLT;} + PARAMETRIZE { aiMon = SPECIES_MANECTRIC; absorbingAbility = ABILITY_LIGHTNING_ROD; move = MOVE_THUNDERBOLT;} + PARAMETRIZE { aiMon = SPECIES_ELECTIVIRE; absorbingAbility = ABILITY_MOTOR_DRIVE; move = MOVE_THUNDERBOLT;} + PARAMETRIZE { aiMon = SPECIES_AZUMARILL; absorbingAbility = ABILITY_SAP_SIPPER; move = MOVE_GIGA_DRAIN;} + PARAMETRIZE { aiMon = SPECIES_ORTHWORM; absorbingAbility = ABILITY_EARTH_EATER; move = MOVE_EARTHQUAKE;} + PARAMETRIZE { aiMon = SPECIES_BRONZONG; absorbingAbility = ABILITY_LEVITATE; move = MOVE_EARTHQUAKE;} + PARAMETRIZE { aiMon = SPECIES_ELECTRODE; absorbingAbility = ABILITY_SOUNDPROOF; move = MOVE_HYPER_VOICE;} + GIVEN { + ASSUME(B_REDIRECT_ABILITY_IMMUNITY >= GEN_5); + ASSUME(gMovesInfo[MOVE_WATER_GUN].type == TYPE_WATER); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_ZIGZAGOON) { Moves(move); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(aiMon) { Moves(MOVE_TACKLE); Ability(absorbingAbility); } + } WHEN { + TURN { MOVE(player, move); EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, move); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if opponent uses two-turn move and it has a switchin that wins 1v1") +{ + u32 move; + PARAMETRIZE { move = MOVE_SKY_ATTACK; } + PARAMETRIZE { move = MOVE_FLY; } + + GIVEN { + ASSUME(gMovesInfo[MOVE_FLY].effect == EFFECT_SEMI_INVULNERABLE); + ASSUME(gMovesInfo[MOVE_SKY_ATTACK].effect == EFFECT_TWO_TURNS_ATTACK); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_SWELLOW) { Moves(move); } + OPPONENT(SPECIES_MILOTIC) { Moves(MOVE_SURF); } + OPPONENT(SPECIES_LAIRON) { Moves(MOVE_ROCK_SLIDE); } + } WHEN { + TURN { MOVE(player, move); EXPECT_MOVE(opponent, MOVE_SURF); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if badly statused with >= 50% HP remaining and has Natural Cure and a good switchin 66% of the time") +{ + PASSES_RANDOMLY(66, 100, RNG_AI_SWITCH_NATURAL_CURE); + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_ODDISH) { Moves(MOVE_TOXIC, MOVE_TACKLE); } + OPPONENT(SPECIES_SWABLU) { Ability(ABILITY_NATURAL_CURE); Moves(MOVE_TACKLE, MOVE_PECK); } + OPPONENT(SPECIES_SWABLU) { Ability(ABILITY_NATURAL_CURE); Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_TOXIC); EXPECT_MOVE(opponent, MOVE_PECK); } + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if it has <= 66% HP remaining and has Regenerator and a good switchin 50% of the time") +{ + PASSES_RANDOMLY(50, 100, RNG_AI_SWITCH_REGENERATOR); + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_ZIGZAGOON) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_SLOWBRO) { MaxHP(100); HP(65); Ability(ABILITY_REGENERATOR); Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_SLOWBRO) { Ability(ABILITY_REGENERATOR); Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if it has been Encore'd into a status move") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ENCORE].effect == EFFECT_ENCORE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_AZURILL) { Moves(MOVE_TACKLE, MOVE_ENCORE); } + OPPONENT(SPECIES_ODDISH) { Moves(MOVE_TOXIC, MOVE_SWEET_SCENT, MOVE_INGRAIN, MOVE_TACKLE); } + OPPONENT(SPECIES_ARON) { Moves(MOVE_METAL_CLAW); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_TOXIC); MOVE(player, MOVE_ENCORE); } + TURN { MOVE(player, MOVE_ENCORE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will stay in if Encore'd into super effective move") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_ENCORE].effect == EFFECT_ENCORE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_AZURILL) { Moves(MOVE_TACKLE, MOVE_ENCORE); } + OPPONENT(SPECIES_ODDISH) { Moves(MOVE_ACID); } + OPPONENT(SPECIES_ARON) { Moves(MOVE_METAL_CLAW); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_ACID); MOVE(player, MOVE_ENCORE); } + TURN { EXPECT_MOVE(opponent, MOVE_ACID); MOVE(player, MOVE_TACKLE); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if Encore'd into neutral move with good switchin 50% of the time") +{ + KNOWN_FAILING; // AI still switches even if ShouldSwitch is set to immediately return FALSE, something external seems to be triggering this + PASSES_RANDOMLY(50, 100, RNG_AI_SWITCH_ENCORE); + GIVEN { + ASSUME(gMovesInfo[MOVE_ENCORE].effect == EFFECT_ENCORE); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_AZURILL) { Moves(MOVE_TACKLE, MOVE_ENCORE); } + OPPONENT(SPECIES_ODDISH) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_ARON) { Moves(MOVE_METAL_CLAW); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_TACKLE); MOVE(player, MOVE_ENCORE); } + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if mon has Truant and opponent has Protect") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT); + PLAYER(SPECIES_ARON) { Moves(MOVE_TACKLE, MOVE_PROTECT); } + OPPONENT(SPECIES_SLAKING) { Ability(ABILITY_TRUANT); Moves(MOVE_BRICK_BREAK); } + OPPONENT(SPECIES_ARON) { Moves(MOVE_TACKLE); } + } WHEN { + TURN { EXPECT_MOVE(opponent, MOVE_BRICK_BREAK); MOVE(player, MOVE_PROTECT); } + TURN { EXPECT_SWITCH(opponent, 1); MOVE(player, MOVE_TACKLE); } + } +} + +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch out if mon has Truant and opponent has invulnerability move and is faster") +{ + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_OMNISCIENT); + PLAYER(SPECIES_SWELLOW) { Speed(5); Moves(MOVE_FLY); } + OPPONENT(SPECIES_SLAKING) { Speed(4); Ability(ABILITY_TRUANT); Moves(MOVE_ROCK_SLIDE); } + OPPONENT(SPECIES_ARON) { Speed(4); Moves(MOVE_TACKLE); } + } WHEN { + TURN { MOVE(player, MOVE_FLY); EXPECT_MOVE(opponent, MOVE_ROCK_SLIDE); } + TURN { SKIP_TURN(player); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if main attacking stat lowered by 2 stages with good switchin candidate 50% of the time") +{ + u32 aiSpecies = SPECIES_NONE, aiMove = MOVE_NONE, move = MOVE_NONE; + + PASSES_RANDOMLY(50, 100, RNG_AI_SWITCH_STATS_LOWERED); + PARAMETRIZE {move = MOVE_CHARM; aiSpecies = SPECIES_FLAREON; aiMove = MOVE_FIRE_FANG; }; + PARAMETRIZE {move = MOVE_EERIE_IMPULSE; aiSpecies = SPECIES_ESPEON; aiMove = MOVE_CONFUSION; }; + + GIVEN { + ASSUME(gMovesInfo[MOVE_CHARM].effect == EFFECT_ATTACK_DOWN_2); + ASSUME(gMovesInfo[MOVE_EERIE_IMPULSE].effect == EFFECT_SPECIAL_ATTACK_DOWN_2); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_ARON) { Moves(move, MOVE_TACKLE); } + OPPONENT(aiSpecies) { Moves(aiMove); } + OPPONENT(SPECIES_MILOTIC) { Moves(MOVE_SURF); } + } WHEN { + TURN { MOVE(player, move); EXPECT_MOVE(opponent, aiMove); } + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_SWITCHING: AI will switch out if main attacking stat lowered by 3+ stages") +{ + u32 aiSpecies = SPECIES_NONE, aiMove = MOVE_NONE, move = MOVE_NONE, move2 = MOVE_NONE; + + PASSES_RANDOMLY(100, 100, RNG_AI_SWITCH_STATS_LOWERED); + PARAMETRIZE {move = MOVE_GROWL; move2 = MOVE_CHARM; aiSpecies = SPECIES_FLAREON; aiMove = MOVE_FIRE_FANG; }; + PARAMETRIZE {move = MOVE_CONFIDE; move2 = MOVE_EERIE_IMPULSE; aiSpecies = SPECIES_ESPEON; aiMove = MOVE_STORED_POWER; }; + + GIVEN { + ASSUME(gMovesInfo[MOVE_CHARM].effect == EFFECT_ATTACK_DOWN_2); + ASSUME(gMovesInfo[MOVE_EERIE_IMPULSE].effect == EFFECT_SPECIAL_ATTACK_DOWN_2); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT | AI_FLAG_SMART_SWITCHING); + PLAYER(SPECIES_ARON) { Moves(move, move2, MOVE_TACKLE); } + OPPONENT(aiSpecies) { Moves(aiMove); } + OPPONENT(SPECIES_MILOTIC) { Moves(MOVE_SURF); } + } WHEN { + TURN { MOVE(player, move); EXPECT_MOVE(opponent, aiMove); } + TURN { MOVE(player, move2); EXPECT_MOVE(opponent, aiMove); } + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("Switch AI: AI will switch into mon with good type matchup and SE move if current mon has no SE move and no stats raised") +{ + KNOWN_FAILING; // Either remove or replace the function + u32 odds = 0, species = SPECIES_NONE, move = MOVE_NONE; + PARAMETRIZE { odds = 33; species = SPECIES_SCIZOR; move = MOVE_X_SCISSOR; } + PARAMETRIZE { odds = 50; species = SPECIES_DUSCLOPS; move = MOVE_SHADOW_BALL; } + PASSES_RANDOMLY(odds, 100, RNG_AI_SWITCH_SE_DEFENSIVE); + GIVEN { + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_MUNNA) { Moves(MOVE_TACKLE); } + OPPONENT(SPECIES_MUNNA) { Moves(MOVE_TACKLE); } + OPPONENT(species) { Moves(move); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_TACKLE); } + TURN { MOVE(player, MOVE_TACKLE); EXPECT_SWITCH(opponent, 1); } + } +} + +AI_SINGLE_BATTLE_TEST("AI_FLAG_SMART_MON_CHOICES: AI correctly handles abilities when scoring moves") +{ + GIVEN { + ASSUME(B_PRANKSTER_DARK_TYPES >= GEN_7); + ASSUME(gSpeciesInfo[SPECIES_GRENINJA].types[1] == TYPE_DARK); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_TRY_TO_FAINT | AI_FLAG_CHECK_VIABILITY | AI_FLAG_OMNISCIENT | AI_FLAG_SMART_MON_CHOICES); + PLAYER(SPECIES_GRENINJA) { Moves(MOVE_WATER_GUN); } + OPPONENT(SPECIES_WHIMSICOTT) { Ability(ABILITY_PRANKSTER); Moves(MOVE_LEECH_SEED, MOVE_STUN_SPORE, MOVE_ABSORB); } + OPPONENT(SPECIES_WHIMSICOTT) { Ability(ABILITY_INFILTRATOR); } + } WHEN { + TURN { MOVE(player, MOVE_WATER_GUN); EXPECT_MOVE(opponent, MOVE_ABSORB); } + } +} diff --git a/test/battle/ai/ai_trytofaint.c b/test/battle/ai/ai_trytofaint.c index ed6e1fccdd..10eca2d676 100644 --- a/test/battle/ai/ai_trytofaint.c +++ b/test/battle/ai/ai_trytofaint.c @@ -43,7 +43,7 @@ AI_SINGLE_BATTLE_TEST("AI will choose a priority move if it is slower then the t TURN { MOVE(player, MOVE_STRENGTH); EXPECT_MOVE(opponent, MOVE_STRENGTH); } TURN { MOVE(player, MOVE_STRENGTH); EXPECT_MOVE(opponent, MOVE_QUICK_ATTACK); } } SCENE { - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } diff --git a/test/battle/battle_message.c b/test/battle/battle_message.c index 9ea74ceb27..423da7cf05 100644 --- a/test/battle/battle_message.c +++ b/test/battle/battle_message.c @@ -19,11 +19,11 @@ SINGLE_BATTLE_TEST("Battle Message: Send-in message depends on foe HP") if (hp > 69) MESSAGE("Go! Wynaut!"); else if (hp > 39) - MESSAGE("Do it! Wynaut!"); + MESSAGE("You're in charge, Wynaut!"); else if (hp > 9) MESSAGE("Go for it, Wynaut!"); else - MESSAGE("Your foe's weak! Get 'em, Wynaut!"); + MESSAGE("Your opponent's weak! Get 'em, Wynaut!"); } } diff --git a/test/battle/crit_chance.c b/test/battle/crit_chance.c index 2f057cc99b..69086acbe3 100644 --- a/test/battle/crit_chance.c +++ b/test/battle/crit_chance.c @@ -1,11 +1,6 @@ #include "global.h" #include "test/battle.h" -ASSUMPTIONS -{ - ASSUME(B_CRIT_CHANCE >= GEN_7); -} - SINGLE_BATTLE_TEST("Crit Chance: Side effected by Lucky Chant blocks critical hits") { GIVEN { @@ -135,6 +130,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Focus Energy increases the user's critical hit { PASSES_RANDOMLY(1, 2, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_FOCUS_ENERGY].effect == EFFECT_FOCUS_ENERGY); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -152,6 +148,7 @@ SINGLE_BATTLE_TEST("Crit Chance: High crit rate increases the critical hit ratio { PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_SLASH].criticalHitStage == 1); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -167,6 +164,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Super Luck increases the critical hit ratio by { PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); PLAYER(SPECIES_TOGEPI) { Ability(ABILITY_SUPER_LUCK); }; OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -181,6 +179,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Scope Lens increases the critical hit ratio by { PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gItemsInfo[ITEM_SCOPE_LENS].holdEffect == HOLD_EFFECT_SCOPE_LENS); PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_SCOPE_LENS); }; OPPONENT(SPECIES_WOBBUFFET); @@ -195,9 +194,10 @@ SINGLE_BATTLE_TEST("Crit Chance: Scope Lens increases the critical hit ratio by SINGLE_BATTLE_TEST("Crit Chance: High crit rate, Super Luck and Scope Lens cause the move to result in a critical hit") { GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_SLASH].criticalHitStage == 1); ASSUME(gItemsInfo[ITEM_SCOPE_LENS].holdEffect == HOLD_EFFECT_SCOPE_LENS); - PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_SUPER_LUCK); Item(ITEM_SCOPE_LENS); }; + PLAYER(SPECIES_TOGEKISS) { Ability(ABILITY_SUPER_LUCK); Item(ITEM_SCOPE_LENS); }; OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_SLASH); } @@ -220,6 +220,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Signature items Leek and Lucky Punch increase t PARAMETRIZE { species = SPECIES_CHANSEY; item = ITEM_LUCKY_PUNCH; } GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gItemsInfo[ITEM_LEEK].holdEffect == HOLD_EFFECT_LEEK); ASSUME(gItemsInfo[ITEM_LUCKY_PUNCH].holdEffect == HOLD_EFFECT_LUCKY_PUNCH); PLAYER(SPECIES_WOBBUFFET); @@ -236,6 +237,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Dire Hit increases a battler's critical hit cha { PASSES_RANDOMLY(1, 2, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gItemsInfo[ITEM_DIRE_HIT].battleUsage == EFFECT_ITEM_SET_FOCUS_ENERGY); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); @@ -244,7 +246,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Dire Hit increases a battler's critical hit cha TURN { MOVE(player, MOVE_SCRATCH); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FOCUS_ENERGY, player); - MESSAGE("Wobbuffet used Dire Hit to get pumped!"); + MESSAGE("Wobbuffet used the Dire Hit to get pumped!"); MESSAGE("Wobbuffet used Scratch!"); MESSAGE("A critical hit!"); } @@ -254,6 +256,7 @@ SINGLE_BATTLE_TEST("Crit Chance: Focus Energy increases critical hit ratio by tw { PASSES_RANDOMLY(8, 8, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_SLASH].criticalHitStage == 1); ASSUME(gMovesInfo[MOVE_FOCUS_ENERGY].effect == EFFECT_FOCUS_ENERGY); PLAYER(SPECIES_WOBBUFFET); @@ -286,6 +289,7 @@ DOUBLE_BATTLE_TEST("Crit Chance: Dragon Cheer increases critical hit ratio by on { PASSES_RANDOMLY(1, 8, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_TACKLE].criticalHitStage == 0); ASSUME(gMovesInfo[MOVE_DRAGON_CHEER].effect == EFFECT_DRAGON_CHEER); PLAYER(SPECIES_WOBBUFFET); @@ -306,6 +310,7 @@ DOUBLE_BATTLE_TEST("Crit Chance: Dragon Cheer increases critical hit ratio by tw { PASSES_RANDOMLY(1, 2, RNG_CRITICAL_HIT); GIVEN { + ASSUME(B_CRIT_CHANCE >= GEN_7); ASSUME(gMovesInfo[MOVE_TACKLE].criticalHitStage == 0); ASSUME(gMovesInfo[MOVE_DRAGON_CHEER].effect == EFFECT_DRAGON_CHEER); PLAYER(SPECIES_WOBBUFFET); diff --git a/test/battle/exp.c b/test/battle/exp.c index a7879b692c..7e232f5482 100644 --- a/test/battle/exp.c +++ b/test/battle/exp.c @@ -40,7 +40,7 @@ WILD_BATTLE_TEST("Higher leveled Pokemon give more exp", s32 exp) TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); } FINALLY { EXPECT_GT(results[1].exp, results[0].exp); @@ -61,7 +61,7 @@ WILD_BATTLE_TEST("Lucky Egg boosts gained exp points by 50%", s32 exp) TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); } FINALLY { EXPECT_MUL_EQ(results[1].exp, Q_4_12(1.5), results[0].exp); @@ -84,7 +84,7 @@ WILD_BATTLE_TEST("Exp is scaled to player and opponent's levels", s32 exp) TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); } FINALLY { EXPECT_GT(results[0].exp, results[1].exp); @@ -108,7 +108,7 @@ WILD_BATTLE_TEST("Large exp gains are supported", s32 exp) // #1455 TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Wild Blissey fainted!"); + MESSAGE("The wild Blissey fainted!"); EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); } THEN { EXPECT(GetMonData(&gPlayerParty[0], MON_DATA_LEVEL) > 1); @@ -136,7 +136,7 @@ WILD_BATTLE_TEST("Exp Share(held) gives Experience to mons which did not partici TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); // This message should appear only for gen6> exp share. NOT MESSAGE("The rest of your team gained EXP. Points thanks to the Exp. Share!"); } THEN { diff --git a/test/battle/form_change/battle_switch.c b/test/battle/form_change/battle_switch.c index ba564a02a1..ca7eafd8bf 100644 --- a/test/battle/form_change/battle_switch.c +++ b/test/battle/form_change/battle_switch.c @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon switching out") ABILITY_POPUP(player, ABILITY_STANCE_CHANGE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); MESSAGE("Aegislash used Tackle!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { EXPECT_EQ(player->species, SPECIES_AEGISLASH_SHIELD); } diff --git a/test/battle/form_change/faint.c b/test/battle/form_change/faint.c index 849d8e5883..dffabb44de 100644 --- a/test/battle/form_change/faint.c +++ b/test/battle/form_change/faint.c @@ -10,7 +10,7 @@ SINGLE_BATTLE_TEST("Aegislash reverts to Shield Form upon fainting") } WHEN { TURN { MOVE(opponent, MOVE_GUST); SEND_OUT(player, 1); } } SCENE { - MESSAGE("Foe Wobbuffet used Gust!"); + MESSAGE("The opposing Wobbuffet used Gust!"); MESSAGE("Aegislash fainted!"); } THEN { EXPECT_EQ(GetMonData(&PLAYER_PARTY[0], MON_DATA_SPECIES), SPECIES_AEGISLASH_SHIELD); diff --git a/test/battle/form_change/mega_evolution.c b/test/battle/form_change/mega_evolution.c index ffab6af18b..4c97c2c151 100644 --- a/test/battle/form_change/mega_evolution.c +++ b/test/battle/form_change/mega_evolution.c @@ -27,9 +27,9 @@ DOUBLE_BATTLE_TEST("Mega Evolution's order is determined by Speed - opponent fas } WHEN { TURN { MOVE(opponentLeft, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); MOVE(playerLeft, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); } } SCENE { - MESSAGE("Foe Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); + MESSAGE("The opposing Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponentLeft); - MESSAGE("Foe Gardevoir has Mega Evolved into Mega Gardevoir!"); + MESSAGE("The opposing Gardevoir has Mega Evolved into Mega Gardevoir!"); MESSAGE("Venusaur's Venusaurite is reacting to 1's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, playerLeft); MESSAGE("Venusaur has Mega Evolved into Mega Venusaur!"); @@ -49,9 +49,9 @@ DOUBLE_BATTLE_TEST("Mega Evolution's order is determined by Speed - player faste MESSAGE("Venusaur's Venusaurite is reacting to 1's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, playerLeft); MESSAGE("Venusaur has Mega Evolved into Mega Venusaur!"); - MESSAGE("Foe Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); + MESSAGE("The opposing Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponentLeft); - MESSAGE("Foe Gardevoir has Mega Evolved into Mega Gardevoir!"); + MESSAGE("The opposing Gardevoir has Mega Evolved into Mega Gardevoir!"); } } @@ -81,7 +81,7 @@ SINGLE_BATTLE_TEST("Mega Evolution affects turn order") TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); } } SCENE { MESSAGE("Gardevoir used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { ASSUME(player->speed == 205); } @@ -99,7 +99,7 @@ SINGLE_BATTLE_TEST("Abilities replaced by Mega Evolution do not affect turn orde TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); } } SCENE { MESSAGE("Sableye used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { ASSUME(player->speed == 45); } @@ -145,9 +145,9 @@ SINGLE_BATTLE_TEST("Regular Mega Evolution and Fervent Wish Mega Evolution can h ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, player); MESSAGE("Rayquaza has Mega Evolved into Mega Rayquaza!"); - MESSAGE("Foe Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); + MESSAGE("The opposing Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); - MESSAGE("Foe Gardevoir has Mega Evolved into Mega Gardevoir!"); + MESSAGE("The opposing Gardevoir has Mega Evolved into Mega Gardevoir!"); } THEN { EXPECT_EQ(player->species, SPECIES_RAYQUAZA_MEGA); EXPECT_EQ(opponent->species, SPECIES_GARDEVOIR_MEGA); @@ -168,10 +168,10 @@ SINGLE_BATTLE_TEST("Mega Evolved Pokemon do not change abilities after fainting" } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_CRUNCH, player); - MESSAGE("Foe Garchomp fainted!"); + MESSAGE("The opposing Garchomp fainted!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_ROUGH_SKIN); - MESSAGE("Wobbuffet was hurt by Foe Garchomp's Rough Skin!"); + MESSAGE("Wobbuffet was hurt by the opposing Garchomp's Rough Skin!"); HP_BAR(player); } } diff --git a/test/battle/form_change/primal_reversion.c b/test/battle/form_change/primal_reversion.c index df19a1d0d6..72e2a7e3c6 100644 --- a/test/battle/form_change/primal_reversion.c +++ b/test/battle/form_change/primal_reversion.c @@ -15,12 +15,12 @@ SINGLE_BATTLE_TEST("Primal reversion happens for Groudon only when holding Red O } SCENE { if (heldItem == ITEM_RED_ORB) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } } } THEN { @@ -47,12 +47,12 @@ SINGLE_BATTLE_TEST("Primal reversion happens for Kyogre only when holding Blue O } SCENE { if (heldItem == ITEM_BLUE_ORB) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponent); - MESSAGE("Foe Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Kyogre's Primal Reversion! It reverted to its primal state!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponent); - MESSAGE("Foe Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Kyogre's Primal Reversion! It reverted to its primal state!"); } } } THEN { @@ -76,13 +76,13 @@ DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - opponent f TURN { MOVE(opponentLeft, MOVE_CELEBRATE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponentRight); - MESSAGE("Foe Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Kyogre's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, playerRight); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponentLeft); - MESSAGE("Foe Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Groudon's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, playerLeft); - MESSAGE("Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Kyogre's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(playerLeft->species, SPECIES_KYOGRE_PRIMAL); EXPECT_EQ(opponentLeft->species, SPECIES_GROUDON_PRIMAL); @@ -102,13 +102,13 @@ DOUBLE_BATTLE_TEST("Primal reversion's order is determined by Speed - player fas TURN { MOVE(opponentLeft, MOVE_CELEBRATE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, playerRight); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, playerLeft); - MESSAGE("Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Kyogre's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponentLeft); - MESSAGE("Foe Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Groudon's Primal Reversion! It reverted to its primal state!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponentRight); - MESSAGE("Foe Kyogre's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Kyogre's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(playerLeft->species, SPECIES_KYOGRE_PRIMAL); EXPECT_EQ(opponentLeft->species, SPECIES_GROUDON_PRIMAL); @@ -130,7 +130,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a mon is sent out after a mon } SCENE { MESSAGE("Wobbuffet fainted!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); } @@ -147,7 +147,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a mon is switched in") TURN { MOVE(opponent, MOVE_CELEBRATE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); } @@ -168,7 +168,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Eject B MESSAGE("Wobbuffet is switched out with the Eject Button!"); SEND_IN_MESSAGE("Groudon"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); } @@ -185,10 +185,10 @@ SINGLE_BATTLE_TEST("Primal reversion happens after a switch-in caused by Red Car } WHEN { TURN { MOVE(player, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Wobbuffet held up its Red Card against Wobbuffet!"); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wobbuffet!"); MESSAGE("Groudon was dragged out!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); } @@ -207,9 +207,9 @@ SINGLE_BATTLE_TEST("Primal reversion happens after the entry hazards damage") } SCENE { SEND_IN_MESSAGE("Groudon"); HP_BAR(player); - MESSAGE("Groudon is hurt by spikes!"); + MESSAGE("Groudon was hurt by the spikes!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); } @@ -228,7 +228,7 @@ SINGLE_BATTLE_TEST("Primal reversion happens immediately if it was brought in by ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); MESSAGE("2 sent out Wynaut!"); } THEN { EXPECT_EQ(player->species, SPECIES_GROUDON_PRIMAL); diff --git a/test/battle/form_change/ultra_burst.c b/test/battle/form_change/ultra_burst.c index 5c6f4a2ce4..8eb21866f3 100644 --- a/test/battle/form_change/ultra_burst.c +++ b/test/battle/form_change/ultra_burst.c @@ -27,9 +27,9 @@ DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - opponent faster } WHEN { TURN { MOVE(opponentLeft, MOVE_CELEBRATE, gimmick: GIMMICK_ULTRA_BURST); MOVE(playerLeft, MOVE_CELEBRATE, gimmick: GIMMICK_ULTRA_BURST); } } SCENE { - MESSAGE("Bright light is about to burst out of Foe Necrozma!"); + MESSAGE("Bright light is about to burst out of the opposing Necrozma!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ULTRA_BURST, opponentLeft); - MESSAGE("Foe Necrozma regained its true power through Ultra Burst!"); + MESSAGE("The opposing Necrozma regained its true power through Ultra Burst!"); MESSAGE("Bright light is about to burst out of Necrozma!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ULTRA_BURST, playerLeft); MESSAGE("Necrozma regained its true power through Ultra Burst!"); @@ -49,9 +49,9 @@ DOUBLE_BATTLE_TEST("Ultra Burst's order is determined by Speed - player faster") MESSAGE("Bright light is about to burst out of Necrozma!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ULTRA_BURST, playerLeft); MESSAGE("Necrozma regained its true power through Ultra Burst!"); - MESSAGE("Bright light is about to burst out of Foe Necrozma!"); + MESSAGE("Bright light is about to burst out of the opposing Necrozma!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ULTRA_BURST, opponentLeft); - MESSAGE("Foe Necrozma regained its true power through Ultra Burst!"); + MESSAGE("The opposing Necrozma regained its true power through Ultra Burst!"); } } @@ -65,7 +65,7 @@ SINGLE_BATTLE_TEST("Ultra Burst affects turn order") TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_ULTRA_BURST); } } SCENE { MESSAGE("Necrozma used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { ASSUME(player->speed == 263); } @@ -111,9 +111,9 @@ SINGLE_BATTLE_TEST("Ultra Burst and Mega Evolution can happen on the same turn") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ULTRA_BURST, player); MESSAGE("Necrozma regained its true power through Ultra Burst!"); - MESSAGE("Foe Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); + MESSAGE("The opposing Gardevoir's Gardevoirite is reacting to 2's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); - MESSAGE("Foe Gardevoir has Mega Evolved into Mega Gardevoir!"); + MESSAGE("The opposing Gardevoir has Mega Evolved into Mega Gardevoir!"); } THEN { EXPECT_EQ(player->species, SPECIES_NECROZMA_ULTRA); EXPECT_EQ(opponent->species, SPECIES_GARDEVOIR_MEGA); diff --git a/test/battle/gimmick/dynamax.c b/test/battle/gimmick/dynamax.c index 036706190d..abc9a11c4d 100644 --- a/test/battle/gimmick/dynamax.c +++ b/test/battle/gimmick/dynamax.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax increases HP and max HP by 1.5x", u16 hp) ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_DYNAMAX_GROWTH, player); MESSAGE("Wobbuffet used Max Strike!"); } - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } THEN { results[i].hp = player->hp; } FINALLY { @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamax expires after three turns", u16 hp) MESSAGE("Wobbuffet used Max Strike!"); else MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } if (dynamax) // Expect to have visual reversion at the end. ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FORM_CHANGE, player); @@ -64,8 +64,8 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot be flinched") } WHEN { TURN { MOVE(opponent, MOVE_FAKE_OUT); MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); } } SCENE { - MESSAGE("Foe Wobbuffet used Fake Out!"); - NONE_OF { MESSAGE("Wobbuffet flinched!"); } + MESSAGE("The opposing Wobbuffet used Fake Out!"); + NONE_OF { MESSAGE("Wobbuffet flinched and couldn't move!"); } MESSAGE("Wobbuffet used Max Strike!"); } } @@ -80,7 +80,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot be hit by weight-based mo TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_HEAVY_SLAM); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Heavy Slam!"); + MESSAGE("The opposing Wobbuffet used Heavy Slam!"); MESSAGE("The move was blocked by the power of Dynamax!"); NONE_OF { HP_BAR(player); } } @@ -96,7 +96,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot be hit by OHKO moves") TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_FISSURE); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Machamp used Fissure!"); + MESSAGE("The opposing Machamp used Fissure!"); MESSAGE("Wobbuffet is unaffected!"); NONE_OF { HP_BAR(player); } } @@ -111,9 +111,9 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by Destiny Bond } WHEN { TURN { MOVE(opponent, MOVE_DESTINY_BOND); MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); } } SCENE { - MESSAGE("Foe Wobbuffet used Destiny Bond!"); + MESSAGE("The opposing Wobbuffet used Destiny Bond!"); MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); NONE_OF { HP_BAR(player); } } } @@ -126,10 +126,10 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are affected by Grudge") } WHEN { TURN { MOVE(opponent, MOVE_GRUDGE); MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); } } SCENE { - MESSAGE("Foe Wobbuffet used Grudge!"); + MESSAGE("The opposing Wobbuffet used Grudge!"); MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Wobbuffet's Tackle lost all its PP due to the GRUDGE!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet's Tackle lost all its PP due to the grudge!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } @@ -146,11 +146,11 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by phazing move TURN { MOVE(opponent, MOVE_WHIRLWIND); MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Dragon Tail!"); + MESSAGE("The opposing Wobbuffet used Dragon Tail!"); HP_BAR(player); MESSAGE("The move was blocked by the power of Dynamax!"); MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Whirlwind!"); + MESSAGE("The opposing Wobbuffet used Whirlwind!"); MESSAGE("The move was blocked by the power of Dynamax!"); } } @@ -166,7 +166,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by phazing move TURN { MOVE(opponent, MOVE_DRAGON_TAIL); MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); SEND_OUT(player, 1); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Dragon Tail!"); + MESSAGE("The opposing Wobbuffet used Dragon Tail!"); HP_BAR(player); MESSAGE("Wobbuffet fainted!"); NOT MESSAGE("The move was blocked by the power of Dynamax!"); @@ -185,7 +185,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not affected by Red Card") } SCENE { MESSAGE("Wobbuffet used Max Strike!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet held up its Red Card against Wobbuffet!"); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wobbuffet!"); MESSAGE("The move was blocked by the power of Dynamax!"); } THEN { EXPECT_EQ(opponent->item, ITEM_NONE); @@ -203,7 +203,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can be switched out by Eject But TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); MESSAGE("Wobbuffet is switched out with the Eject Button!"); } THEN { @@ -220,7 +220,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot have their ability swappe TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_SKILL_SWAP); } } SCENE { MESSAGE("Miltank used Max Strike!"); - MESSAGE("Foe Runerigus used Skill Swap!"); + MESSAGE("The opposing Runerigus used Skill Swap!"); MESSAGE("But it failed!"); } THEN { EXPECT_EQ(player->ability, ABILITY_SCRAPPY); @@ -236,7 +236,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can have their ability changed o TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_SIMPLE_BEAM); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Simple Beam!"); + MESSAGE("The opposing Wobbuffet used Simple Beam!"); MESSAGE("Wobbuffet acquired Simple!"); } THEN { EXPECT_EQ(player->ability, ABILITY_SIMPLE); @@ -253,7 +253,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are immune to Encore") TURN { MOVE(player, MOVE_EMBER); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Encore!"); + MESSAGE("The opposing Wobbuffet used Encore!"); MESSAGE("But it failed!"); MESSAGE("Wobbuffet used Max Flare!"); } @@ -273,7 +273,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can be encored immediately after MESSAGE("Wobbuffet used Max Knuckle!"); MESSAGE("Wobbuffet used Max Knuckle!"); MESSAGE("Wobbuffet used Max Knuckle!"); - MESSAGE("Foe Wobbuffet used Encore!"); + MESSAGE("The opposing Wobbuffet used Encore!"); MESSAGE("Wobbuffet used Arm Thrust!"); } } @@ -288,7 +288,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon's Max Moves cannot be disabled") TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_DISABLE); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Disable!"); + MESSAGE("The opposing Wobbuffet used Disable!"); MESSAGE("But it failed!"); } } @@ -306,9 +306,9 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon can have base moves disabled on TURN {} TURN { MOVE(player, MOVE_TACKLE, allowed: FALSE); MOVE(player, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Disable!"); + MESSAGE("The opposing Wobbuffet used Disable!"); MESSAGE("Wobbuffet's Tackle was disabled!"); MESSAGE("Wobbuffet used Max Strike!"); } @@ -323,7 +323,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are immune to Torment") TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_TORMENT); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Torment!"); + MESSAGE("The opposing Wobbuffet used Torment!"); MESSAGE("But it failed!"); } } @@ -338,8 +338,8 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon are not immune to Knock Off") TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_KNOCK_OFF); } } SCENE { MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Knock Off!"); - MESSAGE("Foe Wobbuffet knocked off Wobbuffet's Potion!"); + MESSAGE("The opposing Wobbuffet used Knock Off!"); + MESSAGE("The opposing Wobbuffet knocked off Wobbuffet's Potion!"); } THEN { EXPECT_EQ(player->item, ITEM_NONE); } @@ -355,9 +355,9 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon lose their substitutes") TURN { MOVE(player, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Substitute!"); - MESSAGE("Wobbuffet made a SUBSTITUTE!"); + MESSAGE("Wobbuffet put in a substitute!"); MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); HP_BAR(player); } } @@ -427,9 +427,9 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) Feint bypasses Max Guard but doesn't break it") } } SCENE { MESSAGE("Wobbuffet used Max Guard!"); - MESSAGE("Foe Wobbuffet used Feint!"); + MESSAGE("The opposing Wobbuffet used Feint!"); HP_BAR(playerLeft); - MESSAGE("Foe Wynaut used Tackle!"); + MESSAGE("The opposing Wynaut used Tackle!"); NONE_OF { HP_BAR(playerLeft); } } } @@ -519,7 +519,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Dynamaxed Pokemon cannot use Max Guard while holdi } } -// Almost anything that calculates gBattleMoveDamage based on HP has been changed to non-Dynamax HP. +// Almost anything that calculates damage based on HP has been changed to non-Dynamax HP. // This includes Leftovers, Life Orb, Heal Pulse, Rocky Helmet, Sandstorm, etc. etc. // There are some redundant cases (i.e Substitute) that can never be used by a Dynamaxed pokemon. // Anything that is conditional based off max HP still uses gBattleMons[battler].maxHP. @@ -537,7 +537,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Endeavor uses a Pokemon's non-Dynamax HP", s16 dam } WHEN { TURN { MOVE(opponent, MOVE_ENDEAVOR); MOVE(player, MOVE_TACKLE, gimmick: dynamax); } } SCENE { - MESSAGE("Foe Wobbuffet used Endeavor!"); + MESSAGE("The opposing Wobbuffet used Endeavor!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); @@ -556,7 +556,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Super Fang uses a Pokemon's non-Dynamax HP", s16 d } WHEN { TURN { MOVE(opponent, MOVE_SUPER_FANG); MOVE(player, MOVE_TACKLE, gimmick: dynamax); } } SCENE { - MESSAGE("Foe Wobbuffet used Super Fang!"); + MESSAGE("The opposing Wobbuffet used Super Fang!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); @@ -575,7 +575,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Pain Split uses a Pokemon's non-Dynamax HP", s16 d } WHEN { TURN { MOVE(opponent, MOVE_PAIN_SPLIT); MOVE(player, MOVE_TACKLE, gimmick: dynamax); } } SCENE { - MESSAGE("Foe Wobbuffet used Pain Split!"); + MESSAGE("The opposing Wobbuffet used Pain Split!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); @@ -595,7 +595,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Sitrus Berries heal based on a Pokemon's non-Dynam } WHEN { TURN { MOVE(opponent, MOVE_FLING); MOVE(player, MOVE_TACKLE, gimmick: dynamax); } } SCENE { - MESSAGE("Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Sitrus Berry!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); @@ -614,7 +614,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Heal Pulse heals based on a Pokemon's non-Dynamax } WHEN { TURN { MOVE(opponent, MOVE_HEAL_PULSE); MOVE(player, MOVE_TACKLE, gimmick: dynamax); } } SCENE { - MESSAGE("Foe Wobbuffet used Heal Pulse!"); + MESSAGE("The opposing Wobbuffet used Heal Pulse!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_EQ(results[0].damage, results[1].damage); @@ -634,14 +634,14 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Strike lowers single opponent's speed") TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_TACKLE); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet used Max Strike!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); // turn 2 MESSAGE("Wobbuffet used Max Strike!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } @@ -664,21 +664,21 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) Max Strike lowers both opponents' speed") MOVE(opponentRight, MOVE_TACKLE, target: playerLeft); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet used Max Strike!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); // turn 2 MESSAGE("Wobbuffet used Max Strike!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Wobbuffet's Speed fell!"); - MESSAGE("Foe Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); } } @@ -709,8 +709,8 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) Max Knuckle raises both allies' attack") MESSAGE("Wynaut's Attack rose!"); MESSAGE("Wynaut used Tackle!"); HP_BAR(opponentRight, captureDamage: &damage[1]); - MESSAGE("Foe Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wynaut used Celebrate!"); // turn 2 MESSAGE("Wobbuffet used Max Knuckle!"); HP_BAR(opponentLeft, captureDamage: &damage[2]); @@ -736,8 +736,8 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Flare sets up sunlight") TURN { MOVE(player, MOVE_EMBER, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { MESSAGE("Wobbuffet used Max Flare!"); - MESSAGE("The sunlight got bright!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The sunlight turned harsh!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SUN_CONTINUES); } } @@ -753,7 +753,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Geyser sets up heavy rain") } SCENE { MESSAGE("Wobbuffet used Max Geyser!"); MESSAGE("It started to rain!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RAIN_CONTINUES); } } @@ -769,7 +769,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Hailstorm sets up hail") } SCENE { MESSAGE("Wobbuffet used Max Hailstorm!"); MESSAGE("It started to hail!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HAIL_CONTINUES); } } @@ -784,8 +784,8 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Rockfall sets up a sandstorm") TURN { MOVE(player, MOVE_ROCK_THROW, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { MESSAGE("Wobbuffet used Max Rockfall!"); - MESSAGE("A sandstorm brewed!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("A sandstorm kicked up!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SANDSTORM_CONTINUES); } } @@ -806,7 +806,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Overgrowth sets up Grassy Terrain") MESSAGE("Grass grew to cover the battlefield!"); MESSAGE("Wobbuffet is healed by the grassy terrain!"); HP_BAR(player, damage: -maxHP/16); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); HP_BAR(opponent, damage: -maxHP/16); } } @@ -821,9 +821,9 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Mindstorm sets up Psychic Terrain") TURN { MOVE(opponent, MOVE_EXTREME_SPEED); MOVE(player, MOVE_PSYCHIC, gimmick: GIMMICK_DYNAMAX); } TURN { MOVE(opponent, MOVE_EXTREME_SPEED); MOVE(player, MOVE_PSYCHIC); } } SCENE { - MESSAGE("Foe Wobbuffet used Extreme Speed!"); + MESSAGE("The opposing Wobbuffet used Extreme Speed!"); MESSAGE("Wobbuffet used Max Mindstorm!"); - MESSAGE("Foe Wobbuffet cannot use Extreme Speed!"); + MESSAGE("The opposing Wobbuffet cannot use Extreme Speed!"); MESSAGE("Wobbuffet used Max Mindstorm!"); } } @@ -838,7 +838,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Lightning sets up Electric Terrain") TURN { MOVE(player, MOVE_THUNDERBOLT, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_SPORE); } } SCENE { MESSAGE("Wobbuffet used Max Lightning!"); - MESSAGE("Foe Wobbuffet used Spore!"); + MESSAGE("The opposing Wobbuffet used Spore!"); MESSAGE("Wobbuffet surrounds itself with electrified terrain!"); } } @@ -853,7 +853,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Starfall sets up Misty Terrain") TURN { MOVE(player, MOVE_MOONBLAST, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_TOXIC); } } SCENE { MESSAGE("Wobbuffet used Max Starfall!"); - MESSAGE("Foe Wobbuffet used Toxic!"); + MESSAGE("The opposing Wobbuffet used Toxic!"); MESSAGE("Wobbuffet surrounds itself with a protective mist!"); } } @@ -873,7 +873,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Stonesurge sets up Stealth Rocks") MESSAGE("Drednaw used G-Max Stonesurge!"); MESSAGE("Pointed stones float in the air around the opposing team!"); // turn 2 - MESSAGE("Pointed stones dug into Foe Wobbuffet!"); + MESSAGE("Pointed stones dug into the opposing Wobbuffet!"); } } @@ -893,13 +893,13 @@ SINGLE_BATTLE_TEST("(DYNAMAX) G-Max Steelsurge sets up sharp steel") } SCENE { // turn 1 MESSAGE("Copperajah used G-Max Steelsurge!"); - MESSAGE("Sharp-pointed steel floats around the opposing team!"); + MESSAGE("Sharp-pointed pieces of steel started floating around the opposing Pokémon!"); // turn 2 MESSAGE("2 sent out Hatterene!"); - MESSAGE("Sharp steel bit into Foe Hatterene!"); + MESSAGE("The sharp steel bit into the opposing Hatterene!"); // turn 4 - MESSAGE("Foe Hatterene used Defog!"); - MESSAGE("The sharp steel disappeared from the ground around the opposing team!"); + MESSAGE("The opposing Hatterene used Defog!"); + MESSAGE("The pieces of steel surrounding the opposing Pokémon disappeared!"); } THEN { EXPECT_MUL_EQ(opponent->maxHP, Q_4_12(0.75), opponent->hp); } @@ -939,10 +939,10 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Volt Crash paralyzes both opponents") MESSAGE("Pikachu used G-Max Volt Crash!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponentLeft); STATUS_ICON(opponentLeft, paralysis: TRUE); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PRZ, opponentRight); STATUS_ICON(opponentRight, paralysis: TRUE); - MESSAGE("Foe Wynaut is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wynaut is paralyzed, so it may be unable to move!"); } } @@ -969,21 +969,21 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Stun Shock paralyzes or poisons both opponen ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentLeft); if (statusAnim == B_ANIM_STATUS_PSN) { STATUS_ICON(opponentLeft, poison: TRUE); - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); } else { STATUS_ICON(opponentLeft, paralysis: TRUE); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); } // opponent right ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentRight); if (statusAnim == B_ANIM_STATUS_PSN) { STATUS_ICON(opponentRight, poison: TRUE); - MESSAGE("Foe Wynaut was poisoned!"); + MESSAGE("The opposing Wynaut was poisoned!"); } else { STATUS_ICON(opponentRight, paralysis: TRUE); - MESSAGE("Foe Wynaut is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wynaut is paralyzed, so it may be unable to move!"); } } } @@ -1005,14 +1005,14 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Stun Shock chooses statuses before consideri NONE_OF { // opponent left STATUS_ICON(opponentLeft, poison: TRUE); - MESSAGE("Foe Garbodor was poisoned!"); + MESSAGE("The opposing Garbodor was poisoned!"); STATUS_ICON(opponentLeft, paralysis: TRUE); - MESSAGE("Foe Garbodor is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Garbodor is paralyzed, so it may be unable to move!"); // opponent right STATUS_ICON(opponentRight, poison: TRUE); - MESSAGE("Foe Trubbish was poisoned!"); + MESSAGE("The opposing Trubbish was poisoned!"); STATUS_ICON(opponentRight, paralysis: TRUE); - MESSAGE("Foe Trubbish is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Trubbish is paralyzed, so it may be unable to move!"); } } } @@ -1039,29 +1039,29 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Befuddle paralyzes, poisons, or sleeps both ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentLeft); if (statusAnim == B_ANIM_STATUS_PSN) { STATUS_ICON(opponentLeft, poison: TRUE); - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); } else if (statusAnim == B_ANIM_STATUS_PRZ) { STATUS_ICON(opponentLeft, paralysis: TRUE); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); } else { STATUS_ICON(opponentLeft, sleep: TRUE); - MESSAGE("Foe Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet fell asleep!"); } // opponent right ANIMATION(ANIM_TYPE_STATUS, statusAnim, opponentRight); if (statusAnim == B_ANIM_STATUS_PSN) { STATUS_ICON(opponentRight, poison: TRUE); - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); } else if (statusAnim == B_ANIM_STATUS_PRZ) { STATUS_ICON(opponentRight, paralysis: TRUE); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); } else { STATUS_ICON(opponentRight, sleep: TRUE); - MESSAGE("Foe Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet fell asleep!"); } } } @@ -1079,10 +1079,10 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Gold Rush confuses both opponents and genera } SCENE { MESSAGE("Meowth used G-Max Gold Rush!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentLeft); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentRight); - MESSAGE("Foe Wobbuffet became confused!"); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("The opposing Wobbuffet became confused!"); + MESSAGE("Coins were scattered everywhere!"); } } @@ -1099,9 +1099,9 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Smite confuses both opponents") } SCENE { MESSAGE("Hatterene used G-Max Smite!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentLeft); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentRight); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } @@ -1118,10 +1118,10 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Cuddle infatuates both opponents, if possibl } SCENE { MESSAGE("Eevee used G-Max Cuddle!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, opponentLeft); - MESSAGE("Foe Wobbuffet fell in love!"); + MESSAGE("The opposing Wobbuffet fell in love!"); NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_INFATUATION, opponentRight); - MESSAGE("Foe Wobbuffet fell in love!"); + MESSAGE("The opposing Wobbuffet fell in love!"); } } } @@ -1138,8 +1138,8 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Terror traps both opponents") TURN { MOVE(playerLeft, MOVE_LICK, target: opponentLeft, gimmick: GIMMICK_DYNAMAX); } } SCENE { MESSAGE("Gengar used G-Max Terror!"); - MESSAGE("Foe Wobbuffet can't escape now!"); - MESSAGE("Foe Wobbuffet can't escape now!"); + MESSAGE("The opposing Wobbuffet can no longer escape!"); + MESSAGE("The opposing Wobbuffet can no longer escape!"); } THEN { // Can't find good way to test trapping EXPECT(opponentLeft->status2 & STATUS2_ESCAPE_PREVENTION); } @@ -1169,16 +1169,16 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Meltdown torments both opponents for 3 turns } SCENE { // turn 1 MESSAGE("Melmetal used G-Max Meltdown!"); - MESSAGE("Foe Wobbuffet was subjected to torment!"); - MESSAGE("Foe Wynaut was subjected to torment!"); - MESSAGE("Foe Wobbuffet used Splash!"); - MESSAGE("Foe Wynaut used Splash!"); + MESSAGE("The opposing Wobbuffet was subjected to torment!"); + MESSAGE("The opposing Wynaut was subjected to torment!"); + MESSAGE("The opposing Wobbuffet used Splash!"); + MESSAGE("The opposing Wynaut used Splash!"); // turn 2 - MESSAGE("Foe Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wynaut used Celebrate!"); // end of turn 3 - MESSAGE("Foe Wobbuffet is tormented no more!"); - MESSAGE("Foe Wynaut is tormented no more!"); + MESSAGE("The opposing Wobbuffet is no longer tormented!"); + MESSAGE("The opposing Wynaut is no longer tormented!"); } } @@ -1202,27 +1202,27 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Wildfire sets a field effect that damages no } SCENE { // turn 1 MESSAGE("Charizard used G-Max Wildfire!"); - MESSAGE("The opposing team was surrounded by flames!"); - MESSAGE("Foe Wobbuffet is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Pokémon were surrounded by fire!"); + MESSAGE("The opposing Wobbuffet is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentLeft, captureDamage: &damage); - MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 2 - MESSAGE("Foe Wobbuffet is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Wobbuffet is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentLeft); - MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 3 - NONE_OF { MESSAGE("Foe Arcanine is burning up within G-Max Wildfire's flames!"); } - MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); + NONE_OF { MESSAGE("The opposing Arcanine is burning up within G-Max Wildfire's flames!"); } + MESSAGE("The opposing Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 4 - MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Wynaut is burning up within G-Max Wildfire's flames!"); HP_BAR(opponentRight); // turn 5 NONE_OF { HP_BAR(opponentRight); - MESSAGE("Foe Wynaut is burning up within G-Max Wildfire's flames!"); + MESSAGE("The opposing Wynaut is burning up within G-Max Wildfire's flames!"); } } THEN { EXPECT_EQ(damage, 100); @@ -1248,8 +1248,8 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Replenish recycles allies' berries 50\% of t // turn 1 MESSAGE("Using Apicot Berry, the Sp. Def of Snorlax rose!"); MESSAGE("Using Apicot Berry, the Sp. Def of Munchlax rose!"); - MESSAGE("Using Apicot Berry, the Sp. Def of Foe Wobbuffet rose!"); - MESSAGE("Using Apicot Berry, the Sp. Def of Foe Wobbuffet rose!"); + MESSAGE("Using Apicot Berry, the Sp. Def of the opposing Wobbuffet rose!"); + MESSAGE("Using Apicot Berry, the Sp. Def of the opposing Wobbuffet rose!"); // turn 2 MESSAGE("Snorlax used G-Max Replenish!"); MESSAGE("Snorlax found one Apicot Berry!"); @@ -1273,10 +1273,10 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Snooze makes only the target drowsy") } SCENE { // turn 1 MESSAGE("Grimmsnarl used G-Max Snooze!"); - MESSAGE("Grimmsnarl made Foe Blissey drowsy!"); + MESSAGE("The opposing Blissey grew drowsy!"); // turn 2 ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); - MESSAGE("Foe Blissey fell asleep!"); + MESSAGE("The opposing Blissey fell asleep!"); STATUS_ICON(opponentLeft, sleep: TRUE); } } @@ -1337,14 +1337,14 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Centiferno traps both opponents in Fire Spin } SCENE { // turn 1 MESSAGE("Centiskorch used G-Max Centiferno!"); - MESSAGE("Foe Wobbuffet is hurt by Fire Spin!"); + MESSAGE("The opposing Wobbuffet is hurt by Fire Spin!"); HP_BAR(opponentLeft); - MESSAGE("Foe Wynaut is hurt by Fire Spin!"); + MESSAGE("The opposing Wynaut is hurt by Fire Spin!"); HP_BAR(opponentRight); // turn 2 - Fire Spin continues even after Centiskorch switches out - MESSAGE("Foe Wobbuffet is hurt by Fire Spin!"); + MESSAGE("The opposing Wobbuffet is hurt by Fire Spin!"); HP_BAR(opponentLeft); - MESSAGE("Foe Wynaut is hurt by Fire Spin!"); + MESSAGE("The opposing Wynaut is hurt by Fire Spin!"); HP_BAR(opponentRight); } } @@ -1395,9 +1395,9 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max Depletion takes away 2 PP from the target's } WHEN { TURN { MOVE(playerLeft, MOVE_DRAGON_CLAW, target: opponentLeft, gimmick: GIMMICK_DYNAMAX); } } SCENE { - MESSAGE("Foe Sableye used Celebrate!"); + MESSAGE("The opposing Sableye used Celebrate!"); MESSAGE("Duraludon used G-Max Depletion!"); - MESSAGE("Reduced Foe Sableye's Celebrate by 2!"); + MESSAGE("The opposing Sableye's PP was reduced!"); } } @@ -1422,7 +1422,7 @@ DOUBLE_BATTLE_TEST("(DYNAMAX) G-Max One Blow bypasses Max Guard for full damage" MOVE(opponentLeft, MOVE_PSYCHIC, target: playerLeft, gimmick: GIMMICK_DYNAMAX); } } SCENE { if (protect) - MESSAGE("Foe Wobbuffet used Max Guard!"); + MESSAGE("The opposing Wobbuffet used Max Guard!"); MESSAGE("Urshifu used G-Max One Blow!"); HP_BAR(opponentLeft, captureDamage: &results[i].damage); } FINALLY { @@ -1457,8 +1457,8 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Moves don't execute effects on fainted battler } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_DYNAMAX_GROWTH, player); MESSAGE("Wobbuffet used Max Strike!"); - MESSAGE("Foe Wobbuffet fainted!"); - NOT MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet fainted!"); + NOT MESSAGE("The opposing Wobbuffet's Speed fell!"); } } @@ -1472,7 +1472,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Moxie clones can be triggered by Max Moves faintin } WHEN { TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_WATERFALL, gimmick: GIMMICK_DYNAMAX); SEND_OUT(opponent, 1); } } SCENE { - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); ABILITY_POPUP(player, ABILITY_MOXIE); MESSAGE("Gyarados's Moxie raised its Attack!"); } @@ -1488,7 +1488,7 @@ SINGLE_BATTLE_TEST("(DYNAMAX) Max Attacks prints a message when hitting into Max TURN { MOVE(player, MOVE_GROWL, gimmick: GIMMICK_DYNAMAX); MOVE(opponent, MOVE_TACKLE, gimmick: GIMMICK_DYNAMAX); } } SCENE { MESSAGE("Wobbuffet used Max Guard!"); - MESSAGE("Foe Wobbuffet used Max Strike!"); + MESSAGE("The opposing Wobbuffet used Max Strike!"); } } diff --git a/test/battle/gimmick/terastal.c b/test/battle/gimmick/terastal.c index 200d646bfb..a9e8fca871 100644 --- a/test/battle/gimmick/terastal.c +++ b/test/battle/gimmick/terastal.c @@ -199,7 +199,7 @@ SINGLE_BATTLE_TEST("(TERA) Terastallization changes type effectiveness", s16 dam } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: tera); MOVE(opponent, MOVE_WATER_GUN); } } SCENE { - MESSAGE("Foe Wobbuffet used Water Gun!"); + MESSAGE("The opposing Wobbuffet used Water Gun!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_GUN, opponent); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { @@ -215,7 +215,7 @@ SINGLE_BATTLE_TEST("(TERA) Terastallization changes type effectiveness") } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_EARTHQUAKE); } } SCENE { - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); MESSAGE("It doesn't affect Wobbuffet…"); NOT { HP_BAR(player); } } @@ -234,11 +234,11 @@ SINGLE_BATTLE_TEST("(TERA) Terastallization persists across switches") TURN { MOVE(opponent, MOVE_EARTHQUAKE); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); MESSAGE("It doesn't affect Wobbuffet…"); NOT { HP_BAR(player); } // turn 4 - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); MESSAGE("It doesn't affect Wobbuffet…"); NOT { HP_BAR(player); } } @@ -256,7 +256,7 @@ SINGLE_BATTLE_TEST("(TERA) Terastallization changes the effect of Curse") } SCENE { MESSAGE("Wobbuffet used Curse!"); HP_BAR(player); - MESSAGE("Wobbuffet cut its own HP and laid a CURSE on Foe Wobbuffet!"); + MESSAGE("Wobbuffet cut its own HP and put a curse on the opposing Wobbuffet!"); NOT { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } } } @@ -271,7 +271,7 @@ SINGLE_BATTLE_TEST("(TERA) Roost does not remove the user's Flying type while Te } SCENE { MESSAGE("Zapdos used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Foe Wobbuffet used Ice Beam!"); + MESSAGE("The opposing Wobbuffet used Ice Beam!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ICE_BEAM, opponent); MESSAGE("It's super effective!"); } @@ -346,11 +346,11 @@ SINGLE_BATTLE_TEST("(TERA) Reflect Type copies a Terastallized Pokemon's Tera Ty TURN { MOVE(player, MOVE_TACKLE); } } SCENE { // turn 2 - MESSAGE("Foe Wobbuffet used Reflect Type!"); + MESSAGE("The opposing Wobbuffet used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, opponent); // turn 3 MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("It doesn't affect Foe Wobbuffet…"); + MESSAGE("It doesn't affect the opposing Wobbuffet…"); NOT { HP_BAR(opponent); } } } @@ -365,10 +365,10 @@ SINGLE_BATTLE_TEST("(TERA) Synchronoise uses a Terastallized Pokemon's Tera Type TURN { MOVE(opponent, MOVE_SYNCHRONOISE, gimmick: GIMMICK_TERA); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Synchronoise!"); - MESSAGE("It had no effect on Wobbuffet!"); + MESSAGE("The opposing Wobbuffet used Synchronoise!"); + MESSAGE("It won't have any effect on Wobbuffet!"); // turn 2 - MESSAGE("Foe Wobbuffet used Synchronoise!"); + MESSAGE("The opposing Wobbuffet used Synchronoise!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SYNCHRONOISE, opponent); } } @@ -383,7 +383,7 @@ SINGLE_BATTLE_TEST("(TERA) Revelation Dance uses a Terastallized Pokemon's Tera TURN { MOVE(player, MOVE_REVELATION_DANCE, gimmick: GIMMICK_TERA); } } SCENE { MESSAGE("Oricorio used Revelation Dance!"); - MESSAGE("It doesn't affect Foe Gengar…"); + MESSAGE("It doesn't affect the opposing Gengar…"); NOT { HP_BAR(opponent); } } } @@ -466,7 +466,7 @@ SINGLE_BATTLE_TEST("(TERA) Stellar type does not change the user's defensive pro } WHEN { TURN { MOVE(player, MOVE_CELEBRATE, gimmick: tera); MOVE(opponent, MOVE_PSYCHIC); } } SCENE { - MESSAGE("Foe Wobbuffet used Psychic!"); + MESSAGE("The opposing Wobbuffet used Psychic!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC, opponent); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { @@ -485,11 +485,11 @@ SINGLE_BATTLE_TEST("(TERA) Reflect Type copies a Stellar-type Pokemon's base typ TURN { MOVE(player, MOVE_TACKLE); } } SCENE { // turn 2 - MESSAGE("Foe Wobbuffet used Reflect Type!"); + MESSAGE("The opposing Wobbuffet used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, opponent); // turn 3 MESSAGE("Banette used Tackle!"); - MESSAGE("It doesn't affect Foe Wobbuffet…"); + MESSAGE("It doesn't affect the opposing Wobbuffet…"); NOT { HP_BAR(opponent); } } } @@ -504,7 +504,7 @@ SINGLE_BATTLE_TEST("(TERA) Revelation Dance uses a Stellar-type Pokemon's base t TURN { MOVE(player, MOVE_REVELATION_DANCE, gimmick: GIMMICK_TERA); } } SCENE { MESSAGE("Oricorio used Revelation Dance!"); - MESSAGE("It doesn't affect Foe Gumshoos…"); + MESSAGE("It doesn't affect the opposing Gumshoos…"); NOT { HP_BAR(opponent); } } } @@ -523,7 +523,7 @@ SINGLE_BATTLE_TEST("(TERA) Conversion2 fails if last hit by a Stellar-type move" MESSAGE("Wobbuffet used Tera Blast!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); // turn 2 - MESSAGE("Foe Wobbuffet used Conversion 2!"); + MESSAGE("The opposing Wobbuffet used Conversion 2!"); MESSAGE("But it failed!"); } } @@ -539,7 +539,7 @@ SINGLE_BATTLE_TEST("(TERA) Roost does not remove Flying-type ground immunity whe } SCENE { MESSAGE("Zapdos used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Foe Wobbuffet used Ice Beam!"); + MESSAGE("The opposing Wobbuffet used Ice Beam!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ICE_BEAM, opponent); MESSAGE("It's super effective!"); } @@ -652,7 +652,7 @@ SINGLE_BATTLE_TEST("(TERA) Protean cannot change the type of a Terastallized Pok MOVE(opponent, MOVE_EMBER); } } SCENE { MESSAGE("Greninja used Bubble!"); - MESSAGE("Foe Wobbuffet used Ember!"); + MESSAGE("The opposing Wobbuffet used Ember!"); MESSAGE("It's super effective!"); } } diff --git a/test/battle/gimmick/zmove.c b/test/battle/gimmick/zmove.c index 4e6fc26cae..eb44184e5a 100644 --- a/test/battle/gimmick/zmove.c +++ b/test/battle/gimmick/zmove.c @@ -522,7 +522,7 @@ SINGLE_BATTLE_TEST("(Z-MOVE) 10,000,000 Volt Thunderbolt has an increased critic GIVEN { ASSUME(B_CRIT_CHANCE >= GEN_6); ASSUME(gMovesInfo[MOVE_10_000_000_VOLT_THUNDERBOLT].criticalHitStage == 2); - PLAYER(SPECIES_PIKACHU_PARTNER_CAP) { Item(ITEM_PIKASHUNIUM_Z); } + PLAYER(SPECIES_PIKACHU_PARTNER) { Item(ITEM_PIKASHUNIUM_Z); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { TURN { MOVE(player, MOVE_THUNDERBOLT, gimmick: GIMMICK_Z_MOVE); } @@ -597,7 +597,7 @@ SINGLE_BATTLE_TEST("(Z-MOVE) Splintered Stormshards removes terrain") } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ZMOVE_ACTIVATE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLINTERED_STORMSHARDS, player); - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, player); HP_BAR(opponent); } diff --git a/test/battle/hold_effect/ability_shield.c b/test/battle/hold_effect/ability_shield.c index e10c3e0887..3159d0d8a4 100644 --- a/test/battle/hold_effect/ability_shield.c +++ b/test/battle/hold_effect/ability_shield.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Ability Shield prevents Neutralizing Gas") TURN { } } SCENE { ABILITY_POPUP(opponent, ABILITY_NEUTRALIZING_GAS); - MESSAGE("Neutralizing Gas filled the area!"); + MESSAGE("Neutralizing gas filled the area!"); if (item == ITEM_ABILITY_SHIELD) { ABILITY_POPUP(player, ABILITY_DROUGHT); MESSAGE("Torkoal's Drought intensified the sun's rays!"); diff --git a/test/battle/hold_effect/air_balloon.c b/test/battle/hold_effect/air_balloon.c index 2851212391..293e1d80ca 100644 --- a/test/battle/hold_effect/air_balloon.c +++ b/test/battle/hold_effect/air_balloon.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Air Balloon prevents the holder from taking damage from grou TURN { MOVE(opponent, MOVE_EARTHQUAKE); } } SCENE { MESSAGE("Wobbuffet floats in the air with its Air Balloon!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); MESSAGE("It doesn't affect Wobbuffet…"); } @@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Air Balloon pops when the holder is hit by a move that is no TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet floats in the air with its Air Balloon!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet's Air Balloon popped!"); } } @@ -48,9 +48,9 @@ SINGLE_BATTLE_TEST("Air Balloon no longer prevents the holder from taking damage TURN { MOVE(opponent, MOVE_EARTHQUAKE); } } SCENE { MESSAGE("Wobbuffet floats in the air with its Air Balloon!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet's Air Balloon popped!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); NOT MESSAGE("It doesn't affect Wobbuffet…"); } @@ -68,7 +68,7 @@ SINGLE_BATTLE_TEST("Air Balloon can not be restored with Recycle after it has be } } SCENE { MESSAGE("Wobbuffet floats in the air with its Air Balloon!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet's Air Balloon popped!"); MESSAGE("Wobbuffet used Recycle!"); MESSAGE("But it failed!"); @@ -117,6 +117,6 @@ SINGLE_BATTLE_TEST("Air Balloon pops before it can be stolen with Thief or Covet } SCENE { MESSAGE("Wobbuffet floats in the air with its Air Balloon!"); MESSAGE("Wobbuffet's Air Balloon popped!"); - NOT MESSAGE("Foe Wobbuffet stole Wobbuffet's Air Balloon!"); + NOT MESSAGE("The opposing Wobbuffet stole Wobbuffet's Air Balloon!"); } } diff --git a/test/battle/hold_effect/berserk_gene.c b/test/battle/hold_effect/berserk_gene.c index cda82ebb60..59f78c1a12 100644 --- a/test/battle/hold_effect/berserk_gene.c +++ b/test/battle/hold_effect/berserk_gene.c @@ -182,7 +182,7 @@ SINGLE_BATTLE_TEST("Berserk Gene does not confuse when Safeguard is active") } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Berserk Gene, the Attack of Wobbuffet sharply rose!"); - MESSAGE("Wobbuffet's party is protected by Safeguard!"); + MESSAGE("Wobbuffet is protected by Safeguard!"); NOT MESSAGE("Wobbuffet became confused!"); } } diff --git a/test/battle/hold_effect/blunder_policy.c b/test/battle/hold_effect/blunder_policy.c new file mode 100644 index 0000000000..552ad2f6fb --- /dev/null +++ b/test/battle/hold_effect/blunder_policy.c @@ -0,0 +1,67 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gItemsInfo[ITEM_BLUNDER_POLICY].holdEffect == HOLD_EFFECT_BLUNDER_POLICY); +} + +SINGLE_BATTLE_TEST("Blunder Policy raises the users speed by 2 stages if the user misses") +{ + PASSES_RANDOMLY(3, 10, RNG_ACCURACY); + GIVEN { + ASSUME(gMovesInfo[MOVE_FOCUS_BLAST].accuracy == 70); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_BLUNDER_POLICY); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_FOCUS_BLAST); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_FOCUS_BLAST, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + } THEN { + EXPECT(player->item == ITEM_NONE); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE + 2); + } +} + + +SINGLE_BATTLE_TEST("Blunder Policy will never trigger if the move fails due to an immunity") +{ + PASSES_RANDOMLY(10, 10, RNG_ACCURACY); + GIVEN { + ASSUME(gMovesInfo[MOVE_FOCUS_BLAST].accuracy == 70); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_BLUNDER_POLICY); } + OPPONENT(SPECIES_GASTLY); + } WHEN { + TURN { MOVE(player, MOVE_FOCUS_BLAST); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FOCUS_BLAST, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + } + } THEN { + EXPECT(player->item == ITEM_BLUNDER_POLICY); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE); + } +} + +SINGLE_BATTLE_TEST("Blunder Policy will never trigger if the move fails due to Protect") +{ + PASSES_RANDOMLY(10, 10, RNG_ACCURACY); + GIVEN { + ASSUME(gMovesInfo[MOVE_FOCUS_BLAST].accuracy == 70); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_BLUNDER_POLICY); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_PROTECT); MOVE(player, MOVE_FOCUS_BLAST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_FOCUS_BLAST, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + } + } THEN { + EXPECT(player->item == ITEM_BLUNDER_POLICY); + EXPECT_EQ(player->statStages[STAT_SPEED], DEFAULT_STAT_STAGE); + } +} diff --git a/test/battle/hold_effect/booster_energy.c b/test/battle/hold_effect/booster_energy.c index a63f462b72..072eb8df60 100644 --- a/test/battle/hold_effect/booster_energy.c +++ b/test/battle/hold_effect/booster_energy.c @@ -209,3 +209,28 @@ SINGLE_BATTLE_TEST("Booster Energy can't be tricked if a Paradox species is invo MESSAGE("But it failed!"); } } + +DOUBLE_BATTLE_TEST("Booster Energy triggers correctly for all battlers if multiple fainted the previous turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_CATERPIE) { HP(1); } + PLAYER(SPECIES_GOUGING_FIRE) { Item(ITEM_BOOSTER_ENERGY); } + PLAYER(SPECIES_IRON_MOTH) { Item(ITEM_BOOSTER_ENERGY); } + OPPONENT(SPECIES_CATERPIE) { HP(1); } + OPPONENT(SPECIES_CATERPIE) { HP(1); } + OPPONENT(SPECIES_FLUTTER_MANE) { Item(ITEM_BOOSTER_ENERGY); } + OPPONENT(SPECIES_CATERPIE); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); + SEND_OUT(opponentRight, 3); + SEND_OUT(opponentLeft, 2); + SEND_OUT(playerRight, 3); + SEND_OUT(playerLeft, 2); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + ABILITY_POPUP(playerLeft, ABILITY_PROTOSYNTHESIS); + ABILITY_POPUP(playerRight, ABILITY_QUARK_DRIVE); + ABILITY_POPUP(opponentLeft, ABILITY_PROTOSYNTHESIS); + } +} diff --git a/test/battle/hold_effect/clear_amulet.c b/test/battle/hold_effect/clear_amulet.c index f2059a0285..d0666ff3a9 100644 --- a/test/battle/hold_effect/clear_amulet.c +++ b/test/battle/hold_effect/clear_amulet.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents Intimidate") HP_BAR(player, captureDamage: &turnOneHit); ABILITY_POPUP(player, ABILITY_INTIMIDATE); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Wobbuffet prevents its stats from being lowered!"); HP_BAR(player, captureDamage: &turnTwoHit); } THEN { EXPECT_EQ(turnOneHit, turnTwoHit); @@ -55,7 +55,7 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents stat reducing effects") TURN { MOVE(player, move); } } SCENE { NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Wobbuffet prevents its stats from being lowered!"); } } @@ -84,7 +84,7 @@ SINGLE_BATTLE_TEST("Clear Amulet prevents secondary effects that reduce stats") } SCENE { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Wobbuffet prevents its stats from being lowered!"); } } } diff --git a/test/battle/hold_effect/covert_cloak.c b/test/battle/hold_effect/covert_cloak.c index e15bca3b9f..b55b1492da 100644 --- a/test/battle/hold_effect/covert_cloak.c +++ b/test/battle/hold_effect/covert_cloak.c @@ -33,12 +33,12 @@ SINGLE_BATTLE_TEST("Covert Cloak blocks secondary effects") ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); NONE_OF { - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); - MESSAGE("Foe Wobbuffet was burned!"); - MESSAGE("Foe Wobbuffet was poisoned!"); - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); + MESSAGE("The opposing Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet was prevented from healing!"); + MESSAGE("The opposing Wobbuffet was prevented from healing!"); } } THEN { // Can't find good way to test trapping EXPECT(!(opponent->status2 & STATUS2_ESCAPE_PREVENTION)); @@ -68,16 +68,16 @@ SINGLE_BATTLE_TEST("Covert Cloak does not block primary effects") HP_BAR(opponent); switch (move) { case MOVE_INFESTATION: - MESSAGE("Foe Skarmory has been afflicted with an infestation by Wobbuffet!"); + MESSAGE("The opposing Skarmory has been afflicted with an infestation by Wobbuffet!"); break; case MOVE_THOUSAND_ARROWS: - MESSAGE("Foe Skarmory fell straight down!"); + MESSAGE("The opposing Skarmory fell straight down!"); break; case MOVE_JAW_LOCK: MESSAGE("Neither Pokémon can run away!"); break; case MOVE_PAY_DAY: - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); break; } } THEN { // Can't find good way to test trapping @@ -140,11 +140,11 @@ DOUBLE_BATTLE_TEST("Covert Cloak does or does not block Sparkling Aria depending } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPARKLING_ARIA, playerLeft); if (moveToUse == MOVE_TACKLE) { - MESSAGE("Foe Wobbuffet's burn was healed."); + MESSAGE("The opposing Wobbuffet's burn was cured!"); STATUS_ICON(opponentLeft, none: TRUE); } else { NONE_OF { - MESSAGE("Foe Wobbuffet's burn was healed."); + MESSAGE("The opposing Wobbuffet's burn was cured!"); STATUS_ICON(opponentLeft, none: TRUE); } } @@ -162,7 +162,7 @@ SINGLE_BATTLE_TEST("Covert Cloak blocks Sparkling Aria in singles") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPARKLING_ARIA, player); NONE_OF { - MESSAGE("Foe Wobbuffet's burn was healed."); + MESSAGE("The opposing Wobbuffet's burn was cured!"); STATUS_ICON(opponent, none: TRUE); } } diff --git a/test/battle/hold_effect/critical_hit_up.c b/test/battle/hold_effect/critical_hit_up.c index eb73da36dd..c23f29773a 100644 --- a/test/battle/hold_effect/critical_hit_up.c +++ b/test/battle/hold_effect/critical_hit_up.c @@ -25,11 +25,11 @@ SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two s if (move == MOVE_TACKLE) { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet used Lansat Berry to get pumped!"); + MESSAGE("Wobbuffet used the Lansat Berry to get pumped!"); } } else { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet used Lansat Berry to get pumped!"); + MESSAGE("Wobbuffet used the Lansat Berry to get pumped!"); } } } @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two s } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_RAGE, opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Bellsprout used Lansat Berry to get pumped!"); + MESSAGE("Bellsprout used the Lansat Berry to get pumped!"); } } @@ -61,7 +61,7 @@ SINGLE_BATTLE_TEST("Lansat Berry raises the holder's critical-hit-ratio by two s } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_RAGE, opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet used Lansat Berry to get pumped!"); + MESSAGE("Wobbuffet used the Lansat Berry to get pumped!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); MESSAGE("A critical hit!"); } diff --git a/test/battle/hold_effect/cure_status.c b/test/battle/hold_effect/cure_status.c index d00d891e26..133eeafb41 100644 --- a/test/battle/hold_effect/cure_status.c +++ b/test/battle/hold_effect/cure_status.c @@ -206,16 +206,16 @@ SINGLE_BATTLE_TEST("Opponent Pokemon can be further poisoned with Toxic spikes a } SCENE { MESSAGE("Wobbuffet used Toxic Spikes!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); // 1st switch-in MESSAGE("2 sent out Wynaut!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); STATUS_ICON(opponent, poison: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); if (item == ITEM_PECHA_BERRY) { - MESSAGE("Foe Wynaut's Pecha Berry cured poison!"); + MESSAGE("The opposing Wynaut's Pecha Berry cured its poison!"); } else { - MESSAGE("Foe Wynaut's Lum Berry cured its poison problem!"); + MESSAGE("The opposing Wynaut's Lum Berry cured its poison problem!"); } STATUS_ICON(opponent, poison: FALSE); // 2nd switch-in @@ -245,16 +245,16 @@ SINGLE_BATTLE_TEST("Player Pokemon can be further poisoned with Toxic spikes aft TURN { SWITCH(player, 1); } TURN { SWITCH(player, 2); } } SCENE { - MESSAGE("Foe Wobbuffet used Toxic Spikes!"); + MESSAGE("The opposing Wobbuffet used Toxic Spikes!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, opponent); - MESSAGE("Poison Spikes were scattered all around your team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around your team!"); // 1st switch-in SEND_IN_MESSAGE("Wobbuffet"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); STATUS_ICON(player, poison: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); if (item == ITEM_PECHA_BERRY) { - MESSAGE("Wobbuffet's Pecha Berry cured poison!"); + MESSAGE("Wobbuffet's Pecha Berry cured its poison!"); } else { MESSAGE("Wobbuffet's Lum Berry cured its poison problem!"); } @@ -265,3 +265,30 @@ SINGLE_BATTLE_TEST("Player Pokemon can be further poisoned with Toxic spikes aft STATUS_ICON(player, poison: TRUE); } } + +DOUBLE_BATTLE_TEST("Lum Berry correctly cures all battlers if multiple fainted the previous turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_CATERPIE) { HP(1); } + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_LUM_BERRY); Status1(STATUS1_BURN); } + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_LUM_BERRY); Status1(STATUS1_POISON); } + OPPONENT(SPECIES_CATERPIE) { HP(1); } + OPPONENT(SPECIES_CATERPIE) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_LUM_BERRY); Status1(STATUS1_PARALYSIS); } + OPPONENT(SPECIES_CATERPIE); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); + SEND_OUT(opponentRight, 3); + SEND_OUT(opponentLeft, 2); + SEND_OUT(playerRight, 3); + SEND_OUT(playerLeft, 2); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + } THEN { + EXPECT_EQ(playerLeft->status1, STATUS1_NONE); + EXPECT_EQ(playerRight->status1, STATUS1_NONE); + EXPECT_EQ(opponentLeft->status1, STATUS1_NONE); + + } +} diff --git a/test/battle/hold_effect/custap_berry.c b/test/battle/hold_effect/custap_berry.c index 469f3cf527..6e7b210e8d 100644 --- a/test/battle/hold_effect/custap_berry.c +++ b/test/battle/hold_effect/custap_berry.c @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Custap Berry allows the holder to move first in its priority TURN { MOVE(player, MOVE_TACKLE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet can act faster, thanks to Custap Berry!"); + MESSAGE("Wobbuffet can act faster than normal, thanks to its Custap Berry!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } @@ -30,7 +30,7 @@ SINGLE_BATTLE_TEST("Custap Berry allows the holder to move first in its priority TURN { MOVE(player, MOVE_TACKLE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Bellsprout can act faster, thanks to Custap Berry!"); + MESSAGE("Bellsprout can act faster than normal, thanks to its Custap Berry!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } @@ -46,6 +46,6 @@ SINGLE_BATTLE_TEST("Custap Berry activates even if the opposing mon switches out TURN { SWITCH(opponent, 1); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Regirock can act faster, thanks to Custap Berry!"); + MESSAGE("Regirock can act faster than normal, thanks to its Custap Berry!"); } } diff --git a/test/battle/hold_effect/eject_button.c b/test/battle/hold_effect/eject_button.c index f53a270d82..cd003c45c0 100644 --- a/test/battle/hold_effect/eject_button.c +++ b/test/battle/hold_effect/eject_button.c @@ -21,7 +21,7 @@ SINGLE_BATTLE_TEST("Eject Button is not triggered when there is nothing to switc ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } @@ -42,7 +42,7 @@ SINGLE_BATTLE_TEST("Eject Button is not activated by a Sheer Force boosted move" ANIMATION(ANIM_TYPE_MOVE, MOVE_FLAMETHROWER, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } @@ -61,12 +61,12 @@ SINGLE_BATTLE_TEST("Eject Button will not activate under Substitute") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, opponent); - MESSAGE("Foe Raichu made a SUBSTITUTE!"); + MESSAGE("The opposing Raichu put in a substitute!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); - MESSAGE("The SUBSTITUTE took damage for Foe Raichu!"); + MESSAGE("The substitute took damage for the opposing Raichu!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Raichu is switched out with the Eject Button!"); + MESSAGE("The opposing Raichu is switched out with the Eject Button!"); } } } @@ -85,7 +85,7 @@ SINGLE_BATTLE_TEST("Eject Button is not blocked by trapping abilities or moves") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); MESSAGE("2 sent out Wobbuffet!"); } } @@ -105,7 +105,7 @@ SINGLE_BATTLE_TEST("Eject Button is not triggered after the mon loses Eject Butt ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } @@ -126,7 +126,7 @@ SINGLE_BATTLE_TEST("Eject Button is not triggered after given to player by Picke } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ABILITY_POPUP(opponent, ABILITY_PICKPOCKET); - MESSAGE("Foe Sneasel stole Regieleki's Eject Button!"); + MESSAGE("The opposing Sneasel stole Regieleki's Eject Button!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } @@ -144,10 +144,10 @@ SINGLE_BATTLE_TEST("Eject Button has no chance to activate after Dragon Tail") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); - MESSAGE("Foe Chansey was dragged out!"); + MESSAGE("The opposing Chansey was dragged out!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Chansey is switched out with the Eject Button!"); + MESSAGE("The opposing Chansey is switched out with the Eject Button!"); } } } @@ -166,7 +166,7 @@ SINGLE_BATTLE_TEST("Eject Button prevents Volt Switch / U-Turn from activating") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_VOLT_SWITCH, player); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); } } @@ -184,7 +184,7 @@ SINGLE_BATTLE_TEST("Eject Button is activated before Emergency Exit") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_THUNDERBOLT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Golisopod is switched out with the Eject Button!"); + MESSAGE("The opposing Golisopod is switched out with the Eject Button!"); } } @@ -201,10 +201,10 @@ SINGLE_BATTLE_TEST("Eject Button is not triggered after High Jump Kick crash dam } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, player); - MESSAGE("Foe Wobbuffet kept going and crashed!"); + MESSAGE("The opposing Wobbuffet kept going and crashed!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet is switched out with the Eject Button!"); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); } } } diff --git a/test/battle/hold_effect/eject_pack.c b/test/battle/hold_effect/eject_pack.c index 8d85a77062..9272a23a7c 100644 --- a/test/battle/hold_effect/eject_pack.c +++ b/test/battle/hold_effect/eject_pack.c @@ -63,3 +63,25 @@ SINGLE_BATTLE_TEST("Eject Pack is triggered by self-inflicting stat decreases") ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } } + +SINGLE_BATTLE_TEST("Eject Pack will miss timing to switch out user if Emergency Exit was activated on target") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_EJECT_PACK); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(133); }; + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_OVERHEAT); SEND_OUT(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OVERHEAT, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet is switched out with the Eject Pack!"); + ABILITY_POPUP(opponent, ABILITY_EMERGENCY_EXIT); + } THEN { + EXPECT(player->species == SPECIES_WOBBUFFET); + EXPECT(player->item == ITEM_NONE); + EXPECT(opponent->species == SPECIES_WYNAUT); + } +} diff --git a/test/battle/hold_effect/enigma_berry.c b/test/battle/hold_effect/enigma_berry.c index c678b178d3..762774f25d 100644 --- a/test/battle/hold_effect/enigma_berry.c +++ b/test/battle/hold_effect/enigma_berry.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Enigma Berry recovers 25% of HP if hit by super effective mo ANIMATION(ANIM_TYPE_MOVE, MOVE_ENDURE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wynaut's Enigma Berry restored health!"); + MESSAGE("Wynaut restored its health using its Enigma Berry!"); HP_BAR(player, damage: -maxHP / 4); } } @@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Enigma Berry does nothing if not hit by super effective move ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Mightyena's Enigma Berry restored health!"); + MESSAGE("Mightyena restored its health using its Enigma Berry!"); } } } @@ -54,7 +54,23 @@ SINGLE_BATTLE_TEST("Enigma Berry does nothing if Heal Block applies") ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wynaut's Enigma Berry restored health!"); + MESSAGE("Wynaut restored its health using its Enigma Berry!"); } } } + +DOUBLE_BATTLE_TEST("Enigma Berry doesn't trigger if partner was hit") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { Item(ITEM_ENIGMA_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + } THEN { + EXPECT(opponentRight->item == ITEM_ENIGMA_BERRY); + } +} diff --git a/test/battle/hold_effect/gems.c b/test/battle/hold_effect/gems.c index ffba57651d..36a843bbfa 100644 --- a/test/battle/hold_effect/gems.c +++ b/test/battle/hold_effect/gems.c @@ -17,11 +17,11 @@ SINGLE_BATTLE_TEST("Gem is consumed when it corresponds to the type of a move") } SCENE { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Fire Gem strengthened Wobbuffet's power!"); + MESSAGE("The Fire Gem strengthened Wobbuffet's power!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Normal Gem strengthened Wobbuffet's power!"); + MESSAGE("The Normal Gem strengthened Wobbuffet's power!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); } } @@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Gem boost is only applied once") TURN { MOVE(player, MOVE_TACKLE); } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Normal Gem strengthened Wobbuffet's power!"); + MESSAGE("The Normal Gem strengthened Wobbuffet's power!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); HP_BAR(opponent, captureDamage: &boostedHit); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); @@ -83,7 +83,7 @@ SINGLE_BATTLE_TEST("Gem is consumed if the move type is changed") } } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Normal Gem strengthened Delcatty's power!"); + MESSAGE("The Normal Gem strengthened Delcatty's power!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FEINT_ATTACK, player); } } diff --git a/test/battle/hold_effect/jaboca_berry.c b/test/battle/hold_effect/jaboca_berry.c index 0b9975fc2a..373780be71 100644 --- a/test/battle/hold_effect/jaboca_berry.c +++ b/test/battle/hold_effect/jaboca_berry.c @@ -27,11 +27,11 @@ SINGLE_BATTLE_TEST("Jaboca Berry causes the attacker to lose 1/8 of its max HP i if (move == MOVE_TACKLE) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); HP_BAR(player, captureDamage: &damage); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Jaboca Berry!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Jaboca Berry!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Jaboca Berry!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Jaboca Berry!"); } } } THEN { @@ -54,7 +54,7 @@ SINGLE_BATTLE_TEST("Jaboca Berry tirggers before Bug Bite can steal it") HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); HP_BAR(player); - MESSAGE("Wyanut was hurt by Foe Wobbuffet's Jaboca Berry!"); - NOT MESSAGE("Wynaut stole and ate Foe Wobbuffet's Jaboca Berry!"); + MESSAGE("Wyanut was hurt by the opposing Wobbuffet's Jaboca Berry!"); + NOT MESSAGE("Wynaut stole and ate the opposing its target's Jaboca Berry!"); } } diff --git a/test/battle/hold_effect/kee_berry.c b/test/battle/hold_effect/kee_berry.c index ace35a824c..26cd2152a1 100644 --- a/test/battle/hold_effect/kee_berry.c +++ b/test/battle/hold_effect/kee_berry.c @@ -25,11 +25,11 @@ SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by one stage when hit HP_BAR(opponent); if (move == MOVE_TACKLE) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Kee Berry, the Defense of Foe Wobbuffet rose!"); + MESSAGE("Using Kee Berry, the Defense of the opposing Wobbuffet rose!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Kee Berry, the Defense of Foe Wobbuffet rose!"); + MESSAGE("Using Kee Berry, the Defense of the opposing Wobbuffet rose!"); } } } THEN { @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Kee Berry raises the holder's Defense by two stages with Rip ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Kee Berry, the Defense of Foe Applin sharply rose!"); + MESSAGE("Using Kee Berry, the Defense of the opposing Applin sharply rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2); } @@ -73,3 +73,19 @@ SINGLE_BATTLE_TEST("Kee Berry doesn't trigger if the item hold user used a physi EXPECT_EQ(player->statStages[STAT_DEF], DEFAULT_STAT_STAGE); } } + +DOUBLE_BATTLE_TEST("Kee Berry doesn't trigger if partner was hit") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { Item(ITEM_KEE_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + } THEN { + EXPECT(opponentRight->item == ITEM_KEE_BERRY); + } +} diff --git a/test/battle/hold_effect/leftovers.c b/test/battle/hold_effect/leftovers.c index 2151d43ff9..4ba6d7b97b 100644 --- a/test/battle/hold_effect/leftovers.c +++ b/test/battle/hold_effect/leftovers.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Leftovers recovers 1/16th HP at end of turn") } SCENE { s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's Leftovers restored its HP a little!"); + MESSAGE("Wobbuffet restored a little HP using its Leftovers!"); HP_BAR(player, damage: -maxHP / 16); } } @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Leftovers does nothing if max HP") } SCENE { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's Leftovers restored its HP a little!"); + MESSAGE("Wobbuffet restored a little HP using its Leftovers!"); HP_BAR(player); } } @@ -47,7 +47,7 @@ SINGLE_BATTLE_TEST("Leftovers does nothing if Heal Block applies") } SCENE { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's Leftovers restored its HP a little!"); + MESSAGE("Wobbuffet restored a little HP using its Leftovers!"); HP_BAR(player); } } diff --git a/test/battle/hold_effect/maranga_berry.c b/test/battle/hold_effect/maranga_berry.c index a7b90bd9b3..77cdaddf42 100644 --- a/test/battle/hold_effect/maranga_berry.c +++ b/test/battle/hold_effect/maranga_berry.c @@ -23,12 +23,12 @@ SINGLE_BATTLE_TEST("Maranga Berry raises the holder's Sp. Def by one stage when HP_BAR(opponent); if (move == MOVE_SWIFT) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Maranga Berry, the Sp. Def of Foe Wobbuffet rose!"); + MESSAGE("Using Maranga Berry, the Sp. Def of the opposing Wobbuffet rose!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Maranga Berry, the Sp. Def of Foe Wobbuffet rose!"); + MESSAGE("Using Maranga Berry, the Sp. Def of the opposing Wobbuffet rose!"); } } } THEN { @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Maranga Berry raises the holder's Sp. Def by two stages with ANIMATION(ANIM_TYPE_MOVE, MOVE_SWIFT, player); HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Using Maranga Berry, the Sp. Def of Foe Applin sharply rose!"); + MESSAGE("Using Maranga Berry, the Sp. Def of the opposing Applin sharply rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE + 2); } @@ -73,3 +73,19 @@ SINGLE_BATTLE_TEST("Maranga Berry doesn't trigger if the item hold user used a s EXPECT_EQ(player->statStages[STAT_SPDEF], DEFAULT_STAT_STAGE); } } + +DOUBLE_BATTLE_TEST("Maranga Berry doesn't trigger if partner was hit") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { Item(ITEM_MARANGA_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + } THEN { + EXPECT(opponentRight->item == ITEM_MARANGA_BERRY); + } +} diff --git a/test/battle/hold_effect/metronome.c b/test/battle/hold_effect/metronome.c index 42acc26d24..21ad326cf1 100644 --- a/test/battle/hold_effect/metronome.c +++ b/test/battle/hold_effect/metronome.c @@ -120,8 +120,8 @@ SINGLE_BATTLE_TEST("Metronome Item counts charging turn of moves for its attacki TURN { SKIP_TURN(player); } } SCENE { MESSAGE("Wobbuffet used Solar Beam!"); - MESSAGE("Wobbuffet took in sunlight!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Wobbuffet absorbed light!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Congratulations, 1!"); MESSAGE("Wobbuffet used Solar Beam!"); HP_BAR(opponent, captureDamage: &results[i].damage); @@ -144,7 +144,7 @@ SINGLE_BATTLE_TEST("Metronome Item doesn't increase damage per hit of multi-hit ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_ATTACK, player); HP_BAR(opponent, captureDamage: &damage[0]); HP_BAR(opponent, captureDamage: &damage[1]); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FURY_ATTACK, player); HP_BAR(opponent, captureDamage: &damage[2]); } THEN { diff --git a/test/battle/hold_effect/mirror_herb.c b/test/battle/hold_effect/mirror_herb.c index 52326cc60f..88a7467334 100644 --- a/test/battle/hold_effect/mirror_herb.c +++ b/test/battle/hold_effect/mirror_herb.c @@ -60,7 +60,7 @@ DOUBLE_BATTLE_TEST("Mirror Herb does not trigger for Ally's Soul Heart's stat ra TURN { MOVE(playerRight, MOVE_TACKLE, target:opponentLeft); } } SCENE { MESSAGE("Wynaut used Tackle!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); diff --git a/test/battle/hold_effect/protective_pads.c b/test/battle/hold_effect/protective_pads.c index 22032112f4..95de944b81 100644 --- a/test/battle/hold_effect/protective_pads.c +++ b/test/battle/hold_effect/protective_pads.c @@ -69,7 +69,7 @@ SINGLE_BATTLE_TEST("Protective Pads protects from Rocly Helmet Damage") HP_BAR(opponent); NONE_OF { HP_BAR(player); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rocky Helmet!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Rocky Helmet!"); } } } diff --git a/test/battle/hold_effect/quick_claw.c b/test/battle/hold_effect/quick_claw.c index b8b845ec25..a436b572cb 100644 --- a/test/battle/hold_effect/quick_claw.c +++ b/test/battle/hold_effect/quick_claw.c @@ -17,6 +17,6 @@ SINGLE_BATTLE_TEST("Quick Claw activates 20% of the time") TURN { MOVE(player, MOVE_TACKLE); } } SCENE { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } } diff --git a/test/battle/hold_effect/red_card.c b/test/battle/hold_effect/red_card.c index ad2f77861f..aa312797b2 100644 --- a/test/battle/hold_effect/red_card.c +++ b/test/battle/hold_effect/red_card.c @@ -20,8 +20,8 @@ SINGLE_BATTLE_TEST("Red Card switches the attacker with a random non-fainted rep } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } THEN { EXPECT(player->item == ITEM_NONE); } @@ -43,8 +43,8 @@ DOUBLE_BATTLE_TEST("Red Card switches the target with a random non-battler, non- } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } THEN { EXPECT(playerLeft->item == ITEM_NONE); } @@ -63,7 +63,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if holder faints") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } THEN { EXPECT(player->item == ITEM_NONE); @@ -82,7 +82,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if target is behind a Substitute" ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } THEN { EXPECT(player->item == ITEM_RED_CARD); // Not activated, so still has the item. @@ -102,7 +102,7 @@ SINGLE_BATTLE_TEST("Red Card activates after the last hit of a multi-hit move") HP_BAR(player); HP_BAR(player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } THEN { EXPECT(player->item == ITEM_NONE); } @@ -119,7 +119,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if no replacements") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } THEN { EXPECT(player->item == ITEM_RED_CARD); // Not activated, so still has the item. @@ -138,7 +138,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if replacements fainted") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } THEN { EXPECT(player->item == ITEM_RED_CARD); // Not activated, so still has the item. @@ -157,7 +157,7 @@ SINGLE_BATTLE_TEST("Red Card does not activate if knocked off") ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } THEN { EXPECT(player->item == ITEM_NONE); @@ -182,11 +182,11 @@ SINGLE_BATTLE_TEST("Red Card does not activate if stolen by a move") ANIMATION(ANIM_TYPE_MOVE, MOVE_THIEF, opponent); if (activate) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } } THEN { @@ -211,11 +211,11 @@ SINGLE_BATTLE_TEST("Red Card does not activate if stolen by Magician") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); if (activate) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Fennekin!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Fennekin!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Fennekin!"); } } } THEN { @@ -240,14 +240,14 @@ DOUBLE_BATTLE_TEST("Red Card activates for only the fastest target") // Fastest target's Red Card activates. ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); - MESSAGE("Foe Unown was dragged out!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); + MESSAGE("The opposing Unown was dragged out!"); // Slower target's Red Card still able to activate on other battler. ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); - MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); - MESSAGE("Foe Wobbuffet was dragged out!"); + MESSAGE("Wynaut held up its Red Card against the opposing Wynaut!"); + MESSAGE("The opposing Wobbuffet was dragged out!"); } THEN { EXPECT(playerLeft->item == ITEM_NONE); EXPECT(playerRight->item == ITEM_NONE); @@ -271,14 +271,14 @@ DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker is rooted") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); - MESSAGE("Foe Wobbuffet anchored itself with its roots!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); + MESSAGE("The opposing Wobbuffet anchored itself with its roots!"); // Red Card already consumed so cannot activate. ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); - MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + MESSAGE("Wynaut held up its Red Card against the opposing Wynaut!"); } } } @@ -299,14 +299,14 @@ DOUBLE_BATTLE_TEST("Red Card activates but fails if the attacker has Suction Cup } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerLeft); - MESSAGE("Wobbuffet held up its Red Card against Foe Octillery!"); - MESSAGE("Foe Octillery anchors itself with Suction Cups!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Octillery!"); + MESSAGE("The opposing Octillery anchors itself with Suction Cups!"); // Red Card already consumed so cannot activate. ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, playerRight); - MESSAGE("Wynaut held up its Red Card against Foe Wynaut!"); + MESSAGE("Wynaut held up its Red Card against the opposing Wynaut!"); } } } @@ -328,11 +328,11 @@ SINGLE_BATTLE_TEST("Red Card does not activate if switched by Dragon Tail") ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, opponent); if (activate) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } } @@ -349,7 +349,7 @@ SINGLE_BATTLE_TEST("Red Card activates and overrides U-turn") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } @@ -370,34 +370,16 @@ SINGLE_BATTLE_TEST("Red Card does not activate if attacker's Sheer Force applied ANIMATION(ANIM_TYPE_MOVE, move, opponent); if (activate) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Tauros!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Tauros!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Tauros!"); } } } } -SINGLE_BATTLE_TEST("Red Card activates before Emergency Exit") -{ - GIVEN { - PLAYER(SPECIES_GOLISOPOD) { MaxHP(100); HP(51); Item(ITEM_RED_CARD); } - PLAYER(SPECIES_WIMPOD); - OPPONENT(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_WYNAUT); - } WHEN { - TURN { MOVE(opponent, MOVE_TACKLE); SEND_OUT(player, 1); } - } SCENE { - ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Golisopod held up its Red Card against Foe Wobbuffet!"); - ABILITY_POPUP(player, ABILITY_EMERGENCY_EXIT); - SEND_IN_MESSAGE("Wimpod"); - } -} - SINGLE_BATTLE_TEST("Red Card is consumed after dragged out replacement has its Speed lowered by Sticky Web") { GIVEN { @@ -415,14 +397,14 @@ SINGLE_BATTLE_TEST("Red Card is consumed after dragged out replacement has its S // 2nd turn Red Card activation ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet held up its Red Card against Wobbuffet!"); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wobbuffet!"); MESSAGE("Wynaut was dragged out!"); - MESSAGE("Wynaut was caught in a Sticky Web!"); + MESSAGE("Wynaut was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); // 3rd turn, Red Card was consumed, it can't trigger again NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet held up its Red Card against Wynaut!"); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wynaut!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } } THEN { @@ -441,7 +423,7 @@ SINGLE_BATTLE_TEST("Red Card does not cause the dragged out mon to lose hp due t } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet held up its Red Card against Wobbuffet!"); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wobbuffet!"); MESSAGE("Wynaut was dragged out!"); NOT MESSAGE("Wynaut was hurt by its Life Orb!"); } @@ -463,9 +445,48 @@ SINGLE_BATTLE_TEST("Red Card does not activate if holder is switched in mid-turn MESSAGE("Wobbuffet is switched out with the Eject Button!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet held up its Red Card against Foe Wobbuffet!"); + MESSAGE("Wobbuffet held up its Red Card against the opposing Wobbuffet!"); } } } +SINGLE_BATTLE_TEST("Red Card prevents Emergency Exit activation when triggered") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_GOLISOPOD) { Item(ITEM_RED_CARD); Ability(ABILITY_EMERGENCY_EXIT); MaxHP(263); HP(262); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SUPER_FANG); MOVE(opponent, MOVE_CELEBRATE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SUPER_FANG, player); + HP_BAR(opponent); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + NOT ABILITY_POPUP(opponent, ABILITY_EMERGENCY_EXIT); + } +} + TO_DO_BATTLE_TEST("Red Card activates but fails if the attacker has Dynamaxed"); + +SINGLE_BATTLE_TEST("Red Card activates before Eject Pack") +{ + GIVEN { + ASSUME(MoveHasAdditionalEffectSelf(MOVE_OVERHEAT, MOVE_EFFECT_SP_ATK_MINUS_2) == TRUE); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_EJECT_PACK); } + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_RED_CARD); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_OVERHEAT); MOVE(opponent, MOVE_TACKLE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_OVERHEAT, player); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Wobbuffet is switched out with the Eject Button!"); + } + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); + MESSAGE("The opposing Wobbuffet held up its Red Card against Wobbuffet!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); + } +} diff --git a/test/battle/hold_effect/restore_hp.c b/test/battle/hold_effect/restore_hp.c index c19433751c..47f409ff84 100644 --- a/test/battle/hold_effect/restore_hp.c +++ b/test/battle/hold_effect/restore_hp.c @@ -22,9 +22,9 @@ DOUBLE_BATTLE_TEST("Restore HP Item effects do not miss timing") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); MESSAGE("A sea of fire enveloped the opposing team!"); - MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The opposing Wynaut was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); - MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + MESSAGE("The opposing Wobbuffet was hurt by the sea of fire!"); } } diff --git a/test/battle/hold_effect/restore_stats.c b/test/battle/hold_effect/restore_stats.c index 2958cdacae..c0f888469c 100644 --- a/test/battle/hold_effect/restore_stats.c +++ b/test/battle/hold_effect/restore_stats.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("White Herb restores stats when they're lowered") } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } THEN { EXPECT(player->item == ITEM_NONE); EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); @@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimi ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } THEN { EXPECT(player->item == ITEM_NONE); EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); @@ -56,11 +56,11 @@ DOUBLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimi ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); - MESSAGE("Foe Wobbuffet's White Herb restored its status!"); + MESSAGE("The opposing Wobbuffet returned its stats to normal using its White Herb!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); - MESSAGE("Foe Wynaut's White Herb restored its status!"); + MESSAGE("The opposing Wynaut returned its stats to normal using its White Herb!"); } THEN { EXPECT(opponentLeft->item == ITEM_NONE); EXPECT(opponentLeft->statStages[STAT_DEF] = DEFAULT_STAT_STAGE); @@ -81,11 +81,11 @@ SINGLE_BATTLE_TEST("White Herb restores stats after Attack was lowered by Intimi ABILITY_POPUP(opponent, ABILITY_INTIMIDATE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CLOSE_COMBAT, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } } THEN { EXPECT(player->item == ITEM_NONE); @@ -117,7 +117,7 @@ SINGLE_BATTLE_TEST("White Herb restores stats after all hits of a multi hit move ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } THEN { EXPECT(player->item == ITEM_NONE); EXPECT(player->statStages[STAT_SPEED] = DEFAULT_STAT_STAGE); @@ -141,18 +141,18 @@ SINGLE_BATTLE_TEST("White Herb wont have time to activate if it is knocked off o } SCENE { ANIMATION(ANIM_TYPE_MOVE, move, opponent); if (move == MOVE_THIEF) { - MESSAGE("Foe Wobbuffet stole Slugma's White Herb!"); + MESSAGE("The opposing Wobbuffet stole Slugma's White Herb!"); } ABILITY_POPUP(player, ABILITY_WEAK_ARMOR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Slugma's Weak Armor lowered its Defense!"); MESSAGE("Slugma's Weak Armor raised its Speed!"); if (move == MOVE_KNOCK_OFF) { - MESSAGE("Foe Wobbuffet knocked off Slugma's White Herb!"); + MESSAGE("The opposing Wobbuffet knocked off Slugma's White Herb!"); } NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } } THEN { EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); @@ -174,10 +174,10 @@ SINGLE_BATTLE_TEST("White Herb wont have time to activate if Magician steals it" MESSAGE("Slugma's Weak Armor lowered its Defense!"); MESSAGE("Slugma's Weak Armor raised its Speed!"); ABILITY_POPUP(opponent, ABILITY_MAGICIAN); - MESSAGE("Foe Fennekin stole Slugma's White Herb!"); + MESSAGE("The opposing Fennekin stole Slugma's White Herb!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Wobbuffet's White Herb restored its status!"); + MESSAGE("Wobbuffet returned its stats to normal using its White Herb!"); } } THEN { EXPECT(player->statStages[STAT_DEF] = DEFAULT_STAT_STAGE - 1); @@ -205,7 +205,7 @@ SINGLE_BATTLE_TEST("White Herb has correct interactions with Intimidate triggere // Defiant activates first, so White Herb doesn't have a chance to trigger. if (ability == ABILITY_COMPETITIVE) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); - MESSAGE("Igglybuff's White Herb restored its status!"); + MESSAGE("Igglybuff returned its stats to normal using its White Herb!"); } } THEN { if (ability == ABILITY_COMPETITIVE) { diff --git a/test/battle/hold_effect/rowap_berry.c b/test/battle/hold_effect/rowap_berry.c index 925caf2179..5dc85492c3 100644 --- a/test/battle/hold_effect/rowap_berry.c +++ b/test/battle/hold_effect/rowap_berry.c @@ -27,11 +27,11 @@ SINGLE_BATTLE_TEST("Rowap Berry causes the attacker to lose 1/8 of its max HP if if (move == MOVE_SWIFT) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); HP_BAR(player, captureDamage: &damage); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rowap Berry!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Rowap Berry!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rowap Berry!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Rowap Berry!"); } } } THEN { @@ -53,7 +53,7 @@ SINGLE_BATTLE_TEST("Rowap Berry is not triggered by a physical move") HP_BAR(opponent); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rowap Berry!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Rowap Berry!"); } } } diff --git a/test/battle/hold_effect/safety_goggles.c b/test/battle/hold_effect/safety_goggles.c index 4c5c6a2965..ec66ad8bcd 100644 --- a/test/battle/hold_effect/safety_goggles.c +++ b/test/battle/hold_effect/safety_goggles.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Safety Goggles block powder and spore moves") TURN { MOVE(player, MOVE_STUN_SPORE); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - MESSAGE("Foe Abra is not affected thanks to its Safety Goggles!"); + MESSAGE("The opposing Abra is not affected thanks to its Safety Goggles!"); } } @@ -28,7 +28,7 @@ SINGLE_BATTLE_TEST("Safety Goggles blocks damage from Hail") } WHEN { TURN { MOVE(player, MOVE_HAIL); } } SCENE { - NOT MESSAGE("Foe Wobbuffet is pelted by HAIL!"); + NOT MESSAGE("The opposing Wobbuffet is buffeted by the hail!"); } } @@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Safety Goggles blocks damage from Sandstorm") } WHEN { TURN { MOVE(player, MOVE_SANDSTORM); } } SCENE { - NOT MESSAGE("Foe Wobbuffet is buffeted by the sandstorm!"); + NOT MESSAGE("The opposing Wobbuffet is buffeted by the sandstorm!"); } } diff --git a/test/battle/hold_effect/speed_up.c b/test/battle/hold_effect/speed_up.c index c6ddc19d8d..4a8b28b6d9 100644 --- a/test/battle/hold_effect/speed_up.c +++ b/test/battle/hold_effect/speed_up.c @@ -81,9 +81,9 @@ DOUBLE_BATTLE_TEST("Salac Berry does not miss timing miss timing") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); MESSAGE("A sea of fire enveloped the opposing team!"); - MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The opposing Wynaut was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); - MESSAGE("Using Salac Berry, the Speed of Foe Wynaut rose!"); - MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + MESSAGE("Using Salac Berry, the Speed of the opposing Wynaut rose!"); + MESSAGE("The opposing Wobbuffet was hurt by the sea of fire!"); } } diff --git a/test/battle/item_effect/cure_status.c b/test/battle/item_effect/cure_status.c index 7f5601ab3c..6f7d403c43 100644 --- a/test/battle/item_effect/cure_status.c +++ b/test/battle/item_effect/cure_status.c @@ -57,7 +57,7 @@ SINGLE_BATTLE_TEST("Antidote resets Toxic Counter") TURN { ; } TURN { USE_ITEM(player, ITEM_ANTIDOTE, partyIndex: 0); } } SCENE { - MESSAGE("Foe Wobbuffet used Toxic!"); + MESSAGE("The opposing Wobbuffet used Toxic!"); MESSAGE("Wobbuffet had its status healed!"); } THEN { EXPECT_EQ(player->status1, STATUS1_NONE); diff --git a/test/battle/item_effect/escape.c b/test/battle/item_effect/escape.c index dcd880912d..bffa6e4292 100644 --- a/test/battle/item_effect/escape.c +++ b/test/battle/item_effect/escape.c @@ -14,7 +14,7 @@ WILD_BATTLE_TEST("Poke Toy lets the player escape from a wild battle") } WHEN { TURN { USE_ITEM(player, ITEM_POKE_TOY); } } SCENE { - MESSAGE("{PLAY_SE SE_FLEE}Got away safely!\p"); + MESSAGE("{PLAY_SE SE_FLEE}You got away safely!\p"); } } @@ -29,11 +29,11 @@ WILD_BATTLE_TEST("Poke Toy lets the player escape from a wild battle even if a m TURN { USE_ITEM(player, ITEM_POKE_TOY); } } SCENE { // Turn 1 - MESSAGE("Wild Wobbuffet used Mean Look!"); + MESSAGE("The wild Wobbuffet used Mean Look!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MEAN_LOOK, opponent); - MESSAGE("Wobbuffet can't escape now!"); + MESSAGE("Wobbuffet can no longer escape!"); // Turn 2 - MESSAGE("{PLAY_SE SE_FLEE}Got away safely!\p"); + MESSAGE("{PLAY_SE SE_FLEE}You got away safely!\p"); } } @@ -45,6 +45,6 @@ WILD_BATTLE_TEST("Poke Toy lets the player escape from a wild battle even if an } WHEN { TURN { USE_ITEM(player, ITEM_POKE_TOY); } } SCENE { - MESSAGE("{PLAY_SE SE_FLEE}Got away safely!\p"); + MESSAGE("{PLAY_SE SE_FLEE}You got away safely!\p"); } } diff --git a/test/battle/item_effect/heal_and_cure_status.c b/test/battle/item_effect/heal_and_cure_status.c index 70dc8322db..db15fbde84 100644 --- a/test/battle/item_effect/heal_and_cure_status.c +++ b/test/battle/item_effect/heal_and_cure_status.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Full Restore restores a battler's HP and cures any primary s } WHEN { TURN { USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 0); } } SCENE { - MESSAGE("Wobbuffet had its HP restored!"); + MESSAGE("Wobbuffet had its HP restored."); if (status != STATUS1_NONE) { MESSAGE("Wobbuffet had its status healed!"); // The message is not printed if status wasn't healed. } @@ -50,7 +50,7 @@ SINGLE_BATTLE_TEST("Full Restore restores a party members HP and cures any prima TURN { USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 1); } TURN { SWITCH(player, 1); } } SCENE { - MESSAGE("Wynaut had its HP restored!"); + MESSAGE("Wynaut had its HP restored."); if (status != STATUS1_NONE) { MESSAGE("Wynaut had its status healed!"); // The message is not printed if status wasn't healed. } @@ -76,7 +76,7 @@ SINGLE_BATTLE_TEST("Full Restore heals a battler from any primary status") } WHEN { TURN { USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 0); } } SCENE { - NOT MESSAGE("Wobbuffet had its HP restored!"); // The message is not printed if mon has max HP. + NOT MESSAGE("Wobbuffet had its HP restored."); // The message is not printed if mon has max HP. MESSAGE("Wobbuffet had its status healed!"); } THEN { EXPECT_EQ(player->status1, STATUS1_NONE); @@ -100,7 +100,7 @@ SINGLE_BATTLE_TEST("Full Restore heals a party member from any primary status") TURN { USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 1); } TURN { SWITCH(player, 1); } } SCENE { - NOT MESSAGE("Wynaut had its HP restored!"); // The message is not printed if mon has max HP. + NOT MESSAGE("Wynaut had its HP restored."); // The message is not printed if mon has max HP. MESSAGE("Wynaut had its status healed!"); } THEN { EXPECT_EQ(player->species, SPECIES_WYNAUT); @@ -118,7 +118,7 @@ SINGLE_BATTLE_TEST("Full Restore restores a battler's HP and cures confusion") TURN{ USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 0); } TURN{ MOVE(player, MOVE_TACKLE); } } SCENE { - MESSAGE("Wobbuffet had its HP restored!"); + MESSAGE("Wobbuffet had its HP restored."); NONE_OF { MESSAGE("Wobbuffet is confused!"); } } THEN { EXPECT_EQ(player->hp, player->maxHP); @@ -135,8 +135,8 @@ SINGLE_BATTLE_TEST("Full Restore resets Toxic Counter") TURN { ; } TURN { USE_ITEM(player, ITEM_FULL_RESTORE, partyIndex: 0); } } SCENE { - MESSAGE("Foe Wobbuffet used Toxic!"); - MESSAGE("Wobbuffet had its HP restored!"); + MESSAGE("The opposing Wobbuffet used Toxic!"); + MESSAGE("Wobbuffet had its HP restored."); MESSAGE("Wobbuffet had its status healed!"); } THEN { EXPECT_EQ(player->status1, STATUS1_NONE); diff --git a/test/battle/item_effect/increase_stat.c b/test/battle/item_effect/increase_stat.c index 4eba548961..9b3ced5759 100644 --- a/test/battle/item_effect/increase_stat.c +++ b/test/battle/item_effect/increase_stat.c @@ -39,7 +39,7 @@ SINGLE_BATTLE_TEST("X Defense sharply raises battler's Defense stat", s16 damage if (useItem) TURN { USE_ITEM(player, ITEM_X_DEFENSE); } TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { if (B_X_ITEMS_BUFF >= GEN_7) @@ -87,7 +87,7 @@ SINGLE_BATTLE_TEST("X Sp. Def sharply raises battler's Sp. Defense stat", s16 da if (useItem) TURN { USE_ITEM(player, ITEM_X_SP_DEF); } TURN { MOVE(opponent, MOVE_DISARMING_VOICE); } } SCENE { - MESSAGE("Foe Wobbuffet used Disarming Voice!"); + MESSAGE("The opposing Wobbuffet used Disarming Voice!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { if (B_X_ITEMS_BUFF >= GEN_7) @@ -121,11 +121,11 @@ SINGLE_BATTLE_TEST("X Speed sharply raises battler's Speed stat", s16 damage) if (useItem) { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); } else { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet used Tackle!"); } } @@ -148,7 +148,7 @@ SINGLE_BATTLE_TEST("X Accuracy sharply raises battler's Accuracy stat") TURN { MOVE(player, MOVE_SING); } } SCENE { MESSAGE("Wobbuffet used Sing!"); - MESSAGE("Foe Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet fell asleep!"); } } @@ -185,7 +185,7 @@ SINGLE_BATTLE_TEST("Max Mushrooms raises battler's Defense stat", s16 damage) if (useItem) TURN { USE_ITEM(player, ITEM_MAX_MUSHROOMS); } TURN { MOVE(opponent, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.66), results[1].damage); @@ -225,7 +225,7 @@ SINGLE_BATTLE_TEST("Max Mushrooms battler's Sp. Defense stat", s16 damage) if (useItem) TURN { USE_ITEM(player, ITEM_MAX_MUSHROOMS); } TURN { MOVE(opponent, MOVE_DISARMING_VOICE); } } SCENE { - MESSAGE("Foe Wobbuffet used Disarming Voice!"); + MESSAGE("The opposing Wobbuffet used Disarming Voice!"); HP_BAR(player, captureDamage: &results[i].damage); } FINALLY { EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.66), results[1].damage); @@ -248,11 +248,11 @@ SINGLE_BATTLE_TEST("Max Mushrooms raises battler's Speed stat", s16 damage) if (useItem) { MESSAGE("Wobbuffet used Tackle!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); } else { - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); MESSAGE("Wobbuffet used Tackle!"); } } diff --git a/test/battle/item_effect/revive.c b/test/battle/item_effect/revive.c index e113b6ae33..31d29cd599 100644 --- a/test/battle/item_effect/revive.c +++ b/test/battle/item_effect/revive.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Revive restores a fainted battler's HP to half") TURN { USE_ITEM(player, ITEM_REVIVE, partyIndex: 0); } TURN { SWITCH(player, 0); } } SCENE { - MESSAGE("Wynaut had its HP restored!"); + MESSAGE("Wynaut had its HP restored."); } THEN { EXPECT_EQ(player->hp, 100); } @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Max Revive restores a fainted battler's HP fully") TURN { USE_ITEM(player, ITEM_MAX_REVIVE, partyIndex: 0); } TURN { SWITCH(player, 0); } } SCENE { - MESSAGE("Wynaut had its HP restored!"); + MESSAGE("Wynaut had its HP restored."); } THEN { EXPECT_EQ(player->hp, 200); } @@ -49,7 +49,7 @@ SINGLE_BATTLE_TEST("Revival Herb restores a fainted battler's HP fully") TURN { USE_ITEM(player, ITEM_REVIVAL_HERB, partyIndex: 0); } TURN { SWITCH(player, 0); } } SCENE { - MESSAGE("Wynaut had its HP restored!"); + MESSAGE("Wynaut had its HP restored."); } THEN { EXPECT_EQ(player->hp, 200); } @@ -67,7 +67,7 @@ SINGLE_BATTLE_TEST("Max Honey restores a fainted battler's HP fully") TURN { USE_ITEM(player, ITEM_MAX_HONEY, partyIndex: 0); } TURN { SWITCH(player, 0); } } SCENE { - MESSAGE("Wynaut had its HP restored!"); + MESSAGE("Wynaut had its HP restored."); } THEN { EXPECT_EQ(player->hp, 200); } diff --git a/test/battle/item_effect/set_mist.c b/test/battle/item_effect/set_mist.c index a4225646aa..68ac3534bb 100644 --- a/test/battle/item_effect/set_mist.c +++ b/test/battle/item_effect/set_mist.c @@ -12,8 +12,8 @@ SINGLE_BATTLE_TEST("Guard Spec. sets Mist effect on the battlers side") TURN { MOVE(opponent, MOVE_GROWL); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MIST, player); - MESSAGE("Ally became shrouded in MIST!"); - MESSAGE("Foe Wobbuffet used Growl!"); - MESSAGE("Wobbuffet is protected by MIST!"); + MESSAGE("Your team became shrouded in mist!"); + MESSAGE("The opposing Wobbuffet used Growl!"); + MESSAGE("Wobbuffet is protected by the mist!"); } } diff --git a/test/battle/move.c b/test/battle/move.c index 655895da77..9ee37391ec 100644 --- a/test/battle/move.c +++ b/test/battle/move.c @@ -88,7 +88,7 @@ DOUBLE_BATTLE_TEST("Turn order is determined randomly if priority and Speed tie GIVEN { ASSUME(gMovesInfo[MOVE_ENDEAVOR].effect == EFFECT_ENDEAVOR); ASSUME(gMovesInfo[MOVE_LIFE_DEW].effect == EFFECT_JUNGLE_HEALING); - ASSUME(gMovesInfo[MOVE_CRUSH_GRIP].effect == EFFECT_VARY_POWER_BASED_ON_HP); + ASSUME(gMovesInfo[MOVE_CRUSH_GRIP].effect == EFFECT_POWER_BASED_ON_TARGET_HP); ASSUME(gMovesInfo[MOVE_SUPER_FANG].effect == EFFECT_SUPER_FANG); PLAYER(SPECIES_WOBBUFFET) { MaxHP(480); HP(360); Defense(100); Speed(1); } PLAYER(SPECIES_WYNAUT) { Speed(1); } @@ -222,3 +222,71 @@ SINGLE_BATTLE_TEST("Critical hits ignore negative stat stages", s16 damage) EXPECT_EQ(results[0].damage, results[i].damage); } } + +DOUBLE_BATTLE_TEST("Moves fail if they target the partner but they faint before the move could have been used") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target: playerRight); MOVE(playerLeft, MOVE_TACKLE, target: playerRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerLeft); + } +} + +DOUBLE_BATTLE_TEST("Moves do not fail if an alive partner is the target") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: playerRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerLeft); + } +} + +DOUBLE_BATTLE_TEST("Moves fail if they target into a pokemon that was fainted by the previous move") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET) { HP(1); } + } WHEN { + TURN { + MOVE(playerLeft, MOVE_HYPER_VOICE); + MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); + SEND_OUT(opponentLeft, 2); + SEND_OUT(opponentRight, 3); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, playerRight); + } +} + +DOUBLE_BATTLE_TEST("Moves that target the field are not going to fail if one mon fainted by the previous move") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_SURF].target == MOVE_TARGET_FOES_AND_ALLY); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_TACKLE, target: playerRight); MOVE(playerLeft, MOVE_SURF); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SURF, playerLeft); + } +} diff --git a/test/battle/move_effect/absorb.c b/test/battle/move_effect/absorb.c index 698ea41091..bd4eada975 100644 --- a/test/battle/move_effect/absorb.c +++ b/test/battle/move_effect/absorb.c @@ -24,6 +24,25 @@ SINGLE_BATTLE_TEST("Absorb recovers 50% of the damage dealt") } } +SINGLE_BATTLE_TEST("Absorb deals 50% of the damage dealt to user agains Liquid Ooze") +{ + s16 damage; + s16 healed; + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TENTACOOL) { Ability(ABILITY_LIQUID_OOZE); } + } WHEN { + TURN { MOVE(player, MOVE_ABSORB); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ABSORB, player); + HP_BAR(opponent, captureDamage: &damage); + HP_BAR(player, captureDamage: &healed); + MESSAGE("Wobbuffet sucked up the liquid ooze!"); + } THEN { + EXPECT_MUL_EQ(damage, Q_4_12(0.5), healed); + } +} + SINGLE_BATTLE_TEST("Absorb fails if Heal Block applies") { GIVEN { @@ -51,17 +70,17 @@ DOUBLE_BATTLE_TEST("Matcha Gatcha recovers 50% of the damage dealt from both tar GIVEN { ASSUME(gMovesInfo[MOVE_MATCHA_GOTCHA].effect == EFFECT_ABSORB); - PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_PIKACHU) { HP(1); } PLAYER(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_WOBBUFFET); - OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_STARYU); + OPPONENT(SPECIES_STARYU); } WHEN { TURN { MOVE(playerLeft, MOVE_MATCHA_GOTCHA); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MATCHA_GOTCHA, playerLeft); HP_BAR(opponentLeft, captureDamage: &damageLeft); - HP_BAR(playerLeft, captureDamage: &healedLeft); HP_BAR(opponentRight, captureDamage: &damageRight); + HP_BAR(playerLeft, captureDamage: &healedLeft); HP_BAR(playerLeft, captureDamage: &healedRight); } THEN { EXPECT_MUL_EQ(damageLeft, Q_4_12(-0.5), healedLeft); @@ -69,5 +88,41 @@ DOUBLE_BATTLE_TEST("Matcha Gatcha recovers 50% of the damage dealt from both tar } } +DOUBLE_BATTLE_TEST("Matcha Gatcha will faint the pokemon if Liquid Ooze drain deals enough damage") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_MATCHA_GOTCHA].effect == EFFECT_ABSORB); + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_TENTACOOL) { Ability(ABILITY_LIQUID_OOZE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MATCHA_GOTCHA); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_MATCHA_GOTCHA, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(playerLeft); + MESSAGE("Wobbuffet sucked up the liquid ooze!"); + MESSAGE("Wobbuffet fainted!"); + } +} + +SINGLE_BATTLE_TEST("Draining Kiss recovers 75% of the damage dealt") +{ + s16 damage; + s16 healed; + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_DRAINING_KISS); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAINING_KISS, player); + HP_BAR(opponent, captureDamage: &damage); + HP_BAR(player, captureDamage: &healed); + } THEN { + EXPECT_MUL_EQ(damage, Q_4_12(-0.75), healed); + } +} + TO_DO_BATTLE_TEST("Absorb recovers 50% of the damage dealt to a Substitute"); -TO_DO_BATTLE_TEST("Draining Kiss recovers 75% of the damage dealt"); // Tests .argument 's implementation diff --git a/test/battle/move_effect/accuracy_down.c b/test/battle/move_effect/accuracy_down.c index 8a015c4a67..f174a7f946 100644 --- a/test/battle/move_effect/accuracy_down.c +++ b/test/battle/move_effect/accuracy_down.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Sand Attack lowers Accuracy by 1 stage") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SAND_ATTACK, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's accuracy fell!"); + MESSAGE("The opposing Wobbuffet's accuracy fell!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, opponent); } } diff --git a/test/battle/move_effect/acupressure.c b/test/battle/move_effect/acupressure.c index e7254485fc..d59a3faee3 100644 --- a/test/battle/move_effect/acupressure.c +++ b/test/battle/move_effect/acupressure.c @@ -8,29 +8,8 @@ TO_DO_BATTLE_TEST("Acupressure fails on the ally if all of its stats are maximiz TO_DO_BATTLE_TEST("Acupressure works on the user if it's behind a Substitute (Gen5+)"); TO_DO_BATTLE_TEST("Acupressure fails on its ally if it's behind a Substitute"); -DOUBLE_BATTLE_TEST("Acupressure works on the ally if the user targeted itself but switched positions via Ally Switch") -{ - GIVEN { - PLAYER(SPECIES_WOBBUFFET); - PLAYER(SPECIES_WYNAUT); - OPPONENT(SPECIES_KADABRA); - OPPONENT(SPECIES_ABRA); - } WHEN { - TURN { MOVE(playerLeft, MOVE_ALLY_SWITCH); MOVE(playerRight, MOVE_ACUPRESSURE, target:playerRight); } - } SCENE { - MESSAGE("Wobbuffet used Ally Switch!"); - ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); - MESSAGE("Wobbuffet and Wynaut switched places!"); - - ANIMATION(ANIM_TYPE_MOVE, MOVE_ACUPRESSURE); - ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - NOT MESSAGE("But it failed!"); - } -} - DOUBLE_BATTLE_TEST("Acupressure fails on the user if it targeted its ally but switched positions via Ally Switch") { - KNOWN_FAILING; // Tested in Gen 5, Acupressure fails here GIVEN { PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WYNAUT); diff --git a/test/battle/move_effect/after_you.c b/test/battle/move_effect/after_you.c index 32ea44efb1..c1202f0f9c 100644 --- a/test/battle/move_effect/after_you.c +++ b/test/battle/move_effect/after_you.c @@ -46,7 +46,7 @@ DOUBLE_BATTLE_TEST("After You does nothing if the target has already moved") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); - MESSAGE("Foe Wynaut used After You!"); + MESSAGE("The opposing Wynaut used After You!"); MESSAGE("But it failed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); } @@ -75,7 +75,7 @@ DOUBLE_BATTLE_TEST("After You calculates correct turn order if only one pokemon MESSAGE("Regirock took the kind offer!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STONE_EDGE, playerRight); HP_BAR(opponentLeft); - MESSAGE("Foe Pidgeot fainted!"); + MESSAGE("The opposing Pidgeot fainted!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_AFTER_YOU, playerLeft); diff --git a/test/battle/move_effect/ally_switch.c b/test/battle/move_effect/ally_switch.c index b3e902fc79..c7aa52d7c5 100644 --- a/test/battle/move_effect/ally_switch.c +++ b/test/battle/move_effect/ally_switch.c @@ -54,11 +54,11 @@ DOUBLE_BATTLE_TEST("Ally Switch changes the position of battlers") ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); MESSAGE("Wobbuffet and Wynaut switched places!"); - MESSAGE("Foe Kadabra used Screech!"); + MESSAGE("The opposing Kadabra used Screech!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wynaut's Defense harshly fell!"); - MESSAGE("Foe Abra used Screech!"); + MESSAGE("The opposing Abra used Screech!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wynaut's Defense harshly fell!"); } THEN { @@ -84,7 +84,7 @@ DOUBLE_BATTLE_TEST("Ally Switch does not redirect the target of Snipe Shot") ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); MESSAGE("Wobbuffet and Wynaut switched places!"); - MESSAGE("Foe Kadabra used Snipe Shot!"); + MESSAGE("The opposing Kadabra used Snipe Shot!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SNIPE_SHOT, opponentLeft); HP_BAR(playerRight); } @@ -109,7 +109,7 @@ DOUBLE_BATTLE_TEST("Ally Switch does not redirect moves done by pokemon with Sta ANIMATION(ANIM_TYPE_MOVE, MOVE_ALLY_SWITCH, playerLeft); MESSAGE("Wobbuffet and Wynaut switched places!"); - MESSAGE("Foe Kadabra used Tackle!"); + MESSAGE("The opposing Kadabra used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); HP_BAR((ability == ABILITY_STALWART || ability == ABILITY_PROPELLER_TAIL) ? playerLeft : playerRight); } diff --git a/test/battle/move_effect/attack_down.c b/test/battle/move_effect/attack_down.c index 457d122281..e88ef43c26 100644 --- a/test/battle/move_effect/attack_down.c +++ b/test/battle/move_effect/attack_down.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Growl lowers Attack by 1 stage", s16 damage) if (lowerAttack) { ANIMATION(ANIM_TYPE_MOVE, MOVE_GROWL, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player, captureDamage: &results[i].damage); diff --git a/test/battle/move_effect/attack_down_2.c b/test/battle/move_effect/attack_down_2.c index 7b62294a76..6fefec5e45 100644 --- a/test/battle/move_effect/attack_down_2.c +++ b/test/battle/move_effect/attack_down_2.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Charm lowers Attack by 2 stages", s16 damage) if (lowerAttack) { ANIMATION(ANIM_TYPE_MOVE, MOVE_CHARM, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack harshly fell!"); + MESSAGE("The opposing Wobbuffet's Attack harshly fell!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player, captureDamage: &results[i].damage); diff --git a/test/battle/move_effect/baton_pass.c b/test/battle/move_effect/baton_pass.c index 02d8a8839e..b6a27179f3 100644 --- a/test/battle/move_effect/baton_pass.c +++ b/test/battle/move_effect/baton_pass.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("Baton Pass used after Memento works correctly") } SCENE { MESSAGE("Wobbuffet used Memento!"); MESSAGE("Wobbuffet fainted!"); - MESSAGE("Foe Wynaut used Baton Pass!"); + MESSAGE("The opposing Wynaut used Baton Pass!"); MESSAGE("2 sent out Caterpie!"); MESSAGE("Go! Wobbuffet!"); } diff --git a/test/battle/move_effect/beak_blast.c b/test/battle/move_effect/beak_blast.c index d3c8d01919..e716b7717f 100644 --- a/test/battle/move_effect/beak_blast.c +++ b/test/battle/move_effect/beak_blast.c @@ -22,9 +22,9 @@ DOUBLE_BATTLE_TEST("Beak Blast's charging message is shown before other moves ar MESSAGE("Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); MESSAGE("Wynaut used Beak Blast!"); @@ -51,18 +51,18 @@ DOUBLE_BATTLE_TEST("Beak Blast burns all who make contact with the pokemon") MESSAGE("Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); HP_BAR(playerLeft); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponentLeft, burn: TRUE); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentRight); HP_BAR(playerLeft); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponentRight, burn: TRUE); MESSAGE("Wynaut used Beak Blast!"); @@ -95,13 +95,13 @@ SINGLE_BATTLE_TEST("Beak Blast burns only when contact moves are used") if (burn) { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponent, burn: TRUE); } else { NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponent); - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponent, burn: TRUE); } } diff --git a/test/battle/move_effect/belly_drum.c b/test/battle/move_effect/belly_drum.c index 82abaf30c4..bfc558a982 100644 --- a/test/battle/move_effect/belly_drum.c +++ b/test/battle/move_effect/belly_drum.c @@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Belly Drum maximizes the user's Attack stat", s16 damage) if (raiseAttack) { ANIMATION(ANIM_TYPE_MOVE, MOVE_BELLY_DRUM, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); - MESSAGE("Wobbuffet cut its own HP and maximized ATTACK!"); + MESSAGE("Wobbuffet cut its own HP and maximized its Attack!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); HP_BAR(opponent, captureDamage: &results[i].damage); @@ -100,12 +100,36 @@ SINGLE_BATTLE_TEST("Belly Drum's HP cost doesn't trigger effects that trigger on TURN { MOVE(player, MOVE_BELLY_DRUM); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BELLY_DRUM, player); - MESSAGE("Wobbuffet cut its own HP and maximized ATTACK!"); + MESSAGE("Wobbuffet cut its own HP and maximized its Attack!"); NOT MESSAGE("Wobbuffet's Air Balloon popped!"); } } +SINGLE_BATTLE_TEST("Belly Drum minimizes the user's Attack stat with Contrary", s16 damage) +{ + bool32 raiseAttack; + PARAMETRIZE { raiseAttack = FALSE; } + PARAMETRIZE { raiseAttack = TRUE; } + GIVEN { + ASSUME(gMovesInfo[MOVE_TACKLE].category == DAMAGE_CATEGORY_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_CONTRARY); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + if (raiseAttack) TURN { MOVE(player, MOVE_BELLY_DRUM); } + TURN { MOVE(player, MOVE_TACKLE); } + } SCENE { + if (raiseAttack) { + ANIMATION(ANIM_TYPE_MOVE, MOVE_BELLY_DRUM, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); + MESSAGE("Wobbuffet cut its own HP and maximized its Attack!"); // Message unaffected by Contrary + } + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[1].damage, Q_4_12(4), results[0].damage); + } +} + TO_DO_BATTLE_TEST("Belly Drum maximizes the user's Attack stat, even when below 0"); -TO_DO_BATTLE_TEST("Belly Drum minimizes the user's Attack stat if it has Contrary"); // Should still say "maximized attack" TO_DO_BATTLE_TEST("Belly Drum fails if the user's Attack is already at +6, even with Contrary"); TO_DO_BATTLE_TEST("Belly Drum deducts HP if the user has contrary and is at -6"); diff --git a/test/battle/move_effect/bide.c b/test/battle/move_effect/bide.c index 41a6e01416..f99829d57c 100644 --- a/test/battle/move_effect/bide.c +++ b/test/battle/move_effect/bide.c @@ -25,7 +25,7 @@ SINGLE_BATTLE_TEST("Bide deals twice the taken damage over two turns") MESSAGE("Wobbuffet is storing energy!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player, captureDamage: &damage2); - MESSAGE("Wobbuffet unleashed energy!"); + MESSAGE("Wobbuffet unleashed its energy!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BIDE, player); HP_BAR(opponent, captureDamage: &bideDamage); } THEN { diff --git a/test/battle/move_effect/confuse.c b/test/battle/move_effect/confuse.c index dcd843b2c6..0533821972 100644 --- a/test/battle/move_effect/confuse.c +++ b/test/battle/move_effect/confuse.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Teeter Dance confuses target") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Teeter Dance confusion is blocked by Own Tempo") NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } } @@ -49,10 +49,10 @@ DOUBLE_BATTLE_TEST("Teeter Dance can confuse foes and allies") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TEETER_DANCE, playerLeft); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentLeft); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, playerRight); MESSAGE("Wynaut became confused!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponentRight); - MESSAGE("Foe Wynaut became confused!"); + MESSAGE("The opposing Wynaut became confused!"); } } diff --git a/test/battle/move_effect/conversion_2.c b/test/battle/move_effect/conversion_2.c index 6c2d4d7f54..acd21125c3 100644 --- a/test/battle/move_effect/conversion_2.c +++ b/test/battle/move_effect/conversion_2.c @@ -16,8 +16,8 @@ SINGLE_BATTLE_TEST("Conversion 2 randomly changes the type of the user to a type MESSAGE("Wobbuffet used Ominous Wind!"); // turn 1 ONE_OF { - MESSAGE("Foe Wobbuffet transformed into the Normal type!"); - MESSAGE("Foe Wobbuffet transformed into the Dark type!"); + MESSAGE("The opposing Wobbuffet transformed into the Normal type!"); + MESSAGE("The opposing Wobbuffet transformed into the Dark type!"); } } } @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers Struggle to be Normal t TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Struggle!"); + MESSAGE("The opposing Wobbuffet used Struggle!"); // turn 2 ONE_OF { MESSAGE("Wobbuffet transformed into the Steel type!"); @@ -56,8 +56,8 @@ SINGLE_BATTLE_TEST("Conversion 2 randomly changes the type of the user to a type MESSAGE("Wobbuffet used Ominous Wind!"); // turn 1 ONE_OF { - MESSAGE("Foe Wobbuffet transformed into the Normal type!"); - MESSAGE("Foe Wobbuffet transformed into the Dark type!"); + MESSAGE("The opposing Wobbuffet transformed into the Normal type!"); + MESSAGE("The opposing Wobbuffet transformed into the Dark type!"); } } } @@ -72,7 +72,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers status moves (Gen 5+)") TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Curse!"); + MESSAGE("The opposing Wobbuffet used Curse!"); // turn 2 ONE_OF { MESSAGE("Wobbuffet transformed into the Normal type!"); @@ -91,7 +91,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers the type of moves calle TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Mirror Move!"); + MESSAGE("The opposing Wobbuffet used Mirror Move!"); // turn 2 ONE_OF { MESSAGE("Wobbuffet transformed into the Normal type!"); @@ -110,7 +110,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers dynamic type moves") TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Weather Ball!"); + MESSAGE("The opposing Wobbuffet used Weather Ball!"); // turn 2 ONE_OF { MESSAGE("Wobbuffet transformed into the Steel type!"); @@ -133,7 +133,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers move types changed by N } SCENE { // turn 1 MESSAGE("Wobbuffet used Electrify!"); - MESSAGE("Foe Wobbuffet used Pound!"); + MESSAGE("The opposing Wobbuffet used Pound!"); // turn 2 ONE_OF { MESSAGE("Wobbuffet transformed into the Ground type!"); @@ -144,9 +144,9 @@ SINGLE_BATTLE_TEST("Conversion 2's type change considers move types changed by N // turn 3 MESSAGE("Wobbuffet used Water Gun!"); ONE_OF { - MESSAGE("Foe Wobbuffet transformed into the Steel type!"); - MESSAGE("Foe Wobbuffet transformed into the Rock type!"); - MESSAGE("Foe Wobbuffet transformed into the Ghost type!"); + MESSAGE("The opposing Wobbuffet transformed into the Steel type!"); + MESSAGE("The opposing Wobbuffet transformed into the Rock type!"); + MESSAGE("The opposing Wobbuffet transformed into the Ghost type!"); } } } @@ -161,7 +161,7 @@ SINGLE_BATTLE_TEST("Conversion 2's type change fails targeting Struggle (Gen 5+) TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Wobbuffet used Struggle!"); + MESSAGE("The opposing Wobbuffet used Struggle!"); // turn 2 MESSAGE("Wobbuffet used Conversion 2!"); MESSAGE("But it failed!"); @@ -179,9 +179,9 @@ SINGLE_BATTLE_TEST("Conversion 2 fails if the move used is of typeless damage (G TURN { MOVE(player, MOVE_CONVERSION_2); } } SCENE { // turn 1 - MESSAGE("Foe Entei used Burn Up!"); + MESSAGE("The opposing Entei used Burn Up!"); // turn 2 - MESSAGE("Foe Entei used Revelation Dance!"); + MESSAGE("The opposing Entei used Revelation Dance!"); // turn 3 MESSAGE("Wobbuffet used Conversion 2!"); MESSAGE("But it failed!"); @@ -201,7 +201,7 @@ SINGLE_BATTLE_TEST("Conversion 2 fails if the targeted move is Stellar Type") MESSAGE("Wobbuffet used Tera Blast!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); // turn 1 - MESSAGE("Foe Wobbuffet used Conversion 2!"); + MESSAGE("The opposing Wobbuffet used Conversion 2!"); MESSAGE("But it failed!"); } } diff --git a/test/battle/move_effect/corrosive_gas.c b/test/battle/move_effect/corrosive_gas.c index f6a9c738e4..cc4110a7e3 100644 --- a/test/battle/move_effect/corrosive_gas.c +++ b/test/battle/move_effect/corrosive_gas.c @@ -22,10 +22,10 @@ SINGLE_BATTLE_TEST("Corrosive Gas destroys the target's item or fails if the tar MESSAGE("Wobbuffet used Corrosive Gas!"); if (item == ITEM_POTION) { ANIMATION(ANIM_TYPE_MOVE, MOVE_CORROSIVE_GAS, player); - MESSAGE("Wobbuffet corroded Foe Wobbuffet's Potion!"); + MESSAGE("Wobbuffet corroded the opposing Wobbuffet's Potion!"); } else { - MESSAGE("It had no effect on Foe Wobbuffet!"); + MESSAGE("It won't have any effect on the opposing Wobbuffet!"); } } THEN { EXPECT_EQ(opponent->item, ITEM_NONE); @@ -42,9 +42,9 @@ SINGLE_BATTLE_TEST("Corrosive Gas doesn't destroy the item of a Pokemon with the } SCENE { MESSAGE("Wobbuffet used Corrosive Gas!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CORROSIVE_GAS, player); - NOT MESSAGE("Wobbuffet corroded Foe Wobbuffet's Potion!"); + NOT MESSAGE("Wobbuffet corroded the opposing Wobbuffet's Potion!"); ABILITY_POPUP(opponent, ABILITY_STICKY_HOLD); - MESSAGE("Foe Muk's Sticky Hold made Corrosive Gas ineffective!"); + MESSAGE("The opposing Muk's Sticky Hold made Corrosive Gas ineffective!"); } THEN { EXPECT_EQ(opponent->item, ITEM_POISON_BARB); } @@ -61,8 +61,8 @@ SINGLE_BATTLE_TEST("Items lost to Corrosive Gas cannot be restored by Recycle") } SCENE { MESSAGE("Wobbuffet used Corrosive Gas!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CORROSIVE_GAS, player); - MESSAGE("Wobbuffet corroded Foe Wobbuffet's Oran Berry!"); - MESSAGE("Foe Wobbuffet used Recycle!"); + MESSAGE("Wobbuffet corroded the opposing Wobbuffet's Oran Berry!"); + MESSAGE("The opposing Wobbuffet used Recycle!"); MESSAGE("But it failed!"); } THEN { EXPECT_EQ(opponent->item, ITEM_NONE); @@ -97,17 +97,17 @@ DOUBLE_BATTLE_TEST("Corrosive Gas destroys foes and ally's items if they have on if (itemPlayerLeft == ITEM_CHERI_BERRY) { MESSAGE("Wynaut corroded Wobbuffet's Cheri Berry!"); } else { - MESSAGE("It had no effect on Wobbuffet!"); + MESSAGE("It won't have any effect on Wobbuffet!"); } if (itemOpponentLeft == ITEM_ORAN_BERRY) { - MESSAGE("Wynaut corroded Foe Abra's Oran Berry!"); + MESSAGE("Wynaut corroded the opposing Abra's Oran Berry!"); } else { - MESSAGE("It had no effect on Foe Abra!"); + MESSAGE("It won't have any effect on the opposing Abra!"); } if (itemOpponentRight == ITEM_CHESTO_BERRY) { - MESSAGE("Wynaut corroded Foe Kadabra's Chesto Berry!"); + MESSAGE("Wynaut corroded the opposing Kadabra's Chesto Berry!"); } else { - MESSAGE("It had no effect on Foe Kadabra!"); + MESSAGE("It won't have any effect on the opposing Kadabra!"); } } THEN { diff --git a/test/battle/move_effect/court_change.c b/test/battle/move_effect/court_change.c index b9be19db7f..f3775d0af6 100644 --- a/test/battle/move_effect/court_change.c +++ b/test/battle/move_effect/court_change.c @@ -21,24 +21,24 @@ DOUBLE_BATTLE_TEST("Court Change swaps entry hazards used by the opponent") TURN { MOVE(playerLeft, MOVE_COURT_CHANGE); } TURN { SWITCH(playerLeft, 2); SWITCH(opponentLeft, 2); } } SCENE { - MESSAGE("Foe Wobbuffet used Sticky Web!"); - MESSAGE("Foe Wobbuffet used Stealth Rock!"); - MESSAGE("Foe Wobbuffet used Spikes!"); - MESSAGE("Foe Wobbuffet used Toxic Spikes!"); + MESSAGE("The opposing Wobbuffet used Sticky Web!"); + MESSAGE("The opposing Wobbuffet used Stealth Rock!"); + MESSAGE("The opposing Wobbuffet used Spikes!"); + MESSAGE("The opposing Wobbuffet used Toxic Spikes!"); MESSAGE("Wynaut used Court Change!"); - MESSAGE("Wynaut swapped the battle effects affecting each side!"); + MESSAGE("Wynaut swapped the battle effects affecting each side of the field!"); SEND_IN_MESSAGE("Wynaut"); NONE_OF { - MESSAGE("Wynaut is hurt by spikes!"); + MESSAGE("Wynaut was hurt by the spikes!"); MESSAGE("Pointed stones dug into Wynaut!"); MESSAGE("Wynaut was poisoned!"); - MESSAGE("Wynaut was caught in a Sticky Web!"); + MESSAGE("Wynaut was caught in a sticky web!"); } MESSAGE("2 sent out Wobbuffet!"); - MESSAGE("Foe Wobbuffet is hurt by spikes!"); - MESSAGE("Pointed stones dug into Foe Wobbuffet!"); - MESSAGE("Foe Wobbuffet was poisoned!"); - MESSAGE("Foe Wobbuffet was caught in a Sticky Web!"); + MESSAGE("The opposing Wobbuffet was hurt by the spikes!"); + MESSAGE("Pointed stones dug into the opposing Wobbuffet!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was caught in a sticky web!"); } } @@ -61,19 +61,19 @@ DOUBLE_BATTLE_TEST("Court Change swaps entry hazards used by the player") MESSAGE("Wobbuffet used Stealth Rock!"); MESSAGE("Wobbuffet used Spikes!"); MESSAGE("Wobbuffet used Toxic Spikes!"); - MESSAGE("Foe Wynaut used Court Change!"); - MESSAGE("Foe Wynaut swapped the battle effects affecting each side!"); + MESSAGE("The opposing Wynaut used Court Change!"); + MESSAGE("The opposing Wynaut swapped the battle effects affecting each side of the field!"); SEND_IN_MESSAGE("Wobbuffet"); - MESSAGE("Wobbuffet is hurt by spikes!"); + MESSAGE("Wobbuffet was hurt by the spikes!"); MESSAGE("Pointed stones dug into Wobbuffet!"); MESSAGE("Wobbuffet was poisoned!"); - MESSAGE("Wobbuffet was caught in a Sticky Web!"); + MESSAGE("Wobbuffet was caught in a sticky web!"); MESSAGE("2 sent out Wynaut!"); NONE_OF { - MESSAGE("Foe Wynaut is hurt by spikes!"); - MESSAGE("Pointed stones dug into Foe Wynaut!"); - MESSAGE("Foe Wynaut was poisoned!"); - MESSAGE("Foe Wynaut was caught in a Sticky Web!"); + MESSAGE("The opposing Wynaut was hurt by the spikes!"); + MESSAGE("Pointed stones dug into the opposing Wynaut!"); + MESSAGE("The opposing Wynaut was poisoned!"); + MESSAGE("The opposing Wynaut was caught in a sticky web!"); } } } @@ -98,21 +98,21 @@ DOUBLE_BATTLE_TEST("Court Change used by the player swaps Mist, Safeguard, Auror TURN { } } SCENE { MESSAGE("Wynaut used Snowscape!"); - MESSAGE("Foe Wobbuffet used Mist!"); - MESSAGE("Foe Wobbuffet used Safeguard!"); - MESSAGE("Foe Wobbuffet used Aurora Veil!"); - MESSAGE("Foe Wobbuffet used Reflect!"); - MESSAGE("Foe Wobbuffet used Light Screen!"); - MESSAGE("Foe Wobbuffet used Tailwind!"); + MESSAGE("The opposing Wobbuffet used Mist!"); + MESSAGE("The opposing Wobbuffet used Safeguard!"); + MESSAGE("The opposing Wobbuffet used Aurora Veil!"); + MESSAGE("The opposing Wobbuffet used Reflect!"); + MESSAGE("The opposing Wobbuffet used Light Screen!"); + MESSAGE("The opposing Wobbuffet used Tailwind!"); MESSAGE("Wynaut used Court Change!"); - MESSAGE("Wynaut swapped the battle effects affecting each side!"); - // The effects now end for the player side. - MESSAGE("Ally's Mist wore off!"); - MESSAGE("Ally's party is no longer protected by Safeguard!"); - MESSAGE("Ally's Reflect wore off!"); - MESSAGE("Ally's Aurora Veil wore off!"); - MESSAGE("Your team's tailwind petered out!"); - MESSAGE("Ally's Light Screen wore off!"); + MESSAGE("Wynaut swapped the battle effects affecting each side of the field!"); + // The effects now end for the player side. + MESSAGE("Your team's Mist wore off!"); + MESSAGE("Your team is no longer protected by Safeguard!"); + MESSAGE("Your team's Reflect wore off!"); + MESSAGE("Your team's Aurora Veil wore off!"); + MESSAGE("Your team's Tailwind petered out!"); + MESSAGE("Your team's Light Screen wore off!"); } } @@ -141,15 +141,15 @@ DOUBLE_BATTLE_TEST("Court Change used by the opponent swaps Mist, Safeguard, Aur MESSAGE("Wobbuffet used Reflect!"); MESSAGE("Wobbuffet used Light Screen!"); MESSAGE("Wobbuffet used Tailwind!"); - MESSAGE("Foe Wynaut used Court Change!"); - MESSAGE("Foe Wynaut swapped the battle effects affecting each side!"); + MESSAGE("The opposing Wynaut used Court Change!"); + MESSAGE("The opposing Wynaut swapped the battle effects affecting each side of the field!"); // The effects now end for the player side. - MESSAGE("Foe's Mist wore off!"); - MESSAGE("Foe's party is no longer protected by Safeguard!"); - MESSAGE("Foe's Reflect wore off!"); - MESSAGE("Foe's Aurora Veil wore off!"); - MESSAGE("The opposing team's tailwind petered out!"); - MESSAGE("Foe's Light Screen wore off!"); + MESSAGE("The opposing team's Mist wore off!"); + MESSAGE("The opposing team is no longer protected by Safeguard!"); + MESSAGE("The opposing team's Reflect wore off!"); + MESSAGE("The opposing team's Aurora Veil wore off!"); + MESSAGE("The opposing team's Tailwind petered out!"); + MESSAGE("The opposing team's Light Screen wore off!"); } } diff --git a/test/battle/move_effect/curse.c b/test/battle/move_effect/curse.c index 5fe17d3561..0696dfc4ca 100644 --- a/test/battle/move_effect/curse.c +++ b/test/battle/move_effect/curse.c @@ -34,3 +34,36 @@ SINGLE_BATTLE_TEST("Curse cuts the user's HP in half when used by Ghost-types") HP_BAR(player, hp: maxHP / 2); } } + +SINGLE_BATTLE_TEST("Curse applies to the user if used with Protean") +{ + GIVEN { + PLAYER(SPECIES_KECLEON) { Ability(ABILITY_PROTEAN); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_CURSE, target: player); } + } SCENE { + s32 playerMaxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + ABILITY_POPUP(player, ABILITY_PROTEAN); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CURSE, player); + HP_BAR(player, damage: playerMaxHP / 2); + HP_BAR(player, damage: playerMaxHP / 4); + } +} + +SINGLE_BATTLE_TEST("Curse applies to the opponent if user is afflicted by Trick-or-Treat in the same turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_TRICK_OR_TREAT); MOVE(player, MOVE_CURSE, target: player); } + } SCENE { + s32 playerMaxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + s32 opponentMaxHP = GetMonData(&OPPONENT_PARTY[0], MON_DATA_MAX_HP); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TRICK_OR_TREAT, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CURSE, player); + HP_BAR(player, damage: playerMaxHP / 2); + HP_BAR(opponent, damage: opponentMaxHP / 4); + } +} diff --git a/test/battle/move_effect/defense_down.c b/test/battle/move_effect/defense_down.c index 8eb288a805..0552a9c67e 100644 --- a/test/battle/move_effect/defense_down.c +++ b/test/battle/move_effect/defense_down.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Tail Whip lowers Defense", s16 damage) if (lowerDefense) { ANIMATION(ANIM_TYPE_MOVE, MOVE_TAIL_WHIP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); HP_BAR(opponent, captureDamage: &results[i].damage); diff --git a/test/battle/move_effect/defog.c b/test/battle/move_effect/defog.c index ab6d647a97..d5838d7ffd 100644 --- a/test/battle/move_effect/defog.c +++ b/test/battle/move_effect/defog.c @@ -29,7 +29,7 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); } } @@ -41,12 +41,12 @@ SINGLE_BATTLE_TEST("Defog does not lower evasiveness if target behind Substitute } WHEN { TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_DEFOG); } } SCENE { - MESSAGE("Foe Wobbuffet used Substitute!"); + MESSAGE("The opposing Wobbuffet used Substitute!"); MESSAGE("But it failed!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); } } } @@ -72,9 +72,9 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Reflect and Light ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); if (move == MOVE_DEFOG) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); - MESSAGE("Foe's Reflect wore off!"); - MESSAGE("Foe's Light Screen wore off!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing team's Reflect wore off!"); + MESSAGE("The opposing team's Light Screen wore off!"); } MESSAGE("Wobbuffet used Tackle!"); HP_BAR(opponentLeft, captureDamage: &results[i].damagePhysical); @@ -105,10 +105,10 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Mist and Safeguard ANIMATION(ANIM_TYPE_MOVE, MOVE_MIST, opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_SAFEGUARD, opponentRight); if (move == MOVE_DEFOG) { - MESSAGE("Foe Wobbuffet is protected by MIST!"); + MESSAGE("The opposing Wobbuffet is protected by the mist!"); ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); - MESSAGE("Foe's Mist wore off!"); - MESSAGE("Foe's Safeguard wore off!"); + MESSAGE("The opposing team's Mist wore off!"); + MESSAGE("The opposing team's Safeguard wore off!"); } MESSAGE("Wobbuffet used Screech!"); if (move == MOVE_DEFOG) { @@ -116,7 +116,7 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Mist and Safeguard ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); } else { - MESSAGE("Foe Wobbuffet is protected by MIST!"); + MESSAGE("The opposing Wobbuffet is protected by the mist!"); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); } MESSAGE("Wobbuffet used Toxic!"); @@ -125,7 +125,7 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Mist and Safeguard STATUS_ICON(opponentRight, badPoison: TRUE); } else { - MESSAGE("Foe Wobbuffet's party is protected by Safeguard!"); + MESSAGE("The opposing Wobbuffet is protected by Safeguard!"); NOT STATUS_ICON(opponentRight, badPoison: TRUE); } } @@ -153,7 +153,7 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Stealth Rock and S ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); if (move == MOVE_DEFOG) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); if (B_DEFOG_EFFECT_CLEARING >= GEN_6) { MESSAGE("The pointed stones disappeared from around your team!"); MESSAGE("The sticky web has disappeared from the ground around your team!"); @@ -165,7 +165,7 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Stealth Rock and S if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) { HP_BAR(playerLeft); MESSAGE("Pointed stones dug into Wobbuffet!"); - MESSAGE("Wobbuffet was caught in a Sticky Web!"); + MESSAGE("Wobbuffet was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wobbuffet's Speed fell!"); } @@ -173,7 +173,7 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Stealth Rock and S NONE_OF { HP_BAR(playerLeft); MESSAGE("Pointed stones dug into Wobbuffet!"); - MESSAGE("Wobbuffet was caught in a Sticky Web!"); + MESSAGE("Wobbuffet was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wobbuffet's Speed fell!"); } @@ -199,7 +199,7 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Spikes from player ANIMATION(ANIM_TYPE_MOVE, move, player); if (move == MOVE_DEFOG) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); if (B_DEFOG_EFFECT_CLEARING >= GEN_6) MESSAGE("The spikes disappeared from the ground around your team!"); } @@ -208,12 +208,12 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Spikes from player SEND_IN_MESSAGE("Wobbuffet"); if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) { HP_BAR(player); - MESSAGE("Wobbuffet is hurt by spikes!"); + MESSAGE("Wobbuffet was hurt by the spikes!"); } else { NONE_OF { HP_BAR(player); - MESSAGE("Wobbuffet is hurt by spikes!"); + MESSAGE("Wobbuffet was hurt by the spikes!"); } } } @@ -239,7 +239,7 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes terrain (Gen 8+)") MESSAGE("Wobbuffet's evasiveness fell!"); if (B_DEFOG_EFFECT_CLEARING >= GEN_8) { if (move == MOVE_PSYCHIC_TERRAIN) { - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); } else if (move == MOVE_ELECTRIC_TERRAIN) { MESSAGE("The electricity disappeared from the battlefield."); @@ -253,7 +253,7 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes terrain (Gen 8+)") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RESTORE_BG, player); } else { NONE_OF { - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); MESSAGE("The electricity disappeared from the battlefield."); MESSAGE("The mist disappeared from the battlefield."); MESSAGE("The grass disappeared from the battlefield."); @@ -288,13 +288,13 @@ SINGLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Toxic Spikes from // Switch happens MESSAGE("2 sent out Wobbuffet!"); if (move != MOVE_DEFOG || B_DEFOG_EFFECT_CLEARING <= GEN_5) { - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); STATUS_ICON(opponent, poison: TRUE); } else { NONE_OF { - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); STATUS_ICON(opponent, poison: TRUE); } @@ -326,11 +326,11 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes Aurora Veil from p if (move == MOVE_DEFOG) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Glalie's evasiveness fell!"); - MESSAGE("Ally's Aurora Veil wore off!"); + MESSAGE("Your team's Aurora Veil wore off!"); } - MESSAGE("Foe Glalie used Tackle!"); + MESSAGE("The opposing Glalie used Tackle!"); HP_BAR(playerLeft, captureDamage: &results[i].damagePhysical); - MESSAGE("Foe Glalie used Gust!"); + MESSAGE("The opposing Glalie used Gust!"); HP_BAR(playerRight, captureDamage: &results[i].damageSpecial); } FINALLY { EXPECT_MUL_EQ(results[1].damagePhysical, Q_4_12(1.5), results[0].damagePhysical); @@ -359,15 +359,15 @@ DOUBLE_BATTLE_TEST("Defog lowers evasiveness by 1 and removes everything it can" TURN { MOVE(playerLeft, MOVE_REFLECT); MOVE(playerRight, MOVE_LIGHT_SCREEN); MOVE(opponentLeft, MOVE_REFLECT); MOVE(opponentRight, MOVE_SAFEGUARD); } TURN { MOVE(playerLeft, MOVE_MIST); MOVE(playerRight, MOVE_SAFEGUARD); MOVE(opponentLeft, MOVE_MIST); MOVE(opponentRight, MOVE_DEFOG, target: playerLeft); } } SCENE { - MESSAGE("Foe Glalie used Defog!"); - MESSAGE("Glalie is protected by MIST!"); + MESSAGE("The opposing Glalie used Defog!"); + MESSAGE("Glalie is protected by the mist!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, opponentRight); // Player side - MESSAGE("Ally's Reflect wore off!"); - MESSAGE("Ally's Light Screen wore off!"); - MESSAGE("Ally's Mist wore off!"); - MESSAGE("Ally's Aurora Veil wore off!"); - MESSAGE("Ally's Safeguard wore off!"); + MESSAGE("Your team's Reflect wore off!"); + MESSAGE("Your team's Light Screen wore off!"); + MESSAGE("Your team's Mist wore off!"); + MESSAGE("Your team's Aurora Veil wore off!"); + MESSAGE("Your team's Safeguard wore off!"); if (B_DEFOG_EFFECT_CLEARING >= GEN_6) { MESSAGE("The spikes disappeared from the ground around your team!"); @@ -397,7 +397,7 @@ SINGLE_BATTLE_TEST("Defog is used on the correct side if opposing mon is behind ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, opponent); MESSAGE("Wobbuffet used Defog!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DEFOG, player); - MESSAGE("Foe Wobbuffet's evasiveness fell!"); - MESSAGE("Foe's Light Screen wore off!"); + MESSAGE("The opposing Wobbuffet's evasiveness fell!"); + MESSAGE("The opposing team's Light Screen wore off!"); } } diff --git a/test/battle/move_effect/destiny_bond.c b/test/battle/move_effect/destiny_bond.c index baba378f6b..ba49e0ec43 100644 --- a/test/battle/move_effect/destiny_bond.c +++ b/test/battle/move_effect/destiny_bond.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Destiny Bond faints the opposing mon if it fainted from the } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DESTINY_BOND, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); - MESSAGE("Wobbuffet took Foe Wobbuffet with it!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet took its attacker down with it!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } diff --git a/test/battle/move_effect/doodle.c b/test/battle/move_effect/doodle.c index bf7e208646..a43a149dc8 100644 --- a/test/battle/move_effect/doodle.c +++ b/test/battle/move_effect/doodle.c @@ -17,8 +17,8 @@ DOUBLE_BATTLE_TEST("Doodle gives the target's ability to user and ally") TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); - MESSAGE("Wynaut copied Foe Torchic's Blaze!"); - MESSAGE("Wynaut copied Foe Torchic's Blaze!"); + MESSAGE("Wynaut copied the opposing Torchic's Ability!"); + MESSAGE("Wynaut copied the opposing Torchic's Ability!"); } THEN { EXPECT(playerLeft->ability == ABILITY_BLAZE); EXPECT(playerRight->ability == ABILITY_BLAZE); @@ -35,10 +35,10 @@ DOUBLE_BATTLE_TEST("Doodle can't copy a banned ability") } WHEN { TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); NONE_OF { - MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!"); - MESSAGE("Wynaut copied Foe Great Tusk's Protosynthesis!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + MESSAGE("Wynaut copied the opposing Great Tusk's Ability!"); + MESSAGE("Wynaut copied the opposing Great Tusk's Ability!"); } } THEN { EXPECT(playerLeft->ability != ABILITY_PROTOSYNTHESIS); @@ -56,7 +56,7 @@ DOUBLE_BATTLE_TEST("Doodle fails if user has a banned Ability") } WHEN { TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); MESSAGE("But it failed!"); } THEN { EXPECT(playerLeft->ability == ABILITY_GULP_MISSILE); @@ -74,10 +74,44 @@ DOUBLE_BATTLE_TEST("Doodle fails if partner has a banned Ability") } WHEN { TURN { MOVE(playerLeft, MOVE_DOODLE, target: opponentLeft); } } SCENE { - ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, playerLeft); MESSAGE("But it failed!"); } THEN { EXPECT(playerLeft->ability == ABILITY_SHADOW_TAG); EXPECT(playerRight->ability == ABILITY_GULP_MISSILE); } } + +DOUBLE_BATTLE_TEST("Doodle fails if ally's ability can't be suppressed") +{ + u32 species, ability; + + PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } + PARAMETRIZE { species = SPECIES_DARMANITAN; ability = ABILITY_ZEN_MODE; } + PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } + PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } + PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } + PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } + PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } + PARAMETRIZE { species = SPECIES_CRAMORANT; ability = ABILITY_GULP_MISSILE; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } + PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } + PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_DOODLE, target: playerLeft); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, opponentLeft); + MESSAGE("But it failed!"); + } +} diff --git a/test/battle/move_effect/dragon_darts.c b/test/battle/move_effect/dragon_darts.c index 08913d6011..dfe629896f 100644 --- a/test/battle/move_effect/dragon_darts.c +++ b/test/battle/move_effect/dragon_darts.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("Dragon Darts strikes twice") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, player); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -35,7 +35,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes each opponent once in a double battle") HP_BAR(opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -54,7 +54,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes the ally twice if the target protects") HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -72,7 +72,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes the right ally twice if the target is a HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -90,7 +90,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes the left ally twice if the target is a HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -109,7 +109,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes left ally twice if electrified and righ HP_BAR(opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentLeft); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -128,7 +128,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes right ally twice if electrified and lef HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -147,7 +147,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes left ally twice if electrified and righ HP_BAR(opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentLeft); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -166,7 +166,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes right ally twice if electrified and lef HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -187,7 +187,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes the ally twice if the target is in a se HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -206,7 +206,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts is not effected by Wide Guard") HP_BAR(opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -225,7 +225,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes hit the ally if the target fainted") HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -243,7 +243,7 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes left ally twice if one strike misses") HP_BAR(opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentLeft); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -261,6 +261,6 @@ DOUBLE_BATTLE_TEST("Dragon Darts strikes right ally twice if one strike misses") HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_DARTS, playerLeft); HP_BAR(opponentRight); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } diff --git a/test/battle/move_effect/dream_eater.c b/test/battle/move_effect/dream_eater.c index f0fd113d2b..7dfa6525d9 100644 --- a/test/battle/move_effect/dream_eater.c +++ b/test/battle/move_effect/dream_eater.c @@ -33,7 +33,7 @@ SINGLE_BATTLE_TEST("Dream Eater fails on awake targets") TURN { MOVE(player, MOVE_DREAM_EATER); } } SCENE { MESSAGE("Wobbuffet used Dream Eater!"); - MESSAGE("Foe Wobbuffet wasn't affected!"); + MESSAGE("The opposing Wobbuffet wasn't affected!"); } } diff --git a/test/battle/move_effect/embargo.c b/test/battle/move_effect/embargo.c index 11e4069d80..81939a6d56 100644 --- a/test/battle/move_effect/embargo.c +++ b/test/battle/move_effect/embargo.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Embargo blocks the effect of an affected Pokémon's held ite } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 MESSAGE("Wobbuffet used Fissure!"); HP_BAR(opponent, hp: 0); @@ -39,7 +39,7 @@ SINGLE_BATTLE_TEST("Embargo blocks an affected Pokémon's trainer from using ite TURN { USE_ITEM(opponent, ITEM_POTION, partyIndex: 0); } } SCENE { MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); } THEN { EXPECT_EQ(opponent->hp, 1); } @@ -59,10 +59,10 @@ WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect experience } WHEN { TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_SCRATCH); } } SCENE { - MESSAGE("Wild Caterpie used Embargo!"); + MESSAGE("The wild Caterpie used Embargo!"); MESSAGE("Wobbuffet can't use items anymore!"); MESSAGE("Wobbuffet used Scratch!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); EXPERIENCE_BAR(player, captureGainedExp: &results[i].exp); } FINALLY { EXPECT_MUL_EQ(results[1].exp, Q_4_12(1.5), results[0].exp); @@ -84,11 +84,11 @@ WILD_BATTLE_TEST("Embargo doesn't block held item effects that affect effort val TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_SCRATCH); } } SCENE { // Turn 1 - MESSAGE("Wild Caterpie used Embargo!"); + MESSAGE("The wild Caterpie used Embargo!"); MESSAGE("Wobbuffet can't use items anymore!"); // Turn 2 MESSAGE("Wobbuffet used Scratch!"); - MESSAGE("Wild Caterpie fainted!"); + MESSAGE("The wild Caterpie fainted!"); } THEN { finalHPEVAmount = (GetMonData(&PLAYER_PARTY[0], MON_DATA_HP_EV) + gItemsInfo[ITEM_POWER_WEIGHT].holdEffectParam + gSpeciesInfo[SPECIES_CATERPIE].evYield_HP); EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_HP_EV), finalHPEVAmount); @@ -107,9 +107,9 @@ SINGLE_BATTLE_TEST("Embargo negates a held item's Speed reduction") } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 - MESSAGE("Foe Wobbuffet used Scratch!"); + MESSAGE("The opposing Wobbuffet used Scratch!"); MESSAGE("Wobbuffet used Scratch!"); } } @@ -172,7 +172,7 @@ SINGLE_BATTLE_TEST("Embargo makes Fling and Natural Gift fail") TURN { MOVE(player, moveId); } } SCENE { // Turn 1 - MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("The opposing Wobbuffet used Embargo!"); MESSAGE("Wobbuffet can't use items anymore!"); // Turn 2 if (moveId == MOVE_FLING) @@ -194,12 +194,12 @@ SINGLE_BATTLE_TEST("Embargo doesn't stop an item flung at an affected target fro } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 MESSAGE("Wobbuffet used Fling!"); MESSAGE("Wobbuffet flung its Light Ball!"); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); } } @@ -215,7 +215,7 @@ SINGLE_BATTLE_TEST("Baton Pass passes Embargo's effect") TURN { MOVE(player, MOVE_FLING); } } SCENE { // Turn 1 - MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("The opposing Wobbuffet used Embargo!"); MESSAGE("Wobbuffet can't use items anymore!"); // Turn 2 MESSAGE("Wobbuffet used Baton Pass!"); @@ -239,12 +239,12 @@ SINGLE_BATTLE_TEST("Embargo doesn't block the effects of berries obtained throug TURN { MOVE(player, MOVE_PLUCK); } } SCENE { // Turn 1 - MESSAGE("Foe Wobbuffet used Embargo!"); + MESSAGE("The opposing Wobbuffet used Embargo!"); MESSAGE("Wobbuffet can't use items anymore!"); // Turn 2 MESSAGE("Wobbuffet used Pluck!"); HP_BAR(opponent); - MESSAGE("Wobbuffet stole and ate Foe Wobbuffet's Oran Berry!"); + MESSAGE("Wobbuffet stole and ate its target's Oran Berry!"); HP_BAR(player, damage: -hp); } } @@ -261,7 +261,7 @@ SINGLE_BATTLE_TEST("Embargo disables the effect of the Plate items on the move J } WHEN { TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_JUDGMENT); } } SCENE { - MESSAGE("Foe Dragonite used Embargo!"); + MESSAGE("The opposing Dragonite used Embargo!"); MESSAGE("Arceus can't use items anymore!"); MESSAGE("Arceus used Judgment!"); HP_BAR(opponent, captureDamage: &results[i].damage); @@ -282,7 +282,7 @@ SINGLE_BATTLE_TEST("Embargo disables the effect of the Drive items on the move T } WHEN { TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_TECHNO_BLAST); } } SCENE { - MESSAGE("Foe Gyarados used Embargo!"); + MESSAGE("The opposing Gyarados used Embargo!"); MESSAGE("Genesect can't use items anymore!"); MESSAGE("Genesect used Techno Blast!"); HP_BAR(opponent, captureDamage: &results[i].damage); @@ -303,7 +303,7 @@ SINGLE_BATTLE_TEST("Embargo disables the effect of the Memory items on the move } WHEN { TURN { MOVE(opponent, MOVE_EMBARGO); MOVE(player, MOVE_MULTI_ATTACK); } } SCENE { - MESSAGE("Foe Venusaur used Embargo!"); + MESSAGE("The opposing Venusaur used Embargo!"); MESSAGE("Silvally can't use items anymore!"); MESSAGE("Silvally used Multi-Attack!"); HP_BAR(opponent, captureDamage: &results[i].damage); @@ -323,12 +323,12 @@ SINGLE_BATTLE_TEST("Embargo can be reflected by Magic Coat") } SCENE { // Turn 1 MESSAGE("Wobbuffet used Magic Coat!"); - MESSAGE("Wobbuffet shrouded itself in Magic Coat!"); - MESSAGE("Foe Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet's Embargo was bounced back by MAGIC COAT!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("Wobbuffet shrouded itself with Magic Coat!"); + MESSAGE("The opposing Wobbuffet used Embargo!"); + MESSAGE("Wobbuffet bounced the Embargo back!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 - MESSAGE("Foe Wobbuffet used Fling!"); + MESSAGE("The opposing Wobbuffet used Fling!"); MESSAGE("But it failed!"); } } @@ -346,15 +346,15 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Mega Evolution") } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 - MESSAGE("Foe Wobbuffet used Baton Pass!"); + MESSAGE("The opposing Wobbuffet used Baton Pass!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); MESSAGE("2 sent out Charizard!"); // Turn 3 - MESSAGE("Foe Charizard's Charizardite Y is reacting to 2's Mega Ring!"); + MESSAGE("The opposing Charizard's Charizardite Y is reacting to 2's Mega Ring!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_MEGA_EVOLUTION, opponent); - MESSAGE("Foe Charizard has Mega Evolved into Mega Charizard!"); + MESSAGE("The opposing Charizard has Mega Evolved into Mega Charizard!"); } } @@ -371,16 +371,16 @@ SINGLE_BATTLE_TEST("Embargo doesn't prevent Primal Reversion") } SCENE { // Turn 1 MESSAGE("Wobbuffet used Embargo!"); - MESSAGE("Foe Wobbuffet can't use items anymore!"); + MESSAGE("The opposing Wobbuffet can't use items anymore!"); // Turn 2 - MESSAGE("Foe Wobbuffet used Baton Pass!"); + MESSAGE("The opposing Wobbuffet used Baton Pass!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BATON_PASS, opponent); MESSAGE("2 sent out Groudon!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, opponent); - MESSAGE("Foe Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("The opposing Groudon's Primal Reversion! It reverted to its primal state!"); ABILITY_POPUP(opponent); // Turn 3 - MESSAGE("Foe Groudon used Fling!"); + MESSAGE("The opposing Groudon used Fling!"); MESSAGE("But it failed!"); } } diff --git a/test/battle/move_effect/encore.c b/test/battle/move_effect/encore.c index db7f5eb042..ec68297ca0 100644 --- a/test/battle/move_effect/encore.c +++ b/test/battle/move_effect/encore.c @@ -102,7 +102,7 @@ SINGLE_BATTLE_TEST("Encore has no effect if no previous move") } WHEN { TURN { MOVE(opponent, MOVE_ENCORE); MOVE(player, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet used Encore!"); + MESSAGE("The opposing Wobbuffet used Encore!"); MESSAGE("But it failed!"); } } diff --git a/test/battle/move_effect/endeavor.c b/test/battle/move_effect/endeavor.c new file mode 100644 index 0000000000..7080ee9c28 --- /dev/null +++ b/test/battle/move_effect/endeavor.c @@ -0,0 +1,23 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_ENDEAVOR].effect == EFFECT_ENDEAVOR); +} + +SINGLE_BATTLE_TEST("Endeavor causes the target's HP to equal the user's current HP") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(1); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ENDEAVOR); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ENDEAVOR, player); + } THEN { + EXPECT_EQ(player->hp, opponent->hp); + } +} +TO_DO_BATTLE_TEST("Endeavor does not change HP if the target has less HP than the user, but still plays the animation") +TO_DO_BATTLE_TEST("Endeavor doesn't ignore type immunity") // Ghost types diff --git a/test/battle/move_effect/explosion.c b/test/battle/move_effect/explosion.c index a0825aac62..f383ecb1a2 100644 --- a/test/battle/move_effect/explosion.c +++ b/test/battle/move_effect/explosion.c @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Explosion causes the user & the target to faint") HP_BAR(player, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); HP_BAR(opponent, hp: 0); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("Wobbuffet fainted!"); } } @@ -62,7 +62,7 @@ SINGLE_BATTLE_TEST("Explosion causes the user to faint even if it has no effect" TURN { MOVE(player, MOVE_EXPLOSION); } } SCENE { HP_BAR(player, hp: 0); - MESSAGE("It doesn't affect Foe Gastly…"); + MESSAGE("It doesn't affect the opposing Gastly…"); NOT HP_BAR(opponent); MESSAGE("Wobbuffet fainted!"); } @@ -82,11 +82,11 @@ DOUBLE_BATTLE_TEST("Explosion causes everyone to faint in a double battle") HP_BAR(playerLeft, hp: 0); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); HP_BAR(opponentLeft, hp: 0); - MESSAGE("Foe Abra fainted!"); HP_BAR(playerRight, hp: 0); - MESSAGE("Wynaut fainted!"); HP_BAR(opponentRight, hp: 0); - MESSAGE("Foe Kadabra fainted!"); + MESSAGE("The opposing Abra fainted!"); + MESSAGE("Wynaut fainted!"); + MESSAGE("The opposing Kadabra fainted!"); MESSAGE("Wobbuffet fainted!"); } } @@ -104,7 +104,7 @@ SINGLE_BATTLE_TEST("Explosion is blocked by Ability Damp") HP_BAR(player, hp: 0); } ABILITY_POPUP(opponent, ABILITY_DAMP); - MESSAGE("Foe Golduck's Damp prevents Wobbuffet from using Explosion!"); + MESSAGE("The opposing Golduck's Damp prevents Wobbuffet from using Explosion!"); } } @@ -139,9 +139,9 @@ DOUBLE_BATTLE_TEST("Explosion boosted by Galvanize is correctly blocked by Volt ABILITY_POPUP(opponentLeft, ABILITY_VOLT_ABSORB); NOT HP_BAR(opponentLeft, hp: 0); HP_BAR(playerRight, hp: 0); - MESSAGE("Wynaut fainted!"); HP_BAR(opponentRight, hp: 0); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wynaut fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("Geodude fainted!"); } } diff --git a/test/battle/move_effect/fail_if_not_arg_type.c b/test/battle/move_effect/fail_if_not_arg_type.c index 4ffe0a0323..9e8d005d8b 100644 --- a/test/battle/move_effect/fail_if_not_arg_type.c +++ b/test/battle/move_effect/fail_if_not_arg_type.c @@ -70,7 +70,7 @@ SINGLE_BATTLE_TEST("Double Shock user loses its Electric-type") TURN { MOVE(player, MOVE_DOUBLE_SHOCK); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_SHOCK, player); - MESSAGE("Pikachu used up all of its electricity!"); + MESSAGE("Pikachu used up all its electricity!"); MESSAGE("Pikachu used Double Shock!"); MESSAGE("But it failed!"); } @@ -107,6 +107,6 @@ SINGLE_BATTLE_TEST("Double Shock user loses its Electric-type if enemy faints") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_SHOCK, player); HP_BAR(opponent, hp: 0); - MESSAGE("Pikachu used up all of its electricity!"); + MESSAGE("Pikachu used up all its electricity!"); } } diff --git a/test/battle/move_effect/fixed_damage_arg.c b/test/battle/move_effect/fixed_damage_arg.c new file mode 100644 index 0000000000..484601be05 --- /dev/null +++ b/test/battle/move_effect/fixed_damage_arg.c @@ -0,0 +1,41 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_SONIC_BOOM].effect == EFFECT_FIXED_DAMAGE_ARG); +} + +SINGLE_BATTLE_TEST("Sonic Boom deals fixed damage", s16 damage) +{ + u16 mon; + PARAMETRIZE { mon = SPECIES_RATTATA; } + PARAMETRIZE { mon = SPECIES_ARON; } + + GIVEN { + ASSUME(gMovesInfo[MOVE_SONIC_BOOM].argument == 20); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(mon); + } WHEN { + TURN { MOVE(player, MOVE_SONIC_BOOM); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SONIC_BOOM, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT(results[0].damage == 20); + EXPECT(results[1].damage == 20); + } +} + +SINGLE_BATTLE_TEST("Sonic Boom doesn't affect ghost types") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_GASTLY); + } WHEN { + TURN { MOVE(player, MOVE_SONIC_BOOM); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SONIC_BOOM, player); + MESSAGE("It doesn't affect the opposing Gastly…"); + } +} diff --git a/test/battle/move_effect/flame_burst.c b/test/battle/move_effect/flame_burst.c index d222325a7b..3597c80014 100644 --- a/test/battle/move_effect/flame_burst.c +++ b/test/battle/move_effect/flame_burst.c @@ -18,7 +18,7 @@ DOUBLE_BATTLE_TEST("Flame Burst Substitute") } WHEN { TURN { MOVE(opponentLeft, MOVE_SUBSTITUTE); MOVE(playerRight, MOVE_FLAME_BURST, target: opponentRight); } } SCENE { - MESSAGE("The bursting flames hit Foe Wynaut!"); - NOT MESSAGE("The SUBSTITUTE took damage for Foe Wynaut!"); + MESSAGE("The bursting flames hit the opposing Wynaut!"); + NOT MESSAGE("The substitute took damage for the opposing Wynaut!"); } } diff --git a/test/battle/move_effect/fling.c b/test/battle/move_effect/fling.c index b4b25484b3..2bd1e824f1 100644 --- a/test/battle/move_effect/fling.c +++ b/test/battle/move_effect/fling.c @@ -114,10 +114,10 @@ SINGLE_BATTLE_TEST("Fling - Item is lost even when there is no target") TURN { MOVE(opponent, MOVE_SELF_DESTRUCT); MOVE(player, MOVE_FLING); SEND_OUT(opponent, 1); } TURN { MOVE(player, MOVE_FLING); } } SCENE { - MESSAGE("Foe Wobbuffet used Self-Destruct!"); + MESSAGE("The opposing Wobbuffet used Self-Destruct!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SELF_DESTRUCT, opponent); HP_BAR(player); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("Wobbuffet used Fling!"); MESSAGE("But it failed!"); @@ -138,10 +138,10 @@ SINGLE_BATTLE_TEST("Fling - Item is lost when target protects itself") TURN { MOVE(opponent, MOVE_PROTECT); MOVE(player, MOVE_FLING);} TURN { MOVE(player, MOVE_FLING); } } SCENE { - MESSAGE("Foe Wobbuffet used Protect!"); + MESSAGE("The opposing Wobbuffet used Protect!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent); MESSAGE("Wobbuffet used Fling!"); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); MESSAGE("Wobbuffet used Fling!"); MESSAGE("But it failed!"); @@ -179,10 +179,10 @@ SINGLE_BATTLE_TEST("Fling doesn't consume the item if pokemon is asleep/frozen/p } SCENE { if (status == STATUS1_FREEZE) { MESSAGE("Wobbuffet is frozen solid!"); - MESSAGE("Wobbuffet was defrosted!"); + MESSAGE("Wobbuffet thawed out!"); } else if (status == STATUS1_PARALYSIS) { - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); } else { MESSAGE("Wobbuffet is fast asleep."); @@ -225,32 +225,32 @@ SINGLE_BATTLE_TEST("Fling applies special effects when throwing specific Items") { case ITEM_FLAME_ORB: { - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponent, STATUS1_BURN); } break; case ITEM_LIGHT_BALL: { - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); STATUS_ICON(opponent, STATUS1_PARALYSIS); } break; case ITEM_POISON_BARB: { - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); STATUS_ICON(opponent, STATUS1_POISON); } break; case ITEM_TOXIC_ORB: { - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, STATUS1_TOXIC_POISON); } break; case ITEM_RAZOR_FANG: case ITEM_KINGS_ROCK: { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } break; } @@ -282,52 +282,52 @@ SINGLE_BATTLE_TEST("Fling's secondary effects are blocked by Shield Dust") case ITEM_FLAME_ORB: { NONE_OF { - MESSAGE("Foe Wobbuffet was burned!"); + MESSAGE("The opposing Wobbuffet was burned!"); STATUS_ICON(opponent, STATUS1_BURN); } - MESSAGE("The Flame Orb was used up..."); + MESSAGE("The Flame Orb was used up…"); } break; case ITEM_LIGHT_BALL: { NONE_OF { - MESSAGE("Foe Wobbuffet is paralyzed! It may be unable to move!"); + MESSAGE("The opposing Wobbuffet is paralyzed, so it may be unable to move!"); STATUS_ICON(opponent, STATUS1_PARALYSIS); } - MESSAGE("The Light Ball was used up..."); + MESSAGE("The Light Ball was used up…"); } break; case ITEM_POISON_BARB: { NONE_OF { - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); STATUS_ICON(opponent, STATUS1_POISON); } - MESSAGE("The Poison Barb was used up..."); + MESSAGE("The Poison Barb was used up…"); } break; case ITEM_TOXIC_ORB: { NONE_OF { - MESSAGE("Foe Wobbuffet is badly poisoned!"); + MESSAGE("The opposing Wobbuffet was badly poisoned!"); STATUS_ICON(opponent, STATUS1_TOXIC_POISON); } - MESSAGE("The Toxic Orb was used up..."); + MESSAGE("The Toxic Orb was used up…"); } break; case ITEM_RAZOR_FANG: case ITEM_KINGS_ROCK: { NONE_OF { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } switch (item) { case ITEM_RAZOR_FANG: - MESSAGE("The Razor Fang was used up..."); + MESSAGE("The Razor Fang was used up…"); break; case ITEM_KINGS_ROCK: - MESSAGE("The King's Rock was used up..."); + MESSAGE("The King's Rock was used up…"); break; } } @@ -373,53 +373,53 @@ SINGLE_BATTLE_TEST("Fling - thrown berry's effect activates for the target even HP_BAR(opponent); if (effect == HOLD_EFFECT_RESTORE_HP) { if (item == ITEM_ORAN_BERRY) { - MESSAGE("Foe Wobbuffet's Oran Berry restored health!"); + MESSAGE("The opposing Wobbuffet restored its health using its Oran Berry!"); } else if (item == ITEM_SITRUS_BERRY) { - MESSAGE("Foe Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("The opposing Wobbuffet restored its health using its Sitrus Berry!"); } else { - MESSAGE("Wobbuffet's Enigma Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Enigma Berry!"); } HP_BAR(opponent); } else if (effect == HOLD_EFFECT_RESTORE_PP) { - MESSAGE("Foe Wobbuffet's Leppa Berry restored Celebrate's PP!"); + MESSAGE("The opposing Wobbuffet restored PP to its move Celebrate using its Leppa Berry!"); } else if (status1 != STATUS1_NONE) { if (status1 == STATUS1_BURN) { - MESSAGE("Foe Wobbuffet's Rawst Berry healed its burn!"); + MESSAGE("The opposing Wobbuffet's Rawst Berry cured its burn!"); } else if (status1 == STATUS1_SLEEP) { - MESSAGE("Foe Wobbuffet's Chesto Berry woke it from its sleep!"); + MESSAGE("The opposing Wobbuffet's Chesto Berry woke it up!"); } else if (status1 == STATUS1_FREEZE) { - MESSAGE("Foe Wobbuffet's Aspear Berry defrosted it!"); + MESSAGE("The opposing Wobbuffet's Aspear Berry defrosted it!"); } else if (status1 == STATUS1_FROSTBITE) { - MESSAGE("Foe Wobbuffet's Aspear Berry healed its frostbite!"); + MESSAGE("The opposing Wobbuffet's Aspear Berry cured its frostbite!"); } else if (status1 == STATUS1_PARALYSIS) { - MESSAGE("Foe Wobbuffet's Cheri Berry cured paralysis!"); + MESSAGE("The opposing Wobbuffet's Cheri Berry cured its paralysis!"); } else if (status1 == STATUS1_TOXIC_POISON || status1 == STATUS1_POISON) { - MESSAGE("Foe Wobbuffet's Pecha Berry cured poison!"); + MESSAGE("The opposing Wobbuffet's Pecha Berry cured its poison!"); } NOT STATUS_ICON(opponent, status1); } else if (statId != 0) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); if (statId == STAT_ATK) { - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } else if (statId == STAT_DEF) { if (item == ITEM_GANLON_BERRY) { - MESSAGE("Using Ganlon Berry, the Defense of Foe Wobbuffet rose!"); + MESSAGE("Using Ganlon Berry, the Defense of the opposing Wobbuffet rose!"); } else { - MESSAGE("Using Kee Berry, the Defense of Foe Wobbuffet rose!"); + MESSAGE("Using Kee Berry, the Defense of the opposing Wobbuffet rose!"); } } else if (statId == STAT_SPDEF) { if (item == ITEM_APICOT_BERRY) { - MESSAGE("Using Apicot Berry, the Sp. Def of Foe Wobbuffet rose!"); + MESSAGE("Using Apicot Berry, the Sp. Def of the opposing Wobbuffet rose!"); } else { - MESSAGE("Using Maranga Berry, the Sp. Def of Foe Wobbuffet rose!"); + MESSAGE("Using Maranga Berry, the Sp. Def of the opposing Wobbuffet rose!"); } } else if (statId == STAT_SPEED) { - MESSAGE("Using Salac Berry, the Speed of Foe Wobbuffet rose!"); + MESSAGE("Using Salac Berry, the Speed of the opposing Wobbuffet rose!"); } else if (statId == STAT_SPATK) { - MESSAGE("Using Petaya Berry, the Sp. Atk of Foe Wobbuffet rose!"); + MESSAGE("Using Petaya Berry, the Sp. Atk of the opposing Wobbuffet rose!"); } } } THEN { diff --git a/test/battle/move_effect/flower_shield.c b/test/battle/move_effect/flower_shield.c new file mode 100644 index 0000000000..e31fc9e5cd --- /dev/null +++ b/test/battle/move_effect/flower_shield.c @@ -0,0 +1,37 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_FLOWER_SHIELD].effect == EFFECT_FLOWER_SHIELD); +} + +DOUBLE_BATTLE_TEST("Flower Shield raises the defense of all grass type pokemon") +{ + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_TANGELA].types[0] == TYPE_GRASS); + ASSUME(gSpeciesInfo[SPECIES_TANGROWTH].types[0] == TYPE_GRASS); + ASSUME(gSpeciesInfo[SPECIES_SUNKERN].types[0] == TYPE_GRASS); + ASSUME(gSpeciesInfo[SPECIES_SUNFLORA].types[0] == TYPE_GRASS); + PLAYER(SPECIES_TANGELA); + PLAYER(SPECIES_TANGROWTH); + OPPONENT(SPECIES_SUNKERN); + OPPONENT(SPECIES_SUNFLORA); + } WHEN { + TURN { MOVE(playerLeft, MOVE_FLOWER_SHIELD); MOVE(playerRight, MOVE_CELEBRATE); } + } SCENE { + MESSAGE("Tangela used Flower Shield!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); + MESSAGE("Tangela's Defense rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); + MESSAGE("The opposing Sunkern's Defense rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); + MESSAGE("Tangrowth's Defense rose!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); + MESSAGE("The opposing Sunflora's Defense rose!"); + } +} diff --git a/test/battle/move_effect/focus_punch.c b/test/battle/move_effect/focus_punch.c index 355c071a94..e8f36d4ff1 100644 --- a/test/battle/move_effect/focus_punch.c +++ b/test/battle/move_effect/focus_punch.c @@ -51,7 +51,7 @@ DOUBLE_BATTLE_TEST("Focus Punch activation is based on Speed") } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FOCUS_PUNCH_SETUP, opponentRight); - MESSAGE("Foe Wynaut is tightening its focus!"); + MESSAGE("The opposing Wynaut is tightening its focus!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FOCUS_PUNCH_SETUP, playerRight); MESSAGE("Wynaut is tightening its focus!"); @@ -60,9 +60,9 @@ DOUBLE_BATTLE_TEST("Focus Punch activation is based on Speed") MESSAGE("Wobbuffet is tightening its focus!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_FOCUS_PUNCH_SETUP, opponentLeft); - MESSAGE("Foe Wobbuffet is tightening its focus!"); + MESSAGE("The opposing Wobbuffet is tightening its focus!"); - MESSAGE("Foe Wynaut used Focus Punch!"); + MESSAGE("The opposing Wynaut used Focus Punch!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FOCUS_PUNCH, opponentRight); HP_BAR(playerLeft); @@ -71,7 +71,7 @@ DOUBLE_BATTLE_TEST("Focus Punch activation is based on Speed") HP_BAR(opponentLeft); MESSAGE("Wobbuffet lost its focus and couldn't move!"); - MESSAGE("Foe Wobbuffet lost its focus and couldn't move!"); + MESSAGE("The opposing Wobbuffet lost its focus and couldn't move!"); } } diff --git a/test/battle/move_effect/future_sight.c b/test/battle/move_effect/future_sight.c index 778895ba58..e25fc75012 100644 --- a/test/battle/move_effect/future_sight.c +++ b/test/battle/move_effect/future_sight.c @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Future Sight uses Sp. Atk stat of the original user without ANIMATION(ANIM_TYPE_MOVE, MOVE_SEED_FLARE, player); HP_BAR(opponent, captureDamage: &seedFlareDmg); ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Regice took the Future Sight attack!"); + MESSAGE("The opposing Regice took the Future Sight attack!"); HP_BAR(opponent, captureDamage: &futureSightDmg); } THEN { EXPECT_EQ(seedFlareDmg, futureSightDmg); @@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Future Sight is not boosted by Life Orb is original user if ANIMATION(ANIM_TYPE_MOVE, MOVE_SEED_FLARE, player); HP_BAR(opponent, captureDamage: &seedFlareDmg); ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Regice took the Future Sight attack!"); + MESSAGE("The opposing Regice took the Future Sight attack!"); HP_BAR(opponent, captureDamage: &futureSightDmg); NOT MESSAGE("Raichu was hurt by its Life Orb!"); } THEN { @@ -107,8 +107,8 @@ SINGLE_BATTLE_TEST("Future Sight is affected by type effectiveness") ANIMATION(ANIM_TYPE_MOVE, MOVE_SEED_FLARE, player); HP_BAR(opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); - MESSAGE("Foe Houndoom took the Future Sight attack!"); - MESSAGE("It doesn't affect Foe Houndoom…"); + MESSAGE("The opposing Houndoom took the Future Sight attack!"); + MESSAGE("It doesn't affect the opposing Houndoom…"); NOT HP_BAR(opponent); } } @@ -129,9 +129,9 @@ SINGLE_BATTLE_TEST("Future Sight will miss timing if target faints before it is ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_MEMENTO, opponent); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("2 sent out Wynaut!"); - NOT MESSAGE("Foe Wynaut took the Future Sight attack!"); + NOT MESSAGE("The opposing Wynaut took the Future Sight attack!"); } } @@ -150,9 +150,9 @@ SINGLE_BATTLE_TEST("Future Sight will miss timing if target faints by residual d ANIMATION(ANIM_TYPE_MOVE, MOVE_FUTURE_SIGHT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_WRAP, player); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); MESSAGE("2 sent out Wynaut!"); - NOT MESSAGE("Foe Wynaut took the Future Sight attack!"); + NOT MESSAGE("The opposing Wynaut took the Future Sight attack!"); } } @@ -169,8 +169,8 @@ SINGLE_BATTLE_TEST("Future Sight breaks Focus Sash and doesn't make the holder e TURN { } TURN { MOVE(player, MOVE_PSYCHIC); } } SCENE { - MESSAGE("Foe Pidgey hung on using its Focus Sash!"); + MESSAGE("The opposing Pidgey hung on using its Focus Sash!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC, player); - MESSAGE("Foe Pidgey fainted!"); + MESSAGE("The opposing Pidgey fainted!"); } } diff --git a/test/battle/move_effect/heal_bell.c b/test/battle/move_effect/heal_bell.c index c098886a98..9b62a36f9b 100644 --- a/test/battle/move_effect/heal_bell.c +++ b/test/battle/move_effect/heal_bell.c @@ -30,7 +30,7 @@ DOUBLE_BATTLE_TEST("Heal Bell cures the entire party") int i; ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); - NOT MESSAGE("Wobbuffet is hurt by poison!"); + NOT MESSAGE("Wobbuffet was hurt by its poisoning!"); for (i = 0; i < 6; i++) EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_STATUS), STATUS1_NONE); } @@ -55,9 +55,9 @@ DOUBLE_BATTLE_TEST("Heal Bell does not cure soundproof partners") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_BELL, playerLeft); if (ability == ABILITY_SOUNDPROOF) { - MESSAGE("Exploud is hurt by poison!"); + MESSAGE("Exploud was hurt by its poisoning!"); } else { - NOT MESSAGE("Exploud is hurt by poison!"); + NOT MESSAGE("Exploud was hurt by its poisoning!"); } } } @@ -81,7 +81,7 @@ SINGLE_BATTLE_TEST("Heal Bell cures inactive soundproof Pokemon") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_BELL, player); SEND_IN_MESSAGE("Exploud"); - NOT MESSAGE("Exploud is hurt by poison!"); + NOT MESSAGE("Exploud was hurt by its poisoning!"); } } @@ -96,6 +96,6 @@ SINGLE_BATTLE_TEST("Heal Bell cures a soundproof user") TURN { MOVE(player, MOVE_HEAL_BELL, target: player); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_BELL, player); - NOT MESSAGE("Exploud is hurt by poison!"); + NOT MESSAGE("Exploud was hurt by its poisoning!"); } } diff --git a/test/battle/move_effect/healing_wish.c b/test/battle/move_effect/healing_wish.c index df0c2c3a9b..a597d552ed 100644 --- a/test/battle/move_effect/healing_wish.c +++ b/test/battle/move_effect/healing_wish.c @@ -66,7 +66,7 @@ SINGLE_BATTLE_TEST("Healing Wish effect activates only if the switched pokemon c MESSAGE("Gardevoir fainted!"); NONE_OF { MESSAGE("The healing wish came true for Wynaut!"); - MESSAGE("Wynaut regained health!"); + MESSAGE("Wynaut's HP was restored."); } ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); MESSAGE("The healing wish came true for Wynaut!"); diff --git a/test/battle/move_effect/hit_escape.c b/test/battle/move_effect/hit_escape.c index 0c96bd4e75..0a494cc667 100644 --- a/test/battle/move_effect/hit_escape.c +++ b/test/battle/move_effect/hit_escape.c @@ -108,7 +108,7 @@ SINGLE_BATTLE_TEST("U-turn switches the user out after Ice Face activates") ANIMATION(ANIM_TYPE_MOVE, MOVE_U_TURN, player); HP_BAR(opponent); ABILITY_POPUP(opponent, ABILITY_ICE_FACE); - MESSAGE("Foe Eiscue transformed!"); + MESSAGE("The opposing Eiscue transformed!"); SEND_IN_MESSAGE("Wynaut"); } } diff --git a/test/battle/move_effect/hit_set_remove_terrain.c b/test/battle/move_effect/hit_set_remove_terrain.c index 549b6bf04f..a48d316d3f 100644 --- a/test/battle/move_effect/hit_set_remove_terrain.c +++ b/test/battle/move_effect/hit_set_remove_terrain.c @@ -45,7 +45,7 @@ SINGLE_BATTLE_TEST("Steel Roller and Ice Spinner can remove a terrain from the f MESSAGE("The electricity disappeared from the battlefield."); break; case MOVE_PSYCHIC_TERRAIN: - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); break; case MOVE_GRASSY_TERRAIN: MESSAGE("The grass disappeared from the battlefield."); @@ -124,3 +124,35 @@ AI_SINGLE_BATTLE_TEST("Ice Spinner can be chosen by the AI regardless if there i } } } + +SINGLE_BATTLE_TEST("Steel Roller and Ice Spinner reverts typing on Mimicry users") +{ + u32 j; + static const u16 terrainMoves[] = + { + MOVE_ELECTRIC_TERRAIN, + MOVE_PSYCHIC_TERRAIN, + MOVE_GRASSY_TERRAIN, + MOVE_MISTY_TERRAIN, + }; + + u16 terrainMove = MOVE_NONE; + u16 removeTerrainMove = MOVE_NONE; + + for (j = 0; j < ARRAY_COUNT(terrainMoves); j++) + { + PARAMETRIZE { removeTerrainMove = MOVE_STEEL_ROLLER; terrainMove = terrainMoves[j]; } + PARAMETRIZE { removeTerrainMove = MOVE_ICE_SPINNER; terrainMove = terrainMoves[j]; } + } + + GIVEN { + ASSUME(gSpeciesInfo[SPECIES_STUNFISK_GALAR].types[1] == TYPE_STEEL); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_STUNFISK_GALAR) { Ability(ABILITY_MIMICRY); } + } WHEN { + TURN { MOVE(opponent, terrainMove); MOVE(player, removeTerrainMove); } + TURN { MOVE(player, MOVE_TOXIC); } + } SCENE { + MESSAGE("It doesn't affect the opposing Stunfisk…"); + } +} diff --git a/test/battle/move_effect/hit_switch_target.c b/test/battle/move_effect/hit_switch_target.c index 22227ea832..a899ae0b33 100644 --- a/test/battle/move_effect/hit_switch_target.c +++ b/test/battle/move_effect/hit_switch_target.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Dragon Tail switches the target with a random non-fainted re TURN { MOVE(player, MOVE_DRAGON_TAIL); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, player); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } } @@ -39,7 +39,7 @@ DOUBLE_BATTLE_TEST("Dragon Tail switches the target with a random non-battler, n TURN { MOVE(playerLeft, MOVE_DRAGON_TAIL, target: opponentRight); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAGON_TAIL, playerLeft); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } } diff --git a/test/battle/move_effect/hold_hands.c b/test/battle/move_effect/hold_hands.c new file mode 100644 index 0000000000..bcdb6a952a --- /dev/null +++ b/test/battle/move_effect/hold_hands.c @@ -0,0 +1,25 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_HOLD_HANDS].effect == EFFECT_HOLD_HANDS); +} + +DOUBLE_BATTLE_TEST("Hold Hands is blocked by Crafty Shield") +{ + GIVEN { + PLAYER(SPECIES_WYNAUT); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { + MOVE(playerLeft, MOVE_CRAFTY_SHIELD, target: opponentLeft); + MOVE(playerRight, MOVE_HOLD_HANDS, target: playerLeft); + } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HOLD_HANDS, playerLeft); + MESSAGE("Wynaut protected itself!"); + } +} diff --git a/test/battle/move_effect/ion_deluge.c b/test/battle/move_effect/ion_deluge.c index 93e147e07d..d0862ee8b4 100644 --- a/test/battle/move_effect/ion_deluge.c +++ b/test/battle/move_effect/ion_deluge.c @@ -15,7 +15,7 @@ WILD_BATTLE_TEST("Ion Deluge works the same way as always when used by a mon wit } WHEN { TURN { MOVE(opponent, MOVE_ION_DELUGE); } } SCENE { - MESSAGE("Wild Lanturn used Ion Deluge!"); + MESSAGE("The wild Lanturn used Ion Deluge!"); NONE_OF { ABILITY_POPUP(opponent, ABILITY_VOLT_ABSORB); HP_BAR(opponent); @@ -37,7 +37,7 @@ WILD_BATTLE_TEST("Ion Deluge works the same way as always when used by a mon wit } WHEN { TURN { MOVE(opponent, MOVE_ION_DELUGE); } } SCENE { - MESSAGE("Wild Zebstrika used Ion Deluge!"); + MESSAGE("The wild Zebstrika used Ion Deluge!"); NONE_OF { ABILITY_POPUP(opponent, ability); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); @@ -57,7 +57,7 @@ SINGLE_BATTLE_TEST("Ion Deluge makes Normal type moves Electric type") } WHEN { TURN { MOVE(opponent, MOVE_ION_DELUGE); MOVE(player, MOVE_TACKLE); } } SCENE { - MESSAGE("Foe Golbat used Ion Deluge!"); + MESSAGE("The opposing Golbat used Ion Deluge!"); MESSAGE("A deluge of ions showers the battlefield!"); MESSAGE("Wobbuffet used Tackle!"); MESSAGE("It's super effective!"); // Because Tackle is now electric type. diff --git a/test/battle/move_effect/knock_off.c b/test/battle/move_effect/knock_off.c index 50d8aaa773..61bb062a25 100644 --- a/test/battle/move_effect/knock_off.c +++ b/test/battle/move_effect/knock_off.c @@ -17,10 +17,10 @@ SINGLE_BATTLE_TEST("Knock Off knocks a healing berry before it has the chance to ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("The opposing Wobbuffet restored its health using its Sitrus Berry!"); } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Sitrus Berry!"); + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Sitrus Berry!"); } THEN { EXPECT(opponent->item == ITEM_NONE); } @@ -43,13 +43,13 @@ SINGLE_BATTLE_TEST("Knock Off activates after Rocky Helmet and Weakness Policy") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); if (item == ITEM_WEAKNESS_POLICY) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE); - MESSAGE("Using Weakness Policy, the Attack of Foe Wobbuffet sharply rose!"); - MESSAGE("Using Weakness Policy, the Sp. Atk of Foe Wobbuffet sharply rose!"); + MESSAGE("Using Weakness Policy, the Attack of the opposing Wobbuffet sharply rose!"); + MESSAGE("Using Weakness Policy, the Sp. Atk of the opposing Wobbuffet sharply rose!"); } else if (item == ITEM_ROCKY_HELMET) { HP_BAR(player); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Rocky Helmet!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Rocky Helmet!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Rocky Helmet!"); + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Rocky Helmet!"); } } THEN { EXPECT(opponent->item == ITEM_NONE); @@ -111,9 +111,9 @@ SINGLE_BATTLE_TEST("Recycle cannot recover an item removed by Knock Off") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Leftovers!"); + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Leftovers!"); - MESSAGE("Foe Wobbuffet used Recycle!"); + MESSAGE("The opposing Wobbuffet used Recycle!"); MESSAGE("But it failed!"); } THEN { EXPECT(opponent->item == ITEM_NONE); @@ -132,12 +132,12 @@ SINGLE_BATTLE_TEST("Knock Off does not prevent targets from receiving another it // turn 1 ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Leftovers!"); + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Leftovers!"); // turn 2 if (B_KNOCK_OFF_REMOVAL >= GEN_5) { ANIMATION(ANIM_TYPE_MOVE, MOVE_BESTOW, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT); - MESSAGE("Foe Wobbuffet's Leftovers restored its HP a little!"); + MESSAGE("The opposing Wobbuffet restored a little HP using its Leftovers!"); } else { NOT { ANIMATION(ANIM_TYPE_MOVE, MOVE_BESTOW, player); } MESSAGE("But it failed!"); @@ -163,9 +163,9 @@ SINGLE_BATTLE_TEST("Knock Off triggers Unburden") // turn 1 ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Leftovers!"); + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Leftovers!"); // turn 2 - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); } THEN { EXPECT(opponent->item == ITEM_NONE); @@ -184,10 +184,10 @@ DOUBLE_BATTLE_TEST("Knock Off does not trigger the opposing ally's Symbiosis") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_KNOCK_OFF, opponentLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_ITEM_KNOCKOFF); - MESSAGE("Foe Wobbuffet knocked off Wobbuffet's Leftovers!"); + MESSAGE("The opposing Wobbuffet knocked off Wobbuffet's Leftovers!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT); - MESSAGE("Wobbuffet's Leftovers restored health!"); + MESSAGE("Wobbuffet restored its health using its Leftovers!"); } } THEN { EXPECT(playerLeft->item == ITEM_NONE); @@ -202,6 +202,126 @@ SINGLE_BATTLE_TEST("Knock Off doesn't knock off items from Pokemon behind substi } WHEN { TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_KNOCK_OFF); } } SCENE { - NOT MESSAGE("Wobbuffet knocked off Foe Wobbuffet's Poké Ball"); + NOT MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Poké Ball!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off does knock off Mega Stones from Pokemon that don't actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ABSOLITE); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Absolite!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off Mega Stones from Pokemon that actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ABSOL) { Item(ITEM_ABSOLITE); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Absol's Absolite!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off does knock off Orbs for Primal Reversion from Pokemon that don't actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_RED_ORB); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Red Orb!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off Orbs for Primal Reversion from Pokemon that actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_GROUDON) { Item(ITEM_RED_ORB); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Groudon's Red Orb!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off Z-Crystals") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_ELECTRIUM_Z); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Electrium Z!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off Ultranecrozium Z from Pokemon that actually use it") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_NECROZMA_DUSK_MANE) { Item(ITEM_ULTRANECROZIUM_Z); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Necrozma's Ultranecrozium Z!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off does knock off other form-change hold items from Pokemon that don't actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_SKY_PLATE); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Sky Plate!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off other form-change hold items from Pokemon that actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ARCEUS) { Item(ITEM_SKY_PLATE); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Arceus's Sky Plate!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off does knock off begin-battle form-change hold items from Pokemon that don't actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_RUSTED_SHIELD); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + MESSAGE("Wobbuffet knocked off the opposing Wobbuffet's Rusted Shield!"); + } +} + +SINGLE_BATTLE_TEST("Knock Off doesn't knock off begin-battle form-change hold items from Pokemon that actually use them") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_ZAMAZENTA_HERO) { Item(ITEM_RUSTED_SHIELD); } + } WHEN { + TURN { MOVE(opponent, MOVE_CELEBRATE); MOVE(player, MOVE_KNOCK_OFF); } + } SCENE { + NOT MESSAGE("Wobbuffet knocked off the opposing Zamazenta's Rusted Shield!"); } } diff --git a/test/battle/move_effect/leech_seed.c b/test/battle/move_effect/leech_seed.c index 1e71437f80..67e829cf8a 100644 --- a/test/battle/move_effect/leech_seed.c +++ b/test/battle/move_effect/leech_seed.c @@ -17,11 +17,67 @@ SINGLE_BATTLE_TEST("Leech Seed doesn't affect Grass-type Pokémon") TURN { MOVE(player, MOVE_LEECH_SEED); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_LEECH_SEED, player); - MESSAGE("It doesn't affect Foe Oddish…"); + MESSAGE("It doesn't affect the opposing Oddish…"); } } + +SINGLE_BATTLE_TEST("Leech Seeded targets lose 1/8 of its max HP every turn and give it to the user") +{ + s16 damage; + s16 healed; + + GIVEN { + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_SHELLDER); + } WHEN { + TURN { MOVE(player, MOVE_LEECH_SEED); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_LEECH_SEED, player); + HP_BAR(opponent); + HP_BAR(player); + HP_BAR(opponent, captureDamage: &damage); + HP_BAR(player, captureDamage: &healed); + } THEN { + EXPECT_MUL_EQ(damage, Q_4_12(-1), healed); + } +} + +SINGLE_BATTLE_TEST("Leech Seed recovery is prevented by Heal Block") +{ + GIVEN { + PLAYER(SPECIES_WYNAUT) { HP(1); } + OPPONENT(SPECIES_SHELLDER); + } WHEN { + TURN { MOVE(opponent, MOVE_HEAL_BLOCK); MOVE(player, MOVE_LEECH_SEED); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_BLOCK, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_LEECH_SEED, player); + HP_BAR(opponent); + NOT HP_BAR(player); + } +} + +SINGLE_BATTLE_TEST("Leech Seed recovery will drain the hp of user if leech seeded mon has Liquid Ooze") +{ + s16 damage; + s16 healed; + + GIVEN { + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_TENTACOOL) { Ability(ABILITY_LIQUID_OOZE); } + } WHEN { + TURN { MOVE(player, MOVE_LEECH_SEED); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_LEECH_SEED, player); + HP_BAR(opponent, captureDamage: &damage); + HP_BAR(player, captureDamage: &healed); + } THEN { + EXPECT_EQ(damage, healed); + } +} + TO_DO_BATTLE_TEST("Leech Seed doesn't affect already seeded targets") -TO_DO_BATTLE_TEST("Leech Seeded targets lose 1/8 of its max HP every turn and give it to the user") TO_DO_BATTLE_TEST("Leech Seed's effect is paused until a new battler replaces the original user's position") // Faint, can't be replaced, then revived. TO_DO_BATTLE_TEST("Leech Seed's effect pause still prevents it from being seeded again") TO_DO_BATTLE_TEST("Baton Pass passes Leech Seed's effect"); diff --git a/test/battle/move_effect/magic_coat.c b/test/battle/move_effect/magic_coat.c new file mode 100644 index 0000000000..2e78967f39 --- /dev/null +++ b/test/battle/move_effect/magic_coat.c @@ -0,0 +1,23 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_MAGIC_COAT].effect == EFFECT_MAGIC_COAT); +} + +SINGLE_BATTLE_TEST("Magic Coat prints the correct message when bouncing back a move") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); + MESSAGE("Zigzagoon bounced the Spore back!");; + MESSAGE("The opposing Wynaut fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} diff --git a/test/battle/move_effect/max_hp_50_recoil.c b/test/battle/move_effect/max_hp_50_recoil.c index 1ac98854e0..b35043014b 100644 --- a/test/battle/move_effect/max_hp_50_recoil.c +++ b/test/battle/move_effect/max_hp_50_recoil.c @@ -77,7 +77,7 @@ SINGLE_BATTLE_TEST("Steel Beam causes the user & the target to faint when below } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STEEL_BEAM, player); HP_BAR(opponent, hp: 0); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); HP_BAR(player, hp: 0); MESSAGE("Wobbuffet fainted!"); } @@ -143,7 +143,7 @@ SINGLE_BATTLE_TEST("Steel Beam is not blocked by Damp") HP_BAR(player, damage: 200); NONE_OF { ABILITY_POPUP(opponent, ABILITY_DAMP); - MESSAGE("Foe Golduck's Damp prevents Wobbuffet from using Steel Beam!"); + MESSAGE("The opposing Golduck's Damp prevents Wobbuffet from using Steel Beam!"); } } } diff --git a/test/battle/move_effect/metronome.c b/test/battle/move_effect/metronome.c index 22e3390cb2..98e4bfd618 100644 --- a/test/battle/move_effect/metronome.c +++ b/test/battle/move_effect/metronome.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Metronome picks a random move") } SCENE { MESSAGE("Wobbuffet used Metronome!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_METRONOME, player); - MESSAGE("Wobbuffet used Scratch!"); + MESSAGE("Waggling a finger let it use Scratch!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCRATCH, player); HP_BAR(opponent); } @@ -35,9 +35,9 @@ SINGLE_BATTLE_TEST("Metronome's called powder move fails against Grass Types") } SCENE { MESSAGE("Wobbuffet used Metronome!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_METRONOME, player); - MESSAGE("Wobbuffet used Poison Powder!"); + MESSAGE("Waggling a finger let it use Poison Powder!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_POISON_POWDER, player); - MESSAGE("It doesn't affect Foe Tangela…"); + MESSAGE("It doesn't affect the opposing Tangela…"); NOT STATUS_ICON(opponent, poison: TRUE); } } @@ -53,9 +53,9 @@ SINGLE_BATTLE_TEST("Metronome's called multi-hit move hits multiple times") } SCENE { MESSAGE("Wobbuffet used Metronome!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_METRONOME, player); - MESSAGE("Wobbuffet used Rock Blast!"); + MESSAGE("Waggling a finger let it use Rock Blast!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_BLAST, player); HP_BAR(opponent); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } diff --git a/test/battle/move_effect/mind_blown.c b/test/battle/move_effect/mind_blown.c index da39cf18d7..85e6a8fdbd 100644 --- a/test/battle/move_effect/mind_blown.c +++ b/test/battle/move_effect/mind_blown.c @@ -77,7 +77,7 @@ SINGLE_BATTLE_TEST("Mind Blown causes the user & the target to faint when below } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, player); HP_BAR(opponent, hp: 0); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("The opposing Wobbuffet fainted!"); HP_BAR(player, hp: 0); MESSAGE("Wobbuffet fainted!"); } @@ -96,11 +96,11 @@ DOUBLE_BATTLE_TEST("Mind Blown causes everyone to faint in a double battle") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MIND_BLOWN, playerLeft); HP_BAR(opponentLeft, hp: 0); - MESSAGE("Foe Abra fainted!"); HP_BAR(playerRight, hp: 0); - MESSAGE("Wynaut fainted!"); HP_BAR(opponentRight, hp: 0); - MESSAGE("Foe Kadabra fainted!"); + MESSAGE("The opposing Abra fainted!"); + MESSAGE("Wynaut fainted!"); + MESSAGE("The opposing Kadabra fainted!"); HP_BAR(playerLeft, hp: 0); MESSAGE("Wobbuffet fainted!"); } @@ -133,7 +133,7 @@ SINGLE_BATTLE_TEST("Mind Blown is blocked by Damp") HP_BAR(player, damage: 200); } ABILITY_POPUP(opponent, ABILITY_DAMP); - MESSAGE("Foe Golduck's Damp prevents Wobbuffet from using Mind Blown!"); + MESSAGE("The opposing Golduck's Damp prevents Wobbuffet from using Mind Blown!"); } } diff --git a/test/battle/move_effect/mirror_move.c b/test/battle/move_effect/mirror_move.c index 18ac8c78e1..65c600fb18 100644 --- a/test/battle/move_effect/mirror_move.c +++ b/test/battle/move_effect/mirror_move.c @@ -51,8 +51,8 @@ SINGLE_BATTLE_TEST("Mirror Move's called powder move fails against Grass Types") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); STATUS_ICON(opponent, paralysis: TRUE); - MESSAGE("Foe Wobbuffet used Mirror Move!"); - MESSAGE("Foe Wobbuffet used Stun Spore!"); + MESSAGE("The opposing Wobbuffet used Mirror Move!"); + MESSAGE("The opposing Wobbuffet used Stun Spore!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, opponent); MESSAGE("It doesn't affect Oddish…"); NOT STATUS_ICON(player, paralysis: TRUE); @@ -70,11 +70,11 @@ SINGLE_BATTLE_TEST("Mirror Move's called multi-hit move hits multiple times") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); HP_BAR(opponent); - MESSAGE("Hit 5 time(s)!"); - MESSAGE("Foe Wobbuffet used Mirror Move!"); - MESSAGE("Foe Wobbuffet used Bullet Seed!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); + MESSAGE("The opposing Wobbuffet used Mirror Move!"); + MESSAGE("The opposing Wobbuffet used Bullet Seed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); HP_BAR(player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } diff --git a/test/battle/move_effect/multi_hit.c b/test/battle/move_effect/multi_hit.c index 052226d1c8..e2331efbf7 100644 --- a/test/battle/move_effect/multi_hit.c +++ b/test/battle/move_effect/multi_hit.c @@ -21,7 +21,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit the maximum amount with Skill Link") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } @@ -38,7 +38,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit twice 35% of the time") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } @@ -56,7 +56,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit thrice 35% of the time") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 3 time(s)!"); + MESSAGE("The Pokémon was hit 3 time(s)!"); } } @@ -75,7 +75,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit four times 15% of the time") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 4 time(s)!"); + MESSAGE("The Pokémon was hit 4 time(s)!"); } } @@ -95,7 +95,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit five times 15% of the time") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } @@ -114,7 +114,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit at least four times with Loaded Dice") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 4 time(s)!"); + MESSAGE("The Pokémon was hit 4 time(s)!"); } } @@ -134,7 +134,7 @@ SINGLE_BATTLE_TEST("Multi hit Moves hit five times 50 Percent of the time with L ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } @@ -152,7 +152,7 @@ SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after final ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Defense fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -172,7 +172,7 @@ SINGLE_BATTLE_TEST("Scale Shot is immune to Fairy types and will end the move co TURN { MOVE(player, MOVE_SCALE_SHOT); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); - MESSAGE("It doesn't affect Foe Clefairy…"); + MESSAGE("It doesn't affect the opposing Clefairy…"); } } @@ -192,7 +192,7 @@ DOUBLE_BATTLE_TEST("Scale Shot does not corrupt the next turn move used") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, playerRight); HP_BAR(opponentRight); - MESSAGE("Hit 1 time(s)!"); + MESSAGE("The Pokémon was hit 1 time(s)!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLDOZE, playerRight); HP_BAR(playerLeft); HP_BAR(opponentLeft); @@ -216,7 +216,7 @@ SINGLE_BATTLE_TEST("Endure does not prevent multiple hits and stat changes occur ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Defense fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -238,7 +238,7 @@ SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after the 4 ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); - MESSAGE("Hit 4 time(s)!"); + MESSAGE("The Pokémon was hit 4 time(s)!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Defense fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -263,8 +263,8 @@ SINGLE_BATTLE_TEST("Scale Shot decreases defense and increases speed after killi ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCALE_SHOT, player); - MESSAGE("Foe Slugma fainted!"); - MESSAGE("Hit 3 time(s)!"); + MESSAGE("The opposing Slugma fainted!"); + MESSAGE("The Pokémon was hit 3 time(s)!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Bagon's Defense fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -292,7 +292,7 @@ SINGLE_BATTLE_TEST("Multi Hit moves will not disrupt Destiny Bond flag") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLET_SEED, opponent); } - MESSAGE("Wobbuffet took Foe Wobbuffet with it!"); - MESSAGE("Foe Wobbuffet fainted!"); + MESSAGE("Wobbuffet took its attacker down with it!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } diff --git a/test/battle/move_effect/octolock.c b/test/battle/move_effect/octolock.c index 3cdc5f5602..1a04de7331 100644 --- a/test/battle/move_effect/octolock.c +++ b/test/battle/move_effect/octolock.c @@ -10,11 +10,11 @@ SINGLE_BATTLE_TEST("Octolock decreases Defense and Sp. Def by at the end of the TURN { MOVE(player, MOVE_OCTOLOCK); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); - MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); + MESSAGE("The opposing Wobbuffet can no longer escape because of Octolock!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + MESSAGE("The opposing Wobbuffet's Sp. Def fell!"); } } @@ -37,32 +37,32 @@ SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Body, White Smoke a NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); if (species == SPECIES_BELDUM) { - MESSAGE("Foe Beldum can no longer escape because of Octolock!"); + MESSAGE("The opposing Beldum can no longer escape because of Octolock!"); ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); - MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + MESSAGE("The opposing Beldum's Clear Body prevents stat loss!"); NONE_OF { - MESSAGE("Foe Beldum's Defense fell!"); - MESSAGE("Foe Beldum's Sp. Def fell!"); + MESSAGE("The opposing Beldum's Defense fell!"); + MESSAGE("The opposing Beldum's Sp. Def fell!"); } } else if (species == SPECIES_TORKOAL) { - MESSAGE("Foe Torkoal can no longer escape because of Octolock!"); + MESSAGE("The opposing Torkoal can no longer escape because of Octolock!"); ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); NONE_OF { - MESSAGE("Foe Torkoal's Defense fell!"); - MESSAGE("Foe Torkoal's Sp. Def fell!"); + MESSAGE("The opposing Torkoal's Defense fell!"); + MESSAGE("The opposing Torkoal's Sp. Def fell!"); } } else if (species == SPECIES_SOLGALEO) { - MESSAGE("Foe Solgaleo can no longer escape because of Octolock!"); + MESSAGE("The opposing Solgaleo can no longer escape because of Octolock!"); ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); NONE_OF { - MESSAGE("Foe Solgaleo's Defense fell!"); - MESSAGE("Foe Solgaleo's Sp. Def fell!"); + MESSAGE("The opposing Solgaleo's Defense fell!"); + MESSAGE("The opposing Solgaleo's Sp. Def fell!"); } } } @@ -77,12 +77,12 @@ SINGLE_BATTLE_TEST("Octolock Defense reduction is prevented by Big Pecks") TURN { MOVE(player, MOVE_OCTOLOCK); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); - MESSAGE("Foe Pidgey can no longer escape because of Octolock!"); + MESSAGE("The opposing Pidgey can no longer escape because of Octolock!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - NOT MESSAGE("Foe Pidgey's Defense fell!"); + NOT MESSAGE("The opposing Pidgey's Defense fell!"); ABILITY_POPUP(opponent, ABILITY_BIG_PECKS); - MESSAGE("Foe Pidgey's Big Pecks prevents Defense loss!"); - MESSAGE("Foe Pidgey's Sp. Def fell!"); + MESSAGE("The opposing Pidgey's Big Pecks prevents Defense loss!"); + MESSAGE("The opposing Pidgey's Sp. Def fell!"); } } @@ -96,12 +96,12 @@ SINGLE_BATTLE_TEST("Octolock reduction is prevented by Clear Amulet") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); - MESSAGE("Foe Wobbuffet can no longer escape because of Octolock!"); - MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The opposing Wobbuffet can no longer escape because of Octolock!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Wobbuffet prevents its stats from being lowered!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); - MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Sp. Def fell!"); } } } @@ -120,14 +120,14 @@ SINGLE_BATTLE_TEST("Octolock will not decrease Defense and Sp. Def further then } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_OCTOLOCK, player); for (j = 0; j < 5; j++) { - MESSAGE("Foe Wobbuffet's Defense fell!"); - MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Sp. Def fell!"); } - MESSAGE("Foe Wobbuffet's Defense won't go lower!"); - MESSAGE("Foe Wobbuffet's Sp. Def won't go lower!"); + MESSAGE("The opposing Wobbuffet's Defense won't go any lower!"); + MESSAGE("The opposing Wobbuffet's Sp. Def won't go any lower!"); NONE_OF { - MESSAGE("Foe Wobbuffet's Defense fell!"); - MESSAGE("Foe Wobbuffet's Sp. Def fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Sp. Def fell!"); } } } diff --git a/test/battle/move_effect/ohko.c b/test/battle/move_effect/ohko.c index ca448be6fd..511d76a8ad 100644 --- a/test/battle/move_effect/ohko.c +++ b/test/battle/move_effect/ohko.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("Sheer Cold doesn't affect Ice-type Pokémon") TURN { MOVE(player, MOVE_SHEER_COLD); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SHEER_COLD, player); - MESSAGE("It doesn't affect Foe Glalie…"); + MESSAGE("It doesn't affect the opposing Glalie…"); } } TO_DO_BATTLE_TEST("Fissure faints the target, skipping regular damage calculations") diff --git a/test/battle/move_effect/plasma_fists.c b/test/battle/move_effect/plasma_fists.c index bdd3ed4f41..93c8869026 100644 --- a/test/battle/move_effect/plasma_fists.c +++ b/test/battle/move_effect/plasma_fists.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("Ion Duldge turns normal moves into electric for the remainde MESSAGE("Krabby used Ion Deluge!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ION_DELUGE, player); MESSAGE("A deluge of ions showers the battlefield!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); MESSAGE("It's super effective!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); @@ -39,7 +39,7 @@ SINGLE_BATTLE_TEST("Plasma Fists turns normal moves into electric for the remain MESSAGE("Krabby used Plasma Fists!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); MESSAGE("A deluge of ions showers the battlefield!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); MESSAGE("It's super effective!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); @@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Plasma Fists type-changing effect does not override Pixilate MESSAGE("Krabby used Plasma Fists!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); MESSAGE("A deluge of ions showers the battlefield!"); - MESSAGE("Foe Sylveon used Tackle!"); + MESSAGE("The opposing Sylveon used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); NOT MESSAGE("It's super effective!"); } @@ -75,7 +75,7 @@ SINGLE_BATTLE_TEST("Plasma Fists type-changing effect is applied after Normalize MESSAGE("Krabby used Plasma Fists!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); MESSAGE("A deluge of ions showers the battlefield!"); - MESSAGE("Foe Skitty used Ember!"); + MESSAGE("The opposing Skitty used Ember!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, opponent); MESSAGE("It's super effective!"); } @@ -92,7 +92,7 @@ SINGLE_BATTLE_TEST("Plasma Fists turns normal type dynamax-moves into electric t MESSAGE("Krabby used Plasma Fists!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PLASMA_FISTS, player); MESSAGE("A deluge of ions showers the battlefield!"); - MESSAGE("Foe Wobbuffet used Max Lightning!"); + MESSAGE("The opposing Wobbuffet used Max Lightning!"); MESSAGE("It's super effective!"); } } diff --git a/test/battle/move_effect/pledge.c b/test/battle/move_effect/pledge.c index bd68b1e733..726adc8152 100644 --- a/test/battle/move_effect/pledge.c +++ b/test/battle/move_effect/pledge.c @@ -26,11 +26,11 @@ DOUBLE_BATTLE_TEST("Water and Fire Pledge create a rainbow on the user's side of MESSAGE("Wobbuffet used Water Pledge!"); MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); MESSAGE("Wynaut used Fire Pledge!"); - MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + MESSAGE("The two moves have become one! It's a combined move!{PAUSE 16}"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); HP_BAR(opponentRight); MESSAGE("A rainbow appeared in the sky on your team's side!"); - MESSAGE("The rainbow on your side disappeared!"); + MESSAGE("The rainbow on your team's side disappeared!"); } } @@ -51,7 +51,7 @@ DOUBLE_BATTLE_TEST("Rainbow doubles the chance of secondary move effects") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_EMBER, playerLeft); - MESSAGE("Foe Wynaut was burned!"); + MESSAGE("The opposing Wynaut was burned!"); } } @@ -72,7 +72,7 @@ DOUBLE_BATTLE_TEST("Rainbow flinch chance does not stack with Serene Grace") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_WATER_PLEDGE, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_BITE, playerLeft); - MESSAGE("Foe Wynaut flinched!"); + MESSAGE("The opposing Wynaut flinched and couldn't move!"); } } @@ -94,23 +94,23 @@ DOUBLE_BATTLE_TEST("Fire and Grass Pledge summons Sea Of Fire for four turns tha MESSAGE("Wobbuffet used Fire Pledge!"); MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); MESSAGE("Wynaut used Grass Pledge!"); - MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + MESSAGE("The two moves have become one! It's a combined move!{PAUSE 16}"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); HP_BAR(opponentRight); MESSAGE("A sea of fire enveloped the opposing team!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SEA_OF_FIRE, opponentRight); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); - MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + MESSAGE("The opposing Wobbuffet was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); - MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The opposing Wynaut was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); - MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + MESSAGE("The opposing Wobbuffet was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); - MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The opposing Wynaut was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); - MESSAGE("The opposing Foe Wobbuffet was hurt by the sea of fire!"); + MESSAGE("The opposing Wobbuffet was hurt by the sea of fire!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); - MESSAGE("The opposing Foe Wynaut was hurt by the sea of fire!"); + MESSAGE("The opposing Wynaut was hurt by the sea of fire!"); MESSAGE("The sea of fire around the opposing team disappeared!"); } } @@ -152,7 +152,7 @@ DOUBLE_BATTLE_TEST("Grass and Water Pledge create a swamp on the user's side of MESSAGE("Wobbuffet used Grass Pledge!"); MESSAGE("Wobbuffet is waiting for Wynaut's move…{PAUSE 16}"); MESSAGE("Wynaut used Water Pledge!"); - MESSAGE("The two moves become one! It's a combined move!{PAUSE 16}"); + MESSAGE("The two moves have become one! It's a combined move!{PAUSE 16}"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASS_PLEDGE, playerRight); HP_BAR(opponentRight); MESSAGE("A swamp enveloped the opposing team!"); @@ -253,7 +253,7 @@ DOUBLE_BATTLE_TEST("Pledge status timer does not reset if combined move is used if (pledgeMove1 == MOVE_WATER_PLEDGE && pledgeMove2 == MOVE_FIRE_PLEDGE) { NOT MESSAGE("A rainbow appeared in the sky on your team's side!"); - MESSAGE("The rainbow on your side disappeared!"); + MESSAGE("The rainbow on your team's side disappeared!"); } if (pledgeMove1 == MOVE_FIRE_PLEDGE && pledgeMove2 == MOVE_GRASS_PLEDGE) { @@ -471,11 +471,11 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Flinch Right" TURN { MOVE(opponentLeft, MOVE_FAKE_OUT, target: playerRight); MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight); MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight); } } SCENE { if (speedPLeft < speedPRight) { - MESSAGE("Wynaut flinched!"); + MESSAGE("Wynaut flinched and couldn't move!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); } else { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); - MESSAGE("Wynaut flinched!"); + MESSAGE("Wynaut flinched and couldn't move!"); } NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); @@ -504,11 +504,11 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Flinch Left") TURN { MOVE(opponentLeft, MOVE_FAKE_OUT, target: playerLeft); MOVE(playerRight, MOVE_FIRE_PLEDGE, target: opponentRight); MOVE(playerLeft, MOVE_GRASS_PLEDGE, target: opponentRight); } } SCENE { if (speedPRight < speedPLeft) { - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); } else { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); } NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); @@ -730,8 +730,8 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Paralyzed Bot } WHEN { TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight, WITH_RNG(RNG_PARALYSIS, 0)); MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight, WITH_RNG(RNG_PARALYSIS, 0)); } } SCENE { - MESSAGE("Wobbuffet is paralyzed! It can't move!"); - MESSAGE("Wynaut is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); + MESSAGE("Wynaut couldn't move because it's paralyzed!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); @@ -752,8 +752,8 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Paralyzed Bot } WHEN { TURN { MOVE(playerLeft, MOVE_FIRE_PLEDGE, target: opponentRight, WITH_RNG(RNG_PARALYSIS, 0)); MOVE(playerRight, MOVE_GRASS_PLEDGE, target: opponentRight, WITH_RNG(RNG_PARALYSIS, 0)); } } SCENE { - MESSAGE("Wynaut is paralyzed! It can't move!"); - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wynaut couldn't move because it's paralyzed!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); @@ -777,8 +777,8 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Flinch Both L } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, opponentRight); - MESSAGE("Wobbuffet flinched!"); - MESSAGE("Wynaut flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); + MESSAGE("Wynaut flinched and couldn't move!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); @@ -802,8 +802,8 @@ DOUBLE_BATTLE_TEST("Pledge move combo fails if ally fails to act - Flinch Both R } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_FAKE_OUT, opponentRight); - MESSAGE("Wynaut flinched!"); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wynaut flinched and couldn't move!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_FIRE_PLEDGE, playerLeft); diff --git a/test/battle/move_effect/population_bomb.c b/test/battle/move_effect/population_bomb.c index 4ef3d1110f..b3e2e4768e 100644 --- a/test/battle/move_effect/population_bomb.c +++ b/test/battle/move_effect/population_bomb.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Population Bomb can hit ten times") ANIMATION(ANIM_TYPE_MOVE, MOVE_POPULATION_BOMB, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_POPULATION_BOMB, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_POPULATION_BOMB, player); - MESSAGE("Hit 10 time(s)!"); + MESSAGE("The Pokémon was hit 10 time(s)!"); } } diff --git a/test/battle/move_effect/powder.c b/test/battle/move_effect/powder.c index dbd1570e6c..85e486918b 100644 --- a/test/battle/move_effect/powder.c +++ b/test/battle/move_effect/powder.c @@ -232,7 +232,7 @@ SINGLE_BATTLE_TEST("Powder doesn't prevent a Fire move from thawing its user out TURN { MOVE(opponent, MOVE_POWDER); MOVE(player, MOVE_FLAME_WHEEL); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_POWDER, opponent); - MESSAGE("Wobbuffet was defrosted by Flame Wheel!"); + MESSAGE("Wobbuffet's Flame Wheel melted the ice!"); STATUS_ICON(player, none: TRUE); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_FLAME_WHEEL, player); diff --git a/test/battle/move_effect/power_based_on_target_hp.c b/test/battle/move_effect/power_based_on_target_hp.c new file mode 100644 index 0000000000..2cecf3ff7f --- /dev/null +++ b/test/battle/move_effect/power_based_on_target_hp.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_CRUSH_GRIP].effect == EFFECT_POWER_BASED_ON_TARGET_HP); +} + +SINGLE_BATTLE_TEST("Crush Grip's damage is affected by the target's current HP", s16 damage) +{ + s16 hp, maxHp = 256; + + PARAMETRIZE { hp = maxHp; } + PARAMETRIZE { hp = maxHp / 2; } + PARAMETRIZE { hp = maxHp / 8; } + PARAMETRIZE { hp = 1; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(hp); MaxHP(maxHp); } + } WHEN { + TURN { MOVE(player, MOVE_CRUSH_GRIP); } + } SCENE { + MESSAGE("Wobbuffet used Crush Grip!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_CRUSH_GRIP, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.125), results[2].damage); + EXPECT_EQ(results[3].damage, 1); + } +} diff --git a/test/battle/move_effect/power_based_on_user_hp.c b/test/battle/move_effect/power_based_on_user_hp.c new file mode 100644 index 0000000000..1dfa70ddf9 --- /dev/null +++ b/test/battle/move_effect/power_based_on_user_hp.c @@ -0,0 +1,32 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_ERUPTION].effect == EFFECT_POWER_BASED_ON_USER_HP); +} + +SINGLE_BATTLE_TEST("Eruption's damage is affected by the user's current HP", s16 damage) +{ + s16 hp, maxHp = 256; + + PARAMETRIZE { hp = maxHp; } + PARAMETRIZE { hp = maxHp / 2; } + PARAMETRIZE { hp = maxHp / 8; } + PARAMETRIZE { hp = 1; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { HP(hp); MaxHP(maxHp); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_ERUPTION); } + } SCENE { + MESSAGE("Wobbuffet used Eruption!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ERUPTION, player); + HP_BAR(opponent, captureDamage: &results[i].damage); + } FINALLY { + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.5), results[1].damage); + EXPECT_MUL_EQ(results[0].damage, Q_4_12(0.125), results[2].damage); + EXPECT_EQ(results[3].damage, 1); + } +} diff --git a/test/battle/move_effect/protect.c b/test/battle/move_effect/protect.c index 60b55ebb75..dff486cb00 100644 --- a/test/battle/move_effect/protect.c +++ b/test/battle/move_effect/protect.c @@ -48,9 +48,9 @@ SINGLE_BATTLE_TEST("Protect, Detect, Spiky Shield, Baneful Bunker and Burning Bu TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, protectMove, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_MOVE, usedMove, player); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); if (usedMove == MOVE_LEER) { NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); } else { @@ -64,7 +64,7 @@ SINGLE_BATTLE_TEST("King's Shield, Silk Trap and Obstruct protect from damaging u32 j; static const u16 protectMoves[][3] = { // Move Stat Stages - {MOVE_KINGS_SHIELD, STAT_ATK, 1}, + {MOVE_KINGS_SHIELD, STAT_ATK, (B_KINGS_SHIELD_LOWER_ATK >= GEN_8) ? 1 : 2}, {MOVE_SILK_TRAP, STAT_SPEED, 1}, {MOVE_OBSTRUCT, STAT_DEF, 2}, }; @@ -87,19 +87,23 @@ SINGLE_BATTLE_TEST("King's Shield, Silk Trap and Obstruct protect from damaging TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, protectMove, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); if (usedMove == MOVE_LEER) { ANIMATION(ANIM_TYPE_MOVE, usedMove, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - NOT MESSAGE("Foe Wobbuffet protected itself!"); + NOT MESSAGE("The opposing Wobbuffet protected itself!"); } else { NOT ANIMATION(ANIM_TYPE_MOVE, usedMove, player); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); if (usedMove == MOVE_TACKLE) { NOT HP_BAR(opponent); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); if (statId == STAT_ATK) { + #if B_KINGS_SHIELD_LOWER_ATK >= GEN_8 MESSAGE("Wobbuffet's Attack fell!"); + #else + MESSAGE("Wobbuffet's Attack harshly fell!"); + #endif } else if (statId == STAT_SPEED) { MESSAGE("Wobbuffet's Speed fell!"); } else if (statId == STAT_DEF) { @@ -144,9 +148,9 @@ SINGLE_BATTLE_TEST("Spiky Shield does 1/8 dmg of max hp of attackers making cont TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKY_SHIELD, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_MOVE, usedMove, player); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponent); if (usedMove == MOVE_TACKLE) { HP_BAR(player, maxHp / 8); @@ -175,9 +179,9 @@ SINGLE_BATTLE_TEST("Baneful Bunker poisons pokemon for moves making contact") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BANEFUL_BUNKER, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_MOVE, usedMove, player); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); if (usedMove == MOVE_TACKLE) { NOT HP_BAR(opponent); STATUS_ICON(player, STATUS1_POISON); @@ -207,9 +211,9 @@ SINGLE_BATTLE_TEST("Burning Bulwark burns pokemon for moves making contact") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_BURNING_BULWARK, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_MOVE, usedMove, player); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); if (usedMove == MOVE_TACKLE) { NOT HP_BAR(opponent); STATUS_ICON(player, STATUS1_BURN); @@ -252,15 +256,15 @@ SINGLE_BATTLE_TEST("Recoil damage is not applied if target was protected") TURN {} } SCENE { // 1st turn - MESSAGE("Foe Beautifly used Tackle!"); + MESSAGE("The opposing Beautifly used Tackle!"); MESSAGE("Rapidash used Tackle!"); // 2nd turn ANIMATION(ANIM_TYPE_MOVE, protectMove, opponent); - MESSAGE("Foe Beautifly protected itself!"); + MESSAGE("The opposing Beautifly protected itself!"); // MESSAGE("Rapidash used recoilMove!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, recoilMove, player); - MESSAGE("Rapidash is hit with recoil!"); + MESSAGE("Rapidash was damaged by the recoil!"); } } } @@ -286,10 +290,10 @@ SINGLE_BATTLE_TEST("Multi-hit moves don't hit a protected target and fail only o TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, move, opponent); - MESSAGE("Foe Beautifly protected itself!"); + MESSAGE("The opposing Beautifly protected itself!"); MESSAGE("Rapidash used Arm Thrust!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ARM_THRUST, player); - MESSAGE("Foe Beautifly protected itself!"); + MESSAGE("The opposing Beautifly protected itself!"); // Each effect happens only once. if (move == MOVE_KINGS_SHIELD || move == MOVE_SILK_TRAP || move == MOVE_OBSTRUCT) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -304,10 +308,10 @@ SINGLE_BATTLE_TEST("Multi-hit moves don't hit a protected target and fail only o } else if (move == MOVE_SPIKY_SHIELD) { HP_BAR(player); } - MESSAGE("Hit 2 time(s)!"); - MESSAGE("Hit 3 time(s)!"); - MESSAGE("Hit 4 time(s)!"); - MESSAGE("Hit 5 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 3 time(s)!"); + MESSAGE("The Pokémon was hit 4 time(s)!"); + MESSAGE("The Pokémon was hit 5 time(s)!"); } } } @@ -332,7 +336,7 @@ DOUBLE_BATTLE_TEST("Wide Guard protects self and ally from multi-target moves") TURN { MOVE(opponentLeft, MOVE_WIDE_GUARD); MOVE(playerLeft, move, target: opponentLeft); } TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Wide Guard!"); + MESSAGE("The opposing Wobbuffet used Wide Guard!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WIDE_GUARD, opponentLeft); if (move == MOVE_TACKLE) { MESSAGE("Wobbuffet used Tackle!"); @@ -340,15 +344,15 @@ DOUBLE_BATTLE_TEST("Wide Guard protects self and ally from multi-target moves") HP_BAR(opponentLeft); } else if (move == MOVE_HYPER_VOICE) { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentRight); } else { // Surf - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentLeft); HP_BAR(playerRight); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentRight); } } @@ -371,12 +375,12 @@ DOUBLE_BATTLE_TEST("Wide Guard can not fail on consecutive turns") TURN {} } SCENE { for (turns = 0; turns < 2; turns++) { - MESSAGE("Foe Wobbuffet used Wide Guard!"); + MESSAGE("The opposing Wobbuffet used Wide Guard!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_WIDE_GUARD, opponentLeft); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentRight); } } @@ -403,7 +407,7 @@ DOUBLE_BATTLE_TEST("Quick Guard protects self and ally from priority moves") TURN { MOVE(opponentLeft, MOVE_QUICK_GUARD); MOVE(playerLeft, move, target:targetOpponent); } TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Quick Guard!"); + MESSAGE("The opposing Wobbuffet used Quick Guard!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_GUARD, opponentLeft); if (move == MOVE_TACKLE) { MESSAGE("Wobbuffet used Tackle!"); @@ -411,7 +415,7 @@ DOUBLE_BATTLE_TEST("Quick Guard protects self and ally from priority moves") HP_BAR(targetOpponent); } else if (move == MOVE_QUICK_ATTACK) { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, playerLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(targetOpponent); } } @@ -433,10 +437,10 @@ DOUBLE_BATTLE_TEST("Quick Guard can not fail on consecutive turns") TURN { MOVE(opponentLeft, MOVE_QUICK_GUARD); MOVE(playerLeft, MOVE_QUICK_ATTACK, target: opponentRight); } } SCENE { for (turns = 0; turns < 2; turns++) { - MESSAGE("Foe Wobbuffet used Quick Guard!"); + MESSAGE("The opposing Wobbuffet used Quick Guard!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_GUARD, opponentLeft); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, playerLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT HP_BAR(opponentRight); } } @@ -467,60 +471,72 @@ DOUBLE_BATTLE_TEST("Crafty Shield protects self and ally from status moves") ANIMATION(ANIM_TYPE_MOVE, MOVE_CRAFTY_SHIELD, opponentLeft); if (move == MOVE_LEER) { MESSAGE("Wobbuffet used Leer!"); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); } else { if (move == MOVE_HYPER_VOICE || targetOpponent == opponentLeft) { - NOT MESSAGE("Foe Wobbuffet protected itself!"); + NOT MESSAGE("The opposing Wobbuffet protected itself!"); HP_BAR(opponentLeft); } else if (move == MOVE_HYPER_VOICE || targetOpponent == opponentRight) { - NOT MESSAGE("Foe Wobbuffet protected itself!"); + NOT MESSAGE("The opposing Wobbuffet protected itself!"); HP_BAR(opponentRight); } } } } -SINGLE_BATTLE_TEST("Protect does not block Confide") +SINGLE_BATTLE_TEST("Protect does not block Confide or Decorate") { + u32 move; + PARAMETRIZE { move = MOVE_CONFIDE; } + PARAMETRIZE { move = MOVE_DECORATE; } + GIVEN { ASSUME(gMovesInfo[MOVE_CONFIDE].effect == EFFECT_SPECIAL_ATTACK_DOWN); + ASSUME(gMovesInfo[MOVE_CONFIDE].ignoresProtect == TRUE); + ASSUME(gMovesInfo[MOVE_DECORATE].effect == EFFECT_DECORATE); + ASSUME(gMovesInfo[MOVE_DECORATE].ignoresProtect == TRUE); PLAYER(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { MOVE(opponent, MOVE_PROTECT); MOVE(player, MOVE_CONFIDE); } + TURN { MOVE(opponent, MOVE_PROTECT); MOVE(player, move); } } SCENE { - MESSAGE("Wobbuffet used Confide!"); - ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFIDE, player); + ANIMATION(ANIM_TYPE_MOVE, move, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - NOT MESSAGE("Foe Wobbuffet protected itself!"); + NOT MESSAGE("The opposing Wobbuffet protected itself!"); } } -DOUBLE_BATTLE_TEST("Crafty Shield protects self and ally from Confide") +DOUBLE_BATTLE_TEST("Crafty Shield protects self and ally from Confide and Decorate") { + u32 move; + PARAMETRIZE { move = MOVE_CONFIDE; } + PARAMETRIZE { move = MOVE_DECORATE; } + GIVEN { ASSUME(gMovesInfo[MOVE_CONFIDE].effect == EFFECT_SPECIAL_ATTACK_DOWN); + ASSUME(gMovesInfo[MOVE_CONFIDE].ignoresProtect == TRUE); + ASSUME(gMovesInfo[MOVE_DECORATE].effect == EFFECT_DECORATE); + ASSUME(gMovesInfo[MOVE_DECORATE].ignoresProtect == TRUE); PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WYNAUT); OPPONENT(SPECIES_WOBBUFFET); OPPONENT(SPECIES_WYNAUT); } WHEN { - TURN { MOVE(opponentLeft, MOVE_CRAFTY_SHIELD); MOVE(playerLeft, MOVE_CONFIDE, target: opponentLeft); MOVE(playerRight, MOVE_CONFIDE, target: opponentRight); } + TURN { MOVE(opponentLeft, MOVE_CRAFTY_SHIELD); MOVE(playerLeft, move, target: opponentLeft); MOVE(playerRight, move, target: opponentRight); } } SCENE { - MESSAGE("Wobbuffet used Confide!"); - MESSAGE("Foe Wobbuffet protected itself!"); - MESSAGE("Wynaut used Confide!"); - MESSAGE("Foe Wynaut protected itself!"); + NOT ANIMATION(ANIM_TYPE_MOVE, move, playerLeft); + MESSAGE("The opposing Wobbuffet protected itself!"); + NOT ANIMATION(ANIM_TYPE_MOVE, move, playerRight); + MESSAGE("The opposing Wynaut protected itself!"); } } DOUBLE_BATTLE_TEST("Crafty Shield does not protect against moves that target all battlers") { GIVEN { - ASSUME(gMovesInfo[MOVE_FLOWER_SHIELD].target == MOVE_TARGET_ALL_BATTLERS); ASSUME(gSpeciesInfo[SPECIES_TANGELA].types[0] == TYPE_GRASS); ASSUME(gSpeciesInfo[SPECIES_TANGROWTH].types[0] == TYPE_GRASS); ASSUME(gSpeciesInfo[SPECIES_SUNKERN].types[0] == TYPE_GRASS); @@ -538,13 +554,13 @@ DOUBLE_BATTLE_TEST("Crafty Shield does not protect against moves that target all MESSAGE("Tangela's Defense rose!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Sunkern's Defense rose!"); + MESSAGE("The opposing Sunkern's Defense rose!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); MESSAGE("Tangrowth's Defense rose!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FLOWER_SHIELD, playerLeft); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Sunflora's Defense rose!"); + MESSAGE("The opposing Sunflora's Defense rose!"); } } @@ -566,3 +582,4 @@ SINGLE_BATTLE_TEST("Spiky Shield does not damage users on Counter or Mirror Coat } } } + diff --git a/test/battle/move_effect/pursuit.c b/test/battle/move_effect/pursuit.c index 7c34e914d1..3a1db03d06 100644 --- a/test/battle/move_effect/pursuit.c +++ b/test/battle/move_effect/pursuit.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Pursuited mon correctly switches out after it got hit and ac ANIMATION(ANIM_TYPE_MOVE, MOVE_PURSUIT, opponent); ABILITY_POPUP(player, ABILITY_TANGLING_HAIR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wynaut's Speed fell!"); + MESSAGE("The opposing Wynaut's Speed fell!"); SEND_IN_MESSAGE("Wobbuffet"); } } diff --git a/test/battle/move_effect/quash.c b/test/battle/move_effect/quash.c index 5500fcb33e..b342eafd74 100644 --- a/test/battle/move_effect/quash.c +++ b/test/battle/move_effect/quash.c @@ -67,7 +67,7 @@ DOUBLE_BATTLE_TEST("Quash calculates correct turn order if only one pokemon is l ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_STONE_EDGE, playerRight); HP_BAR(opponentLeft); - MESSAGE("Foe Pidgeot fainted!"); + MESSAGE("The opposing Pidgeot fainted!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUASH, playerLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); diff --git a/test/battle/move_effect/rage_fist.c b/test/battle/move_effect/rage_fist.c index 52859cefc1..7bc349cef0 100644 --- a/test/battle/move_effect/rage_fist.c +++ b/test/battle/move_effect/rage_fist.c @@ -142,8 +142,8 @@ SINGLE_BATTLE_TEST("Rage Fist base power is not increased if a substitute was hi HP_BAR(opponent, captureDamage: ×GotHit[0]); ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_CRUNCH, opponent); - MESSAGE("The SUBSTITUTE took damage for Wobbuffet!"); - MESSAGE("Wobbuffet's SUBSTITUTE faded!"); + MESSAGE("The substitute took damage for Wobbuffet!"); + MESSAGE("Wobbuffet's substitute faded!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); HP_BAR(opponent, captureDamage: ×GotHit[1]); } THEN { @@ -241,7 +241,7 @@ SINGLE_BATTLE_TEST("Rage Fist base power is not increased if move had no affect" for (turns = 0; turns < 2; turns++) { ANIMATION(ANIM_TYPE_MOVE, MOVE_RAGE_FIST, player); HP_BAR(opponent, captureDamage: ×GotHit[turns]); - MESSAGE("Foe Regirock used Tackle!"); + MESSAGE("The opposing Regirock used Tackle!"); MESSAGE("It doesn't affect Gastly…"); } } THEN { diff --git a/test/battle/move_effect/recoil_if_miss.c b/test/battle/move_effect/recoil_if_miss.c index b6083e9d19..a5f0111095 100644 --- a/test/battle/move_effect/recoil_if_miss.c +++ b/test/battle/move_effect/recoil_if_miss.c @@ -78,9 +78,9 @@ SINGLE_BATTLE_TEST("Jump Kick's recoil happens after Spiky Shield damage and Pok } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKY_SHIELD, opponent); MESSAGE("Wobbuffet used Jump Kick!"); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); HP_BAR(player, damage: maxHp / 8); - MESSAGE("Wobbuffet was hurt by Foe Wobbuffet's Spiky Shield!"); + MESSAGE("Wobbuffet was hurt by the opposing Wobbuffet's Spiky Shield!"); if (faintOnSpiky){ MESSAGE("Wobbuffet fainted!"); SEND_IN_MESSAGE("Wynaut"); diff --git a/test/battle/move_effect/reflect_type.c b/test/battle/move_effect/reflect_type.c index 0b610efe6e..fc152fc27f 100644 --- a/test/battle/move_effect/reflect_type.c +++ b/test/battle/move_effect/reflect_type.c @@ -102,7 +102,7 @@ SINGLE_BATTLE_TEST("Reflect Type does not affect Pokémon with no types") ANIMATION(ANIM_TYPE_MOVE, MOVE_BURN_UP, player); HP_BAR(opponent); MESSAGE("Arcanine burned itself out!"); - MESSAGE("Foe Poliwrath used Reflect Type!"); + MESSAGE("The opposing Poliwrath used Reflect Type!"); MESSAGE("But it failed!"); } } @@ -121,7 +121,7 @@ SINGLE_BATTLE_TEST("Reflect Type copies a target's dual types") } SCENE { MESSAGE("Arcanine used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, player); - MESSAGE("Arcanine's type changed to match the Foe Poliwrath's!"); + MESSAGE("Arcanine became the same type as the opposing Poliwrath!"); } THEN { EXPECT_EQ(player->types[0], TYPE_WATER); EXPECT_EQ(player->types[1], TYPE_FIGHTING); @@ -143,7 +143,7 @@ SINGLE_BATTLE_TEST("Reflect Type copies a target's pure type") } SCENE { MESSAGE("Arcanine used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, player); - MESSAGE("Arcanine's type changed to match the Foe Sudowoodo's!"); + MESSAGE("Arcanine became the same type as the opposing Sudowoodo!"); } THEN { EXPECT_EQ(player->types[0], TYPE_ROCK); EXPECT_EQ(player->types[1], TYPE_ROCK); @@ -166,18 +166,18 @@ SINGLE_BATTLE_TEST("Reflect Type defaults to Normal type for the user's types[0] TURN { MOVE(player, MOVE_REFLECT_TYPE); } } SCENE { // Turn 1 - MESSAGE("Foe Arcanine used Burn Up!"); + MESSAGE("The opposing Arcanine used Burn Up!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BURN_UP, opponent); HP_BAR(player); - MESSAGE("Foe Arcanine burned itself out!"); + MESSAGE("The opposing Arcanine burned itself out!"); // Turn 2 MESSAGE("Wobbuffet used Forest's Curse!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_FORESTS_CURSE, player); - MESSAGE("Grass type was added to Foe Arcanine!"); + MESSAGE("Grass type was added to the opposing Arcanine!"); // Turn 3 MESSAGE("Wobbuffet used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, player); - MESSAGE("Wobbuffet's type changed to match the Foe Arcanine's!"); + MESSAGE("Wobbuffet became the same type as the opposing Arcanine!"); } THEN { EXPECT_EQ(player->types[0], TYPE_NORMAL); EXPECT_EQ(player->types[1], TYPE_NORMAL); diff --git a/test/battle/move_effect/refresh.c b/test/battle/move_effect/refresh.c new file mode 100644 index 0000000000..7cf319f3e6 --- /dev/null +++ b/test/battle/move_effect/refresh.c @@ -0,0 +1,68 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_REFRESH].effect == EFFECT_REFRESH); +} + +SINGLE_BATTLE_TEST("Refresh cures the user of burn, frostbite, poison, and paralysis") +{ + u32 status1; + PARAMETRIZE { status1 = STATUS1_POISON; } + PARAMETRIZE { status1 = STATUS1_BURN; } + PARAMETRIZE { status1 = STATUS1_PARALYSIS; } + PARAMETRIZE { status1 = STATUS1_TOXIC_POISON; } + PARAMETRIZE { status1 = STATUS1_FROSTBITE; } + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Status1(status1); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_REFRESH); } + } SCENE { + MESSAGE("Wobbuffet's status returned to normal!"); + STATUS_ICON(player, none: TRUE); + } +} + +SINGLE_BATTLE_TEST("Refresh does not cure the user of Freeze") +{ + PASSES_RANDOMLY(20, 100, RNG_FROZEN); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_FREEZE); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_REFRESH); } + } SCENE { + MESSAGE("Wobbuffet used Refresh!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_REFRESH, player); + STATUS_ICON(player, none: TRUE); } + MESSAGE("But it failed!"); + } +} + +SINGLE_BATTLE_TEST("Refresh does not cure sleep when used by Sleep Talk") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_SLEEP_TALK, MOVE_REFRESH); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SLEEP_TALK); } + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_REFRESH); } + } SCENE { + MESSAGE("Wobbuffet used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet used Sleep Talk!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, opponent); + MESSAGE("The opposing Wobbuffet used Refresh!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_REFRESH, player); + STATUS_ICON(player, none: TRUE); } + MESSAGE("But it failed!"); + } +} diff --git a/test/battle/move_effect/relic_song.c b/test/battle/move_effect/relic_song.c index 3ea405cc50..e7569c7e38 100644 --- a/test/battle/move_effect/relic_song.c +++ b/test/battle/move_effect/relic_song.c @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Relic Song is prevented by Soundproof") TURN { MOVE(player, MOVE_RELIC_SONG); } } SCENE { ABILITY_POPUP(opponent, ABILITY_SOUNDPROOF); - MESSAGE("Foe Voltorb's Soundproof blocks Relic Song!"); + MESSAGE("The opposing Voltorb's Soundproof blocks Relic Song!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); HP_BAR(opponent); @@ -64,7 +64,7 @@ SINGLE_BATTLE_TEST("Relic Song is blocked by Throat Chop") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, opponent); HP_BAR(player); - MESSAGE("Wobbuffet can't use Relic Song due to Throat Chop!"); + MESSAGE("The effects of Throat Chop prevent Wobbuffet from using certain moves!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); } } @@ -134,7 +134,7 @@ SINGLE_BATTLE_TEST("Relic Song transformation is the last thing that happens aft } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); HP_BAR(opponent); - MESSAGE("Foe Gossifleur fainted!"); + MESSAGE("The opposing Gossifleur fainted!"); ABILITY_POPUP(opponent, ABILITY_COTTON_DOWN); MESSAGE("Meloetta's Speed fell!"); MESSAGE("Meloetta transformed!"); @@ -191,7 +191,7 @@ SINGLE_BATTLE_TEST("Relic Song transforms Meloetta after Magician was activated" ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); HP_BAR(opponent); ABILITY_POPUP(player, ABILITY_MAGICIAN); - MESSAGE("Meloetta stole Foe Delphox's Potion!"); + MESSAGE("Meloetta stole the opposing Delphox's Potion!"); MESSAGE("Meloetta transformed!"); } THEN { EXPECT_EQ(player->species, SPECIES_MELOETTA_PIROUETTE); diff --git a/test/battle/move_effect/revival_blessing.c b/test/battle/move_effect/revival_blessing.c index d44e9110d5..dbeda39f91 100644 --- a/test/battle/move_effect/revival_blessing.c +++ b/test/battle/move_effect/revival_blessing.c @@ -1,10 +1,6 @@ #include "global.h" #include "test/battle.h" -// Note: Since these tests are recorded battle, they don't test the right battle controller -// behaviors. These have been tested in-game, in double, in multi, and in link battles. AI will always -// revive their first fainted party member in order. - ASSUMPTIONS { ASSUME(gMovesInfo[MOVE_REVIVAL_BLESSING].effect == EFFECT_REVIVAL_BLESSING); @@ -18,7 +14,7 @@ SINGLE_BATTLE_TEST("Revival Blessing revives a chosen fainted party member for t PLAYER(SPECIES_WYNAUT) { HP(0); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { - TURN { MOVE(player, MOVE_REVIVAL_BLESSING); SEND_OUT(player, 2); } + TURN { MOVE(player, MOVE_REVIVAL_BLESSING, partyIndex:2); } } SCENE { MESSAGE("Wobbuffet used Revival Blessing!"); MESSAGE("Wynaut was revived and is ready to fight again!"); @@ -33,9 +29,9 @@ SINGLE_BATTLE_TEST("Revival Blessing revives a fainted party member for an oppon OPPONENT(SPECIES_PICHU) { HP(0); } OPPONENT(SPECIES_PIKACHU) { HP(0); } } WHEN { - TURN { MOVE(opponent, MOVE_REVIVAL_BLESSING); SEND_OUT(opponent, 1); } + TURN { MOVE(opponent, MOVE_REVIVAL_BLESSING, partyIndex:1); } } SCENE { - MESSAGE("Foe Raichu used Revival Blessing!"); + MESSAGE("The opposing Raichu used Revival Blessing!"); MESSAGE("Pichu was revived and is ready to fight again!"); } } @@ -53,57 +49,80 @@ SINGLE_BATTLE_TEST("Revival Blessing fails if no party members are fainted") } } -// Note: There isn't a good way to test multi battles at the moment, but -// this PASSES in game! -TO_DO_BATTLE_TEST("Revival Blessing cannot revive a partner's party member"); -// DOUBLE_BATTLE_TEST("Revival Blessing cannot revive a partner's party member") -// { -// struct BattlePokemon *user; -// gBattleTypeFlags |= BATTLE_TYPE_TWO_OPPONENTS; -// PARAMETRIZE { user = opponentLeft; } -// PARAMETRIZE { user = opponentRight; } -// GIVEN { -// ASSUME((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) != FALSE); -// PLAYER(SPECIES_WOBBUFFET); -// PLAYER(SPECIES_WOBBUFFET); -// OPPONENT(SPECIES_WOBBUFFET); -// OPPONENT(SPECIES_WOBBUFFET); -// OPPONENT(SPECIES_WOBBUFFET); -// OPPONENT(SPECIES_WYNAUT); -// OPPONENT(SPECIES_WYNAUT) { HP(0); } -// OPPONENT(SPECIES_WYNAUT); -// } WHEN { -// TURN { MOVE(user, MOVE_REVIVAL_BLESSING); } -// } SCENE { -// if (user == opponentLeft) { -// MESSAGE("Foe Wobbuffet used Revival Blessing!"); -// MESSAGE("But it failed!"); -// } else { -// MESSAGE("Foe Wynaut used Revival Blessing!"); -// MESSAGE("Wynaut was revived and is ready to fight again!"); -// } -// } -// } +DOUBLE_BATTLE_TEST("Revival Blessing cannot revive a partner's party member") +{ + KNOWN_FAILING; + struct BattlePokemon *user = NULL; + gBattleTypeFlags |= BATTLE_TYPE_TWO_OPPONENTS; + PARAMETRIZE { user = opponentLeft; } + PARAMETRIZE { user = opponentRight; } + GIVEN { + ASSUME((gBattleTypeFlags & BATTLE_TYPE_TWO_OPPONENTS) != FALSE); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_WYNAUT) { HP(0); } + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(user, MOVE_REVIVAL_BLESSING, partyIndex:4); } + } SCENE { + if (user == opponentLeft) { + MESSAGE("The opposing Wobbuffet used Revival Blessing!"); + MESSAGE("But it failed!"); + } else { + MESSAGE("The opposing Wynaut used Revival Blessing!"); + MESSAGE("Wynaut was revived and is ready to fight again!"); + } + } +} -// Note: The test runner gets upset about "sending out" a battler on the field, -// but this PASSES in game! -TO_DO_BATTLE_TEST("Revived battlers still lose their turn"); -// DOUBLE_BATTLE_TEST("Revived battlers still lose their turn") -// { -// GIVEN { -// PLAYER(SPECIES_WOBBUFFET); -// PLAYER(SPECIES_WYNAUT); -// OPPONENT(SPECIES_WOBBUFFET); -// OPPONENT(SPECIES_WYNAUT) { HP(1); } -// } WHEN { -// TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentRight); -// MOVE(opponentLeft, MOVE_REVIVAL_BLESSING); -// SEND_OUT(opponentLeft, 1); } -// } SCENE { -// MESSAGE("Wobbuffet used Tackle!"); -// MESSAGE("Foe Wynaut fainted!"); -// MESSAGE("Foe Wobbuffet used Revival Blessing!"); -// MESSAGE("Wynaut was revived and is ready to fight again!"); -// NOT { MESSAGE("Wynaut used Celebrate!"); } -// } -// } +DOUBLE_BATTLE_TEST("Revival Blessing doesn't prevent revived battlers from losing their turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT) { HP(1); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentRight); + MOVE(opponentLeft, MOVE_REVIVAL_BLESSING, partyIndex: 1); } + } SCENE { + MESSAGE("Wobbuffet used Tackle!"); + MESSAGE("The opposing Wynaut fainted!"); + MESSAGE("The opposing Wobbuffet used Revival Blessing!"); + MESSAGE("Wynaut was revived and is ready to fight again!"); + NOT { MESSAGE("Wynaut used Celebrate!"); } + } +} + +DOUBLE_BATTLE_TEST("Revival Blessing correctly updates battler absent flags") +{ + GIVEN { + PLAYER(SPECIES_SALAMENCE) { Level(40); } + PLAYER(SPECIES_PIDGEOT) { Level(40); } + OPPONENT(SPECIES_GEODUDE) { Level(5); Ability(ABILITY_ROCK_HEAD); } + OPPONENT(SPECIES_STARLY) { Level(5); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); + MOVE(opponentRight, MOVE_REVIVAL_BLESSING, partyIndex: 0); } + TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); } + } SCENE { + // Turn 1 + MESSAGE("Salamence used Earthquake!"); + HP_BAR(opponentLeft); + MESSAGE("The opposing Geodude fainted!"); + MESSAGE("It doesn't affect Pidgeot…"); + MESSAGE("It doesn't affect the opposing Starly…"); + MESSAGE("The opposing Starly used Revival Blessing!"); + MESSAGE("Geodude was revived and is ready to fight again!"); // Should have prefix but it doesn't currently. + // Turn 2 + MESSAGE("Salamence used Earthquake!"); + HP_BAR(opponentLeft); + MESSAGE("The opposing Geodude fainted!"); + MESSAGE("It doesn't affect Pidgeot…"); + MESSAGE("It doesn't affect the opposing Starly…"); + } +} diff --git a/test/battle/move_effect/roar.c b/test/battle/move_effect/roar.c index 90e0fd1b47..f67a24bba1 100644 --- a/test/battle/move_effect/roar.c +++ b/test/battle/move_effect/roar.c @@ -19,7 +19,7 @@ SINGLE_BATTLE_TEST("Roar switches the target with a random non-fainted replaceme TURN { MOVE(player, MOVE_ROAR); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, player); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } } @@ -38,7 +38,7 @@ DOUBLE_BATTLE_TEST("Roar switches the target with a random non-battler, non-fain TURN { MOVE(playerLeft, MOVE_ROAR, target: opponentRight); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, playerLeft); - MESSAGE("Foe Bulbasaur was dragged out!"); + MESSAGE("The opposing Bulbasaur was dragged out!"); } } diff --git a/test/battle/move_effect/role_play.c b/test/battle/move_effect/role_play.c index cf82632fd8..ab0d801ee9 100644 --- a/test/battle/move_effect/role_play.c +++ b/test/battle/move_effect/role_play.c @@ -1,23 +1,63 @@ #include "global.h" #include "test/battle.h" -// Technically also covers Skill Swap and Doodle since both moves use the same command as Role Play ASSUMPTIONS { ASSUME(gMovesInfo[MOVE_ROLE_PLAY].effect == EFFECT_ROLE_PLAY); } -SINGLE_BATTLE_TEST("Role Play fails if target has a banned ability") +SINGLE_BATTLE_TEST("Role Play copies target's ability") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + }WHEN { + TURN { MOVE(player, MOVE_ROLE_PLAY); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, player); + ABILITY_POPUP(player, ABILITY_TELEPATHY); + } THEN { + EXPECT_EQ(player->ability, ABILITY_BLAZE); + EXPECT_EQ(opponent->ability, ABILITY_BLAZE); + } +} + +DOUBLE_BATTLE_TEST("Role Play copies target's current ability even if it changed during that turn") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); } + OPPONENT(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_ROLE_PLAY, target: opponentLeft); MOVE(opponentRight, MOVE_ROLE_PLAY, target: playerLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, playerLeft); + ABILITY_POPUP(playerLeft, ABILITY_TELEPATHY); + if (MOVE_ROLE_PLAY == MOVE_DOODLE) + ABILITY_POPUP(playerRight, ABILITY_BLAZE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, opponentRight); + ABILITY_POPUP(opponentRight, ABILITY_TORRENT); + NOT ABILITY_POPUP(opponentLeft, ABILITY_OVERGROW); // Already has ability (Doodle) + } THEN { + EXPECT_EQ(playerLeft->ability, ABILITY_OVERGROW); + if (MOVE_ROLE_PLAY == MOVE_DOODLE) + EXPECT_EQ(playerRight->ability, ABILITY_OVERGROW); + EXPECT_EQ(opponentLeft->ability, ABILITY_OVERGROW); + EXPECT_EQ(opponentRight->ability, ABILITY_OVERGROW); + } +} + +SINGLE_BATTLE_TEST("Role Play and Doodle fail if target's ability can't be copied'") { u32 species, ability; PARAMETRIZE { species = SPECIES_SHEDINJA; ability = ABILITY_WONDER_GUARD; } PARAMETRIZE { species = SPECIES_CASTFORM; ability = ABILITY_FORECAST; } - PARAMETRIZE { species = SPECIES_CHERRIM; ability = ABILITY_FLOWER_GIFT; } PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } + PARAMETRIZE { species = SPECIES_CHERRIM; ability = ABILITY_FLOWER_GIFT; } PARAMETRIZE { species = SPECIES_ZORUA; ability = ABILITY_ILLUSION; } PARAMETRIZE { species = SPECIES_DARMANITAN; ability = ABILITY_ZEN_MODE; } - PARAMETRIZE { species = SPECIES_DITTO; ability = ABILITY_IMPOSTER; } PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } PARAMETRIZE { species = SPECIES_MUK_ALOLA; ability = ABILITY_POWER_OF_ALCHEMY; } PARAMETRIZE { species = SPECIES_PASSIMIAN; ability = ABILITY_RECEIVER; } @@ -38,29 +78,34 @@ SINGLE_BATTLE_TEST("Role Play fails if target has a banned ability") PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } OPPONENT(species) { Ability(ability); } } WHEN { - TURN { MOVE(player,MOVE_ROLE_PLAY); } + TURN { MOVE(player, MOVE_ROLE_PLAY); } + TURN { MOVE(player, MOVE_DOODLE); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, player); MESSAGE("But it failed!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, player); + MESSAGE("But it failed!"); } } -SINGLE_BATTLE_TEST("Role Play fails if user has a banned ability") +SINGLE_BATTLE_TEST("Role Play fails if user's ability can't be suppressed") { u32 species, ability; PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } PARAMETRIZE { species = SPECIES_DARMANITAN; ability = ABILITY_ZEN_MODE; } PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } - PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } - PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } - PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } - PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } - PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } PARAMETRIZE { species = SPECIES_CRAMORANT; ability = ABILITY_GULP_MISSILE; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } @@ -68,9 +113,12 @@ SINGLE_BATTLE_TEST("Role Play fails if user has a banned ability") PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } OPPONENT(species) { Ability(ability); } } WHEN { - TURN { MOVE(opponent,MOVE_ROLE_PLAY); } + TURN { MOVE(opponent, MOVE_ROLE_PLAY); } + TURN { MOVE(opponent, MOVE_DOODLE); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_ROLE_PLAY, opponent); MESSAGE("But it failed!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DOODLE, opponent); + MESSAGE("But it failed!"); } } diff --git a/test/battle/move_effect/roost.c b/test/battle/move_effect/roost.c index b4c0186bf0..449119a89a 100644 --- a/test/battle/move_effect/roost.c +++ b/test/battle/move_effect/roost.c @@ -96,12 +96,12 @@ SINGLE_BATTLE_TEST("Roost suppresses the user's Flying-typing this turn, then re // Turn 1: EQ hits when Roosted MESSAGE("Skarmory used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Skarmory regained health!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("Skarmory's HP was restored."); + MESSAGE("The opposing Wobbuffet used Earthquake!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); MESSAGE("It's super effective!"); // Turn 2: EQ has no effect because Roost expired - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); MESSAGE("It doesn't affect Skarmory…"); NOT HP_BAR(player); @@ -140,7 +140,7 @@ SINGLE_BATTLE_TEST("Roost, if used by a Flying/Flying type, treats the user as a } SCENE { MESSAGE("Tornadus used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Tornadus regained health!"); + MESSAGE("Tornadus's HP was restored."); if (B_ROOST_PURE_FLYING >= GEN_5) // >= Gen. 5, Pokemon becomes pure Normal-type { @@ -214,7 +214,7 @@ SINGLE_BATTLE_TEST("Roost, if used by a Mystery/Flying type, treats the user as // Turn 2: Use Roost to now be treated as a Mystery/Mystery type MESSAGE("Moltres used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Moltres regained health!"); + MESSAGE("Moltres's HP was restored."); ANIMATION(ANIM_TYPE_MOVE, damagingMove, opponent); NONE_OF { MESSAGE("It's super effective!"); @@ -241,11 +241,11 @@ DOUBLE_BATTLE_TEST("Roost suppresses the user's not-yet-aquired Flying-type this } SCENE { MESSAGE("Kecleon used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, playerLeft); - MESSAGE("Kecleon regained health!"); - MESSAGE("Foe Pidgey used Gust!"); + MESSAGE("Kecleon's HP was restored."); + MESSAGE("The opposing Pidgey used Gust!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, opponentLeft); MESSAGE("Kecleon's Color Change made it the Flying type!"); - MESSAGE("Foe Sandshrew used Earthquake!"); + MESSAGE("The opposing Sandshrew used Earthquake!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponentRight); MESSAGE("Kecleon's Color Change made it the Ground type!"); } @@ -263,8 +263,8 @@ SINGLE_BATTLE_TEST("Roost prevents a Flying-type user from being protected by De } SCENE { MESSAGE("Rayquaza used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Rayquaza regained health!"); - MESSAGE("Foe Wobbuffet used Ice Beam!"); + MESSAGE("Rayquaza's HP was restored."); + MESSAGE("The opposing Wobbuffet used Ice Beam!"); NOT MESSAGE("The mysterious strong winds weakened the attack!"); } } @@ -282,11 +282,11 @@ SINGLE_BATTLE_TEST("Roost does not undo other type-changing effects at the end o } SCENE { MESSAGE("Swellow used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Swellow regained health!"); - MESSAGE("Foe Wobbuffet used Soak!"); + MESSAGE("Swellow's HP was restored."); + MESSAGE("The opposing Wobbuffet used Soak!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SOAK, opponent); MESSAGE("Swellow transformed into the Water type!"); - MESSAGE("Foe Wobbuffet used Vine Whip!"); + MESSAGE("The opposing Wobbuffet used Vine Whip!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_VINE_WHIP, opponent); MESSAGE("It's super effective!"); } @@ -305,7 +305,7 @@ SINGLE_BATTLE_TEST("Roost's effect is lifted after Grassy Terrain's healing") } SCENE { MESSAGE("Swellow used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Swellow regained health!"); + MESSAGE("Swellow's HP was restored."); MESSAGE("Swellow is healed by the grassy terrain!"); HP_BAR(player); } @@ -329,20 +329,20 @@ SINGLE_BATTLE_TEST("Roost's suppression prevents Reflect Type from copying any F // Turn 1: Reflect Type on Roosted Normal/Flying MESSAGE("Swellow used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Swellow regained health!"); - MESSAGE("Foe Wobbuffet used Reflect Type!"); + MESSAGE("Swellow's HP was restored."); + MESSAGE("The opposing Wobbuffet used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, opponent); - MESSAGE("Foe Wobbuffet's type changed to match the Swellow's!"); + MESSAGE("The opposing Wobbuffet became the same type as Swellow!"); // Turn 2: EQ hits, Reflect Type on non-Roosted Normal/Flying MESSAGE("Swellow used Earthquake!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet used Reflect Type!"); + MESSAGE("The opposing Wobbuffet used Reflect Type!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_REFLECT_TYPE, opponent); - MESSAGE("Foe Wobbuffet's type changed to match the Swellow's!"); + MESSAGE("The opposing Wobbuffet became the same type as Swellow!"); // Turn 3: EQ has no effect MESSAGE("Swellow used Earthquake!"); - MESSAGE("It doesn't affect Foe Wobbuffet…"); + MESSAGE("It doesn't affect the opposing Wobbuffet…"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, player); HP_BAR(opponent); @@ -360,8 +360,8 @@ SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Levitate") } SCENE { MESSAGE("Flygon used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Flygon regained health!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("Flygon's HP was restored."); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); HP_BAR(player); @@ -379,8 +379,8 @@ SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Air Balloon } SCENE { MESSAGE("Wobbuffet used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Wobbuffet regained health!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("Wobbuffet's HP was restored."); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); HP_BAR(player); @@ -400,12 +400,12 @@ SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Magnet Rise // Turn 1: Magnet Rise MESSAGE("Wobbuffet used Magnet Rise!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGNET_RISE, player); - MESSAGE("Wobbuffet levitated on electromagnetism!"); + MESSAGE("Wobbuffet levitated with electromagnetism!"); // Turn 2 MESSAGE("Wobbuffet used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Wobbuffet regained health!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("Wobbuffet's HP was restored."); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); HP_BAR(player); @@ -423,14 +423,14 @@ SINGLE_BATTLE_TEST("Roost does not suppress the ungrounded effect of Telekinesis TURN { MOVE(player, MOVE_ROOST); MOVE(opponent, MOVE_EARTHQUAKE); } } SCENE { // Turn 1: Telekinesis - MESSAGE("Foe Wobbuffet used Telekinesis!"); + MESSAGE("The opposing Wobbuffet used Telekinesis!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TELEKINESIS, opponent); MESSAGE("Wobbuffet was hurled into the air!"); // Turn 2 MESSAGE("Wobbuffet used Roost!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ROOST, player); - MESSAGE("Wobbuffet regained health!"); - MESSAGE("Foe Wobbuffet used Earthquake!"); + MESSAGE("Wobbuffet's HP was restored."); + MESSAGE("The opposing Wobbuffet used Earthquake!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, opponent); HP_BAR(player); diff --git a/test/battle/move_effect/salt_cure.c b/test/battle/move_effect/salt_cure.c index 939e32f0a6..495a7e8c80 100644 --- a/test/battle/move_effect/salt_cure.c +++ b/test/battle/move_effect/salt_cure.c @@ -19,11 +19,11 @@ SINGLE_BATTLE_TEST("Salt Cure inflicts 1/8 of the target's maximum HP as damage } SCENE { s32 maxHP = GetMonData(&OPPONENT_PARTY[0], MON_DATA_MAX_HP); ANIMATION(ANIM_TYPE_MOVE, MOVE_SALT_CURE, player); - MESSAGE("Foe Wobbuffet is being salt cured!"); + MESSAGE("The opposing Wobbuffet is being salt cured!"); for (j = 0; j < 4; j++) { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SALT_CURE_DAMAGE, opponent); HP_BAR(opponent, damage: maxHP / 8); - MESSAGE("Foe Wobbuffet is hurt by Salt Cure!"); + MESSAGE("The opposing Wobbuffet is hurt by Salt Cure!"); } } } @@ -62,12 +62,12 @@ SINGLE_BATTLE_TEST("Salt Cure is removed when the afflicted Pokémon is switched TURN { SWITCH(opponent, 1); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SALT_CURE, player); - MESSAGE("Foe Wobbuffet is being salt cured!"); + MESSAGE("The opposing Wobbuffet is being salt cured!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SALT_CURE_DAMAGE, opponent); - MESSAGE("Foe Wobbuffet is hurt by Salt Cure!"); + MESSAGE("The opposing Wobbuffet is hurt by Salt Cure!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SALT_CURE_DAMAGE, opponent); - MESSAGE("Foe Wobbuffet is hurt by Salt Cure!"); + MESSAGE("The opposing Wobbuffet is hurt by Salt Cure!"); } } } @@ -81,8 +81,8 @@ SINGLE_BATTLE_TEST("If Salt Cure faints the target no status will be applied") TURN { MOVE(player, MOVE_SALT_CURE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SALT_CURE, player); - NOT MESSAGE("Foe Wobbuffet is being salt cured!"); - MESSAGE("Foe Wobbuffet fainted!"); + NOT MESSAGE("The opposing Wobbuffet is being salt cured!"); + MESSAGE("The opposing Wobbuffet fainted!"); } } @@ -95,7 +95,25 @@ SINGLE_BATTLE_TEST("Salt Cure does not get applied if hitting a Substitute") TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_SALT_CURE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SALT_CURE, player); - MESSAGE("The SUBSTITUTE took damage for Foe Wobbuffet!"); - NOT MESSAGE("Foe Wobbuffet is being salt cured!"); + MESSAGE("The substitute took damage for the opposing Wobbuffet!"); + NOT MESSAGE("The opposing Wobbuffet is being salt cured!"); + } +} + +SINGLE_BATTLE_TEST("Salt Cure residual damage does not inflict any damage against Magic Guard") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_CLEFABLE) { Ability(ABILITY_MAGIC_GUARD); }; + } WHEN { + TURN { MOVE(player, MOVE_SALT_CURE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SALT_CURE, player); + HP_BAR(opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SALT_CURE_DAMAGE, opponent); + HP_BAR(opponent); + MESSAGE("The opposing Clefable is hurt by Salt Cure!"); + } } } diff --git a/test/battle/move_effect/semi_invulnerable.c b/test/battle/move_effect/semi_invulnerable.c index 3ba4889005..d3869bfe54 100644 --- a/test/battle/move_effect/semi_invulnerable.c +++ b/test/battle/move_effect/semi_invulnerable.c @@ -94,8 +94,8 @@ SINGLE_BATTLE_TEST("Semi-invulnerable moves make the user semi-invulnerable turn ANIMATION(ANIM_TYPE_MOVE, move, player); // Aerial Ace cannot miss unless the target is semi-invulnerable - MESSAGE("Foe Wobbuffet used Aerial Ace!"); - MESSAGE("Foe Wobbuffet's attack missed!"); + MESSAGE("The opposing Wobbuffet used Aerial Ace!"); + MESSAGE("The opposing Wobbuffet's attack missed!"); // Attack turn switch (move) { diff --git a/test/battle/move_effect/shed_tail.c b/test/battle/move_effect/shed_tail.c index d69993b88b..796defb455 100644 --- a/test/battle/move_effect/shed_tail.c +++ b/test/battle/move_effect/shed_tail.c @@ -37,7 +37,7 @@ SINGLE_BATTLE_TEST("Shed Tail fails if the user doesn't have enough HP") } WHEN { TURN { MOVE(player, MOVE_SHED_TAIL); } } SCENE { - MESSAGE("It was too weak to make a SUBSTITUTE!"); + MESSAGE("But it does not have enough HP left to make a substitute!"); } } @@ -52,7 +52,7 @@ SINGLE_BATTLE_TEST("Shed Tail's HP cost can trigger a berry before the user swit TURN { MOVE(player, MOVE_SHED_TAIL); SEND_OUT(player, 1); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SHED_TAIL, player); - MESSAGE("Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Sitrus Berry!"); SEND_IN_MESSAGE("Wynaut"); } } @@ -86,15 +86,17 @@ SINGLE_BATTLE_TEST("Shed Tail's HP cost doesn't trigger effects that trigger on } } -AI_SINGLE_BATTLE_TEST("AI will use Shed Tail to pivot to another mon while in damage stalemate with player") -{ - GIVEN { - AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); - PLAYER(SPECIES_WOBBUFFET) { Speed(100); Ability(ABILITY_RUN_AWAY); Moves(MOVE_TACKLE, MOVE_CELEBRATE); } - OPPONENT(SPECIES_WOBBUFFET) { Speed(50); Ability(ABILITY_RUN_AWAY); Moves(MOVE_CONFUSION, MOVE_SHED_TAIL); } - OPPONENT(SPECIES_SCIZOR) { Speed(101); Moves(MOVE_CELEBRATE, MOVE_X_SCISSOR); } - } WHEN { - TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_CONFUSION); } - TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_SHED_TAIL); } - } -} +// Passes for some reason even though it seems there is some code missing +// AI_SINGLE_BATTLE_TEST("AI will use Shed Tail to pivot to another mon while in damage stalemate with player") +// { +// KNOWN_FAILING; // missing AI code +// GIVEN { +// AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); +// PLAYER(SPECIES_WOBBUFFET) { Speed(100); Ability(ABILITY_RUN_AWAY); Moves(MOVE_TACKLE, MOVE_CELEBRATE); } +// OPPONENT(SPECIES_WOBBUFFET) { Speed(50); Ability(ABILITY_RUN_AWAY); Moves(MOVE_CONFUSION, MOVE_SHED_TAIL); } +// OPPONENT(SPECIES_SCIZOR) { Speed(101); Moves(MOVE_CELEBRATE, MOVE_X_SCISSOR); } +// } WHEN { +// TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_CONFUSION); } +// TURN { MOVE(player, MOVE_TACKLE); EXPECT_MOVE(opponent, MOVE_SHED_TAIL); } +// } +// } diff --git a/test/battle/move_effect/shell_trap.c b/test/battle/move_effect/shell_trap.c index 40febf040e..d43893244a 100644 --- a/test/battle/move_effect/shell_trap.c +++ b/test/battle/move_effect/shell_trap.c @@ -108,14 +108,14 @@ DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 1 a } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); MESSAGE("Wobbuffet set a shell trap!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); MESSAGE("Wobbuffet used Shell Trap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); HP_BAR(opponentLeft); HP_BAR(opponentRight); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("The opposing Wynaut used Celebrate!"); } } @@ -132,8 +132,8 @@ DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 2 a } SCENE { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); MESSAGE("Wobbuffet set a shell trap!"); - MESSAGE("Foe Wynaut used Celebrate!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wynaut used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); MESSAGE("Wobbuffet used Shell Trap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); @@ -157,8 +157,8 @@ DOUBLE_BATTLE_TEST("Shell Trap activates immediately after being hit on turn 3 a ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerLeft); MESSAGE("Wobbuffet set a shell trap!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut used Celebrate!"); - MESSAGE("Foe Wobbuffet used Tackle!"); + MESSAGE("The opposing Wynaut used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Tackle!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); MESSAGE("Wobbuffet used Shell Trap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerLeft); @@ -188,7 +188,7 @@ DOUBLE_BATTLE_TEST("Shell Trap targets correctly if one of the opponents has fai ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SHELL_TRAP_SETUP, playerRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponentLeft); ANIMATION(ANIM_TYPE_MOVE, MOVE_SHELL_TRAP, playerRight); - MESSAGE("Foe Scizor fainted!"); + MESSAGE("The opposing Scizor fainted!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerLeft); diff --git a/test/battle/move_effect/simple_beam.c b/test/battle/move_effect/simple_beam.c new file mode 100644 index 0000000000..e91bf0b8ce --- /dev/null +++ b/test/battle/move_effect/simple_beam.c @@ -0,0 +1,74 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_SIMPLE_BEAM].effect == EFFECT_SIMPLE_BEAM); +} + +SINGLE_BATTLE_TEST("Simple Beam replaces target's ability with Simple") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + }WHEN { + TURN { MOVE(player, MOVE_SIMPLE_BEAM); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SIMPLE_BEAM, player); + ABILITY_POPUP(opponent, ABILITY_BLAZE); + } THEN { + EXPECT_EQ(opponent->ability, ABILITY_SIMPLE); + } +} + +DOUBLE_BATTLE_TEST("Simple Beam fails if the target already has Simple") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); } + OPPONENT(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SIMPLE_BEAM, target: opponentLeft); MOVE(playerRight, MOVE_SIMPLE_BEAM, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SIMPLE_BEAM, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_OVERGROW); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SIMPLE_BEAM, playerRight); + ABILITY_POPUP(opponentLeft, ABILITY_SIMPLE); + } + } THEN { + EXPECT_EQ(opponentLeft->ability, ABILITY_SIMPLE); + } +} + +SINGLE_BATTLE_TEST("Simple Beam fails if target has an ability that can't be overwritten") +{ + u32 species, ability; + + PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } + PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } + PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } + PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } + PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } + PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } + PARAMETRIZE { species = SPECIES_CRAMORANT; ability = ABILITY_GULP_MISSILE; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } + PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } + PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_SIMPLE_BEAM); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SIMPLE_BEAM, player); + MESSAGE("But it failed!"); + } +} diff --git a/test/battle/move_effect/skill_swap.c b/test/battle/move_effect/skill_swap.c new file mode 100644 index 0000000000..9c31ae59a7 --- /dev/null +++ b/test/battle/move_effect/skill_swap.c @@ -0,0 +1,111 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_SKILL_SWAP].effect == EFFECT_SKILL_SWAP); +} + +SINGLE_BATTLE_TEST("Skill Swap swaps user and target's abilities") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + }WHEN { + TURN { MOVE(player, MOVE_SKILL_SWAP); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player); + ABILITY_POPUP(player, ABILITY_TELEPATHY); + ABILITY_POPUP(opponent, ABILITY_BLAZE); + } THEN { + EXPECT_EQ(player->ability, ABILITY_BLAZE); + EXPECT_EQ(opponent->ability, ABILITY_TELEPATHY); + } +} + +DOUBLE_BATTLE_TEST("Skill Swap only swaps user's ability with target's ability") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); } + OPPONENT(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SKILL_SWAP, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, playerLeft); + ABILITY_POPUP(playerLeft, ABILITY_TELEPATHY); + ABILITY_POPUP(opponentLeft, ABILITY_OVERGROW); + } THEN { + EXPECT_EQ(playerLeft->ability, ABILITY_OVERGROW); + EXPECT_EQ(playerRight->ability, ABILITY_BLAZE); + EXPECT_EQ(opponentLeft->ability, ABILITY_TELEPATHY); + EXPECT_EQ(opponentRight->ability, ABILITY_TORRENT); + } +} + +DOUBLE_BATTLE_TEST("Skill Swap doesn't display ability popups when swapping with an ally") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); } + OPPONENT(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SKILL_SWAP, target: playerRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, playerLeft); + NONE_OF { + ABILITY_POPUP(playerLeft, ABILITY_TELEPATHY); + ABILITY_POPUP(playerRight, ABILITY_BLAZE); + } + } THEN { + EXPECT_EQ(playerLeft->ability, ABILITY_BLAZE); + EXPECT_EQ(playerRight->ability, ABILITY_TELEPATHY); + } +} + +SINGLE_BATTLE_TEST("Skill Swap fails if user or target has an ability that can't be swapped") +{ + u32 species, ability; + + PARAMETRIZE { species = SPECIES_SHEDINJA; ability = ABILITY_WONDER_GUARD; } + PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } + PARAMETRIZE { species = SPECIES_ZORUA; ability = ABILITY_ILLUSION; } + PARAMETRIZE { species = SPECIES_DARMANITAN; ability = ABILITY_ZEN_MODE; } + PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } + PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } + PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } + PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } + PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_KOFFING; ability = ABILITY_NEUTRALIZING_GAS; } + PARAMETRIZE { species = SPECIES_MORPEKO; ability = ABILITY_HUNGER_SWITCH; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } + PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } + PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } + PARAMETRIZE { species = SPECIES_GREAT_TUSK; ability = ABILITY_PROTOSYNTHESIS; } + PARAMETRIZE { species = SPECIES_IRON_TREADS; ability = ABILITY_QUARK_DRIVE; } + PARAMETRIZE { species = SPECIES_OGERPON_TEAL_TERA; ability = ABILITY_EMBODY_ASPECT_TEAL_MASK; } + PARAMETRIZE { species = SPECIES_OGERPON_HEARTHFLAME_TERA; ability = ABILITY_EMBODY_ASPECT_HEARTHFLAME_MASK; } + PARAMETRIZE { species = SPECIES_OGERPON_WELLSPRING_TERA; ability = ABILITY_EMBODY_ASPECT_WELLSPRING_MASK; } + PARAMETRIZE { species = SPECIES_OGERPON_CORNERSTONE_TERA; ability = ABILITY_EMBODY_ASPECT_CORNERSTONE_MASK; } + PARAMETRIZE { species = SPECIES_TERAPAGOS_TERASTAL; ability = ABILITY_TERA_SHELL; } + PARAMETRIZE { species = SPECIES_TERAPAGOS_STELLAR; ability = ABILITY_TERAFORM_ZERO; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_SKILL_SWAP); MOVE(opponent, MOVE_SKILL_SWAP); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, player); + MESSAGE("But it failed!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent); + MESSAGE("But it failed!"); + } +} diff --git a/test/battle/move_effect/sleep.c b/test/battle/move_effect/sleep.c index 05efb7ab74..834f606672 100644 --- a/test/battle/move_effect/sleep.c +++ b/test/battle/move_effect/sleep.c @@ -24,15 +24,15 @@ SINGLE_BATTLE_TEST("Hypnosis inflicts 1-3 turns of sleep") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPNOSIS, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); - MESSAGE("Foe Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet fell asleep!"); STATUS_ICON(opponent, sleep: TRUE); for (count = 0; count < turns; ++count) { if (count < turns - 1) - MESSAGE("Foe Wobbuffet is fast asleep."); + MESSAGE("The opposing Wobbuffet is fast asleep."); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); } - MESSAGE("Foe Wobbuffet woke up!"); + MESSAGE("The opposing Wobbuffet woke up!"); STATUS_ICON(opponent, none: TRUE); } } diff --git a/test/battle/move_effect/smack_down.c b/test/battle/move_effect/smack_down.c index d68cb75ec3..eb924ea1ac 100644 --- a/test/battle/move_effect/smack_down.c +++ b/test/battle/move_effect/smack_down.c @@ -14,6 +14,6 @@ SINGLE_BATTLE_TEST("Smack Down does not ground mons behind substitutes") } WHEN { TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_SMACK_DOWN); } } SCENE { - NOT MESSAGE("Foe Skarmory fell straight down!"); + NOT MESSAGE("The opposing Skarmory fell straight down!"); } } diff --git a/test/battle/move_effect/smelling_salts.c b/test/battle/move_effect/smelling_salts.c index 311024a153..bb3f333a42 100644 --- a/test/battle/move_effect/smelling_salts.c +++ b/test/battle/move_effect/smelling_salts.c @@ -22,17 +22,17 @@ SINGLE_BATTLE_TEST("Smelling Salts does not cure paralyzed pokemons behind subst ANIMATION(ANIM_TYPE_MOVE, MOVE_SMELLING_SALTS, player); if (ability == ABILITY_INNER_FOCUS) { - MESSAGE("The SUBSTITUTE took damage for Foe Seismitoad!"); + MESSAGE("The substitute took damage for the opposing Seismitoad!"); NONE_OF { - MESSAGE("Foe Seismitoad's SUBSTITUTE faded!"); // Smelling Salts does 86 damage, the sub has 122 HP, if hitting a sub it shouldn't get boosted damage. - MESSAGE("Foe Seismitoad was healed of paralysis!"); + MESSAGE("The opposing Seismitoad's substitute faded!"); // Smelling Salts does 86 damage, the sub has 122 HP, if hitting a sub it shouldn't get boosted damage. + MESSAGE("The opposing Seismitoad was cured of paralysis!"); STATUS_ICON(opponent, none: TRUE); } } else { - MESSAGE("Foe Seismitoad was healed of paralysis!"); + MESSAGE("The opposing Seismitoad was cured of paralysis!"); STATUS_ICON(opponent, none: TRUE); } } @@ -52,12 +52,12 @@ SINGLE_BATTLE_TEST("Smelling Salts get incread power vs. paralyzed targets") ANIMATION(ANIM_TYPE_MOVE, MOVE_SMELLING_SALTS, player); if (status1 == STATUS1_PARALYSIS) { - MESSAGE("Foe Lotad fainted!"); + MESSAGE("The opposing Lotad fainted!"); } else { - NOT MESSAGE("Foe Lotad fainted!"); - MESSAGE("Foe Lotad used Celebrate!"); + NOT MESSAGE("The opposing Lotad fainted!"); + MESSAGE("The opposing Lotad used Celebrate!"); } } } diff --git a/test/battle/move_effect/sparkling_aria.c b/test/battle/move_effect/sparkling_aria.c index 0cbfdbc3e9..332cf8165c 100644 --- a/test/battle/move_effect/sparkling_aria.c +++ b/test/battle/move_effect/sparkling_aria.c @@ -18,8 +18,8 @@ DOUBLE_BATTLE_TEST("Sparkling Aria cures burns from all Pokemon on the field and } WHEN { TURN { MOVE(opponentLeft, MOVE_SUBSTITUTE); MOVE(opponentRight, MOVE_CELEBRATE); MOVE(playerRight, MOVE_CELEBRATE); MOVE(playerLeft, MOVE_SPARKLING_ARIA); } } SCENE { - MESSAGE("Foe Wobbuffet's burn was healed."); - MESSAGE("Wobbuffet's burn was healed."); - MESSAGE("Foe Wynaut's burn was healed."); + MESSAGE("The opposing Wobbuffet's burn was cured!"); + MESSAGE("Wobbuffet's burn was cured!"); + MESSAGE("The opposing Wynaut's burn was cured!"); } } diff --git a/test/battle/move_effect/special_attack_down.c b/test/battle/move_effect/special_attack_down.c index bf01aa0896..60d015d1cd 100644 --- a/test/battle/move_effect/special_attack_down.c +++ b/test/battle/move_effect/special_attack_down.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Confide lowers Special Attack", s16 damage) if (lowerSpecialAttack) { ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFIDE, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Sp. Atk fell!"); + MESSAGE("The opposing Wobbuffet's Sp. Atk fell!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_GUST, opponent); HP_BAR(player, captureDamage: &results[i].damage); diff --git a/test/battle/move_effect/spicy_extract.c b/test/battle/move_effect/spicy_extract.c index 8a66003ec7..c9ddb3c30d 100644 --- a/test/battle/move_effect/spicy_extract.c +++ b/test/battle/move_effect/spicy_extract.c @@ -16,9 +16,9 @@ SINGLE_BATTLE_TEST("Spicy Extract raises target's Attack by 2 stages and lowers } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack sharply rose!"); + MESSAGE("The opposing Wobbuffet's Attack sharply rose!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense harshly fell!"); + MESSAGE("The opposing Wobbuffet's Defense harshly fell!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE + 2); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE - 2); @@ -50,7 +50,7 @@ SINGLE_BATTLE_TEST("Spicy Extract is prevented by target's ability if it's Attac MESSAGE("Wobbuffet used Spicy Extract!"); if (ability == ABILITY_CLEAR_BODY) { ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); - MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + MESSAGE("The opposing Beldum's Clear Body prevents stat loss!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); @@ -73,13 +73,13 @@ SINGLE_BATTLE_TEST("Spicy Extract Defense loss is prevented by Big Pecks") MESSAGE("Wobbuffet used Spicy Extract!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Pidgey's Attack sharply rose!"); + MESSAGE("The opposing Pidgey's Attack sharply rose!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense harshly fell!"); + MESSAGE("The opposing Wobbuffet's Defense harshly fell!"); } ABILITY_POPUP(opponent, ABILITY_BIG_PECKS); - MESSAGE("Foe Pidgey's Big Pecks prevents Defense loss!"); + MESSAGE("The opposing Pidgey's Big Pecks prevents Defense loss!"); } } @@ -96,9 +96,9 @@ SINGLE_BATTLE_TEST("Spicy Extract bypasses accuracy checks") NOT MESSAGE("Wobbuffet's attack missed!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack sharply rose!"); + MESSAGE("The opposing Wobbuffet's Attack sharply rose!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense harshly fell!"); + MESSAGE("The opposing Wobbuffet's Defense harshly fell!"); } } @@ -110,7 +110,7 @@ SINGLE_BATTLE_TEST("Spicy Extract will fail if target is in a semi-invulnerabili } WHEN { TURN { MOVE(opponent, MOVE_DIVE); MOVE(player, MOVE_SPICY_EXTRACT); } } SCENE { - MESSAGE("Foe Wobbuffet used Dive!"); + MESSAGE("The opposing Wobbuffet used Dive!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_DIVE, opponent); MESSAGE("Wobbuffet used Spicy Extract!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); @@ -130,10 +130,10 @@ SINGLE_BATTLE_TEST("Spicy Extract stat changes will be inverted by Contrary") ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Snivy's Attack harshly fell!"); + MESSAGE("The opposing Snivy's Attack harshly fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Snivy's Defense sharply rose!"); + MESSAGE("The opposing Snivy's Defense sharply rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE - 2); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2); @@ -152,11 +152,11 @@ SINGLE_BATTLE_TEST("Spicy Extract against Clear Amulet and Contrary raises Defen ANIMATION(ANIM_TYPE_MOVE, MOVE_SPICY_EXTRACT, player); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Snivy's Attack harshly fell!"); + MESSAGE("The opposing Snivy's Attack harshly fell!"); } - MESSAGE("Foe Snivy's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Snivy prevents its stats from being lowered!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Snivy's Defense sharply rose!"); + MESSAGE("The opposing Snivy's Defense sharply rose!"); } THEN { EXPECT_EQ(opponent->statStages[STAT_ATK], DEFAULT_STAT_STAGE); EXPECT_EQ(opponent->statStages[STAT_DEF], DEFAULT_STAT_STAGE + 2); diff --git a/test/battle/move_effect/spikes.c b/test/battle/move_effect/spikes.c index 97207297f9..339a9f9a4b 100644 --- a/test/battle/move_effect/spikes.c +++ b/test/battle/move_effect/spikes.c @@ -28,11 +28,11 @@ SINGLE_BATTLE_TEST("Spikes damage on switch in") s32 maxHP = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); for (count = 0; count < layers; ++count) { ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, player); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); } MESSAGE("2 sent out Wynaut!"); HP_BAR(opponent, damage: maxHP / divisor); - MESSAGE("Foe Wynaut is hurt by spikes!"); + MESSAGE("The opposing Wynaut was hurt by the spikes!"); } } @@ -51,16 +51,16 @@ SINGLE_BATTLE_TEST("Spikes fails after 3 layers") } SCENE { s32 maxHP = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, player); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, player); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPIKES, player); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); MESSAGE("Wobbuffet used Spikes!"); MESSAGE("But it failed!"); MESSAGE("2 sent out Wynaut!"); HP_BAR(opponent, damage: maxHP / 4); - MESSAGE("Foe Wynaut is hurt by spikes!"); + MESSAGE("The opposing Wynaut was hurt by the spikes!"); } } @@ -79,10 +79,10 @@ SINGLE_BATTLE_TEST("Spikes damage on subsequent switch ins") s32 maxHP1 = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); MESSAGE("2 sent out Wynaut!"); HP_BAR(opponent, damage: maxHP1 / 8); - MESSAGE("Foe Wynaut is hurt by spikes!"); + MESSAGE("The opposing Wynaut was hurt by the spikes!"); MESSAGE("2 sent out Wobbuffet!"); HP_BAR(opponent, damage: maxHP0 / 8); - MESSAGE("Foe Wobbuffet is hurt by spikes!"); + MESSAGE("The opposing Wobbuffet was hurt by the spikes!"); } } diff --git a/test/battle/move_effect/sticky_web.c b/test/battle/move_effect/sticky_web.c index d6960f88d1..f1fff0fd1e 100644 --- a/test/battle/move_effect/sticky_web.c +++ b/test/battle/move_effect/sticky_web.c @@ -18,11 +18,11 @@ SINGLE_BATTLE_TEST("Sticky Web lowers Speed by 1 on switch-in") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); MESSAGE("2 sent out Wynaut!"); - MESSAGE("Foe Wynaut was caught in a Sticky Web!"); + MESSAGE("The opposing Wynaut was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wynaut's Speed fell!"); + MESSAGE("The opposing Wynaut's Speed fell!"); } } @@ -37,7 +37,7 @@ SINGLE_BATTLE_TEST("Sticky Web can only be set up 1 time") } SCENE { MESSAGE("Wobbuffet used Sticky Web!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); MESSAGE("Wobbuffet used Sticky Web!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player); @@ -62,16 +62,16 @@ DOUBLE_BATTLE_TEST("Sticky Web lowers Speed by 1 in a double battle after Explos TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, playerRight); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); MESSAGE("2 sent out Wynaut!"); MESSAGE("2 sent out Alakazam!"); - MESSAGE("Foe Alakazam was caught in a Sticky Web!"); + MESSAGE("The opposing Alakazam was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentRight); - MESSAGE("Foe Alakazam's Speed fell!"); - MESSAGE("Foe Wynaut was caught in a Sticky Web!"); + MESSAGE("The opposing Alakazam's Speed fell!"); + MESSAGE("The opposing Wynaut was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); - MESSAGE("Foe Wynaut's Speed fell!"); + MESSAGE("The opposing Wynaut's Speed fell!"); } } @@ -87,11 +87,11 @@ SINGLE_BATTLE_TEST("Sticky Web raises Speed by 1 for a Pokemon with Contrary") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, player); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); MESSAGE("2 sent out Shuckle!"); - MESSAGE("Foe Shuckle was caught in a Sticky Web!"); + MESSAGE("The opposing Shuckle was caught in a sticky web!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Shuckle's Speed rose!"); + MESSAGE("The opposing Shuckle's Speed rose!"); } } @@ -119,23 +119,23 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - the TURN { SWITCH(playerRight, 2); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, BATTLER_OPPONENT); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, BATTLER_PLAYER); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); SEND_IN_MESSAGE("Corviknight"); - MESSAGE("Corviknight was caught in a Sticky Web!"); + MESSAGE("Corviknight was caught in a sticky web!"); ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, BATTLER_OPPONENT); if (opponentSetUpper == 0) { - MESSAGE("Foe Caterpie's Speed fell!"); + MESSAGE("The opposing Caterpie's Speed fell!"); NONE_OF { - MESSAGE("Foe Caterpie was caught in a Sticky Web!"); + MESSAGE("The opposing Caterpie was caught in a sticky web!"); } } else { - MESSAGE("Foe Weedle's Speed fell!"); + MESSAGE("The opposing Weedle's Speed fell!"); NONE_OF { - MESSAGE("Foe Weedle was caught in a Sticky Web!"); + MESSAGE("The opposing Weedle was caught in a sticky web!"); } } } @@ -166,18 +166,18 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o } SCENE { if (speedPlayer > speedOpponent) { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, playerRight); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponentLeft); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); } else { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponentLeft); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, playerRight); - MESSAGE("A sticky web spreads out on the ground around the opposing team!"); + MESSAGE("A sticky web has been laid out on the ground around the opposing team!"); } SEND_IN_MESSAGE("Corviknight"); - MESSAGE("Corviknight was caught in a Sticky Web!"); + MESSAGE("Corviknight was caught in a sticky web!"); ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); } THEN { @@ -217,16 +217,16 @@ DOUBLE_BATTLE_TEST("Sticky Web has correct interactions with Mirror Armor - no o TURN { SWITCH(playerRight, 2); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponentLeft); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MEMENTO, opponentLeft); - MESSAGE("Foe Caterpie fainted!"); + MESSAGE("The opposing Caterpie fainted!"); if (hasReplacement) { MESSAGE("2 sent out Pidgey!"); } SEND_IN_MESSAGE("Corviknight"); - MESSAGE("Corviknight was caught in a Sticky Web!"); + MESSAGE("Corviknight was caught in a sticky web!"); ABILITY_POPUP(playerRight, ABILITY_MIRROR_ARMOR); NOT ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponentLeft); } THEN { @@ -251,7 +251,7 @@ SINGLE_BATTLE_TEST("Sticky Web is placed on the correct side after Explosion") ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, player); MESSAGE("Wobbuffet fainted!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponent); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); } } @@ -268,6 +268,6 @@ SINGLE_BATTLE_TEST("Sticky Web is placed on the correct side after Memento") ANIMATION(ANIM_TYPE_MOVE, MOVE_MEMENTO, player); MESSAGE("Wobbuffet fainted!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STICKY_WEB, opponent); - MESSAGE("A sticky web spreads out on the ground around your team!"); + MESSAGE("A sticky web has been laid out on the ground around your team!"); } } diff --git a/test/battle/move_effect/stomping_tantrum.c b/test/battle/move_effect/stomping_tantrum.c index 1a5870fdd0..32747282e4 100644 --- a/test/battle/move_effect/stomping_tantrum.c +++ b/test/battle/move_effect/stomping_tantrum.c @@ -81,7 +81,7 @@ SINGLE_BATTLE_TEST("Stomping Tatrum will not deal double damage if target protec HP_BAR(opponent, captureDamage: &damage[0]); ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STOMPING_TANTRUM, player); HP_BAR(opponent, captureDamage: &damage[1]); @@ -125,7 +125,7 @@ SINGLE_BATTLE_TEST("Stomping Tatrum will deal double damage if user was immune t } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STOMPING_TANTRUM, player); HP_BAR(opponent, captureDamage: &damage[0]); - MESSAGE("It doesn't affect Foe Pidgey…"); + MESSAGE("It doesn't affect the opposing Pidgey…"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STOMPING_TANTRUM, player); HP_BAR(opponent, captureDamage: &damage[1]); } THEN { diff --git a/test/battle/move_effect/strength_sap.c b/test/battle/move_effect/strength_sap.c index 4747074270..0246d0881f 100644 --- a/test/battle/move_effect/strength_sap.c +++ b/test/battle/move_effect/strength_sap.c @@ -22,9 +22,9 @@ SINGLE_BATTLE_TEST("Strength Sap lowers Attack by 1 and restores HP based on tar MESSAGE("Wobbuffet used Strength Sap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); HP_BAR(player, captureDamage: &results[i].hp); - MESSAGE("Foe Wobbuffet had its energy drained!"); + MESSAGE("The opposing Wobbuffet had its energy drained!"); } THEN { EXPECT_EQ(results[i].hp * -1, atkStat); } @@ -49,10 +49,10 @@ SINGLE_BATTLE_TEST("Strength Sap works exactly the same when attacker is behind MESSAGE("Wobbuffet used Strength Sap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); HP_BAR(player, captureDamage: &results[i].hp); - NOT MESSAGE("The SUBSTITUTE took damage for Foe Wobbuffet!"); - MESSAGE("Foe Wobbuffet had its energy drained!"); + NOT MESSAGE("The substitute took damage for the opposing Wobbuffet!"); + MESSAGE("The opposing Wobbuffet had its energy drained!"); } THEN { EXPECT_EQ(results[i].hp * -1, atkStat); } @@ -97,9 +97,9 @@ SINGLE_BATTLE_TEST("Strength Sap lowers Attack by 1 and restores HP based on tar MESSAGE("Wobbuffet used Strength Sap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); HP_BAR(player, captureDamage: &results[i].hp); - MESSAGE("Foe Wobbuffet had its energy drained!"); + MESSAGE("The opposing Wobbuffet had its energy drained!"); } THEN { if (statStage < DEFAULT_STAT_STAGE) { EXPECT_EQ(results[i].hp * -1, (60 * gStatStageRatios[statStage + 1][0] / gStatStageRatios[statStage + 1][1])); @@ -133,11 +133,11 @@ SINGLE_BATTLE_TEST("Strength Sap fails if target is at -6 Atk") NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); HP_BAR(player); - MESSAGE("Foe Wobbuffet had its energy drained!"); + MESSAGE("The opposing Wobbuffet had its energy drained!"); } - MESSAGE("Foe Wobbuffet's Attack won't go lower!"); + MESSAGE("The opposing Wobbuffet's Attack won't go any lower!"); } } @@ -158,9 +158,9 @@ SINGLE_BATTLE_TEST("Strength Sap restores more HP if Big Root is held", s16 hp) MESSAGE("Wobbuffet used Strength Sap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); HP_BAR(player, captureDamage: &results[i].hp); - MESSAGE("Foe Wobbuffet had its energy drained!"); + MESSAGE("The opposing Wobbuffet had its energy drained!"); } FINALLY { EXPECT_GT(abs(results[1].hp), abs(results[0].hp)); } @@ -184,10 +184,10 @@ SINGLE_BATTLE_TEST("Strength Sap makes attacker lose HP if target's ability is L MESSAGE("Wobbuffet used Strength Sap!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRENGTH_SAP, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Attack fell!"); + MESSAGE("The opposing Wobbuffet's Attack fell!"); ABILITY_POPUP(opponent, ABILITY_LIQUID_OOZE); HP_BAR(player, captureDamage: &lostHp); - MESSAGE("It sucked up the liquid ooze!"); + MESSAGE("Wobbuffet sucked up the liquid ooze!"); if (atkStat >= 490) { MESSAGE("Wobbuffet fainted!"); SEND_IN_MESSAGE("Wobbuffet"); diff --git a/test/battle/move_effect/substitute.c b/test/battle/move_effect/substitute.c index 5a3c973ebb..92e894fa07 100644 --- a/test/battle/move_effect/substitute.c +++ b/test/battle/move_effect/substitute.c @@ -21,7 +21,7 @@ SINGLE_BATTLE_TEST("Substitute creates a Substitute at the cost of 1/4 users max maxHP = GetMonData(&gPlayerParty[0], MON_DATA_HP); ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); HP_BAR(player, captureDamage: &costHP); - MESSAGE("Wobbuffet made a SUBSTITUTE!"); + MESSAGE("Wobbuffet put in a substitute!"); }THEN { EXPECT_EQ(maxHP / 4, costHP); } @@ -36,7 +36,7 @@ SINGLE_BATTLE_TEST("Substitute fails if the user doesn't have enough HP") } WHEN { TURN { MOVE(player, MOVE_SUBSTITUTE); } } SCENE { - MESSAGE("It was too weak to make a SUBSTITUTE!"); + MESSAGE("But it does not have enough HP left to make a substitute!"); } } @@ -51,7 +51,7 @@ SINGLE_BATTLE_TEST("Substitute's HP cost can trigger a berry") TURN { MOVE(player, MOVE_SUBSTITUTE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); - MESSAGE("Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Sitrus Berry!"); } } @@ -64,7 +64,7 @@ SINGLE_BATTLE_TEST("Substitute's HP cost doesn't trigger effects that trigger on TURN { MOVE(player, MOVE_SUBSTITUTE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, player); - MESSAGE("Wobbuffet made a SUBSTITUTE!"); + MESSAGE("Wobbuffet put in a substitute!"); NOT MESSAGE("Wobbuffet's Air Balloon popped!"); } } diff --git a/test/battle/move_effect/tailwind.c b/test/battle/move_effect/tailwind.c index 9cadc87599..5fa5356451 100644 --- a/test/battle/move_effect/tailwind.c +++ b/test/battle/move_effect/tailwind.c @@ -19,19 +19,19 @@ SINGLE_BATTLE_TEST("Tailwind applies for 4 turns") TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Tailwind!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); } } @@ -49,7 +49,7 @@ DOUBLE_BATTLE_TEST("Tailwind affects partner on first turn") } SCENE { MESSAGE("Wobbuffet used Tailwind!"); MESSAGE("Wynaut used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wynaut used Celebrate!"); } } diff --git a/test/battle/move_effect/take_heart.c b/test/battle/move_effect/take_heart.c index 081815cfb8..2961725b22 100644 --- a/test/battle/move_effect/take_heart.c +++ b/test/battle/move_effect/take_heart.c @@ -40,8 +40,32 @@ SINGLE_BATTLE_TEST("Take Heart cures the user of all status conditions") STATUS_ICON(player, none: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } else { + STATUS_ICON(player, none: TRUE); MESSAGE("Wobbuffet's status returned to normal!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); } } } + +SINGLE_BATTLE_TEST("Take Heart cures sleep when used by Sleep Talk") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { Moves(MOVE_SLEEP_TALK, MOVE_TAKE_HEART); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SLEEP_TALK); } + } SCENE { + MESSAGE("Wobbuffet used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + MESSAGE("The opposing Wobbuffet used Sleep Talk!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, opponent); + MESSAGE("The opposing Wobbuffet used Take Heart!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TAKE_HEART, opponent); + STATUS_ICON(opponent, none: TRUE); + MESSAGE("The opposing Wobbuffet's status returned to normal!"); + } +} diff --git a/test/battle/move_effect/teatime.c b/test/battle/move_effect/teatime.c index 398494a2c3..dfdc70c801 100644 --- a/test/battle/move_effect/teatime.c +++ b/test/battle/move_effect/teatime.c @@ -60,9 +60,9 @@ SINGLE_BATTLE_TEST("Teatime causes the user to consume its Berry, ignoring HP re } WHEN { TURN { MOVE(opponent, MOVE_TEATIME); } } SCENE { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, opponent); - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } @@ -76,7 +76,7 @@ SINGLE_BATTLE_TEST("Teatime causes other Pokemon to consume their Berry even if } SCENE { MESSAGE("Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, player); - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } @@ -88,7 +88,7 @@ SINGLE_BATTLE_TEST("Teatime causes other Pokemon to consume their Berry even if } WHEN { TURN { MOVE(opponent, MOVE_TEATIME); } } SCENE { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, opponent); MESSAGE("Using Liechi Berry, the Attack of Wobbuffet rose!"); } @@ -113,13 +113,13 @@ DOUBLE_BATTLE_TEST("Teatime causes all Pokémon to consume their berry") { MESSAGE("Wobbuffet used Teatime!"); } else { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, user); MESSAGE("Using Liechi Berry, the Attack of Wobbuffet rose!"); - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); MESSAGE("Using Liechi Berry, the Attack of Wobbuffet rose!"); - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } @@ -151,7 +151,7 @@ SINGLE_BATTLE_TEST("Teatime does not affect Pokémon in the semi-invulnerable tu MESSAGE("Wobbuffet used Teatime!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, player); - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } } @@ -177,7 +177,7 @@ SINGLE_BATTLE_TEST("Teatime triggers Volt Absorb if it has been affected by Elec MOVE(opponent, MOVE_TEATIME); } } SCENE { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, opponent); if (shouldTriggerAbility) { @@ -188,7 +188,7 @@ SINGLE_BATTLE_TEST("Teatime triggers Volt Absorb if it has been affected by Elec NOT ABILITY_POPUP(player, ABILITY_VOLT_ABSORB); MESSAGE("Using Liechi Berry, the Attack of Jolteon rose!"); } - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } @@ -213,7 +213,7 @@ SINGLE_BATTLE_TEST("Teatime triggers Lightning Rod if it has been affected by El MOVE(opponent, MOVE_TEATIME); } } SCENE { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, opponent); if (shouldTriggerAbility) { @@ -227,7 +227,7 @@ SINGLE_BATTLE_TEST("Teatime triggers Lightning Rod if it has been affected by El } MESSAGE("Using Liechi Berry, the Attack of Pikachu rose!"); } - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } @@ -252,7 +252,7 @@ SINGLE_BATTLE_TEST("Teatime triggers Motor Drive if it has been affected by Elec MOVE(opponent, MOVE_TEATIME); } } SCENE { - MESSAGE("Foe Wobbuffet used Teatime!"); + MESSAGE("The opposing Wobbuffet used Teatime!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TEATIME, opponent); if (shouldTriggerAbility) { @@ -266,6 +266,6 @@ SINGLE_BATTLE_TEST("Teatime triggers Motor Drive if it has been affected by Elec } MESSAGE("Using Liechi Berry, the Attack of Electivire rose!"); } - MESSAGE("Using Liechi Berry, the Attack of Foe Wobbuffet rose!"); + MESSAGE("Using Liechi Berry, the Attack of the opposing Wobbuffet rose!"); } } diff --git a/test/battle/move_effect/telekinesis.c b/test/battle/move_effect/telekinesis.c index 3da96a08b9..746c42d053 100644 --- a/test/battle/move_effect/telekinesis.c +++ b/test/battle/move_effect/telekinesis.c @@ -18,8 +18,8 @@ SINGLE_BATTLE_TEST("Telekinesis makes the target unable to avoid any attacks mad TURN { MOVE(player, MOVE_SCREECH, hit:FALSE); } } SCENE { MESSAGE("Wobbuffet used Telekinesis!"); - MESSAGE("Foe Wynaut was hurled into the air!"); - MESSAGE("Foe Wynaut used Minimize!"); + MESSAGE("The opposing Wynaut was hurled into the air!"); + MESSAGE("The opposing Wynaut used Minimize!"); MESSAGE("Wobbuffet used Screech!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SCREECH, player); NOT MESSAGE("Wobbuffet's attack missed!"); @@ -37,10 +37,10 @@ SINGLE_BATTLE_TEST("Telekinesis ends after 3 turns") TURN { } } SCENE { MESSAGE("Wobbuffet used Telekinesis!"); - MESSAGE("Foe Wynaut was hurled into the air!"); + MESSAGE("The opposing Wynaut was hurled into the air!"); MESSAGE("Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wynaut was freed from the telekinesis!"); + MESSAGE("The opposing Wynaut was freed from the telekinesis!"); } } @@ -59,13 +59,13 @@ SINGLE_BATTLE_TEST("Telekinesis makes the target immune to Ground-type attacks") ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLDOZE, player); HP_BAR(opponent); MESSAGE("Wobbuffet used Telekinesis!"); - MESSAGE("Foe Wynaut was hurled into the air!"); + MESSAGE("The opposing Wynaut was hurled into the air!"); MESSAGE("Wobbuffet used Bulldoze!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_BULLDOZE, player); HP_BAR(opponent); } - MESSAGE("It doesn't affect Foe Wynaut…"); + MESSAGE("It doesn't affect the opposing Wynaut…"); } } diff --git a/test/battle/move_effect/tera_blast.c b/test/battle/move_effect/tera_blast.c index 4fcb52be3a..80e960a1af 100644 --- a/test/battle/move_effect/tera_blast.c +++ b/test/battle/move_effect/tera_blast.c @@ -66,7 +66,7 @@ SINGLE_BATTLE_TEST("Tera Blast has correct effectiveness for every Tera Type") TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); } } SCENE { if (species == SPECIES_GASTLY && type == TYPE_NORMAL) - MESSAGE("It doesn't affect Foe Gastly…"); + MESSAGE("It doesn't affect the opposing Gastly…"); else MESSAGE("It's super effective!"); } @@ -180,7 +180,7 @@ SINGLE_BATTLE_TEST("Flying-type Tera Blast does not have its priority boosted by } WHEN { TURN { MOVE(player, MOVE_TERA_BLAST, gimmick: GIMMICK_TERA); MOVE(opponent, MOVE_QUICK_ATTACK); } } SCENE { - MESSAGE("Foe Wobbuffet used Quick Attack!"); + MESSAGE("The opposing Wobbuffet used Quick Attack!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_QUICK_ATTACK, opponent); MESSAGE("Talonflame used Tera Blast!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_BLAST, player); diff --git a/test/battle/move_effect/tera_starstorm.c b/test/battle/move_effect/tera_starstorm.c index 8b1ff41c75..b6b4571644 100644 --- a/test/battle/move_effect/tera_starstorm.c +++ b/test/battle/move_effect/tera_starstorm.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Tera Starstorm changes from Normal-type to Stellar-type if u MESSAGE("Terapagos used Tera Starstorm!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TERA_STARSTORM, player); HP_BAR(opponent); - NOT { MESSAGE("It doesn't affect Foe Misdreavus…"); } + NOT { MESSAGE("It doesn't affect the opposing Misdreavus…"); } } } @@ -71,6 +71,6 @@ SINGLE_BATTLE_TEST("Tera Starstorm remains Normal-type if used by Pokemon other TURN { MOVE(player, MOVE_TERA_STARSTORM, gimmick: GIMMICK_TERA); } } SCENE { MESSAGE("Wobbuffet used Tera Starstorm!"); - MESSAGE("It doesn't affect Foe Misdreavus…"); + MESSAGE("It doesn't affect the opposing Misdreavus…"); } } diff --git a/test/battle/move_effect/thousand_arrows.c b/test/battle/move_effect/thousand_arrows.c index 8deea06fbe..09e726fa20 100644 --- a/test/battle/move_effect/thousand_arrows.c +++ b/test/battle/move_effect/thousand_arrows.c @@ -15,7 +15,7 @@ SINGLE_BATTLE_TEST("Thousand Arrows does not ground mons behind substitutes") } WHEN { TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_THOUSAND_ARROWS); } } SCENE { - NOT MESSAGE("Foe Skarmory fell straight down!"); + NOT MESSAGE("The opposing Skarmory fell straight down!"); } } @@ -33,11 +33,11 @@ SINGLE_BATTLE_TEST("Thousand Arrows does neutral damage to non-grounded Flying t } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_THOUSAND_ARROWS, player); if (pokemon == SPECIES_SKARMORY) { - MESSAGE("Foe Skarmory fell straight down!"); - MESSAGE("Foe Skarmory used Celebrate!"); + MESSAGE("The opposing Skarmory fell straight down!"); + MESSAGE("The opposing Skarmory used Celebrate!"); } else { - MESSAGE("Foe Scyther fell straight down!"); - MESSAGE("Foe Scyther used Celebrate!"); + MESSAGE("The opposing Scyther fell straight down!"); + MESSAGE("The opposing Scyther used Celebrate!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); MESSAGE("Congratulations, 1!"); diff --git a/test/battle/move_effect/tidy_up.c b/test/battle/move_effect/tidy_up.c index 338ba90dc0..986e9a2ba3 100644 --- a/test/battle/move_effect/tidy_up.c +++ b/test/battle/move_effect/tidy_up.c @@ -61,12 +61,12 @@ SINGLE_BATTLE_TEST("Tidy Up removes Substitute") } WHEN { TURN { MOVE(opponent, MOVE_SUBSTITUTE); MOVE(player, MOVE_TIDY_UP); } } SCENE { - MESSAGE("Foe Wobbuffet used Substitute!"); + MESSAGE("The opposing Wobbuffet used Substitute!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SUBSTITUTE, opponent); - MESSAGE("Foe Wobbuffet made a SUBSTITUTE!"); + MESSAGE("The opposing Wobbuffet put in a substitute!"); MESSAGE("Wobbuffet used Tidy Up!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TIDY_UP, player); - MESSAGE("Foe Wobbuffet's SUBSTITUTE faded!"); + MESSAGE("The opposing Wobbuffet's substitute faded!"); MESSAGE("Tidying up complete!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Attack rose!"); diff --git a/test/battle/move_effect/torment.c b/test/battle/move_effect/torment.c index 376267f396..dc911691b0 100644 --- a/test/battle/move_effect/torment.c +++ b/test/battle/move_effect/torment.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Torment prevents consecutive move uses") TURN { MOVE(opponent, MOVE_SPLASH, allowed: FALSE); MOVE(opponent, MOVE_CELEBRATE); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TORMENT, player); - MESSAGE("Foe Wobbuffet was subjected to torment!"); + MESSAGE("The opposing Wobbuffet was subjected to torment!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SPLASH, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } diff --git a/test/battle/move_effect/toxic_spikes.c b/test/battle/move_effect/toxic_spikes.c index 6bf2e0d2a3..fd18f57b97 100644 --- a/test/battle/move_effect/toxic_spikes.c +++ b/test/battle/move_effect/toxic_spikes.c @@ -18,7 +18,7 @@ SINGLE_BATTLE_TEST("Toxic Spikes inflicts poison on switch in") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); MESSAGE("2 sent out Wynaut!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); STATUS_ICON(opponent, poison: TRUE); @@ -38,9 +38,9 @@ SINGLE_BATTLE_TEST("Toxic Spikes inflicts bad poison on switch in") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); MESSAGE("2 sent out Wynaut!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, opponent); STATUS_ICON(opponent, badPoison: TRUE); @@ -61,9 +61,9 @@ SINGLE_BATTLE_TEST("Toxic Spikes fails after 2 layers") TURN {} } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, player); - MESSAGE("Poison Spikes were scattered all around the opposing team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around the opposing team!"); MESSAGE("Wobbuffet used Toxic Spikes!"); MESSAGE("But it failed!"); MESSAGE("2 sent out Wynaut!"); @@ -176,7 +176,7 @@ SINGLE_BATTLE_TEST("Toxic Spikes are removed by grounded Poison-type Pokémon on } SCENE { if (grounded) { NOT STATUS_ICON(opponent, poison: TRUE); - MESSAGE("The poison spikes disappeared from around the opposing team's feet!"); + MESSAGE("The poison spikes disappeared from the ground around the opposing team!"); NOT STATUS_ICON(opponent, poison: TRUE); } else { NOT STATUS_ICON(opponent, poison: TRUE); @@ -204,7 +204,7 @@ SINGLE_BATTLE_TEST("Toxic Spikes are removed by Poison-type Pokémon affected by TURN { SWITCH(opponent, 0); } } SCENE { NOT STATUS_ICON(opponent, poison: TRUE); - MESSAGE("The poison spikes disappeared from around the opposing team's feet!"); + MESSAGE("The poison spikes disappeared from the ground around the opposing team!"); NOT STATUS_ICON(opponent, poison: TRUE); } } @@ -222,15 +222,15 @@ SINGLE_BATTLE_TEST("Toxic Spikes inflicts poison on switch in after Primal Rever TURN { SWITCH(player, 1); } TURN { MOVE(player, MOVE_MEMENTO); SEND_OUT(player, 2); } } SCENE { - MESSAGE("Foe Wobbuffet used Toxic Spikes!"); + MESSAGE("The opposing Wobbuffet used Toxic Spikes!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TOXIC_SPIKES, opponent); - MESSAGE("Poison Spikes were scattered all around your team's feet!"); + MESSAGE("Poison spikes were scattered on the ground all around your team!"); // Switch in SEND_IN_MESSAGE("Groudon"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_PSN, player); STATUS_ICON(player, poison: TRUE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_PRIMAL_REVERSION, player); - MESSAGE("Groudon's Primal Reversion! It reverted to its primal form!"); + MESSAGE("Groudon's Primal Reversion! It reverted to its primal state!"); // Memento MESSAGE("Groudon used Memento!"); MESSAGE("Groudon fainted!"); diff --git a/test/battle/move_effect/two_turns_attack.c b/test/battle/move_effect/two_turns_attack.c index 4b7adc6f81..efeb419ce5 100644 --- a/test/battle/move_effect/two_turns_attack.c +++ b/test/battle/move_effect/two_turns_attack.c @@ -208,29 +208,29 @@ SINGLE_BATTLE_TEST("Solar Beam and Solar Blade can be used instantly in Sunlight TURN { SKIP_TURN(player); } } SCENE { if (move1 == MOVE_SUNNY_DAY) { - NOT MESSAGE("Wobbuffet took in sunlight!"); + NOT MESSAGE("Wobbuffet absorbed light!"); } else { if (move2 == MOVE_SOLAR_BEAM) { if (B_UPDATED_MOVE_DATA >= GEN_5) { MESSAGE("Wobbuffet used Solar Beam!"); - MESSAGE("Wobbuffet took in sunlight!"); + MESSAGE("Wobbuffet absorbed light!"); ANIMATION(ANIM_TYPE_MOVE, move2, player); } else { NOT MESSAGE("Wobbuffet used Solar Beam!"); ANIMATION(ANIM_TYPE_MOVE, move2, player); - MESSAGE("Wobbuffet took in sunlight!"); + MESSAGE("Wobbuffet absorbed light!"); } MESSAGE("Wobbuffet used Solar Beam!"); } else { if (B_UPDATED_MOVE_DATA >= GEN_5) { MESSAGE("Wobbuffet used Solar Blade!"); - MESSAGE("Wobbuffet took in sunlight!"); + MESSAGE("Wobbuffet absorbed light!"); ANIMATION(ANIM_TYPE_MOVE, move2, player); } else { NOT MESSAGE("Wobbuffet used Solar Blade!"); ANIMATION(ANIM_TYPE_MOVE, move2, player); - MESSAGE("Wobbuffet took in sunlight!"); + MESSAGE("Wobbuffet absorbed light!"); } MESSAGE("Wobbuffet used Solar Blade!"); } diff --git a/test/battle/move_effect/upper_hand.c b/test/battle/move_effect/upper_hand.c index 6a041182fe..69b2b75ef9 100644 --- a/test/battle/move_effect/upper_hand.c +++ b/test/battle/move_effect/upper_hand.c @@ -20,7 +20,7 @@ SINGLE_BATTLE_TEST("Upper Hand succeeds if the target is using a priority attack } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_UPPER_HAND, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_EXTREME_SPEED, opponent); } } @@ -75,7 +75,7 @@ SINGLE_BATTLE_TEST("Upper Hand succeeds if the target's move is boosted in prior } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_UPPER_HAND, player); HP_BAR(opponent); - MESSAGE("Foe Comfey flinched!"); + MESSAGE("The opposing Comfey flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_DRAINING_KISS, opponent); } } diff --git a/test/battle/move_effect/uproar.c b/test/battle/move_effect/uproar.c index fe6a4c9931..a97422390f 100644 --- a/test/battle/move_effect/uproar.c +++ b/test/battle/move_effect/uproar.c @@ -8,6 +8,7 @@ ASSUMPTIONS DOUBLE_BATTLE_TEST("Uproar status causes sleeping pokemon to wake up during an attack") { + PASSES_RANDOMLY(1, 2, RNG_RANDOM_TARGET); // test fails if we target soundproof mon GIVEN { PLAYER(SPECIES_WOBBUFFET); PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_SLEEP); } @@ -18,11 +19,11 @@ DOUBLE_BATTLE_TEST("Uproar status causes sleeping pokemon to wake up during an a } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_UPROAR, playerLeft); HP_BAR(opponentRight); - MESSAGE("Wobbuffet woke up in the UPROAR!"); + MESSAGE("The uproar woke Wobbuffet!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, playerRight); - MESSAGE("Foe Voltorb woke up in the UPROAR!"); + MESSAGE("The uproar woke the opposing Voltorb!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentLeft); - MESSAGE("Foe Wobbuffet woke up in the UPROAR!"); + MESSAGE("The uproar woke the opposing Wobbuffet!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponentRight); } } diff --git a/test/battle/move_effect/wake_up_slap.c b/test/battle/move_effect/wake_up_slap.c index 20b22ca660..0a881be100 100644 --- a/test/battle/move_effect/wake_up_slap.c +++ b/test/battle/move_effect/wake_up_slap.c @@ -21,15 +21,15 @@ SINGLE_BATTLE_TEST("Wake-Up Slap does not cure paralyzed pokemons behind substit } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_WAKE_UP_SLAP, player); if (ability == ABILITY_INNER_FOCUS) { - MESSAGE("The SUBSTITUTE took damage for Foe Seismitoad!"); + MESSAGE("The substitute took damage for the opposing Seismitoad!"); NONE_OF { - MESSAGE("Foe Seismitoad's SUBSTITUTE faded!"); // Smelling Salts does 86 damage, the sub has 122 HP, if hitting a sub it shouldn't get boosted damage. - MESSAGE("Foe Seismitoad woke up!"); + MESSAGE("The opposing Seismitoad's substitute faded!"); // Smelling Salts does 86 damage, the sub has 122 HP, if hitting a sub it shouldn't get boosted damage. + MESSAGE("The opposing Seismitoad woke up!"); STATUS_ICON(opponent, none: TRUE); } } else { - MESSAGE("Foe Seismitoad woke up!"); + MESSAGE("The opposing Seismitoad woke up!"); STATUS_ICON(opponent, none: TRUE); } } @@ -48,10 +48,10 @@ SINGLE_BATTLE_TEST("Wake-Up Slap gets increased power against sleeping targets") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_WAKE_UP_SLAP, player); if (status1 == STATUS1_SLEEP) { - MESSAGE("Foe Lotad fainted!"); + MESSAGE("The opposing Lotad fainted!"); } else { - NOT MESSAGE("Foe Lotad fainted!"); - MESSAGE("Foe Lotad used Celebrate!"); + NOT MESSAGE("The opposing Lotad fainted!"); + MESSAGE("The opposing Lotad used Celebrate!"); } } } diff --git a/test/battle/move_effect/worry_seed.c b/test/battle/move_effect/worry_seed.c new file mode 100644 index 0000000000..3e74c883e7 --- /dev/null +++ b/test/battle/move_effect/worry_seed.c @@ -0,0 +1,74 @@ +#include "global.h" +#include "test/battle.h" + +ASSUMPTIONS +{ + ASSUME(gMovesInfo[MOVE_WORRY_SEED].effect == EFFECT_WORRY_SEED); +} + +SINGLE_BATTLE_TEST("Worry Seed replaces target's ability with Insomnia") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + }WHEN { + TURN { MOVE(player, MOVE_WORRY_SEED); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WORRY_SEED, player); + ABILITY_POPUP(opponent, ABILITY_BLAZE); + } THEN { + EXPECT_EQ(opponent->ability, ABILITY_INSOMNIA); + } +} + +DOUBLE_BATTLE_TEST("Worry Seed fails if the target already has Insomnia") +{ + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + PLAYER(SPECIES_CHARMANDER) { Ability(ABILITY_BLAZE); } + OPPONENT(SPECIES_BULBASAUR) { Ability(ABILITY_OVERGROW); } + OPPONENT(SPECIES_SQUIRTLE) { Ability(ABILITY_TORRENT); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WORRY_SEED, target: opponentLeft); MOVE(playerRight, MOVE_WORRY_SEED, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WORRY_SEED, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_OVERGROW); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WORRY_SEED, playerRight); + ABILITY_POPUP(opponentLeft, ABILITY_INSOMNIA); + } + } THEN { + EXPECT_EQ(opponentLeft->ability, ABILITY_INSOMNIA); + } +} + +SINGLE_BATTLE_TEST("Worry Seed fails if target has an ability that can't be overwritten") +{ + u32 species, ability; + + PARAMETRIZE { species = SPECIES_ARCEUS; ability = ABILITY_MULTITYPE; } + PARAMETRIZE { species = SPECIES_AEGISLASH; ability = ABILITY_STANCE_CHANGE; } + PARAMETRIZE { species = SPECIES_MINIOR; ability = ABILITY_SHIELDS_DOWN; } + PARAMETRIZE { species = SPECIES_WISHIWASHI; ability = ABILITY_SCHOOLING; } + PARAMETRIZE { species = SPECIES_MIMIKYU; ability = ABILITY_DISGUISE; } + PARAMETRIZE { species = SPECIES_GRENINJA_BATTLE_BOND; ability = ABILITY_BATTLE_BOND; } + PARAMETRIZE { species = SPECIES_ZYGARDE; ability = ABILITY_POWER_CONSTRUCT; } + PARAMETRIZE { species = SPECIES_KOMALA; ability = ABILITY_COMATOSE; } + PARAMETRIZE { species = SPECIES_SILVALLY; ability = ABILITY_RKS_SYSTEM; } + PARAMETRIZE { species = SPECIES_CRAMORANT; ability = ABILITY_GULP_MISSILE; } + PARAMETRIZE { species = SPECIES_EISCUE; ability = ABILITY_ICE_FACE; } + PARAMETRIZE { species = SPECIES_CALYREX_ICE; ability = ABILITY_AS_ONE_ICE_RIDER; } + PARAMETRIZE { species = SPECIES_CALYREX_SHADOW; ability = ABILITY_AS_ONE_SHADOW_RIDER; } + PARAMETRIZE { species = SPECIES_PALAFIN_ZERO; ability = ABILITY_ZERO_TO_HERO; } + PARAMETRIZE { species = SPECIES_TATSUGIRI; ability = ABILITY_COMMANDER; } + + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Ability(ABILITY_TELEPATHY); } + OPPONENT(species) { Ability(ability); } + } WHEN { + TURN { MOVE(player, MOVE_WORRY_SEED); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_WORRY_SEED, player); + MESSAGE("But it failed!"); + } +} diff --git a/test/battle/move_effect_secondary/bug_bite.c b/test/battle/move_effect_secondary/bug_bite.c index a274e34d5a..fdf9b05cf4 100644 --- a/test/battle/move_effect_secondary/bug_bite.c +++ b/test/battle/move_effect_secondary/bug_bite.c @@ -52,28 +52,28 @@ SINGLE_BATTLE_TEST("Bug Bite eats the target's berry and immediately gains its e HP_BAR(opponent); if (effect == HOLD_EFFECT_RESTORE_HP || effect == HOLD_EFFECT_ENIGMA_BERRY) { if (item == ITEM_ORAN_BERRY) { - MESSAGE("Wobbuffet's Oran Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Oran Berry!"); } else if (item == ITEM_SITRUS_BERRY) { - MESSAGE("Wobbuffet's Sitrus Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Sitrus Berry!"); } else { - MESSAGE("Wobbuffet's Enigma Berry restored health!"); + MESSAGE("Wobbuffet restored its health using its Enigma Berry!"); } HP_BAR(player); } else if (effect == HOLD_EFFECT_RESTORE_PP) { - MESSAGE("Wobbuffet's Leppa Berry restored Bug Bite's PP!"); + MESSAGE("Wobbuffet restored PP to its move Bug Bite using its Leppa Berry!"); } else if (status1 != STATUS1_NONE) { if (status1 == STATUS1_BURN) { - MESSAGE("Wobbuffet's Rawst Berry healed its burn!"); + MESSAGE("Wobbuffet's Rawst Berry cured its burn!"); } else if (status1 == STATUS1_SLEEP) { - MESSAGE("Wobbuffet's Chesto Berry woke it from its sleep!"); + MESSAGE("Wobbuffet's Chesto Berry woke it up!"); } else if (status1 == STATUS1_PARALYSIS) { - MESSAGE("Wobbuffet's Cheri Berry cured paralysis!"); + MESSAGE("Wobbuffet's Cheri Berry cured its paralysis!"); } else if (status1 == STATUS1_TOXIC_POISON || status1 == STATUS1_POISON) { - MESSAGE("Wobbuffet's Pecha Berry cured poison!"); + MESSAGE("Wobbuffet's Pecha Berry cured its poison!"); } else if (status1 == STATUS1_FROSTBITE) { - MESSAGE("Wobbuffet's Aspear Berry healed its frostbite!"); + MESSAGE("Wobbuffet's Aspear Berry cured its frostbite!"); } NOT STATUS_ICON(player, status1); } @@ -126,10 +126,9 @@ SINGLE_BATTLE_TEST("Tanga Berry activates before Bug Bite") } SCENE { MESSAGE("Wobbuffet used Bug Bite!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponent); - MESSAGE("Foe Wobbuffet ate its Tanga Berry!"); + MESSAGE("The Tanga Berry weakened the damage to the opposing Wobbuffet!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_BUG_BITE, player); HP_BAR(opponent); - MESSAGE("Tanga Berry weakened the damage to Foe Wobbuffet!"); } THEN { EXPECT_EQ(player->item, ITEM_NONE); } diff --git a/test/battle/move_effect_secondary/burn.c b/test/battle/move_effect_secondary/burn.c index 1b6843715c..9801ad1f25 100644 --- a/test/battle/move_effect_secondary/burn.c +++ b/test/battle/move_effect_secondary/burn.c @@ -53,12 +53,12 @@ DOUBLE_BATTLE_TEST("Lava Plume inflicts burn to all adjacent battlers") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_LAVA_PLUME, playerLeft); HP_BAR(opponentLeft); + HP_BAR(playerRight); + HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); STATUS_ICON(opponentLeft, burn: TRUE); - HP_BAR(playerRight); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, playerRight); STATUS_ICON(playerRight, burn: TRUE); - HP_BAR(opponentRight); STATUS_ICON(opponentRight, burn: TRUE); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); } @@ -94,9 +94,9 @@ DOUBLE_BATTLE_TEST("Matcha Gatcha can burn both targets") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MATCHA_GOTCHA, playerLeft); HP_BAR(opponentLeft); + HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentLeft); STATUS_ICON(opponentLeft, burn: TRUE); - HP_BAR(opponentRight); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_BRN, opponentRight); STATUS_ICON(opponentRight, burn: TRUE); } diff --git a/test/battle/move_effect_secondary/confusion.c b/test/battle/move_effect_secondary/confusion.c index bdfc57fc35..72a9639350 100644 --- a/test/battle/move_effect_secondary/confusion.c +++ b/test/battle/move_effect_secondary/confusion.c @@ -20,11 +20,11 @@ SINGLE_BATTLE_TEST("Alluring Voice confuses the target if the target raised a st HP_BAR(opponent); if (move == MOVE_SWORDS_DANCE) { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } else { NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } } @@ -44,7 +44,7 @@ SINGLE_BATTLE_TEST("Alluring Voice confuse effect is removed if it is Sheer Forc HP_BAR(opponent); NONE_OF { ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } } diff --git a/test/battle/move_effect_secondary/flinch.c b/test/battle/move_effect_secondary/flinch.c index c54c9536fe..28b555f00f 100644 --- a/test/battle/move_effect_secondary/flinch.c +++ b/test/battle/move_effect_secondary/flinch.c @@ -25,20 +25,20 @@ SINGLE_BATTLE_TEST("Headbutt flinches the target if attacker is faster") ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, player); HP_BAR(opponent); if (isFaster) { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } else { - NOT MESSAGE("Foe Wobbuffet flinched!"); + NOT MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } // 2nd turn ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, player); HP_BAR(opponent); if (isFaster) { - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } else { - NOT MESSAGE("Foe Wobbuffet flinched!"); + NOT MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } } } @@ -60,7 +60,7 @@ SINGLE_BATTLE_TEST("Protect always works when used after flinching") // 2nd turn ANIMATION(ANIM_TYPE_MOVE, MOVE_HEADBUTT, opponent); HP_BAR(player); - MESSAGE("Wobbuffet flinched!"); + MESSAGE("Wobbuffet flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); // 3rd turn diff --git a/test/battle/move_effect_secondary/order_up.c b/test/battle/move_effect_secondary/order_up.c index ea1980062c..8d286850a2 100644 --- a/test/battle/move_effect_secondary/order_up.c +++ b/test/battle/move_effect_secondary/order_up.c @@ -73,7 +73,7 @@ DOUBLE_BATTLE_TEST("Order Up increases a stat based on Tatsugiri's form even if ABILITY_POPUP(playerLeft, ABILITY_COMMANDER); MESSAGE("Tatsugiri was swallowed by Dondozo and became Dondozo's commander!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerRight); - MESSAGE("Tatsugiri is hurt by poison!"); + MESSAGE("Tatsugiri was hurt by its poisoning!"); MESSAGE("Tatsugiri fainted!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_HAZE, opponentRight); // Remove previous stat boosts ANIMATION(ANIM_TYPE_MOVE, MOVE_ORDER_UP, playerRight); @@ -131,7 +131,7 @@ DOUBLE_BATTLE_TEST("Order Up is boosted by Sheer Force without removing the stat } WHEN { TURN { MOVE(opponentRight, MOVE_ENTRAINMENT, target: playerLeft); MOVE(playerLeft, MOVE_ORDER_UP, target: opponentLeft); } } SCENE { - MESSAGE("Foe Tauros used Entrainment!"); + MESSAGE("The opposing Tauros used Entrainment!"); MESSAGE("Dondozo acquired Sheer Force!"); MESSAGE("Dondozo used Order Up!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); @@ -157,10 +157,10 @@ DOUBLE_BATTLE_TEST("Order Up is always boosted by Sheer Force", s16 damage) MOVE(opponentLeft, move, target: playerLeft); MOVE(playerLeft, MOVE_ORDER_UP, target: opponentRight); } } SCENE { - MESSAGE("Foe Wobbuffet used Haze!"); + MESSAGE("The opposing Wobbuffet used Haze!"); if (move == MOVE_ENTRAINMENT) { - MESSAGE("Foe Tauros used Entrainment!"); + MESSAGE("The opposing Tauros used Entrainment!"); MESSAGE("Dondozo acquired Sheer Force!"); } MESSAGE("Dondozo used Order Up!"); diff --git a/test/battle/move_effect_secondary/pay_day.c b/test/battle/move_effect_secondary/pay_day.c index e448a4c935..3b0544a909 100644 --- a/test/battle/move_effect_secondary/pay_day.c +++ b/test/battle/move_effect_secondary/pay_day.c @@ -16,7 +16,7 @@ SINGLE_BATTLE_TEST("Pay Day Scatters coins around after it hits - singles") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PAY_DAY, player); HP_BAR(opponent); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); } } @@ -32,6 +32,6 @@ DOUBLE_BATTLE_TEST("Pay Day Scatters coins around after it hits - doubles") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PAY_DAY, playerLeft); HP_BAR(opponentLeft); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); } } diff --git a/test/battle/move_effect_secondary/psychic_noise.c b/test/battle/move_effect_secondary/psychic_noise.c index e8d50dc961..e44ae75abe 100644 --- a/test/battle/move_effect_secondary/psychic_noise.c +++ b/test/battle/move_effect_secondary/psychic_noise.c @@ -18,10 +18,10 @@ SINGLE_BATTLE_TEST("Psychic Noise blocks healing moves for 2 turns") TURN { MOVE(opponent, MOVE_RECOVER); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC_NOISE, player); - MESSAGE("Foe Wobbuffet was prevented from healing!"); - MESSAGE("Foe Wobbuffet was prevented from healing!"); + MESSAGE("The opposing Wobbuffet was prevented from healing!"); + MESSAGE("The opposing Wobbuffet was prevented from healing!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_STRUGGLE, opponent); - MESSAGE("Foe Wobbuffet's Heal Block wore off!"); + MESSAGE("The opposing Wobbuffet's Heal Block wore off!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_RECOVER, opponent); } } @@ -35,7 +35,7 @@ SINGLE_BATTLE_TEST("Psychic Noise is blocked by Soundproof") TURN { MOVE(player, MOVE_PSYCHIC_NOISE); MOVE(opponent, MOVE_RECOVER); } } SCENE { ABILITY_POPUP(opponent, ABILITY_SOUNDPROOF); - MESSAGE("Foe Voltorb's Soundproof blocks Psychic Noise!"); + MESSAGE("The opposing Voltorb's Soundproof blocks Psychic Noise!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_RECOVER, opponent); } } @@ -50,7 +50,7 @@ SINGLE_BATTLE_TEST("Psychic Noise heal block effect is blocked by Aroma Veil") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC_NOISE, player); ABILITY_POPUP(opponent, ABILITY_AROMA_VEIL); - MESSAGE("Foe Milcery is protected by an aromatic veil!"); + MESSAGE("The opposing Milcery is protected by an aromatic veil!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_RECOVER, opponent); } } @@ -67,7 +67,7 @@ DOUBLE_BATTLE_TEST("Psychic Noise heal block effect is blocked by partners Aroma } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC_NOISE, playerLeft); ABILITY_POPUP(opponentRight, ABILITY_AROMA_VEIL); - MESSAGE("Foe Wobbuffet is protected by an aromatic veil!"); + MESSAGE("The opposing Wobbuffet is protected by an aromatic veil!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_RECOVER, opponentLeft); } } diff --git a/test/battle/move_effect_secondary/rapid_spin.c b/test/battle/move_effect_secondary/rapid_spin.c index 0ba5e4f65f..4e490164d7 100644 --- a/test/battle/move_effect_secondary/rapid_spin.c +++ b/test/battle/move_effect_secondary/rapid_spin.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Rapin Spin blows away Wrap, hazards and raises Speed (Gen 8+ } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_RAPID_SPIN, player); - MESSAGE("Wobbuffet got free of Foe Wobbuffet's Wrap!"); + MESSAGE("Wobbuffet got free of the opposing Wobbuffet's Wrap!"); MESSAGE("Wobbuffet blew away Stealth Rock!"); #if B_SPEED_BUFFING_RAPID_SPIN >= GEN_8 ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); @@ -42,9 +42,9 @@ SINGLE_BATTLE_TEST("Mortal Spin blows away Wrap, hazards and poisons foe") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_STEALTH_ROCK, opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_MORTAL_SPIN, player); - MESSAGE("Wobbuffet got free of Foe Wobbuffet's Wrap!"); + MESSAGE("Wobbuffet got free of the opposing Wobbuffet's Wrap!"); MESSAGE("Wobbuffet blew away Stealth Rock!"); - MESSAGE("Foe Wobbuffet was poisoned!"); + MESSAGE("The opposing Wobbuffet was poisoned!"); STATUS_ICON(opponent, poison: TRUE); } } diff --git a/test/battle/move_effect_secondary/spikes.c b/test/battle/move_effect_secondary/spikes.c index b9c72930c2..1aa2630fd7 100644 --- a/test/battle/move_effect_secondary/spikes.c +++ b/test/battle/move_effect_secondary/spikes.c @@ -19,10 +19,10 @@ SINGLE_BATTLE_TEST("Ceaseless Edge sets up hazards after hitting the target") s32 maxHP = GetMonData(&OPPONENT_PARTY[1], MON_DATA_MAX_HP); ANIMATION(ANIM_TYPE_MOVE, MOVE_CEASELESS_EDGE, player); HP_BAR(opponent); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); MESSAGE("2 sent out Wobbuffet!"); HP_BAR(opponent, damage: maxHP / 8); - MESSAGE("Foe Wobbuffet is hurt by spikes!"); + MESSAGE("The opposing Wobbuffet was hurt by the spikes!"); } } @@ -43,22 +43,22 @@ SINGLE_BATTLE_TEST("Ceaseless Edge can set up to 3 layers of Spikes") ANIMATION(ANIM_TYPE_MOVE, MOVE_CEASELESS_EDGE, player); HP_BAR(opponent); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CEASELESS_EDGE, player); HP_BAR(opponent); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CEASELESS_EDGE, player); HP_BAR(opponent); - MESSAGE("Spikes were scattered all around the opposing team!"); + MESSAGE("Spikes were scattered on the ground all around the opposing team!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_CEASELESS_EDGE, player); HP_BAR(opponent); - NOT MESSAGE("Spikes were scattered all around the opposing team!"); + NOT MESSAGE("Spikes were scattered on the ground all around the opposing team!"); MESSAGE("2 sent out Wynaut!"); HP_BAR(opponent, damage: maxHP / 4); - MESSAGE("Foe Wynaut is hurt by spikes!"); + MESSAGE("The opposing Wynaut was hurt by the spikes!"); } } diff --git a/test/battle/move_effect_secondary/stealth_rock.c b/test/battle/move_effect_secondary/stealth_rock.c index 034e2c347b..e9101b6591 100644 --- a/test/battle/move_effect_secondary/stealth_rock.c +++ b/test/battle/move_effect_secondary/stealth_rock.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Stone Axe sets up hazards after hitting the target") MESSAGE("Pointed stones float in the air around the opposing team!"); MESSAGE("2 sent out Wobbuffet!"); HP_BAR(opponent, damage: maxHP / 8); - MESSAGE("Pointed stones dug into Foe Wobbuffet!"); + MESSAGE("Pointed stones dug into the opposing Wobbuffet!"); } } @@ -59,7 +59,7 @@ SINGLE_BATTLE_TEST("Stone Axe can set up pointed stones only once") MESSAGE("2 sent out Wynaut!"); HP_BAR(opponent, damage: maxHP / 8); - MESSAGE("Pointed stones dug into Foe Wynaut!"); + MESSAGE("Pointed stones dug into the opposing Wynaut!"); } } diff --git a/test/battle/move_effect_secondary/syrup_bomb.c b/test/battle/move_effect_secondary/syrup_bomb.c index 0fc55c3d60..9390041f6e 100644 --- a/test/battle/move_effect_secondary/syrup_bomb.c +++ b/test/battle/move_effect_secondary/syrup_bomb.c @@ -20,16 +20,16 @@ SINGLE_BATTLE_TEST("Syrup Bomb covers the foe in sticky syrup for 3 turns") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } } } @@ -45,12 +45,12 @@ SINGLE_BATTLE_TEST("Sticky Syrup isn't applied again if the target is already co } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - NOT MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + NOT MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); } } @@ -63,7 +63,7 @@ SINGLE_BATTLE_TEST("Syrup Bomb is prevented by Bulletproof") TURN { MOVE(player, MOVE_SYRUP_BOMB); } } SCENE { ABILITY_POPUP(opponent, ABILITY_BULLETPROOF); - MESSAGE("Foe Chespin's Bulletproof blocks Syrup Bomb!"); + MESSAGE("The opposing Chespin's Bulletproof blocks Syrup Bomb!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); @@ -92,32 +92,32 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Body, Whi HP_BAR(opponent); if (species == SPECIES_BELDUM) { - MESSAGE("Foe Beldum got covered in sticky syrup!"); + MESSAGE("The opposing Beldum got covered in sticky candy syrup!"); ABILITY_POPUP(opponent, ABILITY_CLEAR_BODY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Beldum's Clear Body prevents stat loss!"); + MESSAGE("The opposing Beldum's Clear Body prevents stat loss!"); NONE_OF { - MESSAGE("Foe Beldum's Speed fell!"); + MESSAGE("The opposing Beldum's Speed fell!"); } } else if (species == SPECIES_TORKOAL) { - MESSAGE("Foe Torkoal got covered in sticky syrup!"); + MESSAGE("The opposing Torkoal got covered in sticky candy syrup!"); ABILITY_POPUP(opponent, ABILITY_WHITE_SMOKE); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Torkoal's White Smoke prevents stat loss!"); + MESSAGE("The opposing Torkoal's White Smoke prevents stat loss!"); NONE_OF { - MESSAGE("Foe Torkoal's Speed fell!"); + MESSAGE("The opposing Torkoal's Speed fell!"); } } else if (species == SPECIES_SOLGALEO) { - MESSAGE("Foe Solgaleo got covered in sticky syrup!"); + MESSAGE("The opposing Solgaleo got covered in sticky candy syrup!"); ABILITY_POPUP(opponent, ABILITY_FULL_METAL_BODY); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Solgaleo's Full Metal Body prevents stat loss!"); + MESSAGE("The opposing Solgaleo's Full Metal Body prevents stat loss!"); NONE_OF { - MESSAGE("Foe Solgaleo's Speed fell!"); + MESSAGE("The opposing Solgaleo's Speed fell!"); } } } @@ -133,11 +133,11 @@ SINGLE_BATTLE_TEST("Sticky Syrup speed reduction is prevented by Clear Amulet") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); - MESSAGE("Foe Wobbuffet's Clear Amulet prevents its stats from being lowered!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); + MESSAGE("The effects of the Clear Amulet held by the opposing Wobbuffet prevents its stats from being lowered!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } } } @@ -161,11 +161,11 @@ SINGLE_BATTLE_TEST("Sticky syrup will not decrease speed further then minus six" } ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed won't go lower!"); + MESSAGE("The opposing Wobbuffet's Speed won't go any lower!"); NONE_OF { - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } } } @@ -182,12 +182,12 @@ SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user switches out") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } } } @@ -206,14 +206,14 @@ SINGLE_BATTLE_TEST("Sticky Syrup is removed when the user faints") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_SYRUP_BOMB, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet got covered in sticky syrup!"); + MESSAGE("The opposing Wobbuffet got covered in sticky candy syrup!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player); MESSAGE("Wobbuffet fainted!"); SEND_IN_MESSAGE("Wynaut"); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_SYRUP_BOMB_SPEED_DROP, opponent); - MESSAGE("Foe Wobbuffet's Speed fell!"); + MESSAGE("The opposing Wobbuffet's Speed fell!"); } } } diff --git a/test/battle/move_effect_secondary/throat_chop.c b/test/battle/move_effect_secondary/throat_chop.c index edc026aed4..e640948c95 100644 --- a/test/battle/move_effect_secondary/throat_chop.c +++ b/test/battle/move_effect_secondary/throat_chop.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("Throat Chop prevents the usage of sound moves") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet can't use Hyper Voice due to Throat Chop!"); + MESSAGE("The effects of Throat Chop prevent the opposing Wobbuffet from using certain moves!"); NONE_OF { ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent); } @@ -38,7 +38,7 @@ SINGLE_BATTLE_TEST("Throat Chop won't work through a substitute") HP_BAR(opponent); ANIMATION(ANIM_TYPE_MOVE, MOVE_THROAT_CHOP, player); NONE_OF { - MESSAGE("Foe Wobbuffet can't use Hyper Voice due to Throat Chop!"); + MESSAGE("The effects of Throat Chop prevent the opposing Wobbuffet from using certain moves!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, opponent); } diff --git a/test/battle/move_effects_combined/axe_kick.c b/test/battle/move_effects_combined/axe_kick.c index d4be87b8ab..94ab9377ad 100644 --- a/test/battle/move_effects_combined/axe_kick.c +++ b/test/battle/move_effects_combined/axe_kick.c @@ -17,7 +17,7 @@ SINGLE_BATTLE_TEST("Axe Kick confuses the target") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_AXE_KICK, player); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_CONFUSION, opponent); - MESSAGE("Foe Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); } } @@ -31,8 +31,8 @@ SINGLE_BATTLE_TEST("Axe Kick deals damage half the hp to user if def battler pro } SCENE { s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); ANIMATION(ANIM_TYPE_MOVE, MOVE_PROTECT, opponent); - MESSAGE("Foe Wobbuffet protected itself!"); - MESSAGE("Foe Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); + MESSAGE("The opposing Wobbuffet protected itself!"); MESSAGE("Wobbuffet kept going and crashed!"); HP_BAR(player, hp: maxHP / 2); } diff --git a/test/battle/move_effects_combined/flinch_status.c b/test/battle/move_effects_combined/flinch_status.c index bad28eac4e..75c9461880 100644 --- a/test/battle/move_effects_combined/flinch_status.c +++ b/test/battle/move_effects_combined/flinch_status.c @@ -58,7 +58,7 @@ SINGLE_BATTLE_TEST("Thunder, Ice and Fire Fang cause the opponent to flinch 10% } SCENE { ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_CELEBRATE, opponent); } } diff --git a/test/battle/move_effects_combined/make_it_rain.c b/test/battle/move_effects_combined/make_it_rain.c index f8ce955b49..5469eac8a5 100644 --- a/test/battle/move_effects_combined/make_it_rain.c +++ b/test/battle/move_effects_combined/make_it_rain.c @@ -21,13 +21,13 @@ SINGLE_BATTLE_TEST("Make It Rain lowers special attack by one stage") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_MAKE_IT_RAIN, player); HP_BAR(opponent, captureDamage: &damage[0]); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Sp. Atk fell!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MAKE_IT_RAIN, player); HP_BAR(opponent, captureDamage: &damage[1]); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Wobbuffet's Sp. Atk fell!"); } THEN { @@ -48,12 +48,12 @@ DOUBLE_BATTLE_TEST("Make It Rain lowers special attack by one stage if it hits b ANIMATION(ANIM_TYPE_MOVE, MOVE_MAKE_IT_RAIN, playerLeft); HP_BAR(opponentLeft); NONE_OF { - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wobbuffet's Sp. Atk fell!"); } HP_BAR(opponentRight); - MESSAGE("Coins scattered everywhere!"); + MESSAGE("Coins were scattered everywhere!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, playerLeft); MESSAGE("Wobbuffet's Sp. Atk fell!"); } diff --git a/test/battle/move_effects_combined/triple_arrows.c b/test/battle/move_effects_combined/triple_arrows.c index 383fce6cbf..ad7878fdc9 100644 --- a/test/battle/move_effects_combined/triple_arrows.c +++ b/test/battle/move_effects_combined/triple_arrows.c @@ -22,7 +22,7 @@ SINGLE_BATTLE_TEST("Triple Arrows may lower Defense by one stage") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRIPLE_ARROWS, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); } } @@ -40,7 +40,7 @@ SINGLE_BATTLE_TEST("Triple Arrows makes the foe flinch 30% of the time") TURN { MOVE(player, MOVE_TRIPLE_ARROWS); } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRIPLE_ARROWS, player); - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } } @@ -70,8 +70,8 @@ SINGLE_BATTLE_TEST("Triple Arrows can lower Defense and cause flinch at the time } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRIPLE_ARROWS, player); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, opponent); - MESSAGE("Foe Wobbuffet's Defense fell!"); - MESSAGE("Foe Wobbuffet flinched!"); + MESSAGE("The opposing Wobbuffet's Defense fell!"); + MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } } @@ -86,7 +86,7 @@ SINGLE_BATTLE_TEST("Triple Arrows's flinching is prevented by Inner Focus") } } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_TRIPLE_ARROWS, player); - NONE_OF { MESSAGE("Foe Wobbuffet flinched!"); } + NONE_OF { MESSAGE("The opposing Wobbuffet flinched and couldn't move!"); } ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); } } diff --git a/test/battle/move_flags/powder.c b/test/battle/move_flags/powder.c index 356ab69a98..35a6e1012b 100644 --- a/test/battle/move_flags/powder.c +++ b/test/battle/move_flags/powder.c @@ -12,6 +12,6 @@ SINGLE_BATTLE_TEST("Powder moves are blocked by Grass-type Pokémon") TURN { MOVE(player, MOVE_STUN_SPORE); } } SCENE { NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_STUN_SPORE, player); - MESSAGE("It doesn't affect Foe Oddish…"); + MESSAGE("It doesn't affect the opposing Oddish…"); } } diff --git a/test/battle/move_flags/strike_count.c b/test/battle/move_flags/strike_count.c index 8967836eff..ba71e35c26 100644 --- a/test/battle/move_flags/strike_count.c +++ b/test/battle/move_flags/strike_count.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Two strike count turns a move into a 2-hit move") } SCENE { ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, player); ANIMATION(ANIM_TYPE_MOVE, MOVE_DOUBLE_KICK, player); - MESSAGE("Hit 2 time(s)!"); + MESSAGE("The Pokémon was hit 2 time(s)!"); } } diff --git a/test/battle/sleep_clause.c b/test/battle/sleep_clause.c new file mode 100644 index 0000000000..c8393685b8 --- /dev/null +++ b/test/battle/sleep_clause.c @@ -0,0 +1,1816 @@ +#include "global.h" +#include "test/battle.h" + +AI_SINGLE_BATTLE_TEST("Sleep Clause: AI will not use sleep moves while sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_SPORE, MOVE_MACH_PUNCH); } + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(player, 1); EXPECT_MOVE(opponent, MOVE_MACH_PUNCH); } + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_MACH_PUNCH); } + } +} + +AI_DOUBLE_BATTLE_TEST("Sleep Clause: AI will not use sleep moves while sleep clause is active (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_SPORE, MOVE_MACH_PUNCH); } + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_MACH_PUNCH); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_CELEBRATE); MOVE(playerRight, MOVE_CELEBRATE); EXPECT_MOVE(opponentLeft, MOVE_SPORE); EXPECT_MOVE(opponentRight, MOVE_MACH_PUNCH); } + TURN { SWITCH(playerLeft, 2); MOVE(playerRight, MOVE_CELEBRATE); EXPECT_MOVE(opponentLeft, MOVE_MACH_PUNCH); EXPECT_MOVE(opponentRight, MOVE_MACH_PUNCH); } + TURN { MOVE(playerLeft, MOVE_CELEBRATE); MOVE(playerRight, MOVE_CELEBRATE); EXPECT_MOVE(opponentLeft, MOVE_MACH_PUNCH); EXPECT_MOVE(opponentRight, MOVE_MACH_PUNCH); } + } +} + +AI_DOUBLE_BATTLE_TEST("Sleep Clause: AI will not use sleep move if partner is already using a sleep move") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_SPORE, MOVE_MACH_PUNCH); } + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_SPORE, MOVE_MACH_PUNCH); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_CELEBRATE); MOVE(playerRight, MOVE_CELEBRATE); EXPECT_MOVE(opponentLeft, MOVE_SPORE); EXPECT_MOVE(opponentRight, MOVE_MACH_PUNCH); } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep moves fail when sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_SPORE); SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + MESSAGE("Sleep Clause kept the opposing Wobbuffet awake!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep moves fail when sleep clause is active (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); MaxHP(100); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentRight); MOVE(playerRight, MOVE_SPORE, target: opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + } + MESSAGE("Sleep Clause kept the opposing Wobbuffet awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Rest does not activate sleep clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); MOVE(opponent, MOVE_REST); } + TURN { MOVE(player, MOVE_SPORE); SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Rest does not activate sleep clause (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); MaxHP(100); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_REST); MOVE(playerLeft, MOVE_SPORE, target: opponentRight); } + } SCENE { + STATUS_ICON(opponentLeft, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, opponentLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Rest can still be used when sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_TACKLE); SWITCH(opponent, 1); } + TURN { MOVE(opponent, MOVE_REST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, opponent); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Rest can still be used when sleep clause is active (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { HP(1); MaxHP(100); } + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentRight); MOVE(opponentLeft, MOVE_REST); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + STATUS_ICON(opponentLeft, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, opponentLeft); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Psycho Shift'ing sleep will fail if sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + ASSUME(gMovesInfo[MOVE_PSYCHO_SHIFT].effect == EFFECT_PSYCHO_SHIFT); + PLAYER(SPECIES_WOBBUFFET) + PLAYER(SPECIES_WOBBUFFET) { Moves(MOVE_SLEEP_TALK, MOVE_PSYCHO_SHIFT); } + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { MOVE(opponent, MOVE_SPORE); MOVE(player, MOVE_SLEEP_TALK); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, player); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_SHIFT, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + } + MESSAGE("Sleep Clause kept the opposing Wobbuffet awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Psycho Shift'ing sleep will activate sleep clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + ASSUME(gMovesInfo[MOVE_PSYCHO_SHIFT].effect == EFFECT_PSYCHO_SHIFT); + PLAYER(SPECIES_ZIGZAGOON) + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_SLEEP_TALK, MOVE_PSYCHO_SHIFT); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SLEEP_TALK); } + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { MOVE(opponent, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, opponent); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_SHIFT, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + STATUS_ICON(player, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +AI_SINGLE_BATTLE_TEST("Sleep Clause: AI will not use Yawn while sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_YAWN, MOVE_MACH_PUNCH); } + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_YAWN); } + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_MACH_PUNCH); } + TURN { SWITCH(player, 1); EXPECT_MOVE(opponent, MOVE_MACH_PUNCH); } + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_MACH_PUNCH); } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Yawn will fail when sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_YAWN); } + TURN { } + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_YAWN); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Wobbuffet fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + STATUS_ICON(player, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Wobbuffet awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Effect Spore causes sleep 11% of the time with sleep clause active") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(player, 1); } + TURN { MOVE(player, MOVE_TACKLE); } + TURN { } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("The opposing Breloom's Effect Spore made Wobbuffet sleep!"); + STATUS_ICON(player, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Effect Spore causes sleep 11% of the time with sleep clause active (Doubles)") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(opponentLeft, MOVE_SPORE, target:playerRight); MOVE(playerLeft, MOVE_TACKLE, target:opponentLeft);} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Wobbuffet fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ABILITY_POPUP(opponentLeft, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("The opposing Breloom's Effect Spore made Wobbuffet sleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + } +} + + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep from Effect Spore will not activate sleep clause") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + TURN {} + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("The opposing Breloom's Effect Spore made Wobbuffet sleep!"); + STATUS_ICON(player, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Wobbuffet fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep from Effect Spore will not activate sleep clause (Doubles)") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target:opponentLeft); MOVE(opponentLeft, MOVE_SPORE, target:playerRight); } + } SCENE { + ABILITY_POPUP(opponentLeft, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("The opposing Breloom's Effect Spore made Wobbuffet sleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Wobbuffet fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Moves with sleep effect chance will activate sleep clause") +{ + PASSES_RANDOMLY(10, 100, RNG_SECONDARY_EFFECT); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(MoveHasAdditionalEffect(MOVE_RELIC_SONG, MOVE_EFFECT_SLEEP)); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_RELIC_SONG); } + TURN { MOVE(player, MOVE_SPORE); SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + MESSAGE("Wobbuffet used Spore!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Moves with sleep effect chance will still do damage when sleep clause active, but won't sleep") +{ + PASSES_RANDOMLY(100, 100, RNG_SECONDARY_EFFECT); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(MoveHasAdditionalEffect(MOVE_RELIC_SONG, MOVE_EFFECT_SLEEP)); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_RELIC_SONG); SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_RELIC_SONG, player); + HP_BAR(opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Dire Claw cannot sleep a mon when sleep clause is active") +{ + PASSES_RANDOMLY(100, 100, RNG_SECONDARY_EFFECT); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(MoveHasAdditionalEffect(MOVE_DIRE_CLAW, MOVE_EFFECT_DIRE_CLAW)); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_DIRE_CLAW); SWITCH(opponent, 1); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_DIRE_CLAW, player); + HP_BAR(opponent); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Dark Void can only sleep one opposing mon if sleep clause is active") +{ + // Source: https://bulbapedia.bulbagarden.net/wiki/Dark_Void_(move) + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_DARK_VOID].effect == EFFECT_DARK_VOID); + PLAYER(SPECIES_DARKRAI); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_DARK_VOID); } + TURN { MOVE(playerLeft, MOVE_DARK_VOID); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DARK_VOID, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + STATUS_ICON(opponentRight, sleep: TRUE); + MESSAGE("The opposing Wobbuffet fell asleep!"); + } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: G-Max Befuddle can only sleep one opposing mon if sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_G_MAX_BEFUDDLE].argument == MAX_EFFECT_EFFECT_SPORE_FOES); + PLAYER(SPECIES_BUTTERFREE) { GigantamaxFactor(TRUE); } + PLAYER(SPECIES_CATERPIE); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(playerLeft, MOVE_BUG_BITE, target: opponentLeft, gimmick: GIMMICK_DYNAMAX, + WITH_RNG(RNG_G_MAX_BEFUDDLE, STATUS1_SLEEP)); } + } SCENE { + MESSAGE("Butterfree used G-Max Befuddle!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + STATUS_ICON(opponentRight, sleep: TRUE); + MESSAGE("The opposing Wobbuffet fell asleep!"); + } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon wakes up") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(B_SLEEP_TURNS >= GEN_5); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN {} + TURN {} + TURN {} + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("The opposing Wobbuffet woke up!"); + MESSAGE("Wobbuffet used Spore!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Wobbuffet fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up with Aromatherapy / Heal Bell / Sparkly Swirl") +{ + u32 move = MOVE_NONE, switchIndex = 0; + struct BattlePokemon *healingSlot = opponentRight; + struct BattlePokemon *sporedSlot = opponentLeft; + PARAMETRIZE { move = MOVE_AROMATHERAPY; healingSlot = opponentRight; sporedSlot = opponentLeft; switchIndex = 0; } + PARAMETRIZE { move = MOVE_HEAL_BELL; healingSlot = opponentRight; sporedSlot = opponentLeft; switchIndex = 0; } + PARAMETRIZE { move = MOVE_SPARKLY_SWIRL; healingSlot = opponentRight; sporedSlot = opponentLeft; switchIndex = 0; } + PARAMETRIZE { move = MOVE_AROMATHERAPY; healingSlot = opponentLeft; sporedSlot = opponentRight; switchIndex = 1; } + PARAMETRIZE { move = MOVE_HEAL_BELL; healingSlot = opponentLeft; sporedSlot = opponentRight; switchIndex = 1; } + PARAMETRIZE { move = MOVE_SPARKLY_SWIRL; healingSlot = opponentLeft; sporedSlot = opponentRight; switchIndex = 1; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_AROMATHERAPY].effect == EFFECT_HEAL_BELL); + ASSUME(gMovesInfo[MOVE_HEAL_BELL].effect == EFFECT_HEAL_BELL); + ASSUME(gMovesInfo[MOVE_SPARKLY_SWIRL].effect == EFFECT_SPARKLY_SWIRL); + ASSUME(B_SLEEP_TURNS >= GEN_5); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target:sporedSlot); } + TURN { SWITCH(sporedSlot, 2); MOVE(playerLeft, MOVE_SPORE, target:healingSlot); } + if (move == MOVE_SPARKLY_SWIRL) + TURN { SWITCH(sporedSlot, switchIndex); MOVE(healingSlot, move, target: playerRight); MOVE(playerLeft, MOVE_SPORE, target:sporedSlot); } + else + TURN { SWITCH(sporedSlot, switchIndex); MOVE(healingSlot, move); MOVE(playerLeft, MOVE_SPORE, target:sporedSlot); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, sporedSlot); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(sporedSlot, sleep: TRUE); + MESSAGE("Zigzagoon used Spore!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, healingSlot); + STATUS_ICON(healingSlot, sleep: TRUE); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + if (move == MOVE_AROMATHERAPY) + { + MESSAGE("The opposing Zigzagoon used Aromatherapy!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_AROMATHERAPY, healingSlot); + } + else if (move == MOVE_HEAL_BELL) + { + MESSAGE("The opposing Zigzagoon used Heal Bell!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HEAL_BELL, healingSlot); + } + else + { + MESSAGE("The opposing Zigzagoon used Sparkly Swirl!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPARKLY_SWIRL, healingSlot); + } + STATUS_ICON(sporedSlot, sleep: FALSE); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, sporedSlot); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up forcefully by a move from an opponent") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(MoveHasAdditionalEffect(MOVE_WAKE_UP_SLAP, MOVE_EFFECT_REMOVE_STATUS)); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); } + TURN { SWITCH(opponentLeft, 2); MOVE(playerLeft, MOVE_SPORE, target:opponentRight); } + TURN { SWITCH(opponentLeft, 0); MOVE(playerLeft, MOVE_WAKE_UP_SLAP, target:opponentLeft); } + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + MESSAGE("Zigzagoon used Spore!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + STATUS_ICON(opponentRight, sleep: TRUE); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + MESSAGE("Zigzagoon used Wake-Up Slap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_WAKE_UP_SLAP, playerLeft); + MESSAGE("The opposing Zigzagoon woke up!"); + STATUS_ICON(opponentLeft, sleep: FALSE); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up forcefully by Uproar") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_UPROAR].effect == EFFECT_UPROAR); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); MOVE(playerRight, MOVE_UPROAR); MOVE(opponentRight, MOVE_ROAR, target:playerRight); } + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + MESSAGE("Zigzagoon used Uproar!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_UPROAR, playerRight); + MESSAGE("Zigzagoon caused an uproar!"); + MESSAGE("The uproar woke the opposing Zigzagoon!"); + STATUS_ICON(opponentLeft, sleep: FALSE); + MESSAGE("The opposing Zigzagoon used Roar!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROAR, opponentRight); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by using Sleep Talk into a status curing move") +{ + u32 move; + PARAMETRIZE { move = MOVE_PSYCHO_SHIFT; } + PARAMETRIZE { move = MOVE_JUNGLE_HEALING; } + PARAMETRIZE { move = MOVE_LUNAR_BLESSING; } + PARAMETRIZE { move = MOVE_TAKE_HEART; } + PARAMETRIZE { move = MOVE_AROMATHERAPY; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_SLEEP_TALK].effect == EFFECT_SLEEP_TALK); + ASSUME(gMovesInfo[MOVE_PSYCHO_SHIFT].effect == EFFECT_PSYCHO_SHIFT); + ASSUME(gMovesInfo[MOVE_JUNGLE_HEALING].effect == EFFECT_JUNGLE_HEALING); + ASSUME(gMovesInfo[MOVE_LUNAR_BLESSING].effect == EFFECT_JUNGLE_HEALING); + ASSUME(gMovesInfo[MOVE_PURIFY].effect == EFFECT_PURIFY); + ASSUME(gMovesInfo[MOVE_TAKE_HEART].effect == EFFECT_TAKE_HEART); + ASSUME(gMovesInfo[MOVE_AROMATHERAPY].effect == EFFECT_HEAL_BELL); + ASSUME(gItemsInfo[ITEM_CHESTO_BERRY].holdEffect == HOLD_EFFECT_CURE_SLP); + PLAYER(SPECIES_ZIGZAGOON) { Item(ITEM_CHESTO_BERRY); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_SLEEP_TALK, move); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SLEEP_TALK); } + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, move); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("The opposing Zigzagoon used Sleep Talk!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, opponent); + if (move == MOVE_PSYCHO_SHIFT) + { + MESSAGE("The opposing Zigzagoon used Psycho Shift!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHO_SHIFT, opponent); + } + else if (move == MOVE_JUNGLE_HEALING) + { + MESSAGE("The opposing Zigzagoon used Jungle Healing!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_JUNGLE_HEALING, opponent); + } + else if (move == MOVE_LUNAR_BLESSING) + { + MESSAGE("The opposing Zigzagoon used Lunar Blessing!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_LUNAR_BLESSING, opponent); + } + else if (move == MOVE_TAKE_HEART) + { + MESSAGE("The opposing Zigzagoon used Take Heart!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_TAKE_HEART, opponent); + } + else if (move == MOVE_AROMATHERAPY) + { + MESSAGE("The opposing Zigzagoon used Aromatherapy!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_AROMATHERAPY, opponent); + } + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by Hydration in the rain") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_PELIPPER) { Ability(ABILITY_DRIZZLE); } + OPPONENT(SPECIES_LUVDISC) { Ability(ABILITY_HYDRATION); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Pelipper used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Luvdisc fell asleep!"); + MESSAGE("The opposing Luvdisc's Hydration cured its sleep problem!"); + STATUS_ICON(opponent, sleep: FALSE); + MESSAGE("Pelipper used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Luvdisc fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by Natural Cure") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_SWABLU) { Ability(ABILITY_NATURAL_CURE); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Swablu fell asleep!"); + MESSAGE("2 withdrew Swablu!"); + MESSAGE("2 sent out Swablu!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Swablu fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by Shed Skin") +{ + if (B_ABILITY_TRIGGER_CHANCE == GEN_4) + PASSES_RANDOMLY(30, 100, RNG_SHED_SKIN); + else + PASSES_RANDOMLY(33, 100, RNG_SHED_SKIN); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_DRATINI) { Ability(ABILITY_SHED_SKIN); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Dratini fell asleep!"); + MESSAGE("The opposing Dratini's Shed Skin cured its sleep problem!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Dratini fell asleep!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by Healer") +{ + PASSES_RANDOMLY(30, 100, RNG_HEALER); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_CHANSEY) { Ability(ABILITY_HEALER); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); } + TURN { MOVE(playerLeft, MOVE_SPORE, target:opponentLeft); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("The opposing Chansey's Healer cured the opposing Zigzagoon's problem!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by using a held item") +{ + u32 heldItem = ITEM_NONE; + PARAMETRIZE { heldItem = ITEM_CHESTO_BERRY; } + PARAMETRIZE { heldItem = ITEM_LUM_BERRY; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gItemsInfo[ITEM_CHESTO_BERRY].holdEffect == HOLD_EFFECT_CURE_SLP); + ASSUME(gItemsInfo[ITEM_LUM_BERRY].holdEffect == HOLD_EFFECT_CURE_STATUS); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON) { Item(heldItem); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + if (heldItem == ITEM_CHESTO_BERRY) + MESSAGE("The opposing Zigzagoon's Chesto Berry woke it up!"); + else + MESSAGE("The opposing Zigzagoon's Lum Berry cured its sleep problem!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by Flinging a held item") +{ + u32 heldItem = ITEM_NONE; + PARAMETRIZE { heldItem = ITEM_CHESTO_BERRY; } + PARAMETRIZE { heldItem = ITEM_LUM_BERRY; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_FLING].effect == EFFECT_FLING); + ASSUME(gItemsInfo[ITEM_CHESTO_BERRY].holdEffect == HOLD_EFFECT_CURE_SLP); + ASSUME(gItemsInfo[ITEM_LUM_BERRY].holdEffect == HOLD_EFFECT_CURE_STATUS); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON) { Item(heldItem); } + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentLeft); MOVE(playerRight, MOVE_FLING, target: opponentLeft); } + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentLeft); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("Zigzagoon used Fling!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_FLING, playerRight); + if (heldItem == ITEM_CHESTO_BERRY) + MESSAGE("The opposing Zigzagoon's Chesto Berry woke it up!"); + else + MESSAGE("The opposing Zigzagoon's Lum Berry cured its sleep problem!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by using an item") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gItemsInfo[ITEM_AWAKENING].battleUsage == EFFECT_ITEM_CURE_STATUS); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { USE_ITEM(opponent, ITEM_AWAKENING, partyIndex: 0); MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("Zigzagoon had its status healed!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon faints") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON) { Level(5); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { MOVE(player, MOVE_TACKLE); SEND_OUT(opponent, 1); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("The opposing Zigzagoon fainted!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon faints (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON) { Level(5); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentLeft); MOVE(playerRight, MOVE_TACKLE, target: opponentLeft); } + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentRight);} + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("The opposing Zigzagoon fainted!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up by gaining the ability Insomnia / Vital Spirit") +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { ability = ABILITY_INSOMNIA; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_DELIBIRD) { Ability(ability); } + OPPONENT(SPECIES_ZIGZAGOON) { Moves(MOVE_SLEEP_TALK, MOVE_SKILL_SWAP); } + } WHEN { + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SLEEP_TALK); } + TURN { MOVE(opponent, MOVE_SKILL_SWAP); } + TURN { MOVE(player, MOVE_SPORE); MOVE(opponent, MOVE_SKILL_SWAP); } + } SCENE { + MESSAGE("Delibird used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + MESSAGE("The opposing Zigzagoon used Sleep Talk!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SLEEP_TALK, opponent); + MESSAGE("The opposing Zigzagoon used Skill Swap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent); + if (ability == ABILITY_VITAL_SPIRIT) + MESSAGE("The opposing Zigzagoon's Vital Spirit cured its sleep problem!"); + if (ability == ABILITY_INSOMNIA) + MESSAGE("The opposing Zigzagoon's Insomnia cured its sleep problem!"); + MESSAGE("The opposing Zigzagoon used Skill Swap!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SKILL_SWAP, opponent); + MESSAGE("Delibird used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is sent out, has Trace, and Traces Insomnia / Vital spirit") +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { ability = ABILITY_INSOMNIA; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON) + PLAYER(SPECIES_DELIBIRD) { Ability(ability); } + OPPONENT(SPECIES_RALTS) { Ability(ABILITY_TRACE); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Ralts fell asleep!"); + MESSAGE("2 sent out Zigzagoon!"); + MESSAGE("2 sent out Ralts!"); + if (ability == ABILITY_VITAL_SPIRIT) + MESSAGE("The opposing Ralts's Vital Spirit cured its sleep problem!"); + if (ability == ABILITY_INSOMNIA) + MESSAGE("The opposing Ralts's Insomnia cured its sleep problem!"); + MESSAGE("2 sent out Zigzagoon!"); + MESSAGE("Delibird used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is sent out and transforms into a mon with Insomnia / Vital spirit") +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { ability = ABILITY_INSOMNIA; } + KNOWN_FAILING; // Sleep Clause parts work, but Imposter seems broken with battle messages / targeting. Issue #5565 https://github.com/rh-hideout/pokeemerald-expansion/issues/5565 + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gItemsInfo[ITEM_LAGGING_TAIL].holdEffect == HOLD_EFFECT_LAGGING_TAIL); + PLAYER(SPECIES_ZIGZAGOON) + PLAYER(SPECIES_DELIBIRD) { Ability(ability); } + OPPONENT(SPECIES_DITTO) { Ability(ABILITY_IMPOSTER); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(player, 1); SWITCH(opponent, 1); } + TURN { SWITCH(opponent, 0); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("The opposing Ditto transformed into Zigzagoon using Imposter!"); + MESSAGE("Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Ditto fell asleep!"); + MESSAGE("2 sent out Zigzagoon!"); + MESSAGE("2 sent out Ditto!"); + if (ability == ABILITY_VITAL_SPIRIT) + MESSAGE("The opposing Ditto's Vital Spirit cured its sleep problem!"); + else + MESSAGE("The opposing Ditto's Insomnia cured its sleep problem!"); + MESSAGE("2 sent out Zigzagoon!"); + MESSAGE("Delibird used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + } +} + +AI_SINGLE_BATTLE_TEST("Sleep Clause: AI will use sleep moves again when sleep clause has been deactivated") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gItemsInfo[ITEM_CHESTO_BERRY].holdEffect == HOLD_EFFECT_CURE_SLP); + AI_FLAGS(AI_FLAG_CHECK_BAD_MOVE | AI_FLAG_CHECK_VIABILITY | AI_FLAG_TRY_TO_FAINT); + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_CHESTO_BERRY); } + OPPONENT(SPECIES_BRELOOM) { Moves(MOVE_SPORE, MOVE_MACH_PUNCH); } + } WHEN { + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_SPORE); } + TURN { MOVE(player, MOVE_CELEBRATE); EXPECT_MOVE(opponent, MOVE_SPORE); } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep clause is deactivated when a sleeping mon is woken up with G-Max Sweetness") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_G_MAX_SWEETNESS].argument == MAX_EFFECT_AROMATHERAPY); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_APPLETUN) { GigantamaxFactor(TRUE); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentRight, MOVE_SPORE, target: playerRight); } + TURN { MOVE(playerLeft, MOVE_VINE_WHIP, target: opponentLeft, gimmick: GIMMICK_DYNAMAX); } + TURN { MOVE(opponentRight, MOVE_SPORE, target: playerRight); } + } SCENE { + MESSAGE("The opposing Wobbuffet used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Wobbuffet fell asleep!"); + MESSAGE("Appletun used G-Max Sweetness!"); + MESSAGE("Wobbuffet's status returned to normal!"); + MESSAGE("The opposing Wobbuffet used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Wobbuffet fell asleep!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Pre-existing sleep condition doesn't activate sleep clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON) { Status1(STATUS1_SLEEP); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Sleep caused by Effect Spore does not prevent sleep clause from ever activating") // checks that sleepClauseEffectExempt works properly +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_AROMATHERAPY].effect == EFFECT_HEAL_BELL); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(player, 2); MOVE(opponent, MOVE_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("The opposing Breloom's Effect Spore made Zigzagoon sleep!"); + STATUS_ICON(player, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Waking up after Effect Spore doesn't deactivate sleep clause") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + } WHEN { + TURN { MOVE(player, MOVE_TACKLE); } + TURN {} + TURN {} + TURN {} + TURN { MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SPORE); } + } SCENE { + ABILITY_POPUP(opponent, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("The opposing Breloom's Effect Spore made Zigzagoon sleep!"); + STATUS_ICON(player, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Waking up after Effect Spore doesn't deactivate sleep clause (Doubles)") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(B_ABILITY_TRIGGER_CHANCE >= GEN_5); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_AROMATHERAPY].effect == EFFECT_HEAL_BELL); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_TACKLE, target: opponentLeft); MOVE(opponentRight, MOVE_SPORE, target:playerRight); } + TURN { SWITCH(playerLeft, 2); } + TURN { MOVE(playerLeft, MOVE_AROMATHERAPY); MOVE(opponentRight, MOVE_SPORE, target:playerRight); MOVE(opponentLeft, MOVE_SPORE, target:playerLeft); } + } SCENE { + ABILITY_POPUP(opponentLeft, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("The opposing Breloom's Effect Spore made Zigzagoon sleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_AROMATHERAPY, playerLeft); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Waking up after Rest doesn't deactivate sleep clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_ZIGZAGOON) { HP(1); MaxHP(100); } + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_REST); } + TURN {} + TURN {} + TURN {} + TURN { MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(player, 1); MOVE(opponent, MOVE_SPORE); } + } SCENE { + MESSAGE("Zigzagoon went to sleep!"); + STATUS_ICON(player, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon woke up!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponent); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, player); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(player, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Waking up after Rest doesn't deactivate sleep clause (Doubles)") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_REST].effect == EFFECT_REST); + PLAYER(SPECIES_ZIGZAGOON) { HP(1); MaxHP(100); } + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_REST); MOVE(opponentRight, MOVE_SPORE, target:playerRight); } + TURN { SWITCH(playerRight, 2); } + TURN {} + TURN {} + TURN { MOVE(opponentRight, MOVE_SPORE, target:playerRight); } + } SCENE { + MESSAGE("Zigzagoon went to sleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_REST, playerLeft); + MESSAGE("The opposing Zigzagoon used Spore!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + MESSAGE("Zigzagoon woke up!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Suppressing and then sleeping Vital Spirit / Insomnia and switching back in deactivates sleep clause") +{ + u32 ability; + PARAMETRIZE { ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { ability = ABILITY_INSOMNIA; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_DELIBIRD) { Ability(ability); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_GASTRO_ACID); } + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 0); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Delibird fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Mold Breaker Pokémon sleeping Vital Spirit / Insomnia activates sleep clause") +{ + KNOWN_FAILING; // Interaction between Mold Breaker and Vital Spirit / Insomnia is broken. Issue #5578 https://github.com/rh-hideout/pokeemerald-expansion/issues/5578 + u32 ability; + PARAMETRIZE { ability = ABILITY_VITAL_SPIRIT; } + PARAMETRIZE { ability = ABILITY_INSOMNIA; } + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_PANCHAM) { Ability(ABILITY_MOLD_BREAKER); } + OPPONENT(SPECIES_DELIBIRD) { Ability(ability); } + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 0); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Delibird fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + MESSAGE("Sleep Clause kept the opposing Delibird awake!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Yawn'd Pokémon slept due to Effect Spore before Yawn triggers does not activate sleep clause") +{ + PASSES_RANDOMLY(11, 100, RNG_EFFECT_SPORE); + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + ASSUME(gMovesInfo[MOVE_TACKLE].makesContact); + PLAYER(SPECIES_BRELOOM) { Ability(ABILITY_EFFECT_SPORE); } + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_YAWN); } + TURN { MOVE(opponent, MOVE_TACKLE); } + TURN { SWITCH(opponent, 1); MOVE(player, MOVE_SPORE); } + } SCENE { + MESSAGE("The opposing Zigzagoon grew drowsy!"); + ABILITY_POPUP(player, ABILITY_EFFECT_SPORE); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("Breloom's Effect Spore made the opposing Zigzagoon sleep!"); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Yawn'd Pokémon who's partner is slept before Yawn triggers will not fall asleep due to sleep clause being activated") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_YAWN, target: opponentLeft); MOVE(playerRight, MOVE_YAWN, target: opponentRight); } + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentLeft); } + } SCENE { + MESSAGE("The opposing Zigzagoon grew drowsy!"); + MESSAGE("The opposing Zigzagoon grew drowsy!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + MESSAGE( "The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: If both Pokémon on one side are Yawn'd at the same time, one will fall asleep and the other will not") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_ZIGZAGOON) { Speed(5); } + PLAYER(SPECIES_ZIGZAGOON) { Speed(4); } + OPPONENT(SPECIES_ZIGZAGOON) { Speed(3); } + OPPONENT(SPECIES_ZIGZAGOON) { Speed(2); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_YAWN, target: opponentLeft); MOVE(playerRight, MOVE_YAWN, target: opponentRight); } + TURN { } + } SCENE { + MESSAGE("The opposing Zigzagoon grew drowsy!"); + MESSAGE("The opposing Zigzagoon grew drowsy!"); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + MESSAGE( "The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Reflection moves (ie. Magic Coat) fail if sleep clause is active and they reflect a sleep move") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_MAGIC_COAT].effect == EFFECT_MAGIC_COAT); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); } + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); + MESSAGE("The opposing Zigzagoon bounced the Spore back!"); // Should be MESSAGE("Zigzagoon bounced the Spore back!"); Issue #5579 https://github.com/rh-hideout/pokeemerald-expansion/issues/5579 + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Reflection moves (ie. Magic Coat) that reflect a sleep move activate sleep clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_MAGIC_COAT].effect == EFFECT_MAGIC_COAT); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(player, MOVE_MAGIC_COAT); MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); } + TURN { MOVE(player, MOVE_SPORE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_MAGIC_COAT, player); + MESSAGE("Zigzagoon bounced the Spore back!"); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, player); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Reflection moves (ie. Magic Coat) that reflect Dark Void only sleep one opposing Pokémon") +{ + // Source: https://bulbapedia.bulbagarden.net/wiki/Dark_Void_(move) + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_MAGIC_COAT].effect == EFFECT_MAGIC_COAT); + ASSUME(gMovesInfo[MOVE_DARK_VOID].effect == EFFECT_DARK_VOID); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_DARKRAI); + OPPONENT(SPECIES_DARKRAI); + } WHEN { + TURN { MOVE(playerLeft, MOVE_MAGIC_COAT); MOVE(opponentLeft, MOVE_DARK_VOID); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_DARK_VOID, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Darkrai fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + STATUS_ICON(opponentRight, sleep: TRUE); + MESSAGE("The opposing Darkrai fell asleep!"); + } + } +} + +SINGLE_BATTLE_TEST("Sleep Clause: Magic Bounce'ing a sleep move activates sleep clause, and fails if sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE); } + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(opponent, MOVE_SPORE); } + TURN { SWITCH(opponent, 1); } + TURN { MOVE(opponent, MOVE_SPORE); } + } SCENE { + MESSAGE("The opposing Zigzagoon's Spore was bounced back by Espeon's Magic Bounce!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + MESSAGE("The opposing Zigzagoon's Spore was bounced back by Espeon's Magic Bounce!"); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponent); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponent, sleep: TRUE); + } + MESSAGE("Sleep Clause kept the opposing Zigzagoon awake!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Magic Bounce reflecting Dark Void only sleeps one opposing Pokémon") +{ + // Source: https://bulbapedia.bulbagarden.net/wiki/Dark_Void_(move) + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_DARK_VOID].effect == EFFECT_DARK_VOID); + PLAYER(SPECIES_ESPEON) { Ability(ABILITY_MAGIC_BOUNCE); } + PLAYER(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_DARKRAI); + OPPONENT(SPECIES_DARKRAI); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_DARK_VOID); } + } SCENE { + MESSAGE("The opposing Darkrai's Dark Void was bounced back by Espeon's Magic Bounce!"); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Darkrai fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + STATUS_ICON(opponentRight, sleep: TRUE); + MESSAGE("The opposing Darkrai fell asleep!"); + } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep Clause does not prevent sleeping your partner Pokémon with sleep effects") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + TURN { SWITCH(playerRight, 2); MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + TURN { SWITCH(playerRight, 3); MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + TURN { SWITCH(playerRight, 4); MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + TURN { SWITCH(playerRight, 5); MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep Clause does not prevent sleeping your partner Pokémon with Yawn") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN {} + TURN { SWITCH(playerRight, 2); MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN {} + TURN { SWITCH(playerRight, 3); MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN {} + TURN { SWITCH(playerRight, 4); MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN {} + TURN { SWITCH(playerRight, 5); MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN {} + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + STATUS_ICON(playerRight, sleep: TRUE); + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + STATUS_ICON(playerRight, sleep: TRUE); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Sleep moves used after being Encore'd are prevented when sleep clause is active") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_SPORE, target: playerLeft); MOVE(playerRight, MOVE_ENCORE, target: opponentLeft); } + TURN { SWITCH(playerLeft, 2); FORCED_MOVE(opponentLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + MESSAGE("Zigzagoon used Encore!"); + MESSAGE("Go! Zigzagoon!"); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + } + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Spore'ing opponent after Yawn'ing partner does not prevent Yawn's effect from sleeping partner") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_SPORE, target: playerRight); } + TURN { SWITCH(playerRight, 2); MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN { MOVE(playerLeft, MOVE_SPORE, target: opponentLeft); MOVE(playerRight, MOVE_SPORE, target: opponentRight); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + MESSAGE("Go! Zigzagoon!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentLeft); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentLeft, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, playerRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, opponentRight); + MESSAGE("The opposing Zigzagoon fell asleep!"); + STATUS_ICON(opponentRight, sleep: TRUE); + } + MESSAGE("Zigzagoon fell asleep!"); + } +} + +DOUBLE_BATTLE_TEST("Sleep Clause: Opponent Spore'ing player's partner after partner was Yawn'd by player does not prevent Spore's effect from sleeping partner and activating clause") +{ + GIVEN { + FLAG_SET(B_FLAG_SLEEP_CLAUSE); + ASSUME(gMovesInfo[MOVE_SPORE].effect == EFFECT_SLEEP); + ASSUME(gMovesInfo[MOVE_YAWN].effect == EFFECT_YAWN); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + PLAYER(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + OPPONENT(SPECIES_ZIGZAGOON); + } WHEN { + TURN { MOVE(playerLeft, MOVE_YAWN, target: playerRight); } + TURN { MOVE(opponentLeft, MOVE_SPORE, target: playerRight); MOVE(opponentRight, MOVE_SPORE, target:playerLeft); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_YAWN, playerLeft); + MESSAGE("Zigzagoon grew drowsy!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentLeft); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerRight); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerRight, sleep: TRUE); + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_SPORE, opponentRight); + ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_SLP, playerLeft); + MESSAGE("Zigzagoon fell asleep!"); + STATUS_ICON(playerLeft, sleep: TRUE); + } + MESSAGE("Sleep Clause kept Zigzagoon awake!"); + } +} diff --git a/test/battle/spread_moves.c b/test/battle/spread_moves.c new file mode 100644 index 0000000000..7b395a1cc2 --- /dev/null +++ b/test/battle/spread_moves.c @@ -0,0 +1,413 @@ +#include "global.h" +#include "test/battle.h" + +DOUBLE_BATTLE_TEST("Spread Moves: Ability and Item effects activate correctly after a multi target move") +{ + // TODO: Might be a bug, verify on cardridge + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_LUM_BERRY); } + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_COVERT_CLOAK); } + OPPONENT(SPECIES_GOLISOPOD) { Ability(ABILITY_EMERGENCY_EXIT); MaxHP(260); HP(131); }; + OPPONENT(SPECIES_WOBBUFFET) { Item(ITEM_EJECT_BUTTON); } + OPPONENT(SPECIES_WYNAUT); + OPPONENT(SPECIES_PIKACHU); + } WHEN { + TURN { + MOVE(opponentRight, MOVE_HEAT_WAVE); + MOVE(playerLeft, MOVE_HYPER_VOICE); + SEND_OUT(opponentRight, 3); + SEND_OUT(opponentLeft, 2); + } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + MESSAGE("The opposing Wobbuffet is switched out with the Eject Button!"); + MESSAGE("2 sent out Pikachu!"); + ABILITY_POPUP(opponentLeft, ABILITY_EMERGENCY_EXIT); + MESSAGE("2 sent out Wynaut!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: No damage will be dealt to a mon in an invulnerable position") +{ + u32 attackingMove = 0, invulMove = 0; + PARAMETRIZE { attackingMove = MOVE_HYPER_VOICE; invulMove = MOVE_FLY; } + PARAMETRIZE { attackingMove = MOVE_LAVA_PLUME; invulMove = MOVE_FLY; } + PARAMETRIZE { attackingMove = MOVE_HYPER_VOICE; invulMove = MOVE_DIVE; } + PARAMETRIZE { attackingMove = MOVE_LAVA_PLUME; invulMove = MOVE_DIVE; } + GIVEN { + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + ASSUME(gMovesInfo[MOVE_LAVA_PLUME].target == MOVE_TARGET_FOES_AND_ALLY); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_ZAPDOS); + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponentLeft, invulMove, target: playerLeft); MOVE(playerLeft, attackingMove); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, attackingMove, playerLeft); + NOT HP_BAR(opponentLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: A spread move attack will activate both resist berries") +{ + s16 opponentLeftDmg[2]; + s16 opponentRightDmg[2]; + + GIVEN { + PLAYER(SPECIES_GARDEVOIR); + PLAYER(SPECIES_RALTS); + OPPONENT(SPECIES_RAICHU) { Item(ITEM_CHILAN_BERRY); } + OPPONENT(SPECIES_SANDSLASH) { Item(ITEM_CHILAN_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_HYPER_VOICE); } + TURN { MOVE(playerLeft, MOVE_HYPER_VOICE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentLeft); + MESSAGE("The Chilan Berry weakened the damage to the opposing Raichu!"); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + MESSAGE("The Chilan Berry weakened the damage to the opposing Sandslash!"); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[0]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[0]); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[1]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[1]); + } THEN { + EXPECT_MUL_EQ(opponentLeftDmg[1], Q_4_12(0.5), opponentLeftDmg[0]); + EXPECT_MUL_EQ(opponentRightDmg[1], Q_4_12(0.5), opponentRightDmg[0]); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: If a spread move attack will activate a resist berries on one pokemon, only the damage for that mon will be reduced") +{ + s16 opponentLeftDmg[2]; + s16 opponentRightDmg[2]; + + GIVEN { + PLAYER(SPECIES_GARDEVOIR); + PLAYER(SPECIES_RALTS); + OPPONENT(SPECIES_RAICHU) + OPPONENT(SPECIES_SANDSLASH) { Item(ITEM_CHILAN_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_HYPER_VOICE); } + TURN { MOVE(playerLeft, MOVE_HYPER_VOICE); } + } SCENE { + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, opponentRight); + MESSAGE("The Chilan Berry weakened the damage to the opposing Sandslash!"); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[0]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[0]); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[1]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[1]); + } THEN { + EXPECT_EQ(opponentLeftDmg[1], opponentLeftDmg[0]); + EXPECT_MUL_EQ(opponentRightDmg[1], Q_4_12(0.5), opponentRightDmg[0]); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: A spread move attack will be weakened by strong winds on both targets") +{ + s16 opponentLeftDmg[2]; + s16 opponentRightDmg[2]; + + GIVEN { + PLAYER(SPECIES_GARDEVOIR); + PLAYER(SPECIES_RAYQUAZA) { Ability(ABILITY_AIR_LOCK); } + PLAYER(SPECIES_RALTS); + OPPONENT(SPECIES_ZAPDOS) + OPPONENT(SPECIES_RAYQUAZA) { Moves(MOVE_DRAGON_ASCENT, MOVE_CELEBRATE); } + } WHEN { + TURN { MOVE(opponentRight, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); MOVE(playerLeft, MOVE_ROCK_SLIDE); } + TURN { SWITCH(playerRight, 2); MOVE(opponentRight, MOVE_CELEBRATE); MOVE(playerLeft, MOVE_ROCK_SLIDE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[0]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[0]); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[1]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[1]); + } THEN { + EXPECT_MUL_EQ(opponentLeftDmg[0], Q_4_12(0.5), opponentLeftDmg[1]); + EXPECT_MUL_EQ(opponentRightDmg[0], Q_4_12(0.5), opponentRightDmg[1]); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: A spread move attack will be weakened by strong winds on one of the targets") +{ + s16 opponentLeftDmg[2]; + s16 opponentRightDmg[2]; + + GIVEN { + PLAYER(SPECIES_GARDEVOIR); + PLAYER(SPECIES_RAYQUAZA) { Ability(ABILITY_AIR_LOCK); } + PLAYER(SPECIES_RALTS); + OPPONENT(SPECIES_DONPHAN) + OPPONENT(SPECIES_RAYQUAZA) { Moves(MOVE_DRAGON_ASCENT, MOVE_CELEBRATE); } + } WHEN { + TURN { MOVE(opponentRight, MOVE_CELEBRATE, gimmick: GIMMICK_MEGA); MOVE(playerLeft, MOVE_ROCK_SLIDE); } + TURN { SWITCH(playerRight, 2); MOVE(opponentRight, MOVE_CELEBRATE); MOVE(playerLeft, MOVE_ROCK_SLIDE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[0]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[0]); + + ANIMATION(ANIM_TYPE_MOVE, MOVE_ROCK_SLIDE, playerLeft); + HP_BAR(opponentLeft, captureDamage: &opponentLeftDmg[1]); + HP_BAR(opponentRight, captureDamage: &opponentRightDmg[1]); + } THEN { + EXPECT_EQ(opponentLeftDmg[1], opponentLeftDmg[0]); + EXPECT_MUL_EQ(opponentRightDmg[0], Q_4_12(0.5), opponentRightDmg[1]); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: AOE move vs Disguise, Volt Absorb (right) and Lightning Rod (left)") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DISCHARGE].target == MOVE_TARGET_FOES_AND_ALLY); + ASSUME(gMovesInfo[MOVE_DISCHARGE].type == TYPE_ELECTRIC); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_MIMIKYU); + OPPONENT(SPECIES_RAICHU) { Ability(ABILITY_LIGHTNING_ROD); } + OPPONENT(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); HP(1); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_DISCHARGE); } + } SCENE { + ABILITY_POPUP(opponentLeft, ABILITY_LIGHTNING_ROD); + ANIMATION(ANIM_TYPE_MOVE, MOVE_DISCHARGE, playerLeft); + ABILITY_POPUP(playerRight, ABILITY_DISGUISE); + ABILITY_POPUP(opponentRight, ABILITY_VOLT_ABSORB); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: AOE move vs Disguise, Volt Absorb (left) and Lightning Rod (reft)") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_DISCHARGE].target == MOVE_TARGET_FOES_AND_ALLY); + ASSUME(gMovesInfo[MOVE_DISCHARGE].type == TYPE_ELECTRIC); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_MIMIKYU); + OPPONENT(SPECIES_LANTURN) { Ability(ABILITY_VOLT_ABSORB); HP(1); } + OPPONENT(SPECIES_RAICHU) { Ability(ABILITY_LIGHTNING_ROD); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_DISCHARGE); } + } SCENE { + ABILITY_POPUP(opponentRight, ABILITY_LIGHTNING_ROD); + ABILITY_POPUP(opponentLeft, ABILITY_VOLT_ABSORB); + ANIMATION(ANIM_TYPE_MOVE, MOVE_DISCHARGE, playerLeft); + ABILITY_POPUP(playerRight, ABILITY_DISGUISE); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: AOE move vs Eiscue and Mimikyu (Based on vanilla games)") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_EARTHQUAKE].target == MOVE_TARGET_FOES_AND_ALLY); + ASSUME(gMovesInfo[MOVE_EARTHQUAKE].category == DAMAGE_CATEGORY_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_EISCUE); + OPPONENT(SPECIES_MIMIKYU); + OPPONENT(SPECIES_EISCUE); + } WHEN { + TURN { MOVE(playerLeft, MOVE_EARTHQUAKE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_EARTHQUAKE, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_DISGUISE); + ABILITY_POPUP(playerRight, ABILITY_ICE_FACE); + ABILITY_POPUP(opponentRight, ABILITY_ICE_FACE); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Spread move, Gem Boosted, vs Resist Berries") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(40); Item(ITEM_NORMAL_GEM); } + PLAYER(SPECIES_WYNAUT) { Speed(30); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(20); Item(ITEM_CHILAN_BERRY); } + OPPONENT(SPECIES_WYNAUT) { Speed(10); Item(ITEM_CHILAN_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_HYPER_VOICE); } + } SCENE { + MESSAGE("The Normal Gem strengthened Wobbuffet's power!"); + MESSAGE("The Chilan Berry weakened the damage to the opposing Wobbuffet!"); + MESSAGE("The Chilan Berry weakened the damage to the opposing Wynaut!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Explosion, Gem Boosted, vs Resist Berries") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_EXPLOSION].target == MOVE_TARGET_FOES_AND_ALLY); + PLAYER(SPECIES_WOBBUFFET) { Speed(40); Item(ITEM_NORMAL_GEM); } + PLAYER(SPECIES_MISDREAVUS) { Speed(30); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(20); Item(ITEM_CHILAN_BERRY); } + OPPONENT(SPECIES_WYNAUT) { Speed(10); Item(ITEM_CHILAN_BERRY); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_EXPLOSION); } + } SCENE { + MESSAGE("The Normal Gem strengthened Wobbuffet's power!"); + MESSAGE("The Chilan Berry weakened the damage to the opposing Wobbuffet!"); + MESSAGE("The Chilan Berry weakened the damage to the opposing Wynaut!"); + ANIMATION(ANIM_TYPE_MOVE, MOVE_EXPLOSION, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("It doesn't affect Misdreavus…"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Spread move vs Eiscue and Mimikyu with 1 Eject Button") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_RAZOR_LEAF].target == MOVE_TARGET_BOTH); + ASSUME(gMovesInfo[MOVE_RAZOR_LEAF].category == DAMAGE_CATEGORY_PHYSICAL); + PLAYER(SPECIES_WOBBUFFET) { Speed(40); } + PLAYER(SPECIES_WYNAUT) { Speed(30); } + OPPONENT(SPECIES_MIMIKYU) { Speed(20); Item(ITEM_EJECT_BUTTON); } + OPPONENT(SPECIES_EISCUE) { Speed(10); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(100); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_RAZOR_LEAF); SEND_OUT(opponentLeft, 2); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_RAZOR_LEAF, playerLeft); + ABILITY_POPUP(opponentLeft, ABILITY_DISGUISE); + ABILITY_POPUP(opponentRight, ABILITY_ICE_FACE); + MESSAGE("The opposing Mimikyu is switched out with the Eject Button!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Spread move vs Wide Guard") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET) { Speed(40); } + PLAYER(SPECIES_WYNAUT) { Speed(20); } + OPPONENT(SPECIES_WOBBUFFET) { Speed(30); } + OPPONENT(SPECIES_WYNAUT) { Speed(10); } + } WHEN { + TURN { MOVE(playerLeft, MOVE_WIDE_GUARD); MOVE(opponentLeft, MOVE_HYPER_VOICE); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_WIDE_GUARD, playerLeft); + MESSAGE("Wide Guard protected your team!"); + MESSAGE("The opposing Wobbuffet used Hyper Voice!"); + MESSAGE("Wobbuffet protected itself!"); + MESSAGE("Wynaut protected itself!"); + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_HYPER_VOICE, playerLeft); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Spread move vs one protecting mon") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_HYPER_VOICE].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_PROTECT); MOVE(playerLeft, MOVE_HYPER_VOICE); } + } SCENE { + MESSAGE("The opposing Wobbuffet used Protect!"); + MESSAGE("Wobbuffet used Hyper Voice!"); + MESSAGE("The opposing Wobbuffet protected itself!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Super Effective Message on both opposing mons") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_PRECIPICE_BLADES].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_GOLEM); + OPPONENT(SPECIES_ONIX); + } WHEN { + TURN { MOVE(playerLeft, MOVE_PRECIPICE_BLADES); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PRECIPICE_BLADES, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("It's super effective on the opposing Golem and Onix!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Super Effective Message on both player mons") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_PRECIPICE_BLADES].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_GOLEM); + PLAYER(SPECIES_ONIX); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_PRECIPICE_BLADES); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PRECIPICE_BLADES, opponentLeft); + HP_BAR(playerLeft); + HP_BAR(playerRight); + MESSAGE("It's super effective on Golem and Onix!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Not very effective Message on both opposing mons") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_PRECIPICE_BLADES].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_CHIKORITA); + OPPONENT(SPECIES_TREECKO); + } WHEN { + TURN { MOVE(playerLeft, MOVE_PRECIPICE_BLADES); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PRECIPICE_BLADES, playerLeft); + HP_BAR(opponentLeft); + HP_BAR(opponentRight); + MESSAGE("It's not very effective on the opposing Chikorita and Treecko!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Not very effective message on both player mons") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_PRECIPICE_BLADES].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_CHIKORITA); + PLAYER(SPECIES_TREECKO); + OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WYNAUT); + } WHEN { + TURN { MOVE(opponentLeft, MOVE_PRECIPICE_BLADES); } + } SCENE { + ANIMATION(ANIM_TYPE_MOVE, MOVE_PRECIPICE_BLADES, opponentLeft); + HP_BAR(playerLeft); + HP_BAR(playerRight); + MESSAGE("It's not very effective on Chikorita and Treecko!"); + } +} + +DOUBLE_BATTLE_TEST("Spread Moves: Doesn't affect message on both opposing mons") +{ + GIVEN { + ASSUME(gMovesInfo[MOVE_PRECIPICE_BLADES].target == MOVE_TARGET_BOTH); + PLAYER(SPECIES_WOBBUFFET); + PLAYER(SPECIES_WYNAUT); + OPPONENT(SPECIES_PIDGEY); + OPPONENT(SPECIES_HOOTHOOT); + } WHEN { + TURN { MOVE(playerLeft, MOVE_PRECIPICE_BLADES); } + } SCENE { + NOT ANIMATION(ANIM_TYPE_MOVE, MOVE_PRECIPICE_BLADES, playerLeft); + MESSAGE("It doesn't affect the opposing Pidgey and Hoothoot…"); + } +} diff --git a/test/battle/status1/burn.c b/test/battle/status1/burn.c index 4da40589fb..63d6506fb6 100644 --- a/test/battle/status1/burn.c +++ b/test/battle/status1/burn.c @@ -1,11 +1,10 @@ #include "global.h" #include "test/battle.h" -SINGLE_BATTLE_TEST("Burn deals 1/16th damage per turn") +SINGLE_BATTLE_TEST("Burn deals 1/16th (Gen7+) or 1/8th damage per turn") { u32 j; GIVEN { - ASSUME(B_BURN_DAMAGE >= GEN_LATEST); PLAYER(SPECIES_WOBBUFFET) { Status1(STATUS1_BURN); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { @@ -14,7 +13,7 @@ SINGLE_BATTLE_TEST("Burn deals 1/16th damage per turn") } SCENE { s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); for (j = 0; j < 4; j++) - HP_BAR(player, damage: maxHP / 16); + HP_BAR(player, damage: maxHP / ((B_BURN_DAMAGE >= GEN_7) ? 16 : 8)); } } diff --git a/test/battle/status1/freeze.c b/test/battle/status1/freeze.c index c89bda337f..f218430909 100644 --- a/test/battle/status1/freeze.c +++ b/test/battle/status1/freeze.c @@ -23,8 +23,8 @@ SINGLE_BATTLE_TEST("Freeze is thawed by opponent's Fire-type attacks") } WHEN { TURN { MOVE(opponent, MOVE_EMBER); MOVE(player, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Foe Wobbuffet used Ember!"); - MESSAGE("Wobbuffet was defrosted!"); + MESSAGE("The opposing Wobbuffet used Ember!"); + MESSAGE("Wobbuffet thawed out!"); STATUS_ICON(player, none: TRUE); } } @@ -38,7 +38,7 @@ SINGLE_BATTLE_TEST("Freeze is thawed by user's Flame Wheel") } WHEN { TURN { MOVE(player, MOVE_FLAME_WHEEL); } } SCENE { - MESSAGE("Wobbuffet was defrosted by Flame Wheel!"); + MESSAGE("Wobbuffet's Flame Wheel melted the ice!"); STATUS_ICON(player, none: TRUE); MESSAGE("Wobbuffet used Flame Wheel!"); } diff --git a/test/battle/status1/frostbite.c b/test/battle/status1/frostbite.c index bf4b1f7fcd..a7776e5e2e 100644 --- a/test/battle/status1/frostbite.c +++ b/test/battle/status1/frostbite.c @@ -23,7 +23,7 @@ SINGLE_BATTLE_TEST("Frostbite reduces the special attack by 50 percent") } THEN { EXPECT_EQ(reducedDamage * 2, normaleDamage); } } -SINGLE_BATTLE_TEST("Frostbite deals 1/16 damage to effected pokemon") +SINGLE_BATTLE_TEST("Frostbite deals 1/16th (Gen7+) or 1/8th damage to affected pokemon") { s16 frostbiteDamage; @@ -33,10 +33,10 @@ SINGLE_BATTLE_TEST("Frostbite deals 1/16 damage to effected pokemon") } WHEN { TURN {} } SCENE { - MESSAGE("Foe Wobbuffet is hurt by its frostbite!"); + MESSAGE("The opposing Wobbuffet was hurt by its frostbite!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, opponent); HP_BAR(opponent, captureDamage: &frostbiteDamage); - } THEN { EXPECT_EQ(frostbiteDamage, opponent->maxHP / 16); } + } THEN { EXPECT_EQ(frostbiteDamage, opponent->maxHP / ((B_BURN_DAMAGE >= GEN_7) ? 16 : 8)); } } SINGLE_BATTLE_TEST("Frostbite is healed if hit with a thawing move") @@ -58,10 +58,10 @@ SINGLE_BATTLE_TEST("Frostbite is healed if hit with a thawing move") ANIMATION(ANIM_TYPE_MOVE, move, player); if (move == MOVE_EMBER) { NONE_OF { - MESSAGE("Foe Wobbuffet's frostbite was healed!"); + MESSAGE("The opposing Wobbuffet's frostbite was cured!"); } } else { - MESSAGE("Foe Wobbuffet's frostbite was healed!"); + MESSAGE("The opposing Wobbuffet's frostbite was cured!"); } } } @@ -85,11 +85,11 @@ SINGLE_BATTLE_TEST("Frostbite is healed when the user uses a thawing move") ANIMATION(ANIM_TYPE_MOVE, move, player); HP_BAR(opponent); if (move == MOVE_EMBER) { - MESSAGE("Wobbuffet is hurt by its frostbite!"); + MESSAGE("Wobbuffet was hurt by its frostbite!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, player); } else { NONE_OF { - MESSAGE("Wobbuffet is hurt by its frostbite!"); + MESSAGE("Wobbuffet was hurt by its frostbite!"); ANIMATION(ANIM_TYPE_STATUS, B_ANIM_STATUS_FRZ, player); } } diff --git a/test/battle/status1/paralysis.c b/test/battle/status1/paralysis.c index 558ce4fc37..85a784764e 100644 --- a/test/battle/status1/paralysis.c +++ b/test/battle/status1/paralysis.c @@ -17,14 +17,14 @@ SINGLE_BATTLE_TEST("Paralysis reduces Speed by 50%") if (playerFirst) { ONE_OF { MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet is paralyzed, so it may be unable to move!"); } - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); } else { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ONE_OF { MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet is paralyzed, so it may be unable to move!"); } } } @@ -39,7 +39,7 @@ SINGLE_BATTLE_TEST("Paralysis has a 25% chance of skipping the turn") } WHEN { TURN { MOVE(player, MOVE_CELEBRATE); } } SCENE { - MESSAGE("Wobbuffet is paralyzed! It can't move!"); + MESSAGE("Wobbuffet couldn't move because it's paralyzed!"); } } diff --git a/test/battle/status2/confusion.c b/test/battle/status2/confusion.c index 3c86e5d555..4115123b3c 100644 --- a/test/battle/status2/confusion.c +++ b/test/battle/status2/confusion.c @@ -18,11 +18,29 @@ SINGLE_BATTLE_TEST("Confusion adds a 50/33% chance to hit self with 40 power") ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, opponent); HP_BAR(player, captureDamage: &damage[0]); ANIMATION(ANIM_TYPE_MOVE, MOVE_CONFUSE_RAY, player); - MESSAGE("Foe Wobbuffet became confused!"); - MESSAGE("Foe Wobbuffet is confused!"); + MESSAGE("The opposing Wobbuffet became confused!"); + MESSAGE("The opposing Wobbuffet is confused!"); MESSAGE("It hurt itself in its confusion!"); HP_BAR(opponent, captureDamage: &damage[1]); } THEN { EXPECT_EQ(damage[0], damage[1]); } } + +SINGLE_BATTLE_TEST("Confusion self hit does not consume Gems") +{ + PASSES_RANDOMLY(B_CONFUSION_SELF_DMG_CHANCE >= GEN_7 ? 33 : 50, 100, RNG_CONFUSION); + GIVEN { + PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_NORMAL_GEM); }; + OPPONENT(SPECIES_WOBBUFFET); + } WHEN { + TURN { MOVE(opponent, MOVE_CONFUSE_RAY); MOVE(player, MOVE_TACKLE); } + } SCENE { + NONE_OF { + ANIMATION(ANIM_TYPE_MOVE, MOVE_TACKLE, player); + ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_HELD_ITEM_EFFECT, player); + MESSAGE("Normal Gem strengthened Wobbuffet's power!"); + } + MESSAGE("It hurt itself in its confusion!"); + } +} diff --git a/test/battle/terrain/electric.c b/test/battle/terrain/electric.c index bb72efdcb7..b3811d056c 100644 --- a/test/battle/terrain/electric.c +++ b/test/battle/terrain/electric.c @@ -11,10 +11,10 @@ SINGLE_BATTLE_TEST("Electric Terrain protects grounded battlers from falling asl TURN { MOVE(player, MOVE_SPORE); } } SCENE { MESSAGE("Wobbuffet used Electric Terrain!"); - MESSAGE("Foe Claydol used Spore!"); + MESSAGE("The opposing Claydol used Spore!"); MESSAGE("Wobbuffet surrounds itself with electrified terrain!"); MESSAGE("Wobbuffet used Spore!"); - MESSAGE("Foe Claydol fell asleep!"); + MESSAGE("The opposing Claydol fell asleep!"); STATUS_ICON(opponent, sleep: TRUE); } } @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Electric Terrain activates Electric Seed and Mimicry") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Electric Seed, the Defense of Wobbuffet rose!"); ABILITY_POPUP(opponent); - MESSAGE("Foe Stunfisk's type changed to Electric!"); + MESSAGE("The opposing Stunfisk's type changed to Electric!"); } THEN { EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].types[0], TYPE_ELECTRIC); } @@ -73,18 +73,18 @@ SINGLE_BATTLE_TEST("Electric Terrain lasts for 5 turns") TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_ELECTRIC_TERRAIN, player); - MESSAGE("An electric current runs across the battlefield!"); + MESSAGE("An electric current ran across the battlefield!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("The electricity disappeared from the battlefield."); } diff --git a/test/battle/terrain/grassy.c b/test/battle/terrain/grassy.c index 5508255afd..b247933dd2 100644 --- a/test/battle/terrain/grassy.c +++ b/test/battle/terrain/grassy.c @@ -5,13 +5,16 @@ SINGLE_BATTLE_TEST("Grassy Terrain recovers 1/16th HP at end of turn") { GIVEN { PLAYER(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); } - OPPONENT(SPECIES_WOBBUFFET); + OPPONENT(SPECIES_WOBBUFFET) { MaxHP(100); HP(1); }; } WHEN { TURN { MOVE(player, MOVE_GRASSY_TERRAIN); } } SCENE { - s32 maxHP = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + s32 maxHPPlayer = GetMonData(&PLAYER_PARTY[0], MON_DATA_MAX_HP); + s32 maxHPOpponent = GetMonData(&OPPONENT_PARTY[0], MON_DATA_MAX_HP); MESSAGE("Wobbuffet is healed by the grassy terrain!"); - HP_BAR(player, damage: -maxHP / 16); + HP_BAR(player, damage: -maxHPPlayer / 16); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); + HP_BAR(opponent, damage: -maxHPOpponent / 16); } } @@ -28,7 +31,7 @@ SINGLE_BATTLE_TEST("Grassy Terrain activates Grassy Seed and Mimicry") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Grassy Seed, the Defense of Wobbuffet rose!"); ABILITY_POPUP(opponent); - MESSAGE("Foe Stunfisk's type changed to Grass!"); + MESSAGE("The opposing Stunfisk's type changed to Grass!"); } THEN { EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].types[0], TYPE_GRASS); } @@ -69,18 +72,18 @@ SINGLE_BATTLE_TEST("Grassy Terrain lasts for 5 turns") TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, player); MESSAGE("Grass grew to cover the battlefield!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("The grass disappeared from the battlefield."); } @@ -98,14 +101,14 @@ SINGLE_BATTLE_TEST("Grassy Terrain heals the pokemon on the field for the durati TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, player); MESSAGE("Grass grew to cover the battlefield!"); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); - MESSAGE("Foe Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); + MESSAGE("The opposing Wobbuffet is healed by the grassy terrain!"); MESSAGE("The grass disappeared from the battlefield."); } } diff --git a/test/battle/terrain/misty.c b/test/battle/terrain/misty.c index d6fde8fb7d..e43cf4a253 100644 --- a/test/battle/terrain/misty.c +++ b/test/battle/terrain/misty.c @@ -11,7 +11,7 @@ SINGLE_BATTLE_TEST("Misty Terrain protects grounded battlers from non-volatile s TURN { MOVE(player, MOVE_TOXIC); } } SCENE { MESSAGE("Wobbuffet used Misty Terrain!"); - MESSAGE("Foe Claydol used Toxic!"); + MESSAGE("The opposing Claydol used Toxic!"); MESSAGE("Wobbuffet surrounds itself with a protective mist!"); NOT { STATUS_ICON(opponent, badPoison: TRUE); } MESSAGE("Wobbuffet used Toxic!"); @@ -32,7 +32,7 @@ SINGLE_BATTLE_TEST("Misty Terrain activates Misty Seed and Mimicry") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Misty Seed, the Sp. Def of Wobbuffet rose!"); ABILITY_POPUP(opponent); - MESSAGE("Foe Stunfisk's type changed to Fairy!"); + MESSAGE("The opposing Stunfisk's type changed to Fairy!"); } THEN { EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].types[0], TYPE_FAIRY); } @@ -90,18 +90,18 @@ SINGLE_BATTLE_TEST("Misty Terrain lasts for 5 turns") TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_MISTY_TERRAIN, player); - MESSAGE("Mist swirled about the battlefield!"); + MESSAGE("Mist swirled around the battlefield!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("The mist disappeared from the battlefield."); } diff --git a/test/battle/terrain/psychic.c b/test/battle/terrain/psychic.c index 9a015a2c89..9ac88f29da 100644 --- a/test/battle/terrain/psychic.c +++ b/test/battle/terrain/psychic.c @@ -13,7 +13,7 @@ SINGLE_BATTLE_TEST("Psychic Terrain protects grounded battlers from priority mov MESSAGE("Claydol used Psychic Terrain!"); MESSAGE("Claydol cannot use Quick Attack!"); NOT { HP_BAR(opponent); } - MESSAGE("Foe Wobbuffet used Quick Attack!"); + MESSAGE("The opposing Wobbuffet used Quick Attack!"); HP_BAR(player); } } @@ -31,7 +31,7 @@ SINGLE_BATTLE_TEST("Psychic Terrain activates Psychic Seed and Mimicry") ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_STATS_CHANGE, player); MESSAGE("Using Psychic Seed, the Sp. Def of Wobbuffet rose!"); ABILITY_POPUP(opponent); - MESSAGE("Foe Stunfisk's type changed to Psychic!"); + MESSAGE("The opposing Stunfisk's type changed to Psychic!"); } THEN { EXPECT_EQ(gBattleMons[B_POSITION_OPPONENT_LEFT].types[0], TYPE_PSYCHIC); } @@ -145,19 +145,19 @@ SINGLE_BATTLE_TEST("Psychic Terrain lasts for 5 turns") TURN {} TURN {} } SCENE { - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_PSYCHIC_TERRAIN, player); MESSAGE("The battlefield got weird!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); } } diff --git a/test/battle/terrain/starting_terrain.c b/test/battle/terrain/starting_terrain.c index 37caa20bc7..ab31bbbb96 100644 --- a/test/battle/terrain/starting_terrain.c +++ b/test/battle/terrain/starting_terrain.c @@ -37,16 +37,16 @@ SINGLE_BATTLE_TEST("B_VAR_STARTING_STATUS starts a chosen terrain at the beginni MESSAGE("The battlefield got weird!"); break; case STARTING_STATUS_MISTY_TERRAIN: - MESSAGE("Mist swirled about the battlefield!"); + MESSAGE("Mist swirled around the battlefield!"); break; case STARTING_STATUS_ELECTRIC_TERRAIN: - MESSAGE("An electric current runs across the battlefield!"); + MESSAGE("An electric current is running across the battlefield!"); break; } ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RESTORE_BG); NONE_OF { ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RESTORE_BG); - MESSAGE("The weirdness disappeared from the battlefield."); + MESSAGE("The weirdness disappeared from the battlefield!"); MESSAGE("The electricity disappeared from the battlefield."); MESSAGE("The mist disappeared from the battlefield."); MESSAGE("The grass disappeared from the battlefield."); @@ -67,7 +67,7 @@ SINGLE_BATTLE_TEST("Terrain started after the one which started the battle lasts VarSet(B_VAR_STARTING_STATUS_TIMER, 0); GIVEN { - PLAYER(SPECIES_WOBBUFFET) { Ability(viaMove == TRUE ? ABILITY_SHADOW_TAG : ABILITY_GRASSY_SURGE); } + PLAYER(SPECIES_TAPU_BULU) { Ability(viaMove == TRUE ? ABILITY_TELEPATHY : ABILITY_GRASSY_SURGE); } OPPONENT(SPECIES_WOBBUFFET); } WHEN { // More than 5 turns @@ -80,11 +80,11 @@ SINGLE_BATTLE_TEST("Terrain started after the one which started the battle lasts TURN { ; } } SCENE { // Electric Terrain at battle's start - MESSAGE("An electric current runs across the battlefield!"); + MESSAGE("An electric current is running across the battlefield!"); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RESTORE_BG); // Player uses Grassy Terrain if (viaMove) { - MESSAGE("Wobbuffet used GrssyTerrain!"); + MESSAGE("Tapu Bulu used Grassy Terrain!"); ANIMATION(ANIM_TYPE_MOVE, MOVE_GRASSY_TERRAIN, player); MESSAGE("Grass grew to cover the battlefield!"); } else { @@ -94,14 +94,14 @@ SINGLE_BATTLE_TEST("Terrain started after the one which started the battle lasts } // 5 turns - MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Tapu Bulu used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Tapu Bulu used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); - MESSAGE("Wobbuffet used Celebrate!"); - MESSAGE("Foe Wobbuffet used Celebrate!"); + MESSAGE("Tapu Bulu used Celebrate!"); + MESSAGE("The opposing Wobbuffet used Celebrate!"); MESSAGE("The grass disappeared from the battlefield."); ANIMATION(ANIM_TYPE_GENERAL, B_ANIM_RESTORE_BG); diff --git a/test/battle/trainer_control.c b/test/battle/trainer_control.c index e31d281efe..5344a26596 100644 --- a/test/battle/trainer_control.c +++ b/test/battle/trainer_control.c @@ -24,8 +24,8 @@ TEST("CreateNPCTrainerPartyForTrainer generates customized Pokémon") EXPECT(IsMonShiny(&testParty[0])); EXPECT(!IsMonShiny(&testParty[1])); - EXPECT(GetMonData(&testParty[0], MON_DATA_POKEBALL, 0) == ITEM_MASTER_BALL); - EXPECT(GetMonData(&testParty[1], MON_DATA_POKEBALL, 0) == ITEM_POKE_BALL); + EXPECT(GetMonData(&testParty[0], MON_DATA_POKEBALL, 0) == BALL_MASTER); + EXPECT(GetMonData(&testParty[1], MON_DATA_POKEBALL, 0) == BALL_POKE); EXPECT(GetMonData(&testParty[0], MON_DATA_SPECIES, 0) == SPECIES_WOBBUFFET); EXPECT(GetMonData(&testParty[1], MON_DATA_SPECIES, 0) == SPECIES_WOBBUFFET); diff --git a/test/battle/weather/hail.c b/test/battle/weather/hail.c index 4210a22d9e..6c7f7bcdec 100644 --- a/test/battle/weather/hail.c +++ b/test/battle/weather/hail.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Hail deals 1/16 damage per turn") } WHEN { TURN {MOVE(player, MOVE_HAIL);} } SCENE { - MESSAGE("Foe Wobbuffet is pelted by HAIL!"); + MESSAGE("The opposing Wobbuffet is buffeted by the hail!"); HP_BAR(opponent, captureDamage: &hailDamage); } THEN { EXPECT_EQ(hailDamage, opponent->maxHP / 16); } } @@ -26,7 +26,7 @@ SINGLE_BATTLE_TEST("Hail damage does not affect Ice-type Pokémon") } WHEN { TURN {MOVE(player, MOVE_HAIL);} } SCENE { - NOT MESSAGE("Foe Glalie is pelted by HAIL!"); + NOT MESSAGE("The opposing Glalie is buffeted by the hail!"); } } @@ -57,7 +57,7 @@ SINGLE_BATTLE_TEST("Hail fails if Desolate Land or Primordial Sea are active") DOUBLE_BATTLE_TEST("Hail deals damage based on turn order") { GIVEN { - PLAYER(SPECIES_GLALIE); + PLAYER(SPECIES_GLALIE) { Speed(4); } PLAYER(SPECIES_WYNAUT) { Speed(1); } OPPONENT(SPECIES_WOBBUFFET) { Speed(2); } OPPONENT(SPECIES_WYNAUT) { Speed(3); } diff --git a/test/battle/weather/sandstorm.c b/test/battle/weather/sandstorm.c index 1673c26f99..38502cbbc7 100644 --- a/test/battle/weather/sandstorm.c +++ b/test/battle/weather/sandstorm.c @@ -12,7 +12,7 @@ SINGLE_BATTLE_TEST("Sandstorm deals 1/16 damage per turn") } WHEN { TURN {MOVE(player, MOVE_SANDSTORM);} } SCENE { - MESSAGE("Foe Wobbuffet is buffeted by the sandstorm!"); + MESSAGE("The opposing Wobbuffet is buffeted by the sandstorm!"); HP_BAR(opponent, captureDamage: &sandstormDamage); } THEN { EXPECT_EQ(sandstormDamage, opponent->maxHP / 16); } } @@ -54,13 +54,13 @@ SINGLE_BATTLE_TEST("Sandstorm damage does not hurt Ground, Rock, and Steel-type switch (mon) { case SPECIES_SANDSLASH: - NOT MESSAGE("Foe Sandslash is buffeted by the sandstorm!"); + NOT MESSAGE("The opposing Sandslash is buffeted by the sandstorm!"); break; case SPECIES_NOSEPASS: - NOT MESSAGE("Foe Nosepass is buffeted by the sandstorm!"); + NOT MESSAGE("The opposing Nosepass is buffeted by the sandstorm!"); break; case SPECIES_REGISTEEL: - NOT MESSAGE("Foe Registeel is buffeted by the sandstorm!"); + NOT MESSAGE("The opposing Registeel is buffeted by the sandstorm!"); break; } } @@ -69,7 +69,7 @@ SINGLE_BATTLE_TEST("Sandstorm damage does not hurt Ground, Rock, and Steel-type DOUBLE_BATTLE_TEST("Sandstorm deals damage based on turn order") { GIVEN { - PLAYER(SPECIES_PHANPY); + PLAYER(SPECIES_PHANPY) { Speed(4); } PLAYER(SPECIES_WYNAUT) { Speed(1); } OPPONENT(SPECIES_WOBBUFFET) { Speed(2); } OPPONENT(SPECIES_WYNAUT) { Speed(3); } diff --git a/test/pokemon.c b/test/pokemon.c index 8419b9c7e1..f5431559ee 100644 --- a/test/pokemon.c +++ b/test/pokemon.c @@ -237,7 +237,7 @@ TEST("givemon [all]") EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_WOBBUFFET); EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_LEVEL), 100); EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM), ITEM_LEFTOVERS); - EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_POKEBALL), ITEM_MASTER_BALL); + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_POKEBALL), BALL_MASTER); EXPECT_EQ(GetNature(&gPlayerParty[0]), NATURE_BOLD); EXPECT_EQ(GetMonAbility(&gPlayerParty[0]), gSpeciesInfo[SPECIES_WOBBUFFET].abilities[2]); EXPECT_EQ(GetMonGender(&gPlayerParty[0]), MON_MALE); @@ -300,7 +300,7 @@ TEST("givemon [vars]") EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_SPECIES), SPECIES_WOBBUFFET); EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_LEVEL), 100); EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_HELD_ITEM), ITEM_LEFTOVERS); - EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_POKEBALL), ITEM_MASTER_BALL); + EXPECT_EQ(GetMonData(&gPlayerParty[0], MON_DATA_POKEBALL), BALL_MASTER); EXPECT_EQ(GetNature(&gPlayerParty[0]), NATURE_BOLD); EXPECT_EQ(GetMonAbility(&gPlayerParty[0]), gSpeciesInfo[SPECIES_WOBBUFFET].abilities[2]); EXPECT_EQ(GetMonGender(&gPlayerParty[0]), MON_MALE); diff --git a/test/test_runner.c b/test/test_runner.c index 3e8ef696d8..f7c4cf780e 100644 --- a/test/test_runner.c +++ b/test/test_runner.c @@ -1,11 +1,12 @@ #include #include "global.h" -#include "characters.h" #include "gpu_regs.h" #include "load_save.h" #include "main.h" #include "malloc.h" #include "random.h" +#include "task.h" +#include "constants/characters.h" #include "test_runner.h" #include "test/test.h" @@ -190,6 +191,7 @@ top: else gTestRunnerState.timeoutSeconds = UINT_MAX; InitHeap(gHeap, HEAP_SIZE); + ResetTasks(); EnableInterrupts(INTR_FLAG_TIMER2); REG_TM2CNT_L = UINT16_MAX - (274 * 60); // Approx. 1 second. REG_TM2CNT_H = TIMER_ENABLE | TIMER_INTR_ENABLE | TIMER_1024CLK; @@ -243,6 +245,7 @@ top: if (gTestRunnerState.result == TEST_RESULT_PASS && !gTestRunnerState.expectLeaks) { + int i; const struct MemBlock *head = HeapHead(); const struct MemBlock *block = head; do @@ -251,7 +254,7 @@ top: || !(EWRAM_START <= (uintptr_t)block->next && (uintptr_t)block->next < EWRAM_END) || (block->next <= block && block->next != head)) { - Test_MgbaPrintf("gHeap corrupted block at 0x%p", block); + Test_MgbaPrintf("gHeap corrupted block at %p", block); gTestRunnerState.result = TEST_RESULT_ERROR; break; } @@ -268,6 +271,15 @@ top: block = block->next; } while (block != head); + + for (i = 0; i < NUM_TASKS; i++) + { + if (gTasks[i].isActive) + { + Test_MgbaPrintf("%p: task not freed", gTasks[i].func); + gTestRunnerState.result = TEST_RESULT_FAIL; + } + } } if (gTestRunnerState.test->runner == &gAssumptionsRunner) @@ -585,6 +597,9 @@ static s32 MgbaVPrintf_(const char *fmt, va_list va) p = va_arg(va, unsigned); { s32 n; + i = MgbaPutchar_(i, '<'); + i = MgbaPutchar_(i, '0'); + i = MgbaPutchar_(i, 'x'); for (n = 0; n < 7; n++) { unsigned nybble = (p >> (24 - (4*n))) & 0xF; @@ -593,6 +608,7 @@ static s32 MgbaVPrintf_(const char *fmt, va_list va) else i = MgbaPutchar_(i, 'a' + nybble - 10); } + i = MgbaPutchar_(i, '>'); } break; case 'q': diff --git a/test/test_runner_battle.c b/test/test_runner_battle.c index 92f041b9f6..6faf6a4715 100644 --- a/test/test_runner_battle.c +++ b/test/test_runner_battle.c @@ -5,7 +5,6 @@ #include "battle_controllers.h" #include "battle_gimmick.h" #include "battle_z_move.h" -#include "characters.h" #include "event_data.h" #include "fieldmap.h" #include "item_menu.h" @@ -14,6 +13,7 @@ #include "random.h" #include "test/battle.h" #include "window.h" +#include "constants/characters.h" #include "constants/trainers.h" #if defined(__INTELLISENSE__) @@ -322,8 +322,10 @@ static void BattleTest_Run(void *data) if (DATA.hasExplicitSpeeds) { + // TODO: If a battler is taking the default action maybe it + // should not require an explicit speed? if (DATA.explicitSpeeds[B_SIDE_PLAYER] != (1 << DATA.playerPartySize) - 1 - && DATA.explicitSpeeds[B_SIDE_OPPONENT] != (1 << DATA.opponentPartySize) - 1) + || DATA.explicitSpeeds[B_SIDE_OPPONENT] != (1 << DATA.opponentPartySize) - 1) { Test_ExitWithResult(TEST_RESULT_INVALID, SourceLine(0), ":LSpeed required for all PLAYERs and OPPONENTs"); } @@ -363,6 +365,7 @@ u32 RandomUniform(enum RandomTag tag, u32 lo, u32 hi) if (tag == STATE->rngTag) { + STATE->didRunRandomly = TRUE; u32 n = hi - lo + 1; if (STATE->trials == 1) { @@ -371,7 +374,7 @@ u32 RandomUniform(enum RandomTag tag, u32 lo, u32 hi) } else if (STATE->trials != n) { - Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomUniform called with inconsistent trials %d and %d", STATE->trials, n); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomUniform called from %p with tag %d and inconsistent trials %d and %d", __builtin_extract_return_addr(__builtin_return_address(0)), tag, STATE->trials, n); } STATE->trialRatio = Q_4_12(1) / STATE->trials; return STATE->runTrial + lo; @@ -399,6 +402,7 @@ u32 RandomUniformExcept(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32 if (tag == STATE->rngTag) { + STATE->didRunRandomly = TRUE; if (STATE->trials == 1) { u32 n = 0, i; @@ -413,7 +417,7 @@ u32 RandomUniformExcept(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32 while (reject(STATE->runTrial + lo + STATE->rngTrialOffset)) { if (STATE->runTrial + lo + STATE->rngTrialOffset > hi) - Test_ExitWithResult(TEST_RESULT_INVALID, SourceLine(0), ":LRandomUniformExcept called with inconsistent reject"); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomUniformExcept called from %p with tag %d and inconsistent reject", __builtin_extract_return_addr(__builtin_return_address(0)), tag); STATE->rngTrialOffset++; } @@ -424,7 +428,7 @@ u32 RandomUniformExcept(enum RandomTag tag, u32 lo, u32 hi, bool32 (*reject)(u32 while (reject(default_)) { if (default_ == lo) - Test_ExitWithResult(TEST_RESULT_INVALID, SourceLine(0), ":LRandomUniformExcept rejected all values"); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomUniformExcept called from %p with tag %d rejected all values", __builtin_extract_return_addr(__builtin_return_address(0)), tag); default_--; } return default_; @@ -447,6 +451,7 @@ u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) if (tag == STATE->rngTag) { + STATE->didRunRandomly = TRUE; if (STATE->trials == 1) { STATE->trials = n; @@ -454,7 +459,7 @@ u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) } else if (STATE->trials != n) { - Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomWeighted called with inconsistent trials %d and %d", STATE->trials, n); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomWeighted called from %p with tag %d and inconsistent trials %d and %d", __builtin_extract_return_addr(__builtin_return_address(0)), tag, STATE->trials, n); } // TODO: Detect inconsistent sum. STATE->trialRatio = Q_4_12(weights[STATE->runTrial]) / sum; @@ -488,7 +493,7 @@ u32 RandomWeightedArray(enum RandomTag tag, u32 sum, u32 n, const u8 *weights) while (weights[n-1] == 0) { if (n == 1) - Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomWeightedArray called with all zero weights"); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomWeightedArray called from %p with tag %d and all zero weights", __builtin_extract_return_addr(__builtin_return_address(0)), tag); n--; } return n-1; @@ -520,6 +525,7 @@ const void *RandomElementArray(enum RandomTag tag, const void *array, size_t siz if (tag == STATE->rngTag) { + STATE->didRunRandomly = TRUE; if (STATE->trials == 1) { STATE->trials = count; @@ -527,7 +533,7 @@ const void *RandomElementArray(enum RandomTag tag, const void *array, size_t siz } else if (STATE->trials != count) { - Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomElement called with inconsistent trials %d and %d", STATE->trials, count); + Test_ExitWithResult(TEST_RESULT_ERROR, SourceLine(0), ":LRandomElement called from %p with tag %d and inconsistent trials %d and %d", __builtin_extract_return_addr(__builtin_return_address(0)), tag, STATE->trials, count); } STATE->trialRatio = Q_4_12(1) / count; return (const u8 *)array + size * STATE->runTrial; @@ -780,6 +786,8 @@ void TestRunner_Battle_CheckChosenMove(u32 battlerId, u32 moveId, u32 target) if (!expectedAction->actionSet) return; + DATA.trial.lastActionTurn = gBattleResults.battleTurnCounter; + if (!expectedAction->pass) { u32 i, expectedMoveId = 0, countExpected; @@ -849,6 +857,8 @@ void TestRunner_Battle_CheckSwitch(u32 battlerId, u32 partyIndex) if (!expectedAction->actionSet) return; + DATA.trial.lastActionTurn = gBattleResults.battleTurnCounter; + if (!expectedAction->pass) { if (expectedAction->type != B_ACTION_SWITCH) @@ -1343,6 +1353,7 @@ static void CB2_BattleTest_NextParameter(void) else { STATE->trials = 0; + STATE->didRunRandomly = FALSE; BattleTest_Run(gTestRunnerState.test->data); } } @@ -1360,7 +1371,6 @@ static inline rng_value_t MakeRngValue(const u16 seed) static void CB2_BattleTest_NextTrial(void) { - ClearFlagAfterTest(); TearDownBattle(); SetMainCallback2(CB2_BattleTest_NextParameter); @@ -1389,6 +1399,9 @@ static void CB2_BattleTest_NextTrial(void) } else { + if (STATE->rngTag && !STATE->didRunRandomly && STATE->expectedRatio != Q_4_12(0.0) && STATE->expectedRatio != Q_4_12(1.0)) + Test_ExitWithResult(TEST_RESULT_INVALID, SourceLine(0), ":L%s:%d: PASSES_RANDOMLY specified but no Random* call with that tag executed", gTestRunnerState.test->filename, SourceLine(0)); + // This is a tolerance of +/- ~2%. if (abs(STATE->observedRatio - STATE->expectedRatio) <= Q_4_12(0.02)) gTestRunnerState.result = TEST_RESULT_PASS; @@ -1851,6 +1864,7 @@ static void PushBattlerAction(u32 sourceLine, s32 battlerId, u32 actionType, u32 if (recordIndex >= BATTLER_RECORD_SIZE) Test_ExitWithResult(TEST_RESULT_INVALID, SourceLine(0), ":LToo many actions"); DATA.battleRecordTypes[battlerId][recordIndex] = actionType; + DATA.battleRecordTurnNumbers[battlerId][recordIndex] = DATA.turns; DATA.battleRecordSourceLineOffsets[battlerId][recordIndex] = SourceLineOffset(sourceLine); DATA.recordedBattle.battleRecord[battlerId][recordIndex] = byte; } @@ -1899,6 +1913,17 @@ void TestRunner_Battle_CheckBattleRecordActionType(u32 battlerId, u32 recordInde if (actualMacro) { + if (gBattleResults.battleTurnCounter != DATA.battleRecordTurnNumbers[battlerId][recordIndex]) + { + switch (DATA.battleRecordTypes[battlerId][recordIndex]) + { + case RECORDED_PARTY_INDEX: + Test_ExitWithResult(TEST_RESULT_INVALID, line, ":L%s:%d: %s not required (is the send out random?)", filename, line, actualMacro); + default: + Test_ExitWithResult(TEST_RESULT_INVALID, line, ":L%s:%d: %s not required", filename, line, actualMacro); + } + } + switch (actionType) { case RECORDED_ACTION_TYPE: @@ -2104,11 +2129,44 @@ void MoveGetIdAndSlot(s32 battlerId, struct MoveContext *ctx, u32 *moveId, u32 * } } +u32 MoveGetFirstFainted(s32 battlerId) +{ + u32 i, partySize; + struct Pokemon *party; + + if ((battlerId & BIT_SIDE) == B_SIDE_PLAYER) + { + partySize = DATA.playerPartySize; + party = DATA.recordedBattle.playerParty; + } + else + { + partySize = DATA.opponentPartySize; + party = DATA.recordedBattle.opponentParty; + } + + // Loop through to find fainted battler. + for (i = 0; i < partySize; ++i) + { + u32 species = GetMonData(&party[i], MON_DATA_SPECIES_OR_EGG); + if (species != SPECIES_NONE + && species != SPECIES_EGG + && GetMonData(&party[i], MON_DATA_HP) == 0) + { + return i; + } + } + + // Returns PARTY_SIZE if none found. + return PARTY_SIZE; +} + void Move(u32 sourceLine, struct BattlePokemon *battler, struct MoveContext ctx) { s32 battlerId = battler - gBattleMons; u32 moveId, moveSlot; s32 target; + bool32 requirePartyIndex = FALSE; INVALID_IF(DATA.turnState == TURN_CLOSED, "MOVE outside TURN"); INVALID_IF(IsAITest() && (battlerId & BIT_SIDE) == B_SIDE_OPPONENT, "MOVE is not allowed for opponent in AI tests. Use EXPECT_MOVE instead"); @@ -2116,6 +2174,14 @@ void Move(u32 sourceLine, struct BattlePokemon *battler, struct MoveContext ctx) MoveGetIdAndSlot(battlerId, &ctx, &moveId, &moveSlot, sourceLine); target = MoveGetTarget(battlerId, moveId, &ctx, sourceLine); + if (gMovesInfo[moveId].effect == EFFECT_REVIVAL_BLESSING) + requirePartyIndex = MoveGetFirstFainted(battlerId) != PARTY_SIZE; + + // Check party menu moves. + INVALID_IF(requirePartyIndex && !ctx.explicitPartyIndex, "%S requires explicit party index", GetMoveName(moveId)); + INVALID_IF(requirePartyIndex && ctx.partyIndex >= ((battlerId & BIT_SIDE) == B_SIDE_PLAYER ? DATA.playerPartySize : DATA.opponentPartySize), \ + "MOVE to invalid party index"); + if (ctx.explicitHit) DATA.battleRecordTurns[DATA.turns][battlerId].hit = 1 + ctx.hit; if (ctx.explicitCriticalHit) @@ -2136,6 +2202,9 @@ void Move(u32 sourceLine, struct BattlePokemon *battler, struct MoveContext ctx) PushBattlerAction(sourceLine, battlerId, RECORDED_MOVE_TARGET, target); } + if (ctx.explicitPartyIndex) + PushBattlerAction(sourceLine, battlerId, RECORDED_PARTY_INDEX, ctx.partyIndex); + if (DATA.turnState == TURN_OPEN) { if (!DATA.hasExplicitSpeeds) @@ -2367,7 +2436,7 @@ void SendOut(u32 sourceLine, struct BattlePokemon *battler, u32 partyIndex) s32 i; s32 battlerId = battler - gBattleMons; INVALID_IF(DATA.turnState == TURN_CLOSED, "SEND_OUT outside TURN"); - INVALID_IF(partyIndex >= ((battlerId & BIT_SIDE) == B_SIDE_PLAYER ? DATA.playerPartySize : DATA.opponentPartySize), "SWITCH to invalid party index"); + INVALID_IF(partyIndex >= ((battlerId & BIT_SIDE) == B_SIDE_PLAYER ? DATA.playerPartySize : DATA.opponentPartySize), "SEND_OUT of invalid party index"); INVALID_IF(IsAITest() && (battlerId & BIT_SIDE) == B_SIDE_OPPONENT, "SEND_OUT is not allowed for opponent in AI tests. Use EXPECT_SEND_OUT instead"); for (i = 0; i < STATE->battlersCount; i++) { diff --git a/test/text.c b/test/text.c index 0e6900edad..17d9ab0ee9 100644 --- a/test/text.c +++ b/test/text.c @@ -1,11 +1,20 @@ #include "global.h" #include "test/test.h" +#include "battle.h" #include "battle_main.h" +#include "battle_message.h" +#include "battle_setup.h" #include "item.h" +#include "malloc.h" +#include "main_menu.h" +#include "string_util.h" #include "text.h" #include "constants/abilities.h" +#include "constants/battle.h" +#include "constants/battle_string_ids.h" #include "constants/items.h" #include "constants/moves.h" +#include "test/overworld_script.h" TEST("Move names fit on Pokemon Summary Screen") { @@ -16,6 +25,7 @@ TEST("Move names fit on Pokemon Summary Screen") { PARAMETRIZE_LABEL("%S", gMovesInfo[i].name) { move = i; } } + //DebugPrintf("Move %d: %S", GetStringWidth(fontId, gMovesInfo[move].name, 0), gMovesInfo[move].name); EXPECT_LE(GetStringWidth(fontId, gMovesInfo[move].name, 0), widthPx); } @@ -79,6 +89,18 @@ TEST("Move names fit on Move Relearner Screen") EXPECT_LE(GetStringWidth(fontId, gMovesInfo[move].name, 0), widthPx); } +TEST("Move descriptions fit on Pokemon Summary Screen") +{ + u32 i; + const u32 fontId = FONT_NORMAL, widthPx = 152; + u32 move = MOVE_NONE; + for (i = 1; i < MOVES_COUNT; i++) + { + PARAMETRIZE_LABEL("%S", gMovesInfo[i].description) { move = i; } + } + EXPECT_LE(GetStringWidth(fontId, gMovesInfo[move].description, 0), widthPx); +} + TEST("Item names fit on Bag Screen (list)") { u32 i; @@ -89,6 +111,7 @@ TEST("Item names fit on Bag Screen (list)") { PARAMETRIZE_LABEL("%S", gItemsInfo[i].name) { item = i; } } + //DebugPrintf("Item %d: %S", GetStringWidth(fontId, gItemsInfo[item].name, 0), gItemsInfo[item].name); if (gItemsInfo[item].pocket == POCKET_TM_HM || gItemsInfo[item].pocket == POCKET_BERRIES) EXPECT_LE(GetStringWidth(fontId, gItemsInfo[item].name, 0), tmHmBerryWidthPx); else @@ -272,6 +295,18 @@ TEST("Item names fit on Shop Screen") EXPECT_LE(GetStringWidth(fontId, gItemsInfo[item].name, 0), widthPx); } +TEST("Item descriptions fit on Bag and Shop Screen") +{ + u32 i; + const u32 fontId = FONT_NORMAL, widthPx = 102; + u32 item = ITEM_NONE; + for (i = 1; i < ITEMS_COUNT; i++) + { + PARAMETRIZE_LABEL("%S", gItemsInfo[i].description) { item = i; } + } + EXPECT_LE(GetStringWidth(fontId, gItemsInfo[item].description, 0), widthPx); +} + TEST("Species names fit on Battle Screen HP box") { u32 i, genderWidthPx; @@ -520,6 +555,21 @@ TEST("Species names fit on Battle Screen HP box for vanilla mons with the defaul EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].speciesName, 0), widthPx); } +TEST("Species dex entries fit on Pokedex Screen") +{ + u32 i; + const u32 fontId = FONT_NORMAL, widthPx = 224; + u32 species = SPECIES_NONE; + for (i = 1; i < NUM_SPECIES; i++) + { + if (IsSpeciesEnabled(i)) + { + PARAMETRIZE_LABEL("%S", gSpeciesInfo[i].description) { species = i; } + } + } + EXPECT_LE(GetStringWidth(fontId, gSpeciesInfo[species].description, 0), widthPx); +} + TEST("Ability names fit on Pokemon Summary Screen") { u32 i; @@ -544,6 +594,18 @@ TEST("Ability names fit on Ability Pop-Up") EXPECT_LE(GetStringWidth(fontId, gAbilitiesInfo[ability].name, 0), widthPx); } +TEST("Ability descriptions fit on Pokemon Summary Screen") +{ + u32 i; + const u32 fontId = FONT_NORMAL, widthPx = 146; + u32 ability = ABILITY_NONE; + for (i = 1; i < ABILITIES_COUNT; i++) + { + PARAMETRIZE_LABEL("%S", gAbilitiesInfo[i].description) { ability = i; } + } + EXPECT_LE(GetStringWidth(fontId, gAbilitiesInfo[ability].description, 0), widthPx); +} + TEST("Type names fit on Battle Screen") { u32 i; @@ -567,3 +629,273 @@ TEST("Type names fit on Pokedex Search Screen") } EXPECT_LE(GetStringWidth(fontId, gTypesInfo[type].name, 0), widthPx); } + +extern u16 sBattlerAbilities[MAX_BATTLERS_COUNT]; +//* +#define BATTLE_STRING_BUFFER_SIZE 1000 +TEST("Battle strings fit on the battle message window") +{ + u32 i, j, strWidth; + u32 start = BATTLESTRINGS_TABLE_START; + u32 end = BATTLESTRINGS_COUNT - 1; + const u32 fontId = FONT_NORMAL; + u32 battleStringId = 0; + u8 *battleString = Alloc(BATTLE_STRING_BUFFER_SIZE); + + s32 sixDigitNines = 999999; // 36 pixels. + u8 nickname[POKEMON_NAME_LENGTH + 1] = _("MMMMMMMMMMMM"); // 72 pixels. + u32 longMoveID = MOVE_NATURES_MADNESS; // 89 pixels. + u32 longAbilityID = ABILITY_SUPERSWEET_SYRUP; // 91 pixels. + u32 longStatName = STAT_EVASION; // 40 pixels. + u32 longTypeName = TYPE_ELECTRIC; // 43 pixels. + u32 longSpeciesName = SPECIES_SANDY_SHOCKS; // 47 pixels. + u32 longItemName = ITEM_UNREMARKABLE_TEACUP; // 73 pixels. + u8 boxName[9] = _("MMMMMMMM"); // 54 pixels. + + // Set longest default player name, JOHNNY + NewGameBirchSpeech_SetDefaultPlayerName(10); // JOHNNY + + RUN_OVERWORLD_SCRIPT( + givemon SPECIES_WOBBUFFET, 100; + createmon 1, 0, SPECIES_WOBBUFFET, 100; + ); + SetMonData(&gPlayerParty[0], MON_DATA_NICKNAME, nickname); + SetMonData(&gEnemyParty[0], MON_DATA_NICKNAME, nickname); + + for (i = start; i <= end; i++) + { + PARAMETRIZE_LABEL("%S", gBattleStringsTable[i]) { battleStringId = i; } + } + + // Clear buffers + PREPARE_STRING_BUFFER(gBattleTextBuff1, STRINGID_EMPTYSTRING3); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_EMPTYSTRING3); + PREPARE_STRING_BUFFER(gBattleTextBuff3, STRINGID_EMPTYSTRING3); + *gStringVar1 = EOS; + *gStringVar2 = EOS; + *gStringVar3 = EOS; + + // Set positions + gBattlerPositions[0] = B_POSITION_PLAYER_LEFT; + gBattlerPositions[1] = B_POSITION_OPPONENT_LEFT; + gBattlerPositions[2] = B_POSITION_PLAYER_RIGHT; + gBattlerPositions[3] = B_POSITION_OPPONENT_RIGHT; + + // Set abilities + gLastUsedAbility = longAbilityID; + for (j = 0; j < MAX_BATTLERS_COUNT; j++) + sBattlerAbilities[j] = longAbilityID; + + // Set Trainers + gTrainerBattleOpponent_A = 1; + gTrainerBattleOpponent_B = 1; + + // Set battler to 1, so "The opposing " is prefixed when refering to battlers. + gBattleTypeFlags |= BATTLE_TYPE_TRAINER; + gBattlerAttacker = gBattlerTarget = gBattleScripting.battler = gEffectBattler = 1; + + // Set moves + gCurrentMove = longMoveID; + gBattleMsgDataPtr = AllocZeroed(sizeof(struct BattleMsgData)); + gBattleMsgDataPtr->currentMove = longMoveID; + + // Set Items + gLastUsedItem = longItemName; + + // Buffer specific strings for each Battle String. + // In cases where a buffer is used with multiple contexts, the widest string is used. + // Eg. STRINGID_CANACTFASTERTHANKSTO is used for both with abilities and items, + // so ability is chosen because it's longer. + switch (battleStringId) + { + // Testing Trainer messages is out of the current scope for this test. + case STRINGID_TRAINER1LOSETEXT: + case STRINGID_TRAINER2LOSETEXT: + case STRINGID_TRAINER1WINTEXT: + case STRINGID_TRAINER2WINTEXT: + break; + // Buffer Nickname with prefix to B_BUFF1, " a boosted" to B_BUFF2, "999999" to B_BUFF3 + case STRINGID_PKMNGAINEDEXP: + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, 0, 0); + PREPARE_STRING_BUFFER(gBattleTextBuff2, STRINGID_ABOOSTED); // 'gained a boosted' + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff3, 6, sixDigitNines); + break; + // Buffer Nickname with prefix to B_BUFF1, "100" to B_BUFF2 + case STRINGID_PKMNGREWTOLV: + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, 0, 0); + PREPARE_BYTE_NUMBER_BUFFER(gBattleTextBuff2, 3, 100); + break; + // Buffer Nickname with prefix to B_BUFF1, move name to B_BUFF2 + case STRINGID_PKMNLEARNEDMOVE: + case STRINGID_TRYTOLEARNMOVE1: + case STRINGID_TRYTOLEARNMOVE2: + case STRINGID_TRYTOLEARNMOVE3: + case STRINGID_PKMNFORGOTMOVE: + case STRINGID_STOPLEARNINGMOVE: + case STRINGID_DIDNOTLEARNMOVE: + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, 0, 0); + PREPARE_MOVE_BUFFER(gBattleTextBuff2, longMoveID); + break; + // Buffer Move name to B_BUFF1 + case STRINGID_PKMNLEARNEDMOVE2: + case STRINGID_TEAMSTOPPEDWORKING: // Unused + case STRINGID_FOESTOPPEDWORKING: // Unused + case STRINGID_PKMNHURTBY: + case STRINGID_PKMNFREEDFROM: + case STRINGID_PKMNMOVEWASDISABLED: + case STRINGID_PKMNSKETCHEDMOVE: + case STRINGID_PKMNGOTFREE: + case STRINGID_PKMNLOSTPPGRUDGE: + case STRINGID_PKMNSITEMRESTOREDPP: + case STRINGID_PKMNSXWOREOFF: + case STRINGID_BUFFERENDS: + case STRINGID_FOREWARNACTIVATES: + case STRINGID_CUSEDBODYDISABLED: + case STRINGID_CURRENTMOVECANTSELECT: + case STRINGID_TARGETISHURTBYSALTCURE: + PREPARE_MOVE_BUFFER(gBattleTextBuff1, longMoveID); + break; + // Buffer "999999" to B_BUFF1 + case STRINGID_PLAYERGOTMONEY: + case STRINGID_PLAYERWHITEOUT2: + case STRINGID_PLAYERPICKEDUPMONEY: + case STRINGID_PLAYERPAIDPRIZEMONEY: + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 6, sixDigitNines); + break; + // Buffer "99" to B_BUFF1 + case STRINGID_HITXTIMES: + case STRINGID_MAGNITUDESTRENGTH: + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 2, 99); + break; + // Buffer "9" to B_BUFF1 + case STRINGID_PKMNSTOCKPILED: + case STRINGID_PKMNPERISHCOUNTFELL: + PREPARE_WORD_NUMBER_BUFFER(gBattleTextBuff1, 1, 9); + break; + // Buffer Ability name to B_BUFF1 + case STRINGID_PKMNMADESLEEP: + case STRINGID_PKMNPOISONEDBY: + case STRINGID_PKMNBURNEDBY: + case STRINGID_PKMNFROZENBY: + case STRINGID_PKMNWASPARALYZEDBY: + case STRINGID_CANACTFASTERTHANKSTO: + PREPARE_ABILITY_BUFFER(gBattleTextBuff1, longAbilityID); + break; + // Buffer Stat name to B_BUFF1 + case STRINGID_STATSWONTINCREASE: + case STRINGID_STATSWONTDECREASE: + case STRINGID_PKMNSXPREVENTSYLOSS: + case STRINGID_TARGETABILITYSTATRAISE: + case STRINGID_TARGETSSTATWASMAXEDOUT: + case STRINGID_ATTACKERABILITYSTATRAISE: + case STRINGID_LASTABILITYRAISEDSTAT: + case STRINGID_TARGETABILITYSTATLOWER: + case STRINGID_SCRIPTINGABILITYSTATRAISE: + case STRINGID_BATTLERABILITYRAISEDSTAT: + case STRINGID_ABILITYRAISEDSTATDRASTICALLY: + case STRINGID_STATWASHEIGHTENED: + StringCopy(gBattleTextBuff1, gStatNamesTable[longStatName]); + break; + // Buffer Type name to B_BUFF1 + case STRINGID_PKMNCHANGEDTYPE: + case STRINGID_PKMNCHANGEDTYPEWITH: + case STRINGID_TARGETCHANGEDTYPE: + case STRINGID_PROTEANTYPECHANGE: + case STRINGID_THIRDTYPEADDED: + case STRINGID_ATTACKERLOSTITSTYPE: + case STRINGID_PKMNTERASTALLIZEDINTO: + PREPARE_TYPE_BUFFER(gBattleTextBuff1, longTypeName); + break; + // Buffer Species name to B_BUFF1 + case STRINGID_PKMNTRANSFORMEDINTO: + case STRINGID_WILDPKMNFLED: + case STRINGID_MEGAEVOEVOLVED: + case STRINGID_PKMNREVIVEDREADYTOFIGHT: + case STRINGID_ITEMRESTOREDSPECIESHEALTH: // Should probably use nickname instead? + case STRINGID_ITEMCUREDSPECIESSTATUS: // Should probably use nickname instead? + case STRINGID_ITEMRESTOREDSPECIESPP: // Should probably use nickname instead? + PREPARE_SPECIES_BUFFER(gBattleTextBuff1, longSpeciesName) + break; + // Buffer nickname with prefix to B_BUFF1 + case STRINGID_PKMNATTACK: + case STRINGID_PKMNWISHCAMETRUE: + PREPARE_MON_NICK_WITH_PREFIX_BUFFER(gBattleTextBuff1, 1, 0); + break; + // Buffer nickname with prefix in lower case to B_BUFF1 + case STRINGID_USEDINSTRUCTEDMOVE: + PREPARE_MON_NICK_WITH_PREFIX_LOWER_BUFFER(gBattleTextBuff1, 1, 0); + break; + // Buffer nickname to B_BUFF2 + case STRINGID_ENEMYABOUTTOSWITCHPKMN: + PREPARE_MON_NICK_BUFFER(gBattleTextBuff2, 1, 0); + break; + // Buffer Item name to B_BUFF1 + case STRINGID_PKMNHURTSWITH: + case STRINGID_PKMNCURIOUSABOUTX: + case STRINGID_PKMNENTHRALLEDBYX: + case STRINGID_PKMNIGNOREDX: + case STRINGID_PREVENTEDFROMWORKING: + case STRINGID_PKMNOBTAINEDX: + case STRINGID_ABOUTTOUSEPOLTERGEIST: + PREPARE_ITEM_BUFFER(gBattleTextBuff1, longItemName); + break; + // Buffer Item name to B_BUFF2 + case STRINGID_PKMNOBTAINEDX2: + PREPARE_ITEM_BUFFER(gBattleTextBuff2, longItemName); + break; + // Buffer Item name to B_BUFF1 and B_BUFF2 + case STRINGID_PKMNOBTAINEDXYOBTAINEDZ: + PREPARE_ITEM_BUFFER(gBattleTextBuff1, longItemName); + PREPARE_ITEM_BUFFER(gBattleTextBuff2, longItemName); + break; + // Buffer nickname with prefix to B_BUFF1, Ability name to B_BUFF2 + case STRINGID_PKMNTRACED: + PREPARE_MON_NICK_WITH_PREFIX_LOWER_BUFFER(gBattleTextBuff1, 1, 0); + PREPARE_ABILITY_BUFFER(gBattleTextBuff2, longAbilityID); + break; + // Buffer Stat name to B_BUFF1, "drastically rose" to B_BUFF2 + case STRINGID_ATTACKERSSTATROSE: + case STRINGID_DEFENDERSSTATROSE: + case STRINGID_USINGITEMSTATOFPKMNROSE: + StringCopy(gBattleTextBuff1, gStatNamesTable[longStatName]); + StringCopy(gBattleTextBuff2, gText_drastically); + StringAppend(gBattleTextBuff2, gText_StatRose); + break; + // Buffer Stat name to B_BUFF1, "severely fell" to B_BUFF2 + case STRINGID_ATTACKERSSTATFELL: + case STRINGID_DEFENDERSSTATFELL: + StringCopy(gBattleTextBuff1, gStatNamesTable[longStatName]); + StringCopy(gBattleTextBuff2, gText_severely); + StringAppend(gBattleTextBuff2, gText_StatFell); + break; + // Buffer Status name to B_BUFF2 + case STRINGID_PKMNSITEMCUREDPROBLEM: + case STRINGID_PKMNSXCUREDYPROBLEM: + case STRINGID_PKMNSXCUREDITSYPROBLEM: + StringCopy(gBattleTextBuff1, gText_Confusion); + break; + // Buffer Box name to STR_VAR_1 and STR_VAR_3, Nickname to STR_VAR_2 + case STRINGID_PKMNTRANSFERREDSOMEONESPC: + case STRINGID_PKMNTRANSFERREDLANETTESPC: + case STRINGID_PKMNBOXSOMEONESPCFULL: + case STRINGID_PKMNBOXLANETTESPCFULL: + StringCopy(gStringVar1, boxName); + StringCopy(gStringVar2, nickname); + StringCopy(gStringVar3, boxName); + break; + default: + break; + } + BattleStringExpandPlaceholders(gBattleStringsTable[battleStringId], battleString, BATTLE_STRING_BUFFER_SIZE); + DebugPrintf("Battle String ID %d: %S", battleStringId, battleString); + for (j = 1;; j++) + { + strWidth = GetStringLineWidth(fontId, battleString, 0, j, BATTLE_STRING_BUFFER_SIZE); + if (strWidth == 0) + break; + EXPECT_LE(strWidth - 1, BATTLE_MSG_MAX_WIDTH); // -1 because there's a pixel-wide space that doesn't visually look like it's out of frame when using FONT_NORMAL. + } + Free(gBattleMsgDataPtr); + Free(battleString); +} +//*/ 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/learnset_helpers/porymoves_files/b2w2.json b/tools/learnset_helpers/porymoves_files/b2w2.json index 809671a6fc..976b125c6c 100644 --- a/tools/learnset_helpers/porymoves_files/b2w2.json +++ b/tools/learnset_helpers/porymoves_files/b2w2.json @@ -80324,7 +80324,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -80426,7 +80426,7 @@ "MOVE_UPROAR" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/bdsp.json b/tools/learnset_helpers/porymoves_files/bdsp.json index 0109e99ed8..8e4ac589d3 100644 --- a/tools/learnset_helpers/porymoves_files/bdsp.json +++ b/tools/learnset_helpers/porymoves_files/bdsp.json @@ -55908,7 +55908,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 0, @@ -56023,7 +56023,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 0, diff --git a/tools/learnset_helpers/porymoves_files/bw.json b/tools/learnset_helpers/porymoves_files/bw.json index 7be5d6eb6f..7728235c5f 100644 --- a/tools/learnset_helpers/porymoves_files/bw.json +++ b/tools/learnset_helpers/porymoves_files/bw.json @@ -72003,7 +72003,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -72094,7 +72094,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/dp.json b/tools/learnset_helpers/porymoves_files/dp.json index d39759df4f..666a6dda58 100644 --- a/tools/learnset_helpers/porymoves_files/dp.json +++ b/tools/learnset_helpers/porymoves_files/dp.json @@ -53246,7 +53246,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -53335,7 +53335,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/hgss.json b/tools/learnset_helpers/porymoves_files/hgss.json index 2bd6e7d926..b0241c96f4 100644 --- a/tools/learnset_helpers/porymoves_files/hgss.json +++ b/tools/learnset_helpers/porymoves_files/hgss.json @@ -59645,7 +59645,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -59749,7 +59749,7 @@ "MOVE_UPROAR" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/la.json b/tools/learnset_helpers/porymoves_files/la.json index cfd51dc2f4..599596a902 100644 --- a/tools/learnset_helpers/porymoves_files/la.json +++ b/tools/learnset_helpers/porymoves_files/la.json @@ -14495,7 +14495,7 @@ "EggMoves": [], "TutorMoves": [] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -16049,7 +16049,7 @@ "EggMoves": [], "TutorMoves": [] }, - "INDEEDEE_MALE": { + "INDEEDEE_M": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -16161,7 +16161,7 @@ "EggMoves": [], "TutorMoves": [] }, - "URSHIFU_SINGLE_STRIKE_STYLE": { + "URSHIFU_SINGLE_STRIKE": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -16630,21 +16630,21 @@ "MOVE_ZEN_HEADBUTT" ] }, - "RATTATA_ALOLAN": { + "RATTATA_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "RATICATE_ALOLAN": { + "RATICATE_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -16699,21 +16699,21 @@ "MOVE_WILD_CHARGE" ] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -16765,7 +16765,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -16820,35 +16820,35 @@ "MOVE_ZEN_HEADBUTT" ] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "GEODUDE_ALOLAN": { + "GEODUDE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -16903,7 +16903,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "GRAVELER_ALOLAN": { + "GRAVELER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -16958,7 +16958,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "GOLEM_ALOLAN": { + "GOLEM_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -17020,42 +17020,42 @@ "MOVE_THUNDER_PUNCH" ] }, - "GRIMER_ALOLAN": { + "GRIMER_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MUK_ALOLAN": { + "MUK_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MEOWTH_GALARIAN": { + "MEOWTH_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "PONYTA_GALARIAN": { + "PONYTA_GALAR": { "LevelMoves": [ { "Level": 1, @@ -17103,7 +17103,7 @@ "MOVE_WILD_CHARGE" ] }, - "RAPIDASH_GALARIAN": { + "RAPIDASH_GALAR": { "LevelMoves": [ { "Level": 1, @@ -17155,105 +17155,105 @@ "MOVE_WILD_CHARGE" ] }, - "SLOWPOKE_GALARIAN": { + "SLOWPOKE_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "SLOWBRO_GALARIAN": { + "SLOWBRO_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "FARFETCHD_GALARIAN": { + "FARFETCHD_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "WEEZING_GALARIAN": { + "WEEZING_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "ARTICUNO_GALARIAN": { + "ARTICUNO_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "ZAPDOS_GALARIAN": { + "ZAPDOS_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MOLTRES_GALARIAN": { + "MOLTRES_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "SLOWKING_GALARIAN": { + "SLOWKING_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "CORSOLA_GALARIAN": { + "CORSOLA_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "ZIGZAGOON_GALARIAN": { + "ZIGZAGOON_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "LINOONE_GALARIAN": { + "LINOONE_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "DARUMAKA_GALARIAN": { + "DARUMAKA_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "DARMANITAN_GALARIAN": { + "DARMANITAN_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "YAMASK_GALARIAN": { + "YAMASK_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "STUNFISK_GALARIAN": { + "STUNFISK_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -17281,7 +17281,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -17326,7 +17326,7 @@ "MOVE_STEALTH_ROCK" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, @@ -17661,14 +17661,14 @@ "EggMoves": [], "TutorMoves": [] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -17703,35 +17703,35 @@ "EggMoves": [], "TutorMoves": [] }, - "INDEEDEE_FEMALE": { + "INDEEDEE_F": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "URSHIFU_RAPID_STRIKE_STYLE": { + "URSHIFU_RAPID_STRIKE": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "CALYREX_ICE_RIDER": { + "CALYREX_ICE": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "CALYREX_SHADOW_RIDER": { + "CALYREX_SHADOW": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "GROWLITHE_HISUIAN": { + "GROWLITHE_HISUI": { "LevelMoves": [ { "Level": 1, @@ -17784,7 +17784,7 @@ "MOVE_WILD_CHARGE" ] }, - "ARCANINE_HISUIAN": { + "ARCANINE_HISUI": { "LevelMoves": [ { "Level": 1, @@ -17847,7 +17847,7 @@ "MOVE_WILD_CHARGE" ] }, - "VOLTORB_HISUIAN": { + "VOLTORB_HISUI": { "LevelMoves": [ { "Level": 1, @@ -17896,7 +17896,7 @@ "MOVE_WILD_CHARGE" ] }, - "ELECTRODE_HISUIAN": { + "ELECTRODE_HISUI": { "LevelMoves": [ { "Level": 1, @@ -17951,7 +17951,7 @@ "MOVE_WILD_CHARGE" ] }, - "TYPHLOSION_HISUIAN": { + "TYPHLOSION_HISUI": { "LevelMoves": [ { "Level": 0, @@ -18019,7 +18019,7 @@ "MOVE_WILD_CHARGE" ] }, - "QWILFISH_HISUIAN": { + "QWILFISH_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18080,7 +18080,7 @@ "MOVE_WATER_PULSE" ] }, - "SNEASEL_HISUIAN": { + "SNEASEL_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18132,7 +18132,7 @@ "MOVE_X_SCISSOR" ] }, - "SAMUROTT_HISUIAN": { + "SAMUROTT_HISUI": { "LevelMoves": [ { "Level": 0, @@ -18198,7 +18198,7 @@ "MOVE_X_SCISSOR" ] }, - "LILLIGANT_HISUIAN": { + "LILLIGANT_HISUI": { "LevelMoves": [ { "Level": 0, @@ -18318,7 +18318,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "ZORUA_HISUIAN": { + "ZORUA_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18364,7 +18364,7 @@ "MOVE_SWIFT" ] }, - "ZOROARK_HISUIAN": { + "ZOROARK_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18423,7 +18423,7 @@ "MOVE_SWIFT" ] }, - "BRAVIARY_HISUIAN": { + "BRAVIARY_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18487,7 +18487,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "SLIGGOO_HISUIAN": { + "SLIGGOO_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18539,7 +18539,7 @@ "MOVE_WATER_PULSE" ] }, - "GOODRA_HISUIAN": { + "GOODRA_HISUI": { "LevelMoves": [ { "Level": 1, @@ -18598,7 +18598,7 @@ "MOVE_WATER_PULSE" ] }, - "AVALUGG_HISUIAN": { + "AVALUGG_HISUI": { "LevelMoves": [ { "Level": 0, @@ -18669,7 +18669,7 @@ "MOVE_WATER_PULSE" ] }, - "DECIDUEYE_HISUIAN": { + "DECIDUEYE_HISUI": { "LevelMoves": [ { "Level": 0, diff --git a/tools/learnset_helpers/porymoves_files/lgpe.json b/tools/learnset_helpers/porymoves_files/lgpe.json index 9cb68528bc..f94ef03c94 100644 --- a/tools/learnset_helpers/porymoves_files/lgpe.json +++ b/tools/learnset_helpers/porymoves_files/lgpe.json @@ -11337,7 +11337,7 @@ "EggMoves": [], "TutorMoves": [] }, - "RATTATA_ALOLAN": { + "RATTATA_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11401,7 +11401,7 @@ "EggMoves": [], "TutorMoves": [] }, - "RATICATE_ALOLAN": { + "RATICATE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11491,7 +11491,7 @@ "EggMoves": [], "TutorMoves": [] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -11554,7 +11554,7 @@ "EggMoves": [], "TutorMoves": [] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11625,7 +11625,7 @@ "EggMoves": [], "TutorMoves": [] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11674,7 +11674,7 @@ "EggMoves": [], "TutorMoves": [] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11737,7 +11737,7 @@ "EggMoves": [], "TutorMoves": [] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11787,7 +11787,7 @@ "EggMoves": [], "TutorMoves": [] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -11848,7 +11848,7 @@ "EggMoves": [], "TutorMoves": [] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -11935,7 +11935,7 @@ "EggMoves": [], "TutorMoves": [] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12017,7 +12017,7 @@ "EggMoves": [], "TutorMoves": [] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -12116,7 +12116,7 @@ "EggMoves": [], "TutorMoves": [] }, - "GEODUDE_ALOLAN": { + "GEODUDE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12194,7 +12194,7 @@ "EggMoves": [], "TutorMoves": [] }, - "GRAVELER_ALOLAN": { + "GRAVELER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12280,7 +12280,7 @@ "EggMoves": [], "TutorMoves": [] }, - "GOLEM_ALOLAN": { + "GOLEM_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12371,7 +12371,7 @@ "EggMoves": [], "TutorMoves": [] }, - "GRIMER_ALOLAN": { + "GRIMER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12440,7 +12440,7 @@ "EggMoves": [], "TutorMoves": [] }, - "MUK_ALOLAN": { + "MUK_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -12529,7 +12529,7 @@ "EggMoves": [], "TutorMoves": [] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -12594,7 +12594,7 @@ "EggMoves": [], "TutorMoves": [] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [ { "Level": 0, diff --git a/tools/learnset_helpers/porymoves_files/oras.json b/tools/learnset_helpers/porymoves_files/oras.json index e61d499654..11a737628e 100644 --- a/tools/learnset_helpers/porymoves_files/oras.json +++ b/tools/learnset_helpers/porymoves_files/oras.json @@ -88631,7 +88631,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -94735,7 +94735,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -94840,7 +94840,7 @@ "MOVE_UPROAR" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, @@ -95859,7 +95859,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [ { "Level": 1, @@ -95967,7 +95967,7 @@ "MOVE_WORRY_SEED" ] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/pt.json b/tools/learnset_helpers/porymoves_files/pt.json index f230c7ead2..e969777fa6 100644 --- a/tools/learnset_helpers/porymoves_files/pt.json +++ b/tools/learnset_helpers/porymoves_files/pt.json @@ -58146,7 +58146,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -58248,7 +58248,7 @@ "MOVE_UPROAR" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/sm.json b/tools/learnset_helpers/porymoves_files/sm.json index c1fd671b7e..65255a69fa 100644 --- a/tools/learnset_helpers/porymoves_files/sm.json +++ b/tools/learnset_helpers/porymoves_files/sm.json @@ -79371,7 +79371,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -93399,7 +93399,7 @@ "EggMoves": [], "TutorMoves": [] }, - "RATTATA_ALOLAN": { + "RATTATA_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -93502,7 +93502,7 @@ ], "TutorMoves": [] }, - "RATICATE_ALOLAN": { + "RATICATE_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -93632,7 +93632,7 @@ ], "TutorMoves": [] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -93741,7 +93741,7 @@ ], "TutorMoves": [] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -93864,7 +93864,7 @@ ], "TutorMoves": [] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -93968,7 +93968,7 @@ ], "TutorMoves": [] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -94097,7 +94097,7 @@ ], "TutorMoves": [] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -94200,7 +94200,7 @@ ], "TutorMoves": [] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -94304,7 +94304,7 @@ ], "TutorMoves": [] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -94436,7 +94436,7 @@ ], "TutorMoves": [] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -94555,7 +94555,7 @@ ], "TutorMoves": [] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -94708,7 +94708,7 @@ ], "TutorMoves": [] }, - "GEODUDE_ALOLAN": { + "GEODUDE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -94827,7 +94827,7 @@ ], "TutorMoves": [] }, - "GRAVELER_ALOLAN": { + "GRAVELER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -94954,7 +94954,7 @@ ], "TutorMoves": [] }, - "GOLEM_ALOLAN": { + "GOLEM_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -95097,7 +95097,7 @@ ], "TutorMoves": [] }, - "GRIMER_ALOLAN": { + "GRIMER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -95221,7 +95221,7 @@ ], "TutorMoves": [] }, - "MUK_ALOLAN": { + "MUK_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -95366,7 +95366,7 @@ ], "TutorMoves": [] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -95484,7 +95484,7 @@ "MOVE_DRACO_METEOR" ] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -95978,7 +95978,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 0, @@ -96093,7 +96093,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 0, @@ -97019,7 +97019,7 @@ "MOVE_DRACO_METEOR" ] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [ { "Level": 1, @@ -97117,7 +97117,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/sv.json b/tools/learnset_helpers/porymoves_files/sv.json index 035fc16998..04bc72f9e6 100644 --- a/tools/learnset_helpers/porymoves_files/sv.json +++ b/tools/learnset_helpers/porymoves_files/sv.json @@ -58132,7 +58132,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -72171,7 +72171,7 @@ ], "TutorMoves": [] }, - "INDEEDEE_MALE": { + "INDEEDEE_M": { "LevelMoves": [ { "Level": 1, @@ -73494,7 +73494,7 @@ "EggMoves": [], "TutorMoves": [] }, - "URSHIFU_SINGLE_STRIKE_STYLE": { + "URSHIFU_SINGLE_STRIKE": { "LevelMoves": [ { "Level": 0, @@ -89091,21 +89091,21 @@ "EggMoves": [], "TutorMoves": [] }, - "RATTATA_ALOLAN": { + "RATTATA_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "RATICATE_ALOLAN": { + "RATICATE_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -89263,7 +89263,7 @@ ], "TutorMoves": [] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -89398,7 +89398,7 @@ ], "TutorMoves": [] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -89568,7 +89568,7 @@ ], "TutorMoves": [] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -89687,7 +89687,7 @@ ], "TutorMoves": [] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -89833,7 +89833,7 @@ ], "TutorMoves": [] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -89944,7 +89944,7 @@ ], "TutorMoves": [] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -90075,7 +90075,7 @@ ], "TutorMoves": [] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -90192,7 +90192,7 @@ ], "TutorMoves": [] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -90327,7 +90327,7 @@ ], "TutorMoves": [] }, - "GEODUDE_ALOLAN": { + "GEODUDE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -90453,7 +90453,7 @@ ], "TutorMoves": [] }, - "GRAVELER_ALOLAN": { + "GRAVELER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -90585,7 +90585,7 @@ ], "TutorMoves": [] }, - "GOLEM_ALOLAN": { + "GOLEM_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -90723,7 +90723,7 @@ ], "TutorMoves": [] }, - "GRIMER_ALOLAN": { + "GRIMER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -90862,7 +90862,7 @@ ], "TutorMoves": [] }, - "MUK_ALOLAN": { + "MUK_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -91005,7 +91005,7 @@ ], "TutorMoves": [] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -91150,14 +91150,14 @@ "EggMoves": [], "TutorMoves": [] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "MEOWTH_GALARIAN": { + "MEOWTH_GALAR": { "LevelMoves": [ { "Level": 1, @@ -91279,21 +91279,21 @@ ], "TutorMoves": [] }, - "PONYTA_GALARIAN": { + "PONYTA_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "RAPIDASH_GALARIAN": { + "RAPIDASH_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "SLOWPOKE_GALARIAN": { + "SLOWPOKE_GALAR": { "LevelMoves": [ { "Level": 1, @@ -91427,7 +91427,7 @@ ], "TutorMoves": [] }, - "SLOWBRO_GALARIAN": { + "SLOWBRO_GALAR": { "LevelMoves": [ { "Level": 0, @@ -91596,14 +91596,14 @@ ], "TutorMoves": [] }, - "FARFETCHD_GALARIAN": { + "FARFETCHD_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "WEEZING_GALARIAN": { + "WEEZING_GALAR": { "LevelMoves": [ { "Level": 0, @@ -91750,7 +91750,7 @@ ], "TutorMoves": [] }, - "ARTICUNO_GALARIAN": { + "ARTICUNO_GALAR": { "LevelMoves": [ { "Level": 1, @@ -91860,7 +91860,7 @@ "EggMoves": [], "TutorMoves": [] }, - "ZAPDOS_GALARIAN": { + "ZAPDOS_GALAR": { "LevelMoves": [ { "Level": 1, @@ -91973,7 +91973,7 @@ "EggMoves": [], "TutorMoves": [] }, - "MOLTRES_GALARIAN": { + "MOLTRES_GALAR": { "LevelMoves": [ { "Level": 1, @@ -92085,7 +92085,7 @@ "EggMoves": [], "TutorMoves": [] }, - "SLOWKING_GALARIAN": { + "SLOWKING_GALAR": { "LevelMoves": [ { "Level": 0, @@ -92280,56 +92280,56 @@ ], "TutorMoves": [] }, - "CORSOLA_GALARIAN": { + "CORSOLA_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "ZIGZAGOON_GALARIAN": { + "ZIGZAGOON_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "LINOONE_GALARIAN": { + "LINOONE_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "DARUMAKA_GALARIAN": { + "DARUMAKA_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "DARMANITAN_GALARIAN": { + "DARMANITAN_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "YAMASK_GALARIAN": { + "YAMASK_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "STUNFISK_GALARIAN": { + "STUNFISK_GALAR": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "GROWLITHE_HISUIAN": { + "GROWLITHE_HISUI": { "LevelMoves": [ { "Level": 1, @@ -92448,7 +92448,7 @@ ], "TutorMoves": [] }, - "ARCANINE_HISUIAN": { + "ARCANINE_HISUI": { "LevelMoves": [ { "Level": 0, @@ -92594,7 +92594,7 @@ ], "TutorMoves": [] }, - "VOLTORB_HISUIAN": { + "VOLTORB_HISUI": { "LevelMoves": [ { "Level": 1, @@ -92711,7 +92711,7 @@ ], "TutorMoves": [] }, - "ELECTRODE_HISUIAN": { + "ELECTRODE_HISUI": { "LevelMoves": [ { "Level": 0, @@ -92837,7 +92837,7 @@ ], "TutorMoves": [] }, - "TYPHLOSION_HISUIAN": { + "TYPHLOSION_HISUI": { "LevelMoves": [ { "Level": 0, @@ -92982,7 +92982,7 @@ ], "TutorMoves": [] }, - "QWILFISH_HISUIAN": { + "QWILFISH_HISUI": { "LevelMoves": [ { "Level": 1, @@ -93118,7 +93118,7 @@ ], "TutorMoves": [] }, - "SNEASEL_HISUIAN": { + "SNEASEL_HISUI": { "LevelMoves": [ { "Level": 1, @@ -93237,7 +93237,7 @@ ], "TutorMoves": [] }, - "SAMUROTT_HISUIAN": { + "SAMUROTT_HISUI": { "LevelMoves": [ { "Level": 0, @@ -93379,7 +93379,7 @@ ], "TutorMoves": [] }, - "LILLIGANT_HISUIAN": { + "LILLIGANT_HISUI": { "LevelMoves": [ { "Level": 0, @@ -93642,7 +93642,7 @@ ], "TutorMoves": [] }, - "ZORUA_HISUIAN": { + "ZORUA_HISUI": { "LevelMoves": [ { "Level": 1, @@ -93754,7 +93754,7 @@ ], "TutorMoves": [] }, - "ZOROARK_HISUIAN": { + "ZOROARK_HISUI": { "LevelMoves": [ { "Level": 0, @@ -93894,7 +93894,7 @@ ], "TutorMoves": [] }, - "BRAVIARY_HISUIAN": { + "BRAVIARY_HISUI": { "LevelMoves": [ { "Level": 0, @@ -94030,7 +94030,7 @@ ], "TutorMoves": [] }, - "SLIGGOO_HISUIAN": { + "SLIGGOO_HISUI": { "LevelMoves": [ { "Level": 0, @@ -94135,7 +94135,7 @@ ], "TutorMoves": [] }, - "GOODRA_HISUIAN": { + "GOODRA_HISUI": { "LevelMoves": [ { "Level": 0, @@ -94280,7 +94280,7 @@ ], "TutorMoves": [] }, - "AVALUGG_HISUIAN": { + "AVALUGG_HISUI": { "LevelMoves": [ { "Level": 0, @@ -94416,7 +94416,7 @@ ], "TutorMoves": [] }, - "DECIDUEYE_HISUIAN": { + "DECIDUEYE_HISUI": { "LevelMoves": [ { "Level": 0, @@ -94555,7 +94555,7 @@ ], "TutorMoves": [] }, - "TAUROS_PALDEAN_COMBAT_BREED": { + "TAUROS_PALDEA_COMBAT": { "LevelMoves": [ { "Level": 1, @@ -94664,7 +94664,7 @@ ], "TutorMoves": [] }, - "TAUROS_PALDEAN_BLAZE_BREED": { + "TAUROS_PALDEA_BLAZE": { "LevelMoves": [ { "Level": 1, @@ -94779,7 +94779,7 @@ ], "TutorMoves": [] }, - "TAUROS_PALDEAN_AQUA_BREED": { + "TAUROS_PALDEA_AQUA": { "LevelMoves": [ { "Level": 1, @@ -94891,7 +94891,7 @@ ], "TutorMoves": [] }, - "WOOPER_PALDEAN": { + "WOOPER_PALDEA": { "LevelMoves": [ { "Level": 1, @@ -95417,14 +95417,14 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [], "PreEvoMoves": [], "TMMoves": [], @@ -96274,7 +96274,7 @@ "EggMoves": [], "TutorMoves": [] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [ { "Level": 1, @@ -96381,7 +96381,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, @@ -97091,7 +97091,7 @@ ], "TutorMoves": [] }, - "INDEEDEE_FEMALE": { + "INDEEDEE_F": { "LevelMoves": [ { "Level": 1, @@ -97190,7 +97190,7 @@ ], "TutorMoves": [] }, - "URSHIFU_RAPID_STRIKE_STYLE": { + "URSHIFU_RAPID_STRIKE": { "LevelMoves": [ { "Level": 0, @@ -97318,7 +97318,7 @@ "EggMoves": [], "TutorMoves": [] }, - "CALYREX_ICE_RIDER": { + "CALYREX_ICE": { "LevelMoves": [ { "Level": 1, @@ -97525,7 +97525,7 @@ "EggMoves": [], "TutorMoves": [] }, - "CALYREX_SHADOW_RIDER": { + "CALYREX_SHADOW": { "LevelMoves": [ { "Level": 1, @@ -97873,7 +97873,7 @@ ], "TutorMoves": [] }, - "OINKOLOGNE_MALE": { + "OINKOLOGNE_M": { "LevelMoves": [ { "Level": 1, @@ -97941,7 +97941,7 @@ "EggMoves": [], "TutorMoves": [] }, - "OINKOLOGNE_FEMALE": { + "OINKOLOGNE_F": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/swsh.json b/tools/learnset_helpers/porymoves_files/swsh.json index 7d344777f0..cf32f3d552 100644 --- a/tools/learnset_helpers/porymoves_files/swsh.json +++ b/tools/learnset_helpers/porymoves_files/swsh.json @@ -54679,7 +54679,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -75050,7 +75050,7 @@ ], "TutorMoves": [] }, - "INDEEDEE_MALE": { + "INDEEDEE_M": { "LevelMoves": [ { "Level": 1, @@ -76790,7 +76790,7 @@ "MOVE_COACHING" ] }, - "URSHIFU_SINGLE_STRIKE_STYLE": { + "URSHIFU_SINGLE_STRIKE": { "LevelMoves": [ { "Level": 0, @@ -77588,7 +77588,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -77747,7 +77747,7 @@ ], "TutorMoves": [] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -77873,7 +77873,7 @@ "MOVE_STEEL_BEAM" ] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -78022,7 +78022,7 @@ "MOVE_STEEL_BEAM" ] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -78135,7 +78135,7 @@ ], "TutorMoves": [] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -78272,7 +78272,7 @@ ], "TutorMoves": [] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -78376,7 +78376,7 @@ "MOVE_STEEL_BEAM" ] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -78503,7 +78503,7 @@ "MOVE_STEEL_BEAM" ] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -78611,7 +78611,7 @@ ], "TutorMoves": [] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -78741,7 +78741,7 @@ ], "TutorMoves": [] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -78885,7 +78885,7 @@ "MOVE_DRACO_METEOR" ] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -79045,7 +79045,7 @@ ], "TutorMoves": [] }, - "MEOWTH_GALARIAN": { + "MEOWTH_GALAR": { "LevelMoves": [ { "Level": 1, @@ -79158,7 +79158,7 @@ "MOVE_LASH_OUT" ] }, - "PONYTA_GALARIAN": { + "PONYTA_GALAR": { "LevelMoves": [ { "Level": 1, @@ -79256,7 +79256,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "RAPIDASH_GALARIAN": { + "RAPIDASH_GALAR": { "LevelMoves": [ { "Level": 0, @@ -79385,7 +79385,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "SLOWPOKE_GALARIAN": { + "SLOWPOKE_GALAR": { "LevelMoves": [ { "Level": 1, @@ -79522,7 +79522,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "SLOWBRO_GALARIAN": { + "SLOWBRO_GALAR": { "LevelMoves": [ { "Level": 0, @@ -79690,7 +79690,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "FARFETCHD_GALARIAN": { + "FARFETCHD_GALAR": { "LevelMoves": [ { "Level": 1, @@ -79801,7 +79801,7 @@ "MOVE_DUAL_WINGBEAT" ] }, - "WEEZING_GALARIAN": { + "WEEZING_GALAR": { "LevelMoves": [ { "Level": 0, @@ -79958,7 +79958,7 @@ "MOVE_MISTY_EXPLOSION" ] }, - "MR_MIME_GALARIAN": { + "MR_MIME_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80147,7 +80147,7 @@ "MOVE_TRIPLE_AXEL" ] }, - "ARTICUNO_GALARIAN": { + "ARTICUNO_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80258,7 +80258,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "ZAPDOS_GALARIAN": { + "ZAPDOS_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80373,7 +80373,7 @@ "MOVE_COACHING" ] }, - "MOLTRES_GALARIAN": { + "MOLTRES_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80480,7 +80480,7 @@ "MOVE_LASH_OUT" ] }, - "SLOWKING_GALARIAN": { + "SLOWKING_GALAR": { "LevelMoves": [ { "Level": 0, @@ -80657,7 +80657,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "CORSOLA_GALARIAN": { + "CORSOLA_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80776,7 +80776,7 @@ "MOVE_METEOR_BEAM" ] }, - "ZIGZAGOON_GALARIAN": { + "ZIGZAGOON_GALAR": { "LevelMoves": [ { "Level": 1, @@ -80890,7 +80890,7 @@ "MOVE_LASH_OUT" ] }, - "LINOONE_GALARIAN": { + "LINOONE_GALAR": { "LevelMoves": [ { "Level": 0, @@ -81030,7 +81030,7 @@ "MOVE_LASH_OUT" ] }, - "DARUMAKA_GALARIAN": { + "DARUMAKA_GALAR": { "LevelMoves": [ { "Level": 1, @@ -81147,7 +81147,7 @@ ], "TutorMoves": [] }, - "DARMANITAN_GALARIAN": { + "DARMANITAN_GALAR": { "LevelMoves": [ { "Level": 0, @@ -81289,7 +81289,7 @@ "MOVE_LASH_OUT" ] }, - "YAMASK_GALARIAN": { + "YAMASK_GALAR": { "LevelMoves": [ { "Level": 1, @@ -81403,7 +81403,7 @@ "MOVE_POLTERGEIST" ] }, - "STUNFISK_GALARIAN": { + "STUNFISK_GALAR": { "LevelMoves": [ { "Level": 1, @@ -82254,7 +82254,7 @@ "MOVE_SCALE_SHOT" ] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, @@ -82839,7 +82839,7 @@ "MOVE_RISING_VOLTAGE" ] }, - "INDEEDEE_FEMALE": { + "INDEEDEE_F": { "LevelMoves": [ { "Level": 1, @@ -82945,7 +82945,7 @@ "MOVE_EXPANDING_FORCE" ] }, - "URSHIFU_RAPID_STRIKE_STYLE": { + "URSHIFU_RAPID_STRIKE": { "LevelMoves": [ { "Level": 0, @@ -83081,7 +83081,7 @@ "MOVE_COACHING" ] }, - "CALYREX_ICE_RIDER": { + "CALYREX_ICE": { "LevelMoves": [ { "Level": 1, @@ -83292,7 +83292,7 @@ "MOVE_LASH_OUT" ] }, - "CALYREX_SHADOW_RIDER": { + "CALYREX_SHADOW": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/usum.json b/tools/learnset_helpers/porymoves_files/usum.json index a659a4261c..ed4cfb69e0 100644 --- a/tools/learnset_helpers/porymoves_files/usum.json +++ b/tools/learnset_helpers/porymoves_files/usum.json @@ -88196,7 +88196,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -104427,7 +104427,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "RATTATA_ALOLAN": { + "RATTATA_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -104542,7 +104542,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "RATICATE_ALOLAN": { + "RATICATE_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -104687,7 +104687,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "RAICHU_ALOLAN": { + "RAICHU_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -104815,7 +104815,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "SANDSHREW_ALOLAN": { + "SANDSHREW_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -104953,7 +104953,7 @@ "MOVE_THROAT_CHOP" ] }, - "SANDSLASH_ALOLAN": { + "SANDSLASH_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -105073,7 +105073,7 @@ "MOVE_THROAT_CHOP" ] }, - "VULPIX_ALOLAN": { + "VULPIX_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -105214,7 +105214,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "NINETALES_ALOLAN": { + "NINETALES_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -105331,7 +105331,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "DIGLETT_ALOLAN": { + "DIGLETT_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -105442,7 +105442,7 @@ "MOVE_STOMPING_TANTRUM" ] }, - "DUGTRIO_ALOLAN": { + "DUGTRIO_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -105581,7 +105581,7 @@ "MOVE_STOMPING_TANTRUM" ] }, - "MEOWTH_ALOLAN": { + "MEOWTH_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -105717,7 +105717,7 @@ "MOVE_WATER_PULSE" ] }, - "PERSIAN_ALOLAN": { + "PERSIAN_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -105887,7 +105887,7 @@ "MOVE_WATER_PULSE" ] }, - "GEODUDE_ALOLAN": { + "GEODUDE_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -106018,7 +106018,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "GRAVELER_ALOLAN": { + "GRAVELER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -106160,7 +106160,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "GOLEM_ALOLAN": { + "GOLEM_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -106319,7 +106319,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "GRIMER_ALOLAN": { + "GRIMER_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -106456,7 +106456,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "MUK_ALOLAN": { + "MUK_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -106617,7 +106617,7 @@ "MOVE_THUNDER_PUNCH" ] }, - "EXEGGUTOR_ALOLAN": { + "EXEGGUTOR_ALOLA": { "LevelMoves": [ { "Level": 0, @@ -106754,7 +106754,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "MAROWAK_ALOLAN": { + "MAROWAK_ALOLA": { "LevelMoves": [ { "Level": 1, @@ -107351,7 +107351,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 0, @@ -107478,7 +107478,7 @@ "MOVE_UPROAR" ] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 0, @@ -108522,7 +108522,7 @@ "MOVE_ZEN_HEADBUTT" ] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [ { "Level": 1, @@ -108634,7 +108634,7 @@ "MOVE_WORRY_SEED" ] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, diff --git a/tools/learnset_helpers/porymoves_files/xy.json b/tools/learnset_helpers/porymoves_files/xy.json index 5494457f75..8be594e6d7 100644 --- a/tools/learnset_helpers/porymoves_files/xy.json +++ b/tools/learnset_helpers/porymoves_files/xy.json @@ -79310,7 +79310,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_MALE": { + "MEOWSTIC_M": { "LevelMoves": [ { "Level": 1, @@ -84805,7 +84805,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_SANDY_CLOAK": { + "WORMADAM_SANDY": { "LevelMoves": [ { "Level": 1, @@ -84899,7 +84899,7 @@ "EggMoves": [], "TutorMoves": [] }, - "WORMADAM_TRASH_CLOAK": { + "WORMADAM_TRASH": { "LevelMoves": [ { "Level": 1, @@ -85811,7 +85811,7 @@ "MOVE_DRACO_METEOR" ] }, - "FLOETTE_ETERNAL_FLOWER": { + "FLOETTE_ETERNAL": { "LevelMoves": [ { "Level": 1, @@ -85906,7 +85906,7 @@ ], "TutorMoves": [] }, - "MEOWSTIC_FEMALE": { + "MEOWSTIC_F": { "LevelMoves": [ { "Level": 1, 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 diff --git a/tools/mapjson/mapjson.cpp b/tools/mapjson/mapjson.cpp index 4f59dc7575..5956ddc506 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); @@ -195,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; @@ -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; ostringstream mapCountText; @@ -470,7 +480,7 @@ string generate_map_constants_text(string groups_filepath, Json groups_data) { int map_count = 0; //DEBUG 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()) @@ -507,7 +517,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); @@ -515,19 +529,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) { @@ -600,7 +611,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); @@ -611,12 +625,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[]) { @@ -634,29 +645,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; diff --git a/tools/mgba-rom-test-hydra/Makefile b/tools/mgba-rom-test-hydra/Makefile index f93f991d9b..ef0523adc9 100644 --- a/tools/mgba-rom-test-hydra/Makefile +++ b/tools/mgba-rom-test-hydra/Makefile @@ -12,7 +12,7 @@ all: mgba-rom-test-hydra$(EXE) @: mgba-rom-test-hydra$(EXE): $(SRCS) - $(CC) $(SRCS) -o $@ -lm $(LDFLAGS) + $(CC) $(SRCS) -Werror=implicit-function-declaration -o $@ -lm $(LDFLAGS) clean: $(RM) mgba-rom-test-hydra$(EXE) diff --git a/tools/mgba-rom-test-hydra/elf.h b/tools/mgba-rom-test-hydra/elf.h new file mode 100644 index 0000000000..79d3b974bd --- /dev/null +++ b/tools/mgba-rom-test-hydra/elf.h @@ -0,0 +1,3147 @@ +/* +From musl include/elf.h + +Copyright © 2005-2014 Rich Felker, et al. + +Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ + +#ifndef _ELF_H +#define _ELF_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +typedef uint16_t Elf32_Half; +typedef uint16_t Elf64_Half; + +typedef uint32_t Elf32_Word; +typedef int32_t Elf32_Sword; +typedef uint32_t Elf64_Word; +typedef int32_t Elf64_Sword; + +typedef uint64_t Elf32_Xword; +typedef int64_t Elf32_Sxword; +typedef uint64_t Elf64_Xword; +typedef int64_t Elf64_Sxword; + +typedef uint32_t Elf32_Addr; +typedef uint64_t Elf64_Addr; + +typedef uint32_t Elf32_Off; +typedef uint64_t Elf64_Off; + +typedef uint16_t Elf32_Section; +typedef uint16_t Elf64_Section; + +typedef Elf32_Half Elf32_Versym; +typedef Elf64_Half Elf64_Versym; + +#define EI_NIDENT (16) + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf32_Half e_type; + Elf32_Half e_machine; + Elf32_Word e_version; + Elf32_Addr e_entry; + Elf32_Off e_phoff; + Elf32_Off e_shoff; + Elf32_Word e_flags; + Elf32_Half e_ehsize; + Elf32_Half e_phentsize; + Elf32_Half e_phnum; + Elf32_Half e_shentsize; + Elf32_Half e_shnum; + Elf32_Half e_shstrndx; +} Elf32_Ehdr; + +typedef struct { + unsigned char e_ident[EI_NIDENT]; + Elf64_Half e_type; + Elf64_Half e_machine; + Elf64_Word e_version; + Elf64_Addr e_entry; + Elf64_Off e_phoff; + Elf64_Off e_shoff; + Elf64_Word e_flags; + Elf64_Half e_ehsize; + Elf64_Half e_phentsize; + Elf64_Half e_phnum; + Elf64_Half e_shentsize; + Elf64_Half e_shnum; + Elf64_Half e_shstrndx; +} Elf64_Ehdr; + +#define EI_MAG0 0 +#define ELFMAG0 0x7f + +#define EI_MAG1 1 +#define ELFMAG1 'E' + +#define EI_MAG2 2 +#define ELFMAG2 'L' + +#define EI_MAG3 3 +#define ELFMAG3 'F' + + +#define ELFMAG "\177ELF" +#define SELFMAG 4 + +#define EI_CLASS 4 +#define ELFCLASSNONE 0 +#define ELFCLASS32 1 +#define ELFCLASS64 2 +#define ELFCLASSNUM 3 + +#define EI_DATA 5 +#define ELFDATANONE 0 +#define ELFDATA2LSB 1 +#define ELFDATA2MSB 2 +#define ELFDATANUM 3 + +#define EI_VERSION 6 + + +#define EI_OSABI 7 +#define ELFOSABI_NONE 0 +#define ELFOSABI_SYSV 0 +#define ELFOSABI_HPUX 1 +#define ELFOSABI_NETBSD 2 +#define ELFOSABI_LINUX 3 +#define ELFOSABI_GNU 3 +#define ELFOSABI_SOLARIS 6 +#define ELFOSABI_AIX 7 +#define ELFOSABI_IRIX 8 +#define ELFOSABI_FREEBSD 9 +#define ELFOSABI_TRU64 10 +#define ELFOSABI_MODESTO 11 +#define ELFOSABI_OPENBSD 12 +#define ELFOSABI_ARM 97 +#define ELFOSABI_STANDALONE 255 + +#define EI_ABIVERSION 8 + +#define EI_PAD 9 + + + +#define ET_NONE 0 +#define ET_REL 1 +#define ET_EXEC 2 +#define ET_DYN 3 +#define ET_CORE 4 +#define ET_NUM 5 +#define ET_LOOS 0xfe00 +#define ET_HIOS 0xfeff +#define ET_LOPROC 0xff00 +#define ET_HIPROC 0xffff + + + +#define EM_NONE 0 +#define EM_M32 1 +#define EM_SPARC 2 +#define EM_386 3 +#define EM_68K 4 +#define EM_88K 5 +#define EM_860 7 +#define EM_MIPS 8 +#define EM_S370 9 +#define EM_MIPS_RS3_LE 10 + +#define EM_PARISC 15 +#define EM_VPP500 17 +#define EM_SPARC32PLUS 18 +#define EM_960 19 +#define EM_PPC 20 +#define EM_PPC64 21 +#define EM_S390 22 + +#define EM_V800 36 +#define EM_FR20 37 +#define EM_RH32 38 +#define EM_RCE 39 +#define EM_ARM 40 +#define EM_FAKE_ALPHA 41 +#define EM_SH 42 +#define EM_SPARCV9 43 +#define EM_TRICORE 44 +#define EM_ARC 45 +#define EM_H8_300 46 +#define EM_H8_300H 47 +#define EM_H8S 48 +#define EM_H8_500 49 +#define EM_IA_64 50 +#define EM_MIPS_X 51 +#define EM_COLDFIRE 52 +#define EM_68HC12 53 +#define EM_MMA 54 +#define EM_PCP 55 +#define EM_NCPU 56 +#define EM_NDR1 57 +#define EM_STARCORE 58 +#define EM_ME16 59 +#define EM_ST100 60 +#define EM_TINYJ 61 +#define EM_X86_64 62 +#define EM_PDSP 63 + +#define EM_FX66 66 +#define EM_ST9PLUS 67 +#define EM_ST7 68 +#define EM_68HC16 69 +#define EM_68HC11 70 +#define EM_68HC08 71 +#define EM_68HC05 72 +#define EM_SVX 73 +#define EM_ST19 74 +#define EM_VAX 75 +#define EM_CRIS 76 +#define EM_JAVELIN 77 +#define EM_FIREPATH 78 +#define EM_ZSP 79 +#define EM_MMIX 80 +#define EM_HUANY 81 +#define EM_PRISM 82 +#define EM_AVR 83 +#define EM_FR30 84 +#define EM_D10V 85 +#define EM_D30V 86 +#define EM_V850 87 +#define EM_M32R 88 +#define EM_MN10300 89 +#define EM_MN10200 90 +#define EM_PJ 91 +#define EM_OR1K 92 +#define EM_OPENRISC 92 +#define EM_ARC_A5 93 +#define EM_ARC_COMPACT 93 +#define EM_XTENSA 94 +#define EM_VIDEOCORE 95 +#define EM_TMM_GPP 96 +#define EM_NS32K 97 +#define EM_TPC 98 +#define EM_SNP1K 99 +#define EM_ST200 100 +#define EM_IP2K 101 +#define EM_MAX 102 +#define EM_CR 103 +#define EM_F2MC16 104 +#define EM_MSP430 105 +#define EM_BLACKFIN 106 +#define EM_SE_C33 107 +#define EM_SEP 108 +#define EM_ARCA 109 +#define EM_UNICORE 110 +#define EM_EXCESS 111 +#define EM_DXP 112 +#define EM_ALTERA_NIOS2 113 +#define EM_CRX 114 +#define EM_XGATE 115 +#define EM_C166 116 +#define EM_M16C 117 +#define EM_DSPIC30F 118 +#define EM_CE 119 +#define EM_M32C 120 +#define EM_TSK3000 131 +#define EM_RS08 132 +#define EM_SHARC 133 +#define EM_ECOG2 134 +#define EM_SCORE7 135 +#define EM_DSP24 136 +#define EM_VIDEOCORE3 137 +#define EM_LATTICEMICO32 138 +#define EM_SE_C17 139 +#define EM_TI_C6000 140 +#define EM_TI_C2000 141 +#define EM_TI_C5500 142 +#define EM_TI_ARP32 143 +#define EM_TI_PRU 144 +#define EM_MMDSP_PLUS 160 +#define EM_CYPRESS_M8C 161 +#define EM_R32C 162 +#define EM_TRIMEDIA 163 +#define EM_QDSP6 164 +#define EM_8051 165 +#define EM_STXP7X 166 +#define EM_NDS32 167 +#define EM_ECOG1X 168 +#define EM_MAXQ30 169 +#define EM_XIMO16 170 +#define EM_MANIK 171 +#define EM_CRAYNV2 172 +#define EM_RX 173 +#define EM_METAG 174 +#define EM_MCST_ELBRUS 175 +#define EM_ECOG16 176 +#define EM_CR16 177 +#define EM_ETPU 178 +#define EM_SLE9X 179 +#define EM_L10M 180 +#define EM_K10M 181 +#define EM_AARCH64 183 +#define EM_AVR32 185 +#define EM_STM8 186 +#define EM_TILE64 187 +#define EM_TILEPRO 188 +#define EM_MICROBLAZE 189 +#define EM_CUDA 190 +#define EM_TILEGX 191 +#define EM_CLOUDSHIELD 192 +#define EM_COREA_1ST 193 +#define EM_COREA_2ND 194 +#define EM_ARC_COMPACT2 195 +#define EM_OPEN8 196 +#define EM_RL78 197 +#define EM_VIDEOCORE5 198 +#define EM_78KOR 199 +#define EM_56800EX 200 +#define EM_BA1 201 +#define EM_BA2 202 +#define EM_XCORE 203 +#define EM_MCHP_PIC 204 +#define EM_KM32 210 +#define EM_KMX32 211 +#define EM_EMX16 212 +#define EM_EMX8 213 +#define EM_KVARC 214 +#define EM_CDP 215 +#define EM_COGE 216 +#define EM_COOL 217 +#define EM_NORC 218 +#define EM_CSR_KALIMBA 219 +#define EM_Z80 220 +#define EM_VISIUM 221 +#define EM_FT32 222 +#define EM_MOXIE 223 +#define EM_AMDGPU 224 +#define EM_RISCV 243 +#define EM_BPF 247 +#define EM_NUM 248 + +#define EM_ALPHA 0x9026 + +#define EV_NONE 0 +#define EV_CURRENT 1 +#define EV_NUM 2 + +typedef struct { + Elf32_Word sh_name; + Elf32_Word sh_type; + Elf32_Word sh_flags; + Elf32_Addr sh_addr; + Elf32_Off sh_offset; + Elf32_Word sh_size; + Elf32_Word sh_link; + Elf32_Word sh_info; + Elf32_Word sh_addralign; + Elf32_Word sh_entsize; +} Elf32_Shdr; + +typedef struct { + Elf64_Word sh_name; + Elf64_Word sh_type; + Elf64_Xword sh_flags; + Elf64_Addr sh_addr; + Elf64_Off sh_offset; + Elf64_Xword sh_size; + Elf64_Word sh_link; + Elf64_Word sh_info; + Elf64_Xword sh_addralign; + Elf64_Xword sh_entsize; +} Elf64_Shdr; + + + +#define SHN_UNDEF 0 +#define SHN_LORESERVE 0xff00 +#define SHN_LOPROC 0xff00 +#define SHN_BEFORE 0xff00 + +#define SHN_AFTER 0xff01 + +#define SHN_HIPROC 0xff1f +#define SHN_LOOS 0xff20 +#define SHN_HIOS 0xff3f +#define SHN_ABS 0xfff1 +#define SHN_COMMON 0xfff2 +#define SHN_XINDEX 0xffff +#define SHN_HIRESERVE 0xffff + + + +#define SHT_NULL 0 +#define SHT_PROGBITS 1 +#define SHT_SYMTAB 2 +#define SHT_STRTAB 3 +#define SHT_RELA 4 +#define SHT_HASH 5 +#define SHT_DYNAMIC 6 +#define SHT_NOTE 7 +#define SHT_NOBITS 8 +#define SHT_REL 9 +#define SHT_SHLIB 10 +#define SHT_DYNSYM 11 +#define SHT_INIT_ARRAY 14 +#define SHT_FINI_ARRAY 15 +#define SHT_PREINIT_ARRAY 16 +#define SHT_GROUP 17 +#define SHT_SYMTAB_SHNDX 18 +#define SHT_NUM 19 +#define SHT_LOOS 0x60000000 +#define SHT_GNU_ATTRIBUTES 0x6ffffff5 +#define SHT_GNU_HASH 0x6ffffff6 +#define SHT_GNU_LIBLIST 0x6ffffff7 +#define SHT_CHECKSUM 0x6ffffff8 +#define SHT_LOSUNW 0x6ffffffa +#define SHT_SUNW_move 0x6ffffffa +#define SHT_SUNW_COMDAT 0x6ffffffb +#define SHT_SUNW_syminfo 0x6ffffffc +#define SHT_GNU_verdef 0x6ffffffd +#define SHT_GNU_verneed 0x6ffffffe +#define SHT_GNU_versym 0x6fffffff +#define SHT_HISUNW 0x6fffffff +#define SHT_HIOS 0x6fffffff +#define SHT_LOPROC 0x70000000 +#define SHT_HIPROC 0x7fffffff +#define SHT_LOUSER 0x80000000 +#define SHT_HIUSER 0x8fffffff + +#define SHF_WRITE (1 << 0) +#define SHF_ALLOC (1 << 1) +#define SHF_EXECINSTR (1 << 2) +#define SHF_MERGE (1 << 4) +#define SHF_STRINGS (1 << 5) +#define SHF_INFO_LINK (1 << 6) +#define SHF_LINK_ORDER (1 << 7) +#define SHF_OS_NONCONFORMING (1 << 8) + +#define SHF_GROUP (1 << 9) +#define SHF_TLS (1 << 10) +#define SHF_COMPRESSED (1 << 11) +#define SHF_MASKOS 0x0ff00000 +#define SHF_MASKPROC 0xf0000000 +#define SHF_ORDERED (1 << 30) +#define SHF_EXCLUDE (1U << 31) + +typedef struct { + Elf32_Word ch_type; + Elf32_Word ch_size; + Elf32_Word ch_addralign; +} Elf32_Chdr; + +typedef struct { + Elf64_Word ch_type; + Elf64_Word ch_reserved; + Elf64_Xword ch_size; + Elf64_Xword ch_addralign; +} Elf64_Chdr; + +#define ELFCOMPRESS_ZLIB 1 +#define ELFCOMPRESS_LOOS 0x60000000 +#define ELFCOMPRESS_HIOS 0x6fffffff +#define ELFCOMPRESS_LOPROC 0x70000000 +#define ELFCOMPRESS_HIPROC 0x7fffffff + + +#define GRP_COMDAT 0x1 + +typedef struct { + Elf32_Word st_name; + Elf32_Addr st_value; + Elf32_Word st_size; + unsigned char st_info; + unsigned char st_other; + Elf32_Section st_shndx; +} Elf32_Sym; + +typedef struct { + Elf64_Word st_name; + unsigned char st_info; + unsigned char st_other; + Elf64_Section st_shndx; + Elf64_Addr st_value; + Elf64_Xword st_size; +} Elf64_Sym; + +typedef struct { + Elf32_Half si_boundto; + Elf32_Half si_flags; +} Elf32_Syminfo; + +typedef struct { + Elf64_Half si_boundto; + Elf64_Half si_flags; +} Elf64_Syminfo; + +#define SYMINFO_BT_SELF 0xffff +#define SYMINFO_BT_PARENT 0xfffe +#define SYMINFO_BT_LOWRESERVE 0xff00 + +#define SYMINFO_FLG_DIRECT 0x0001 +#define SYMINFO_FLG_PASSTHRU 0x0002 +#define SYMINFO_FLG_COPY 0x0004 +#define SYMINFO_FLG_LAZYLOAD 0x0008 + +#define SYMINFO_NONE 0 +#define SYMINFO_CURRENT 1 +#define SYMINFO_NUM 2 + +#define ELF32_ST_BIND(val) (((unsigned char) (val)) >> 4) +#define ELF32_ST_TYPE(val) ((val) & 0xf) +#define ELF32_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf)) + +#define ELF64_ST_BIND(val) ELF32_ST_BIND (val) +#define ELF64_ST_TYPE(val) ELF32_ST_TYPE (val) +#define ELF64_ST_INFO(bind, type) ELF32_ST_INFO ((bind), (type)) + +#define STB_LOCAL 0 +#define STB_GLOBAL 1 +#define STB_WEAK 2 +#define STB_NUM 3 +#define STB_LOOS 10 +#define STB_GNU_UNIQUE 10 +#define STB_HIOS 12 +#define STB_LOPROC 13 +#define STB_HIPROC 15 + +#define STT_NOTYPE 0 +#define STT_OBJECT 1 +#define STT_FUNC 2 +#define STT_SECTION 3 +#define STT_FILE 4 +#define STT_COMMON 5 +#define STT_TLS 6 +#define STT_NUM 7 +#define STT_LOOS 10 +#define STT_GNU_IFUNC 10 +#define STT_HIOS 12 +#define STT_LOPROC 13 +#define STT_HIPROC 15 + +#define STN_UNDEF 0 + +#define ELF32_ST_VISIBILITY(o) ((o) & 0x03) +#define ELF64_ST_VISIBILITY(o) ELF32_ST_VISIBILITY (o) + +#define STV_DEFAULT 0 +#define STV_INTERNAL 1 +#define STV_HIDDEN 2 +#define STV_PROTECTED 3 + + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; +} Elf32_Rel; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; +} Elf64_Rel; + + + +typedef struct { + Elf32_Addr r_offset; + Elf32_Word r_info; + Elf32_Sword r_addend; +} Elf32_Rela; + +typedef struct { + Elf64_Addr r_offset; + Elf64_Xword r_info; + Elf64_Sxword r_addend; +} Elf64_Rela; + + + +#define ELF32_R_SYM(val) ((val) >> 8) +#define ELF32_R_TYPE(val) ((val) & 0xff) +#define ELF32_R_INFO(sym, type) (((sym) << 8) + ((type) & 0xff)) + +#define ELF64_R_SYM(i) ((i) >> 32) +#define ELF64_R_TYPE(i) ((i) & 0xffffffff) +#define ELF64_R_INFO(sym,type) ((((Elf64_Xword) (sym)) << 32) + (type)) + + + +typedef struct { + Elf32_Word p_type; + Elf32_Off p_offset; + Elf32_Addr p_vaddr; + Elf32_Addr p_paddr; + Elf32_Word p_filesz; + Elf32_Word p_memsz; + Elf32_Word p_flags; + Elf32_Word p_align; +} Elf32_Phdr; + +typedef struct { + Elf64_Word p_type; + Elf64_Word p_flags; + Elf64_Off p_offset; + Elf64_Addr p_vaddr; + Elf64_Addr p_paddr; + Elf64_Xword p_filesz; + Elf64_Xword p_memsz; + Elf64_Xword p_align; +} Elf64_Phdr; + + + +#define PT_NULL 0 +#define PT_LOAD 1 +#define PT_DYNAMIC 2 +#define PT_INTERP 3 +#define PT_NOTE 4 +#define PT_SHLIB 5 +#define PT_PHDR 6 +#define PT_TLS 7 +#define PT_NUM 8 +#define PT_LOOS 0x60000000 +#define PT_GNU_EH_FRAME 0x6474e550 +#define PT_GNU_STACK 0x6474e551 +#define PT_GNU_RELRO 0x6474e552 +#define PT_LOSUNW 0x6ffffffa +#define PT_SUNWBSS 0x6ffffffa +#define PT_SUNWSTACK 0x6ffffffb +#define PT_HISUNW 0x6fffffff +#define PT_HIOS 0x6fffffff +#define PT_LOPROC 0x70000000 +#define PT_HIPROC 0x7fffffff + + +#define PN_XNUM 0xffff + + +#define PF_X (1 << 0) +#define PF_W (1 << 1) +#define PF_R (1 << 2) +#define PF_MASKOS 0x0ff00000 +#define PF_MASKPROC 0xf0000000 + + + +#define NT_PRSTATUS 1 +#define NT_FPREGSET 2 +#define NT_PRPSINFO 3 +#define NT_PRXREG 4 +#define NT_TASKSTRUCT 4 +#define NT_PLATFORM 5 +#define NT_AUXV 6 +#define NT_GWINDOWS 7 +#define NT_ASRS 8 +#define NT_PSTATUS 10 +#define NT_PSINFO 13 +#define NT_PRCRED 14 +#define NT_UTSNAME 15 +#define NT_LWPSTATUS 16 +#define NT_LWPSINFO 17 +#define NT_PRFPXREG 20 +#define NT_SIGINFO 0x53494749 +#define NT_FILE 0x46494c45 +#define NT_PRXFPREG 0x46e62b7f +#define NT_PPC_VMX 0x100 +#define NT_PPC_SPE 0x101 +#define NT_PPC_VSX 0x102 +#define NT_386_TLS 0x200 +#define NT_386_IOPERM 0x201 +#define NT_X86_XSTATE 0x202 +#define NT_S390_HIGH_GPRS 0x300 +#define NT_S390_TIMER 0x301 +#define NT_S390_TODCMP 0x302 +#define NT_S390_TODPREG 0x303 +#define NT_S390_CTRS 0x304 +#define NT_S390_PREFIX 0x305 +#define NT_S390_LAST_BREAK 0x306 +#define NT_S390_SYSTEM_CALL 0x307 +#define NT_S390_TDB 0x308 +#define NT_ARM_VFP 0x400 +#define NT_ARM_TLS 0x401 +#define NT_ARM_HW_BREAK 0x402 +#define NT_ARM_HW_WATCH 0x403 +#define NT_ARM_SYSTEM_CALL 0x404 +#define NT_ARM_SVE 0x405 +#define NT_METAG_CBUF 0x500 +#define NT_METAG_RPIPE 0x501 +#define NT_METAG_TLS 0x502 +#define NT_VERSION 1 + + + + +typedef struct { + Elf32_Sword d_tag; + union { + Elf32_Word d_val; + Elf32_Addr d_ptr; + } d_un; +} Elf32_Dyn; + +typedef struct { + Elf64_Sxword d_tag; + union { + Elf64_Xword d_val; + Elf64_Addr d_ptr; + } d_un; +} Elf64_Dyn; + + + +#define DT_NULL 0 +#define DT_NEEDED 1 +#define DT_PLTRELSZ 2 +#define DT_PLTGOT 3 +#define DT_HASH 4 +#define DT_STRTAB 5 +#define DT_SYMTAB 6 +#define DT_RELA 7 +#define DT_RELASZ 8 +#define DT_RELAENT 9 +#define DT_STRSZ 10 +#define DT_SYMENT 11 +#define DT_INIT 12 +#define DT_FINI 13 +#define DT_SONAME 14 +#define DT_RPATH 15 +#define DT_SYMBOLIC 16 +#define DT_REL 17 +#define DT_RELSZ 18 +#define DT_RELENT 19 +#define DT_PLTREL 20 +#define DT_DEBUG 21 +#define DT_TEXTREL 22 +#define DT_JMPREL 23 +#define DT_BIND_NOW 24 +#define DT_INIT_ARRAY 25 +#define DT_FINI_ARRAY 26 +#define DT_INIT_ARRAYSZ 27 +#define DT_FINI_ARRAYSZ 28 +#define DT_RUNPATH 29 +#define DT_FLAGS 30 +#define DT_ENCODING 32 +#define DT_PREINIT_ARRAY 32 +#define DT_PREINIT_ARRAYSZ 33 +#define DT_NUM 34 +#define DT_LOOS 0x6000000d +#define DT_HIOS 0x6ffff000 +#define DT_LOPROC 0x70000000 +#define DT_HIPROC 0x7fffffff +#define DT_PROCNUM DT_MIPS_NUM + +#define DT_VALRNGLO 0x6ffffd00 +#define DT_GNU_PRELINKED 0x6ffffdf5 +#define DT_GNU_CONFLICTSZ 0x6ffffdf6 +#define DT_GNU_LIBLISTSZ 0x6ffffdf7 +#define DT_CHECKSUM 0x6ffffdf8 +#define DT_PLTPADSZ 0x6ffffdf9 +#define DT_MOVEENT 0x6ffffdfa +#define DT_MOVESZ 0x6ffffdfb +#define DT_FEATURE_1 0x6ffffdfc +#define DT_POSFLAG_1 0x6ffffdfd + +#define DT_SYMINSZ 0x6ffffdfe +#define DT_SYMINENT 0x6ffffdff +#define DT_VALRNGHI 0x6ffffdff +#define DT_VALTAGIDX(tag) (DT_VALRNGHI - (tag)) +#define DT_VALNUM 12 + +#define DT_ADDRRNGLO 0x6ffffe00 +#define DT_GNU_HASH 0x6ffffef5 +#define DT_TLSDESC_PLT 0x6ffffef6 +#define DT_TLSDESC_GOT 0x6ffffef7 +#define DT_GNU_CONFLICT 0x6ffffef8 +#define DT_GNU_LIBLIST 0x6ffffef9 +#define DT_CONFIG 0x6ffffefa +#define DT_DEPAUDIT 0x6ffffefb +#define DT_AUDIT 0x6ffffefc +#define DT_PLTPAD 0x6ffffefd +#define DT_MOVETAB 0x6ffffefe +#define DT_SYMINFO 0x6ffffeff +#define DT_ADDRRNGHI 0x6ffffeff +#define DT_ADDRTAGIDX(tag) (DT_ADDRRNGHI - (tag)) +#define DT_ADDRNUM 11 + + + +#define DT_VERSYM 0x6ffffff0 + +#define DT_RELACOUNT 0x6ffffff9 +#define DT_RELCOUNT 0x6ffffffa + + +#define DT_FLAGS_1 0x6ffffffb +#define DT_VERDEF 0x6ffffffc + +#define DT_VERDEFNUM 0x6ffffffd +#define DT_VERNEED 0x6ffffffe + +#define DT_VERNEEDNUM 0x6fffffff +#define DT_VERSIONTAGIDX(tag) (DT_VERNEEDNUM - (tag)) +#define DT_VERSIONTAGNUM 16 + + + +#define DT_AUXILIARY 0x7ffffffd +#define DT_FILTER 0x7fffffff +#define DT_EXTRATAGIDX(tag) ((Elf32_Word)-((Elf32_Sword) (tag) <<1>>1)-1) +#define DT_EXTRANUM 3 + + +#define DF_ORIGIN 0x00000001 +#define DF_SYMBOLIC 0x00000002 +#define DF_TEXTREL 0x00000004 +#define DF_BIND_NOW 0x00000008 +#define DF_STATIC_TLS 0x00000010 + + + +#define DF_1_NOW 0x00000001 +#define DF_1_GLOBAL 0x00000002 +#define DF_1_GROUP 0x00000004 +#define DF_1_NODELETE 0x00000008 +#define DF_1_LOADFLTR 0x00000010 +#define DF_1_INITFIRST 0x00000020 +#define DF_1_NOOPEN 0x00000040 +#define DF_1_ORIGIN 0x00000080 +#define DF_1_DIRECT 0x00000100 +#define DF_1_TRANS 0x00000200 +#define DF_1_INTERPOSE 0x00000400 +#define DF_1_NODEFLIB 0x00000800 +#define DF_1_NODUMP 0x00001000 +#define DF_1_CONFALT 0x00002000 +#define DF_1_ENDFILTEE 0x00004000 +#define DF_1_DISPRELDNE 0x00008000 +#define DF_1_DISPRELPND 0x00010000 +#define DF_1_NODIRECT 0x00020000 +#define DF_1_IGNMULDEF 0x00040000 +#define DF_1_NOKSYMS 0x00080000 +#define DF_1_NOHDR 0x00100000 +#define DF_1_EDITED 0x00200000 +#define DF_1_NORELOC 0x00400000 +#define DF_1_SYMINTPOSE 0x00800000 +#define DF_1_GLOBAUDIT 0x01000000 +#define DF_1_SINGLETON 0x02000000 + +#define DTF_1_PARINIT 0x00000001 +#define DTF_1_CONFEXP 0x00000002 + + +#define DF_P1_LAZYLOAD 0x00000001 +#define DF_P1_GROUPPERM 0x00000002 + + + + +typedef struct { + Elf32_Half vd_version; + Elf32_Half vd_flags; + Elf32_Half vd_ndx; + Elf32_Half vd_cnt; + Elf32_Word vd_hash; + Elf32_Word vd_aux; + Elf32_Word vd_next; +} Elf32_Verdef; + +typedef struct { + Elf64_Half vd_version; + Elf64_Half vd_flags; + Elf64_Half vd_ndx; + Elf64_Half vd_cnt; + Elf64_Word vd_hash; + Elf64_Word vd_aux; + Elf64_Word vd_next; +} Elf64_Verdef; + + + +#define VER_DEF_NONE 0 +#define VER_DEF_CURRENT 1 +#define VER_DEF_NUM 2 + + +#define VER_FLG_BASE 0x1 +#define VER_FLG_WEAK 0x2 + + +#define VER_NDX_LOCAL 0 +#define VER_NDX_GLOBAL 1 +#define VER_NDX_LORESERVE 0xff00 +#define VER_NDX_ELIMINATE 0xff01 + + + +typedef struct { + Elf32_Word vda_name; + Elf32_Word vda_next; +} Elf32_Verdaux; + +typedef struct { + Elf64_Word vda_name; + Elf64_Word vda_next; +} Elf64_Verdaux; + + + + +typedef struct { + Elf32_Half vn_version; + Elf32_Half vn_cnt; + Elf32_Word vn_file; + Elf32_Word vn_aux; + Elf32_Word vn_next; +} Elf32_Verneed; + +typedef struct { + Elf64_Half vn_version; + Elf64_Half vn_cnt; + Elf64_Word vn_file; + Elf64_Word vn_aux; + Elf64_Word vn_next; +} Elf64_Verneed; + + + +#define VER_NEED_NONE 0 +#define VER_NEED_CURRENT 1 +#define VER_NEED_NUM 2 + + + +typedef struct { + Elf32_Word vna_hash; + Elf32_Half vna_flags; + Elf32_Half vna_other; + Elf32_Word vna_name; + Elf32_Word vna_next; +} Elf32_Vernaux; + +typedef struct { + Elf64_Word vna_hash; + Elf64_Half vna_flags; + Elf64_Half vna_other; + Elf64_Word vna_name; + Elf64_Word vna_next; +} Elf64_Vernaux; + + + +#define VER_FLG_WEAK 0x2 + + + +typedef struct { + uint32_t a_type; + union { + uint32_t a_val; + } a_un; +} Elf32_auxv_t; + +typedef struct { + uint64_t a_type; + union { + uint64_t a_val; + } a_un; +} Elf64_auxv_t; + + + +#define AT_NULL 0 +#define AT_IGNORE 1 +#define AT_EXECFD 2 +#define AT_PHDR 3 +#define AT_PHENT 4 +#define AT_PHNUM 5 +#define AT_PAGESZ 6 +#define AT_BASE 7 +#define AT_FLAGS 8 +#define AT_ENTRY 9 +#define AT_NOTELF 10 +#define AT_UID 11 +#define AT_EUID 12 +#define AT_GID 13 +#define AT_EGID 14 +#define AT_CLKTCK 17 + + +#define AT_PLATFORM 15 +#define AT_HWCAP 16 + + + + +#define AT_FPUCW 18 + + +#define AT_DCACHEBSIZE 19 +#define AT_ICACHEBSIZE 20 +#define AT_UCACHEBSIZE 21 + + + +#define AT_IGNOREPPC 22 + +#define AT_SECURE 23 + +#define AT_BASE_PLATFORM 24 + +#define AT_RANDOM 25 + +#define AT_HWCAP2 26 + +#define AT_EXECFN 31 + + + +#define AT_SYSINFO 32 +#define AT_SYSINFO_EHDR 33 + + + +#define AT_L1I_CACHESHAPE 34 +#define AT_L1D_CACHESHAPE 35 +#define AT_L2_CACHESHAPE 36 +#define AT_L3_CACHESHAPE 37 + + + + +typedef struct { + Elf32_Word n_namesz; + Elf32_Word n_descsz; + Elf32_Word n_type; +} Elf32_Nhdr; + +typedef struct { + Elf64_Word n_namesz; + Elf64_Word n_descsz; + Elf64_Word n_type; +} Elf64_Nhdr; + + + + +#define ELF_NOTE_SOLARIS "SUNW Solaris" + + +#define ELF_NOTE_GNU "GNU" + + + + + +#define ELF_NOTE_PAGESIZE_HINT 1 + + +#define NT_GNU_ABI_TAG 1 +#define ELF_NOTE_ABI NT_GNU_ABI_TAG + + + +#define ELF_NOTE_OS_LINUX 0 +#define ELF_NOTE_OS_GNU 1 +#define ELF_NOTE_OS_SOLARIS2 2 +#define ELF_NOTE_OS_FREEBSD 3 + +#define NT_GNU_BUILD_ID 3 +#define NT_GNU_GOLD_VERSION 4 + + + +typedef struct { + Elf32_Xword m_value; + Elf32_Word m_info; + Elf32_Word m_poffset; + Elf32_Half m_repeat; + Elf32_Half m_stride; +} Elf32_Move; + +typedef struct { + Elf64_Xword m_value; + Elf64_Xword m_info; + Elf64_Xword m_poffset; + Elf64_Half m_repeat; + Elf64_Half m_stride; +} Elf64_Move; + + +#define ELF32_M_SYM(info) ((info) >> 8) +#define ELF32_M_SIZE(info) ((unsigned char) (info)) +#define ELF32_M_INFO(sym, size) (((sym) << 8) + (unsigned char) (size)) + +#define ELF64_M_SYM(info) ELF32_M_SYM (info) +#define ELF64_M_SIZE(info) ELF32_M_SIZE (info) +#define ELF64_M_INFO(sym, size) ELF32_M_INFO (sym, size) + +#define EF_CPU32 0x00810000 + +#define R_68K_NONE 0 +#define R_68K_32 1 +#define R_68K_16 2 +#define R_68K_8 3 +#define R_68K_PC32 4 +#define R_68K_PC16 5 +#define R_68K_PC8 6 +#define R_68K_GOT32 7 +#define R_68K_GOT16 8 +#define R_68K_GOT8 9 +#define R_68K_GOT32O 10 +#define R_68K_GOT16O 11 +#define R_68K_GOT8O 12 +#define R_68K_PLT32 13 +#define R_68K_PLT16 14 +#define R_68K_PLT8 15 +#define R_68K_PLT32O 16 +#define R_68K_PLT16O 17 +#define R_68K_PLT8O 18 +#define R_68K_COPY 19 +#define R_68K_GLOB_DAT 20 +#define R_68K_JMP_SLOT 21 +#define R_68K_RELATIVE 22 +#define R_68K_NUM 23 + +#define R_386_NONE 0 +#define R_386_32 1 +#define R_386_PC32 2 +#define R_386_GOT32 3 +#define R_386_PLT32 4 +#define R_386_COPY 5 +#define R_386_GLOB_DAT 6 +#define R_386_JMP_SLOT 7 +#define R_386_RELATIVE 8 +#define R_386_GOTOFF 9 +#define R_386_GOTPC 10 +#define R_386_32PLT 11 +#define R_386_TLS_TPOFF 14 +#define R_386_TLS_IE 15 +#define R_386_TLS_GOTIE 16 +#define R_386_TLS_LE 17 +#define R_386_TLS_GD 18 +#define R_386_TLS_LDM 19 +#define R_386_16 20 +#define R_386_PC16 21 +#define R_386_8 22 +#define R_386_PC8 23 +#define R_386_TLS_GD_32 24 +#define R_386_TLS_GD_PUSH 25 +#define R_386_TLS_GD_CALL 26 +#define R_386_TLS_GD_POP 27 +#define R_386_TLS_LDM_32 28 +#define R_386_TLS_LDM_PUSH 29 +#define R_386_TLS_LDM_CALL 30 +#define R_386_TLS_LDM_POP 31 +#define R_386_TLS_LDO_32 32 +#define R_386_TLS_IE_32 33 +#define R_386_TLS_LE_32 34 +#define R_386_TLS_DTPMOD32 35 +#define R_386_TLS_DTPOFF32 36 +#define R_386_TLS_TPOFF32 37 +#define R_386_SIZE32 38 +#define R_386_TLS_GOTDESC 39 +#define R_386_TLS_DESC_CALL 40 +#define R_386_TLS_DESC 41 +#define R_386_IRELATIVE 42 +#define R_386_GOT32X 43 +#define R_386_NUM 44 + + + + + +#define STT_SPARC_REGISTER 13 + + + +#define EF_SPARCV9_MM 3 +#define EF_SPARCV9_TSO 0 +#define EF_SPARCV9_PSO 1 +#define EF_SPARCV9_RMO 2 +#define EF_SPARC_LEDATA 0x800000 +#define EF_SPARC_EXT_MASK 0xFFFF00 +#define EF_SPARC_32PLUS 0x000100 +#define EF_SPARC_SUN_US1 0x000200 +#define EF_SPARC_HAL_R1 0x000400 +#define EF_SPARC_SUN_US3 0x000800 + + + +#define R_SPARC_NONE 0 +#define R_SPARC_8 1 +#define R_SPARC_16 2 +#define R_SPARC_32 3 +#define R_SPARC_DISP8 4 +#define R_SPARC_DISP16 5 +#define R_SPARC_DISP32 6 +#define R_SPARC_WDISP30 7 +#define R_SPARC_WDISP22 8 +#define R_SPARC_HI22 9 +#define R_SPARC_22 10 +#define R_SPARC_13 11 +#define R_SPARC_LO10 12 +#define R_SPARC_GOT10 13 +#define R_SPARC_GOT13 14 +#define R_SPARC_GOT22 15 +#define R_SPARC_PC10 16 +#define R_SPARC_PC22 17 +#define R_SPARC_WPLT30 18 +#define R_SPARC_COPY 19 +#define R_SPARC_GLOB_DAT 20 +#define R_SPARC_JMP_SLOT 21 +#define R_SPARC_RELATIVE 22 +#define R_SPARC_UA32 23 + + + +#define R_SPARC_PLT32 24 +#define R_SPARC_HIPLT22 25 +#define R_SPARC_LOPLT10 26 +#define R_SPARC_PCPLT32 27 +#define R_SPARC_PCPLT22 28 +#define R_SPARC_PCPLT10 29 +#define R_SPARC_10 30 +#define R_SPARC_11 31 +#define R_SPARC_64 32 +#define R_SPARC_OLO10 33 +#define R_SPARC_HH22 34 +#define R_SPARC_HM10 35 +#define R_SPARC_LM22 36 +#define R_SPARC_PC_HH22 37 +#define R_SPARC_PC_HM10 38 +#define R_SPARC_PC_LM22 39 +#define R_SPARC_WDISP16 40 +#define R_SPARC_WDISP19 41 +#define R_SPARC_GLOB_JMP 42 +#define R_SPARC_7 43 +#define R_SPARC_5 44 +#define R_SPARC_6 45 +#define R_SPARC_DISP64 46 +#define R_SPARC_PLT64 47 +#define R_SPARC_HIX22 48 +#define R_SPARC_LOX10 49 +#define R_SPARC_H44 50 +#define R_SPARC_M44 51 +#define R_SPARC_L44 52 +#define R_SPARC_REGISTER 53 +#define R_SPARC_UA64 54 +#define R_SPARC_UA16 55 +#define R_SPARC_TLS_GD_HI22 56 +#define R_SPARC_TLS_GD_LO10 57 +#define R_SPARC_TLS_GD_ADD 58 +#define R_SPARC_TLS_GD_CALL 59 +#define R_SPARC_TLS_LDM_HI22 60 +#define R_SPARC_TLS_LDM_LO10 61 +#define R_SPARC_TLS_LDM_ADD 62 +#define R_SPARC_TLS_LDM_CALL 63 +#define R_SPARC_TLS_LDO_HIX22 64 +#define R_SPARC_TLS_LDO_LOX10 65 +#define R_SPARC_TLS_LDO_ADD 66 +#define R_SPARC_TLS_IE_HI22 67 +#define R_SPARC_TLS_IE_LO10 68 +#define R_SPARC_TLS_IE_LD 69 +#define R_SPARC_TLS_IE_LDX 70 +#define R_SPARC_TLS_IE_ADD 71 +#define R_SPARC_TLS_LE_HIX22 72 +#define R_SPARC_TLS_LE_LOX10 73 +#define R_SPARC_TLS_DTPMOD32 74 +#define R_SPARC_TLS_DTPMOD64 75 +#define R_SPARC_TLS_DTPOFF32 76 +#define R_SPARC_TLS_DTPOFF64 77 +#define R_SPARC_TLS_TPOFF32 78 +#define R_SPARC_TLS_TPOFF64 79 +#define R_SPARC_GOTDATA_HIX22 80 +#define R_SPARC_GOTDATA_LOX10 81 +#define R_SPARC_GOTDATA_OP_HIX22 82 +#define R_SPARC_GOTDATA_OP_LOX10 83 +#define R_SPARC_GOTDATA_OP 84 +#define R_SPARC_H34 85 +#define R_SPARC_SIZE32 86 +#define R_SPARC_SIZE64 87 +#define R_SPARC_GNU_VTINHERIT 250 +#define R_SPARC_GNU_VTENTRY 251 +#define R_SPARC_REV32 252 + +#define R_SPARC_NUM 253 + + + +#define DT_SPARC_REGISTER 0x70000001 +#define DT_SPARC_NUM 2 + + +#define EF_MIPS_NOREORDER 1 +#define EF_MIPS_PIC 2 +#define EF_MIPS_CPIC 4 +#define EF_MIPS_XGOT 8 +#define EF_MIPS_64BIT_WHIRL 16 +#define EF_MIPS_ABI2 32 +#define EF_MIPS_ABI_ON32 64 +#define EF_MIPS_FP64 512 +#define EF_MIPS_NAN2008 1024 +#define EF_MIPS_ARCH 0xf0000000 + + + +#define EF_MIPS_ARCH_1 0x00000000 +#define EF_MIPS_ARCH_2 0x10000000 +#define EF_MIPS_ARCH_3 0x20000000 +#define EF_MIPS_ARCH_4 0x30000000 +#define EF_MIPS_ARCH_5 0x40000000 +#define EF_MIPS_ARCH_32 0x50000000 +#define EF_MIPS_ARCH_64 0x60000000 +#define EF_MIPS_ARCH_32R2 0x70000000 +#define EF_MIPS_ARCH_64R2 0x80000000 + + +#define E_MIPS_ARCH_1 0x00000000 +#define E_MIPS_ARCH_2 0x10000000 +#define E_MIPS_ARCH_3 0x20000000 +#define E_MIPS_ARCH_4 0x30000000 +#define E_MIPS_ARCH_5 0x40000000 +#define E_MIPS_ARCH_32 0x50000000 +#define E_MIPS_ARCH_64 0x60000000 + + + +#define SHN_MIPS_ACOMMON 0xff00 +#define SHN_MIPS_TEXT 0xff01 +#define SHN_MIPS_DATA 0xff02 +#define SHN_MIPS_SCOMMON 0xff03 +#define SHN_MIPS_SUNDEFINED 0xff04 + + + +#define SHT_MIPS_LIBLIST 0x70000000 +#define SHT_MIPS_MSYM 0x70000001 +#define SHT_MIPS_CONFLICT 0x70000002 +#define SHT_MIPS_GPTAB 0x70000003 +#define SHT_MIPS_UCODE 0x70000004 +#define SHT_MIPS_DEBUG 0x70000005 +#define SHT_MIPS_REGINFO 0x70000006 +#define SHT_MIPS_PACKAGE 0x70000007 +#define SHT_MIPS_PACKSYM 0x70000008 +#define SHT_MIPS_RELD 0x70000009 +#define SHT_MIPS_IFACE 0x7000000b +#define SHT_MIPS_CONTENT 0x7000000c +#define SHT_MIPS_OPTIONS 0x7000000d +#define SHT_MIPS_SHDR 0x70000010 +#define SHT_MIPS_FDESC 0x70000011 +#define SHT_MIPS_EXTSYM 0x70000012 +#define SHT_MIPS_DENSE 0x70000013 +#define SHT_MIPS_PDESC 0x70000014 +#define SHT_MIPS_LOCSYM 0x70000015 +#define SHT_MIPS_AUXSYM 0x70000016 +#define SHT_MIPS_OPTSYM 0x70000017 +#define SHT_MIPS_LOCSTR 0x70000018 +#define SHT_MIPS_LINE 0x70000019 +#define SHT_MIPS_RFDESC 0x7000001a +#define SHT_MIPS_DELTASYM 0x7000001b +#define SHT_MIPS_DELTAINST 0x7000001c +#define SHT_MIPS_DELTACLASS 0x7000001d +#define SHT_MIPS_DWARF 0x7000001e +#define SHT_MIPS_DELTADECL 0x7000001f +#define SHT_MIPS_SYMBOL_LIB 0x70000020 +#define SHT_MIPS_EVENTS 0x70000021 +#define SHT_MIPS_TRANSLATE 0x70000022 +#define SHT_MIPS_PIXIE 0x70000023 +#define SHT_MIPS_XLATE 0x70000024 +#define SHT_MIPS_XLATE_DEBUG 0x70000025 +#define SHT_MIPS_WHIRL 0x70000026 +#define SHT_MIPS_EH_REGION 0x70000027 +#define SHT_MIPS_XLATE_OLD 0x70000028 +#define SHT_MIPS_PDR_EXCEPTION 0x70000029 + + + +#define SHF_MIPS_GPREL 0x10000000 +#define SHF_MIPS_MERGE 0x20000000 +#define SHF_MIPS_ADDR 0x40000000 +#define SHF_MIPS_STRINGS 0x80000000 +#define SHF_MIPS_NOSTRIP 0x08000000 +#define SHF_MIPS_LOCAL 0x04000000 +#define SHF_MIPS_NAMES 0x02000000 +#define SHF_MIPS_NODUPE 0x01000000 + + + + + +#define STO_MIPS_DEFAULT 0x0 +#define STO_MIPS_INTERNAL 0x1 +#define STO_MIPS_HIDDEN 0x2 +#define STO_MIPS_PROTECTED 0x3 +#define STO_MIPS_PLT 0x8 +#define STO_MIPS_SC_ALIGN_UNUSED 0xff + + +#define STB_MIPS_SPLIT_COMMON 13 + + + +typedef union { + struct { + Elf32_Word gt_current_g_value; + Elf32_Word gt_unused; + } gt_header; + struct { + Elf32_Word gt_g_value; + Elf32_Word gt_bytes; + } gt_entry; +} Elf32_gptab; + + + +typedef struct { + Elf32_Word ri_gprmask; + Elf32_Word ri_cprmask[4]; + Elf32_Sword ri_gp_value; +} Elf32_RegInfo; + + + +typedef struct { + unsigned char kind; + + unsigned char size; + Elf32_Section section; + + Elf32_Word info; +} Elf_Options; + + + +#define ODK_NULL 0 +#define ODK_REGINFO 1 +#define ODK_EXCEPTIONS 2 +#define ODK_PAD 3 +#define ODK_HWPATCH 4 +#define ODK_FILL 5 +#define ODK_TAGS 6 +#define ODK_HWAND 7 +#define ODK_HWOR 8 + + + +#define OEX_FPU_MIN 0x1f +#define OEX_FPU_MAX 0x1f00 +#define OEX_PAGE0 0x10000 +#define OEX_SMM 0x20000 +#define OEX_FPDBUG 0x40000 +#define OEX_PRECISEFP OEX_FPDBUG +#define OEX_DISMISS 0x80000 + +#define OEX_FPU_INVAL 0x10 +#define OEX_FPU_DIV0 0x08 +#define OEX_FPU_OFLO 0x04 +#define OEX_FPU_UFLO 0x02 +#define OEX_FPU_INEX 0x01 + + + +#define OHW_R4KEOP 0x1 +#define OHW_R8KPFETCH 0x2 +#define OHW_R5KEOP 0x4 +#define OHW_R5KCVTL 0x8 + +#define OPAD_PREFIX 0x1 +#define OPAD_POSTFIX 0x2 +#define OPAD_SYMBOL 0x4 + + + +typedef struct { + Elf32_Word hwp_flags1; + Elf32_Word hwp_flags2; +} Elf_Options_Hw; + + + +#define OHWA0_R4KEOP_CHECKED 0x00000001 +#define OHWA1_R4KEOP_CLEAN 0x00000002 + + + +#define R_MIPS_NONE 0 +#define R_MIPS_16 1 +#define R_MIPS_32 2 +#define R_MIPS_REL32 3 +#define R_MIPS_26 4 +#define R_MIPS_HI16 5 +#define R_MIPS_LO16 6 +#define R_MIPS_GPREL16 7 +#define R_MIPS_LITERAL 8 +#define R_MIPS_GOT16 9 +#define R_MIPS_PC16 10 +#define R_MIPS_CALL16 11 +#define R_MIPS_GPREL32 12 + +#define R_MIPS_SHIFT5 16 +#define R_MIPS_SHIFT6 17 +#define R_MIPS_64 18 +#define R_MIPS_GOT_DISP 19 +#define R_MIPS_GOT_PAGE 20 +#define R_MIPS_GOT_OFST 21 +#define R_MIPS_GOT_HI16 22 +#define R_MIPS_GOT_LO16 23 +#define R_MIPS_SUB 24 +#define R_MIPS_INSERT_A 25 +#define R_MIPS_INSERT_B 26 +#define R_MIPS_DELETE 27 +#define R_MIPS_HIGHER 28 +#define R_MIPS_HIGHEST 29 +#define R_MIPS_CALL_HI16 30 +#define R_MIPS_CALL_LO16 31 +#define R_MIPS_SCN_DISP 32 +#define R_MIPS_REL16 33 +#define R_MIPS_ADD_IMMEDIATE 34 +#define R_MIPS_PJUMP 35 +#define R_MIPS_RELGOT 36 +#define R_MIPS_JALR 37 +#define R_MIPS_TLS_DTPMOD32 38 +#define R_MIPS_TLS_DTPREL32 39 +#define R_MIPS_TLS_DTPMOD64 40 +#define R_MIPS_TLS_DTPREL64 41 +#define R_MIPS_TLS_GD 42 +#define R_MIPS_TLS_LDM 43 +#define R_MIPS_TLS_DTPREL_HI16 44 +#define R_MIPS_TLS_DTPREL_LO16 45 +#define R_MIPS_TLS_GOTTPREL 46 +#define R_MIPS_TLS_TPREL32 47 +#define R_MIPS_TLS_TPREL64 48 +#define R_MIPS_TLS_TPREL_HI16 49 +#define R_MIPS_TLS_TPREL_LO16 50 +#define R_MIPS_GLOB_DAT 51 +#define R_MIPS_COPY 126 +#define R_MIPS_JUMP_SLOT 127 + +#define R_MIPS_NUM 128 + + + +#define PT_MIPS_REGINFO 0x70000000 +#define PT_MIPS_RTPROC 0x70000001 +#define PT_MIPS_OPTIONS 0x70000002 +#define PT_MIPS_ABIFLAGS 0x70000003 + + + +#define PF_MIPS_LOCAL 0x10000000 + + + +#define DT_MIPS_RLD_VERSION 0x70000001 +#define DT_MIPS_TIME_STAMP 0x70000002 +#define DT_MIPS_ICHECKSUM 0x70000003 +#define DT_MIPS_IVERSION 0x70000004 +#define DT_MIPS_FLAGS 0x70000005 +#define DT_MIPS_BASE_ADDRESS 0x70000006 +#define DT_MIPS_MSYM 0x70000007 +#define DT_MIPS_CONFLICT 0x70000008 +#define DT_MIPS_LIBLIST 0x70000009 +#define DT_MIPS_LOCAL_GOTNO 0x7000000a +#define DT_MIPS_CONFLICTNO 0x7000000b +#define DT_MIPS_LIBLISTNO 0x70000010 +#define DT_MIPS_SYMTABNO 0x70000011 +#define DT_MIPS_UNREFEXTNO 0x70000012 +#define DT_MIPS_GOTSYM 0x70000013 +#define DT_MIPS_HIPAGENO 0x70000014 +#define DT_MIPS_RLD_MAP 0x70000016 +#define DT_MIPS_DELTA_CLASS 0x70000017 +#define DT_MIPS_DELTA_CLASS_NO 0x70000018 + +#define DT_MIPS_DELTA_INSTANCE 0x70000019 +#define DT_MIPS_DELTA_INSTANCE_NO 0x7000001a + +#define DT_MIPS_DELTA_RELOC 0x7000001b +#define DT_MIPS_DELTA_RELOC_NO 0x7000001c + +#define DT_MIPS_DELTA_SYM 0x7000001d + +#define DT_MIPS_DELTA_SYM_NO 0x7000001e + +#define DT_MIPS_DELTA_CLASSSYM 0x70000020 + +#define DT_MIPS_DELTA_CLASSSYM_NO 0x70000021 + +#define DT_MIPS_CXX_FLAGS 0x70000022 +#define DT_MIPS_PIXIE_INIT 0x70000023 +#define DT_MIPS_SYMBOL_LIB 0x70000024 +#define DT_MIPS_LOCALPAGE_GOTIDX 0x70000025 +#define DT_MIPS_LOCAL_GOTIDX 0x70000026 +#define DT_MIPS_HIDDEN_GOTIDX 0x70000027 +#define DT_MIPS_PROTECTED_GOTIDX 0x70000028 +#define DT_MIPS_OPTIONS 0x70000029 +#define DT_MIPS_INTERFACE 0x7000002a +#define DT_MIPS_DYNSTR_ALIGN 0x7000002b +#define DT_MIPS_INTERFACE_SIZE 0x7000002c +#define DT_MIPS_RLD_TEXT_RESOLVE_ADDR 0x7000002d + +#define DT_MIPS_PERF_SUFFIX 0x7000002e + +#define DT_MIPS_COMPACT_SIZE 0x7000002f +#define DT_MIPS_GP_VALUE 0x70000030 +#define DT_MIPS_AUX_DYNAMIC 0x70000031 + +#define DT_MIPS_PLTGOT 0x70000032 + +#define DT_MIPS_RWPLT 0x70000034 +#define DT_MIPS_RLD_MAP_REL 0x70000035 +#define DT_MIPS_NUM 0x36 + + + +#define RHF_NONE 0 +#define RHF_QUICKSTART (1 << 0) +#define RHF_NOTPOT (1 << 1) +#define RHF_NO_LIBRARY_REPLACEMENT (1 << 2) +#define RHF_NO_MOVE (1 << 3) +#define RHF_SGI_ONLY (1 << 4) +#define RHF_GUARANTEE_INIT (1 << 5) +#define RHF_DELTA_C_PLUS_PLUS (1 << 6) +#define RHF_GUARANTEE_START_INIT (1 << 7) +#define RHF_PIXIE (1 << 8) +#define RHF_DEFAULT_DELAY_LOAD (1 << 9) +#define RHF_REQUICKSTART (1 << 10) +#define RHF_REQUICKSTARTED (1 << 11) +#define RHF_CORD (1 << 12) +#define RHF_NO_UNRES_UNDEF (1 << 13) +#define RHF_RLD_ORDER_SAFE (1 << 14) + + + +typedef struct { + Elf32_Word l_name; + Elf32_Word l_time_stamp; + Elf32_Word l_checksum; + Elf32_Word l_version; + Elf32_Word l_flags; +} Elf32_Lib; + +typedef struct { + Elf64_Word l_name; + Elf64_Word l_time_stamp; + Elf64_Word l_checksum; + Elf64_Word l_version; + Elf64_Word l_flags; +} Elf64_Lib; + + + + +#define LL_NONE 0 +#define LL_EXACT_MATCH (1 << 0) +#define LL_IGNORE_INT_VER (1 << 1) +#define LL_REQUIRE_MINOR (1 << 2) +#define LL_EXPORTS (1 << 3) +#define LL_DELAY_LOAD (1 << 4) +#define LL_DELTA (1 << 5) + + + +typedef Elf32_Addr Elf32_Conflict; + +typedef struct { + Elf32_Half version; + unsigned char isa_level; + unsigned char isa_rev; + unsigned char gpr_size; + unsigned char cpr1_size; + unsigned char cpr2_size; + unsigned char fp_abi; + Elf32_Word isa_ext; + Elf32_Word ases; + Elf32_Word flags1; + Elf32_Word flags2; +} Elf_MIPS_ABIFlags_v0; + +#define MIPS_AFL_REG_NONE 0x00 +#define MIPS_AFL_REG_32 0x01 +#define MIPS_AFL_REG_64 0x02 +#define MIPS_AFL_REG_128 0x03 + +#define MIPS_AFL_ASE_DSP 0x00000001 +#define MIPS_AFL_ASE_DSPR2 0x00000002 +#define MIPS_AFL_ASE_EVA 0x00000004 +#define MIPS_AFL_ASE_MCU 0x00000008 +#define MIPS_AFL_ASE_MDMX 0x00000010 +#define MIPS_AFL_ASE_MIPS3D 0x00000020 +#define MIPS_AFL_ASE_MT 0x00000040 +#define MIPS_AFL_ASE_SMARTMIPS 0x00000080 +#define MIPS_AFL_ASE_VIRT 0x00000100 +#define MIPS_AFL_ASE_MSA 0x00000200 +#define MIPS_AFL_ASE_MIPS16 0x00000400 +#define MIPS_AFL_ASE_MICROMIPS 0x00000800 +#define MIPS_AFL_ASE_XPA 0x00001000 +#define MIPS_AFL_ASE_MASK 0x00001fff + +#define MIPS_AFL_EXT_XLR 1 +#define MIPS_AFL_EXT_OCTEON2 2 +#define MIPS_AFL_EXT_OCTEONP 3 +#define MIPS_AFL_EXT_LOONGSON_3A 4 +#define MIPS_AFL_EXT_OCTEON 5 +#define MIPS_AFL_EXT_5900 6 +#define MIPS_AFL_EXT_4650 7 +#define MIPS_AFL_EXT_4010 8 +#define MIPS_AFL_EXT_4100 9 +#define MIPS_AFL_EXT_3900 10 +#define MIPS_AFL_EXT_10000 11 +#define MIPS_AFL_EXT_SB1 12 +#define MIPS_AFL_EXT_4111 13 +#define MIPS_AFL_EXT_4120 14 +#define MIPS_AFL_EXT_5400 15 +#define MIPS_AFL_EXT_5500 16 +#define MIPS_AFL_EXT_LOONGSON_2E 17 +#define MIPS_AFL_EXT_LOONGSON_2F 18 + +#define MIPS_AFL_FLAGS1_ODDSPREG 1 + +enum +{ + Val_GNU_MIPS_ABI_FP_ANY = 0, + Val_GNU_MIPS_ABI_FP_DOUBLE = 1, + Val_GNU_MIPS_ABI_FP_SINGLE = 2, + Val_GNU_MIPS_ABI_FP_SOFT = 3, + Val_GNU_MIPS_ABI_FP_OLD_64 = 4, + Val_GNU_MIPS_ABI_FP_XX = 5, + Val_GNU_MIPS_ABI_FP_64 = 6, + Val_GNU_MIPS_ABI_FP_64A = 7, + Val_GNU_MIPS_ABI_FP_MAX = 7 +}; + + + + +#define EF_PARISC_TRAPNIL 0x00010000 +#define EF_PARISC_EXT 0x00020000 +#define EF_PARISC_LSB 0x00040000 +#define EF_PARISC_WIDE 0x00080000 +#define EF_PARISC_NO_KABP 0x00100000 + +#define EF_PARISC_LAZYSWAP 0x00400000 +#define EF_PARISC_ARCH 0x0000ffff + + + +#define EFA_PARISC_1_0 0x020b +#define EFA_PARISC_1_1 0x0210 +#define EFA_PARISC_2_0 0x0214 + + + +#define SHN_PARISC_ANSI_COMMON 0xff00 + +#define SHN_PARISC_HUGE_COMMON 0xff01 + + + +#define SHT_PARISC_EXT 0x70000000 +#define SHT_PARISC_UNWIND 0x70000001 +#define SHT_PARISC_DOC 0x70000002 + + + +#define SHF_PARISC_SHORT 0x20000000 +#define SHF_PARISC_HUGE 0x40000000 +#define SHF_PARISC_SBP 0x80000000 + + + +#define STT_PARISC_MILLICODE 13 + +#define STT_HP_OPAQUE (STT_LOOS + 0x1) +#define STT_HP_STUB (STT_LOOS + 0x2) + + + +#define R_PARISC_NONE 0 +#define R_PARISC_DIR32 1 +#define R_PARISC_DIR21L 2 +#define R_PARISC_DIR17R 3 +#define R_PARISC_DIR17F 4 +#define R_PARISC_DIR14R 6 +#define R_PARISC_PCREL32 9 +#define R_PARISC_PCREL21L 10 +#define R_PARISC_PCREL17R 11 +#define R_PARISC_PCREL17F 12 +#define R_PARISC_PCREL14R 14 +#define R_PARISC_DPREL21L 18 +#define R_PARISC_DPREL14R 22 +#define R_PARISC_GPREL21L 26 +#define R_PARISC_GPREL14R 30 +#define R_PARISC_LTOFF21L 34 +#define R_PARISC_LTOFF14R 38 +#define R_PARISC_SECREL32 41 +#define R_PARISC_SEGBASE 48 +#define R_PARISC_SEGREL32 49 +#define R_PARISC_PLTOFF21L 50 +#define R_PARISC_PLTOFF14R 54 +#define R_PARISC_LTOFF_FPTR32 57 +#define R_PARISC_LTOFF_FPTR21L 58 +#define R_PARISC_LTOFF_FPTR14R 62 +#define R_PARISC_FPTR64 64 +#define R_PARISC_PLABEL32 65 +#define R_PARISC_PLABEL21L 66 +#define R_PARISC_PLABEL14R 70 +#define R_PARISC_PCREL64 72 +#define R_PARISC_PCREL22F 74 +#define R_PARISC_PCREL14WR 75 +#define R_PARISC_PCREL14DR 76 +#define R_PARISC_PCREL16F 77 +#define R_PARISC_PCREL16WF 78 +#define R_PARISC_PCREL16DF 79 +#define R_PARISC_DIR64 80 +#define R_PARISC_DIR14WR 83 +#define R_PARISC_DIR14DR 84 +#define R_PARISC_DIR16F 85 +#define R_PARISC_DIR16WF 86 +#define R_PARISC_DIR16DF 87 +#define R_PARISC_GPREL64 88 +#define R_PARISC_GPREL14WR 91 +#define R_PARISC_GPREL14DR 92 +#define R_PARISC_GPREL16F 93 +#define R_PARISC_GPREL16WF 94 +#define R_PARISC_GPREL16DF 95 +#define R_PARISC_LTOFF64 96 +#define R_PARISC_LTOFF14WR 99 +#define R_PARISC_LTOFF14DR 100 +#define R_PARISC_LTOFF16F 101 +#define R_PARISC_LTOFF16WF 102 +#define R_PARISC_LTOFF16DF 103 +#define R_PARISC_SECREL64 104 +#define R_PARISC_SEGREL64 112 +#define R_PARISC_PLTOFF14WR 115 +#define R_PARISC_PLTOFF14DR 116 +#define R_PARISC_PLTOFF16F 117 +#define R_PARISC_PLTOFF16WF 118 +#define R_PARISC_PLTOFF16DF 119 +#define R_PARISC_LTOFF_FPTR64 120 +#define R_PARISC_LTOFF_FPTR14WR 123 +#define R_PARISC_LTOFF_FPTR14DR 124 +#define R_PARISC_LTOFF_FPTR16F 125 +#define R_PARISC_LTOFF_FPTR16WF 126 +#define R_PARISC_LTOFF_FPTR16DF 127 +#define R_PARISC_LORESERVE 128 +#define R_PARISC_COPY 128 +#define R_PARISC_IPLT 129 +#define R_PARISC_EPLT 130 +#define R_PARISC_TPREL32 153 +#define R_PARISC_TPREL21L 154 +#define R_PARISC_TPREL14R 158 +#define R_PARISC_LTOFF_TP21L 162 +#define R_PARISC_LTOFF_TP14R 166 +#define R_PARISC_LTOFF_TP14F 167 +#define R_PARISC_TPREL64 216 +#define R_PARISC_TPREL14WR 219 +#define R_PARISC_TPREL14DR 220 +#define R_PARISC_TPREL16F 221 +#define R_PARISC_TPREL16WF 222 +#define R_PARISC_TPREL16DF 223 +#define R_PARISC_LTOFF_TP64 224 +#define R_PARISC_LTOFF_TP14WR 227 +#define R_PARISC_LTOFF_TP14DR 228 +#define R_PARISC_LTOFF_TP16F 229 +#define R_PARISC_LTOFF_TP16WF 230 +#define R_PARISC_LTOFF_TP16DF 231 +#define R_PARISC_GNU_VTENTRY 232 +#define R_PARISC_GNU_VTINHERIT 233 +#define R_PARISC_TLS_GD21L 234 +#define R_PARISC_TLS_GD14R 235 +#define R_PARISC_TLS_GDCALL 236 +#define R_PARISC_TLS_LDM21L 237 +#define R_PARISC_TLS_LDM14R 238 +#define R_PARISC_TLS_LDMCALL 239 +#define R_PARISC_TLS_LDO21L 240 +#define R_PARISC_TLS_LDO14R 241 +#define R_PARISC_TLS_DTPMOD32 242 +#define R_PARISC_TLS_DTPMOD64 243 +#define R_PARISC_TLS_DTPOFF32 244 +#define R_PARISC_TLS_DTPOFF64 245 +#define R_PARISC_TLS_LE21L R_PARISC_TPREL21L +#define R_PARISC_TLS_LE14R R_PARISC_TPREL14R +#define R_PARISC_TLS_IE21L R_PARISC_LTOFF_TP21L +#define R_PARISC_TLS_IE14R R_PARISC_LTOFF_TP14R +#define R_PARISC_TLS_TPREL32 R_PARISC_TPREL32 +#define R_PARISC_TLS_TPREL64 R_PARISC_TPREL64 +#define R_PARISC_HIRESERVE 255 + + + +#define PT_HP_TLS (PT_LOOS + 0x0) +#define PT_HP_CORE_NONE (PT_LOOS + 0x1) +#define PT_HP_CORE_VERSION (PT_LOOS + 0x2) +#define PT_HP_CORE_KERNEL (PT_LOOS + 0x3) +#define PT_HP_CORE_COMM (PT_LOOS + 0x4) +#define PT_HP_CORE_PROC (PT_LOOS + 0x5) +#define PT_HP_CORE_LOADABLE (PT_LOOS + 0x6) +#define PT_HP_CORE_STACK (PT_LOOS + 0x7) +#define PT_HP_CORE_SHM (PT_LOOS + 0x8) +#define PT_HP_CORE_MMF (PT_LOOS + 0x9) +#define PT_HP_PARALLEL (PT_LOOS + 0x10) +#define PT_HP_FASTBIND (PT_LOOS + 0x11) +#define PT_HP_OPT_ANNOT (PT_LOOS + 0x12) +#define PT_HP_HSL_ANNOT (PT_LOOS + 0x13) +#define PT_HP_STACK (PT_LOOS + 0x14) + +#define PT_PARISC_ARCHEXT 0x70000000 +#define PT_PARISC_UNWIND 0x70000001 + + + +#define PF_PARISC_SBP 0x08000000 + +#define PF_HP_PAGE_SIZE 0x00100000 +#define PF_HP_FAR_SHARED 0x00200000 +#define PF_HP_NEAR_SHARED 0x00400000 +#define PF_HP_CODE 0x01000000 +#define PF_HP_MODIFY 0x02000000 +#define PF_HP_LAZYSWAP 0x04000000 +#define PF_HP_SBP 0x08000000 + + + + + + +#define EF_ALPHA_32BIT 1 +#define EF_ALPHA_CANRELAX 2 + + + + +#define SHT_ALPHA_DEBUG 0x70000001 +#define SHT_ALPHA_REGINFO 0x70000002 + + + +#define SHF_ALPHA_GPREL 0x10000000 + + +#define STO_ALPHA_NOPV 0x80 +#define STO_ALPHA_STD_GPLOAD 0x88 + + + +#define R_ALPHA_NONE 0 +#define R_ALPHA_REFLONG 1 +#define R_ALPHA_REFQUAD 2 +#define R_ALPHA_GPREL32 3 +#define R_ALPHA_LITERAL 4 +#define R_ALPHA_LITUSE 5 +#define R_ALPHA_GPDISP 6 +#define R_ALPHA_BRADDR 7 +#define R_ALPHA_HINT 8 +#define R_ALPHA_SREL16 9 +#define R_ALPHA_SREL32 10 +#define R_ALPHA_SREL64 11 +#define R_ALPHA_GPRELHIGH 17 +#define R_ALPHA_GPRELLOW 18 +#define R_ALPHA_GPREL16 19 +#define R_ALPHA_COPY 24 +#define R_ALPHA_GLOB_DAT 25 +#define R_ALPHA_JMP_SLOT 26 +#define R_ALPHA_RELATIVE 27 +#define R_ALPHA_TLS_GD_HI 28 +#define R_ALPHA_TLSGD 29 +#define R_ALPHA_TLS_LDM 30 +#define R_ALPHA_DTPMOD64 31 +#define R_ALPHA_GOTDTPREL 32 +#define R_ALPHA_DTPREL64 33 +#define R_ALPHA_DTPRELHI 34 +#define R_ALPHA_DTPRELLO 35 +#define R_ALPHA_DTPREL16 36 +#define R_ALPHA_GOTTPREL 37 +#define R_ALPHA_TPREL64 38 +#define R_ALPHA_TPRELHI 39 +#define R_ALPHA_TPRELLO 40 +#define R_ALPHA_TPREL16 41 + +#define R_ALPHA_NUM 46 + + +#define LITUSE_ALPHA_ADDR 0 +#define LITUSE_ALPHA_BASE 1 +#define LITUSE_ALPHA_BYTOFF 2 +#define LITUSE_ALPHA_JSR 3 +#define LITUSE_ALPHA_TLS_GD 4 +#define LITUSE_ALPHA_TLS_LDM 5 + + +#define DT_ALPHA_PLTRO (DT_LOPROC + 0) +#define DT_ALPHA_NUM 1 + + + + +#define EF_PPC_EMB 0x80000000 + + +#define EF_PPC_RELOCATABLE 0x00010000 +#define EF_PPC_RELOCATABLE_LIB 0x00008000 + + + +#define R_PPC_NONE 0 +#define R_PPC_ADDR32 1 +#define R_PPC_ADDR24 2 +#define R_PPC_ADDR16 3 +#define R_PPC_ADDR16_LO 4 +#define R_PPC_ADDR16_HI 5 +#define R_PPC_ADDR16_HA 6 +#define R_PPC_ADDR14 7 +#define R_PPC_ADDR14_BRTAKEN 8 +#define R_PPC_ADDR14_BRNTAKEN 9 +#define R_PPC_REL24 10 +#define R_PPC_REL14 11 +#define R_PPC_REL14_BRTAKEN 12 +#define R_PPC_REL14_BRNTAKEN 13 +#define R_PPC_GOT16 14 +#define R_PPC_GOT16_LO 15 +#define R_PPC_GOT16_HI 16 +#define R_PPC_GOT16_HA 17 +#define R_PPC_PLTREL24 18 +#define R_PPC_COPY 19 +#define R_PPC_GLOB_DAT 20 +#define R_PPC_JMP_SLOT 21 +#define R_PPC_RELATIVE 22 +#define R_PPC_LOCAL24PC 23 +#define R_PPC_UADDR32 24 +#define R_PPC_UADDR16 25 +#define R_PPC_REL32 26 +#define R_PPC_PLT32 27 +#define R_PPC_PLTREL32 28 +#define R_PPC_PLT16_LO 29 +#define R_PPC_PLT16_HI 30 +#define R_PPC_PLT16_HA 31 +#define R_PPC_SDAREL16 32 +#define R_PPC_SECTOFF 33 +#define R_PPC_SECTOFF_LO 34 +#define R_PPC_SECTOFF_HI 35 +#define R_PPC_SECTOFF_HA 36 + + +#define R_PPC_TLS 67 +#define R_PPC_DTPMOD32 68 +#define R_PPC_TPREL16 69 +#define R_PPC_TPREL16_LO 70 +#define R_PPC_TPREL16_HI 71 +#define R_PPC_TPREL16_HA 72 +#define R_PPC_TPREL32 73 +#define R_PPC_DTPREL16 74 +#define R_PPC_DTPREL16_LO 75 +#define R_PPC_DTPREL16_HI 76 +#define R_PPC_DTPREL16_HA 77 +#define R_PPC_DTPREL32 78 +#define R_PPC_GOT_TLSGD16 79 +#define R_PPC_GOT_TLSGD16_LO 80 +#define R_PPC_GOT_TLSGD16_HI 81 +#define R_PPC_GOT_TLSGD16_HA 82 +#define R_PPC_GOT_TLSLD16 83 +#define R_PPC_GOT_TLSLD16_LO 84 +#define R_PPC_GOT_TLSLD16_HI 85 +#define R_PPC_GOT_TLSLD16_HA 86 +#define R_PPC_GOT_TPREL16 87 +#define R_PPC_GOT_TPREL16_LO 88 +#define R_PPC_GOT_TPREL16_HI 89 +#define R_PPC_GOT_TPREL16_HA 90 +#define R_PPC_GOT_DTPREL16 91 +#define R_PPC_GOT_DTPREL16_LO 92 +#define R_PPC_GOT_DTPREL16_HI 93 +#define R_PPC_GOT_DTPREL16_HA 94 +#define R_PPC_TLSGD 95 +#define R_PPC_TLSLD 96 + + +#define R_PPC_EMB_NADDR32 101 +#define R_PPC_EMB_NADDR16 102 +#define R_PPC_EMB_NADDR16_LO 103 +#define R_PPC_EMB_NADDR16_HI 104 +#define R_PPC_EMB_NADDR16_HA 105 +#define R_PPC_EMB_SDAI16 106 +#define R_PPC_EMB_SDA2I16 107 +#define R_PPC_EMB_SDA2REL 108 +#define R_PPC_EMB_SDA21 109 +#define R_PPC_EMB_MRKREF 110 +#define R_PPC_EMB_RELSEC16 111 +#define R_PPC_EMB_RELST_LO 112 +#define R_PPC_EMB_RELST_HI 113 +#define R_PPC_EMB_RELST_HA 114 +#define R_PPC_EMB_BIT_FLD 115 +#define R_PPC_EMB_RELSDA 116 + + +#define R_PPC_DIAB_SDA21_LO 180 +#define R_PPC_DIAB_SDA21_HI 181 +#define R_PPC_DIAB_SDA21_HA 182 +#define R_PPC_DIAB_RELSDA_LO 183 +#define R_PPC_DIAB_RELSDA_HI 184 +#define R_PPC_DIAB_RELSDA_HA 185 + + +#define R_PPC_IRELATIVE 248 + + +#define R_PPC_REL16 249 +#define R_PPC_REL16_LO 250 +#define R_PPC_REL16_HI 251 +#define R_PPC_REL16_HA 252 + + + +#define R_PPC_TOC16 255 + + +#define DT_PPC_GOT (DT_LOPROC + 0) +#define DT_PPC_OPT (DT_LOPROC + 1) +#define DT_PPC_NUM 2 + +#define PPC_OPT_TLS 1 + + +#define R_PPC64_NONE R_PPC_NONE +#define R_PPC64_ADDR32 R_PPC_ADDR32 +#define R_PPC64_ADDR24 R_PPC_ADDR24 +#define R_PPC64_ADDR16 R_PPC_ADDR16 +#define R_PPC64_ADDR16_LO R_PPC_ADDR16_LO +#define R_PPC64_ADDR16_HI R_PPC_ADDR16_HI +#define R_PPC64_ADDR16_HA R_PPC_ADDR16_HA +#define R_PPC64_ADDR14 R_PPC_ADDR14 +#define R_PPC64_ADDR14_BRTAKEN R_PPC_ADDR14_BRTAKEN +#define R_PPC64_ADDR14_BRNTAKEN R_PPC_ADDR14_BRNTAKEN +#define R_PPC64_REL24 R_PPC_REL24 +#define R_PPC64_REL14 R_PPC_REL14 +#define R_PPC64_REL14_BRTAKEN R_PPC_REL14_BRTAKEN +#define R_PPC64_REL14_BRNTAKEN R_PPC_REL14_BRNTAKEN +#define R_PPC64_GOT16 R_PPC_GOT16 +#define R_PPC64_GOT16_LO R_PPC_GOT16_LO +#define R_PPC64_GOT16_HI R_PPC_GOT16_HI +#define R_PPC64_GOT16_HA R_PPC_GOT16_HA + +#define R_PPC64_COPY R_PPC_COPY +#define R_PPC64_GLOB_DAT R_PPC_GLOB_DAT +#define R_PPC64_JMP_SLOT R_PPC_JMP_SLOT +#define R_PPC64_RELATIVE R_PPC_RELATIVE + +#define R_PPC64_UADDR32 R_PPC_UADDR32 +#define R_PPC64_UADDR16 R_PPC_UADDR16 +#define R_PPC64_REL32 R_PPC_REL32 +#define R_PPC64_PLT32 R_PPC_PLT32 +#define R_PPC64_PLTREL32 R_PPC_PLTREL32 +#define R_PPC64_PLT16_LO R_PPC_PLT16_LO +#define R_PPC64_PLT16_HI R_PPC_PLT16_HI +#define R_PPC64_PLT16_HA R_PPC_PLT16_HA + +#define R_PPC64_SECTOFF R_PPC_SECTOFF +#define R_PPC64_SECTOFF_LO R_PPC_SECTOFF_LO +#define R_PPC64_SECTOFF_HI R_PPC_SECTOFF_HI +#define R_PPC64_SECTOFF_HA R_PPC_SECTOFF_HA +#define R_PPC64_ADDR30 37 +#define R_PPC64_ADDR64 38 +#define R_PPC64_ADDR16_HIGHER 39 +#define R_PPC64_ADDR16_HIGHERA 40 +#define R_PPC64_ADDR16_HIGHEST 41 +#define R_PPC64_ADDR16_HIGHESTA 42 +#define R_PPC64_UADDR64 43 +#define R_PPC64_REL64 44 +#define R_PPC64_PLT64 45 +#define R_PPC64_PLTREL64 46 +#define R_PPC64_TOC16 47 +#define R_PPC64_TOC16_LO 48 +#define R_PPC64_TOC16_HI 49 +#define R_PPC64_TOC16_HA 50 +#define R_PPC64_TOC 51 +#define R_PPC64_PLTGOT16 52 +#define R_PPC64_PLTGOT16_LO 53 +#define R_PPC64_PLTGOT16_HI 54 +#define R_PPC64_PLTGOT16_HA 55 + +#define R_PPC64_ADDR16_DS 56 +#define R_PPC64_ADDR16_LO_DS 57 +#define R_PPC64_GOT16_DS 58 +#define R_PPC64_GOT16_LO_DS 59 +#define R_PPC64_PLT16_LO_DS 60 +#define R_PPC64_SECTOFF_DS 61 +#define R_PPC64_SECTOFF_LO_DS 62 +#define R_PPC64_TOC16_DS 63 +#define R_PPC64_TOC16_LO_DS 64 +#define R_PPC64_PLTGOT16_DS 65 +#define R_PPC64_PLTGOT16_LO_DS 66 + + +#define R_PPC64_TLS 67 +#define R_PPC64_DTPMOD64 68 +#define R_PPC64_TPREL16 69 +#define R_PPC64_TPREL16_LO 70 +#define R_PPC64_TPREL16_HI 71 +#define R_PPC64_TPREL16_HA 72 +#define R_PPC64_TPREL64 73 +#define R_PPC64_DTPREL16 74 +#define R_PPC64_DTPREL16_LO 75 +#define R_PPC64_DTPREL16_HI 76 +#define R_PPC64_DTPREL16_HA 77 +#define R_PPC64_DTPREL64 78 +#define R_PPC64_GOT_TLSGD16 79 +#define R_PPC64_GOT_TLSGD16_LO 80 +#define R_PPC64_GOT_TLSGD16_HI 81 +#define R_PPC64_GOT_TLSGD16_HA 82 +#define R_PPC64_GOT_TLSLD16 83 +#define R_PPC64_GOT_TLSLD16_LO 84 +#define R_PPC64_GOT_TLSLD16_HI 85 +#define R_PPC64_GOT_TLSLD16_HA 86 +#define R_PPC64_GOT_TPREL16_DS 87 +#define R_PPC64_GOT_TPREL16_LO_DS 88 +#define R_PPC64_GOT_TPREL16_HI 89 +#define R_PPC64_GOT_TPREL16_HA 90 +#define R_PPC64_GOT_DTPREL16_DS 91 +#define R_PPC64_GOT_DTPREL16_LO_DS 92 +#define R_PPC64_GOT_DTPREL16_HI 93 +#define R_PPC64_GOT_DTPREL16_HA 94 +#define R_PPC64_TPREL16_DS 95 +#define R_PPC64_TPREL16_LO_DS 96 +#define R_PPC64_TPREL16_HIGHER 97 +#define R_PPC64_TPREL16_HIGHERA 98 +#define R_PPC64_TPREL16_HIGHEST 99 +#define R_PPC64_TPREL16_HIGHESTA 100 +#define R_PPC64_DTPREL16_DS 101 +#define R_PPC64_DTPREL16_LO_DS 102 +#define R_PPC64_DTPREL16_HIGHER 103 +#define R_PPC64_DTPREL16_HIGHERA 104 +#define R_PPC64_DTPREL16_HIGHEST 105 +#define R_PPC64_DTPREL16_HIGHESTA 106 +#define R_PPC64_TLSGD 107 +#define R_PPC64_TLSLD 108 +#define R_PPC64_TOCSAVE 109 +#define R_PPC64_ADDR16_HIGH 110 +#define R_PPC64_ADDR16_HIGHA 111 +#define R_PPC64_TPREL16_HIGH 112 +#define R_PPC64_TPREL16_HIGHA 113 +#define R_PPC64_DTPREL16_HIGH 114 +#define R_PPC64_DTPREL16_HIGHA 115 + + +#define R_PPC64_JMP_IREL 247 +#define R_PPC64_IRELATIVE 248 +#define R_PPC64_REL16 249 +#define R_PPC64_REL16_LO 250 +#define R_PPC64_REL16_HI 251 +#define R_PPC64_REL16_HA 252 + +#define EF_PPC64_ABI 3 + +#define DT_PPC64_GLINK (DT_LOPROC + 0) +#define DT_PPC64_OPD (DT_LOPROC + 1) +#define DT_PPC64_OPDSZ (DT_LOPROC + 2) +#define DT_PPC64_OPT (DT_LOPROC + 3) +#define DT_PPC64_NUM 4 + +#define PPC64_OPT_TLS 1 +#define PPC64_OPT_MULTI_TOC 2 + +#define STO_PPC64_LOCAL_BIT 5 +#define STO_PPC64_LOCAL_MASK 0xe0 +#define PPC64_LOCAL_ENTRY_OFFSET(x) (1 << (((x)&0xe0)>>5) & 0xfc) + + +#define EF_ARM_RELEXEC 0x01 +#define EF_ARM_HASENTRY 0x02 +#define EF_ARM_INTERWORK 0x04 +#define EF_ARM_APCS_26 0x08 +#define EF_ARM_APCS_FLOAT 0x10 +#define EF_ARM_PIC 0x20 +#define EF_ARM_ALIGN8 0x40 +#define EF_ARM_NEW_ABI 0x80 +#define EF_ARM_OLD_ABI 0x100 +#define EF_ARM_SOFT_FLOAT 0x200 +#define EF_ARM_VFP_FLOAT 0x400 +#define EF_ARM_MAVERICK_FLOAT 0x800 + +#define EF_ARM_ABI_FLOAT_SOFT 0x200 +#define EF_ARM_ABI_FLOAT_HARD 0x400 + + +#define EF_ARM_SYMSARESORTED 0x04 +#define EF_ARM_DYNSYMSUSESEGIDX 0x08 +#define EF_ARM_MAPSYMSFIRST 0x10 +#define EF_ARM_EABIMASK 0XFF000000 + + +#define EF_ARM_BE8 0x00800000 +#define EF_ARM_LE8 0x00400000 + +#define EF_ARM_EABI_VERSION(flags) ((flags) & EF_ARM_EABIMASK) +#define EF_ARM_EABI_UNKNOWN 0x00000000 +#define EF_ARM_EABI_VER1 0x01000000 +#define EF_ARM_EABI_VER2 0x02000000 +#define EF_ARM_EABI_VER3 0x03000000 +#define EF_ARM_EABI_VER4 0x04000000 +#define EF_ARM_EABI_VER5 0x05000000 + + +#define STT_ARM_TFUNC STT_LOPROC +#define STT_ARM_16BIT STT_HIPROC + + +#define SHF_ARM_ENTRYSECT 0x10000000 +#define SHF_ARM_COMDEF 0x80000000 + + + +#define PF_ARM_SB 0x10000000 + +#define PF_ARM_PI 0x20000000 +#define PF_ARM_ABS 0x40000000 + + +#define PT_ARM_EXIDX (PT_LOPROC + 1) + + +#define SHT_ARM_EXIDX (SHT_LOPROC + 1) +#define SHT_ARM_PREEMPTMAP (SHT_LOPROC + 2) +#define SHT_ARM_ATTRIBUTES (SHT_LOPROC + 3) + +#define R_AARCH64_NONE 0 +#define R_AARCH64_P32_ABS32 1 +#define R_AARCH64_P32_COPY 180 +#define R_AARCH64_P32_GLOB_DAT 181 +#define R_AARCH64_P32_JUMP_SLOT 182 +#define R_AARCH64_P32_RELATIVE 183 +#define R_AARCH64_P32_TLS_DTPMOD 184 +#define R_AARCH64_P32_TLS_DTPREL 185 +#define R_AARCH64_P32_TLS_TPREL 186 +#define R_AARCH64_P32_TLSDESC 187 +#define R_AARCH64_P32_IRELATIVE 188 +#define R_AARCH64_ABS64 257 +#define R_AARCH64_ABS32 258 +#define R_AARCH64_ABS16 259 +#define R_AARCH64_PREL64 260 +#define R_AARCH64_PREL32 261 +#define R_AARCH64_PREL16 262 +#define R_AARCH64_MOVW_UABS_G0 263 +#define R_AARCH64_MOVW_UABS_G0_NC 264 +#define R_AARCH64_MOVW_UABS_G1 265 +#define R_AARCH64_MOVW_UABS_G1_NC 266 +#define R_AARCH64_MOVW_UABS_G2 267 +#define R_AARCH64_MOVW_UABS_G2_NC 268 +#define R_AARCH64_MOVW_UABS_G3 269 +#define R_AARCH64_MOVW_SABS_G0 270 +#define R_AARCH64_MOVW_SABS_G1 271 +#define R_AARCH64_MOVW_SABS_G2 272 +#define R_AARCH64_LD_PREL_LO19 273 +#define R_AARCH64_ADR_PREL_LO21 274 +#define R_AARCH64_ADR_PREL_PG_HI21 275 +#define R_AARCH64_ADR_PREL_PG_HI21_NC 276 +#define R_AARCH64_ADD_ABS_LO12_NC 277 +#define R_AARCH64_LDST8_ABS_LO12_NC 278 +#define R_AARCH64_TSTBR14 279 +#define R_AARCH64_CONDBR19 280 +#define R_AARCH64_JUMP26 282 +#define R_AARCH64_CALL26 283 +#define R_AARCH64_LDST16_ABS_LO12_NC 284 +#define R_AARCH64_LDST32_ABS_LO12_NC 285 +#define R_AARCH64_LDST64_ABS_LO12_NC 286 +#define R_AARCH64_MOVW_PREL_G0 287 +#define R_AARCH64_MOVW_PREL_G0_NC 288 +#define R_AARCH64_MOVW_PREL_G1 289 +#define R_AARCH64_MOVW_PREL_G1_NC 290 +#define R_AARCH64_MOVW_PREL_G2 291 +#define R_AARCH64_MOVW_PREL_G2_NC 292 +#define R_AARCH64_MOVW_PREL_G3 293 +#define R_AARCH64_LDST128_ABS_LO12_NC 299 +#define R_AARCH64_MOVW_GOTOFF_G0 300 +#define R_AARCH64_MOVW_GOTOFF_G0_NC 301 +#define R_AARCH64_MOVW_GOTOFF_G1 302 +#define R_AARCH64_MOVW_GOTOFF_G1_NC 303 +#define R_AARCH64_MOVW_GOTOFF_G2 304 +#define R_AARCH64_MOVW_GOTOFF_G2_NC 305 +#define R_AARCH64_MOVW_GOTOFF_G3 306 +#define R_AARCH64_GOTREL64 307 +#define R_AARCH64_GOTREL32 308 +#define R_AARCH64_GOT_LD_PREL19 309 +#define R_AARCH64_LD64_GOTOFF_LO15 310 +#define R_AARCH64_ADR_GOT_PAGE 311 +#define R_AARCH64_LD64_GOT_LO12_NC 312 +#define R_AARCH64_LD64_GOTPAGE_LO15 313 +#define R_AARCH64_TLSGD_ADR_PREL21 512 +#define R_AARCH64_TLSGD_ADR_PAGE21 513 +#define R_AARCH64_TLSGD_ADD_LO12_NC 514 +#define R_AARCH64_TLSGD_MOVW_G1 515 +#define R_AARCH64_TLSGD_MOVW_G0_NC 516 +#define R_AARCH64_TLSLD_ADR_PREL21 517 +#define R_AARCH64_TLSLD_ADR_PAGE21 518 +#define R_AARCH64_TLSLD_ADD_LO12_NC 519 +#define R_AARCH64_TLSLD_MOVW_G1 520 +#define R_AARCH64_TLSLD_MOVW_G0_NC 521 +#define R_AARCH64_TLSLD_LD_PREL19 522 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G2 523 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1 524 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G1_NC 525 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0 526 +#define R_AARCH64_TLSLD_MOVW_DTPREL_G0_NC 527 +#define R_AARCH64_TLSLD_ADD_DTPREL_HI12 528 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12 529 +#define R_AARCH64_TLSLD_ADD_DTPREL_LO12_NC 530 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12 531 +#define R_AARCH64_TLSLD_LDST8_DTPREL_LO12_NC 532 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12 533 +#define R_AARCH64_TLSLD_LDST16_DTPREL_LO12_NC 534 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12 535 +#define R_AARCH64_TLSLD_LDST32_DTPREL_LO12_NC 536 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12 537 +#define R_AARCH64_TLSLD_LDST64_DTPREL_LO12_NC 538 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G1 539 +#define R_AARCH64_TLSIE_MOVW_GOTTPREL_G0_NC 540 +#define R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 541 +#define R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC 542 +#define R_AARCH64_TLSIE_LD_GOTTPREL_PREL19 543 +#define R_AARCH64_TLSLE_MOVW_TPREL_G2 544 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1 545 +#define R_AARCH64_TLSLE_MOVW_TPREL_G1_NC 546 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0 547 +#define R_AARCH64_TLSLE_MOVW_TPREL_G0_NC 548 +#define R_AARCH64_TLSLE_ADD_TPREL_HI12 549 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12 550 +#define R_AARCH64_TLSLE_ADD_TPREL_LO12_NC 551 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12 552 +#define R_AARCH64_TLSLE_LDST8_TPREL_LO12_NC 553 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12 554 +#define R_AARCH64_TLSLE_LDST16_TPREL_LO12_NC 555 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12 556 +#define R_AARCH64_TLSLE_LDST32_TPREL_LO12_NC 557 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12 558 +#define R_AARCH64_TLSLE_LDST64_TPREL_LO12_NC 559 +#define R_AARCH64_TLSDESC_LD_PREL19 560 +#define R_AARCH64_TLSDESC_ADR_PREL21 561 +#define R_AARCH64_TLSDESC_ADR_PAGE21 562 +#define R_AARCH64_TLSDESC_LD64_LO12 563 +#define R_AARCH64_TLSDESC_ADD_LO12 564 +#define R_AARCH64_TLSDESC_OFF_G1 565 +#define R_AARCH64_TLSDESC_OFF_G0_NC 566 +#define R_AARCH64_TLSDESC_LDR 567 +#define R_AARCH64_TLSDESC_ADD 568 +#define R_AARCH64_TLSDESC_CALL 569 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12 570 +#define R_AARCH64_TLSLE_LDST128_TPREL_LO12_NC 571 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12 572 +#define R_AARCH64_TLSLD_LDST128_DTPREL_LO12_NC 573 +#define R_AARCH64_COPY 1024 +#define R_AARCH64_GLOB_DAT 1025 +#define R_AARCH64_JUMP_SLOT 1026 +#define R_AARCH64_RELATIVE 1027 +#define R_AARCH64_TLS_DTPMOD 1028 +#define R_AARCH64_TLS_DTPMOD64 1028 +#define R_AARCH64_TLS_DTPREL 1029 +#define R_AARCH64_TLS_DTPREL64 1029 +#define R_AARCH64_TLS_TPREL 1030 +#define R_AARCH64_TLS_TPREL64 1030 +#define R_AARCH64_TLSDESC 1031 + + +#define R_ARM_NONE 0 +#define R_ARM_PC24 1 +#define R_ARM_ABS32 2 +#define R_ARM_REL32 3 +#define R_ARM_PC13 4 +#define R_ARM_ABS16 5 +#define R_ARM_ABS12 6 +#define R_ARM_THM_ABS5 7 +#define R_ARM_ABS8 8 +#define R_ARM_SBREL32 9 +#define R_ARM_THM_PC22 10 +#define R_ARM_THM_PC8 11 +#define R_ARM_AMP_VCALL9 12 +#define R_ARM_TLS_DESC 13 +#define R_ARM_THM_SWI8 14 +#define R_ARM_XPC25 15 +#define R_ARM_THM_XPC22 16 +#define R_ARM_TLS_DTPMOD32 17 +#define R_ARM_TLS_DTPOFF32 18 +#define R_ARM_TLS_TPOFF32 19 +#define R_ARM_COPY 20 +#define R_ARM_GLOB_DAT 21 +#define R_ARM_JUMP_SLOT 22 +#define R_ARM_RELATIVE 23 +#define R_ARM_GOTOFF 24 +#define R_ARM_GOTPC 25 +#define R_ARM_GOT32 26 +#define R_ARM_PLT32 27 +#define R_ARM_CALL 28 +#define R_ARM_JUMP24 29 +#define R_ARM_THM_JUMP24 30 +#define R_ARM_BASE_ABS 31 +#define R_ARM_ALU_PCREL_7_0 32 +#define R_ARM_ALU_PCREL_15_8 33 +#define R_ARM_ALU_PCREL_23_15 34 +#define R_ARM_LDR_SBREL_11_0 35 +#define R_ARM_ALU_SBREL_19_12 36 +#define R_ARM_ALU_SBREL_27_20 37 +#define R_ARM_TARGET1 38 +#define R_ARM_SBREL31 39 +#define R_ARM_V4BX 40 +#define R_ARM_TARGET2 41 +#define R_ARM_PREL31 42 +#define R_ARM_MOVW_ABS_NC 43 +#define R_ARM_MOVT_ABS 44 +#define R_ARM_MOVW_PREL_NC 45 +#define R_ARM_MOVT_PREL 46 +#define R_ARM_THM_MOVW_ABS_NC 47 +#define R_ARM_THM_MOVT_ABS 48 +#define R_ARM_THM_MOVW_PREL_NC 49 +#define R_ARM_THM_MOVT_PREL 50 +#define R_ARM_THM_JUMP19 51 +#define R_ARM_THM_JUMP6 52 +#define R_ARM_THM_ALU_PREL_11_0 53 +#define R_ARM_THM_PC12 54 +#define R_ARM_ABS32_NOI 55 +#define R_ARM_REL32_NOI 56 +#define R_ARM_ALU_PC_G0_NC 57 +#define R_ARM_ALU_PC_G0 58 +#define R_ARM_ALU_PC_G1_NC 59 +#define R_ARM_ALU_PC_G1 60 +#define R_ARM_ALU_PC_G2 61 +#define R_ARM_LDR_PC_G1 62 +#define R_ARM_LDR_PC_G2 63 +#define R_ARM_LDRS_PC_G0 64 +#define R_ARM_LDRS_PC_G1 65 +#define R_ARM_LDRS_PC_G2 66 +#define R_ARM_LDC_PC_G0 67 +#define R_ARM_LDC_PC_G1 68 +#define R_ARM_LDC_PC_G2 69 +#define R_ARM_ALU_SB_G0_NC 70 +#define R_ARM_ALU_SB_G0 71 +#define R_ARM_ALU_SB_G1_NC 72 +#define R_ARM_ALU_SB_G1 73 +#define R_ARM_ALU_SB_G2 74 +#define R_ARM_LDR_SB_G0 75 +#define R_ARM_LDR_SB_G1 76 +#define R_ARM_LDR_SB_G2 77 +#define R_ARM_LDRS_SB_G0 78 +#define R_ARM_LDRS_SB_G1 79 +#define R_ARM_LDRS_SB_G2 80 +#define R_ARM_LDC_SB_G0 81 +#define R_ARM_LDC_SB_G1 82 +#define R_ARM_LDC_SB_G2 83 +#define R_ARM_MOVW_BREL_NC 84 +#define R_ARM_MOVT_BREL 85 +#define R_ARM_MOVW_BREL 86 +#define R_ARM_THM_MOVW_BREL_NC 87 +#define R_ARM_THM_MOVT_BREL 88 +#define R_ARM_THM_MOVW_BREL 89 +#define R_ARM_TLS_GOTDESC 90 +#define R_ARM_TLS_CALL 91 +#define R_ARM_TLS_DESCSEQ 92 +#define R_ARM_THM_TLS_CALL 93 +#define R_ARM_PLT32_ABS 94 +#define R_ARM_GOT_ABS 95 +#define R_ARM_GOT_PREL 96 +#define R_ARM_GOT_BREL12 97 +#define R_ARM_GOTOFF12 98 +#define R_ARM_GOTRELAX 99 +#define R_ARM_GNU_VTENTRY 100 +#define R_ARM_GNU_VTINHERIT 101 +#define R_ARM_THM_PC11 102 +#define R_ARM_THM_PC9 103 +#define R_ARM_TLS_GD32 104 + +#define R_ARM_TLS_LDM32 105 + +#define R_ARM_TLS_LDO32 106 + +#define R_ARM_TLS_IE32 107 + +#define R_ARM_TLS_LE32 108 +#define R_ARM_TLS_LDO12 109 +#define R_ARM_TLS_LE12 110 +#define R_ARM_TLS_IE12GP 111 +#define R_ARM_ME_TOO 128 +#define R_ARM_THM_TLS_DESCSEQ 129 +#define R_ARM_THM_TLS_DESCSEQ16 129 +#define R_ARM_THM_TLS_DESCSEQ32 130 +#define R_ARM_THM_GOT_BREL12 131 +#define R_ARM_IRELATIVE 160 +#define R_ARM_RXPC25 249 +#define R_ARM_RSBREL32 250 +#define R_ARM_THM_RPC22 251 +#define R_ARM_RREL32 252 +#define R_ARM_RABS22 253 +#define R_ARM_RPC24 254 +#define R_ARM_RBASE 255 + +#define R_ARM_NUM 256 + + + + +#define EF_IA_64_MASKOS 0x0000000f +#define EF_IA_64_ABI64 0x00000010 +#define EF_IA_64_ARCH 0xff000000 + + +#define PT_IA_64_ARCHEXT (PT_LOPROC + 0) +#define PT_IA_64_UNWIND (PT_LOPROC + 1) +#define PT_IA_64_HP_OPT_ANOT (PT_LOOS + 0x12) +#define PT_IA_64_HP_HSL_ANOT (PT_LOOS + 0x13) +#define PT_IA_64_HP_STACK (PT_LOOS + 0x14) + + +#define PF_IA_64_NORECOV 0x80000000 + + +#define SHT_IA_64_EXT (SHT_LOPROC + 0) +#define SHT_IA_64_UNWIND (SHT_LOPROC + 1) + + +#define SHF_IA_64_SHORT 0x10000000 +#define SHF_IA_64_NORECOV 0x20000000 + + +#define DT_IA_64_PLT_RESERVE (DT_LOPROC + 0) +#define DT_IA_64_NUM 1 + + +#define R_IA64_NONE 0x00 +#define R_IA64_IMM14 0x21 +#define R_IA64_IMM22 0x22 +#define R_IA64_IMM64 0x23 +#define R_IA64_DIR32MSB 0x24 +#define R_IA64_DIR32LSB 0x25 +#define R_IA64_DIR64MSB 0x26 +#define R_IA64_DIR64LSB 0x27 +#define R_IA64_GPREL22 0x2a +#define R_IA64_GPREL64I 0x2b +#define R_IA64_GPREL32MSB 0x2c +#define R_IA64_GPREL32LSB 0x2d +#define R_IA64_GPREL64MSB 0x2e +#define R_IA64_GPREL64LSB 0x2f +#define R_IA64_LTOFF22 0x32 +#define R_IA64_LTOFF64I 0x33 +#define R_IA64_PLTOFF22 0x3a +#define R_IA64_PLTOFF64I 0x3b +#define R_IA64_PLTOFF64MSB 0x3e +#define R_IA64_PLTOFF64LSB 0x3f +#define R_IA64_FPTR64I 0x43 +#define R_IA64_FPTR32MSB 0x44 +#define R_IA64_FPTR32LSB 0x45 +#define R_IA64_FPTR64MSB 0x46 +#define R_IA64_FPTR64LSB 0x47 +#define R_IA64_PCREL60B 0x48 +#define R_IA64_PCREL21B 0x49 +#define R_IA64_PCREL21M 0x4a +#define R_IA64_PCREL21F 0x4b +#define R_IA64_PCREL32MSB 0x4c +#define R_IA64_PCREL32LSB 0x4d +#define R_IA64_PCREL64MSB 0x4e +#define R_IA64_PCREL64LSB 0x4f +#define R_IA64_LTOFF_FPTR22 0x52 +#define R_IA64_LTOFF_FPTR64I 0x53 +#define R_IA64_LTOFF_FPTR32MSB 0x54 +#define R_IA64_LTOFF_FPTR32LSB 0x55 +#define R_IA64_LTOFF_FPTR64MSB 0x56 +#define R_IA64_LTOFF_FPTR64LSB 0x57 +#define R_IA64_SEGREL32MSB 0x5c +#define R_IA64_SEGREL32LSB 0x5d +#define R_IA64_SEGREL64MSB 0x5e +#define R_IA64_SEGREL64LSB 0x5f +#define R_IA64_SECREL32MSB 0x64 +#define R_IA64_SECREL32LSB 0x65 +#define R_IA64_SECREL64MSB 0x66 +#define R_IA64_SECREL64LSB 0x67 +#define R_IA64_REL32MSB 0x6c +#define R_IA64_REL32LSB 0x6d +#define R_IA64_REL64MSB 0x6e +#define R_IA64_REL64LSB 0x6f +#define R_IA64_LTV32MSB 0x74 +#define R_IA64_LTV32LSB 0x75 +#define R_IA64_LTV64MSB 0x76 +#define R_IA64_LTV64LSB 0x77 +#define R_IA64_PCREL21BI 0x79 +#define R_IA64_PCREL22 0x7a +#define R_IA64_PCREL64I 0x7b +#define R_IA64_IPLTMSB 0x80 +#define R_IA64_IPLTLSB 0x81 +#define R_IA64_COPY 0x84 +#define R_IA64_SUB 0x85 +#define R_IA64_LTOFF22X 0x86 +#define R_IA64_LDXMOV 0x87 +#define R_IA64_TPREL14 0x91 +#define R_IA64_TPREL22 0x92 +#define R_IA64_TPREL64I 0x93 +#define R_IA64_TPREL64MSB 0x96 +#define R_IA64_TPREL64LSB 0x97 +#define R_IA64_LTOFF_TPREL22 0x9a +#define R_IA64_DTPMOD64MSB 0xa6 +#define R_IA64_DTPMOD64LSB 0xa7 +#define R_IA64_LTOFF_DTPMOD22 0xaa +#define R_IA64_DTPREL14 0xb1 +#define R_IA64_DTPREL22 0xb2 +#define R_IA64_DTPREL64I 0xb3 +#define R_IA64_DTPREL32MSB 0xb4 +#define R_IA64_DTPREL32LSB 0xb5 +#define R_IA64_DTPREL64MSB 0xb6 +#define R_IA64_DTPREL64LSB 0xb7 +#define R_IA64_LTOFF_DTPREL22 0xba + + +#define EF_SH_MACH_MASK 0x1f +#define EF_SH_UNKNOWN 0x0 +#define EF_SH1 0x1 +#define EF_SH2 0x2 +#define EF_SH3 0x3 +#define EF_SH_DSP 0x4 +#define EF_SH3_DSP 0x5 +#define EF_SH4AL_DSP 0x6 +#define EF_SH3E 0x8 +#define EF_SH4 0x9 +#define EF_SH2E 0xb +#define EF_SH4A 0xc +#define EF_SH2A 0xd +#define EF_SH4_NOFPU 0x10 +#define EF_SH4A_NOFPU 0x11 +#define EF_SH4_NOMMU_NOFPU 0x12 +#define EF_SH2A_NOFPU 0x13 +#define EF_SH3_NOMMU 0x14 +#define EF_SH2A_SH4_NOFPU 0x15 +#define EF_SH2A_SH3_NOFPU 0x16 +#define EF_SH2A_SH4 0x17 +#define EF_SH2A_SH3E 0x18 + +#define R_SH_NONE 0 +#define R_SH_DIR32 1 +#define R_SH_REL32 2 +#define R_SH_DIR8WPN 3 +#define R_SH_IND12W 4 +#define R_SH_DIR8WPL 5 +#define R_SH_DIR8WPZ 6 +#define R_SH_DIR8BP 7 +#define R_SH_DIR8W 8 +#define R_SH_DIR8L 9 +#define R_SH_SWITCH16 25 +#define R_SH_SWITCH32 26 +#define R_SH_USES 27 +#define R_SH_COUNT 28 +#define R_SH_ALIGN 29 +#define R_SH_CODE 30 +#define R_SH_DATA 31 +#define R_SH_LABEL 32 +#define R_SH_SWITCH8 33 +#define R_SH_GNU_VTINHERIT 34 +#define R_SH_GNU_VTENTRY 35 +#define R_SH_TLS_GD_32 144 +#define R_SH_TLS_LD_32 145 +#define R_SH_TLS_LDO_32 146 +#define R_SH_TLS_IE_32 147 +#define R_SH_TLS_LE_32 148 +#define R_SH_TLS_DTPMOD32 149 +#define R_SH_TLS_DTPOFF32 150 +#define R_SH_TLS_TPOFF32 151 +#define R_SH_GOT32 160 +#define R_SH_PLT32 161 +#define R_SH_COPY 162 +#define R_SH_GLOB_DAT 163 +#define R_SH_JMP_SLOT 164 +#define R_SH_RELATIVE 165 +#define R_SH_GOTOFF 166 +#define R_SH_GOTPC 167 +#define R_SH_GOT20 201 +#define R_SH_GOTOFF20 202 +#define R_SH_GOTFUNCDESC 203 +#define R_SH_GOTFUNCDEST20 204 +#define R_SH_GOTOFFFUNCDESC 205 +#define R_SH_GOTOFFFUNCDEST20 206 +#define R_SH_FUNCDESC 207 +#define R_SH_FUNCDESC_VALUE 208 + +#define R_SH_NUM 256 + + + +#define R_390_NONE 0 +#define R_390_8 1 +#define R_390_12 2 +#define R_390_16 3 +#define R_390_32 4 +#define R_390_PC32 5 +#define R_390_GOT12 6 +#define R_390_GOT32 7 +#define R_390_PLT32 8 +#define R_390_COPY 9 +#define R_390_GLOB_DAT 10 +#define R_390_JMP_SLOT 11 +#define R_390_RELATIVE 12 +#define R_390_GOTOFF32 13 +#define R_390_GOTPC 14 +#define R_390_GOT16 15 +#define R_390_PC16 16 +#define R_390_PC16DBL 17 +#define R_390_PLT16DBL 18 +#define R_390_PC32DBL 19 +#define R_390_PLT32DBL 20 +#define R_390_GOTPCDBL 21 +#define R_390_64 22 +#define R_390_PC64 23 +#define R_390_GOT64 24 +#define R_390_PLT64 25 +#define R_390_GOTENT 26 +#define R_390_GOTOFF16 27 +#define R_390_GOTOFF64 28 +#define R_390_GOTPLT12 29 +#define R_390_GOTPLT16 30 +#define R_390_GOTPLT32 31 +#define R_390_GOTPLT64 32 +#define R_390_GOTPLTENT 33 +#define R_390_PLTOFF16 34 +#define R_390_PLTOFF32 35 +#define R_390_PLTOFF64 36 +#define R_390_TLS_LOAD 37 +#define R_390_TLS_GDCALL 38 + +#define R_390_TLS_LDCALL 39 + +#define R_390_TLS_GD32 40 + +#define R_390_TLS_GD64 41 + +#define R_390_TLS_GOTIE12 42 + +#define R_390_TLS_GOTIE32 43 + +#define R_390_TLS_GOTIE64 44 + +#define R_390_TLS_LDM32 45 + +#define R_390_TLS_LDM64 46 + +#define R_390_TLS_IE32 47 + +#define R_390_TLS_IE64 48 + +#define R_390_TLS_IEENT 49 + +#define R_390_TLS_LE32 50 + +#define R_390_TLS_LE64 51 + +#define R_390_TLS_LDO32 52 + +#define R_390_TLS_LDO64 53 + +#define R_390_TLS_DTPMOD 54 +#define R_390_TLS_DTPOFF 55 +#define R_390_TLS_TPOFF 56 + +#define R_390_20 57 +#define R_390_GOT20 58 +#define R_390_GOTPLT20 59 +#define R_390_TLS_GOTIE20 60 + + +#define R_390_NUM 61 + + + +#define R_CRIS_NONE 0 +#define R_CRIS_8 1 +#define R_CRIS_16 2 +#define R_CRIS_32 3 +#define R_CRIS_8_PCREL 4 +#define R_CRIS_16_PCREL 5 +#define R_CRIS_32_PCREL 6 +#define R_CRIS_GNU_VTINHERIT 7 +#define R_CRIS_GNU_VTENTRY 8 +#define R_CRIS_COPY 9 +#define R_CRIS_GLOB_DAT 10 +#define R_CRIS_JUMP_SLOT 11 +#define R_CRIS_RELATIVE 12 +#define R_CRIS_16_GOT 13 +#define R_CRIS_32_GOT 14 +#define R_CRIS_16_GOTPLT 15 +#define R_CRIS_32_GOTPLT 16 +#define R_CRIS_32_GOTREL 17 +#define R_CRIS_32_PLT_GOTREL 18 +#define R_CRIS_32_PLT_PCREL 19 + +#define R_CRIS_NUM 20 + + + +#define R_X86_64_NONE 0 +#define R_X86_64_64 1 +#define R_X86_64_PC32 2 +#define R_X86_64_GOT32 3 +#define R_X86_64_PLT32 4 +#define R_X86_64_COPY 5 +#define R_X86_64_GLOB_DAT 6 +#define R_X86_64_JUMP_SLOT 7 +#define R_X86_64_RELATIVE 8 +#define R_X86_64_GOTPCREL 9 + +#define R_X86_64_32 10 +#define R_X86_64_32S 11 +#define R_X86_64_16 12 +#define R_X86_64_PC16 13 +#define R_X86_64_8 14 +#define R_X86_64_PC8 15 +#define R_X86_64_DTPMOD64 16 +#define R_X86_64_DTPOFF64 17 +#define R_X86_64_TPOFF64 18 +#define R_X86_64_TLSGD 19 + +#define R_X86_64_TLSLD 20 + +#define R_X86_64_DTPOFF32 21 +#define R_X86_64_GOTTPOFF 22 + +#define R_X86_64_TPOFF32 23 +#define R_X86_64_PC64 24 +#define R_X86_64_GOTOFF64 25 +#define R_X86_64_GOTPC32 26 +#define R_X86_64_GOT64 27 +#define R_X86_64_GOTPCREL64 28 +#define R_X86_64_GOTPC64 29 +#define R_X86_64_GOTPLT64 30 +#define R_X86_64_PLTOFF64 31 +#define R_X86_64_SIZE32 32 +#define R_X86_64_SIZE64 33 + +#define R_X86_64_GOTPC32_TLSDESC 34 +#define R_X86_64_TLSDESC_CALL 35 + +#define R_X86_64_TLSDESC 36 +#define R_X86_64_IRELATIVE 37 +#define R_X86_64_RELATIVE64 38 +#define R_X86_64_GOTPCRELX 41 +#define R_X86_64_REX_GOTPCRELX 42 +#define R_X86_64_NUM 43 + + + +#define R_MN10300_NONE 0 +#define R_MN10300_32 1 +#define R_MN10300_16 2 +#define R_MN10300_8 3 +#define R_MN10300_PCREL32 4 +#define R_MN10300_PCREL16 5 +#define R_MN10300_PCREL8 6 +#define R_MN10300_GNU_VTINHERIT 7 +#define R_MN10300_GNU_VTENTRY 8 +#define R_MN10300_24 9 +#define R_MN10300_GOTPC32 10 +#define R_MN10300_GOTPC16 11 +#define R_MN10300_GOTOFF32 12 +#define R_MN10300_GOTOFF24 13 +#define R_MN10300_GOTOFF16 14 +#define R_MN10300_PLT32 15 +#define R_MN10300_PLT16 16 +#define R_MN10300_GOT32 17 +#define R_MN10300_GOT24 18 +#define R_MN10300_GOT16 19 +#define R_MN10300_COPY 20 +#define R_MN10300_GLOB_DAT 21 +#define R_MN10300_JMP_SLOT 22 +#define R_MN10300_RELATIVE 23 + +#define R_MN10300_NUM 24 + + + +#define R_M32R_NONE 0 +#define R_M32R_16 1 +#define R_M32R_32 2 +#define R_M32R_24 3 +#define R_M32R_10_PCREL 4 +#define R_M32R_18_PCREL 5 +#define R_M32R_26_PCREL 6 +#define R_M32R_HI16_ULO 7 +#define R_M32R_HI16_SLO 8 +#define R_M32R_LO16 9 +#define R_M32R_SDA16 10 +#define R_M32R_GNU_VTINHERIT 11 +#define R_M32R_GNU_VTENTRY 12 + +#define R_M32R_16_RELA 33 +#define R_M32R_32_RELA 34 +#define R_M32R_24_RELA 35 +#define R_M32R_10_PCREL_RELA 36 +#define R_M32R_18_PCREL_RELA 37 +#define R_M32R_26_PCREL_RELA 38 +#define R_M32R_HI16_ULO_RELA 39 +#define R_M32R_HI16_SLO_RELA 40 +#define R_M32R_LO16_RELA 41 +#define R_M32R_SDA16_RELA 42 +#define R_M32R_RELA_GNU_VTINHERIT 43 +#define R_M32R_RELA_GNU_VTENTRY 44 +#define R_M32R_REL32 45 + +#define R_M32R_GOT24 48 +#define R_M32R_26_PLTREL 49 +#define R_M32R_COPY 50 +#define R_M32R_GLOB_DAT 51 +#define R_M32R_JMP_SLOT 52 +#define R_M32R_RELATIVE 53 +#define R_M32R_GOTOFF 54 +#define R_M32R_GOTPC24 55 +#define R_M32R_GOT16_HI_ULO 56 + +#define R_M32R_GOT16_HI_SLO 57 + +#define R_M32R_GOT16_LO 58 +#define R_M32R_GOTPC_HI_ULO 59 + +#define R_M32R_GOTPC_HI_SLO 60 + +#define R_M32R_GOTPC_LO 61 + +#define R_M32R_GOTOFF_HI_ULO 62 + +#define R_M32R_GOTOFF_HI_SLO 63 + +#define R_M32R_GOTOFF_LO 64 +#define R_M32R_NUM 256 + +#define R_MICROBLAZE_NONE 0 +#define R_MICROBLAZE_32 1 +#define R_MICROBLAZE_32_PCREL 2 +#define R_MICROBLAZE_64_PCREL 3 +#define R_MICROBLAZE_32_PCREL_LO 4 +#define R_MICROBLAZE_64 5 +#define R_MICROBLAZE_32_LO 6 +#define R_MICROBLAZE_SRO32 7 +#define R_MICROBLAZE_SRW32 8 +#define R_MICROBLAZE_64_NONE 9 +#define R_MICROBLAZE_32_SYM_OP_SYM 10 +#define R_MICROBLAZE_GNU_VTINHERIT 11 +#define R_MICROBLAZE_GNU_VTENTRY 12 +#define R_MICROBLAZE_GOTPC_64 13 +#define R_MICROBLAZE_GOT_64 14 +#define R_MICROBLAZE_PLT_64 15 +#define R_MICROBLAZE_REL 16 +#define R_MICROBLAZE_JUMP_SLOT 17 +#define R_MICROBLAZE_GLOB_DAT 18 +#define R_MICROBLAZE_GOTOFF_64 19 +#define R_MICROBLAZE_GOTOFF_32 20 +#define R_MICROBLAZE_COPY 21 +#define R_MICROBLAZE_TLS 22 +#define R_MICROBLAZE_TLSGD 23 +#define R_MICROBLAZE_TLSLD 24 +#define R_MICROBLAZE_TLSDTPMOD32 25 +#define R_MICROBLAZE_TLSDTPREL32 26 +#define R_MICROBLAZE_TLSDTPREL64 27 +#define R_MICROBLAZE_TLSGOTTPREL32 28 +#define R_MICROBLAZE_TLSTPREL32 29 + +#define DT_NIOS2_GP 0x70000002 + +#define R_NIOS2_NONE 0 +#define R_NIOS2_S16 1 +#define R_NIOS2_U16 2 +#define R_NIOS2_PCREL16 3 +#define R_NIOS2_CALL26 4 +#define R_NIOS2_IMM5 5 +#define R_NIOS2_CACHE_OPX 6 +#define R_NIOS2_IMM6 7 +#define R_NIOS2_IMM8 8 +#define R_NIOS2_HI16 9 +#define R_NIOS2_LO16 10 +#define R_NIOS2_HIADJ16 11 +#define R_NIOS2_BFD_RELOC_32 12 +#define R_NIOS2_BFD_RELOC_16 13 +#define R_NIOS2_BFD_RELOC_8 14 +#define R_NIOS2_GPREL 15 +#define R_NIOS2_GNU_VTINHERIT 16 +#define R_NIOS2_GNU_VTENTRY 17 +#define R_NIOS2_UJMP 18 +#define R_NIOS2_CJMP 19 +#define R_NIOS2_CALLR 20 +#define R_NIOS2_ALIGN 21 +#define R_NIOS2_GOT16 22 +#define R_NIOS2_CALL16 23 +#define R_NIOS2_GOTOFF_LO 24 +#define R_NIOS2_GOTOFF_HA 25 +#define R_NIOS2_PCREL_LO 26 +#define R_NIOS2_PCREL_HA 27 +#define R_NIOS2_TLS_GD16 28 +#define R_NIOS2_TLS_LDM16 29 +#define R_NIOS2_TLS_LDO16 30 +#define R_NIOS2_TLS_IE16 31 +#define R_NIOS2_TLS_LE16 32 +#define R_NIOS2_TLS_DTPMOD 33 +#define R_NIOS2_TLS_DTPREL 34 +#define R_NIOS2_TLS_TPREL 35 +#define R_NIOS2_COPY 36 +#define R_NIOS2_GLOB_DAT 37 +#define R_NIOS2_JUMP_SLOT 38 +#define R_NIOS2_RELATIVE 39 +#define R_NIOS2_GOTOFF 40 +#define R_NIOS2_CALL26_NOAT 41 +#define R_NIOS2_GOT_LO 42 +#define R_NIOS2_GOT_HA 43 +#define R_NIOS2_CALL_LO 44 +#define R_NIOS2_CALL_HA 45 + +#define R_OR1K_NONE 0 +#define R_OR1K_32 1 +#define R_OR1K_16 2 +#define R_OR1K_8 3 +#define R_OR1K_LO_16_IN_INSN 4 +#define R_OR1K_HI_16_IN_INSN 5 +#define R_OR1K_INSN_REL_26 6 +#define R_OR1K_GNU_VTENTRY 7 +#define R_OR1K_GNU_VTINHERIT 8 +#define R_OR1K_32_PCREL 9 +#define R_OR1K_16_PCREL 10 +#define R_OR1K_8_PCREL 11 +#define R_OR1K_GOTPC_HI16 12 +#define R_OR1K_GOTPC_LO16 13 +#define R_OR1K_GOT16 14 +#define R_OR1K_PLT26 15 +#define R_OR1K_GOTOFF_HI16 16 +#define R_OR1K_GOTOFF_LO16 17 +#define R_OR1K_COPY 18 +#define R_OR1K_GLOB_DAT 19 +#define R_OR1K_JMP_SLOT 20 +#define R_OR1K_RELATIVE 21 +#define R_OR1K_TLS_GD_HI16 22 +#define R_OR1K_TLS_GD_LO16 23 +#define R_OR1K_TLS_LDM_HI16 24 +#define R_OR1K_TLS_LDM_LO16 25 +#define R_OR1K_TLS_LDO_HI16 26 +#define R_OR1K_TLS_LDO_LO16 27 +#define R_OR1K_TLS_IE_HI16 28 +#define R_OR1K_TLS_IE_LO16 29 +#define R_OR1K_TLS_LE_HI16 30 +#define R_OR1K_TLS_LE_LO16 31 +#define R_OR1K_TLS_TPOFF 32 +#define R_OR1K_TLS_DTPOFF 33 +#define R_OR1K_TLS_DTPMOD 34 + +#define R_BPF_NONE 0 +#define R_BPF_MAP_FD 1 + +#ifdef __cplusplus +} +#endif + + +#endif diff --git a/tools/mgba-rom-test-hydra/main.c b/tools/mgba-rom-test-hydra/main.c index 2c49b1dde8..55ba664e75 100644 --- a/tools/mgba-rom-test-hydra/main.c +++ b/tools/mgba-rom-test-hydra/main.c @@ -21,6 +21,7 @@ #include #include #include +#include #include #include #include @@ -32,6 +33,7 @@ #include #include #include +#include "elf.h" #define min(a, b) ((a) < (b) ? (a) : (b)) @@ -69,10 +71,125 @@ struct Runner char assumeFailed_FilenameLine[MAX_SUMMARY_TESTS_TO_LIST][MAX_TEST_LIST_BUFFER_LENGTH]; }; +struct Symbol { + const char *name; + uint32_t address; + size_t size; +}; + +struct SymbolTable { + struct Symbol *symbols; + size_t symbols_n; +}; + static unsigned nrunners = 0; static unsigned runners_digits = 0; static struct Runner *runners = NULL; +// TODO: Build the symbol table on demand. +static struct SymbolTable symbol_table = { NULL, 0 }; + +static const struct Symbol *lookup_address(uint32_t address) +{ + int lo = 0, hi = symbol_table.symbols_n; + while (lo < hi) + { + int mi = lo + (hi - lo) / 2; + const struct Symbol *symbol = &symbol_table.symbols[mi]; + if (address < symbol->address) + hi = mi; + else if (address >= symbol->address + symbol->size) + lo = mi + 1; + else + return symbol; + } + return NULL; +} + +#ifndef _GNU_SOURCE +// Very naive implementation of 'memmem' for systems which don't make it +// available by default. +void *memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen) +{ + const char *haystack_ = haystack; + const char *needle_ = needle; + for (size_t i = 0; i < haystacklen - needlelen; i++) + { + size_t j; + for (j = 0; j < needlelen; j++) + { + if (haystack_[i+j] != needle_[j]) + break; + } + if (j == needlelen) + return (void *)&haystack_[i]; + } + return NULL; +} +#endif + +// Similar to 'fwrite(buffer, 1, size, f)' except that anything which +// looks like the output of '%p' (i.e. '<0x\d{7}>') is translated into +// the name of a symbol (if it represents one). +static void fprint_buffer(FILE *f, const char *buffer, size_t size) +{ + const char *buffer_end = buffer + size; + while (buffer < buffer_end) + { + // Find the next '<0x'. + char *buffer_ = memmem(buffer, buffer_end - buffer, "<0x", 3); + + // No '<0x' or could not possibly match, print everything. + if (buffer_ == NULL || buffer_end - buffer_ < 11 || buffer_[10] != '>') + { + fwrite(buffer, 1, buffer_end - buffer, f); + break; + } + + // Print everything before the '<0x'. + fwrite(buffer, 1, buffer_ - buffer, f); + buffer = buffer_; + + unsigned long address = strtoul(buffer + 3, &buffer_, 16); + // Un-mirror EWRAM/IWRAM/ROM addresses. + switch (address & 0xF000000) + { + case 0x2000000: address = address & 0x203FFFF; break; + case 0x3000000: address = address & 0x3007FFF; break; + case 0x7000000: address = address & 0x70003FF; break; + case 0xA000000: address = address & 0x9FFFFFF; break; + case 0xB000000: address = address & 0x9FFFFFF; break; + case 0xC000000: address = address & 0x9FFFFFF; break; + case 0xD000000: address = address & 0x9FFFFFF; break; + } + + // Not a 7-digit address, print the '<0x' part and loop. + if (buffer_ != buffer + 10) + { + fwrite(buffer, 1, 3, f); + buffer += 3; + continue; + } + + const struct Symbol *symbol = lookup_address(address); + + // Not a symbol, print the parsed part and loop. + if (symbol == NULL) + { + fwrite(buffer, 1, 11, f); + buffer += 11; + continue; + } + + if (symbol->address == address) + fprintf(f, "<%s>", symbol->name); + else + fprintf(f, "<%s+0x%lx>", symbol->name, address - symbol->address); + + buffer += 11; + } +} + static void handle_read(int i, struct Runner *runner) { char *sol = runner->input_buffer; @@ -156,7 +273,7 @@ add_to_results: soc += 2; fprintf(stdout, "[%0*d] %s: ", runners_digits, i, runner->test_name); fwrite(soc, 1, eol - soc, stdout); - fwrite(runner->output_buffer, 1, runner->output_buffer_size, stdout); + fprint_buffer(stdout, runner->output_buffer, runner->output_buffer_size); strcpy(runner->test_name, "WAITING..."); runner->output_buffer_size = 0; break; @@ -186,11 +303,7 @@ buffer_output: } else { - if (write(STDOUT_FILENO, sol, eol - sol) == -1) - { - perror("write failed"); - exit(2); - } + fwrite(sol, 1, eol - sol, stdout); } sol += n; consumed += n; @@ -233,12 +346,80 @@ static void exit2(int _) exit(2); } -int compare_strings(const void * a, const void * b) +static int compare_addresses(const void *a, const void *b) { - const char *arg1 = (const char *) a; - const char *arg2 = (const char *) b; + const struct Symbol *sa = a, *sb = b; + if (sa->address < sb->address) + return -1; + else if (sa->address == sb->address) + return 0; + else + return 1; +} - return strcmp(arg1, arg2); +static void build_symbol_table(void *elf) +{ + if (memcmp(elf, ELFMAG, 4) != 0) + goto error; + + size_t symbol_table_symbols_c = 1024; + symbol_table.symbols = malloc(symbol_table_symbols_c * sizeof(*symbol_table.symbols)); + if (symbol_table.symbols == NULL) + goto error; + + const Elf32_Ehdr *ehdr = (Elf32_Ehdr *)elf; + const Elf32_Shdr *shdrs = (Elf32_Shdr *)(elf + ehdr->e_shoff); + + if (ehdr->e_shstrndx == SHN_UNDEF) + goto error; + const Elf32_Shdr *shdr_shstr = &shdrs[ehdr->e_shstrndx]; + const char *shstr = (const char *)(elf + shdr_shstr->sh_offset); + const Elf32_Shdr *shdr_symtab = NULL; + const Elf32_Shdr *shdr_strtab = NULL; + for (int i = 0; i < ehdr->e_shnum; i++) + { + const char *sh_name = shstr + shdrs[i].sh_name; + if (strcmp(sh_name, ".symtab") == 0) + shdr_symtab = &shdrs[i]; + else if (strcmp(sh_name, ".strtab") == 0) + shdr_strtab = &shdrs[i]; + } + if (!shdr_symtab) + goto error; + if (!shdr_strtab) + goto error; + + const Elf32_Sym *symtab = (Elf32_Sym *)(elf + shdr_symtab->sh_offset); + const char *strtab = (const char *)(elf + shdr_strtab->sh_offset); + for (int i = 0; i < shdr_symtab->sh_size / shdr_symtab->sh_entsize; i++) + { + if (symtab[i].st_name == 0) continue; + if (symtab[i].st_shndx > ehdr->e_shnum) continue; + if (symtab[i].st_value < 0x2000000 || symtab[i].st_size == 0) continue; + struct Symbol symbol = + { + .name = strtab + symtab[i].st_name, + .address = symtab[i].st_value, + .size = symtab[i].st_size, + }; + if (symbol_table.symbols_n == symbol_table_symbols_c) + { + symbol_table_symbols_c *= 2; + void *symbols = realloc(symbol_table.symbols, symbol_table_symbols_c * sizeof(*symbol_table.symbols)); + if (symbols == NULL) + goto error; + symbol_table.symbols = symbols; + } + symbol_table.symbols[symbol_table.symbols_n++] = symbol; + } + + qsort(symbol_table.symbols, symbol_table.symbols_n, sizeof(*symbol_table.symbols), compare_addresses); + return; + +error: + free(symbol_table.symbols); + symbol_table.symbols = NULL; + symbol_table.symbols_n = 0; } int main(int argc, char *argv[]) @@ -292,6 +473,8 @@ int main(int argc, char *argv[]) exit(2); } + build_symbol_table(elf); + nrunners = 1; const char *makeflags = getenv("MAKEFLAGS"); if (makeflags) @@ -629,7 +812,9 @@ int main(int argc, char *argv[]) fprintf(stdout, " - \e[31mand %d more...\e[0m\n", fails - MAX_SUMMARY_TESTS_TO_LIST); break; } - fprintf(stdout, " - \e[31m%s\e[0m - %s.\n", failed_TestFilenameLine[i], failed_TestNames[i]); + fprintf(stdout, " - \e[31m"); + fprint_buffer(stdout, failed_TestFilenameLine[i], strlen(failed_TestFilenameLine[i])); + fprintf(stdout, "\e[0m - %s.\n", failed_TestNames[i]); } } @@ -643,7 +828,9 @@ int main(int argc, char *argv[]) fprintf(stdout, " - \e[33mand %d more...\e[0m\n", assumptionFails - MAX_SUMMARY_TESTS_TO_LIST); break; } - fprintf(stdout, " - \e[33m%s\e[0m - %s.\n", assumeFailed_FilenameLine[i], assumeFailed_TestNames[i]); + fprintf(stdout, " - \e[33m"); + fprint_buffer(stdout, assumeFailed_FilenameLine[i], strlen(assumeFailed_FilenameLine[i])); + fprintf(stdout, "\e[0m - %s.\n", assumeFailed_TestNames[i]); } } @@ -657,7 +844,9 @@ int main(int argc, char *argv[]) fprintf(stdout, " - \e[32mand %d more...\e[0m\n", knownFailsPassing - MAX_SUMMARY_TESTS_TO_LIST); break; } - fprintf(stdout, " - \e[32m%s\e[0m - %s.\n", knownFailingPassed_FilenameLine[i], knownFailingPassed_TestNames[i]); + fprintf(stdout, " - \e[32m"); + fprint_buffer(stdout, knownFailingPassed_FilenameLine[i], strlen(knownFailingPassed_FilenameLine[i])); + fprintf(stdout, "\e[0m - %s.\n", knownFailingPassed_TestNames[i]); } } diff --git a/tools/preproc/asm_file.cpp b/tools/preproc/asm_file.cpp index 39d352bbd7..66667935a1 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) @@ -520,9 +520,21 @@ bool AsmFile::ParseEnum() long currentHeaderLine = SkipWhitespaceAndEol(); std::string enumName = ReadIdentifier(); currentHeaderLine += SkipWhitespaceAndEol(); + std::string enumBase = "0"; 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; @@ -542,11 +554,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++; } 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); } } diff --git a/tools/scaninc/c_file.cpp b/tools/scaninc/c_file.cpp index e1d98acbd0..a978b9a506 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() diff --git a/tools/scaninc/scaninc.cpp b/tools/scaninc/scaninc.cpp index dcb16c0e79..d470a3f163 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); @@ -111,7 +125,13 @@ 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) { @@ -121,8 +141,46 @@ 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; + } + 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 << make_outfile.c_str() << ":"; + for (const std::string &path : dependencies_includes) + { + 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(); } } diff --git a/tools/trainerproc/main.c b/tools/trainerproc/main.c index b410e810b0..f1bcf1bfa4 100644 --- a/tools/trainerproc/main.c +++ b/tools/trainerproc/main.c @@ -251,51 +251,6 @@ static bool set_parse_error(struct Parser *p, struct SourceLocation location, co return false; } -static bool show_parse_error(struct Parser *p) -{ - // Print error message. - int n = fprintf(stderr, "%s:%d: ", p->source->path, p->error_location.line); - fprintf(stderr, "error: %s\n", p->error); - - // Seek to the line. - int line, begin, end; - for (line = 1, begin = 0; begin < p->source->buffer_n; begin++) - { - if (p->error_location.line == line) - break; - if (p->source->buffer[begin] == '\n') - line++; - } - for (end = begin; end < p->source->buffer_n; end++) - { - if (p->source->buffer[end] == '\n') - break; - } - - // Print the source line. - fprintf(stderr, "%s:%d: %.*s\n", p->source->path, p->error_location.line, end - begin, &p->source->buffer[begin]); - - // Print caret pointing at the column. - fprintf(stderr, "%*s", n, ""); - for (int column = 1; column < p->error_location.column && begin + column < end; column++) - { - unsigned char c = p->source->buffer[begin + column]; - fputc(c == '\t' ? c : ' ', stderr); - } - fprintf(stderr, "^\n"); - - p->error = NULL; - p->fatal_error = true; - - return false; -} - -static bool set_show_parse_error(struct Parser *p, struct SourceLocation location, const char *error) -{ - set_parse_error(p, location, error); - return show_parse_error(p); -} - __attribute__((warn_unused_result)) static bool peek_char(struct Parser *p, unsigned char *c) { @@ -618,6 +573,59 @@ static bool match_move_identifier(struct Parser *p, struct Token *t) return true; } +static bool show_parse_error(struct Parser *p) +{ + // Print error message. + int n = fprintf(stderr, "%s:%d: ", p->source->path, p->error_location.line); + fprintf(stderr, "error: %s\n", p->error); + + struct Parser p_ = { + .source = p->source, + .location = { .line = 1, .column = 1 }, + .offset = 0, + }; + + for (;;) { + if (p->error_location.line == p_.location.line) + break; + if (!match_empty_line(&p_)) + skip_line(&p_); + if (match_eof(&p_)) + assert(false); + } + + int begin = p_.offset; + int end; + for (end = begin; end < p->source->buffer_n; end++) + { + if (p->source->buffer[end] == '\n') + break; + } + + // Print the source line. + fprintf(stderr, "%s:%d: %.*s\n", p->source->path, p->error_location.line, end - begin, &p->source->buffer[begin]); + + // Print caret pointing at the column. + fprintf(stderr, "%*s", n, ""); + for (int column = 1; column < p->error_location.column && begin + column < end; column++) + { + unsigned char c = p->source->buffer[begin + column]; + fputc(c == '\t' ? c : ' ', stderr); + } + fprintf(stderr, "^\n"); + + p->error = NULL; + p->fatal_error = true; + + return false; +} + +static bool set_show_parse_error(struct Parser *p, struct SourceLocation location, const char *error) +{ + set_parse_error(p, location, error); + return show_parse_error(p); +} + __attribute__((warn_unused_result)) static bool parse_section(struct Parser *p, struct Token *section) { @@ -1545,6 +1553,7 @@ static void fprint_species(FILE *f, const char *prefix, struct String s) static const unsigned char *male = (unsigned char *)u8"♂"; static const unsigned char *female = (unsigned char *)u8"♀"; static const unsigned char *e_diacritic = (unsigned char *)u8"é"; + static const unsigned char *right_single_quotation_mark = (unsigned char *)u8"’"; for (int i = 0; i < s.string_n; i++) { unsigned char c = s.string[i]; @@ -1562,7 +1571,7 @@ static void fprint_species(FILE *f, const char *prefix, struct String s) underscore = false; fputc(c - 'a' + 'A', f); } - else if (c == '\'' || c == '%') + else if (c == '\'' || c == '%' || is_utf8_character(s, &i, right_single_quotation_mark)) { // Do nothing. }