Merge branch '_RHH/master' into _RHH/upcoming
This commit is contained in:
commit
ee9c6d4912
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@ -21,5 +21,5 @@
|
|||||||
<!-- If it doesn't apply, feel free to remove this section. -->
|
<!-- If it doesn't apply, feel free to remove this section. -->
|
||||||
|
|
||||||
## **Discord contact info**
|
## **Discord contact info**
|
||||||
<!--- formatted as name#numbers, e.g. Lunos#4026 -->
|
<!--- Formatted as username (e.g. Lunos) or username#numbers (e.g. Lunos#4026) -->
|
||||||
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
<!--- Contributors must join https://discord.gg/6CzjAG6GZk -->
|
||||||
|
|||||||
3
.github/workflows/build.yml
vendored
3
.github/workflows/build.yml
vendored
@ -25,7 +25,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo apt update
|
sudo apt update
|
||||||
sudo apt install -y build-essential libpng-dev libelf-dev
|
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
|
# gcc-arm-none-eabi is only needed for the modern build
|
||||||
# as an alternative to dkP
|
# as an alternative to dkP
|
||||||
|
|
||||||
@ -38,5 +38,4 @@ jobs:
|
|||||||
env:
|
env:
|
||||||
TEST: 1
|
TEST: 1
|
||||||
run: |
|
run: |
|
||||||
make -j${nproc} -O pokeemerald-test.elf
|
|
||||||
make -j${nproc} check
|
make -j${nproc} check
|
||||||
|
|||||||
2
.gitignore
vendored
2
.gitignore
vendored
@ -38,5 +38,7 @@ prefabs.json
|
|||||||
*.diff
|
*.diff
|
||||||
*.sym
|
*.sym
|
||||||
*.js
|
*.js
|
||||||
|
/pokeemerald-*.png
|
||||||
|
/pokeemerald_agbcc-*.png
|
||||||
src/data/map_group_count.h
|
src/data/map_group_count.h
|
||||||
tools/trainerproc/trainerproc
|
tools/trainerproc/trainerproc
|
||||||
|
|||||||
@ -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.
|
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)
|
## 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).
|
WSL1 is the preferred terminal to build **pokeemerald Expansion**. The following instructions will explain how to install WSL1 (referred to interchangeably as WSL).
|
||||||
|
|||||||
720
Makefile
720
Makefile
@ -1,155 +1,193 @@
|
|||||||
TOOLCHAIN := $(DEVKITARM)
|
# GBA rom header
|
||||||
COMPARE ?= 0
|
TITLE := POKEMON EMER
|
||||||
|
GAME_CODE := BPEE
|
||||||
|
MAKER_CODE := 01
|
||||||
|
REVISION := 0
|
||||||
|
KEEP_TEMPS ?= 0
|
||||||
|
|
||||||
|
# `File name`.gba ('_agbcc' will be appended to the non-modern builds)
|
||||||
|
FILE_NAME := pokeemerald
|
||||||
|
BUILD_DIR := build
|
||||||
|
|
||||||
|
# Builds the ROM using a modern compiler
|
||||||
|
MODERN ?= 1
|
||||||
|
# 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
|
||||||
|
|
||||||
|
ifeq (agbcc,$(MAKECMDGOALS))
|
||||||
|
MODERN := 0
|
||||||
|
endif
|
||||||
ifeq (compare,$(MAKECMDGOALS))
|
ifeq (compare,$(MAKECMDGOALS))
|
||||||
COMPARE := 1
|
COMPARE := 1
|
||||||
endif
|
endif
|
||||||
|
ifeq (check,$(MAKECMDGOALS))
|
||||||
|
TEST := 1
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Default make rule
|
||||||
|
all: rom
|
||||||
|
|
||||||
|
# Toolchain selection
|
||||||
|
TOOLCHAIN := $(DEVKITARM)
|
||||||
# don't use dkP's base_tools anymore
|
# don't use dkP's base_tools anymore
|
||||||
# because the redefinition of $(CC) conflicts
|
# because the redefinition of $(CC) conflicts
|
||||||
# with when we want to use $(CC) to preprocess files
|
# with when we want to use $(CC) to preprocess files
|
||||||
# thus, manually create the variables for the bin
|
# thus, manually create the variables for the bin
|
||||||
# files, or use arm-none-eabi binaries on the system
|
# files, or use arm-none-eabi binaries on the system
|
||||||
# if dkP is not installed on this system
|
# if dkP is not installed on this system
|
||||||
|
|
||||||
ifneq (,$(TOOLCHAIN))
|
ifneq (,$(TOOLCHAIN))
|
||||||
ifneq ($(wildcard $(TOOLCHAIN)/bin),)
|
ifneq ($(wildcard $(TOOLCHAIN)/bin),)
|
||||||
export PATH := $(TOOLCHAIN)/bin:$(PATH)
|
export PATH := $(TOOLCHAIN)/bin:$(PATH)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
PREFIX := arm-none-eabi-
|
PREFIX := arm-none-eabi-
|
||||||
OBJCOPY := $(PREFIX)objcopy
|
OBJCOPY := $(PREFIX)objcopy
|
||||||
OBJDUMP := $(PREFIX)objdump
|
OBJDUMP := $(PREFIX)objdump
|
||||||
AS := $(PREFIX)as
|
AS := $(PREFIX)as
|
||||||
|
|
||||||
LD := $(PREFIX)ld
|
LD := $(PREFIX)ld
|
||||||
|
|
||||||
ARMCC := $(PREFIX)gcc
|
|
||||||
PATH_ARMCC := PATH="$(PATH)" $(ARMCC)
|
|
||||||
|
|
||||||
ifeq ($(OS),Windows_NT)
|
|
||||||
EXE := .exe
|
|
||||||
else
|
|
||||||
EXE :=
|
EXE :=
|
||||||
|
ifeq ($(OS),Windows_NT)
|
||||||
|
EXE := .exe
|
||||||
endif
|
endif
|
||||||
|
|
||||||
TITLE := POKEMON EMER
|
# use arm-none-eabi-cpp for macOS
|
||||||
GAME_CODE := BPEE
|
# as macOS's default compiler is clang
|
||||||
MAKER_CODE := 01
|
# and clang's preprocessor will warn on \u
|
||||||
REVISION := 0
|
# when preprocessing asm files, expecting a unicode literal
|
||||||
TEST ?= 0
|
# we can't unconditionally use arm-none-eabi-cpp
|
||||||
ANALYZE ?= 0
|
# as installations which install binutils-arm-none-eabi
|
||||||
UNUSED_ERROR ?= 0
|
# don't come with it
|
||||||
DEBUG ?= 0
|
ifneq ($(MODERN),1)
|
||||||
|
ifeq ($(shell uname -s),Darwin)
|
||||||
ifeq (check,$(MAKECMDGOALS))
|
CPP := $(PREFIX)cpp
|
||||||
TEST := 1
|
else
|
||||||
|
CPP := $(CC) -E
|
||||||
|
endif
|
||||||
|
else
|
||||||
|
CPP := $(PREFIX)cpp
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq (debug,$(MAKECMDGOALS))
|
ROM_NAME := $(FILE_NAME)_agbcc.gba
|
||||||
DEBUG := 1
|
OBJ_DIR_NAME := $(BUILD_DIR)/emerald
|
||||||
endif
|
OBJ_DIR_NAME_TEST := $(BUILD_DIR)/test
|
||||||
|
MODERN_ROM_NAME := $(FILE_NAME).gba
|
||||||
|
MODERN_OBJ_DIR_NAME := $(BUILD_DIR)/modern
|
||||||
|
MODERN_OBJ_DIR_NAME_TEST := $(BUILD_DIR)/modern-test
|
||||||
|
|
||||||
CPP := $(PREFIX)cpp
|
|
||||||
|
|
||||||
ROM_NAME := pokeemerald.gba
|
|
||||||
ELF_NAME := $(ROM_NAME:.gba=.elf)
|
ELF_NAME := $(ROM_NAME:.gba=.elf)
|
||||||
MAP_NAME := $(ROM_NAME:.gba=.map)
|
MAP_NAME := $(ROM_NAME:.gba=.map)
|
||||||
OBJ_DIR_NAME := build/modern
|
MODERN_ELF_NAME := $(MODERN_ROM_NAME:.gba=.elf)
|
||||||
|
MODERN_MAP_NAME := $(MODERN_ROM_NAME:.gba=.map)
|
||||||
|
TESTELF = $(ROM_NAME:.gba=-test.elf)
|
||||||
|
HEADLESSELF = $(ROM_NAME:.gba=-test-headless.elf)
|
||||||
|
|
||||||
SHELL := bash -o pipefail
|
# Pick our active variables
|
||||||
|
ifeq ($(MODERN),0)
|
||||||
ELF = $(ROM:.gba=.elf)
|
ROM := $(ROM_NAME)
|
||||||
MAP = $(ROM:.gba=.map)
|
ifeq ($(TEST), 0)
|
||||||
SYM = $(ROM:.gba=.sym)
|
OBJ_DIR := $(OBJ_DIR_NAME)
|
||||||
|
else
|
||||||
TEST_OBJ_DIR_NAME := build/modern-test
|
OBJ_DIR := $(OBJ_DIR_NAME_TEST)
|
||||||
DEBUG_OBJ_DIR_NAME := build/modern-debug
|
endif
|
||||||
|
else
|
||||||
TESTELF = $(ROM:.gba=-test.elf)
|
ROM := $(MODERN_ROM_NAME)
|
||||||
HEADLESSELF = $(ROM:.gba=-test-headless.elf)
|
ifeq ($(TEST), 0)
|
||||||
|
OBJ_DIR := $(MODERN_OBJ_DIR_NAME)
|
||||||
|
else
|
||||||
|
OBJ_DIR := $(MODERN_OBJ_DIR_NAME_TEST)
|
||||||
|
endif
|
||||||
|
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
|
C_SUBDIR = src
|
||||||
GFLIB_SUBDIR = gflib
|
|
||||||
ASM_SUBDIR = asm
|
ASM_SUBDIR = asm
|
||||||
DATA_SRC_SUBDIR = src/data
|
DATA_SRC_SUBDIR = src/data
|
||||||
DATA_ASM_SUBDIR = data
|
DATA_ASM_SUBDIR = data
|
||||||
SONG_SUBDIR = sound/songs
|
SONG_SUBDIR = sound/songs
|
||||||
MID_SUBDIR = sound/songs/midi
|
MID_SUBDIR = sound/songs/midi
|
||||||
SAMPLE_SUBDIR = sound/direct_sound_samples
|
|
||||||
CRY_SUBDIR = sound/direct_sound_samples/cries
|
|
||||||
TEST_SUBDIR = test
|
TEST_SUBDIR = test
|
||||||
|
|
||||||
C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
|
C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
|
||||||
GFLIB_BUILDDIR = $(OBJ_DIR)/$(GFLIB_SUBDIR)
|
|
||||||
ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
|
ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
|
||||||
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
|
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
|
||||||
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
|
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
|
||||||
MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
|
MID_BUILDDIR = $(OBJ_DIR)/$(MID_SUBDIR)
|
||||||
TEST_BUILDDIR = $(OBJ_DIR)/$(TEST_SUBDIR)
|
TEST_BUILDDIR = $(OBJ_DIR)/$(TEST_SUBDIR)
|
||||||
|
|
||||||
ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=1
|
SHELL := bash -o pipefail
|
||||||
|
|
||||||
CC1 = $(shell $(PATH_ARMCC) --print-prog-name=cc1) -quiet
|
# Set flags for tools
|
||||||
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
|
ASFLAGS := -mcpu=arm7tdmi --defsym MODERN=$(MODERN)
|
||||||
|
|
||||||
ifeq ($(ANALYZE),1)
|
INCLUDE_DIRS := include
|
||||||
override CFLAGS += -fanalyzer
|
INCLUDE_CPP_ARGS := $(INCLUDE_DIRS:%=-iquote %)
|
||||||
endif
|
INCLUDE_SCANINC_ARGS := $(INCLUDE_DIRS:%=-I %)
|
||||||
# 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
|
|
||||||
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)
|
O_LEVEL ?= 2
|
||||||
override CFLAGS += -Og -g
|
CPPFLAGS := $(INCLUDE_CPP_ARGS) -Wno-trigraphs -DMODERN=$(MODERN) -DTESTING=$(TEST)
|
||||||
|
ifeq ($(MODERN),0)
|
||||||
|
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc -nostdinc -undef
|
||||||
|
CC1 := tools/agbcc/bin/agbcc$(EXE)
|
||||||
|
override CFLAGS += -mthumb-interwork -Wimplicit -Wparentheses -Werror -O$(O_LEVEL) -fhex-asm -g
|
||||||
|
LIBPATH := -L ../../tools/agbcc/lib
|
||||||
|
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
|
||||||
else
|
else
|
||||||
override CFLAGS += -O2
|
# Note: The makefile must be set up to not call these if modern == 0
|
||||||
|
MODERNCC := $(PREFIX)gcc
|
||||||
|
PATH_MODERNCC := PATH="$(PATH)" $(MODERNCC)
|
||||||
|
CC1 := $(shell $(PATH_MODERNCC) --print-prog-name=cc1) -quiet
|
||||||
|
override CFLAGS += -mthumb -mthumb-interwork -O$(O_LEVEL) -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast -std=gnu17 -Werror -Wall -Wno-strict-aliasing -Wno-attribute-alias -Woverride-init
|
||||||
|
ifeq ($(ANALYZE),1)
|
||||||
|
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
|
||||||
|
endif
|
||||||
|
endif
|
||||||
|
LIBPATH := -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libgcc.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libnosys.a))" -L "$(dir $(shell $(PATH_MODERNCC) -mthumb -print-file-name=libc.a))"
|
||||||
|
LIB := $(LIBPATH) -lc -lnosys -lgcc -L../../libagbsyscall -lagbsyscall
|
||||||
|
endif
|
||||||
|
# Enable debug info if set
|
||||||
|
ifeq ($(DINFO),1)
|
||||||
|
override CFLAGS += -g
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifeq ($(TESTELF),$(MAKECMDGOALS))
|
# Variable filled out in other make files
|
||||||
TEST := 1
|
AUTO_GEN_TARGETS :=
|
||||||
endif
|
include make_tools.mk
|
||||||
|
# Tool executables
|
||||||
ifeq ($(TEST),1)
|
GFX := $(TOOLS_DIR)/gbagfx/gbagfx$(EXE)
|
||||||
OBJ_DIR := $(TEST_OBJ_DIR_NAME)
|
AIF := $(TOOLS_DIR)/aif2pcm/aif2pcm$(EXE)
|
||||||
endif
|
MID := $(TOOLS_DIR)/mid2agb/mid2agb$(EXE)
|
||||||
ifeq ($(DEBUG),1)
|
SCANINC := $(TOOLS_DIR)/scaninc/scaninc$(EXE)
|
||||||
OBJ_DIR := $(DEBUG_OBJ_DIR_NAME)
|
PREPROC := $(TOOLS_DIR)/preproc/preproc$(EXE)
|
||||||
endif
|
RAMSCRGEN := $(TOOLS_DIR)/ramscrgen/ramscrgen$(EXE)
|
||||||
|
FIX := $(TOOLS_DIR)/gbafix/gbafix$(EXE)
|
||||||
|
MAPJSON := $(TOOLS_DIR)/mapjson/mapjson$(EXE)
|
||||||
CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=1 -DTESTING=$(TEST)
|
JSONPROC := $(TOOLS_DIR)/jsonproc/jsonproc$(EXE)
|
||||||
|
TRAINERPROC := $(TOOLS_DIR)/trainerproc/trainerproc$(EXE)
|
||||||
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
PATCHELF := $(TOOLS_DIR)/patchelf/patchelf$(EXE)
|
||||||
GFX := tools/gbagfx/gbagfx$(EXE)
|
ROMTEST ?= $(shell { command -v mgba-rom-test || command -v $(TOOLS_DIR)/mgba/mgba-rom-test$(EXE); } 2>/dev/null)
|
||||||
AIF := tools/aif2pcm/aif2pcm$(EXE)
|
ROMTESTHYDRA := $(TOOLS_DIR)/mgba-rom-test-hydra/mgba-rom-test-hydra$(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)
|
|
||||||
|
|
||||||
PERL := perl
|
PERL := perl
|
||||||
|
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
|
||||||
# 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))
|
|
||||||
|
|
||||||
MAKEFLAGS += --no-print-directory
|
MAKEFLAGS += --no-print-directory
|
||||||
|
|
||||||
@ -160,37 +198,41 @@ MAKEFLAGS += --no-print-directory
|
|||||||
# Delete files that weren't built properly
|
# Delete files that weren't built properly
|
||||||
.DELETE_ON_ERROR:
|
.DELETE_ON_ERROR:
|
||||||
|
|
||||||
# Secondary expansion is required for dependency variables in object rules.
|
RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidynonmodern tidycheck generated clean-generated $(TESTELF)
|
||||||
.SECONDEXPANSION:
|
.PHONY: all rom agbcc modern compare check
|
||||||
|
.PHONY: $(RULES_NO_SCAN)
|
||||||
.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
|
|
||||||
|
|
||||||
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
|
||||||
|
|
||||||
# Build tools when building the rom
|
# Check if we need to scan dependencies based on the chosen rule OR user preference
|
||||||
# Disable dependency scanning for clean/tidy/tools
|
NODEP ?= 0
|
||||||
# Use a separate minimal makefile for speed
|
# Check if we need to pre-build tools and generate assets based on the chosen rule.
|
||||||
# Since we don't need to reload most of this makefile
|
SETUP_PREREQS ?= 1
|
||||||
ifeq (,$(filter-out all rom compare agbcc modern check libagbsyscall syms $(TESTELF) debug,$(MAKECMDGOALS)))
|
# Disable dependency scanning for rules that don't need it.
|
||||||
$(call infoshell, $(MAKE) -f make_tools.mk)
|
ifneq (,$(MAKECMDGOALS))
|
||||||
else
|
ifeq (,$(filter-out $(RULES_NO_SCAN),$(MAKECMDGOALS)))
|
||||||
NODEP ?= 1
|
NODEP := 1
|
||||||
endif
|
SETUP_PREREQS := 0
|
||||||
|
|
||||||
# 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
|
|
||||||
endif
|
endif
|
||||||
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_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_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src)))
|
||||||
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
|
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
|
||||||
@ -200,10 +242,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 := $(patsubst $(TEST_SUBDIR)/%.c,$(TEST_BUILDDIR)/%.o,$(TEST_SRCS))
|
||||||
TEST_OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(TEST_OBJS))
|
TEST_OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(TEST_OBJS))
|
||||||
|
|
||||||
GFLIB_SRCS := $(wildcard $(GFLIB_SUBDIR)/*.c)
|
C_ASM_SRCS := $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s)
|
||||||
GFLIB_OBJS := $(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o,$(GFLIB_SRCS))
|
|
||||||
|
|
||||||
C_ASM_SRCS += $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s)
|
|
||||||
C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS))
|
C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS))
|
||||||
|
|
||||||
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
|
ASM_SRCS := $(wildcard $(ASM_SUBDIR)/*.s)
|
||||||
@ -221,243 +260,15 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
|
|||||||
MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid)
|
MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid)
|
||||||
MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
|
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))
|
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
|
||||||
|
|
||||||
SUBDIRS := $(sort $(dir $(OBJS) $(dir $(TEST_OBJS))))
|
SUBDIRS := $(sort $(dir $(OBJS) $(dir $(TEST_OBJS))))
|
||||||
$(shell mkdir -p $(SUBDIRS))
|
$(shell mkdir -p $(SUBDIRS))
|
||||||
endif
|
|
||||||
|
|
||||||
AUTO_GEN_TARGETS :=
|
# Pretend rules that are actually flags defer to `make all`
|
||||||
|
modern: all
|
||||||
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.
|
|
||||||
compare: 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) <flags> -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) <flags> -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) <flags> -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) <flags> -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) <flags> -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 ../../$@ <objects> <lib>"
|
|
||||||
@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
|
|
||||||
|
|
||||||
# Uncomment the next line, and then comment the 4 lines after it to reenable agbcc.
|
# Uncomment the next line, and then comment the 4 lines after it to reenable agbcc.
|
||||||
#agbcc: all
|
#agbcc: all
|
||||||
agbcc:
|
agbcc:
|
||||||
@ -465,10 +276,6 @@ agbcc:
|
|||||||
@echo "Search for 'agbcc: all' in Makefile to reenable agbcc."
|
@echo "Search for 'agbcc: all' in Makefile to reenable agbcc."
|
||||||
@exit 1
|
@exit 1
|
||||||
|
|
||||||
modern: all
|
|
||||||
|
|
||||||
debug: all
|
|
||||||
|
|
||||||
LD_SCRIPT_TEST := ld_script_test.ld
|
LD_SCRIPT_TEST := ld_script_test.ld
|
||||||
|
|
||||||
$(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS)
|
$(OBJ_DIR)/ld_script_test.ld: $(LD_SCRIPT_TEST) $(LD_SCRIPT_DEPS)
|
||||||
@ -491,12 +298,191 @@ check: $(TESTELF)
|
|||||||
$(PATCHELF) $(HEADLESSELF) gTestRunnerHeadless '\x01' gTestRunnerSkipIsFail "$(TEST_SKIP_IS_FAIL)"
|
$(PATCHELF) $(HEADLESSELF) gTestRunnerHeadless '\x01' gTestRunnerSkipIsFail "$(TEST_SKIP_IS_FAIL)"
|
||||||
$(ROMTESTHYDRA) $(ROMTEST) $(OBJCOPY) $(HEADLESSELF)
|
$(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: tidynonmodern tidymodern tidycheck
|
||||||
|
|
||||||
|
tidynonmodern:
|
||||||
|
rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
|
||||||
|
rm -rf $(OBJ_DIR_NAME)
|
||||||
|
|
||||||
|
tidymodern:
|
||||||
|
rm -f $(MODERN_ROM_NAME) $(MODERN_ELF_NAME) $(MODERN_MAP_NAME)
|
||||||
|
rm -rf $(MODERN_OBJ_DIR_NAME)
|
||||||
|
|
||||||
|
tidycheck:
|
||||||
|
rm -f $(TESTELF) $(HEADLESSELF)
|
||||||
|
rm -rf $(MODERN_OBJ_DIR_NAME_TEST)
|
||||||
|
rm -rf $(OBJ_DIR_NAME_TEST)
|
||||||
|
|
||||||
|
# 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)
|
||||||
|
|
||||||
|
%.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
|
||||||
|
|
||||||
|
ifeq ($(MODERN),0)
|
||||||
|
$(C_BUILDDIR)/libc.o: CC1 := $(TOOLS_DIR)/agbcc/bin/old_agbcc$(EXE)
|
||||||
|
$(C_BUILDDIR)/libc.o: CFLAGS := -O2
|
||||||
|
$(C_BUILDDIR)/siirtc.o: CFLAGS := -mthumb-interwork
|
||||||
|
$(C_BUILDDIR)/agb_flash.o: CFLAGS := -O -mthumb-interwork
|
||||||
|
$(C_BUILDDIR)/agb_flash_1m.o: CFLAGS := -O -mthumb-interwork
|
||||||
|
$(C_BUILDDIR)/agb_flash_mx.o: CFLAGS := -O -mthumb-interwork
|
||||||
|
$(C_BUILDDIR)/m4a.o: CC1 := tools/agbcc/bin/old_agbcc$(EXE)
|
||||||
|
$(C_BUILDDIR)/record_mixing.o: CFLAGS += -ffreestanding
|
||||||
|
$(C_BUILDDIR)/librfu_intr.o: CC1 := $(TOOLS_DIR)/agbcc/bin/agbcc_arm$(EXE)
|
||||||
|
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -O2 -mthumb-interwork -quiet
|
||||||
|
else
|
||||||
|
$(C_BUILDDIR)/librfu_intr.o: CFLAGS := -mthumb-interwork -O2 -mabi=apcs-gnu -mtune=arm7tdmi -march=armv4t -fno-toplevel-reorder -Wno-pointer-to-int-cast
|
||||||
|
$(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
|
||||||
|
endif
|
||||||
|
|
||||||
|
# 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) <flags> -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
|
||||||
|
|
||||||
|
$(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
|
||||||
|
|
||||||
|
# NOTE: Based on C_DEP above, but without NODEP and KEEP_TEMPS handling.
|
||||||
|
define TEST_DEP
|
||||||
|
$1: $2 $$(shell $(SCANINC) -I include -I $(TOOLS_DIR)/agbcc/include $2)
|
||||||
|
@echo "$$(CC1) <flags> -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)))))
|
||||||
|
|
||||||
|
# Linker script
|
||||||
|
ifeq ($(MODERN),0)
|
||||||
|
LD_SCRIPT := ld_script.ld
|
||||||
|
LD_SCRIPT_DEPS := $(OBJ_DIR)/sym_bss.ld $(OBJ_DIR)/sym_common.ld $(OBJ_DIR)/sym_ewram.ld
|
||||||
|
else
|
||||||
|
LD_SCRIPT := ld_script_modern.ld
|
||||||
|
LD_SCRIPT_DEPS :=
|
||||||
|
endif
|
||||||
|
|
||||||
|
# Final rules
|
||||||
|
|
||||||
libagbsyscall:
|
libagbsyscall:
|
||||||
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=1
|
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN) MODERN=$(MODERN)
|
||||||
|
|
||||||
###################
|
# Elf from object files
|
||||||
### Symbol file ###
|
$(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 ../../$@ <objs> <libs> | 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)
|
$(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' > $@
|
$(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' > $@
|
||||||
|
|||||||
@ -141,25 +141,25 @@
|
|||||||
|
|
||||||
.macro if_points_less_than num:req, destination:req
|
.macro if_points_less_than num:req, destination:req
|
||||||
.byte 0x16
|
.byte 0x16
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_points_more_than num:req, destination:req
|
.macro if_points_more_than num:req, destination:req
|
||||||
.byte 0x17
|
.byte 0x17
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_points_eq num:req, destination:req
|
.macro if_points_eq num:req, destination:req
|
||||||
.byte 0x18
|
.byte 0x18
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_points_not_eq num:req, destination:req
|
.macro if_points_not_eq num:req, destination:req
|
||||||
.byte 0x19
|
.byte 0x19
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
@ -171,25 +171,25 @@
|
|||||||
|
|
||||||
.macro if_preliminary_points_less_than num:req, destination:req
|
.macro if_preliminary_points_less_than num:req, destination:req
|
||||||
.byte 0x1B
|
.byte 0x1B
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_preliminary_points_more_than num:req, destination:req
|
.macro if_preliminary_points_more_than num:req, destination:req
|
||||||
.byte 0x1C
|
.byte 0x1C
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_preliminary_points_eq num:req, destination:req
|
.macro if_preliminary_points_eq num:req, destination:req
|
||||||
.byte 0x1D
|
.byte 0x1D
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
.macro if_preliminary_points_not_eq num:req, destination:req
|
.macro if_preliminary_points_not_eq num:req, destination:req
|
||||||
.byte 0x1E
|
.byte 0x1E
|
||||||
.byte \num
|
.2byte \num
|
||||||
.4byte \destination
|
.4byte \destination
|
||||||
.endm
|
.endm
|
||||||
|
|
||||||
|
|||||||
49
audio_rules.mk
Normal file
49
audio_rules.mk
Normal file
@ -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)
|
||||||
@ -566,8 +566,8 @@ gStdScripts_End::
|
|||||||
.include "data/maps/Route110_TrickHousePuzzle6/scripts.inc"
|
.include "data/maps/Route110_TrickHousePuzzle6/scripts.inc"
|
||||||
.include "data/maps/Route110_TrickHousePuzzle7/scripts.inc"
|
.include "data/maps/Route110_TrickHousePuzzle7/scripts.inc"
|
||||||
.include "data/maps/Route110_TrickHousePuzzle8/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_SeasideCyclingRoadSouthEntrance/scripts.inc"
|
||||||
|
.include "data/maps/Route110_SeasideCyclingRoadNorthEntrance/scripts.inc"
|
||||||
.include "data/maps/Route113_GlassWorkshop/scripts.inc"
|
.include "data/maps/Route113_GlassWorkshop/scripts.inc"
|
||||||
.include "data/maps/Route123_BerryMastersHouse/scripts.inc"
|
.include "data/maps/Route123_BerryMastersHouse/scripts.inc"
|
||||||
.include "data/maps/Route119_WeatherInstitute_1F/scripts.inc"
|
.include "data/maps/Route119_WeatherInstitute_1F/scripts.inc"
|
||||||
|
|||||||
@ -64,7 +64,7 @@
|
|||||||
"trainer_type": "TRAINER_TYPE_NONE",
|
"trainer_type": "TRAINER_TYPE_NONE",
|
||||||
"trainer_sight_or_berry_tree_id": "0",
|
"trainer_sight_or_berry_tree_id": "0",
|
||||||
"script": "FallarborTown_PokemonCenter_1F_EventScript_Lanette",
|
"script": "FallarborTown_PokemonCenter_1F_EventScript_Lanette",
|
||||||
"flag": "FLAG_HIDE_FALLORBOR_POKEMON_CENTER_LANETTE"
|
"flag": "FLAG_HIDE_FALLARBOR_POKEMON_CENTER_LANETTE"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"warp_events": [
|
"warp_events": [
|
||||||
|
|||||||
@ -518,28 +518,28 @@
|
|||||||
"x": 15,
|
"x": 15,
|
||||||
"y": 16,
|
"y": 16,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE",
|
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE",
|
||||||
"dest_warp_id": "0"
|
"dest_warp_id": "0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 18,
|
"x": 18,
|
||||||
"y": 16,
|
"y": 16,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE",
|
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE",
|
||||||
"dest_warp_id": "2"
|
"dest_warp_id": "2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 16,
|
"x": 16,
|
||||||
"y": 88,
|
"y": 88,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE",
|
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE",
|
||||||
"dest_warp_id": "0"
|
"dest_warp_id": "0"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 19,
|
"x": 19,
|
||||||
"y": 88,
|
"y": 88,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_NORTH_ENTRANCE",
|
"dest_map": "MAP_ROUTE110_SEASIDE_CYCLING_ROAD_SOUTH_ENTRANCE",
|
||||||
"dest_warp_id": "2"
|
"dest_warp_id": "2"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|||||||
@ -34,28 +34,28 @@
|
|||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "4"
|
"dest_warp_id": "2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 2,
|
"x": 2,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "4"
|
"dest_warp_id": "2"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 12,
|
"x": 12,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "5"
|
"dest_warp_id": "3"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 13,
|
"x": 13,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "5"
|
"dest_warp_id": "3"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"coord_events": [
|
"coord_events": [
|
||||||
|
|||||||
@ -1,6 +1,16 @@
|
|||||||
Route110_SeasideCyclingRoadNorthEntrance_MapScripts::
|
Route110_SeasideCyclingRoadNorthEntrance_MapScripts::
|
||||||
|
map_script MAP_SCRIPT_ON_TRANSITION, Route110_SeasideCyclingRoadNorthEntrance_OnTransition
|
||||||
.byte 0
|
.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::
|
Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk::
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
@ -11,12 +21,17 @@ Route110_SeasideCyclingRoadNorthEntrance_EventScript_Clerk::
|
|||||||
Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck::
|
Route110_SeasideCyclingRoadNorthEntrance_EventScript_BikeCheck::
|
||||||
lockall
|
lockall
|
||||||
specialvar VAR_RESULT, GetPlayerAvatarBike
|
specialvar VAR_RESULT, GetPlayerAvatarBike
|
||||||
|
call_if_eq VAR_RESULT, 2, Route110_SeasideCyclingRoadNorthEntrance_EventScript_OnMachBike
|
||||||
goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike
|
goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike
|
||||||
setflag FLAG_SYS_CYCLING_ROAD
|
setflag FLAG_SYS_CYCLING_ROAD
|
||||||
setvar VAR_TEMP_1, 1
|
setvar VAR_TEMP_1, 1
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
|
Route110_SeasideCyclingRoadNorthEntrance_EventScript_OnMachBike::
|
||||||
|
setvar VAR_CYCLING_CHALLENGE_STATE, 1
|
||||||
|
return
|
||||||
|
|
||||||
Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike::
|
Route110_SeasideCyclingRoadNorthEntrance_EventScript_NoBike::
|
||||||
msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT
|
msgbox Route110_SeasideCyclingRoadNorthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT
|
||||||
closemessage
|
closemessage
|
||||||
@ -31,6 +46,7 @@ Route110_SeasideCyclingRoadNorthEntrance_Movement_PushPlayerBackFromCounter:
|
|||||||
|
|
||||||
Route110_SeasideCyclingRoadNorthEntrance_EventScript_ClearCyclingRoad::
|
Route110_SeasideCyclingRoadNorthEntrance_EventScript_ClearCyclingRoad::
|
||||||
lockall
|
lockall
|
||||||
|
setvar VAR_CYCLING_CHALLENGE_STATE, 0
|
||||||
clearflag FLAG_SYS_CYCLING_ROAD
|
clearflag FLAG_SYS_CYCLING_ROAD
|
||||||
setvar VAR_TEMP_1, 0
|
setvar VAR_TEMP_1, 0
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
@ -34,28 +34,28 @@
|
|||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "2"
|
"dest_warp_id": "4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 2,
|
"x": 2,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "2"
|
"dest_warp_id": "4"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 12,
|
"x": 12,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "3"
|
"dest_warp_id": "5"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"x": 13,
|
"x": 13,
|
||||||
"y": 5,
|
"y": 5,
|
||||||
"elevation": 0,
|
"elevation": 0,
|
||||||
"dest_map": "MAP_ROUTE110",
|
"dest_map": "MAP_ROUTE110",
|
||||||
"dest_warp_id": "3"
|
"dest_warp_id": "5"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"coord_events": [
|
"coord_events": [
|
||||||
|
|||||||
@ -1,16 +1,6 @@
|
|||||||
Route110_SeasideCyclingRoadSouthEntrance_MapScripts::
|
Route110_SeasideCyclingRoadSouthEntrance_MapScripts::
|
||||||
map_script MAP_SCRIPT_ON_TRANSITION, Route110_SeasideCyclingRoadSouthEntrance_OnTransition
|
|
||||||
.byte 0
|
.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::
|
Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk::
|
||||||
lock
|
lock
|
||||||
faceplayer
|
faceplayer
|
||||||
@ -21,17 +11,12 @@ Route110_SeasideCyclingRoadSouthEntrance_EventScript_Clerk::
|
|||||||
Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck::
|
Route110_SeasideCyclingRoadSouthEntrance_EventScript_BikeCheck::
|
||||||
lockall
|
lockall
|
||||||
specialvar VAR_RESULT, GetPlayerAvatarBike
|
specialvar VAR_RESULT, GetPlayerAvatarBike
|
||||||
call_if_eq VAR_RESULT, 2, Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike
|
|
||||||
goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike
|
goto_if_eq VAR_RESULT, 0, Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike
|
||||||
setflag FLAG_SYS_CYCLING_ROAD
|
setflag FLAG_SYS_CYCLING_ROAD
|
||||||
setvar VAR_TEMP_1, 1
|
setvar VAR_TEMP_1, 1
|
||||||
releaseall
|
releaseall
|
||||||
end
|
end
|
||||||
|
|
||||||
Route110_SeasideCyclingRoadSouthEntrance_EventScript_OnMachBike::
|
|
||||||
setvar VAR_CYCLING_CHALLENGE_STATE, 1
|
|
||||||
return
|
|
||||||
|
|
||||||
Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike::
|
Route110_SeasideCyclingRoadSouthEntrance_EventScript_NoBike::
|
||||||
msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT
|
msgbox Route110_SeasideCyclingRoadSouthEntrance_Text_TooDangerousToWalk, MSGBOX_DEFAULT
|
||||||
closemessage
|
closemessage
|
||||||
@ -46,7 +31,6 @@ Route110_SeasideCyclingRoadSouthEntrance_Movement_PushPlayerBackFromCounter:
|
|||||||
|
|
||||||
Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad::
|
Route110_SeasideCyclingRoadSouthEntrance_EventScript_ClearCyclingRoad::
|
||||||
lockall
|
lockall
|
||||||
setvar VAR_CYCLING_CHALLENGE_STATE, 0
|
|
||||||
clearflag FLAG_SYS_CYCLING_ROAD
|
clearflag FLAG_SYS_CYCLING_ROAD
|
||||||
setvar VAR_TEMP_1, 0
|
setvar VAR_TEMP_1, 0
|
||||||
releaseall
|
releaseall
|
||||||
|
|||||||
@ -604,8 +604,8 @@
|
|||||||
"Route110_TrickHousePuzzle6",
|
"Route110_TrickHousePuzzle6",
|
||||||
"Route110_TrickHousePuzzle7",
|
"Route110_TrickHousePuzzle7",
|
||||||
"Route110_TrickHousePuzzle8",
|
"Route110_TrickHousePuzzle8",
|
||||||
"Route110_SeasideCyclingRoadNorthEntrance",
|
"Route110_SeasideCyclingRoadSouthEntrance",
|
||||||
"Route110_SeasideCyclingRoadSouthEntrance"
|
"Route110_SeasideCyclingRoadNorthEntrance"
|
||||||
],
|
],
|
||||||
"gMapGroup_IndoorRoute113": [
|
"gMapGroup_IndoorRoute113": [
|
||||||
"Route113_GlassWorkshop"
|
"Route113_GlassWorkshop"
|
||||||
|
|||||||
@ -882,14 +882,14 @@ STATIC_ASSERT(sizeof(((struct BattleStruct *)0)->palaceFlags) * 8 >= MAX_BATTLER
|
|||||||
|| gProtectStructs[battlerId].obstructed \
|
|| gProtectStructs[battlerId].obstructed \
|
||||||
|| gProtectStructs[battlerId].silkTrapped)
|
|| gProtectStructs[battlerId].silkTrapped)
|
||||||
|
|
||||||
#define GET_STAT_BUFF_ID(n)((n & 7)) // first three bits 0x1, 0x2, 0x4
|
#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_WITH_SIGN(n) ((n & 0xF8))
|
||||||
#define GET_STAT_BUFF_VALUE(n)(((n >> 3) & 0xF)) // 0x8, 0x10, 0x20, 0x40
|
#define GET_STAT_BUFF_VALUE(n) (((n >> 3) & 0xF)) // 0x8, 0x10, 0x20, 0x40
|
||||||
#define STAT_BUFF_NEGATIVE 0x80 // 0x80, the sign bit
|
#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 SET_STATCHANGER2(dst, statId, stage, goesDown)(dst = (statId) + ((stage) << 3) + (goesDown << 7))
|
||||||
|
|
||||||
// NOTE: The members of this struct have hard-coded offsets
|
// NOTE: The members of this struct have hard-coded offsets
|
||||||
|
|||||||
3
include/constants/.gitignore
vendored
Normal file
3
include/constants/.gitignore
vendored
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
# Will be moved to build/ eventually
|
||||||
|
map_groups.h
|
||||||
|
layouts.h
|
||||||
@ -2,6 +2,7 @@
|
|||||||
#define GUARD_CONSTANTS_FLAGS_H
|
#define GUARD_CONSTANTS_FLAGS_H
|
||||||
|
|
||||||
#include "constants/opponents.h"
|
#include "constants/opponents.h"
|
||||||
|
#include "constants/rematches.h"
|
||||||
|
|
||||||
// Temporary Flags
|
// Temporary Flags
|
||||||
// These temporary flags are are cleared every time a map is loaded. They are used
|
// 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_BEAUTY_MOVE_TUTOR 0x15A
|
||||||
#define FLAG_MET_FRONTIER_SWIMMER_MOVE_TUTOR 0x15B
|
#define FLAG_MET_FRONTIER_SWIMMER_MOVE_TUTOR 0x15B
|
||||||
|
|
||||||
// Trainer Rematch Flags
|
// Flags for whether a rematchable trainer has been registered in the player's Match Call.
|
||||||
#define FLAG_MATCH_CALL_REGISTERED 0x15C
|
// Most are used implicitly by adding their REMATCH_* id to TRAINER_REGISTERED_FLAGS_START.
|
||||||
#define FLAG_REMATCH_ROSE 0x15D
|
// Some Match Call entries (like those for gym leaders, Wally, and all non-trainer NPCs like Prof. Birch)
|
||||||
#define FLAG_REMATCH_ANDRES 0x15E
|
// have their own separate flag that needs to be set to be enabled; see src/pokenav_match_call_data.c
|
||||||
#define FLAG_REMATCH_DUSTY 0x15F
|
#define TRAINER_REGISTERED_FLAGS_START 0x15C
|
||||||
#define FLAG_REMATCH_LOLA 0x160
|
#define FLAG_REGISTERED_ROSE (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROSE)
|
||||||
#define FLAG_REMATCH_RICKY 0x161
|
#define FLAG_REGISTERED_ANDRES (TRAINER_REGISTERED_FLAGS_START + REMATCH_ANDRES)
|
||||||
#define FLAG_REMATCH_LILA_AND_ROY 0x162
|
#define FLAG_REGISTERED_DUSTY (TRAINER_REGISTERED_FLAGS_START + REMATCH_DUSTY)
|
||||||
#define FLAG_REMATCH_CRISTIN 0x163
|
#define FLAG_REGISTERED_LOLA (TRAINER_REGISTERED_FLAGS_START + REMATCH_LOLA)
|
||||||
#define FLAG_REMATCH_BROOKE 0x164
|
#define FLAG_REGISTERED_RICKY (TRAINER_REGISTERED_FLAGS_START + REMATCH_RICKY)
|
||||||
#define FLAG_REMATCH_WILTON 0x165
|
#define FLAG_REGISTERED_LILA_AND_ROY (TRAINER_REGISTERED_FLAGS_START + REMATCH_LILA_AND_ROY)
|
||||||
#define FLAG_REMATCH_VALERIE 0x166
|
#define FLAG_REGISTERED_CRISTIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_CRISTIN)
|
||||||
#define FLAG_REMATCH_CINDY 0x167
|
#define FLAG_REGISTERED_BROOKE (TRAINER_REGISTERED_FLAGS_START + REMATCH_BROOKE)
|
||||||
#define FLAG_REMATCH_THALIA 0x168
|
#define FLAG_REGISTERED_WILTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WILTON)
|
||||||
#define FLAG_REMATCH_JESSICA 0x169
|
#define FLAG_REGISTERED_VALERIE (TRAINER_REGISTERED_FLAGS_START + REMATCH_VALERIE)
|
||||||
#define FLAG_REMATCH_WINSTON 0x16A
|
#define FLAG_REGISTERED_CINDY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CINDY)
|
||||||
#define FLAG_REMATCH_STEVE 0x16B
|
#define FLAG_REGISTERED_THALIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_THALIA)
|
||||||
#define FLAG_REMATCH_TONY 0x16C
|
#define FLAG_REGISTERED_JESSICA (TRAINER_REGISTERED_FLAGS_START + REMATCH_JESSICA)
|
||||||
#define FLAG_REMATCH_NOB 0x16D
|
#define FLAG_REGISTERED_WINSTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WINSTON)
|
||||||
#define FLAG_REMATCH_KOJI 0x16E
|
#define FLAG_REGISTERED_STEVE (TRAINER_REGISTERED_FLAGS_START + REMATCH_STEVE)
|
||||||
#define FLAG_REMATCH_FERNANDO 0x16F
|
#define FLAG_REGISTERED_TONY (TRAINER_REGISTERED_FLAGS_START + REMATCH_TONY)
|
||||||
#define FLAG_REMATCH_DALTON 0x170
|
#define FLAG_REGISTERED_NOB (TRAINER_REGISTERED_FLAGS_START + REMATCH_NOB)
|
||||||
#define FLAG_REMATCH_BERNIE 0x171
|
#define FLAG_REGISTERED_KOJI (TRAINER_REGISTERED_FLAGS_START + REMATCH_KOJI)
|
||||||
#define FLAG_REMATCH_ETHAN 0x172
|
#define FLAG_REGISTERED_FERNANDO (TRAINER_REGISTERED_FLAGS_START + REMATCH_FERNANDO)
|
||||||
#define FLAG_REMATCH_JOHN_AND_JAY 0x173
|
#define FLAG_REGISTERED_DALTON (TRAINER_REGISTERED_FLAGS_START + REMATCH_DALTON)
|
||||||
#define FLAG_REMATCH_JEFFREY 0x174
|
#define FLAG_REGISTERED_BERNIE (TRAINER_REGISTERED_FLAGS_START + REMATCH_BERNIE)
|
||||||
#define FLAG_REMATCH_CAMERON 0x175
|
#define FLAG_REGISTERED_ETHAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_ETHAN)
|
||||||
#define FLAG_REMATCH_JACKI 0x176
|
#define FLAG_REGISTERED_JOHN_AND_JAY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JOHN_AND_JAY)
|
||||||
#define FLAG_REMATCH_WALTER 0x177
|
#define FLAG_REGISTERED_JEFFREY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JEFFREY)
|
||||||
#define FLAG_REMATCH_KAREN 0x178
|
#define FLAG_REGISTERED_CAMERON (TRAINER_REGISTERED_FLAGS_START + REMATCH_CAMERON)
|
||||||
#define FLAG_REMATCH_JERRY 0x179
|
#define FLAG_REGISTERED_JACKI (TRAINER_REGISTERED_FLAGS_START + REMATCH_JACKI)
|
||||||
#define FLAG_REMATCH_ANNA_AND_MEG 0x17A
|
#define FLAG_REGISTERED_WALTER (TRAINER_REGISTERED_FLAGS_START + REMATCH_WALTER)
|
||||||
#define FLAG_REMATCH_ISABEL 0x17B
|
#define FLAG_REGISTERED_KAREN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KAREN)
|
||||||
#define FLAG_REMATCH_MIGUEL 0x17C
|
#define FLAG_REGISTERED_JERRY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JERRY)
|
||||||
#define FLAG_REMATCH_TIMOTHY 0x17D
|
#define FLAG_REGISTERED_ANNA_AND_MEG (TRAINER_REGISTERED_FLAGS_START + REMATCH_ANNA_AND_MEG)
|
||||||
#define FLAG_REMATCH_SHELBY 0x17E
|
#define FLAG_REGISTERED_ISABEL (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISABEL)
|
||||||
#define FLAG_REMATCH_CALVIN 0x17F
|
#define FLAG_REGISTERED_MIGUEL (TRAINER_REGISTERED_FLAGS_START + REMATCH_MIGUEL)
|
||||||
#define FLAG_REMATCH_ELLIOT 0x180
|
#define FLAG_REGISTERED_TIMOTHY (TRAINER_REGISTERED_FLAGS_START + REMATCH_TIMOTHY)
|
||||||
#define FLAG_REMATCH_ISAIAH 0x181
|
#define FLAG_REGISTERED_SHELBY (TRAINER_REGISTERED_FLAGS_START + REMATCH_SHELBY)
|
||||||
#define FLAG_REMATCH_MARIA 0x182
|
#define FLAG_REGISTERED_CALVIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_CALVIN)
|
||||||
#define FLAG_REMATCH_ABIGAIL 0x183
|
#define FLAG_REGISTERED_ELLIOT (TRAINER_REGISTERED_FLAGS_START + REMATCH_ELLIOT)
|
||||||
#define FLAG_REMATCH_DYLAN 0x184
|
#define FLAG_REGISTERED_ISAIAH (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISAIAH)
|
||||||
#define FLAG_REMATCH_KATELYN 0x185
|
#define FLAG_REGISTERED_MARIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_MARIA)
|
||||||
#define FLAG_REMATCH_BENJAMIN 0x186
|
#define FLAG_REGISTERED_ABIGAIL (TRAINER_REGISTERED_FLAGS_START + REMATCH_ABIGAIL)
|
||||||
#define FLAG_REMATCH_PABLO 0x187
|
#define FLAG_REGISTERED_DYLAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_DYLAN)
|
||||||
#define FLAG_REMATCH_NICOLAS 0x188
|
#define FLAG_REGISTERED_KATELYN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KATELYN)
|
||||||
#define FLAG_REMATCH_ROBERT 0x189
|
#define FLAG_REGISTERED_BENJAMIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_BENJAMIN)
|
||||||
#define FLAG_REMATCH_LAO 0x18A
|
#define FLAG_REGISTERED_PABLO (TRAINER_REGISTERED_FLAGS_START + REMATCH_PABLO)
|
||||||
#define FLAG_REMATCH_CYNDY 0x18B
|
#define FLAG_REGISTERED_NICOLAS (TRAINER_REGISTERED_FLAGS_START + REMATCH_NICOLAS)
|
||||||
#define FLAG_REMATCH_MADELINE 0x18C
|
#define FLAG_REGISTERED_ROBERT (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROBERT)
|
||||||
#define FLAG_REMATCH_JENNY 0x18D
|
#define FLAG_REGISTERED_LAO (TRAINER_REGISTERED_FLAGS_START + REMATCH_LAO)
|
||||||
#define FLAG_REMATCH_DIANA 0x18E
|
#define FLAG_REGISTERED_CYNDY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CYNDY)
|
||||||
#define FLAG_REMATCH_AMY_AND_LIV 0x18F
|
#define FLAG_REGISTERED_MADELINE (TRAINER_REGISTERED_FLAGS_START + REMATCH_MADELINE)
|
||||||
#define FLAG_REMATCH_ERNEST 0x190
|
#define FLAG_REGISTERED_JENNY (TRAINER_REGISTERED_FLAGS_START + REMATCH_JENNY)
|
||||||
#define FLAG_REMATCH_CORY 0x191
|
#define FLAG_REGISTERED_DIANA (TRAINER_REGISTERED_FLAGS_START + REMATCH_DIANA)
|
||||||
#define FLAG_REMATCH_EDWIN 0x192
|
#define FLAG_REGISTERED_AMY_AND_LIV (TRAINER_REGISTERED_FLAGS_START + REMATCH_AMY_AND_LIV)
|
||||||
#define FLAG_REMATCH_LYDIA 0x193
|
#define FLAG_REGISTERED_ERNEST (TRAINER_REGISTERED_FLAGS_START + REMATCH_ERNEST)
|
||||||
#define FLAG_REMATCH_ISAAC 0x194
|
#define FLAG_REGISTERED_CORY (TRAINER_REGISTERED_FLAGS_START + REMATCH_CORY)
|
||||||
#define FLAG_REMATCH_GABRIELLE 0x195
|
#define FLAG_REGISTERED_EDWIN (TRAINER_REGISTERED_FLAGS_START + REMATCH_EDWIN)
|
||||||
#define FLAG_REMATCH_CATHERINE 0x196
|
#define FLAG_REGISTERED_LYDIA (TRAINER_REGISTERED_FLAGS_START + REMATCH_LYDIA)
|
||||||
#define FLAG_REMATCH_JACKSON 0x197
|
#define FLAG_REGISTERED_ISAAC (TRAINER_REGISTERED_FLAGS_START + REMATCH_ISAAC)
|
||||||
#define FLAG_REMATCH_HALEY 0x198
|
#define FLAG_REGISTERED_GABRIELLE (TRAINER_REGISTERED_FLAGS_START + REMATCH_GABRIELLE)
|
||||||
#define FLAG_REMATCH_JAMES 0x199
|
#define FLAG_REGISTERED_CATHERINE (TRAINER_REGISTERED_FLAGS_START + REMATCH_CATHERINE)
|
||||||
#define FLAG_REMATCH_TRENT 0x19A
|
#define FLAG_REGISTERED_JACKSON (TRAINER_REGISTERED_FLAGS_START + REMATCH_JACKSON)
|
||||||
#define FLAG_REMATCH_SAWYER 0x19B
|
#define FLAG_REGISTERED_HALEY (TRAINER_REGISTERED_FLAGS_START + REMATCH_HALEY)
|
||||||
#define FLAG_REMATCH_KIRA_AND_DAN 0x19C
|
#define FLAG_REGISTERED_JAMES (TRAINER_REGISTERED_FLAGS_START + REMATCH_JAMES)
|
||||||
#define FLAG_REMATCH_WALLY 0x19D
|
#define FLAG_REGISTERED_TRENT (TRAINER_REGISTERED_FLAGS_START + REMATCH_TRENT)
|
||||||
#define FLAG_REMATCH_ROXANNE 0x19E
|
#define FLAG_REGISTERED_SAWYER (TRAINER_REGISTERED_FLAGS_START + REMATCH_SAWYER)
|
||||||
#define FLAG_REMATCH_BRAWLY 0x19F
|
#define FLAG_REGISTERED_KIRA_AND_DAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_KIRA_AND_DAN)
|
||||||
#define FLAG_REMATCH_WATTSON 0x1A0
|
#define FLAG_REGISTERED_WALLY (TRAINER_REGISTERED_FLAGS_START + REMATCH_WALLY)
|
||||||
#define FLAG_REMATCH_FLANNERY 0x1A1
|
#define FLAG_REGISTERED_ROXANNE (TRAINER_REGISTERED_FLAGS_START + REMATCH_ROXANNE)
|
||||||
#define FLAG_REMATCH_NORMAN 0x1A2
|
#define FLAG_REGISTERED_BRAWLY (TRAINER_REGISTERED_FLAGS_START + REMATCH_BRAWLY)
|
||||||
#define FLAG_REMATCH_WINONA 0x1A3
|
#define FLAG_REGISTERED_WATTSON (TRAINER_REGISTERED_FLAGS_START + REMATCH_WATTSON)
|
||||||
#define FLAG_REMATCH_TATE_AND_LIZA 0x1A4
|
#define FLAG_REGISTERED_FLANNERY (TRAINER_REGISTERED_FLAGS_START + REMATCH_FLANNERY)
|
||||||
// Note: FLAG_REMATCH_JUAN is handled by FLAG_ENABLE_JUAN_MATCH_CALL instead.
|
#define FLAG_REGISTERED_NORMAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_NORMAN)
|
||||||
#define FLAG_REMATCH_SIDNEY 0x1A5
|
#define FLAG_REGISTERED_WINONA (TRAINER_REGISTERED_FLAGS_START + REMATCH_WINONA)
|
||||||
#define FLAG_REMATCH_PHOEBE 0x1A6
|
#define FLAG_REGISTERED_TATE_AND_LIZA (TRAINER_REGISTERED_FLAGS_START + REMATCH_TATE_AND_LIZA)
|
||||||
#define FLAG_REMATCH_GLACIA 0x1A7
|
#define FLAG_REGISTERED_JUAN (TRAINER_REGISTERED_FLAGS_START + REMATCH_JUAN)
|
||||||
#define FLAG_REMATCH_DRAKE 0x1A8
|
#define FLAG_REGISTERED_SIDNEY (TRAINER_REGISTERED_FLAGS_START + REMATCH_SIDNEY)
|
||||||
#define FLAG_REMATCH_WALLACE 0x1A9
|
#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_0x1AA 0x1AA // Unused Flag
|
||||||
#define FLAG_UNUSED_0x1AB 0x1AB // Unused Flag
|
#define FLAG_UNUSED_0x1AB 0x1AB // Unused Flag
|
||||||
@ -915,7 +919,7 @@
|
|||||||
#define FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN 0x364
|
#define FLAG_HIDE_LITTLEROOT_TOWN_FAT_MAN 0x364
|
||||||
#define FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY 0x365
|
#define FLAG_HIDE_SLATEPORT_CITY_STERNS_SHIPYARD_MR_BRINEY 0x365
|
||||||
#define FLAG_HIDE_LANETTES_HOUSE_LANETTE 0x366
|
#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_TRICK_HOUSE_ENTRANCE_MAN 0x368
|
||||||
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0x369
|
#define FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER_REPLACEMENT 0x369
|
||||||
#define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0x36A
|
#define FLAG_HIDE_DESERT_UNDERPASS_FOSSIL 0x36A
|
||||||
|
|||||||
@ -1026,8 +1026,8 @@
|
|||||||
#define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1)
|
#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 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_BERRY(itemId) (((itemId) - FIRST_BERRY_INDEX) + 1)
|
||||||
#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX)
|
#define ITEM_TO_MAIL(itemId) ((itemId) - FIRST_MAIL_INDEX)
|
||||||
#define MAIL_NONE 0xFF
|
#define MAIL_NONE 0xFF
|
||||||
#define ITEM_TO_MULCH(itemId)(((itemId) - ITEM_GROWTH_MULCH) + 1)
|
#define ITEM_TO_MULCH(itemId)(((itemId) - ITEM_GROWTH_MULCH) + 1)
|
||||||
|
|
||||||
|
|||||||
@ -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
|
|
||||||
@ -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
|
|
||||||
89
include/constants/rematches.h
Normal file
89
include/constants/rematches.h
Normal file
@ -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
|
||||||
@ -45,9 +45,9 @@ struct TrainerBacksprite
|
|||||||
const union AnimCmd *const *const animation;
|
const union AnimCmd *const *const animation;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 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_WIDTH(size) ((size >> 4) * 8)
|
||||||
#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 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_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})
|
#define TRAINER_PARTY_EVS(hp, atk, def, speed, spatk, spdef) ((const u8[6]){hp,atk,def,spatk,spdef,speed})
|
||||||
|
|
||||||
|
|||||||
@ -10,6 +10,7 @@
|
|||||||
#define EWRAM_DATA __attribute__((section(".sbss")))
|
#define EWRAM_DATA __attribute__((section(".sbss")))
|
||||||
#define IWRAM_INIT __attribute__((section(".iwram")))
|
#define IWRAM_INIT __attribute__((section(".iwram")))
|
||||||
#define EWRAM_INIT __attribute__((section(".ewram")))
|
#define EWRAM_INIT __attribute__((section(".ewram")))
|
||||||
|
#define COMMON_DATA __attribute__((section("common_data")))
|
||||||
#define UNUSED __attribute__((unused))
|
#define UNUSED __attribute__((unused))
|
||||||
|
|
||||||
#if MODERN
|
#if MODERN
|
||||||
@ -81,7 +82,7 @@
|
|||||||
#define DISPLAY_TILE_HEIGHT (DISPLAY_HEIGHT / TILE_HEIGHT)
|
#define DISPLAY_TILE_HEIGHT (DISPLAY_HEIGHT / TILE_HEIGHT)
|
||||||
|
|
||||||
// Size of different tile formats in bytes
|
// 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_1BPP TILE_SIZE(1) // 8
|
||||||
#define TILE_SIZE_4BPP TILE_SIZE(4) // 32
|
#define TILE_SIZE_4BPP TILE_SIZE(4) // 32
|
||||||
#define TILE_SIZE_8BPP TILE_SIZE(8) // 64
|
#define TILE_SIZE_8BPP TILE_SIZE(8) // 64
|
||||||
|
|||||||
@ -76,7 +76,7 @@
|
|||||||
// There are cases where GF does a&(n-1) where we would really like to have a%n, because
|
// 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
|
// 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 &.
|
// 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
|
// Extracts the upper 16 bits of a 32-bit number
|
||||||
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
#define HIHALF(n) (((n) & 0xFFFF0000) >> 16)
|
||||||
@ -117,7 +117,7 @@
|
|||||||
f; \
|
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)
|
#define ROUND_BITS_TO_BYTES(numBits) DIV_ROUND_UP(numBits, 8)
|
||||||
|
|
||||||
|
|||||||
@ -1,90 +1,7 @@
|
|||||||
#ifndef GUARD_TRAINER_REMATCH_H
|
#ifndef GUARD_TRAINER_REMATCH_H
|
||||||
#define GUARD_TRAINER_REMATCH_H
|
#define GUARD_TRAINER_REMATCH_H
|
||||||
|
|
||||||
enum {
|
#include "constants/rematches.h"
|
||||||
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
|
|
||||||
|
|
||||||
void UpdateGymLeaderRematch(void);
|
void UpdateGymLeaderRematch(void);
|
||||||
|
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef GUARD_MAIL_H
|
#ifndef GUARD_MAIL_H
|
||||||
#define 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_HARBOR_MAIL \
|
||||||
|| itemId == ITEM_GLITTER_MAIL \
|
|| itemId == ITEM_GLITTER_MAIL \
|
||||||
|| itemId == ITEM_MECH_MAIL \
|
|| itemId == ITEM_MECH_MAIL \
|
||||||
|
|||||||
@ -44,7 +44,7 @@ enum {
|
|||||||
|
|
||||||
// The number of extra sparkles shown on a Pokémon's condition screen.
|
// 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
|
// 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_TOP_Y 56
|
||||||
#define CONDITION_GRAPH_BOTTOM_Y 121
|
#define CONDITION_GRAPH_BOTTOM_Y 121
|
||||||
|
|||||||
@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
// The number 1103515245 comes from the example implementation of rand and srand
|
// The number 1103515245 comes from the example implementation of rand and srand
|
||||||
// in the ISO C standard.
|
// in the ISO C standard.
|
||||||
#define ISO_RANDOMIZE1(val)(1103515245 * (val) + 24691)
|
#define ISO_RANDOMIZE1(val) (1103515245 * (val) + 24691)
|
||||||
#define ISO_RANDOMIZE2(val)(1103515245 * (val) + 12345)
|
#define ISO_RANDOMIZE2(val) (1103515245 * (val) + 12345)
|
||||||
|
|
||||||
/* Some functions have been added to support Expansion's RNG implementation.
|
/* Some functions have been added to support Expansion's RNG implementation.
|
||||||
*
|
*
|
||||||
|
|||||||
@ -24,7 +24,6 @@ void SetCurSecretBaseIdFromPosition(const struct MapPosition *position, const st
|
|||||||
void TrySetCurSecretBaseIndex(void);
|
void TrySetCurSecretBaseIndex(void);
|
||||||
void CheckPlayerHasSecretBase(void);
|
void CheckPlayerHasSecretBase(void);
|
||||||
void ToggleSecretBaseEntranceMetatile(void);
|
void ToggleSecretBaseEntranceMetatile(void);
|
||||||
void ScriptContext_Enable(void);
|
|
||||||
void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx);
|
void ReceiveSecretBasesData(void *records, size_t recordSize, u8 linkIdx);
|
||||||
|
|
||||||
#endif //GUARD_SECRET_BASE_H
|
#endif //GUARD_SECRET_BASE_H
|
||||||
|
|||||||
@ -1,7 +1,7 @@
|
|||||||
#ifndef GUARD_TEXT_H
|
#ifndef GUARD_TEXT_H
|
||||||
#define 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
|
// Given as a text speed when all the text should be
|
||||||
// loaded at once but not copied to vram yet.
|
// loaded at once but not copied to vram yet.
|
||||||
@ -27,7 +27,6 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.sbss);
|
src/*.o(.sbss);
|
||||||
gflib/*.o(.sbss);
|
|
||||||
} > EWRAM
|
} > EWRAM
|
||||||
|
|
||||||
.iwram ORIGIN(IWRAM) : AT (__iwram_lma)
|
.iwram ORIGIN(IWRAM) : AT (__iwram_lma)
|
||||||
@ -43,15 +42,14 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.bss);
|
src/*.o(.bss);
|
||||||
gflib/*.o(.bss);
|
|
||||||
data/*.o(.bss);
|
data/*.o(.bss);
|
||||||
*libc.a:*.o(.bss*);
|
*libc.a:*.o(.bss*);
|
||||||
*libnosys.a:*.o(.bss*);
|
*libnosys.a:*.o(.bss*);
|
||||||
|
|
||||||
src/m4a.o(.bss.code);
|
src/m4a.o(.bss.code);
|
||||||
|
|
||||||
|
src/*.o(common_data);
|
||||||
src/*.o(COMMON);
|
src/*.o(COMMON);
|
||||||
gflib/*.o(COMMON);
|
|
||||||
*libc.a:*.o(COMMON);
|
*libc.a:*.o(COMMON);
|
||||||
*libnosys.a:*.o(COMMON);
|
*libnosys.a:*.o(COMMON);
|
||||||
} > IWRAM
|
} > IWRAM
|
||||||
@ -66,7 +64,6 @@ SECTIONS {
|
|||||||
src/rom_header_rhh.o(.text.*);
|
src/rom_header_rhh.o(.text.*);
|
||||||
src/crt0.o(.text);
|
src/crt0.o(.text);
|
||||||
src/main.o(.text);
|
src/main.o(.text);
|
||||||
gflib/*.o(.text*);
|
|
||||||
src/*.o(.text*);
|
src/*.o(.text*);
|
||||||
asm/*.o(.text*);
|
asm/*.o(.text*);
|
||||||
} > ROM =0
|
} > ROM =0
|
||||||
@ -102,7 +99,6 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.rodata*);
|
src/*.o(.rodata*);
|
||||||
gflib/*.o(.rodata*);
|
|
||||||
data/*.o(.rodata*);
|
data/*.o(.rodata*);
|
||||||
} > ROM =0
|
} > ROM =0
|
||||||
|
|
||||||
|
|||||||
@ -25,7 +25,6 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.sbss);
|
src/*.o(.sbss);
|
||||||
gflib/*.o(.sbss);
|
|
||||||
test/*.o(.sbss);
|
test/*.o(.sbss);
|
||||||
. = ALIGN(4);
|
. = ALIGN(4);
|
||||||
} > EWRAM
|
} > EWRAM
|
||||||
@ -43,7 +42,6 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.bss);
|
src/*.o(.bss);
|
||||||
gflib/*.o(.bss);
|
|
||||||
data/*.o(.bss);
|
data/*.o(.bss);
|
||||||
test/*.o(.bss);
|
test/*.o(.bss);
|
||||||
*libc.a:*.o(.bss*);
|
*libc.a:*.o(.bss*);
|
||||||
@ -52,8 +50,8 @@ SECTIONS {
|
|||||||
|
|
||||||
src/m4a.o(.bss.code);
|
src/m4a.o(.bss.code);
|
||||||
|
|
||||||
|
src/*.o(common_data);
|
||||||
src/*.o(COMMON);
|
src/*.o(COMMON);
|
||||||
gflib/*.o(COMMON);
|
|
||||||
data/*.o(COMMON);
|
data/*.o(COMMON);
|
||||||
test/*.o(COMMON);
|
test/*.o(COMMON);
|
||||||
*libc.a:sbrkr.o(COMMON);
|
*libc.a:sbrkr.o(COMMON);
|
||||||
@ -76,7 +74,6 @@ SECTIONS {
|
|||||||
src/rom_header_gf.o(.text.*);
|
src/rom_header_gf.o(.text.*);
|
||||||
src/rom_header_rhh.o(.text.*);
|
src/rom_header_rhh.o(.text.*);
|
||||||
src/*.o(.text);
|
src/*.o(.text);
|
||||||
gflib/*.o(.text);
|
|
||||||
} > ROM =0
|
} > ROM =0
|
||||||
|
|
||||||
script_data :
|
script_data :
|
||||||
@ -98,7 +95,6 @@ SECTIONS {
|
|||||||
ALIGN(4)
|
ALIGN(4)
|
||||||
{
|
{
|
||||||
src/*.o(.rodata*);
|
src/*.o(.rodata*);
|
||||||
gflib/*.o(.rodata*);
|
|
||||||
data/*.o(.rodata*);
|
data/*.o(.rodata*);
|
||||||
} > ROM =0
|
} > ROM =0
|
||||||
|
|
||||||
|
|||||||
@ -1,11 +1,32 @@
|
|||||||
|
# This controls building executables in the `tools` folder.
|
||||||
|
# Can be invoked through the `Makefile` or standalone.
|
||||||
|
|
||||||
MAKEFLAGS += --no-print-directory
|
MAKEFLAGS += --no-print-directory
|
||||||
|
|
||||||
# Inclusive list. If you don't want a tool to be built, don't add it here.
|
# 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):
|
$(TOOLDIRS):
|
||||||
@$(MAKE) -C $@
|
@$(MAKE) -C $@
|
||||||
|
|
||||||
|
$(CHECKTOOLDIRS):
|
||||||
|
@$(MAKE) -C $@
|
||||||
|
|
||||||
|
clean-tools:
|
||||||
|
@$(foreach tooldir,$(TOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||||
|
|
||||||
|
clean-check-tools:
|
||||||
|
@$(foreach tooldir,$(CHECKTOOLDIRS),$(MAKE) clean -C $(tooldir);)
|
||||||
|
|||||||
@ -1,32 +1,34 @@
|
|||||||
# Map JSON data
|
# Map JSON data
|
||||||
|
|
||||||
|
# Inputs
|
||||||
MAPS_DIR = $(DATA_ASM_SUBDIR)/maps
|
MAPS_DIR = $(DATA_ASM_SUBDIR)/maps
|
||||||
LAYOUTS_DIR = $(DATA_ASM_SUBDIR)/layouts
|
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_DIRS := $(dir $(wildcard $(MAPS_DIR)/*/map.json))
|
||||||
MAP_CONNECTIONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/connections.inc,$(MAP_DIRS))
|
MAP_CONNECTIONS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/connections.inc,$(MAP_DIRS))
|
||||||
MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS))
|
MAP_EVENTS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/events.inc,$(MAP_DIRS))
|
||||||
MAP_HEADERS := $(patsubst $(MAPS_DIR)/%/,$(MAPS_DIR)/%/header.inc,$(MAP_DIRS))
|
MAP_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)
|
$(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)
|
$(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_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 ;
|
$(DATA_SRC_SUBDIR)/map_group_count.h: $(MAPS_DIR)/headers.inc ;
|
||||||
include/constants/map_groups.h: $(MAPS_DIR)/headers.inc ;
|
|
||||||
|
|
||||||
$(LAYOUTS_DIR)/layouts.inc: $(LAYOUTS_DIR)/layouts.json
|
$(MAPS_OUTDIR)/%/header.inc $(MAPS_OUTDIR)/%/events.inc $(MAPS_OUTDIR)/%/connections.inc: $(MAPS_DIR)/%/map.json
|
||||||
$(MAPJSON) layouts emerald $<
|
$(MAPJSON) map emerald $< $(LAYOUTS_DIR)/layouts.json $(@D)
|
||||||
$(LAYOUTS_DIR)/layouts_table.inc: $(LAYOUTS_DIR)/layouts.inc ;
|
|
||||||
include/constants/layouts.h: $(LAYOUTS_DIR)/layouts_table.inc ;
|
$(MAPS_OUTDIR)/connections.inc $(MAPS_OUTDIR)/groups.inc $(MAPS_OUTDIR)/events.inc $(MAPS_OUTDIR)/headers.inc $(INCLUDECONSTS_OUTDIR)/map_groups.h: $(MAPS_DIR)/map_groups.json
|
||||||
|
$(MAPJSON) groups emerald $< $(MAPS_OUTDIR) $(INCLUDECONSTS_OUTDIR)
|
||||||
|
|
||||||
|
$(LAYOUTS_OUTDIR)/layouts.inc $(LAYOUTS_OUTDIR)/layouts_table.inc $(INCLUDECONSTS_OUTDIR)/layouts.h: $(LAYOUTS_DIR)/layouts.json
|
||||||
|
$(MAPJSON) layouts emerald $< $(LAYOUTS_OUTDIR) $(INCLUDECONSTS_OUTDIR)
|
||||||
|
|||||||
420
sound/songs/midi/midi.cfg
Normal file
420
sound/songs/midi/midi.cfg
Normal file
@ -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
|
||||||
@ -14,7 +14,7 @@
|
|||||||
#define FSP_ON 0x01
|
#define FSP_ON 0x01
|
||||||
#define FSP_START 0x02
|
#define FSP_START 0x02
|
||||||
|
|
||||||
LINK_MANAGER lman;
|
COMMON_DATA LINK_MANAGER lman = {0};
|
||||||
|
|
||||||
static void rfu_LMAN_clearVariables(void);
|
static void rfu_LMAN_clearVariables(void);
|
||||||
static void rfu_LMAN_settingPCSWITCH(u32 rand);
|
static void rfu_LMAN_settingPCSWITCH(u32 rand);
|
||||||
|
|||||||
@ -6,16 +6,16 @@ static u16 sTimerCount;
|
|||||||
static vu16 *sTimerReg;
|
static vu16 *sTimerReg;
|
||||||
static u16 sSavedIme;
|
static u16 sSavedIme;
|
||||||
|
|
||||||
u8 gFlashTimeoutFlag;
|
COMMON_DATA u8 gFlashTimeoutFlag = 0;
|
||||||
u8 (*PollFlashStatus)(u8 *);
|
COMMON_DATA u8 (*PollFlashStatus)(u8 *) = NULL;
|
||||||
u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData);
|
COMMON_DATA u16 (*WaitForFlashWrite)(u8 phase, u8 *addr, u8 lastData) = NULL;
|
||||||
u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src);
|
COMMON_DATA u16 (*ProgramFlashSector)(u16 sectorNum, u8 *src) = NULL;
|
||||||
const struct FlashType *gFlash;
|
COMMON_DATA const struct FlashType *gFlash = NULL;
|
||||||
u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data);
|
COMMON_DATA u16 (*ProgramFlashByte)(u16 sectorNum, u32 offset, u8 data) = NULL;
|
||||||
u16 gFlashNumRemainingBytes;
|
COMMON_DATA u16 gFlashNumRemainingBytes = 0;
|
||||||
u16 (*EraseFlashChip)();
|
COMMON_DATA u16 (*EraseFlashChip)() = NULL;
|
||||||
u16 (*EraseFlashSector)(u16 sectorNum);
|
COMMON_DATA u16 (*EraseFlashSector)(u16 sectorNum) = 0;
|
||||||
const u16 *gFlashMaxTime;
|
COMMON_DATA const u16 *gFlashMaxTime = NULL;
|
||||||
|
|
||||||
void SetReadFlash1(u16 *dest);
|
void SetReadFlash1(u16 *dest);
|
||||||
|
|
||||||
|
|||||||
@ -75,9 +75,9 @@ struct ApprenticeQuestionData
|
|||||||
};
|
};
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
struct ApprenticePartyMovesData *gApprenticePartyMovesData;
|
COMMON_DATA struct ApprenticePartyMovesData *gApprenticePartyMovesData = NULL;
|
||||||
struct ApprenticeQuestionData *gApprenticeQuestionData;
|
COMMON_DATA struct ApprenticeQuestionData *gApprenticeQuestionData = NULL;
|
||||||
void (*gApprenticeFunc)(void);
|
COMMON_DATA void (*gApprenticeFunc)(void) = NULL;
|
||||||
|
|
||||||
// This file's functions.
|
// This file's functions.
|
||||||
static u16 GetRandomAlternateMove(u8 monId);
|
static u16 GetRandomAlternateMove(u8 monId);
|
||||||
|
|||||||
@ -23,9 +23,9 @@
|
|||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
|
|
||||||
// iwram
|
// iwram
|
||||||
u32 gMonShrinkDuration;
|
COMMON_DATA u32 gMonShrinkDuration = 0;
|
||||||
u16 gMonShrinkDelta;
|
COMMON_DATA u16 gMonShrinkDelta = 0;
|
||||||
u16 gMonShrinkDistance;
|
COMMON_DATA u16 gMonShrinkDistance = 0;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
BALL_ROLL_1,
|
BALL_ROLL_1,
|
||||||
|
|||||||
@ -30,9 +30,9 @@ static EWRAM_DATA u8 sLinkSendTaskId = 0;
|
|||||||
static EWRAM_DATA u8 sLinkReceiveTaskId = 0;
|
static EWRAM_DATA u8 sLinkReceiveTaskId = 0;
|
||||||
EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read
|
EWRAM_DATA struct UnusedControllerStruct gUnusedControllerStruct = {}; // Debug? Unused code that writes to it, never read
|
||||||
|
|
||||||
void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler);
|
COMMON_DATA void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler) = {0};
|
||||||
u8 gBattleControllerData[MAX_BATTLERS_COUNT]; // Used by the battle controllers to store misc sprite/task IDs for each battler
|
COMMON_DATA u8 gBattleControllerData[MAX_BATTLERS_COUNT] = {0}; // 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 (*gBattlerControllerEndFuncs[MAX_BATTLERS_COUNT])(u32 battler) = {0}; // Controller's buffer complete function for each battler
|
||||||
|
|
||||||
static void CreateTasksForSendRecvLinkBuffers(void);
|
static void CreateTasksForSendRecvLinkBuffers(void);
|
||||||
static void InitLinkBtlControllers(void);
|
static void InitLinkBtlControllers(void);
|
||||||
|
|||||||
@ -256,7 +256,7 @@ static struct FactorySelectScreen *sFactorySelectScreen;
|
|||||||
static void (*sSwap_CurrentOptionFunc)(u8 taskId);
|
static void (*sSwap_CurrentOptionFunc)(u8 taskId);
|
||||||
static struct FactorySwapScreen *sFactorySwapScreen;
|
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 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");
|
static const u16 sPokeballSelected_Pal[] = INCBIN_U16("graphics/battle_frontier/factory_screen/pokeball_selected.gbapal");
|
||||||
|
|||||||
@ -238,13 +238,13 @@ EWRAM_DATA u8 gPartyCriticalHits[PARTY_SIZE] = {0};
|
|||||||
EWRAM_DATA static u8 sTriedEvolving = 0;
|
EWRAM_DATA static u8 sTriedEvolving = 0;
|
||||||
EWRAM_DATA u8 gCategoryIconSpriteId = 0;
|
EWRAM_DATA u8 gCategoryIconSpriteId = 0;
|
||||||
|
|
||||||
void (*gPreBattleCallback1)(void);
|
COMMON_DATA void (*gPreBattleCallback1)(void) = NULL;
|
||||||
void (*gBattleMainFunc)(void);
|
COMMON_DATA void (*gBattleMainFunc)(void) = NULL;
|
||||||
struct BattleResults gBattleResults;
|
COMMON_DATA struct BattleResults gBattleResults = {0};
|
||||||
u8 gLeveledUpInBattle;
|
COMMON_DATA u8 gLeveledUpInBattle = 0;
|
||||||
u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
|
COMMON_DATA u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT] = {0};
|
||||||
u8 gMultiUsePlayerCursor;
|
COMMON_DATA u8 gMultiUsePlayerCursor = 0;
|
||||||
u8 gNumberOfMovesToChoose;
|
COMMON_DATA u8 gNumberOfMovesToChoose = 0;
|
||||||
|
|
||||||
static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
|
static const struct ScanlineEffectParams sIntroScanlineParams16Bit =
|
||||||
{
|
{
|
||||||
|
|||||||
@ -1215,6 +1215,7 @@ static void Cmd_attackcanceler(void)
|
|||||||
gCurrentActionFuncId = B_ACTION_FINISHED;
|
gCurrentActionFuncId = B_ACTION_FINISHED;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!IsBattlerAlive(gBattlerAttacker) && gMovesInfo[gCurrentMove].effect != EFFECT_EXPLOSION && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
|
if (!IsBattlerAlive(gBattlerAttacker) && gMovesInfo[gCurrentMove].effect != EFFECT_EXPLOSION && !(gHitMarker & HITMARKER_NO_ATTACKSTRING))
|
||||||
{
|
{
|
||||||
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
|
gHitMarker |= HITMARKER_UNABLE_TO_USE_MOVE;
|
||||||
|
|||||||
@ -927,7 +927,7 @@ u8 GetTrainerBattleTransition(void)
|
|||||||
return sBattleTransitionTable_Trainer[transitionType][1];
|
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)
|
u8 GetSpecialBattleTransition(s32 id)
|
||||||
{
|
{
|
||||||
u16 var;
|
u16 var;
|
||||||
@ -1729,7 +1729,7 @@ static inline bool32 DoesCurrentMapMatchRematchTrainerMap(s32 i, const struct Re
|
|||||||
|
|
||||||
bool32 TrainerIsMatchCallRegistered(s32 i)
|
bool32 TrainerIsMatchCallRegistered(s32 i)
|
||||||
{
|
{
|
||||||
return FlagGet(FLAG_MATCH_CALL_REGISTERED + i);
|
return FlagGet(TRAINER_REGISTERED_FLAGS_START + i);
|
||||||
}
|
}
|
||||||
|
|
||||||
#if FREE_MATCH_CALL == FALSE
|
#if FREE_MATCH_CALL == FALSE
|
||||||
@ -1887,7 +1887,7 @@ static u32 GetTrainerMatchCallFlag(u32 trainerId)
|
|||||||
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
|
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
|
||||||
{
|
{
|
||||||
if (gRematchTable[i].trainerIds[0] == trainerId)
|
if (gRematchTable[i].trainerIds[0] == trainerId)
|
||||||
return FLAG_MATCH_CALL_REGISTERED + i;
|
return TRAINER_REGISTERED_FLAGS_START + i;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0xFFFF;
|
return 0xFFFF;
|
||||||
|
|||||||
@ -45,7 +45,7 @@ EWRAM_DATA const struct BattleFrontierTrainer *gFacilityTrainers = NULL;
|
|||||||
EWRAM_DATA const struct TrainerMon *gFacilityTrainerMons = NULL;
|
EWRAM_DATA const struct TrainerMon *gFacilityTrainerMons = NULL;
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE];
|
COMMON_DATA u16 gFrontierTempParty[MAX_FRONTIER_PARTY_SIZE] = {0};
|
||||||
|
|
||||||
// This file's functions.
|
// This file's functions.
|
||||||
static void InitTowerChallenge(void);
|
static void InitTowerChallenge(void);
|
||||||
|
|||||||
@ -1873,7 +1873,11 @@ static bool8 ClockwiseWipe_TopRight(struct Task *task)
|
|||||||
{
|
{
|
||||||
sTransitionData->VBlank_DMA = FALSE;
|
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);
|
InitBlackWipe(sTransitionData->data, DISPLAY_WIDTH / 2, DISPLAY_HEIGHT / 2, sTransitionData->tWipeEndX, -1, 1, 1);
|
||||||
|
#endif
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
gScanlineEffectRegBuffers[0][sTransitionData->tWipeCurrY] = (sTransitionData->tWipeCurrX + 1) | ((DISPLAY_WIDTH / 2) << 8);
|
gScanlineEffectRegBuffers[0][sTransitionData->tWipeCurrY] = (sTransitionData->tWipeCurrX + 1) | ((DISPLAY_WIDTH / 2) << 8);
|
||||||
|
|||||||
@ -268,19 +268,10 @@ void HandleAction_UseMove(void)
|
|||||||
gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
|
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)));
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
|
||||||
if (!IsBattlerAlive(gBattlerTarget))
|
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -325,19 +316,12 @@ void HandleAction_UseMove(void)
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
|
gBattlerTarget = *(gBattleStruct->moveTarget + gBattlerAttacker);
|
||||||
if (!IsBattlerAlive(gBattlerTarget) && moveTarget != MOVE_TARGET_OPPONENTS_FIELD)
|
if (!IsBattlerAlive(gBattlerTarget)
|
||||||
{
|
&& moveTarget != MOVE_TARGET_OPPONENTS_FIELD
|
||||||
if (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget))
|
&& (GetBattlerSide(gBattlerAttacker) != GetBattlerSide(gBattlerTarget)))
|
||||||
{
|
{
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_OPPOSITE(GetBattlerPosition(gBattlerAttacker)));
|
|
||||||
if (!IsBattlerAlive(gBattlerTarget))
|
|
||||||
gBattlerTarget = GetBattlerAtPosition(BATTLE_PARTNER(GetBattlerPosition(gBattlerTarget)));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gProtectStructs[gBattlerAttacker].palaceUnableToUseMove)
|
if (gBattleTypeFlags & BATTLE_TYPE_PALACE && gProtectStructs[gBattlerAttacker].palaceUnableToUseMove)
|
||||||
@ -360,8 +344,9 @@ void HandleAction_UseMove(void)
|
|||||||
gBattlescriptCurrInstr = BattleScript_MoveUsedLoafingAround;
|
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;
|
gBattlescriptCurrInstr = BattleScript_FailedFromAtkCanceler;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -246,7 +246,7 @@ static s16 sPokeblockPresentFlavors[FLAVOR_COUNT + 1];
|
|||||||
static s16 sDebug_MaxRPMStage;
|
static s16 sDebug_MaxRPMStage;
|
||||||
static s16 sDebug_GameTimeStage;
|
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 u16 sBlenderCenter_Pal[] = INCBIN_U16("graphics/berry_blender/center.gbapal");
|
||||||
static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
|
static const u8 sBlenderCenter_Tilemap[] = INCBIN_U8("graphics/berry_blender/center_map.bin");
|
||||||
|
|||||||
@ -38,7 +38,7 @@ static struct BgControl sGpuBgConfigs;
|
|||||||
static struct BgConfig2 sGpuBgConfigs2[NUM_BACKGROUNDS];
|
static struct BgConfig2 sGpuBgConfigs2[NUM_BACKGROUNDS];
|
||||||
static u32 sDmaBusyBitfield[NUM_BACKGROUNDS];
|
static u32 sDmaBusyBitfield[NUM_BACKGROUNDS];
|
||||||
|
|
||||||
u32 gWindowTileAutoAllocEnabled;
|
COMMON_DATA u32 gWindowTileAutoAllocEnabled = 0;
|
||||||
|
|
||||||
static const struct BgConfig sZeroedBgControlStruct = { 0 };
|
static const struct BgConfig sZeroedBgControlStruct = { 0 };
|
||||||
|
|
||||||
@ -880,8 +880,12 @@ static void CreateCableCarSprites(void)
|
|||||||
// 1/64 chance for an NPC to appear hiking on the ground below the Cable Car
|
// 1/64 chance for an NPC to appear hiking on the ground below the Cable Car
|
||||||
if ((rval % 64) == 0)
|
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);
|
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)
|
if (spriteId != MAX_SPRITES)
|
||||||
{
|
{
|
||||||
gSprites[spriteId].oam.priority = 2;
|
gSprites[spriteId].oam.priority = 2;
|
||||||
|
|||||||
@ -358,7 +358,7 @@ EWRAM_DATA bool8 gCurContestWinnerIsForArtist = 0;
|
|||||||
EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0;
|
EWRAM_DATA u8 gCurContestWinnerSaveIdx = 0;
|
||||||
|
|
||||||
// IWRAM common vars.
|
// IWRAM common vars.
|
||||||
rng_value_t gContestRngValue;
|
COMMON_DATA rng_value_t gContestRngValue = {0};
|
||||||
|
|
||||||
extern const u8 gText_LinkStandby4[];
|
extern const u8 gText_LinkStandby4[];
|
||||||
extern const u8 gText_BDot[];
|
extern const u8 gText_BDot[];
|
||||||
|
|||||||
@ -21,10 +21,10 @@
|
|||||||
#include "window.h"
|
#include "window.h"
|
||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
|
|
||||||
u16 (*gContestMonPixels)[][32];
|
COMMON_DATA u16 (*gContestMonPixels)[][32] = {0};
|
||||||
struct ImageProcessingContext gImageProcessingContext;
|
COMMON_DATA struct ImageProcessingContext gImageProcessingContext = {0};
|
||||||
struct ContestWinner *gContestPaintingWinner;
|
COMMON_DATA struct ContestWinner *gContestPaintingWinner = {0};
|
||||||
u16 *gContestPaintingMonPalette;
|
COMMON_DATA u16 *gContestPaintingMonPalette = NULL;
|
||||||
|
|
||||||
static u8 sHoldState;
|
static u8 sHoldState;
|
||||||
static u16 sMosaicVal;
|
static u16 sMosaicVal;
|
||||||
|
|||||||
@ -171,7 +171,7 @@ static const u8 sDecorTilemap_3x2_X[] = {
|
|||||||
0x06, 0x07, 0x06, 0x07, 0x06, 0x07
|
0x06, 0x07, 0x06, 0x07, 0x06, 0x07
|
||||||
};
|
};
|
||||||
|
|
||||||
#define DECORSIZE(width, height)((width) * (height) * 4)
|
#define DECORSIZE(width, height) ((width) * (height) * 4)
|
||||||
|
|
||||||
static const struct {
|
static const struct {
|
||||||
const u8 *tiles;
|
const u8 *tiles;
|
||||||
|
|||||||
@ -20943,7 +20943,7 @@ const struct MoveInfo gMovesInfo[MOVES_COUNT_DYNAMAX] =
|
|||||||
},
|
},
|
||||||
[MOVE_10000000_VOLT_THUNDERBOLT] =
|
[MOVE_10000000_VOLT_THUNDERBOLT] =
|
||||||
{
|
{
|
||||||
.name = COMPOUND_STRING("10000000 Volt Thunderbolt"),
|
.name = COMPOUND_STRING("10,000,000 Volt Thunderbolt"),
|
||||||
.description = sNullDescription,
|
.description = sNullDescription,
|
||||||
.effect = EFFECT_HIT,
|
.effect = EFFECT_HIT,
|
||||||
.power = 195,
|
.power = 195,
|
||||||
|
|||||||
@ -1,10 +1,10 @@
|
|||||||
#define SQUARE(n)((n) * (n))
|
#define SQUARE(n) ((n) * (n))
|
||||||
#define CUBE(n)((n) * (n) * (n))
|
#define CUBE(n) ((n) * (n) * (n))
|
||||||
|
|
||||||
#define EXP_SLOW(n)((5 * CUBE(n)) / 4) // (5 * (n)^3) / 4
|
#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_FAST(n) ((4 * CUBE(n)) / 5) // (4 * (n)^3) / 5
|
||||||
#define EXP_MEDIUM_FAST(n)(CUBE(n)) // (n)^3
|
#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_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) \
|
#define EXP_ERRATIC(n) \
|
||||||
(n <= 50) ? ((100 - n) * CUBE(n) / 50) \
|
(n <= 50) ? ((100 - n) * CUBE(n) / 50) \
|
||||||
:(n <= 68) ? ((150 - n) * CUBE(n) / 100) \
|
:(n <= 68) ? ((150 - n) * CUBE(n) / 100) \
|
||||||
|
|||||||
@ -633,10 +633,10 @@ static const struct WindowTemplate sWindowTemplate_BButtonCancel = {
|
|||||||
|
|
||||||
// Minimum and maximum number of players for a link group
|
// Minimum and maximum number of players for a link group
|
||||||
// A minimum of 0 means the min and max are equal
|
// A minimum of 0 means the min and max are equal
|
||||||
#define LINK_GROUP_CAPACITY(min, max)(((min) << 12) | ((max) << 8))
|
#define LINK_GROUP_CAPACITY(min, max) (((min) << 12) | ((max) << 8))
|
||||||
#define GROUP_MAX(capacity)(capacity & 0x0F)
|
#define GROUP_MAX(capacity) (capacity & 0x0F)
|
||||||
#define GROUP_MIN(capacity)(capacity >> 4)
|
#define GROUP_MIN(capacity) (capacity >> 4)
|
||||||
#define GROUP_MIN2(capacity)(capacity & 0xF0) // Unnecessary to have both, but needed to match
|
#define GROUP_MIN2(capacity) (capacity & 0xF0) // Unnecessary to have both, but needed to match
|
||||||
|
|
||||||
static const u32 sLinkGroupToActivityAndCapacity[NUM_LINK_GROUP_TYPES] = {
|
static const u32 sLinkGroupToActivityAndCapacity[NUM_LINK_GROUP_TYPES] = {
|
||||||
[LINK_GROUP_SINGLE_BATTLE] = ACTIVITY_BATTLE_SINGLE | LINK_GROUP_CAPACITY(0, 2),
|
[LINK_GROUP_SINGLE_BATTLE] = ACTIVITY_BATTLE_SINGLE | LINK_GROUP_CAPACITY(0, 2),
|
||||||
|
|||||||
@ -40,7 +40,10 @@ struct EReaderData
|
|||||||
|
|
||||||
static void Task_EReader(u8);
|
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_Start[];
|
||||||
extern const u8 gMultiBootProgram_EReader_End[];
|
extern const u8 gMultiBootProgram_EReader_End[];
|
||||||
|
|||||||
@ -47,7 +47,7 @@ struct EvoInfo
|
|||||||
static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL;
|
static EWRAM_DATA struct EvoInfo *sEvoStructPtr = NULL;
|
||||||
static EWRAM_DATA u16 *sBgAnimPal = 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 sEvoCursorPos gBattleCommunication[1] // when learning a new move
|
||||||
#define sEvoGraphicsTaskId gBattleCommunication[2]
|
#define sEvoGraphicsTaskId gBattleCommunication[2]
|
||||||
|
|||||||
@ -39,9 +39,9 @@ static s16 sVerticalCameraPan;
|
|||||||
static bool8 sBikeCameraPanFlag;
|
static bool8 sBikeCameraPanFlag;
|
||||||
static void (*sFieldCameraPanningCallback)(void);
|
static void (*sFieldCameraPanningCallback)(void);
|
||||||
|
|
||||||
struct CameraObject gFieldCamera;
|
COMMON_DATA struct CameraObject gFieldCamera = {0};
|
||||||
u16 gTotalCameraPixelOffsetY;
|
COMMON_DATA u16 gTotalCameraPixelOffsetY = 0;
|
||||||
u16 gTotalCameraPixelOffsetX;
|
COMMON_DATA u16 gTotalCameraPixelOffsetX = 0;
|
||||||
|
|
||||||
static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset)
|
static void ResetCameraOffset(struct FieldCameraOffset *cameraOffset)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -42,7 +42,7 @@
|
|||||||
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
|
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
|
||||||
static EWRAM_DATA u16 sPrevMetatileBehavior = 0;
|
static EWRAM_DATA u16 sPrevMetatileBehavior = 0;
|
||||||
|
|
||||||
u8 gSelectedObjectEvent;
|
COMMON_DATA u8 gSelectedObjectEvent = 0;
|
||||||
|
|
||||||
static void GetPlayerPosition(struct MapPosition *);
|
static void GetPlayerPosition(struct MapPosition *);
|
||||||
static void GetInFrontOfPlayerPosition(struct MapPosition *);
|
static void GetInFrontOfPlayerPosition(struct MapPosition *);
|
||||||
|
|||||||
@ -93,7 +93,11 @@ static void Task_TryFieldPoisonWhiteOut(u8 taskId)
|
|||||||
if (AllMonsFainted())
|
if (AllMonsFainted())
|
||||||
{
|
{
|
||||||
// Battle facilities have their own white out script to handle the challenge loss
|
// Battle facilities have their own white out script to handle the challenge loss
|
||||||
|
#ifdef BUGFIX
|
||||||
|
if (InBattlePyramid() || InBattlePike() || InTrainerHillChallenge())
|
||||||
|
#else
|
||||||
if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge())
|
if (InBattlePyramid() | InBattlePike() || InTrainerHillChallenge())
|
||||||
|
#endif
|
||||||
gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT;
|
gSpecialVar_Result = FLDPSN_FRONTIER_WHITEOUT;
|
||||||
else
|
else
|
||||||
gSpecialVar_Result = FLDPSN_WHITEOUT;
|
gSpecialVar_Result = FLDPSN_WHITEOUT;
|
||||||
|
|||||||
@ -97,7 +97,7 @@ static EWRAM_DATA u8 sFrontierExchangeCorner_ItemIconWindowId = 0;
|
|||||||
static EWRAM_DATA u8 sPCBoxToSendMon = 0;
|
static EWRAM_DATA u8 sPCBoxToSendMon = 0;
|
||||||
static EWRAM_DATA u32 sBattleTowerMultiBattleTypeFlags = 0;
|
static EWRAM_DATA u32 sBattleTowerMultiBattleTypeFlags = 0;
|
||||||
|
|
||||||
struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate;
|
COMMON_DATA struct ListMenuTemplate gScrollableMultichoice_ListMenuTemplate = {0};
|
||||||
EWRAM_DATA u16 gScrollableMultichoice_ScrollOffset = 0;
|
EWRAM_DATA u16 gScrollableMultichoice_ScrollOffset = 0;
|
||||||
|
|
||||||
void TryLoseFansFromPlayTime(void);
|
void TryLoseFansFromPlayTime(void);
|
||||||
@ -273,7 +273,7 @@ u16 GetRecordedCyclingRoadResults(void)
|
|||||||
|
|
||||||
void UpdateCyclingRoadState(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;
|
return;
|
||||||
|
|
||||||
if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3)
|
if (VarGet(VAR_CYCLING_CHALLENGE_STATE) == 2 || VarGet(VAR_CYCLING_CHALLENGE_STATE) == 3)
|
||||||
@ -3551,7 +3551,7 @@ bool32 IsTrainerRegistered(void)
|
|||||||
int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
|
int index = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
|
||||||
if (index >= 0)
|
if (index >= 0)
|
||||||
{
|
{
|
||||||
if (FlagGet(FLAG_MATCH_CALL_REGISTERED + index) == TRUE)
|
if (FlagGet(TRAINER_REGISTERED_FLAGS_START + index) == TRUE)
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
return FALSE;
|
return FALSE;
|
||||||
@ -3890,11 +3890,11 @@ bool8 InPokemonCenter(void)
|
|||||||
|
|
||||||
#define GET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD >> (flag) & 1)
|
#define GET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD >> (flag) & 1)
|
||||||
#define SET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD |= 1 << (flag))
|
#define SET_TRAINER_FAN_CLUB_FLAG(flag) (FANCLUB_BITFIELD |= 1 << (flag))
|
||||||
#define FLIP_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 GET_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD & FANCLUB_COUNTER)
|
||||||
#define SET_TRAINER_FAN_CLUB_COUNTER(count) (FANCLUB_BITFIELD = (FANCLUB_BITFIELD & ~FANCLUB_COUNTER) | (count))
|
#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 INCR_TRAINER_FAN_CLUB_COUNTER(count) (FANCLUB_BITFIELD += (count))
|
||||||
#define CLEAR_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD &= ~FANCLUB_COUNTER)
|
#define CLEAR_TRAINER_FAN_CLUB_COUNTER (FANCLUB_BITFIELD &= ~FANCLUB_COUNTER)
|
||||||
|
|
||||||
void ResetFanClub(void)
|
void ResetFanClub(void)
|
||||||
|
|||||||
@ -32,7 +32,7 @@ EWRAM_DATA struct Camera gCamera = {0};
|
|||||||
EWRAM_DATA static struct ConnectionFlags sMapConnectionFlags = {0};
|
EWRAM_DATA static struct ConnectionFlags sMapConnectionFlags = {0};
|
||||||
EWRAM_DATA static u32 UNUSED sFiller = 0; // without this, the next file won't align properly
|
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};
|
static const struct ConnectionFlags sDummyConnectionFlags = {0};
|
||||||
|
|
||||||
|
|||||||
@ -1241,7 +1241,7 @@ static void ShowHideZoomingArea(bool8 show, bool8 zoomedIn)
|
|||||||
|
|
||||||
static void UpdateAreaHighlight(u8 cursorArea, u8 previousCursorArea)
|
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
|
// If moving off highlightable area, unhighlight it
|
||||||
switch (previousCursorArea)
|
switch (previousCursorArea)
|
||||||
|
|||||||
@ -4,16 +4,16 @@
|
|||||||
#include "constants/rgb.h"
|
#include "constants/rgb.h"
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
u8 gCanvasColumnStart;
|
COMMON_DATA u8 gCanvasColumnStart = 0;
|
||||||
u16 *gCanvasPixels;
|
COMMON_DATA u16 *gCanvasPixels = NULL;
|
||||||
u8 gCanvasRowEnd;
|
COMMON_DATA u8 gCanvasRowEnd = 0;
|
||||||
u8 gCanvasHeight;
|
COMMON_DATA u8 gCanvasHeight = 0;
|
||||||
u8 gCanvasColumnEnd;
|
COMMON_DATA u8 gCanvasColumnEnd = 0;
|
||||||
u8 gCanvasRowStart;
|
COMMON_DATA u8 gCanvasRowStart = 0;
|
||||||
u8 gCanvasMonPersonality;
|
COMMON_DATA u8 gCanvasMonPersonality = 0;
|
||||||
u8 gCanvasWidth;
|
COMMON_DATA u8 gCanvasWidth = 0;
|
||||||
u16 *gCanvasPalette;
|
COMMON_DATA u16 *gCanvasPalette = NULL;
|
||||||
u16 gCanvasPaletteStart;
|
COMMON_DATA u16 gCanvasPaletteStart = 0;
|
||||||
|
|
||||||
static void ApplyImageEffect_Pointillism(void);
|
static void ApplyImageEffect_Pointillism(void);
|
||||||
static void ApplyImageEffect_Blur(void);
|
static void ApplyImageEffect_Blur(void);
|
||||||
|
|||||||
16
src/intro.c
16
src/intro.c
@ -112,6 +112,12 @@ extern const struct CompressedSpriteSheet gBattleAnimPicTable[];
|
|||||||
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
|
extern const struct CompressedSpritePalette gBattleAnimPaletteTable[];
|
||||||
extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[];
|
extern const struct SpriteTemplate gAncientPowerRockSpriteTemplate[];
|
||||||
|
|
||||||
|
enum {
|
||||||
|
COPYRIGHT_INITIALIZE,
|
||||||
|
COPYRIGHT_START_FADE = 140,
|
||||||
|
COPYRIGHT_START_INTRO,
|
||||||
|
};
|
||||||
|
|
||||||
#define TAG_VOLBEAT 1500
|
#define TAG_VOLBEAT 1500
|
||||||
#define TAG_TORCHIC 1501
|
#define TAG_TORCHIC 1501
|
||||||
#define TAG_MANECTRIC 1502
|
#define TAG_MANECTRIC 1502
|
||||||
@ -172,8 +178,8 @@ static EWRAM_DATA u16 sIntroCharacterGender = 0;
|
|||||||
static EWRAM_DATA u16 UNUSED sUnusedVar = 0;
|
static EWRAM_DATA u16 UNUSED sUnusedVar = 0;
|
||||||
static EWRAM_DATA u16 sFlygonYOffset = 0;
|
static EWRAM_DATA u16 sFlygonYOffset = 0;
|
||||||
|
|
||||||
u32 gIntroFrameCounter;
|
COMMON_DATA u32 gIntroFrameCounter = 0;
|
||||||
struct GcmbStruct gMultibootProgramStruct;
|
COMMON_DATA struct GcmbStruct gMultibootProgramStruct = {0};
|
||||||
|
|
||||||
static const u16 sIntroDrops_Pal[] = INCBIN_U16("graphics/intro/scene_1/drops.gbapal");
|
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");
|
static const u16 sIntroLogo_Pal[] = INCBIN_U16("graphics/intro/scene_1/logo.gbapal");
|
||||||
@ -1067,7 +1073,7 @@ static u8 SetUpCopyrightScreen(void)
|
|||||||
{
|
{
|
||||||
switch (gMain.state)
|
switch (gMain.state)
|
||||||
{
|
{
|
||||||
case 0:
|
case COPYRIGHT_INITIALIZE:
|
||||||
SetVBlankCallback(NULL);
|
SetVBlankCallback(NULL);
|
||||||
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
SetGpuReg(REG_OFFSET_BLDCNT, 0);
|
||||||
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
SetGpuReg(REG_OFFSET_BLDALPHA, 0);
|
||||||
@ -1105,7 +1111,7 @@ static u8 SetUpCopyrightScreen(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
GameCubeMultiBoot_Main(&gMultibootProgramStruct);
|
GameCubeMultiBoot_Main(&gMultibootProgramStruct);
|
||||||
break;
|
break;
|
||||||
case 140:
|
case COPYRIGHT_START_FADE:
|
||||||
GameCubeMultiBoot_Main(&gMultibootProgramStruct);
|
GameCubeMultiBoot_Main(&gMultibootProgramStruct);
|
||||||
if (gMultibootProgramStruct.gcmb_field_2 != 1)
|
if (gMultibootProgramStruct.gcmb_field_2 != 1)
|
||||||
{
|
{
|
||||||
@ -1113,7 +1119,7 @@ static u8 SetUpCopyrightScreen(void)
|
|||||||
gMain.state++;
|
gMain.state++;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 141:
|
case COPYRIGHT_START_INTRO:
|
||||||
if (UpdatePaletteFade())
|
if (UpdatePaletteFade())
|
||||||
break;
|
break;
|
||||||
#if EXPANSION_INTRO == TRUE
|
#if EXPANSION_INTRO == TRUE
|
||||||
|
|||||||
@ -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_asRecvDataEntity(u8, struct NIComm *);
|
||||||
static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *);
|
static void rfu_STC_NI_initSlot_asRecvControllData(u8, struct NIComm *);
|
||||||
|
|
||||||
struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX];
|
COMMON_DATA struct RfuSlotStatusUNI *gRfuSlotStatusUNI[RFU_CHILD_MAX] = {0};
|
||||||
struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX];
|
COMMON_DATA struct RfuSlotStatusNI *gRfuSlotStatusNI[RFU_CHILD_MAX] = {0};
|
||||||
struct RfuLinkStatus *gRfuLinkStatus;
|
COMMON_DATA struct RfuLinkStatus *gRfuLinkStatus = NULL;
|
||||||
struct RfuStatic *gRfuStatic;
|
COMMON_DATA struct RfuStatic *gRfuStatic = NULL;
|
||||||
struct RfuFixed *gRfuFixed;
|
COMMON_DATA struct RfuFixed *gRfuFixed = NULL;
|
||||||
|
|
||||||
static const struct LLSFStruct llsf_struct[2] = {
|
static const struct LLSFStruct llsf_struct[2] = {
|
||||||
[MODE_CHILD] = {
|
[MODE_CHILD] = {
|
||||||
|
|||||||
@ -15,7 +15,7 @@ struct RfuSIO32Id
|
|||||||
u16 lastId;
|
u16 lastId;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct RfuSIO32Id gRfuSIO32Id;
|
COMMON_DATA struct RfuSIO32Id gRfuSIO32Id = {0};
|
||||||
|
|
||||||
static const u16 Sio32ConnectionData[] = { 0x494e, 0x544e, 0x4e45, 0x4f44 }; // NINTENDO
|
static const u16 Sio32ConnectionData[] = { 0x494e, 0x544e, 0x4e45, 0x4f44 }; // NINTENDO
|
||||||
static const char Sio32IDLib_Var[] = "Sio32ID_030820";
|
static const char Sio32IDLib_Var[] = "Sio32ID_030820";
|
||||||
|
|||||||
@ -8,7 +8,7 @@ static void STWI_stop_timer(void);
|
|||||||
static s32 STWI_restart_Command(void);
|
static s32 STWI_restart_Command(void);
|
||||||
static s32 STWI_reset_ClockCounter(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)
|
void STWI_init_all(struct RfuIntrStruct *interruptStruct, IntrFunc *interrupt, bool8 copyInterruptToRam)
|
||||||
{
|
{
|
||||||
|
|||||||
70
src/link.c
70
src/link.c
@ -68,41 +68,41 @@ static u16 sRecvNonzeroCheck;
|
|||||||
static u8 sChecksumAvailable;
|
static u8 sChecksumAvailable;
|
||||||
static u8 sHandshakePlayerCount;
|
static u8 sHandshakePlayerCount;
|
||||||
|
|
||||||
u16 gLinkPartnersHeldKeys[6];
|
COMMON_DATA u16 gLinkPartnersHeldKeys[6] = {0};
|
||||||
u32 gLinkDebugSeed;
|
COMMON_DATA u32 gLinkDebugSeed = 0;
|
||||||
struct LinkPlayerBlock gLocalLinkPlayerBlock;
|
COMMON_DATA struct LinkPlayerBlock gLocalLinkPlayerBlock = {0};
|
||||||
bool8 gLinkErrorOccurred;
|
COMMON_DATA bool8 gLinkErrorOccurred = 0;
|
||||||
u32 gLinkDebugFlags;
|
COMMON_DATA u32 gLinkDebugFlags = 0;
|
||||||
u32 gLinkFiller1;
|
COMMON_DATA u32 gLinkFiller1 = 0;
|
||||||
bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS];
|
COMMON_DATA bool8 gRemoteLinkPlayersNotReceived[MAX_LINK_PLAYERS] = {0};
|
||||||
u8 gBlockReceivedStatus[MAX_LINK_PLAYERS];
|
COMMON_DATA u8 gBlockReceivedStatus[MAX_LINK_PLAYERS] = {0};
|
||||||
u32 gLinkFiller2;
|
COMMON_DATA u32 gLinkFiller2 = 0;
|
||||||
u16 gLinkHeldKeys;
|
COMMON_DATA u16 gLinkHeldKeys = 0;
|
||||||
u16 ALIGNED(4) gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH];
|
COMMON_DATA u16 ALIGNED(4) gRecvCmds[MAX_RFU_PLAYERS][CMD_LENGTH] = {0};
|
||||||
u32 gLinkStatus;
|
COMMON_DATA u32 gLinkStatus = 0;
|
||||||
bool8 gLinkDummy1; // Never read
|
COMMON_DATA bool8 gLinkDummy1 = 0; // Never read
|
||||||
bool8 gLinkDummy2; // Never read
|
COMMON_DATA bool8 gLinkDummy2 = 0; // Never read
|
||||||
bool8 gReadyToExitStandby[MAX_LINK_PLAYERS];
|
COMMON_DATA bool8 gReadyToExitStandby[MAX_LINK_PLAYERS] = {0};
|
||||||
bool8 gReadyToCloseLink[MAX_LINK_PLAYERS];
|
COMMON_DATA bool8 gReadyToCloseLink[MAX_LINK_PLAYERS] = {0};
|
||||||
u16 gReadyCloseLinkType; // Never read
|
COMMON_DATA u16 gReadyCloseLinkType = 0; // Never read
|
||||||
u8 gSuppressLinkErrorMessage;
|
COMMON_DATA u8 gSuppressLinkErrorMessage = 0;
|
||||||
bool8 gWirelessCommType;
|
COMMON_DATA bool8 gWirelessCommType = 0;
|
||||||
bool8 gSavedLinkPlayerCount;
|
COMMON_DATA bool8 gSavedLinkPlayerCount = 0;
|
||||||
u16 gSendCmd[CMD_LENGTH];
|
COMMON_DATA u16 gSendCmd[CMD_LENGTH] = {0};
|
||||||
u8 gSavedMultiplayerId;
|
COMMON_DATA u8 gSavedMultiplayerId = 0;
|
||||||
bool8 gReceivedRemoteLinkPlayers;
|
COMMON_DATA bool8 gReceivedRemoteLinkPlayers = 0;
|
||||||
struct LinkTestBGInfo gLinkTestBGInfo;
|
COMMON_DATA struct LinkTestBGInfo gLinkTestBGInfo = {0};
|
||||||
void (*gLinkCallback)(void);
|
COMMON_DATA void (*gLinkCallback)(void) = NULL;
|
||||||
u8 gShouldAdvanceLinkState;
|
COMMON_DATA u8 gShouldAdvanceLinkState = 0;
|
||||||
u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS];
|
COMMON_DATA u16 gLinkTestBlockChecksums[MAX_LINK_PLAYERS] = {0};
|
||||||
u8 gBlockRequestType;
|
COMMON_DATA u8 gBlockRequestType = 0;
|
||||||
u32 gLinkFiller3;
|
COMMON_DATA u32 gLinkFiller3 = 0;
|
||||||
u32 gLinkFiller4;
|
COMMON_DATA u32 gLinkFiller4 = 0;
|
||||||
u32 gLinkFiller5;
|
COMMON_DATA u32 gLinkFiller5 = 0;
|
||||||
u8 gLastSendQueueCount;
|
COMMON_DATA u8 gLastSendQueueCount = 0;
|
||||||
struct Link gLink;
|
COMMON_DATA struct Link gLink = {0};
|
||||||
u8 gLastRecvQueueCount;
|
COMMON_DATA u8 gLastRecvQueueCount = 0;
|
||||||
u16 gLinkSavedIme;
|
COMMON_DATA u16 gLinkSavedIme = 0;
|
||||||
|
|
||||||
static EWRAM_DATA u8 sLinkTestDebugValuesEnabled = 0;
|
static EWRAM_DATA u8 sLinkTestDebugValuesEnabled = 0;
|
||||||
static EWRAM_DATA u8 sDummyFlag = FALSE;
|
static EWRAM_DATA u8 sDummyFlag = FALSE;
|
||||||
|
|||||||
@ -77,8 +77,8 @@ struct RfuDebug
|
|||||||
u8 unused4[88];
|
u8 unused4[88];
|
||||||
};
|
};
|
||||||
|
|
||||||
u32 gRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4];
|
COMMON_DATA u32 gRfuAPIBuffer[RFU_API_BUFF_SIZE_RAM / 4] = {0};
|
||||||
struct RfuManager gRfu;
|
COMMON_DATA struct RfuManager gRfu = {0};
|
||||||
|
|
||||||
static u8 sHeldKeyCount;
|
static u8 sHeldKeyCount;
|
||||||
static u8 sResendBlock8[CMD_LENGTH * 2];
|
static u8 sResendBlock8[CMD_LENGTH * 2];
|
||||||
@ -138,7 +138,7 @@ static const u8 sAvailSlots[] = {
|
|||||||
[4] = AVAIL_SLOT4
|
[4] = AVAIL_SLOT4
|
||||||
};
|
};
|
||||||
|
|
||||||
#define BLOCK_MASK(bitNum)((1 << (bitNum)) - 1)
|
#define BLOCK_MASK(bitNum) ((1 << (bitNum)) - 1)
|
||||||
static const u32 sAllBlocksReceived[] = {
|
static const u32 sAllBlocksReceived[] = {
|
||||||
BLOCK_MASK(0),
|
BLOCK_MASK(0),
|
||||||
BLOCK_MASK(1),
|
BLOCK_MASK(1),
|
||||||
|
|||||||
@ -98,7 +98,7 @@ static EWRAM_DATA struct {
|
|||||||
EWRAM_DATA struct ScrollArrowsTemplate gTempScrollArrowTemplate = {0};
|
EWRAM_DATA struct ScrollArrowsTemplate gTempScrollArrowTemplate = {0};
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
struct {
|
COMMON_DATA struct {
|
||||||
u8 cursorPal:4;
|
u8 cursorPal:4;
|
||||||
u8 fillValue:4;
|
u8 fillValue:4;
|
||||||
u8 cursorShadowPal:4;
|
u8 cursorShadowPal:4;
|
||||||
@ -106,9 +106,9 @@ struct {
|
|||||||
u8 field_2_2:6; // unused
|
u8 field_2_2:6; // unused
|
||||||
u8 fontId:7;
|
u8 fontId:7;
|
||||||
bool8 enabled:1;
|
bool8 enabled:1;
|
||||||
} gListMenuOverride;
|
} gListMenuOverride = {0};
|
||||||
|
|
||||||
struct ListMenuTemplate gMultiuseListMenuTemplate;
|
COMMON_DATA struct ListMenuTemplate gMultiuseListMenuTemplate = {0};
|
||||||
|
|
||||||
// const rom data
|
// const rom data
|
||||||
static const struct
|
static const struct
|
||||||
|
|||||||
@ -40,11 +40,11 @@ EWRAM_DATA struct LoadedSaveData gLoadedSaveData = {0};
|
|||||||
EWRAM_DATA u32 gLastEncryptionKey = 0;
|
EWRAM_DATA u32 gLastEncryptionKey = 0;
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
bool32 gFlashMemoryPresent;
|
COMMON_DATA bool32 gFlashMemoryPresent = 0;
|
||||||
struct SaveBlock1 *gSaveBlock1Ptr;
|
COMMON_DATA struct SaveBlock1 *gSaveBlock1Ptr = NULL;
|
||||||
struct SaveBlock2 *gSaveBlock2Ptr;
|
COMMON_DATA struct SaveBlock2 *gSaveBlock2Ptr = NULL;
|
||||||
IWRAM_INIT struct SaveBlock3 *gSaveBlock3Ptr = &gSaveblock3;
|
IWRAM_INIT struct SaveBlock3 *gSaveBlock3Ptr = &gSaveblock3;
|
||||||
struct PokemonStorage *gPokemonStoragePtr;
|
COMMON_DATA struct PokemonStorage *gPokemonStoragePtr = NULL;
|
||||||
|
|
||||||
// code
|
// code
|
||||||
void CheckForFlashMemory(void)
|
void CheckForFlashMemory(void)
|
||||||
|
|||||||
24
src/m4a.c
24
src/m4a.c
@ -8,18 +8,18 @@ extern const u8 gCgb3Vol[];
|
|||||||
|
|
||||||
BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0};
|
BSS_CODE ALIGNED(4) char SoundMainRAM_Buffer[0x800] = {0};
|
||||||
|
|
||||||
struct SoundInfo gSoundInfo;
|
COMMON_DATA struct SoundInfo gSoundInfo = {0};
|
||||||
struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES];
|
COMMON_DATA struct PokemonCrySong gPokemonCrySongs[MAX_POKEMON_CRIES] = {0};
|
||||||
struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES];
|
COMMON_DATA struct MusicPlayerInfo gPokemonCryMusicPlayers[MAX_POKEMON_CRIES] = {0};
|
||||||
MPlayFunc gMPlayJumpTable[36];
|
COMMON_DATA struct MusicPlayerInfo gMPlayInfo_BGM = {0};
|
||||||
struct CgbChannel gCgbChans[4];
|
COMMON_DATA MPlayFunc gMPlayJumpTable[36] = {0};
|
||||||
struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2];
|
COMMON_DATA struct CgbChannel gCgbChans[4] = {0};
|
||||||
struct PokemonCrySong gPokemonCrySong;
|
COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE1 = {0};
|
||||||
struct MusicPlayerInfo gMPlayInfo_BGM;
|
COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE2 = {0};
|
||||||
struct MusicPlayerInfo gMPlayInfo_SE1;
|
COMMON_DATA struct MusicPlayerTrack gPokemonCryTracks[MAX_POKEMON_CRIES * 2] = {0};
|
||||||
struct MusicPlayerInfo gMPlayInfo_SE2;
|
COMMON_DATA struct PokemonCrySong gPokemonCrySong = {0};
|
||||||
struct MusicPlayerInfo gMPlayInfo_SE3;
|
COMMON_DATA u8 gMPlayMemAccArea[0x10] = {0};
|
||||||
u8 gMPlayMemAccArea[0x10];
|
COMMON_DATA struct MusicPlayerInfo gMPlayInfo_SE3 = {0};
|
||||||
|
|
||||||
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
|
u32 MidiKeyToFreq(struct WaveData *wav, u8 key, u8 fineAdjust)
|
||||||
{
|
{
|
||||||
|
|||||||
20
src/main.c
20
src/main.c
@ -62,16 +62,16 @@ const IntrFunc gIntrTableTemplate[] =
|
|||||||
|
|
||||||
#define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc)))
|
#define INTR_COUNT ((int)(sizeof(gIntrTableTemplate)/sizeof(IntrFunc)))
|
||||||
|
|
||||||
u16 gKeyRepeatStartDelay;
|
COMMON_DATA u16 gKeyRepeatStartDelay = 0;
|
||||||
bool8 gLinkTransferringData;
|
COMMON_DATA bool8 gLinkTransferringData = 0;
|
||||||
struct Main gMain;
|
COMMON_DATA struct Main gMain = {0};
|
||||||
u16 gKeyRepeatContinueDelay;
|
COMMON_DATA u16 gKeyRepeatContinueDelay = 0;
|
||||||
bool8 gSoftResetDisabled;
|
COMMON_DATA bool8 gSoftResetDisabled = 0;
|
||||||
IntrFunc gIntrTable[INTR_COUNT];
|
COMMON_DATA IntrFunc gIntrTable[INTR_COUNT] = {0};
|
||||||
u8 gLinkVSyncDisabled;
|
COMMON_DATA u8 gLinkVSyncDisabled = 0;
|
||||||
u32 IntrMain_Buffer[0x200];
|
COMMON_DATA u32 IntrMain_Buffer[0x200] = {0};
|
||||||
s8 gPcmDmaCounter;
|
COMMON_DATA s8 gPcmDmaCounter = 0;
|
||||||
void *gAgbMainLoop_sp;
|
COMMON_DATA void *gAgbMainLoop_sp = NULL;
|
||||||
|
|
||||||
static EWRAM_DATA u16 sTrainerId = 0;
|
static EWRAM_DATA u16 sTrainerId = 0;
|
||||||
|
|
||||||
|
|||||||
@ -132,7 +132,7 @@ static EWRAM_DATA struct MatchCallState sMatchCallState = {0};
|
|||||||
static EWRAM_DATA struct BattleFrontierStreakInfo sBattleFrontierStreakInfo = {0};
|
static EWRAM_DATA struct BattleFrontierStreakInfo sBattleFrontierStreakInfo = {0};
|
||||||
|
|
||||||
static u32 GetCurrentTotalMinutes(struct Time *);
|
static u32 GetCurrentTotalMinutes(struct Time *);
|
||||||
static u32 GetNumRegisteredNPCs(void);
|
static u32 GetNumRegisteredTrainers(void);
|
||||||
static u32 GetActiveMatchCallTrainerId(u32);
|
static u32 GetActiveMatchCallTrainerId(u32);
|
||||||
static int GetTrainerMatchCallId(int);
|
static int GetTrainerMatchCallId(int);
|
||||||
static u16 GetRematchTrainerLocation(int);
|
static u16 GetRematchTrainerLocation(int);
|
||||||
@ -1099,7 +1099,7 @@ static bool32 UpdateMatchCallStepCounter(void)
|
|||||||
static bool32 SelectMatchCallTrainer(void)
|
static bool32 SelectMatchCallTrainer(void)
|
||||||
{
|
{
|
||||||
u32 matchCallId;
|
u32 matchCallId;
|
||||||
u32 numRegistered = GetNumRegisteredNPCs();
|
u32 numRegistered = GetNumRegisteredTrainers();
|
||||||
if (numRegistered == 0)
|
if (numRegistered == 0)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
||||||
@ -1115,12 +1115,13 @@ static bool32 SelectMatchCallTrainer(void)
|
|||||||
return TRUE;
|
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;
|
u32 i, count;
|
||||||
for (i = 0, count = 0; i < REMATCH_SPECIAL_TRAINER_START; i++)
|
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++;
|
count++;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1132,7 +1133,7 @@ static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId)
|
|||||||
u32 i;
|
u32 i;
|
||||||
for (i = 0; i < REMATCH_SPECIAL_TRAINER_START; 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)
|
if (!activeMatchCallId)
|
||||||
return gRematchTable[i].trainerIds[0];
|
return gRematchTable[i].trainerIds[0];
|
||||||
|
|||||||
@ -31,7 +31,7 @@ static void Storyteller_ResetFlag(void);
|
|||||||
|
|
||||||
static u8 sSelectedStory;
|
static u8 sSelectedStory;
|
||||||
|
|
||||||
struct BardSong gBardSong;
|
COMMON_DATA struct BardSong gBardSong = {0};
|
||||||
|
|
||||||
static EWRAM_DATA u16 sUnknownBardRelated = 0;
|
static EWRAM_DATA u16 sUnknownBardRelated = 0;
|
||||||
static EWRAM_DATA struct MauvilleManStoryteller * sStorytellerPtr = NULL;
|
static EWRAM_DATA struct MauvilleManStoryteller * sStorytellerPtr = NULL;
|
||||||
|
|||||||
@ -317,7 +317,7 @@ void MailboxMenu_Free(void)
|
|||||||
// filled with the graph color.
|
// 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)
|
void ConditionGraph_Init(struct ConditionGraph *graph)
|
||||||
{
|
{
|
||||||
|
|||||||
@ -36,8 +36,7 @@
|
|||||||
#include "gba/types.h"
|
#include "gba/types.h"
|
||||||
#include "gba/defines.h"
|
#include "gba/defines.h"
|
||||||
#include "config/general.h"
|
#include "config/general.h"
|
||||||
#include "characters.h"
|
#include "constants/characters.h"
|
||||||
#include "string_util.h"
|
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
|
|
||||||
|
|||||||
@ -185,14 +185,14 @@ static u16 (*sPlayerKeyInterceptCallback)(u32);
|
|||||||
static bool8 sReceivingFromLink;
|
static bool8 sReceivingFromLink;
|
||||||
static u8 sRfuKeepAliveTimer;
|
static u8 sRfuKeepAliveTimer;
|
||||||
|
|
||||||
u16 *gOverworldTilemapBuffer_Bg2;
|
COMMON_DATA u16 *gOverworldTilemapBuffer_Bg2 = NULL;
|
||||||
u16 *gOverworldTilemapBuffer_Bg1;
|
COMMON_DATA u16 *gOverworldTilemapBuffer_Bg1 = NULL;
|
||||||
u16 *gOverworldTilemapBuffer_Bg3;
|
COMMON_DATA u16 *gOverworldTilemapBuffer_Bg3 = NULL;
|
||||||
u16 gHeldKeyCodeToSend;
|
COMMON_DATA u16 gHeldKeyCodeToSend = 0;
|
||||||
void (*gFieldCallback)(void);
|
COMMON_DATA void (*gFieldCallback)(void) = NULL;
|
||||||
bool8 (*gFieldCallback2)(void);
|
COMMON_DATA bool8 (*gFieldCallback2)(void) = NULL;
|
||||||
u8 gLocalLinkPlayerId; // This is our player id in a multiplayer mode.
|
COMMON_DATA u8 gLocalLinkPlayerId = 0; // This is our player id in a multiplayer mode.
|
||||||
u8 gFieldLinkPlayerCount;
|
COMMON_DATA u8 gFieldLinkPlayerCount = 0;
|
||||||
|
|
||||||
EWRAM_DATA static u8 sObjectEventLoadFlag = 0;
|
EWRAM_DATA static u8 sObjectEventLoadFlag = 0;
|
||||||
EWRAM_DATA struct WarpData gLastUsedWarp = {0};
|
EWRAM_DATA struct WarpData gLastUsedWarp = {0};
|
||||||
|
|||||||
@ -245,7 +245,7 @@ static EWRAM_DATA u8 sInitialLevel = 0;
|
|||||||
static EWRAM_DATA u8 sFinalLevel = 0;
|
static EWRAM_DATA u8 sFinalLevel = 0;
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
void (*gItemUseCB)(u8, TaskFunc);
|
COMMON_DATA void (*gItemUseCB)(u8, TaskFunc) = NULL;
|
||||||
|
|
||||||
static void ResetPartyMenu(void);
|
static void ResetPartyMenu(void);
|
||||||
static void CB2_InitPartyMenu(void);
|
static void CB2_InitPartyMenu(void);
|
||||||
|
|||||||
@ -122,8 +122,8 @@ static EWRAM_DATA u8 sPokeBallRotation = 0;
|
|||||||
static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL;
|
static EWRAM_DATA struct PokedexListItem *sPokedexListItem = NULL;
|
||||||
|
|
||||||
// This is written to, but never read.
|
// This is written to, but never read.
|
||||||
u8 gUnusedPokedexU8;
|
COMMON_DATA u8 gUnusedPokedexU8 = 0;
|
||||||
void (*gPokedexVBlankCB)(void);
|
COMMON_DATA void (*gPokedexVBlankCB)(void) = NULL;
|
||||||
|
|
||||||
struct SearchOptionText
|
struct SearchOptionText
|
||||||
{
|
{
|
||||||
|
|||||||
@ -60,7 +60,7 @@ static void SpriteCB_CryMeterNeedle(struct Sprite *);
|
|||||||
static void SetCryMeterNeedleTarget(s8);
|
static void SetCryMeterNeedleTarget(s8);
|
||||||
|
|
||||||
// IWRAM common
|
// IWRAM common
|
||||||
u8 gDexCryScreenState;
|
COMMON_DATA u8 gDexCryScreenState = 0;
|
||||||
|
|
||||||
// EWRAM vars
|
// EWRAM vars
|
||||||
static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL;
|
static EWRAM_DATA struct PokedexCryScreen *sDexCryScreen = NULL;
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user