Merge branch 'upcoming' into expansion-release

This commit is contained in:
Hedara 2026-02-28 22:00:41 +01:00
commit beb9825fef
4757 changed files with 391759 additions and 86729 deletions

View File

@ -12,11 +12,11 @@ jobs:
if: github.actor != 'allcontributors[bot]'
runs-on: ubuntu-latest
env:
GAME_VERSION: EMERALD
GAME_REVISION: 0
GAME_LANGUAGE: ENGLISH
COMPARE: 0
UNUSED_ERROR: 1
DEPRECATED_ERROR: 1
steps:
- name: Checkout
uses: actions/checkout@v2
@ -27,12 +27,15 @@ jobs:
sudo apt install -y binutils-arm-none-eabi gcc-arm-none-eabi libnewlib-arm-none-eabi libpng-dev python3
# build-essential and git are already installed
- name: ROM
- name: ROM (Emerald)
env:
COMPARE: 0
GAME_VERSION: EMERALD
run: make -j${nproc} -O all
- name: Release
env:
GAME_VERSION: EMERALD
run: |
make tidy
make -j${nproc} release
@ -40,10 +43,24 @@ jobs:
- name: Test
env:
GAME_VERSION: EMERALD
TEST: 1
run: |
make -j${nproc} check
- name: ROM (Firered)
env:
COMPARE: 0
run: |
make clean
make firered -j${nproc} -O
- name: ROM (Leafgreen)
env:
COMPARE: 0
run: |
make leafgreen -j${nproc} -O
docs_validate:
if: github.actor != 'allcontributors[bot]'
runs-on: ubuntu-latest

5
.gitignore vendored
View File

@ -42,13 +42,18 @@ prefabs.json
*.sym
*.js
/pokeemerald-*.png
/pokefirered-*.png
/pokeleafgreen-*.png
src/data/map_group_count.h
include/constants/heal_locations.h
include/constants/script_commands.h
tools/trainerproc/trainerproc
src/data/battle_partners.h
src/data/pokemon/teachable_learnsets.h
src/data/trainers.h
src/data/trainers_frlg.h
src/data/debug_trainers.h
src/data/tutor_moves.h
test/battle/trainer_control.h
tools/compresSmol/compresSmol
tools/compresSmol/compresSmolTilemap

View File

@ -37,6 +37,8 @@ TEST ?= 0
ANALYZE ?= 0
# Count unused warnings as errors. Used by RH-Hideout's repo
UNUSED_ERROR ?= 0
# Count deprecated warnings as errors. Used by RH-Hideout's repo
DEPRECATED_ERROR ?= 0
# Adds -Og and -g flags, which optimize the build for debugging and include debug info respectively
DEBUG ?= 0
# Adds -flto flag, which increases link time but results in a more efficient binary (especially in audio processing)
@ -183,6 +185,13 @@ ifeq ($(UNUSED_ERROR),0)
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
ifeq ($(DEPRECATED_ERROR),0)
ifneq ($(GITHUB_REPOSITORY_OWNER),rh-hideout)
override CFLAGS += -Wno-error=deprecated-declarations
endif
endif
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
# Enable debug info if set
@ -231,7 +240,9 @@ endif
LEARNSET_HELPERS_DIR := $(TOOLS_DIR)/learnset_helpers
LEARNSET_HELPERS_DATA_DIR := $(LEARNSET_HELPERS_DIR)/porymoves_files
LEARNSET_HELPERS_BUILD_DIR := $(LEARNSET_HELPERS_DIR)/build
ALL_LEARNABLES_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_learnables.json
ALL_LEARNABLES_JSON := $(DATA_SRC_SUBDIR)/pokemon/all_learnables.json
ALL_TUTORS_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_tutors.json
ALL_TEACHING_TYPES_JSON := $(LEARNSET_HELPERS_BUILD_DIR)/all_teaching_types.json
# wild_encounters.h is generated by a Python script
WILD_ENCOUNTERS_TOOL_DIR := $(TOOLS_DIR)/wild_encounters
@ -246,10 +257,6 @@ $(DATA_SRC_SUBDIR)/wild_encounters.h: $(DATA_SRC_SUBDIR)/wild_encounters.json $(
$(INCLUDE_DIRS)/constants/script_commands.h: $(MISC_TOOL_DIR)/make_scr_cmd_constants.py $(DATA_ASM_SUBDIR)/script_cmd_table.inc
python3 $(MISC_TOOL_DIR)/make_scr_cmd_constants.py
$(C_BUILDDIR)/wild_encounter.o: c_dep += $(DATA_SRC_SUBDIR)/wild_encounters.h
$(C_BUILDDIR)/trainer_see.o: c_dep += $(INCLUDE_DIRS)/constants/script_commands.h
$(C_BUILDDIR)/vs_seeker.o: c_dep += $(INCLUDE_DIRS)/constants/script_commands.h
PERL := perl
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
@ -262,7 +269,7 @@ MAKEFLAGS += --no-print-directory
# Delete files that weren't built properly
.DELETE_ON_ERROR:
RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck tidyrelease generated clean-generated
RULES_NO_SCAN += libagbsyscall clean clean-assets tidy tidymodern tidycheck tidyrelease generated clean-generated clean-teachables clean-teachables_intermediates
.PHONY: all rom agbcc modern compare check debug release
.PHONY: $(RULES_NO_SCAN)
@ -386,7 +393,7 @@ clean-assets:
tidy: tidymodern tidycheck tidydebug tidyrelease
tidymodern:
rm -f $(ROM_NAME) $(ELF_NAME) $(MAP_NAME)
rm -f poke*.gba poke*.elf poke*.map
rm -rf $(OBJ_DIR_NAME)
tidycheck:
@ -434,11 +441,19 @@ generated: $(AUTO_GEN_TARGETS)
%.smol: % ; $(SMOL) -w $< $@
%.rl: % ; $(GFX) $< $@
clean-generated:
clean-teachables_intermediates:
rm -f $(DATA_SRC_SUBDIR)/tutor_moves.h
rm -f $(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h
@rm -Rf $(LEARNSET_HELPERS_BUILD_DIR)
@echo "rm -Rf <LEARNSET_HELPERS_BUILD_DIR>"
clean-generated: clean-teachables_intermediates
@rm -f $(AUTO_GEN_TARGETS)
@echo "rm -f <AUTO_GEN_TARGETS>"
@rm -f $(ALL_LEARNABLES_JSON)
@echo "rm -f <ALL_LEARNABLES_JSON>"
clean-teachables: clean-teachables_intermediates
rm -f $(ALL_LEARNABLES_JSON)
@touch $(C_SUBDIR)/pokemon.c
$(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
@ -454,6 +469,8 @@ $(TEST_BUILDDIR)/%.o: CFLAGS := -mthumb -mthumb-interwork -O2 -mabi=apcs-gnu -mt
# Dependency rules (for the *.c & *.s sources to .o files)
# Have to be explicit or else missing files won't be reported.
$(C_BUILDDIR)/move_relearner.o: $(C_SUBDIR)/move_relearner.c $(DATA_SRC_SUBDIR)/tutor_moves.h
$(C_BUILDDIR)/pokemon.o: $(C_SUBDIR)/pokemon.c $(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h
# 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).
@ -473,6 +490,7 @@ $(C_BUILDDIR)/%.d: $(C_SUBDIR)/%.c
$(SCANINC) -M $@ $(INCLUDE_SCANINC_ARGS) -I tools/agbcc/include $<
ifneq ($(NODEP),1)
-include $(ALL_TUTORS_JSON), $(ALL_TEACHING_TYPES_JSON),
-include $(addprefix $(OBJ_DIR)/,$(C_SRCS:.c=.d))
endif
@ -528,16 +546,25 @@ $(OBJ_DIR)/sym_common.ld: sym_common.txt $(C_OBJS) $(wildcard common_syms/*.txt)
$(OBJ_DIR)/sym_ewram.ld: sym_ewram.txt
$(RAMSCRGEN) ewram_data $< ENGLISH > $@
TEACHABLE_DEPS := $(ALL_LEARNABLES_JSON) $(shell find data/ -type f -name '*.inc') $(INCLUDE_DIRS)/constants/tms_hms.h $(INCLUDE_DIRS)/config/pokemon.h $(C_SUBDIR)/pokemon.c
TEACHABLE_DEPS := $(ALL_LEARNABLES_JSON) $(INCLUDE_DIRS)/constants/tms_hms.h $(INCLUDE_DIRS)/config/pokemon.h $(DATA_SRC_SUBDIR)/pokemon/special_movesets.json $(INCLUDE_DIRS)/config/pokedex_plus_hgss.h $(LEARNSET_HELPERS_DIR)/make_teachables.py
$(LEARNSET_HELPERS_BUILD_DIR):
@mkdir -p $@
$(ALL_LEARNABLES_JSON): $(wildcard $(LEARNSET_HELPERS_DATA_DIR)/*.json) | $(LEARNSET_HELPERS_BUILD_DIR)
$(ALL_LEARNABLES_JSON): | $(wildcard $(LEARNSET_HELPERS_DATA_DIR)/*.json)
python3 $(LEARNSET_HELPERS_DIR)/make_learnables.py $(LEARNSET_HELPERS_DATA_DIR) $@
$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(TEACHABLE_DEPS)
python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py $<
$(ALL_TUTORS_JSON): $(shell find data/ -type f -name '*.inc') $(LEARNSET_HELPERS_DIR)/make_tutors.py | $(LEARNSET_HELPERS_BUILD_DIR)
python3 $(LEARNSET_HELPERS_DIR)/make_tutors.py $@
$(ALL_TEACHING_TYPES_JSON): $(wildcard $(DATA_SRC_SUBDIR)/pokemon/species_info/*_families.h) $(LEARNSET_HELPERS_DIR)/make_teaching_types.py | $(LEARNSET_HELPERS_BUILD_DIR)
python3 $(LEARNSET_HELPERS_DIR)/make_teaching_types.py $@
$(DATA_SRC_SUBDIR)/pokemon/teachable_learnsets.h: $(TEACHABLE_DEPS) | $(ALL_TUTORS_JSON) $(ALL_TEACHING_TYPES_JSON)
python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py $(LEARNSET_HELPERS_BUILD_DIR)
$(DATA_SRC_SUBDIR)/tutor_moves.h: $(DATA_SRC_SUBDIR)/pokemon/special_movesets.json | $(ALL_TUTORS_JSON)
python3 $(LEARNSET_HELPERS_DIR)/make_teachables.py --tutors $(LEARNSET_HELPERS_BUILD_DIR)
# Linker script
LD_SCRIPT := ld_script_modern.ld

View File

@ -4,6 +4,7 @@
.include "asm/macros/map.inc"
.include "asm/macros/field_effect_script.inc"
.include "asm/macros/trainer_hill.inc"
.include "asm/macros/trainer_tower.inc"
.include "asm/macros/battle_tent.inc"
.include "asm/macros/battle_frontier/apprentice.inc"
.include "asm/macros/battle_frontier/battle_arena.inc"

View File

@ -98,14 +98,13 @@
waitstate
.endm
.macro multi_do type:req, partnerId:req
.macro multi_do type:req
special ReducePlayerPartyToSelectedMons
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
setvar VAR_0x8005, FRONTIER_DATA_SELECTED_MON_ORDER
special CallFrontierUtilFunc @ saves the mon order, so the non-selected mons get restored afterwards
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
setvar VAR_0x8005, \type | MULTI_BATTLE_CHOOSE_MONS
setvar VAR_0x8006, \partnerId
special DoSpecialTrainerBattle
waitstate
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY
@ -115,26 +114,26 @@
.macro multi_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, \trainer2Id, NULL, \trainer2LoseText, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE
multi_do MULTI_BATTLE_2_VS_2, \partnerId
setmultitrainerbattle \trainer1Id, \trainer1LoseText, \trainer2Id, \trainer2LoseText, \partnerId
multi_do MULTI_BATTLE_2_VS_2
.endm
.macro multi_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE
multi_do MULTI_BATTLE_2_VS_1, \partnerId
setmultitrainerbattle \trainer1Id, \trainer1LoseText, TRAINER_NONE, NULL, \partnerId
multi_do MULTI_BATTLE_2_VS_1
.endm
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
.macro multi_wild partnerId:req
special SavePlayerParty
multi_do MULTI_BATTLE_2_VS_WILD, \partnerId
setmultitrainerbattle TRAINER_NONE, NULL, TRAINER_NONE, NULL, \partnerId
multi_do MULTI_BATTLE_2_VS_WILD
.endm
.macro multi_do_fixed type:req, partnerId:req
.macro multi_do_fixed type:req
setvar VAR_0x8004, SPECIAL_BATTLE_MULTI
setvar VAR_0x8005, \type
setvar VAR_0x8006, \partnerId
special DoSpecialTrainerBattle
waitstate
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY
@ -144,18 +143,19 @@
.macro multi_fixed_2_vs_2 trainer1Id:req, trainer1LoseText:req, trainer2Id:req, trainer2LoseText:req, partnerId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, \trainer2Id, NULL, \trainer2LoseText, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE
multi_do_fixed MULTI_BATTLE_2_VS_2, \partnerId
setmultitrainerbattle \trainer1Id, \trainer1LoseText, \trainer2Id, \trainer2LoseText, \partnerId
multi_do_fixed MULTI_BATTLE_2_VS_2
.endm
.macro multi_fixed_2_vs_1 trainer1Id:req, trainer1LoseText:req, partnerId:req
special SavePlayerParty
trainerbattle TRAINER_BATTLE_SET_TRAINERS_FOR_MULTI_BATTLE, OBJ_ID_NONE, \trainer1Id, NULL, \trainer1LoseText, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE
multi_do_fixed MULTI_BATTLE_2_VS_1, \partnerId
setmultitrainerbattle \trainer1Id, \trainer1LoseText, TRAINER_NONE, NULL, \partnerId
multi_do_fixed MULTI_BATTLE_2_VS_1
.endm
@ Wild mons need to be assigned to gEnemyParty 0 and 3 slots, other slots need to be cleared out.
.macro multi_fixed_wild partnerId:req
special SavePlayerParty
multi_do_fixed MULTI_BATTLE_2_VS_WILD, \partnerId
setmultitrainerbattle TRAINER_NONE, NULL, TRAINER_NONE, NULL, \partnerId
multi_do_fixed MULTI_BATTLE_2_VS_WILD
.endm

File diff suppressed because it is too large Load Diff

View File

@ -58,6 +58,8 @@
STD_FIND_ITEM = 1
STD_OBTAIN_DECORATION = 7
STD_REGISTER_MATCH_CALL = 8
STD_PUT_ITEM_AWAY = 11
STD_RECEIVED_ITEM = 12
@ Calls the script in gStdScripts at index function.
.macro callstd function:req
@ -644,6 +646,10 @@
.endif
.endm
.macro waitmovementall
callnative Script_waitmovementall, requests_effects=1
.endm
@ Attempts to despawn the specified (localId) object on the specified map.
@ It also sets the object's visibility flag if it has one.
@ If no map is specified, then the current map is used.
@ -726,7 +732,7 @@
OBJ_ID_NONE = 0
@ Configures the arguments for a trainer battle, then jumps to the appropriate script in scripts/trainer_battle.inc
.macro trainerbattle type:req localIdA:req, trainer_a:req, intro_text_a:req, lose_text_a:req, event_script_a:req, localIdB:req, trainer_b:req, intro_text_b:req, lose_text_b:req, event_script_b:req, victory_text:req, cannot_battle:req, isDouble:req, playMusicA:req, playMusicB:req, isRematch:req
.macro trainerbattle type:req localIdA:req, trainer_a:req, intro_text_a:req, lose_text_a:req, event_script_a:req, localIdB:req, trainer_b:req, intro_text_b:req, lose_text_b:req, event_script_b:req, victory_text:req, cannot_battle:req, isDouble:req, playMusicA:req, playMusicB:req, isRematch:req, rival_battle_flags=0
.byte SCR_OP_TRAINERBATTLE
.set trainerbattle_flags, 0
.ifgt \isDouble; .set trainerbattle_flags, trainerbattle_flags | (1 << 0); .endif
@ -747,6 +753,7 @@
.4byte \event_script_b @ retAddrB
.4byte \victory_text @ victoryText
.4byte \cannot_battle @ cannotBattle
.byte \rival_battle_flags @ rivalBattleFlags
.endm
NO_MUSIC = FALSE
@ -796,6 +803,11 @@
trainerbattle TRAINER_BATTLE_TWO_TRAINERS_NO_INTRO, OBJ_ID_NONE, \trainer_a, NULL, \lose_text_a, NULL, OBJ_ID_NONE, \trainer_b, NULL, \lose_text_b, NULL, NULL, NULL, FALSE, TRUE, FALSE, FALSE
.endm
@ Starts a trainer battle with victory text if the player loses. If flags is nonzero, the player will be healed after battle (and its assumed to be the tutorial battle)
.macro trainerbattle_earlyrival trainer:req, flags:req, lose_text:req, victory_text:req
trainerbattle TRAINER_BATTLE_EARLY_RIVAL, OBJ_ID_NONE, \trainer, NULL, \lose_text, NULL, OBJ_ID_NONE, TRAINER_NONE, NULL, NULL, NULL, \victory_text, NULL, FALSE, TRUE, FALSE, FALSE, \flags
.endm
@ Starts a trainer battle using the battle information stored in RAM (usually by the scripts in trainer_battle.inc, which
@ are run by trainerbattle), and blocks script execution until the battle finishes.
.macro dotrainerbattle
@ -1014,9 +1026,9 @@
.2byte \level
.ifnb \item; .set givemon_flags, givemon_flags | (1 << 0); .endif
.ifnb \ball; .set givemon_flags, givemon_flags | (1 << 1); .endif
.ifnb \nature; .set givemon_flags, givemon_flags | (1 << 2); .endif
.set givemon_flags, givemon_flags | (1 << 2);
.ifnb \abilityNum; .set givemon_flags, givemon_flags | (1 << 3); .endif
.ifnb \gender; .set givemon_flags, givemon_flags | (1 << 4); .endif
.set givemon_flags, givemon_flags | (1 << 4);
.ifnb \hpEv; .set givemon_flags, givemon_flags | (1 << 5); .endif
.ifnb \atkEv; .set givemon_flags, givemon_flags | (1 << 6); .endif
.ifnb \defEv; .set givemon_flags, givemon_flags | (1 << 7); .endif
@ -1040,9 +1052,9 @@
.4byte givemon_flags
.ifnb \item; .2byte \item; .endif
.ifnb \ball; .2byte \ball; .endif
.ifnb \nature; .2byte \nature; .endif
.ifnb \nature; .2byte \nature; .else; .2byte NATURE_MAY_SYNCHRONIZE; .endif
.ifnb \abilityNum; .2byte \abilityNum; .endif
.ifnb \gender; .2byte \gender; .endif
.ifnb \gender; .2byte \gender; .else; .2byte MON_GENDER_MAY_CUTE_CHARM; .endif
.ifnb \hpEv; .2byte \hpEv; .endif
.ifnb \atkEv; .2byte \atkEv; .endif
.ifnb \defEv; .2byte \defEv; .endif
@ -1906,6 +1918,12 @@
.2byte \id
.endm
@ Gets the width of the specified message in the Braille font and sets the result to VAR_0x8004.
.macro getbraillestringwidth msg:req
.byte SCR_OP_GETBRAILLESTRINGWIDTH
.4byte \msg
.endm
.macro dynmultistack left:req, top:req, ignoreBPress:req, maxBeforeScroll:req, shouldSort:req, initialSelected:req, callbacks:req
_dynmultichoice \left, \top, \ignoreBPress, \maxBeforeScroll, \shouldSort, \initialSelected, \callbacks, NULL
.endm
@ -2083,6 +2101,13 @@
callstd STD_FIND_ITEM
.endm
@ Prints the message "{PLAYER} put the {ITEM} in the {POCKET}." The item name is pluralized, if applicable.
.macro putitemaway item:req, amount=1
setorcopyvar VAR_0x8000, \item
setorcopyvar VAR_0x8001, \amount
callstd STD_PUT_ITEM_AWAY
.endm
@ Equivalent to giveitem but for a single decoration.
.macro givedecoration decoration:req
setorcopyvar VAR_0x8000, \decoration
@ -2125,6 +2150,11 @@
.4byte \func
.endm
.macro setdynamicswitchaifunc func:req
callnative ScriptSetDynamicAiSwitchFunc, requests_effects=1
.4byte \func
.endm
@ Set up a totem boost for the next battle.
@ 'battler' is the position of the mon you want to gain a boost. see B_POSITION_xx in include/constants/battle.h.
@ The rest of the arguments are the stat change values to each stat.
@ -2274,6 +2304,12 @@
.2byte \slot
.endm
@ Sets the hp to 0 for the Pokémon in \slot.
.macro setko slot:req
callnative Script_SetKO, requests_effects=1
.2byte \slot
.endm
@ Sets VAR_RESULT to the Pokémon in \slot's Tera Type
.macro checkteratype slot:req
callnative CheckTeraType, requests_effects=1
@ -2340,7 +2376,7 @@
@ ============================ @
@ FAKE RTC MACROS
@ Will only function if OW_USE_FAKE_RTC is true. If it has any additional requirements, it will be listed accordingly.
@ When OW_USE_FAKE_RTC is true and OW_FLAG_PAUSE_TIME is assigned, this macro will stop the flow of time.
.macro pausefakertc
callnative Script_PauseFakeRtc, requests_effects=1
@ -2593,6 +2629,68 @@
cant_see_if 5
.endm
.macro setmultitrainerbattle trainer_a:req, lose_text_a:req, trainer_b:req, lose_text_b:req, partnerId:req
callnative SetMultiTrainerBattle
.2byte \trainer_a
.4byte \lose_text_a
.2byte \trainer_b
.4byte \lose_text_b
.2byte \partnerId
.endm
@ facility version of `trainerbattle` macro. Used in Battle Pyramid and Trainer Hill
.macro facilitytrainerbattle facility:req
callnative FacilityTrainerBattle
.byte \facility
.endm
@ immediately starts a battle of the given facility
.macro dofacilitytrainerbattle facility:req
callnative DoFacilityTrainerBattle
.byte \facility
.endm
.macro ingame_trade tradeId:req wantTradeMsg:req, declineTradeJump:req, wrongMonJump:req, tradeCompleteMsg:req
setvar VAR_0x8005, \tradeId
specialvar VAR_0x8009, GetInGameTradeSpeciesInfo
msgbox \wantTradeMsg, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, \declineTradeJump
chooseboxmon SELECT_PC_MON_TRADE
waitstate
goto_if_eq VAR_0x8004, PARTY_NOTHING_CHOSEN, \declineTradeJump
specialvar VAR_0x800B, GetTradeSpecies
goto_if_ne VAR_0x800B, VAR_0x8009, \wrongMonJump
special CreateInGameTradePokemon
special DoInGameTradeScene
waitstate
msgbox \tradeCompleteMsg, MSGBOX_DEFAULT
.endm
.macro move_tutor moveId:req, wantTeachingMsg:req, monSelectMsg:req, declinedJmp:req, taughtJmp:req, flagId=0
.if \flagId
goto_if_set \flagId, \taughtJmp
.endif
msgbox \wantTeachingMsg, MSGBOX_YESNO
goto_if_eq VAR_RESULT, NO, \declinedJmp
.if \flagId
call MoveTutor_EventScript_CanOnlyBeLearnedOnce
goto_if_eq VAR_RESULT, NO, \declinedJmp
.endif
msgbox \monSelectMsg, MSGBOX_DEFAULT
setvar VAR_0x8005, \moveId
call MoveTutor_EventScript_OpenBox
goto_if_eq VAR_RESULT, FALSE, \declinedJmp
.if \flagId
setflag \flagId
.endif
goto \taughtJmp
.endm
.macro chooseboxmon selectionType=SELECT_PC_MON_NORMAL
callnative ChooseBoxMon
.byte \selectionType
.endm
@ Follower NPCs
@ Sets an existing NPC up to follow the player.
@ -2617,7 +2715,7 @@
.2byte \battlePartner
.4byte \script
updatefollowingmon
1:
1:
.else
.error "setfollowernpc unavailable with FNPC_ENABLE_NPC_FOLLOWERS defined as FALSE"
.endif
@ -2710,3 +2808,49 @@
callnative ScrCmd_istmrelearneractive, requests_effects=1
.4byte \destination
.endm
@ Sets a starting status for the next battle. Can be stacked.
.macro setstartingstatus status:req
callnative ScrCmd_setstartingstatus
.byte \status
.endm
@ FRLG
@ Prints the provided message after playing the fanfare music (can only be MUS_LEVEL_UP or MUS_RG_OBTAIN_KEY_ITEM).
@ It then prints the message shown by using putitemaway.
.macro msgreceiveditem msg:req, item:req, amount=1, fanfare=MUS_LEVEL_UP
loadword 0, \msg
setorcopyvar VAR_0x8000, \item
setorcopyvar VAR_0x8001, \amount
setorcopyvar VAR_0x8002, \fanfare
callstd STD_RECEIVED_ITEM
.endm
@ Adds the specified item to the bag, then prints a message with fanfare. See description of msgreceiveditem.
.macro giveitem_msg msg:req, item:req, amount=1, fanfare=MUS_LEVEL_UP
additem \item, \amount
msgreceiveditem \msg, \item, \amount, \fanfare
.endm
@ Depends on the provided function. With the default argument, unlocks the specified entry in the Fame Checker.
.macro famechecker person:req, index:req, function=SetFlavorTextFlagFromSpecialVars
setvar VAR_0x8004, \person
setvar VAR_0x8005, \index
special \function
.endm
@ Sets the 'defeated' flag for all trainers in the specified gym.
.macro set_gym_trainers_frlg gym:req
setvar VAR_0x8008, \gym
call Common_EventScript_SetGymTrainers_Frlg
.endm
@ Prints a braille message, then waits for users input.
.macro braillemessage_wait text:req
setvar VAR_0x8006, 0
braillemessage \text
getbraillestringwidth \text
call EventScript_BrailleCursorWaitButton
.endm

View File

@ -46,12 +46,10 @@
.endm
@ Defines an object event template for map data, to be used by a clone object. Mirrors the struct layout of ObjectEventTemplate in include/global.fieldmap.h
@ NOTE: The handling for this type of event does not exist in Emerald by default; it is exclusive to FRLG.
.macro clone_event index:req, gfx:req, x:req, y:req, target_local_id:req, target_map_id:req
.byte \index
.byte \gfx
.2byte \gfx
.byte OBJ_KIND_CLONE
.space 1 @ Padding
.2byte \x, \y
.byte \target_local_id
.space 3 @ Padding
@ -91,17 +89,12 @@
@ Defines a generic background event for map data. Mirrors the struct layout of BgEvent in include/global.fieldmap.h
@ 'kind' is any BG_EVENT_* constant (see include/constants/event_bg.h).
@ 'arg6' and 'arg7' are used differently depending on the bg event type. See macros below
.macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req, arg7
.macro bg_event x:req, y:req, elevation:req, kind:req, arg6:req
.2byte \x, \y
.byte \elevation
.byte \kind
.space 2 @ Padding
.if \kind != BG_EVENT_HIDDEN_ITEM
.4byte \arg6
.else
.2byte \arg6
.2byte \arg7
.endif
.4byte \arg6
inc _num_signs
.endm
@ -111,11 +104,17 @@
.endm
@ Defines a background hidden item event for map data
.macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req
.macro bg_hidden_item_event x:req, y:req, elevation:req, item:req, flag:req, quantity=1, underfoot=FALSE
.if \flag < FLAG_HIDDEN_ITEMS_START
.error "Hidden Item flag \flag is too small. Must be >= FLAG_HIDDEN_ITEMS_START."
.endif
bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item, ((\flag) - FLAG_HIDDEN_ITEMS_START)
.if \item >= (1 << 12)
.error "quantity \quantity too large"
.endif
.if \quantity >= (1 << 7)
.error "quantity \quantity too large"
.endif
bg_event \x, \y, \elevation, BG_EVENT_HIDDEN_ITEM, \item | (((\flag) - FLAG_HIDDEN_ITEMS_START) << 11)| (\quantity << 24) | (\underfoot << 31)
.endm
@ Defines a background secret base event for map data

View File

@ -0,0 +1,133 @@
@ Sets NPC gfx and the floor layout depending on current challenge and floor
.macro ttower_initfloor
setvar VAR_0x8004, TRAINER_TOWER_FUNC_INIT_FLOOR
special CallTrainerTowerFunc
.endm
@ Buffers the opponents battle speech to gStringVar4. speech is any TRAINER_TOWER_TEXT_*.
.macro ttower_getspeech speech:req, trainer=0xFF
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_SPEECH
setvar VAR_0x8005, \speech
.if \trainer >= VARS_START && \trainer != 0xFF
copyvar VAR_0x8006, \trainer
.elseif \trainer != 0xFF
setvar VAR_0x8006, \trainer
.endif
special CallTrainerTowerFunc
.endm
@ Starts a trainer tower battle. VAR_0x8005 is unused
.macro ttower_dobattle
setvar VAR_0x8004, TRAINER_TOWER_FUNC_DO_BATTLE
setvar VAR_0x8005, 0
special CallTrainerTowerFunc
.endm
@ Returns the current challenge type (CHALLENGE_TYPE_*). Mixed challenges use different types for each floor. If VAR_0x8005 is != FALSE, does nothing
.macro ttower_getchallengetype
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_CHALLENGE_TYPE
setvar VAR_0x8005, FALSE
special CallTrainerTowerFunc
.endm
@ Adds 1 to the number of floors cleared (all trainers on floor defeated)
.macro ttower_clearedfloor
setvar VAR_0x8004, TRAINER_TOWER_FUNC_CLEARED_FLOOR
special CallTrainerTowerFunc
.endm
@ TRUE if the trainers on this floor were already beaten, FALSE otherwise
.macro ttower_isfloorcleared
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_FLOOR_CLEARED
special CallTrainerTowerFunc
.endm
@ Initializes the Trainer Tower challenge and starts the timer
.macro ttower_startchallenge
setvar VAR_0x8004, TRAINER_TOWER_FUNC_START_CHALLENGE
special CallTrainerTowerFunc
.endm
@ 0 if not spoken to yet, 1 if spoken to but not received prize, 2 if received prize
.macro ttower_getownerstate
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_OWNER_STATE
special CallTrainerTowerFunc
.endm
@ Tries to give prize. 0 if given successfully, 1 if no room for prize, 2 if giving prize should be skipped
.macro ttower_giveprize
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GIVE_PRIZE
special CallTrainerTowerFunc
.endm
@ Checks the final challenge time. 0 if new record, 1 if not, 2 if time has already been checked
.macro ttower_checkfinaltime
setvar VAR_0x8004, TRAINER_TOWER_FUNC_CHECK_FINAL_TIME
special CallTrainerTowerFunc
.endm
@ Resumes the challenge timer (or starts, if the timer is 0)
.macro ttower_resumetimer
setvar VAR_0x8004, TRAINER_TOWER_FUNC_RESUME_TIMER
special CallTrainerTowerFunc
.endm
@ Sets that the player lost the challenge
.macro ttower_setlost
setvar VAR_0x8004, TRAINER_TOWER_FUNC_SET_LOST
special CallTrainerTowerFunc
.endm
@ Returns the status of the current Trainer Tower challenge (CHALLENGE_STATUS_*)
.macro ttower_getchallengestatus
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_CHALLENGE_STATUS
special CallTrainerTowerFunc
.endm
@ Buffers the current challenge time (min in gStringVar1, sec in gStringVar2, fraction sec in gStringVar3)
.macro ttower_gettime
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_TIME
special CallTrainerTowerFunc
.endm
@ Unused. Displays Trainer Tower results. Handled by ShowBattleRecords instead
.macro ttower_showresults
setvar VAR_0x8004, TRAINER_TOWER_FUNC_SHOW_RESULTS
special CallTrainerTowerFunc
.endm
@ Unused. See above
.macro ttower_closeresults
setvar VAR_0x8004, TRAINER_TOWER_FUNC_CLOSE_RESULTS
special CallTrainerTowerFunc
.endm
@ Returns the eligibility of the players party for a double battle (using GetMonsStateToDoubles)
.macro ttower_checkdoubles
setvar VAR_0x8004, TRAINER_TOWER_FUNC_CHECK_DOUBLES
special CallTrainerTowerFunc
.endm
@ For the unused E-Reader challenges, gets the number of floors used. Otherwise returns FALSE (all floors used)
.macro ttower_getnumfloors
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_NUM_FLOORS
special CallTrainerTowerFunc
.endm
@ Dummied, always returns FALSE
.macro ttower_shouldexit
setvar VAR_0x8004, TRAINER_TOWER_FUNC_SHOULD_WARP_TO_COUNTER
special CallTrainerTowerFunc
.endm
@ Plays the encounter music for the trainer number in VAR_TEMP_1
.macro ttower_encountermusic
setvar VAR_0x8004, TRAINER_TOWER_FUNC_ENCOUNTER_MUSIC
special CallTrainerTowerFunc
.endm
@ TRUE if the player reached the Battle Tower owner, FALSE otherwise
.macro ttower_getbeatchallenge
setvar VAR_0x8004, TRAINER_TOWER_FUNC_GET_BEAT_CHALLENGE
special CallTrainerTowerFunc
.endm

View File

@ -350,6 +350,7 @@ ARCHIE = FD 0A
MAXIE = FD 0B
KYOGRE = FD 0C
GROUDON = FD 0D
REGION = FD 0E
@ battle string placeholders
@ -435,10 +436,10 @@ DYNAMIC = F7
@ more text functions
COLOR = FC 01 @ use a color listed below right after
HIGHLIGHT = FC 02 @ same as fc 01
SHADOW = FC 03 @ same as fc 01
COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 bytes
COLOR = FC 01 @ use a color listed below right after. sets base text color
HIGHLIGHT = FC 02 @ same as fc 01. sets background and accent color
SHADOW = FC 03 @ same as fc 01. sets shadow color
COLOR_HIGHLIGHT_SHADOW = FC 04 @ takes 3 colors
PALETTE = FC 05 @ used in credits
FONT = FC 06 @ Given a font id, or use font constants below instead
RESET_FONT = FC 07
@ -460,6 +461,9 @@ ENG = FC 16
PAUSE_MUSIC = FC 17
RESUME_MUSIC = FC 18
SPEAKER = FC 19
ACCENT = FC 1A @ same as FC 01. sets accent color
BACKGROUND = FC 1B @ same as FC 01. sets background color
TEXT_COLORS = FC 1C @ takes 3 colors: text base color, shadow and accent
@ Speaker names, the order must be matching with include/constants/speaker_names.h
NAME_NONE = 00
@ -479,6 +483,9 @@ FONT_SMALL_NARROWER = FC 06 0B
FONT_SHORT_NARROW = FC 06 0C
FONT_SHORT_NARROWER = FC 06 0D
FONT_MALE = FC 06 01
FONT_FEMALE = FC 06 01
@ colors
TRANSPARENT = 00

View File

@ -1,3 +1,2 @@
.include "constants/gba_constants.inc"
.include "constants/global.inc"
.include "constants/tms_hms.inc"

View File

@ -1,22 +0,0 @@
#ifndef GUARD_CONSTANTS_TMS_HMS_INC
#define GUARD_CONSTANTS_TMS_HMS_INC
#include "constants/tms_hms.h"
/* Expands to:
* enum_start ITEM_TM01
* enum ITEM_TM_FOCUS_PUNCH
* ...
* enum_start ITEM_HM01
* enum ITEM_HM_CUT
* ... */
#define EQUIV_TM(id) enum ITEM_TM_ ## id;
#define EQUIV_HM(id) enum ITEM_HM_ ## id;
enum_start ITEM_TM01
FOREACH_TM(EQUIV_TM)
enum_start ITEM_HM01
FOREACH_HM(EQUIV_HM)
#undef EQUIV_TM
#undef EQUIV_HM
#endif @ GUARD_CONSTANTS_TMS_HMS_INC

View File

@ -14,6 +14,112 @@
.section script_data, "aw", %progbits
gBattleAnimGeneral_MonScared::
createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 1
waitforvisualfinish
loadspritegfx ANIM_TAG_SWEAT_BEAD
simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=2, initial_blend_y=0, target_blend_y=10, color=RGB(0, 23, 25)
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1
delay 20
createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1
playsewithpan SE_M_SKETCH, SOUND_PAN_TARGET
createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1
createvisualtask AnimTask_StretchTargetUp, 3
waitforvisualfinish
simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=2, initial_blend_y=10, target_blend_y=0, color=RGB(0, 23, 25)
waitforvisualfinish
end
gBattleAnimGeneral_GhostGetOut::
createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 1
waitforvisualfinish
fadetobg BG_GHOST
waitbgfadeout
monbg_static ANIM_ATTACKER
createvisualtask AnimTask_GhostGetOut, 2
waitbgfadein
loopsewithpan SE_M_PSYBEAM, SOUND_PAN_TARGET, 20, 3
waitforvisualfinish
clearmonbg_static ANIM_ATTACKER
delay 1
loadspritegfx ANIM_TAG_SWEAT_BEAD
simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=-1, initial_blend_y=0, target_blend_y=6, color=RGB(21, 22, 26)
createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 0, 1
createsprite gSprayWaterDropletSpriteTemplate, ANIM_TARGET, 5, 1, 1
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 4, 0, 5, 1
createvisualtask AnimTask_StretchTargetUp, 3
waitforvisualfinish
simple_palette_blend unused_subpriority_offset=0, selector=F_PAL_TARGET, delay=-1, initial_blend_y=6, target_blend_y=0, color=RGB(21, 22, 26)
waitforvisualfinish
restorebg
waitbgfadein
end
gBattleAnimGeneral_SilphScoped::
monbg ANIM_ATTACKER
playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER
waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48
createvisualtask AnimTask_TransformMon, 3, SPECIES_GFX_CHANGE_GHOST_UNVEIL
waitsound
waitforvisualfinish
clearmonbg ANIM_ATTACKER
end
gBattleAnimGeneral_SafariRockThrow::
createvisualtask AnimTask_SetAttackerTargetLeftPos, 2, 0
waitforvisualfinish
loadspritegfx ANIM_TAG_ROCKS
loadspritegfx ANIM_TAG_IMPACT
delay 0
waitplaysewithpan SE_M_JUMP_KICK, SOUND_PAN_ATTACKER, 22
createsprite sSafariRockSpriteTemplate, ANIM_TARGET, 3, -17, 14, 8, 0
delay 50
monbg ANIM_DEF_PARTNER
setalpha 12, 8
delay 0
playsewithpan SE_M_DOUBLE_SLAP, SOUND_PAN_TARGET
create_basic_hitsplat_sprite ANIM_TARGET, 2, x=-4, y=-20, relative_to=1, animation=2
waitforvisualfinish
clearmonbg ANIM_DEF_PARTNER
blendoff
waitforvisualfinish
end
gBattleAnimGeneral_SafariReaction::
createvisualtask AnimTask_SafariGetReaction, 2
waitforvisualfinish
jumpreteq B_MSG_MON_WATCHING, SafariReaction_WatchingCarefully
jumpreteq B_MSG_MON_ANGRY, SafariReaction_Angry
jumpreteq B_MSG_MON_EATING, SafariReaction_Eating
end
SafariReaction_WatchingCarefully:
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, 96, 0, 2
waitforvisualfinish
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 16, -96, 0, 2
end
SafariReaction_Angry:
loadspritegfx ANIM_TAG_ANGER
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, 20, -20
playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET
waitforvisualfinish
delay 12
createsprite gAngerMarkSpriteTemplate, ANIM_TARGET, 2, 1, -20, -20
playsewithpan SE_M_SWAGGER2, SOUND_PAN_TARGET
end
SafariReaction_Eating:
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2
waitforvisualfinish
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_TARGET
createvisualtask AnimTask_RotateMonToSideAndRestore, 2, 8, 136, 0, 2
end
@@@@@@@@@@@@@@@@@@@@@@@ GEN 4 @@@@@@@@@@@@@@@@@@@@@@@
gBattleAnimMove_Roost::
loadspritegfx ANIM_TAG_WHITE_FEATHER
@ -1042,14 +1148,14 @@ gBattleAnimGeneral_AquaRingHeal::
createsprite gSmallBubblePairSpriteTemplate, ANIM_ATTACKER, 2, 12, 0, 25, 0
setalpha 8, 8
playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE
delay 4
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE
delay 4
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 0, FALSE
waitforvisualfinish
playsewithpan SE_SHINY, SOUND_PAN_ATTACKER
blend_color_cycle selector=F_PAL_ATK_SIDE, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE
blend_color_cycle selector=F_PAL_ATTACKER, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE
waitforvisualfinish
clearmonbg ANIM_ATK_PARTNER
blendoff
@ -1830,7 +1936,7 @@ SetGigaImpactPlayerBG:
fadetobg BG_GIGA_IMPACT_PLAYER
goto GigaImpactContinuity
SetGigaImpactContestsBG:
fadetobg BG_GIGA_IMPACT_CONTEST
fadetobg BG_GIGA_IMPACT_CONTESTS
goto GigaImpactContinuity
GigaImpactContinuity:
playsewithpan SE_M_TAKE_DOWN, SOUND_PAN_ATTACKER
@ -3585,7 +3691,7 @@ gBattleAnimMove_SpacialRend::
delay 2
createsprite gSpacialRendBladesTemplate, ANIM_ATTACKER, 3, 0, 0, 0x38, 12
waitforvisualfinish
fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT
fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT
waitbgfadein
loopsewithpan SE_M_RAZOR_WIND, SOUND_PAN_TARGET, 3, 5
createsprite gSpacialRendBladesTemplate2, ANIM_TARGET, 1, 0, 10, SOUND_PAN_ATTACKER, 0xb0, 0x28
@ -3678,7 +3784,7 @@ gBattleAnimMove_MagmaStorm::
loopsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET, 5, 8
createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1
blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=11, color=RGB(22, 9, 7)
blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=12, color=RGB(22, 9, 7)
call FireSpinEffect
call FireSpinEffect
call FireSpinEffect
@ -11768,20 +11874,9 @@ gBattleAnimMove_PsychicFangs::
monbg ANIM_TARGET
call SetPsychicBackground
setalpha 12, 8
choosetwoturnanim PsychicFangsRegular PsychicFangsDestroyWall
PsychicFangsRegular:
playsewithpan SE_M_BITE, SOUND_PAN_TARGET
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0xffe0, animation=0x1, x_velocity=0x333/256, y_velocity=0x333/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0x20, animation=0x5, x_velocity=0xfccd/256, y_velocity=0xfccd/256, half_duration=0xa
delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2
delay 16
playsewithpan SE_M_BITE, SOUND_PAN_TARGET
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0xffe0, animation=0x7, x_velocity=0xfccd/256, y_velocity=0x333/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0x20, animation=0x3, x_velocity=0x333/256, y_velocity=0xfccd/256, half_duration=0xa
delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1
choosetwoturnanim PsychicFangsNormal, PsychicFangsShatteredWall
PsychicFangsNormal:
call PsychicFangsCommon
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2
PsychicFangsEnd:
playsewithpan SE_M_SUPERSONIC, SOUND_PAN_TARGET
@ -11790,28 +11885,28 @@ PsychicFangsEnd:
blendoff
call UnsetPsychicBg
end
PsychicFangsDestroyWall:
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, 0x1, 0x0, 0x0, 0x21, 0xa
PsychicFangsShatteredWall:
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 33, 10
call PsychicFangsCommon
call BreakScreens
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2
delay 16
goto PsychicFangsEnd
PsychicFangsCommon:
playsewithpan SE_M_BITE, SOUND_PAN_TARGET
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0xffe0, animation=0x1, x_velocity=0x333/256, y_velocity=0x333/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0x20, animation=0x5, x_velocity=0xfccd/256, y_velocity=0xfccd/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=-32, animation=1, x_velocity=819/256, y_velocity=819/256, half_duration=10
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=32, animation=5, x_velocity=-819/256, y_velocity=-819/256, half_duration=10
delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=-8, y=0, relative_to=ANIM_TARGET, animation=1
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 7, 5, 2
delay 16
playsewithpan SE_M_BITE, SOUND_PAN_TARGET
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0x20, y=0xffe0, animation=0x7, x_velocity=0xfccd/256, y_velocity=0x333/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=0xffe0, y=0x20, animation=0x3, x_velocity=0x333/256, y_velocity=0xfccd/256, half_duration=0xa
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=32, y=-32, animation=7, x_velocity=-819/256, y_velocity=819/256, half_duration=10
create_sharp_teeth_sprite ANIM_ATTACKER, 2, x=-32, y=32, animation=3, x_velocity=819/256, y_velocity=-819/256, half_duration=10
delay 10
create_basic_hitsplat_sprite ANIM_ATTACKER, 2, x=8, y=0, relative_to=ANIM_TARGET, animation=1
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x0, 0xfff8, 0xfff4
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x1, 0x8, 0xfff4
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x2, 0xfff8, 0xc
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, 0x1, 0x3, 0x8, 0xc
playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 8, 4, 2
delay 16
goto PsychicFangsEnd
return
gBattleAnimMove_StompingTantrum::
loadspritegfx ANIM_TAG_ROCKS @rock colour
@ -14291,7 +14386,7 @@ gBattleAnimMove_Eternabeam::
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_HYDRO_PUMP, 0, 12, 12, RGB(31, 4, 10) @Pinkish Red
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_ROUND_SHADOW, 0, 13, 13, RGB(31, 4, 10) @Pinkish Red
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_EXPLOSION, 0, 12, 12, RGB(11, 1, 22)
fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT
fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT
playsewithpan SE_M_FLY, SOUND_PAN_ATTACKER
invisible ANIM_ATTACKER
createsprite gDevastatingDrakeDrakeUpSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 0x04E0, 36, 21, 1, ANIM_ATTACKER
@ -14718,8 +14813,8 @@ gBattleAnimMove_RisingVoltage::
loadspritegfx ANIM_TAG_LIGHTNING
monbg ANIM_ATTACKER
setalpha 12, 8
createvisualtask AnimTask_GetBattleEnvironment, 0x5,
jumpargeq 0x0, BG_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER
createvisualtask AnimTask_GetFieldTerrain, 0x5,
jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, ANIM_RISING_VOLTAGE_STRONGER
ANIM_RISING_VOLTAGE_NORMAL:
createvisualtask AnimTask_BlendBattleAnimPal, 2, F_PAL_BG, 1, 0, 4, RGB_BLACK @;To black
waitforvisualfinish
@ -17071,33 +17166,13 @@ gBattleAnimMove_RagingBull::
loadspritegfx ANIM_TAG_TORN_METAL
choosetwoturnanim RagingBullNormal, RagingBullShatteredWall
RagingBullNormal:
monbg ANIM_TARGET
setalpha 12, 8
createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2
loopsewithpan SE_M_SWAGGER, SOUND_PAN_ATTACKER, 4, 2
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, -20, -28
delay 20
createsprite gAngerMarkSpriteTemplate, ANIM_ATTACKER, 2, 0, 20, -28
waitforvisualfinish
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4
waitforvisualfinish
playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER
call RagingBullCommon1
call SetImpactBackground
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4
delay 3
waitforvisualfinish
playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET
create_basic_hitsplat_sprite ANIM_TARGET, 4, x=-10, y=0, relative_to=ANIM_TARGET, animation=0
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3
waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 0
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 0
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_ATTACKER, 4, 0, 12, 1
createvisualtask AnimTask_ShakeMonInPlace, 2, ANIM_TARGET, 4, 0, 12, 1
waitforvisualfinish
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1
waitforvisualfinish
call RagingBullCommon2
RagingBullEnd:
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5
delay 3
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7
@ -17107,6 +17182,17 @@ RagingBullNormal:
clearmonbg ANIM_TARGET
end
RagingBullShatteredWall:
call RagingBullCommon1
call SetImpactBackground
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4
delay 3
waitforvisualfinish
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10
call RagingBullCommon2
call BreakScreens
goto RagingBullEnd
RagingBullCommon1:
monbg ANIM_TARGET
setalpha 12, 8
createsprite gBreathPuffSpriteTemplate, ANIM_ATTACKER, 2
@ -17118,11 +17204,9 @@ RagingBullShatteredWall:
createvisualtask AnimTask_TranslateMonEllipticalRespectSide, 2, ANIM_ATTACKER, 18, 6, 2, 4
waitforvisualfinish
playsewithpan SE_M_SWIFT, SOUND_PAN_ATTACKER
call SetImpactBackground
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_ATTACKER, 20, 0, 0, 4
delay 3
waitforvisualfinish
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10
return
RagingBullCommon2:
playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET
create_basic_hitsplat_sprite ANIM_TARGET, 4, x=-10, y=0, relative_to=ANIM_TARGET, animation=0
createsprite gSlideMonToOffsetSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, -32, 0, 0, 3
@ -17135,19 +17219,7 @@ RagingBullShatteredWall:
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_ATTACKER, 1
createvisualtask AnimTask_RotateMonSpriteToSide, 2, 8, -256, ANIM_TARGET, 1
waitforvisualfinish
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12
playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 0, 0, 5
delay 3
createsprite gSlideMonToOriginalPosSpriteTemplate, ANIM_ATTACKER, 2, 1, 0, 7
waitforvisualfinish
restorebg
waitbgfadein
clearmonbg ANIM_TARGET
end
return
gBattleAnimMove_UpperHand::
loadspritegfx ANIM_TAG_SHADOW_BALL
@ -18335,7 +18407,7 @@ FickleBeamRegular:
end
FickleBeamIntense:
loadspritegfx ANIM_TAG_ORBS
fadetobgfromset BG_SPACIAL_REND_ON_OPPONENT BG_SPACIAL_REND_ON_PLAYER BG_SPACIAL_REND_ON_OPPONENT
fadetobgfromset BG_SPACIAL_REND_OPPONENT BG_SPACIAL_REND_PLAYER BG_SPACIAL_REND_OPPONENT
waitbgfadein
delay 10
playsewithpan SE_M_HYPER_BEAM, SOUND_PAN_ATTACKER
@ -22470,11 +22542,11 @@ gBattleAnimMove_Safeguard::
monbg ANIM_ATK_PARTNER
setalpha 8, 8
playsewithpan SE_M_MILK_DRINK, SOUND_PAN_ATTACKER
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE
delay 4
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE
delay 4
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2
createsprite gGuardRingSpriteTemplate, ANIM_ATTACKER, 2, TRUE
waitforvisualfinish
playsewithpan SE_SHINY, SOUND_PAN_ATTACKER
blend_color_cycle selector=F_PAL_ATK_SIDE, delay=0, num_blends=2, initial_blend_y=0, target_blend_y=10, color=RGB_WHITE
@ -24376,36 +24448,37 @@ gBattleAnimMove_BrickBreak::
loadspritegfx ANIM_TAG_TORN_METAL
choosetwoturnanim BrickBreakNormal, BrickBreakShatteredWall
BrickBreakNormal:
monbg ANIM_TARGET
setalpha 12, 8
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8
delay 4
delay 1
create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=-18, y=-18, relative_to=ANIM_TARGET, animation=1
playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET
delay 20
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8
delay 5
create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=18, y=18, relative_to=ANIM_TARGET, animation=1
playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET
delay 20
createvisualtask AnimTask_WindUpLunge, 2, ANIM_ATTACKER, -24, 0, 24, 10, 24, 3
simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=0, target_blend_y=6, color=RGB_BLACK
delay 37
create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=0, y=0, relative_to=ANIM_TARGET, animation=1
createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish
call BrickBreakCommon1
call BrickBreakCommon2
BrickBreakEnd:
simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=6, target_blend_y=0, color=RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_TARGET
end
BrickBreakShatteredWall:
call BrickBreakCommon1
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10
call BrickBreakCommon2
call BreakScreens
waitforvisualfinish
goto BrickBreakEnd
BrickBreakCommon1:
monbg ANIM_TARGET
setalpha 12, 8
createsprite gHorizontalLungeSpriteTemplate, ANIM_ATTACKER, 2, 3, 8
delay 4
createsprite gBrickBreakWallSpriteTemplate, ANIM_ATTACKER, 3, ANIM_TARGET, 0, 0, 90, 10
return
BreakScreens:
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12
playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET
return
BrickBreakCommon2:
delay 1
create_basic_hitsplat_sprite ANIM_ATTACKER, 3, x=-18, y=-18, relative_to=ANIM_TARGET, animation=1
playsewithpan SE_M_VITAL_THROW, SOUND_PAN_TARGET
@ -24422,16 +24495,7 @@ BrickBreakShatteredWall:
createsprite gFistFootSpriteTemplate, ANIM_ATTACKER, 4, 0, 0, 10, 1, 0
playsewithpan SE_M_VITAL_THROW2, SOUND_PAN_TARGET
waitforvisualfinish
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 0, -8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 1, 8, -12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 2, -8, 12
createsprite gBrickBreakWallShardSpriteTemplate, ANIM_ATTACKER, 2, ANIM_TARGET, 3, 8, 12
playsewithpan SE_M_BRICK_BREAK, SOUND_PAN_TARGET
waitforvisualfinish
simple_palette_blend selector=F_PAL_BG, delay=2, initial_blend_y=6, target_blend_y=0, color=RGB_BLACK
waitforvisualfinish
clearmonbg ANIM_TARGET
end
return
gBattleAnimMove_Yawn::
loadspritegfx ANIM_TAG_PINK_CLOUD
@ -27521,7 +27585,7 @@ gBattleAnimMove_RazorLeaf::
end
gBattleAnimMove_NaturePower::
@ No actual animation, uses the animation of a move from gBattleEnvironmentInfo.naturePower instead
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
gBattleAnimMove_AncientPower::
loadspritegfx ANIM_TAG_ROCKS
@ -28870,8 +28934,9 @@ gBattleAnimMove_SpitUp::
createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 192, 12
createsprite gSpitUpOrbSpriteTemplate, ANIM_ATTACKER, 2, 224, 12
delay 5
jumpifmoveturn 2, SpitUpStrong
jumpifmoveturn 3, SpitUpStrongest
createvisualtask AnimTask_GetStockpileCounter, 2
jumpreteq 2, SpitUpStrong
jumpreteq 3, SpitUpStrongest
SpitUpContinue:
delay 5
createvisualtask AnimTask_ShakeTargetBasedOnMovePowerOrDmg, 2, FALSE, 1, 8, 1, 0
@ -30304,49 +30369,7 @@ gBattleAnimMove_SkyUppercut::
end
gBattleAnimMove_SecretPower::
createvisualtask AnimTask_GetFieldTerrain, 5
jumpargeq 0, STATUS_FIELD_MISTY_TERRAIN, gBattleAnimMove_FairyWind
jumpargeq 0, STATUS_FIELD_GRASSY_TERRAIN, gBattleAnimMove_NeedleArm
jumpargeq 0, STATUS_FIELD_ELECTRIC_TERRAIN, gBattleAnimMove_ThunderShock
jumpargeq 0, STATUS_FIELD_PSYCHIC_TERRAIN, gBattleAnimMove_Confusion
createvisualtask AnimTask_GetBattleEnvironment, 5
jumpargeq 0, BATTLE_ENVIRONMENT_GRASS, gBattleAnimMove_NeedleArm
jumpargeq 0, BATTLE_ENVIRONMENT_LONG_GRASS, gBattleAnimMove_MagicalLeaf
jumpargeq 0, BATTLE_ENVIRONMENT_SAND, gBattleAnimMove_MudShot
jumpargeq 0, BATTLE_ENVIRONMENT_UNDERWATER, gBattleAnimMove_Waterfall
jumpargeq 0, BATTLE_ENVIRONMENT_WATER, gBattleAnimMove_Surf
jumpargeq 0, BATTLE_ENVIRONMENT_POND, gBattleAnimMove_BubbleBeam
jumpargeq 0, BATTLE_ENVIRONMENT_MOUNTAIN, gBattleAnimMove_RockThrow
jumpargeq 0, BATTLE_ENVIRONMENT_CAVE, gBattleAnimMove_Bite
jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength
jumpargeq 0, BATTLE_ENVIRONMENT_SOARING, gBattleAnimMove_Gust
jumpargeq 0, BATTLE_ENVIRONMENT_SKY_PILLAR, gBattleAnimMove_Gust
jumpargeq 0, BATTLE_ENVIRONMENT_BURIAL_GROUND, gBattleAnimMove_ShadowSneak
jumpargeq 0, BATTLE_ENVIRONMENT_PUDDLE, gBattleAnimMove_MudShot
jumpargeq 0, BATTLE_ENVIRONMENT_MARSH, gBattleAnimMove_MudShot
jumpargeq 0, BATTLE_ENVIRONMENT_SWAMP, gBattleAnimMove_MudShot
jumpargeq 0, BATTLE_ENVIRONMENT_ICE, gBattleAnimMove_IceShard
jumpargeq 0, BATTLE_ENVIRONMENT_VOLCANO, gBattleAnimMove_Incinerate
jumpargeq 0, BATTLE_ENVIRONMENT_DISTORTION_WORLD, gBattleAnimMove_Pound
jumpargeq 0, BATTLE_ENVIRONMENT_SPACE, gBattleAnimMove_Swift
jumpargeq 0, BATTLE_ENVIRONMENT_ULTRA_SPACE, gBattleAnimMove_Psywave
.if B_SECRET_POWER_ANIMATION >= GEN_7
jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_IceShard
jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_SpitUp
goto gBattleAnimMove_SpitUp
.elseif B_SECRET_POWER_ANIMATION >= GEN_6
jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche
jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam
goto gBattleAnimMove_BodySlam
.elseif B_SECRET_POWER_ANIMATION >= GEN_4
jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche
jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_BodySlam
goto gBattleAnimMove_MudSlap
.else
jumpargeq 0, BATTLE_ENVIRONMENT_SNOW, gBattleAnimMove_Avalanche
jumpargeq 0, BATTLE_ENVIRONMENT_BUILDING, gBattleAnimMove_Strength
goto gBattleAnimMove_Slam
.endif
@ No actual animation, uses the animation of a move from src/data/battle_environment.h instead
gBattleAnimMove_Twister::
loadspritegfx ANIM_TAG_LEAF
@ -31114,7 +31137,7 @@ Status_MagmaStorm:
loopsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET, 5, 8
createvisualtask AnimTask_SeismicTossBgAccelerateDownAtEnd, 3
createvisualtask AnimTask_ShakeMon, 5, ANIM_TARGET, 0, 2, 47, 1
blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=11, color=RGB(22, 9, 7)
blend_color_cycle selector=(F_PAL_ATTACKER | F_PAL_TARGET), delay=2, num_blends=2, initial_blend_y=0, target_blend_y=12, color=RGB(22, 9, 7)
call FireSpinEffect
call FireSpinEffect
call FireSpinEffect
@ -31459,6 +31482,8 @@ gBattleAnimGeneral_SimpleHeal::
gBattleAnimGeneral_IllusionOff::
monbg ANIM_TARGET
playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER
waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48
createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_ILLUSION_OFF
waitforvisualfinish
clearmonbg ANIM_TARGET
@ -31466,11 +31491,27 @@ gBattleAnimGeneral_IllusionOff::
gBattleAnimGeneral_FormChange::
monbg ANIM_ATTACKER
playsewithpan SE_M_TELEPORT, SOUND_PAN_ATTACKER
waitplaysewithpan SE_M_MINIMIZE, SOUND_PAN_ATTACKER, 48
createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_FORM_CHANGE
waitforvisualfinish
clearmonbg ANIM_ATTACKER
end
gBattleAnimGeneral_FormChangeDisguise::
playsewithpan SE_CONTEST_CONDITION_LOSE, SOUND_PAN_TARGET
createvisualtask AnimTask_ShakeMon2, 2, ANIM_TARGET, 2, 0, 10, 1
waitforvisualfinish
playsewithpan SE_CONTEST_CURTAIN_FALL, SOUND_PAN_TARGET
goto gBattleAnimGeneral_FormChangeInstant
gBattleAnimGeneral_FormChangeInstant::
monbg ANIM_ATTACKER
createvisualtask AnimTask_TransformMon, 2, SPECIES_GFX_CHANGE_FORM_CHANGE_INSTANT
waitforvisualfinish
clearmonbg ANIM_ATTACKER
end
gBattleAnimGeneral_SlideOffScreen::
createvisualtask AnimTask_SlideOffScreen, 5, ANIM_TARGET, 3
waitforvisualfinish
@ -31783,7 +31824,7 @@ gBattleAnimGeneral_PowerConstruct::
loadspritegfx ANIM_TAG_ZYGARDE_HEXES @hexagon
loadspritegfx ANIM_TAG_VERTICAL_HEX @arrow
loadspritegfx ANIM_TAG_FLYING_DIRT
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SNORE_Z, 0, 10, 10, RGB(8, 20, 26) @Green
createvisualtask AnimTask_BlendParticle, 5, ANIM_TAG_SNORE_Z, 0, 10, 10, RGB(8, 14, 1) @Green
monbg ANIM_ATTACKER
setalpha 12, 8
loopsewithpan SE_M_MEGA_KICK, SOUND_PAN_ATTACKER, 13, 3
@ -33883,10 +33924,10 @@ ShatteredPsycheFinish:
restorebg
createvisualtask AnimTask_ShakeMon, 2, ANIM_TARGET, 3, 0, 15, 1
createvisualtask AnimTask_ScaleMonAndRestore, 5, -4, -4, 15, ANIM_TARGET, 1
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0
waitbgfadeout
createvisualtask AnimTask_AllBattlersVisible, 0xA
waitforvisualfinish
@ -34064,10 +34105,10 @@ SubzeroSlammerFinish:
loadspritegfx ANIM_TAG_TORN_METAL
playsewithpan SE_M_MEGA_KICK2, SOUND_PAN_TARGET
delay 3
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x0, 0x0, 0x0 @ -8, -12
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x1, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x2, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, 0x1, 0x3, 0x0, 0x0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 0, 0, 0 @ -8, -12
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 1, 0, 0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 2, 0, 0
createsprite gBrickBreakWallShardSpriteTemplate ANIM_TARGET, 2, ANIM_TARGET, 3, 0, 0
createvisualtask AnimTask_HorizontalShake, 5, ANIM_TARGET, 8, 28
call SubzeroSlammerExplosion
call SubzeroSlammerExplosion
@ -34401,7 +34442,7 @@ gBattleAnimMove_BlackHoleEclipse::
delay 3
createsprite gBlackHoleEclipseWispSpriteTemplate, ANIM_ATTACKER, 4, 0x0, 0x10, 0x3
waitforvisualfinish
fadetobg BG_BLACKHOLE_ECLIPSE
fadetobg BG_BLACK_HOLE_ECLIPSE
playsewithpan SE_M_SACRED_FIRE2, SOUND_PAN_TARGET
loadspritegfx ANIM_TAG_VERTICAL_HEX @red
createsprite gBlackHoleEclipseRedRingSpriteTemplate, ANIM_ATTACKER, 3, 0x0, 0x0, 0x100, 0x0

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,5 @@
#include "config/battle.h"
#include "constants/global.h"
#include "constants/battle.h"
#include "constants/battle_script_commands.h"
#include "constants/battle_anim.h"
@ -33,6 +34,8 @@ gBattlescriptsForSafariActions::
.4byte BattleScript_ActionGetNear
.4byte BattleScript_ActionThrowPokeblock
.4byte BattleScript_ActionWallyThrow
.4byte BattleScript_ActionThrowRock
.4byte BattleScript_ActionThrowBait
BattleScript_ItemEnd:
end
@ -81,6 +84,7 @@ BattleScript_ItemRestoreHP_SendOutRevivedBattler:
switchinanim BS_SCRIPTING, FALSE, FALSE
waitstate
switchineffects BS_SCRIPTING
switchinevents
end
BattleScript_ItemCureStatus::
@ -147,6 +151,7 @@ BattleScript_ItemSetMist::
BattleScript_ItemSetFocusEnergy::
call BattleScript_UseItemMessage
itemincreasestat
jumpifvolatile BS_ATTACKER, VOLATILE_DRAGON_CHEER, BattleScript_ButItFailed
jumpifvolatile BS_ATTACKER, VOLATILE_FOCUS_ENERGY, BattleScript_ButItFailed
setfocusenergy BS_ATTACKER
@ -166,11 +171,12 @@ BattleScript_ItemRestorePP::
BattleScript_ItemIncreaseAllStats::
call BattleScript_UseItemMessage
itemincreasestat
call BattleScript_AllStatsUp
end
BattleScript_BallThrow::
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_WALLY_TUTORIAL, BattleScript_BallThrowByWally
jumpifword CMP_COMMON_BITS, gBattleTypeFlags, BATTLE_TYPE_CATCH_TUTORIAL, BattleScript_BallThrowByWally
printstring STRINGID_PLAYERUSEDITEM
handleballthrow
@ -246,8 +252,11 @@ BattleScript_RunByUsingItem::
finishturn
BattleScript_ActionWatchesCarefully:
printstring STRINGID_PKMNWATCHINGCAREFULLY
printfromtable gSafariReactionStringIds
waitmessage B_WAIT_TIME_LONG
#if IS_FRLG
playanimation BS_OPPONENT1, B_ANIM_SAFARI_REACTION
#endif
end2
BattleScript_ActionGetNear:
@ -299,3 +308,34 @@ BattleScript_TrainerBSlideMsgRet::
BattleScript_TrainerBSlideMsgEnd2::
call BattleScript_TrainerBSlideMsgRet
end2
BattleScript_TrainerPartnerSlideMsgRet::
trainerslidein BS_PLAYER2
handletrainerslidemsg BS_SCRIPTING, PRINT_SLIDE_MESSAGE
waitstate
trainerslideout BS_PLAYER2
waitstate
handletrainerslidemsg BS_SCRIPTING, RESTORE_BATTLER_SLIDE_CONTROL
return
BattleScript_TrainerPartnerSlideMsgEnd2::
call BattleScript_TrainerPartnerSlideMsgRet
end2
BattleScript_GhostBallDodge::
waitmessage B_WAIT_TIME_LONG
printstring STRINGID_ITDODGEDBALL
waitmessage B_WAIT_TIME_LONG
finishaction
BattleScript_ActionThrowRock::
printstring STRINGID_THREWROCK
waitmessage B_WAIT_TIME_LONG
playanimation BS_ATTACKER, B_ANIM_ROCK_THROW
end2
BattleScript_ActionThrowBait::
printstring STRINGID_THREWBAIT
waitmessage B_WAIT_TIME_LONG
playanimation BS_ATTACKER, B_ANIM_POKEBLOCK_THROW
end2

View File

@ -13,6 +13,7 @@
#include "constants/battle_pike.h"
#include "constants/battle_pyramid.h"
#include "constants/battle_setup.h"
#include "constants/battle_special.h"
#include "constants/battle_tent.h"
#include "constants/battle_tower.h"
#include "constants/berry.h"
@ -25,6 +26,7 @@
#include "constants/easy_chat.h"
#include "constants/event_objects.h"
#include "constants/event_object_movement.h"
#include "constants/fame_checker.h"
#include "constants/field_effects.h"
#include "constants/field_move.h"
#include "constants/field_poison.h"
@ -46,12 +48,15 @@
#include "constants/metatile_labels.h"
#include "constants/move_relearner.h"
#include "constants/moves.h"
#include "constants/mystery_gift.h"
#include "constants/party_menu.h"
#include "constants/pokeball.h"
#include "constants/pokedex.h"
#include "constants/pokemon.h"
#include "constants/rtc.h"
#include "constants/roulette.h"
#include "constants/script_menu.h"
#include "constants/seagallop.h"
#include "constants/secret_bases.h"
#include "constants/siirtc.h"
#include "constants/songs.h"
@ -59,7 +64,9 @@
#include "constants/species.h"
#include "constants/trade.h"
#include "constants/trainer_hill.h"
#include "constants/trainer_tower.h"
#include "constants/trainers.h"
#include "constants/trainer_card.h"
#include "constants/tv.h"
#include "constants/union_room.h"
#include "constants/vars.h"
@ -113,8 +120,11 @@ gStdScripts::
.4byte Std_RegisteredInMatchCall @ STD_REGISTER_MATCH_CALL
.4byte Std_MsgboxGetPoints @ MSGBOX_GETPOINTS
.4byte Std_MsgboxPokenav @ MSGBOX_POKENAV
.4byte Std_PutItemAway @ STD_PUT_ITEM_AWAY
.4byte Std_ReceivedItem @ STD_RECEIVED_ITEM
gStdScripts_End::
.include "data/maps/PetalburgCity/scripts.inc"
.include "data/maps/SlateportCity/scripts.inc"
.include "data/maps/MauvilleCity/scripts.inc"
@ -585,10 +595,460 @@ gStdScripts_End::
.include "data/maps/Route119_House/scripts.inc"
.include "data/maps/Route124_DivingTreasureHuntersHouse/scripts.inc"
.if IS_FRLG
@ FRLG scripts
.include "data/maps/BattleColosseum_2P_Frlg/scripts.inc"
.include "data/maps/TradeCenter_Frlg/scripts.inc"
.include "data/maps/RecordCorner_Frlg/scripts.inc"
.include "data/maps/BattleColosseum_4P_Frlg/scripts.inc"
.include "data/maps/UnionRoom_Frlg/scripts.inc"
.include "data/maps/ViridianForest_Frlg/scripts.inc"
.include "data/maps/MtMoon_1F_Frlg/scripts.inc"
.include "data/maps/MtMoon_B1F_Frlg/scripts.inc"
.include "data/maps/MtMoon_B2F_Frlg/scripts.inc"
.include "data/maps/SSAnne_Exterior_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Corridor_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Corridor_Frlg/scripts.inc"
.include "data/maps/SSAnne_3F_Corridor_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Corridor_Frlg/scripts.inc"
.include "data/maps/SSAnne_Deck_Frlg/scripts.inc"
.include "data/maps/SSAnne_Kitchen_Frlg/scripts.inc"
.include "data/maps/SSAnne_CaptainsOffice_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room1_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room2_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room3_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room4_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room5_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room7_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room1_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room2_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room3_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room4_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room5_Frlg/scripts.inc"
.include "data/maps/SSAnne_2F_Room6_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Room1_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Room2_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Room3_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Room4_Frlg/scripts.inc"
.include "data/maps/SSAnne_B1F_Room5_Frlg/scripts.inc"
.include "data/maps/SSAnne_1F_Room6_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_NorthEntrance_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_NorthSouthTunnel_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_SouthEntrance_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_WestEntrance_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_EastWestTunnel_Frlg/scripts.inc"
.include "data/maps/UndergroundPath_EastEntrance_Frlg/scripts.inc"
.include "data/maps/DiglettsCave_NorthEntrance_Frlg/scripts.inc"
.include "data/maps/DiglettsCave_B1F_Frlg/scripts.inc"
.include "data/maps/DiglettsCave_SouthEntrance_Frlg/scripts.inc"
.include "data/maps/VictoryRoad_1F_Frlg/scripts.inc"
.include "data/maps/VictoryRoad_2F_Frlg/scripts.inc"
.include "data/maps/VictoryRoad_3F_Frlg/scripts.inc"
.include "data/maps/RocketHideout_B1F_Frlg/scripts.inc"
.include "data/maps/RocketHideout_B2F_Frlg/scripts.inc"
.include "data/maps/RocketHideout_B3F_Frlg/scripts.inc"
.include "data/maps/RocketHideout_B4F_Frlg/scripts.inc"
.include "data/maps/RocketHideout_Elevator_Frlg/scripts.inc"
.include "data/maps/SilphCo_1F_Frlg/scripts.inc"
.include "data/maps/SilphCo_2F_Frlg/scripts.inc"
.include "data/maps/SilphCo_3F_Frlg/scripts.inc"
.include "data/maps/SilphCo_4F_Frlg/scripts.inc"
.include "data/maps/SilphCo_5F_Frlg/scripts.inc"
.include "data/maps/SilphCo_6F_Frlg/scripts.inc"
.include "data/maps/SilphCo_7F_Frlg/scripts.inc"
.include "data/maps/SilphCo_8F_Frlg/scripts.inc"
.include "data/maps/SilphCo_9F_Frlg/scripts.inc"
.include "data/maps/SilphCo_10F_Frlg/scripts.inc"
.include "data/maps/SilphCo_11F_Frlg/scripts.inc"
.include "data/maps/SilphCo_Elevator_Frlg/scripts.inc"
.include "data/maps/PokemonMansion_1F_Frlg/scripts.inc"
.include "data/maps/PokemonMansion_2F_Frlg/scripts.inc"
.include "data/maps/PokemonMansion_3F_Frlg/scripts.inc"
.include "data/maps/PokemonMansion_B1F_Frlg/scripts.inc"
.include "data/maps/SafariZone_Center_Frlg/scripts.inc"
.include "data/maps/SafariZone_East_Frlg/scripts.inc"
.include "data/maps/SafariZone_North_Frlg/scripts.inc"
.include "data/maps/SafariZone_West_Frlg/scripts.inc"
.include "data/maps/SafariZone_Center_RestHouse_Frlg/scripts.inc"
.include "data/maps/SafariZone_East_RestHouse_Frlg/scripts.inc"
.include "data/maps/SafariZone_North_RestHouse_Frlg/scripts.inc"
.include "data/maps/SafariZone_West_RestHouse_Frlg/scripts.inc"
.include "data/maps/SafariZone_SecretHouse_Frlg/scripts.inc"
.include "data/maps/CeruleanCave_1F_Frlg/scripts.inc"
.include "data/maps/CeruleanCave_2F_Frlg/scripts.inc"
.include "data/maps/CeruleanCave_B1F_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_LoreleisRoom_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_BrunosRoom_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_AgathasRoom_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_LancesRoom_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_ChampionsRoom_Frlg/scripts.inc"
.include "data/maps/PokemonLeague_HallOfFame_Frlg/scripts.inc"
.include "data/maps/RockTunnel_1F_Frlg/scripts.inc"
.include "data/maps/RockTunnel_B1F_Frlg/scripts.inc"
.include "data/maps/SeafoamIslands_1F_Frlg/scripts.inc"
.include "data/maps/SeafoamIslands_B1F_Frlg/scripts.inc"
.include "data/maps/SeafoamIslands_B2F_Frlg/scripts.inc"
.include "data/maps/SeafoamIslands_B3F_Frlg/scripts.inc"
.include "data/maps/SeafoamIslands_B4F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_1F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_2F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_3F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_4F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_5F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_6F_Frlg/scripts.inc"
.include "data/maps/PokemonTower_7F_Frlg/scripts.inc"
.include "data/maps/PowerPlant_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B4F_Frlg/scripts.inc"
.include "data/maps/MtEmber_Exterior_Frlg/scripts.inc"
.include "data/maps/MtEmber_SummitPath_1F_Frlg/scripts.inc"
.include "data/maps/MtEmber_SummitPath_2F_Frlg/scripts.inc"
.include "data/maps/MtEmber_SummitPath_3F_Frlg/scripts.inc"
.include "data/maps/MtEmber_Summit_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B5F_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_1F_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B1F_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B2F_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B3F_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B1F_Stairs_Frlg/scripts.inc"
.include "data/maps/MtEmber_RubyPath_B2F_Stairs_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_BerryForest_Frlg/scripts.inc"
.include "data/maps/FourIsland_IcefallCave_Entrance_Frlg/scripts.inc"
.include "data/maps/FourIsland_IcefallCave_1F_Frlg/scripts.inc"
.include "data/maps/FourIsland_IcefallCave_B1F_Frlg/scripts.inc"
.include "data/maps/FourIsland_IcefallCave_Back_Frlg/scripts.inc"
.include "data/maps/FiveIsland_RocketWarehouse_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_1F_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_B1F_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_B2F_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_B3F_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_B4F_Frlg/scripts.inc"
.include "data/maps/SixIsland_DottedHole_SapphireRoom_Frlg/scripts.inc"
.include "data/maps/SixIsland_PatternBush_Frlg/scripts.inc"
.include "data/maps/SixIsland_AlteringCave_Frlg/scripts.inc"
.include "data/maps/NavelRock_Exterior_Frlg/scripts.inc"
.include "data/maps/TrainerTower_1F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_2F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_3F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_4F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_5F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_6F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_7F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_8F_Frlg/scripts.inc"
.include "data/maps/TrainerTower_Roof_Frlg/scripts.inc"
.include "data/maps/TrainerTower_Lobby_Frlg/scripts.inc"
.include "data/maps/TrainerTower_Elevator_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Entrance_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room1_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room2_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room3_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room4_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room5_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room6_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room7_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room8_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room9_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room10_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room11_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room12_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room13_Frlg/scripts.inc"
.include "data/maps/FiveIsland_LostCave_Room14_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_MoneanChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_LiptooChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_WeepthChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_DilfordChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_ScufibChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_RixyChamber_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_ViapoisChamber_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_DunsparceTunnel_Frlg/scripts.inc"
.include "data/maps/SevenIsland_SevaultCanyon_TanobyKey_Frlg/scripts.inc"
.include "data/maps/NavelRock_1F_Frlg/scripts.inc"
.include "data/maps/NavelRock_Summit_Frlg/scripts.inc"
.include "data/maps/NavelRock_Base_Frlg/scripts.inc"
.include "data/maps/NavelRock_SummitPath_2F_Frlg/scripts.inc"
.include "data/maps/NavelRock_SummitPath_3F_Frlg/scripts.inc"
.include "data/maps/NavelRock_SummitPath_4F_Frlg/scripts.inc"
.include "data/maps/NavelRock_SummitPath_5F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B1F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B2F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B3F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B4F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B5F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B6F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B7F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B8F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B9F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B10F_Frlg/scripts.inc"
.include "data/maps/NavelRock_BasePath_B11F_Frlg/scripts.inc"
.include "data/maps/NavelRock_B1F_Frlg/scripts.inc"
.include "data/maps/NavelRock_Fork_Frlg/scripts.inc"
.include "data/maps/BirthIsland_Exterior_Frlg/scripts.inc"
.include "data/maps/OneIsland_KindleRoad_EmberSpa_Frlg/scripts.inc"
.include "data/maps/BirthIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/NavelRock_Harbor_Frlg/scripts.inc"
.include "data/maps/PalletTown_Frlg/scripts.inc"
.include "data/maps/ViridianCity_Frlg/scripts.inc"
.include "data/maps/PewterCity_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_Frlg/scripts.inc"
.include "data/maps/LavenderTown_Frlg/scripts.inc"
.include "data/maps/VermilionCity_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_Frlg/scripts.inc"
.include "data/maps/IndigoPlateau_Exterior_Frlg/scripts.inc"
.include "data/maps/SaffronCity_Frlg/scripts.inc"
.include "data/maps/SaffronCity_Connection_Frlg/scripts.inc"
.include "data/maps/OneIsland_Frlg/scripts.inc"
.include "data/maps/TwoIsland_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_Frlg/scripts.inc"
.include "data/maps/FourIsland_Frlg/scripts.inc"
.include "data/maps/FiveIsland_Frlg/scripts.inc"
.include "data/maps/SevenIsland_Frlg/scripts.inc"
.include "data/maps/SixIsland_Frlg/scripts.inc"
.include "data/maps/Route1_Frlg/scripts.inc"
.include "data/maps/Route2_Frlg/scripts.inc"
.include "data/maps/Route3_Frlg/scripts.inc"
.include "data/maps/Route4_Frlg/scripts.inc"
.include "data/maps/Route5_Frlg/scripts.inc"
.include "data/maps/Route6_Frlg/scripts.inc"
.include "data/maps/Route7_Frlg/scripts.inc"
.include "data/maps/Route8_Frlg/scripts.inc"
.include "data/maps/Route9_Frlg/scripts.inc"
.include "data/maps/Route10_Frlg/scripts.inc"
.include "data/maps/Route11_Frlg/scripts.inc"
.include "data/maps/Route12_Frlg/scripts.inc"
.include "data/maps/Route13_Frlg/scripts.inc"
.include "data/maps/Route14_Frlg/scripts.inc"
.include "data/maps/Route15_Frlg/scripts.inc"
.include "data/maps/Route16_Frlg/scripts.inc"
.include "data/maps/Route17_Frlg/scripts.inc"
.include "data/maps/Route18_Frlg/scripts.inc"
.include "data/maps/Route19_Frlg/scripts.inc"
.include "data/maps/Route20_Frlg/scripts.inc"
.include "data/maps/Route21_North_Frlg/scripts.inc"
.include "data/maps/Route21_South_Frlg/scripts.inc"
.include "data/maps/Route22_Frlg/scripts.inc"
.include "data/maps/Route23_Frlg/scripts.inc"
.include "data/maps/Route24_Frlg/scripts.inc"
.include "data/maps/Route25_Frlg/scripts.inc"
.include "data/maps/OneIsland_KindleRoad_Frlg/scripts.inc"
.include "data/maps/OneIsland_TreasureBeach_Frlg/scripts.inc"
.include "data/maps/TwoIsland_CapeBrink_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_BondBridge_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_Port_Frlg/scripts.inc"
.include "data/maps/FiveIsland_ResortGorgeous_Frlg/scripts.inc"
.include "data/maps/FiveIsland_WaterLabyrinth_Frlg/scripts.inc"
.include "data/maps/FiveIsland_Meadow_Frlg/scripts.inc"
.include "data/maps/FiveIsland_MemorialPillar_Frlg/scripts.inc"
.include "data/maps/SixIsland_OutcastIsland_Frlg/scripts.inc"
.include "data/maps/SixIsland_GreenPath_Frlg/scripts.inc"
.include "data/maps/SixIsland_WaterPath_Frlg/scripts.inc"
.include "data/maps/SixIsland_RuinValley_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TrainerTower_Frlg/scripts.inc"
.include "data/maps/SevenIsland_SevaultCanyon_Entrance_Frlg/scripts.inc"
.include "data/maps/SevenIsland_SevaultCanyon_Frlg/scripts.inc"
.include "data/maps/SevenIsland_TanobyRuins_Frlg/scripts.inc"
.include "data/maps/PalletTown_PlayersHouse_1F_Frlg/scripts.inc"
.include "data/maps/PalletTown_PlayersHouse_2F_Frlg/scripts.inc"
.include "data/maps/PalletTown_RivalsHouse_Frlg/scripts.inc"
.include "data/maps/PalletTown_ProfessorOaksLab_Frlg/scripts.inc"
.include "data/maps/ViridianCity_House_Frlg/scripts.inc"
.include "data/maps/ViridianCity_Gym_Frlg/scripts.inc"
.include "data/maps/ViridianCity_School_Frlg/scripts.inc"
.include "data/maps/ViridianCity_Mart_Frlg/scripts.inc"
.include "data/maps/ViridianCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/ViridianCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/PewterCity_Museum_1F_Frlg/scripts.inc"
.include "data/maps/PewterCity_Museum_2F_Frlg/scripts.inc"
.include "data/maps/PewterCity_Gym_Frlg/scripts.inc"
.include "data/maps/PewterCity_Mart_Frlg/scripts.inc"
.include "data/maps/PewterCity_House1_Frlg/scripts.inc"
.include "data/maps/PewterCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/PewterCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/PewterCity_House2_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_House1_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_House2_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_House3_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_Gym_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_BikeShop_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_Mart_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_House4_Frlg/scripts.inc"
.include "data/maps/CeruleanCity_House5_Frlg/scripts.inc"
.include "data/maps/LavenderTown_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/LavenderTown_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/LavenderTown_VolunteerPokemonHouse_Frlg/scripts.inc"
.include "data/maps/LavenderTown_House1_Frlg/scripts.inc"
.include "data/maps/LavenderTown_House2_Frlg/scripts.inc"
.include "data/maps/LavenderTown_Mart_Frlg/scripts.inc"
.include "data/maps/VermilionCity_House1_Frlg/scripts.inc"
.include "data/maps/VermilionCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/VermilionCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/VermilionCity_PokemonFanClub_Frlg/scripts.inc"
.include "data/maps/VermilionCity_House2_Frlg/scripts.inc"
.include "data/maps/VermilionCity_Mart_Frlg/scripts.inc"
.include "data/maps/VermilionCity_Gym_Frlg/scripts.inc"
.include "data/maps/VermilionCity_House3_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_1F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_2F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_3F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_4F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_5F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_Roof_Frlg/scripts.inc"
.include "data/maps/CeladonCity_DepartmentStore_Elevator_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Condominiums_1F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Condominiums_2F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Condominiums_3F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Condominiums_Roof_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Condominiums_RoofRoom_Frlg/scripts.inc"
.include "data/maps/CeladonCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/CeladonCity_GameCorner_Frlg/scripts.inc"
.include "data/maps/CeladonCity_GameCorner_PrizeRoom_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Gym_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Restaurant_Frlg/scripts.inc"
.include "data/maps/CeladonCity_House1_Frlg/scripts.inc"
.include "data/maps/CeladonCity_Hotel_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_SafariZone_Entrance_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_Mart_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_SafariZone_Office_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_Gym_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_House1_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_WardensHouse_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_House2_Frlg/scripts.inc"
.include "data/maps/FuchsiaCity_House3_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_Gym_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonLab_Entrance_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonLab_Lounge_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonLab_ResearchRoom_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonLab_ExperimentRoom_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/CinnabarIsland_Mart_Frlg/scripts.inc"
.include "data/maps/IndigoPlateau_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/IndigoPlateau_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/SaffronCity_CopycatsHouse_1F_Frlg/scripts.inc"
.include "data/maps/SaffronCity_CopycatsHouse_2F_Frlg/scripts.inc"
.include "data/maps/SaffronCity_Dojo_Frlg/scripts.inc"
.include "data/maps/SaffronCity_Gym_Frlg/scripts.inc"
.include "data/maps/SaffronCity_House_Frlg/scripts.inc"
.include "data/maps/SaffronCity_Mart_Frlg/scripts.inc"
.include "data/maps/SaffronCity_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/SaffronCity_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/SaffronCity_MrPsychicsHouse_Frlg/scripts.inc"
.include "data/maps/SaffronCity_PokemonTrainerFanClub_Frlg/scripts.inc"
.include "data/maps/Route2_ViridianForest_SouthEntrance_Frlg/scripts.inc"
.include "data/maps/Route2_House_Frlg/scripts.inc"
.include "data/maps/Route2_EastBuilding_Frlg/scripts.inc"
.include "data/maps/Route2_ViridianForest_NorthEntrance_Frlg/scripts.inc"
.include "data/maps/Route4_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/Route4_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/Route5_PokemonDayCare_Frlg/scripts.inc"
.include "data/maps/Route5_SouthEntrance_Frlg/scripts.inc"
.include "data/maps/Route6_NorthEntrance_Frlg/scripts.inc"
.include "data/maps/Route6_UnusedHouse_Frlg/scripts.inc"
.include "data/maps/Route7_EastEntrance_Frlg/scripts.inc"
.include "data/maps/Route8_WestEntrance_Frlg/scripts.inc"
.include "data/maps/Route10_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/Route10_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/Route11_EastEntrance_1F_Frlg/scripts.inc"
.include "data/maps/Route11_EastEntrance_2F_Frlg/scripts.inc"
.include "data/maps/Route12_NorthEntrance_1F_Frlg/scripts.inc"
.include "data/maps/Route12_NorthEntrance_2F_Frlg/scripts.inc"
.include "data/maps/Route12_FishingHouse_Frlg/scripts.inc"
.include "data/maps/Route15_WestEntrance_1F_Frlg/scripts.inc"
.include "data/maps/Route15_WestEntrance_2F_Frlg/scripts.inc"
.include "data/maps/Route16_House_Frlg/scripts.inc"
.include "data/maps/Route16_NorthEntrance_1F_Frlg/scripts.inc"
.include "data/maps/Route16_NorthEntrance_2F_Frlg/scripts.inc"
.include "data/maps/Route18_EastEntrance_1F_Frlg/scripts.inc"
.include "data/maps/Route18_EastEntrance_2F_Frlg/scripts.inc"
.include "data/maps/Route22_NorthEntrance_Frlg/scripts.inc"
.include "data/maps/Route25_SeaCottage_Frlg/scripts.inc"
.include "data/maps/SevenIsland_House_Room1_Frlg/scripts.inc"
.include "data/maps/SevenIsland_House_Room2_Frlg/scripts.inc"
.include "data/maps/SevenIsland_Mart_Frlg/scripts.inc"
.include "data/maps/SevenIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/SevenIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/SevenIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/OneIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/OneIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/OneIsland_House1_Frlg/scripts.inc"
.include "data/maps/OneIsland_House2_Frlg/scripts.inc"
.include "data/maps/OneIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/TwoIsland_JoyfulGameCorner_Frlg/scripts.inc"
.include "data/maps/TwoIsland_House_Frlg/scripts.inc"
.include "data/maps/TwoIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/TwoIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/TwoIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_House1_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_Mart_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_House2_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_House3_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_House4_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_House5_Frlg/scripts.inc"
.include "data/maps/FourIsland_PokemonDayCare_Frlg/scripts.inc"
.include "data/maps/FourIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/FourIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/FourIsland_House1_Frlg/scripts.inc"
.include "data/maps/FourIsland_LoreleisHouse_Frlg/scripts.inc"
.include "data/maps/FourIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/FourIsland_House2_Frlg/scripts.inc"
.include "data/maps/FourIsland_Mart_Frlg/scripts.inc"
.include "data/maps/FiveIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/FiveIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/FiveIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/FiveIsland_House1_Frlg/scripts.inc"
.include "data/maps/FiveIsland_House2_Frlg/scripts.inc"
.include "data/maps/SixIsland_PokemonCenter_1F_Frlg/scripts.inc"
.include "data/maps/SixIsland_PokemonCenter_2F_Frlg/scripts.inc"
.include "data/maps/SixIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/SixIsland_House_Frlg/scripts.inc"
.include "data/maps/SixIsland_Mart_Frlg/scripts.inc"
.include "data/maps/ThreeIsland_Harbor_Frlg/scripts.inc"
.include "data/maps/FiveIsland_ResortGorgeous_House_Frlg/scripts.inc"
.include "data/maps/TwoIsland_CapeBrink_House_Frlg/scripts.inc"
.include "data/maps/SixIsland_WaterPath_House1_Frlg/scripts.inc"
.include "data/maps/SixIsland_WaterPath_House2_Frlg/scripts.inc"
.include "data/maps/SevenIsland_SevaultCanyon_House_Frlg/scripts.inc"
.include "data/scripts/trainer_tower.inc"
.include "data/scripts/fame_checker_frlg.inc"
.include "data/text/fame_checker_frlg.inc"
.include "data/scripts/item_ball_scripts_frlg.inc"
.include "data/scripts/silphco_doors.inc"
.include "data/scripts/move_tutors_frlg.inc"
.include "data/scripts/cable_club_frlg.inc"
.include "data/scripts/trainer_card_frlg.inc"
.include "data/text/trainer_card_frlg.inc"
.include "data/scripts/mystery_event_club.inc"
.include "data/scripts/day_care_frlg.inc"
.include "data/text/day_care_frlg.inc"
.include "data/scripts/seagallop.inc"
.include "data/scripts/static_pokemon.inc"
.include "data/scripts/aide.inc"
.include "data/scripts/pokemon_mansion.inc"
.include "data/scripts/pokemon_league.inc"
.include "data/scripts/route23.inc"
.include "data/text/new_game_intro_frlg.inc"
.include "data/scripts/trainers_frlg.inc"
.include "data/text/trainers_frlg.inc"
.include "data/text/ingame_trade_frlg.inc"
.include "data/scripts/flavor_text.inc"
.include "data/scripts/pkmn_center_nurse_frlg.inc"
.endif
.include "data/scripts/std_msgbox.inc"
.include "data/scripts/trainer_battle.inc"
.include "data/scripts/new_game.inc"
.include "data/scripts/hall_of_fame.inc"
.include "data/scripts/hall_of_fame_frlg.inc"
.include "data/scripts/config.inc"
.include "data/scripts/debug.inc"
@ -750,6 +1210,12 @@ Common_EventScript_BagIsFull::
msgbox gText_TooBadBagIsFull, MSGBOX_DEFAULT
return
EventScript_BagIsFull::
textcolor NPC_TEXT_COLOR_NEUTRAL
msgbox gText_TooBadBagIsFull
release
end
Common_EventScript_ShowNoRoomForDecor::
msgbox gText_NoRoomLeftForAnother, MSGBOX_DEFAULT
release
@ -1052,10 +1518,37 @@ gText_Sudowoodo_Attacked::
gText_LegendaryFlewAway::
.string "The {STR_VAR_1} flew away!$"
gText_WantWhichFloor::
.string "Which floor do you want?$"
.include "data/text/pc_transfer.inc"
.include "data/text/questionnaire.inc"
.include "data/text/abnormal_weather.inc"
EventScript_GetInGameTradeSpeciesInfo::
copyvar VAR_0x8005, VAR_0x8008
specialvar VAR_0x8009, GetInGameTradeSpeciesInfo
return
EventScript_ChooseMonForInGameTrade::
special ChoosePartyMon
waitstate
lock
faceplayer
return
EventScript_GetInGameTradeSpecies::
specialvar VAR_RESULT, GetTradeSpecies
return
EventScript_DoInGameTrade::
special CreateInGameTradePokemon
special DoInGameTradeScene
waitstate
lock
faceplayer
return
EventScript_SelectWithoutRegisteredItem::
msgbox gText_SelectWithoutRegisteredItem, MSGBOX_SIGN
end
@ -1065,6 +1558,18 @@ EventScript_SelectWithoutRegisteredItem::
Common_EventScript_NopReturn::
return
EventScript_SetResultTrue::
setvar VAR_RESULT, TRUE
return
EventScript_SetResultFalse::
setvar VAR_RESULT, FALSE
return
EventScript_GetElevatorFloor::
special GetElevatorFloor
return
@ Unused
EventScript_CableClub_SetVarResult1::
setvar VAR_RESULT, 1
@ -1075,15 +1580,27 @@ EventScript_CableClub_SetVarResult0::
return
Common_EventScript_UnionRoomAttendant::
#if IS_FRLG
call CableClub_EventScript_UnionRoomAttendant_Frlg
#else
call CableClub_EventScript_UnionRoomAttendant
#endif
end
Common_EventScript_WirelessClubAttendant::
#if IS_FRLG
call CableClub_EventScript_WirelessClubAttendant_Frlg
#else
call CableClub_EventScript_WirelessClubAttendant
#endif
end
Common_EventScript_DirectCornerAttendant::
#if IS_FRLG
call CableClub_EventScript_DirectCornerAttendant_Frlg
#else
call CableClub_EventScript_DirectCornerAttendant
#endif
end
Common_EventScript_RemoveStaticPokemon::
@ -1109,6 +1626,62 @@ EventScript_VsSeekerChargingDone::
releaseall
end
@ FRLG scripts
EventScript_SetExitingCyclingRoad::
lockall
clearflag FLAG_SYS_ON_CYCLING_ROAD
setvar VAR_MAP_SCENE_ROUTE16, 0
releaseall
end
EventScript_SetEnteringCyclingRoad::
lockall
setvar VAR_MAP_SCENE_ROUTE16, 1
releaseall
end
EventScript_TryDarkenRuins::
goto_if_set FLAG_SYS_UNLOCKED_TANOBY_RUINS, Common_EventScript_NopReturn
setweather WEATHER_SHADE
doweather
return
Text_MonFlewAway::
.string "The {STR_VAR_1} flew away!$"
@ Call for legendary bird trio
Text_Gyaoo::
.string "Gyaoo!$"
EventScript_BrailleCursorWaitButton::
special BrailleCursorToggle
waitbuttonpress
closebraillemessage
playse SE_SELECT
setvar VAR_0x8006, 1
special BrailleCursorToggle
return
EventScript_PalletTown_PlayersHouse_2F_ShutDownPC::
setvar VAR_0x8004, PC_LOCATION_PLAYER_HOUSE_FRLG
playse SE_PC_OFF
special DoPCTurnOffEffect
releaseall
end
EventScript_PalletTown_PlayersHouse_2F_TurnOnPC::
lockall
setvar VAR_0x8004, PC_LOCATION_PLAYER_HOUSE_FRLG
special DoPCTurnOnEffect
playse SE_PC_ON
msgbox gText_PlayerHouseBootPC
special BedroomPC
waitstate
releaseall
end
.include "data/scripts/pc_transfer.inc"
.include "data/scripts/questionnaire.inc"
.include "data/scripts/abnormal_weather.inc"
@ -1136,6 +1709,7 @@ EventScript_VsSeekerChargingDone::
.include "data/scripts/repel.inc"
.include "data/scripts/safari_zone.inc"
.include "data/scripts/roulette.inc"
.include "data/scripts/pokedex_rating.inc"
.include "data/text/pokedex_rating.inc"
.include "data/text/lottery_corner.inc"
.include "data/text/event_ticket_1.inc"
@ -1148,7 +1722,6 @@ EventScript_VsSeekerChargingDone::
.include "data/text/match_call.inc"
.include "data/scripts/apprentice.inc"
.include "data/text/apprentice.inc"
.include "data/text/battle_dome.inc"
.include "data/scripts/battle_pike.inc"
.include "data/text/blend_master.inc"
.include "data/text/battle_tent.inc"

View File

@ -84,6 +84,9 @@ gFieldEffectScriptPointers::
.4byte gFieldEffectScript_UseRockClimb @ FLDEFF_USE_ROCK_CLIMB
.4byte gFieldEffectScript_RockClimbDust @ FLDEFF_ROCK_CLIMB_DUST
.4byte gFieldEffectScript_ORASDowse @ FLDEFF_ORAS_DOWSE
.4byte gFldEffScript_SmileyFaceIcon @ FLDEFF_SMILEY_FACE_ICON
.4byte gFieldEffectScript_HallOfFameRecordFrlg @ FLDEFF_HALL_OF_FAME_RECORD_FRLG
.4byte gFldEffScript_PhotoFlash @ FLDEFF_PHOTO_FLASH
gFieldEffectScript_ExclamationMarkIcon1::
field_eff_callnative FldEff_ExclamationMarkIcon
@ -385,8 +388,8 @@ gFieldEffectScript_CaveDust::
field_eff_end
gFieldEffectScript_Defog::
field_eff_callnative FldEff_Defog
field_eff_end
field_eff_callnative FldEff_Defog
field_eff_end
gFieldEffectScript_UseRockClimb:: @ 82DBC3F
field_eff_callnative FldEff_UseRockClimb
@ -400,3 +403,15 @@ gFieldEffectScript_ORASDowse::
field_eff_callnative FldEff_ORASDowsing
field_eff_end
gFldEffScript_SmileyFaceIcon::
field_eff_callnative FldEff_SmileyFaceIcon
field_eff_end
gFieldEffectScript_HallOfFameRecordFrlg::
field_eff_loadfadedpal gSpritePalette_PokeballGlow
field_eff_loadfadedpal_callnative gSpritePalette_HofMonitor_Frlg, FldEff_HallOfFameRecord
field_eff_end
gFldEffScript_PhotoFlash::
field_eff_callnative FldEff_PhotoFlash
field_eff_end

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More