Merge remote-tracking branch 'upstream' into tustin2121-patch-5

This commit is contained in:
Marcus Huderle
2020-01-13 20:26:20 -06:00
1553 changed files with 106038 additions and 112232 deletions

2
.gitignore vendored
View File

@@ -30,3 +30,5 @@ build/
.idea/
porymap.project.cfg
.vscode/
*.a
.fuse_hidden*

View File

@@ -1,5 +1,5 @@
language: generic
dist: trusty
dist: bionic
sudo: false
env:
global:

View File

@@ -64,7 +64,7 @@ my $undoc_cmd = "grep '[Uu]nknown_[0-9a-fA-F]*\\|sub_[0-9a-fA-F]*'";
# This looks for every symbol with an address at the end of it. Some things are
# given a name based on their type / location, but still have an unknown purpose.
# For example, FooMap_EventScript_FFFFFFF.
my $partial_doc_cmd = "grep '[0-9a-fA-F]\\{6,7\\}'";
my $partial_doc_cmd = "grep '_[0-28][0-9a-fA-F]\\{5,6\\}'";
my $count_cmd = "wc -l";

View File

@@ -43,6 +43,7 @@ ELF = $(ROM:.gba=.elf)
MAP = $(ROM:.gba=.map)
C_SUBDIR = src
GFLIB_SUBDIR = gflib
ASM_SUBDIR = asm
DATA_SRC_SUBDIR = src/data
DATA_ASM_SUBDIR = data
@@ -50,6 +51,7 @@ SONG_SUBDIR = sound/songs
MID_SUBDIR = sound/songs/midi
C_BUILDDIR = $(OBJ_DIR)/$(C_SUBDIR)
GFLIB_BUILDDIR = $(OBJ_DIR)/$(GFLIB_SUBDIR)
ASM_BUILDDIR = $(OBJ_DIR)/$(ASM_SUBDIR)
DATA_ASM_BUILDDIR = $(OBJ_DIR)/$(DATA_ASM_SUBDIR)
SONG_BUILDDIR = $(OBJ_DIR)/$(SONG_SUBDIR)
@@ -73,14 +75,14 @@ OBJ_DIR := build/modern
LIBPATH := -L $(TOOLCHAIN)/lib/gcc/arm-none-eabi/$(GCC_VER)/thumb -L $(TOOLCHAIN)/arm-none-eabi/lib/thumb
endif
CPPFLAGS := -iquote include -Wno-trigraphs -DMODERN=$(MODERN)
CPPFLAGS := -iquote include -iquote $(GFLIB_SUBDIR) -Wno-trigraphs -DMODERN=$(MODERN)
ifeq ($(MODERN),0)
CPPFLAGS += -I tools/agbcc/include -I tools/agbcc
endif
LDFLAGS = -Map ../../$(MAP)
LIB := $(LIBPATH) -lgcc -lc
LIB := $(LIBPATH) -lgcc -lc -L../../libagbsyscall -lagbsyscall
SHA1 := $(shell { command -v sha1sum || command -v shasum; } 2>/dev/null) -c
GFX := tools/gbagfx/gbagfx$(EXE)
@@ -109,7 +111,7 @@ MAKEFLAGS += --no-print-directory
# Secondary expansion is required for dependency variables in object rules.
.SECONDEXPANSION:
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix
.PHONY: all rom clean compare tidy tools mostlyclean clean-tools $(TOOLDIRS) berry_fix libagbsyscall
infoshell = $(foreach line, $(shell $1 | sed "s/ /__SPACE__/g"), $(info $(subst __SPACE__, ,$(line))))
@@ -125,6 +127,9 @@ C_SRCS_IN := $(wildcard $(C_SUBDIR)/*.c $(C_SUBDIR)/*/*.c $(C_SUBDIR)/*/*/*.c)
C_SRCS := $(foreach src,$(C_SRCS_IN),$(if $(findstring .inc.c,$(src)),,$(src)))
C_OBJS := $(patsubst $(C_SUBDIR)/%.c,$(C_BUILDDIR)/%.o,$(C_SRCS))
GFLIB_SRCS := $(wildcard $(GFLIB_SUBDIR)/*.c)
GFLIB_OBJS := $(patsubst $(GFLIB_SUBDIR)/%.c,$(GFLIB_BUILDDIR)/%.o,$(GFLIB_SRCS))
C_ASM_SRCS += $(wildcard $(C_SUBDIR)/*.s $(C_SUBDIR)/*/*.s $(C_SUBDIR)/*/*/*.s)
C_ASM_OBJS := $(patsubst $(C_SUBDIR)/%.s,$(C_BUILDDIR)/%.o,$(C_ASM_SRCS))
@@ -140,7 +145,7 @@ SONG_OBJS := $(patsubst $(SONG_SUBDIR)/%.s,$(SONG_BUILDDIR)/%.o,$(SONG_SRCS))
MID_SRCS := $(wildcard $(MID_SUBDIR)/*.mid)
MID_OBJS := $(patsubst $(MID_SUBDIR)/%.mid,$(MID_BUILDDIR)/%.o,$(MID_SRCS))
OBJS := $(C_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
OBJS := $(C_OBJS) $(GFLIB_OBJS) $(C_ASM_OBJS) $(ASM_OBJS) $(DATA_ASM_OBJS) $(SONG_OBJS) $(MID_OBJS)
OBJS_REL := $(patsubst $(OBJ_DIR)/%,%,$(OBJS))
SUBDIRS := $(sort $(dir $(OBJS)))
@@ -156,7 +161,7 @@ tools: $(TOOLDIRS)
$(TOOLDIRS):
@$(MAKE) -C $@ CC=$(HOSTCC) CXX=$(HOSTCXX)
rom: berry_fix $(ROM)
rom: $(ROM)
ifeq ($(COMPARE),1)
@$(SHA1) rom.sha1
endif
@@ -178,6 +183,7 @@ mostlyclean: tidy
find $(DATA_ASM_SUBDIR)/maps \( -iname 'connections.inc' -o -iname 'events.inc' -o -iname 'header.inc' \) -exec rm {} +
rm -f $(AUTO_GEN_TARGETS)
@$(MAKE) clean -C berry_fix
@$(MAKE) clean -C libagbsyscall
tidy:
rm -f $(ROM) $(ELF) $(MAP)
@@ -230,7 +236,7 @@ endif
ifeq ($(NODEP),1)
$(C_BUILDDIR)/%.o: c_dep :=
else
$(C_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(C_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include $(C_SUBDIR)/$*.c)
$(C_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(C_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(C_SUBDIR)/$*.c)
endif
ifeq ($(DINFO),1)
@@ -243,6 +249,18 @@ $(C_BUILDDIR)/%.o : $(C_SUBDIR)/%.c $$(c_dep)
@echo -e ".text\n\t.align\t2, 0\n" >> $(C_BUILDDIR)/$*.s
$(AS) $(ASFLAGS) -o $@ $(C_BUILDDIR)/$*.s
ifeq ($(NODEP),1)
$(GFLIB_BUILDDIR)/%.o: c_dep :=
else
$(GFLIB_BUILDDIR)/%.o: c_dep = $(shell [[ -f $(GFLIB_SUBDIR)/$*.c ]] && $(SCANINC) -I include -I tools/agbcc/include -I gflib $(GFLIB_SUBDIR)/$*.c)
endif
$(GFLIB_BUILDDIR)/%.o : $(GFLIB_SUBDIR)/%.c $$(c_dep)
@$(CPP) $(CPPFLAGS) $< -o $(GFLIB_BUILDDIR)/$*.i
@$(PREPROC) $(GFLIB_BUILDDIR)/$*.i charmap.txt | $(CC1) $(CFLAGS) -o $(GFLIB_BUILDDIR)/$*.s
@echo -e ".text\n\t.align\t2, 0\n" >> $(GFLIB_BUILDDIR)/$*.s
$(AS) $(ASFLAGS) -o $@ $(GFLIB_BUILDDIR)/$*.s
ifeq ($(NODEP),1)
$(C_BUILDDIR)/%.o: c_asm_dep :=
else
@@ -293,7 +311,7 @@ endif
$(OBJ_DIR)/ld_script.ld: $(LD_SCRIPT) $(LD_SCRIPT_DEPS)
cd $(OBJ_DIR) && sed "s#tools/#../../tools/#g" ../../$(LD_SCRIPT) > ld_script.ld
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS)
$(ELF): $(OBJ_DIR)/ld_script.ld $(OBJS) berry_fix libagbsyscall
cd $(OBJ_DIR) && $(LD) $(LDFLAGS) -T ld_script.ld -o ../../$@ $(OBJS_REL) $(LIB)
$(FIX) $@ -t"$(TITLE)" -c$(GAME_CODE) -m$(MAKER_CODE) -r$(REVISION) --silent
@@ -306,4 +324,7 @@ modern: ; @$(MAKE) MODERN=1
berry_fix/berry_fix.gba: berry_fix
berry_fix:
@$(MAKE) -C berry_fix COMPARE=$(COMPARE)
@$(MAKE) -C berry_fix COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
libagbsyscall:
@$(MAKE) -C libagbsyscall TOOLCHAIN=$(TOOLCHAIN)

View File

@@ -33,4 +33,4 @@ Other disassembly and/or decompilation projects:
## Contacts
You can find us on [Discord](https://discord.gg/6EuWgX9) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret).
You can find us on [Discord](https://discord.gg/d5dubZ3) and [IRC](https://kiwiirc.com/client/irc.freenode.net/?#pret).

File diff suppressed because it is too large Load Diff

View File

@@ -6,6 +6,17 @@
.include "asm/macros/ec.inc"
.include "asm/macros/map.inc"
.include "asm/macros/field_effect_script.inc"
.include "asm/macros/trainer_hill.inc"
.include "asm/macros/battle_tent.inc"
.include "asm/macros/battle_frontier/apprentice.inc"
.include "asm/macros/battle_frontier/battle_arena.inc"
.include "asm/macros/battle_frontier/battle_dome.inc"
.include "asm/macros/battle_frontier/battle_factory.inc"
.include "asm/macros/battle_frontier/battle_palace.inc"
.include "asm/macros/battle_frontier/battle_pike.inc"
.include "asm/macros/battle_frontier/battle_pyramid.inc"
.include "asm/macros/battle_frontier/battle_tower.inc"
.include "asm/macros/battle_frontier/frontier_util.inc"
.macro region_map_entry x, y, width, height, name
.byte \x

View File

@@ -0,0 +1,154 @@
@ TRUE if the player has talked to the Apprentice and answered their level mode question
.macro apprentice_gavelvlmode
setvar VAR_0x8004, APPRENTICE_FUNC_GAVE_LVLMODE
special CallApprenticeFunction
.endm
@ Set the level mode the Apprentice should battle in
.macro apprentice_setlvlmode lvlmode:req
setvar VAR_0x8004, APPRENTICE_FUNC_SET_LVLMODE
setorcopyvar VAR_0x8005, \lvlmode
addvar VAR_0x8005, 1 @ Apprentice lvl mode is +1 from regular lvl mode value
special CallApprenticeFunction
.endm
@ Question was answered, increment the number of questions answered
.macro apprentice_answeredquestion
setvar VAR_0x8004, APPRENTICE_FUNC_ANSWERED_QUESTION
special CallApprenticeFunction
.endm
@ Show the response selection box to answer the Apprentice question. Menus are defined as APPRENTICE_ASK_*
.macro apprentice_menu which:req
setvar VAR_0x8004, APPRENTICE_FUNC_MENU
setvar VAR_0x8005, \which
special CallApprenticeFunction
waitstate
.endm
@ Shuffle and set the Apprentice party mons to pick between from their list of possible party species
.macro apprentice_shufflespecies
setvar VAR_0x8004, APPRENTICE_FUNC_SHUFFLE_SPECIES
special CallApprenticeFunction
.endm
@ Randomize the question data (e.g. moves to pick between) and shuffle the order to ask them in
.macro apprentice_randomizequestions
setvar VAR_0x8004, APPRENTICE_FUNC_RANDOMIZE_QUESTIONS
special CallApprenticeFunction
.endm
@ Print the APPRENTICE_MSG_* text for the current Apprentice
.macro apprentice_msg waitbuttonpress:req, which:req
setvar VAR_0x8004, APPRENTICE_FUNC_PRINT_MSG
setvar VAR_0x8005, \waitbuttonpress
setvar VAR_0x8006, \which
special CallApprenticeFunction
waitstate
.endm
@ Clear the data for the current Player Apprentice
.macro apprentice_reset
setvar VAR_0x8004, APPRENTICE_FUNC_RESET
special CallApprenticeFunction
.endm
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
.macro apprentice_shouldcheckgone
setvar VAR_0x8004, APPRENTICE_FUNC_CHECK_GONE
special CallApprenticeFunction
.endm
@ Return the APPRENTICE_QUESTION_* value for the current question to ask
.macro apprentice_getquestion
setvar VAR_0x8004, APPRENTICE_FUNC_GET_QUESTION
special CallApprenticeFunction
.endm
@ Get the number of mons that have been chosen for the Apprentice's party so far
.macro apprentice_getnumpartymons
setvar VAR_0x8004, APPRENTICE_FUNC_GET_NUM_PARTY_MONS
special CallApprenticeFunction
.endm
@ Set the Apprentice party mon at the given slot. VAR_0x8005 is used implicitly as which of the 2 mons was selected
.macro apprentice_setpartymon slot:req
copyvar VAR_0x8006, \slot
setvar VAR_0x8004, APPRENTICE_FUNC_SET_PARTY_MON
special CallApprenticeFunction
.endm
@ Allocate and set up data to track about the question
.macro apprentice_initquestion which:req
setvar VAR_0x8004, APPRENTICE_FUNC_INIT_QUESTION_DATA
setvar VAR_0x8005, \which
special CallApprenticeFunction
.endm
@ Free allocated question data
.macro apprentice_freequestion
setvar VAR_0x8004, APPRENTICE_FUNC_FREE_QUESTION_DATA
special CallApprenticeFunction
.endm
@ Buffer some APPRENTICE_BUFF_* string to the given stringvar (0 for STR_VAR_1, 1 for STR_VAR_2, 2 for STR_VAR_3)
.macro apprentice_buff stringvar:req, tobuff:req
setvar VAR_0x8004, APPRENTICE_FUNC_BUFFER_STRING
setvar VAR_0x8005, \stringvar
.if \tobuff >= VARS_START
copyvar VAR_0x8006, \tobuff
.else
setvar VAR_0x8006, \tobuff
.endif
special CallApprenticeFunction
.endm
@ Set which move to use that the player chose (implicitly VAR_0x8005)
.macro apprentice_setmove
setvar VAR_0x8004, APPRENTICE_FUNC_SET_MOVE
special CallApprenticeFunction
.endm
@ Set which mon the Apprentice should lead with
.macro apprentice_setleadmon monId:req
copyvar VAR_0x8005, \monId
setvar VAR_0x8004, APPRENTICE_FUNC_SET_LEAD_MON
special CallApprenticeFunction
.endm
@ Open the Bag Menu for the player to choose an item to recommend as a held item
.macro apprentice_openbag
setvar VAR_0x8004, APPRENTICE_FUNC_OPEN_BAG
special CallApprenticeFunction
waitstate
.endm
@ Try and set the recommended held item. FALSE if the item has been recommended before, as Battle Frontier forbids using the same held item for multiple party mons
.macro apprentice_trysetitem
setvar VAR_0x8004, APPRENTICE_FUNC_TRY_SET_HELD_ITEM
special CallApprenticeFunction
.endm
@ Save the current Player Apprentice to the saveblock to make room for a new Apprentice
.macro apprentice_save
setvar VAR_0x8004, APPRENTICE_FUNC_SAVE
special CallApprenticeFunction
.endm
@ Set the object event gfx for the Apprentice based on their trainer class
.macro apprentice_setgfx
setvar VAR_0x8004, APPRENTICE_FUNC_SET_GFX
special CallApprenticeFunction
.endm
@ Always returns TRUE. No side effect. May have been for debug or dummied for some other reason
.macro apprentice_shouldleave
setvar VAR_0x8004, APPRENTICE_FUNC_SHOULD_LEAVE
special CallApprenticeFunction
.endm
@ Shift the other saved Apprentices over to make room for saving a new Apprentice
.macro apprentice_shiftsaved
setvar VAR_0x8004, APPRENTICE_FUNC_SHIFT_SAVED
special CallApprenticeFunction
.endm

View File

@@ -0,0 +1,49 @@
@ Initialize the Battle Arena challenge
.macro arena_init
setvar VAR_0x8004, BATTLE_ARENA_FUNC_INIT
special CallBattleArenaFunction
.endm
@ Unused. Get the value of some ARENA_DATA_*. See GetArenaData for the data types that can be retrieved
.macro arena_get data:req
setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattleArenaFunction
.endm
@ Set some ARENA_DATA_* to val. See SetArenaData for the data types that can be set
.macro arena_set data:req, val:req
setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val >= VARS_START
copyvar VAR_0x8006, \val
.else
setvar VAR_0x8006, \val
.endif
special CallBattleArenaFunction
.endm
@ Save the game and set the challenge status
.macro arena_save challengeStatus:req
setvar VAR_0x8004, BATTLE_ARENA_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattleArenaFunction
.endm
@ Unused. Set the prize item to give from one of two lists of possible prizes, depending on streak.
.macro arena_setprize
setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_PRIZE
special CallBattleArenaFunction
.endm
@ Unused. Give the set prize item to the player. TRUE if room in Bag for prize, FALSE otherwise
.macro arena_giveprize
setvar VAR_0x8004, BATTLE_ARENA_FUNC_GIVE_PRIZE
special CallBattleArenaFunction
.endm
@ Buffer the opponents name to STR_VAR_1
.macro arena_gettrainername
setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_TRAINER_NAME
special CallBattleArenaFunction
.endm

View File

@@ -0,0 +1,144 @@
@ Initialize the Battle Dome challenge
.macro dome_init
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT
special CallBattleDomeFunction
.endm
@ Get the value of some DOME_DATA_*. See GetDomeData for the data types that can be retrieved
.macro dome_get data:req
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattleDomeFunction
.endm
@ Set some DOME_DATA_* to val. See SetDomeData for the data types that can be set
.macro dome_set data:req, val=0xFFFF
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val != 0xFFFF
setvar VAR_0x8006, \val
.endif
special CallBattleDomeFunction
.endm
@ Buffer the name of the current round to gStringVar1
.macro dome_getroundtext
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT
special CallBattleDomeFunction
.endm
@ Buffer the name of the opponent to gStringVar2 and the name of the round to gStringVar1
.macro dome_getopponentname
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME
special CallBattleDomeFunction
.endm
@ Choose which of the opponents mons to use in battle and load them into the enemy party
.macro dome_initopponentparty
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY
special CallBattleDomeFunction
.endm
@ Show the page that gives information on the next opponent
.macro dome_showopponentinfo
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO
special CallBattleDomeFunction
.endm
@ Displays the tourney tree for the current tourney
.macro dome_showtourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@ Displays the tourney tree for the results of the previous tourney. Before the player enters their first tourney this is a random tourney generated by dome_initresultstree
.macro dome_showprevtourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@ Sets gTrainerBattleOpponent_A to the trainer ID of the next opponent
.macro dome_setopponent
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID
special CallBattleDomeFunction
.endm
@ Set the object event gfx id for the opponent
.macro dome_setopponentgfx
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX
special CallBattleDomeFunction
.endm
@ A non-interactive version of the tourney tree shown when a round is completed
.macro dome_showstatictourneytree
setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE
special CallBattleDomeFunction
.endm
@ Decides the winners of NPC vs NPC matches, and eliminates either the player or their opponent depending on the playerStatus (DOME_PLAYER_*)
.macro dome_resolvewinners playerStatus:req
setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS
setvar VAR_0x8005, \playerStatus
special CallBattleDomeFunction
.endm
@ Save the game and set the challenge status
.macro dome_save challengeStatus:req
setvar VAR_0x8004, BATTLE_DOME_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattleDomeFunction
.endm
@ Unused. Increment the win streaks for the current challenge by one
.macro dome_incrementstreaks
setvar VAR_0x8004, BATTLE_DOME_FUNC_INCREMENT_STREAK
special CallBattleDomeFunction
.endm
@ Sets the facility trainer/mon set pointers
.macro dome_settrainers
setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_TRAINERS
special CallBattleDomeFunction
.endm
@ If any moves were copied using Sketch during the challenge then restore them to Sketch
.macro dome_resetsketch
setvar VAR_0x8004, BATTLE_DOME_FUNC_RESET_SKETCH
special CallBattleDomeFunction
.endm
@ Reset the held items of the mons that just battled to what they were prior to battling
.macro dome_restorehelditems
setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS
special CallBattleDomeFunction
.endm
@ Reduce the players party to the selected mons, used to reduce down to the 2 selected for battle
.macro dome_reduceparty
setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY
special CallBattleDomeFunction
.endm
@ Compares the initial tournament ranking (seed) of the player to opponent A. Returns 1 if the player's seed is better, 2 if the opponent's seed is better.
.macro dome_compareseeds
setvar VAR_0x8004, BATTLE_DOME_FUNC_COMPARE_SEEDS
special CallBattleDomeFunction
.endm
@ Buffer the name of the winner for the last Dome challenge to STR_VAR_1
.macro dome_getwinnersname
setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_WINNER_NAME
special CallBattleDomeFunction
.endm
@ Performs a random tourney to initialize the results board before the player has entered a challenge
.macro dome_initresultstree
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_RESULTS_TREE
special CallBattleDomeFunction
.endm
@ Generates the tourney trainers and their parties, and seeds them in the tourney tree
.macro dome_inittrainers
setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS
special CallBattleDomeFunction
.endm

View File

@@ -0,0 +1,101 @@
@ Initialize the Battle Factory challenge
.macro factory_init
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_INIT
special CallBattleFactoryFunction
.endm
@ Get the value of some FACTORY_DATA_*. See GetBattleFactoryData for the data types that can be retrieved
.macro factory_get data:req
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattleFactoryFunction
.endm
@ Set some FACTORY_DATA_* to val. See SetBattleFactoryData for the data types that can be set
.macro factory_set data:req, val=0xFFFF
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val == 0xFFFF
@ argument not provided
.elseif \val >= VARS_START
copyvar VAR_0x8006, \val
.else
setvar VAR_0x8006, \val
.endif
special CallBattleFactoryFunction
.endm
@ Save the game and set the challenge status
.macro factory_save challengeStatus:req
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattleFactoryFunction
.endm
@ Select the initial rental mons for the challenge
.macro factory_rentmons
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SELECT_RENT_MONS
special CallBattleFactoryFunction
.endm
@ Select a mon to swap for from the previously defeated team
.macro factory_swapmons
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SWAP_RENT_MONS
special CallBattleFactoryFunction
.endm
@ Allows FACTORY_DATA_WIN_STREAK_SWAPS to be incremented once
.macro factory_setswapped
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_SWAPPED
special CallBattleFactoryFunction
.endm
@ Update gEnemyParty with the next set of rental mons
.macro factory_setopponentmons
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS
special CallBattleFactoryFunction
.endm
@ Populate gPlayerParty and gEnemyParty with the rental mons. Only needed when resuming a challenge, otherwise only factory_setopponentmons and factory_rentmons/factory_swapmons are needed
.macro factory_setparties arg:req
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_PARTIES
setvar VAR_0x8005, \arg
special CallBattleFactoryFunction
.endm
@ Set the object event gfx for the opponent trainer
.macro factory_setopponentgfx
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX
special CallBattleFactoryFunction
.endm
@ Generate the mons for the opponents team
.macro factory_generateopponentmons
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS
special CallBattleFactoryFunction
.endm
@ Generate the random 6 mons to choose from for the initial rental
.macro factory_generaterentalmons
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS
special CallBattleFactoryFunction
.endm
@ Return the pokemon type most common in the opponents team, or NUMBER_OF_MON_TYPES if there is no standout type
.macro factory_getopponentmontype
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE
special CallBattleFactoryFunction
.endm
@ Return the FACTORY_STYLE_* dependent on what types of moves the opponents team has, or FACTORY_NUM_STYLES if multiple styles tie for the same amount of moves
.macro factory_getopponentstyle
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE
special CallBattleFactoryFunction
.endm
@ Restore the held items for the players party to what they were pre-battle
.macro factory_resethelditems
setvar VAR_0x8004, BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS
special CallBattleFactoryFunction
.endm

View File

@@ -0,0 +1,63 @@
@ Initialize the Battle Palace challenge
.macro palace_init
setvar VAR_0x8004, BATTLE_PALACE_FUNC_INIT
special CallBattlePalaceFunction
.endm
@ Get the value of some PALACE_DATA_*. See GetPalaceData for the data types that can be retrieved
.macro palace_get data:req
setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattlePalaceFunction
.endm
@ Set some PALACE_DATA_* to val. See SetPalaceData for the data types that can be set
.macro palace_set data:req, val:req
setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_DATA
setvar VAR_0x8005, \data
setvar VAR_0x8006, \val
special CallBattlePalaceFunction
.endm
@ Get the id of the comment to be made while being led through the corridor
.macro palace_getcomment
setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_COMMENT_ID
special CallBattlePalaceFunction
.endm
@ Unused. Choose and set the opponent gfx id. The equivalent macro from Battle Tower is used instead
.macro palace_setopponent
setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_OPPONENT
special CallBattlePalaceFunction
.endm
@ Buffer the opponents intro speech to gStringVar4. Also used by Battle Arena and Factory
.macro palace_getopponentintro
setvar VAR_0x8004, BATTLE_PALACE_FUNC_GET_OPPONENT_INTRO
special CallBattlePalaceFunction
.endm
@ Increments the current win streak by 1
.macro palace_incrementstreak
setvar VAR_0x8004, BATTLE_PALACE_FUNC_INCREMENT_STREAK
special CallBattlePalaceFunction
.endm
@ Save the game and set the challenge status
.macro palace_save challengeStatus:req
setvar VAR_0x8004, BATTLE_PALACE_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattlePalaceFunction
.endm
@ Unused. Set the prize item to give from one of two lists of possible prizes, depending on streak.
.macro palace_setprize
setvar VAR_0x8004, BATTLE_PALACE_FUNC_SET_PRIZE
special CallBattleArenaFunction
.endm
@ Unused. Give the set prize item to the player. TRUE if room in Bag for prize, FALSE otherwise
.macro palace_giveprize
setvar VAR_0x8004, BATTLE_PALACE_FUNC_GIVE_PRIZE
special CallBattleArenaFunction
.endm

View File

@@ -0,0 +1,171 @@
@ Set sRoomType to the next PIKE_ROOM_* id
.macro pike_setnextroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE
special CallBattlePikeFunction
.endm
@ Get the value of some PIKE_DATA_*. See GetBattlePikeData for the data types that can be retrieved
.macro pike_get data:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattlePikeFunction
.endm
@ Set some PIKE_DATA_* to val. See SetBattlePikeData for the data types that can be set
.macro pike_set data:req, val:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val >= VARS_START
copyvar VAR_0x8006, \val
.else
setvar VAR_0x8006, \val
.endif
special CallBattlePikeFunction
.endm
@ TRUE if the next room is the last (15th) room, FALSE otherwise
.macro pike_isfinalroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM
special CallBattlePikeFunction
.endm
@ Set the object event gfx for the room being entered
.macro pike_setroomobjects
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS
special CallBattlePikeFunction
.endm
@ Get the current room type (sRoomType)
.macro pike_getroomtype
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE
special CallBattlePikeFunction
.endm
@ Sets a bool that's never read
.macro pike_inwildmonroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_IN_WILD_MON_ROOM
special CallBattlePikeFunction
.endm
@ Clears a bool that's never read
.macro pike_exitwildmonroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_IN_WILD_MON_ROOM
special CallBattlePikeFunction
.endm
@ Save the game and set the challenge status
.macro pike_save challengeStatus:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattlePikeFunction
.endm
@ Returns the PIKE_STATUS_* to be afflicted for the status room
.macro pike_getstatus
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS
special CallBattlePikeFunction
.endm
@ Returns the PIKE_STATUSMON_* that attacks the player for the status room
.macro pike_getstatusmon
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON
special CallBattlePikeFunction
.endm
@ Randomly heals either one or two party mons and returns the number of mons healed
.macro pike_healonetwomons
setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS
special CallBattlePikeFunction
.endm
@ Buffers a message for the lone NPC in the NPC room to gStringVar4
.macro pike_getnpcmsg
setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG
special CallBattlePikeFunction
.endm
@ Flashes the screen 3 times for when the Dusclops/Kirlia attacks the player
.macro pike_flashscreen
setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FLASH
special CallBattlePikeFunction
.endm
@ TRUE if the player is currently in a Battle Pike challenge map
.macro pike_inchallenge
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_IN
special CallBattlePikeFunction
.endm
@ Set which room to give a hint about. TRUE if its the Pike Queens room next
.macro pike_sethintroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HINT_ROOM
special CallBattlePikeFunction
.endm
@ Get PIKE_ROOM_(LEFT/CENTER/RIGHT) for which room to give a hint about
.macro pike_gethintroomid
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID
special CallBattlePikeFunction
.endm
@ Get the PIKE_HINT_* to give about the next room
.macro pike_gethint
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE_HINT
special CallBattlePikeFunction
.endm
@ Reset the frontier trainer ids for the start of the challenge
.macro pike_cleartrainerids
setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS
special CallBattlePikeFunction
.endm
@ Buffer the opponents battle intro speech to gStringVar4. \trainer 0 for Trainer A, 1 for Trainer B
.macro pike_gettrainerintro trainer:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_TRAINER_INTRO
setvar VAR_0x8005, \trainer
special CallBattlePikeFunction
.endm
@ Get the status of the Pike Queen (Not ready, Silver/Gold streak before symbols, Silver/Gold streak after symbols)
.macro pike_getbrainstatus
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_QUEEN_FIGHT_TYPE
special CallBattlePikeFunction
.endm
@ Heal 0-2 party mons depending on which room was chosen for the Pike Queen battle. Return the number healed
.macro pike_prequeenheal
setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN
special CallBattlePikeFunction
.endm
@ When \set is TRUE, prevent healing rooms from appearing (for 1st room or when party is full health). \set FALSE to re-enable healing rooms
.macro pike_nohealing set:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEAL_ROOMS_DISABLED
setvar VAR_0x8005, \set
special CallBattlePikeFunction
.endm
@ TRUE if the party is full health (full HP, PP, and no status), FALSE otherwise
.macro pike_ispartyfullhealth
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH
special CallBattlePikeFunction
.endm
@ Save the party held items in pikeHeldItemsBackup
.macro pike_savehelditems
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS
special CallBattlePikeFunction
.endm
@ Restore the party held items from pikeHeldItemsBackup
.macro pike_resethelditems
setvar VAR_0x8004, BATTLE_PIKE_FUNC_RESET_HELD_ITEMS
special CallBattlePikeFunction
.endm
@ Initialize the Battle Pike challenge
.macro pike_init
setvar VAR_0x8004, BATTLE_PIKE_FUNC_INIT
special CallBattlePikeFunction
.endm

View File

@@ -0,0 +1,104 @@
@ Initialize the Battle Pyramid challenge
.macro pyramid_init
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT
special CallBattlePyramidFunction
.endm
@ Get the value of some PYRAMID_DATA_*. See GetBattlePyramidData for the data types that can be retrieved
.macro pyramid_get data:req
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattlePyramidFunction
.endm
@ Set some PYRAMID_DATA_* to val. See SetBattlePyramidData for the data types that can be set
.macro pyramid_set data:req, val:req
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_DATA
setvar VAR_0x8005, \data
setvar VAR_0x8006, \val
special CallBattlePyramidFunction
.endm
@ Save the game and set the challenge status
.macro pyramid_save challengeStatus:req
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattlePyramidFunction
.endm
@ Set the prize item to give from one of two lists of possible prizes, depending on streak.
.macro pyramid_setprize
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_PRIZE
special CallBattlePyramidFunction
.endm
@ Unused. Give the set prize item to the player. TRUE if room in Bag for prize, FALSE otherwise
.macro pyramid_giveprize
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_GIVE_PRIZE
special CallBattlePyramidFunction
.endm
@ Set the random values for the floor (used to determine object positions, e.g.), and clear trainer flags
.macro pyramid_seedfloor
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR
special CallBattlePyramidFunction
.endm
@ Set the item to pick up depending on the random seed and quantity (always 1) to the arguments for STD_FIND_ITEM
.macro pyramid_setitem
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_ITEM
special CallBattlePyramidFunction
.endm
@ Hide the picked-up item (technically it moves the item far offscreen)
.macro pyramid_hideitem
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_HIDE_ITEM
special CallBattlePyramidFunction
.endm
@ Set the facility trainers to gBattleFrontierTrainers
.macro pyramid_settrainers
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_TRAINERS
special CallBattlePyramidFunction
.endm
@ Show the post-battle hint text
.macro pyramid_showhint
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SHOW_HINT_TEXT
special CallBattlePyramidFunction
.endm
@ VAR_RESULT is 1 if player is on a Pyramid floor, 2 if on the Pyramid peak, 0 otherwise
.macro pyramid_inchallenge
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_IS_IN
special CallBattlePyramidFunction
.endm
@ Update the light around the player. 2 different modes, for setting or incrementing light. See PYRAMID_LIGHT_*
.macro pyramid_updatelight radius:req, mode:req, sound=0xFFFF
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_UPDATE_LIGHT
setvar VAR_0x8005, \radius
setvar VAR_0x8006, \mode
.if \sound != 0xFFFF
setvar VAR_0x8007, \sound
.endif
special CallBattlePyramidFunction
.endm
@ Reset the held items to what they were at the start of the challenge
.macro pyramid_clearhelditems
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS
special CallBattlePyramidFunction
.endm
@ Set the palette depending on current floor number
.macro pyramid_setfloorpal
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE
special CallBattlePyramidFunction
.endm
@ Reset sketched moves and update the party order in the saveblock
.macro pyramid_resetparty
setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY
special CallBattlePyramidFunction
.endm

View File

@@ -0,0 +1,91 @@
@ Initialize the Battle Tower challenge
.macro tower_init
setvar VAR_0x8004, BATTLE_TOWER_FUNC_INIT
special CallBattleTowerFunc
.endm
@ Get the value of some TOWER_DATA_*. See GetTowerData for the data types that can be retrieved
.macro tower_get data:req
setvar VAR_0x8004, BATTLE_TOWER_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallBattleTowerFunc
.endm
@ Set some TOWER_DATA_* to val. See SetTowerData for the data types that can be set
.macro tower_set data:req, val=0xFFFF
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val != 0xFFFF
setvar VAR_0x8006, \val
.endif
special CallBattleTowerFunc
.endm
@ Choose and set the gfx for the next opponent. Also used by Battle Tents
.macro tower_setopponent
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_OPPONENT
special CallBattleTowerFunc
.endm
@ Increments the battle number and returns the new one. Also clears E-Reader trainer if defeated, and saves the current win streak
.macro tower_setbattlewon
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_BATTLE_WON
special CallBattleTowerFunc
.endm
@ Try to award ribbons for completing 56th straight Battle Tower win. VAR_RESULT is TRUE if ribbons were awarded.
.macro tower_giveribbons
setvar VAR_0x8004, BATTLE_TOWER_FUNC_GIVE_RIBBONS
special CallBattleTowerFunc
.endm
@ Save the game and set the challenge status
.macro tower_save challengeStatus:req
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallBattleTowerFunc
.endm
@ Buffer the opponent's easy chat intro speech to STR_VAR_4
.macro tower_getopponentintro opponent:req
setvar VAR_0x8004, BATTLE_TOWER_FUNC_GET_OPPONENT_INTRO
setvar VAR_0x8005, \opponent
special CallBattleTowerFunc
.endm
@ Load the parties, gfx, and other data (like Apprentice id) for the multi partner candidates
.macro tower_loadpartners
setvar VAR_0x8004, BATTLE_TOWER_FUNC_LOAD_PARTNERS
special CallBattleTowerFunc
.endm
@ Print message from potential multi partner. msgId is any PARTNER_MSGID_*
.macro tower_dopartnermsg msgId:req
setvar VAR_0x8004, BATTLE_TOWER_FUNC_PARTNER_MSG
setvar VAR_0x8005, \msgId
special CallBattleTowerFunc
.endm
@ Receives/loads the opponent data for a link multi challenge. Returns 6 when finished, and finishes immediately if not doing a link multi battle.
.macro tower_loadlinkopponents
setvar VAR_0x8004, BATTLE_TOWER_FUNC_LOAD_LINK_OPPONENTS
special CallBattleTowerFunc
.endm
@ Unknown. Destroys some link task if using wireless link. Wait for link?
.macro tower_unklink
setvar VAR_0x8004, BATTLE_TOWER_FUNC_13
special CallBattleTowerFunc
.endm
@ Set VAR_OBJ_GFX_ID_E to the gfx id of the selected multi partner
.macro tower_setpartnergfx
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_PARTNER_GFX
special CallBattleTowerFunc
.endm
@ Set the data used for the post-challenge Battle Tower interview
.macro tower_setinterviewdata
setvar VAR_0x8004, BATTLE_TOWER_FUNC_SET_INTERVIEW_DATA
special CallBattleTowerFunc
.endm

View File

@@ -0,0 +1,153 @@
@ Get the status (CHALLENGE_STATUS_*) of the current challenge and store the result in VAR_TEMP_0
.macro frontier_getstatus
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_STATUS
special CallFrontierUtilFunc
.endm
@ Get the value of some FRONTIER_DATA_*. See GetFrontierData for the data types that can be retrieved
.macro frontier_get data:req
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_DATA
setvar VAR_0x8005, \data
special CallFrontierUtilFunc
.endm
@ Set the value of some FRONTIER_DATA_*. Some data types do not need a val argument because the value is set directly from somewhere else. See SetFrontierData for the data types that can be set
.macro frontier_set data:req, val=0xFFFF
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_DATA
setvar VAR_0x8005, \data
.if \val == 0xFFFF
@ no value provided
.elseif \val >= VARS_START
copyvar VAR_0x8006, \val
.else
setvar VAR_0x8006, \val
.endif
special CallFrontierUtilFunc
.endm
@ Load the selected mons into gSelectedOrderFromParty and reduce the players party to these mons
.macro frontier_setpartyorder partySize:req
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_PARTY_ORDER
setvar VAR_0x8005, \partySize
special CallFrontierUtilFunc
.endm
@ Performs a soft reset
.macro frontier_reset
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SOFT_RESET
special CallFrontierUtilFunc
.endm
@ Loads gBattleFrontierTrainers into gFacilityTrainers
.macro frontier_settrainers
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_TRAINERS
special CallFrontierUtilFunc
.endm
@ Sets the selected party mons in the saveblock
.macro frontier_saveparty
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_PARTY
special CallFrontierUtilFunc
.endm
@ Shows the results window for the given facility and mode. Facilities with only 1 mode dont provide the mode argument
.macro frontier_results facility:req, mode=0xFF
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESULTS_WINDOW
setvar VAR_0x8005, \facility
.if \mode != 0xFF
setvar VAR_0x8006, \mode
.endif
special CallFrontierUtilFunc
.endm
@ Checks if the Battle Frontier TV special should air, and if so attempts to set it up
.macro frontier_checkairshow
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_AIR_TV_SHOW
special CallFrontierUtilFunc
.endm
@ Get the status of the Frontier Brain (Not ready, Silver/Gold streak before symbols, Silver/Gold streak after symbols)
.macro frontier_getbrainstatus
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_BRAIN_STATUS
special CallFrontierUtilFunc
.endm
@ TRUE if the opponent is a Frontier Brain, FALSE otherwise
.macro frontier_isbrain
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_IS_BRAIN
special CallFrontierUtilFunc
.endm
@ Awards battle points depending on the current challenge
.macro frontier_givepoints
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_BATTLE_POINTS
special CallFrontierUtilFunc
.endm
@ Returns 0-2 for the number of facility symbols the player has
.macro frontier_getsymbols
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GET_FACILITY_SYMBOLS
special CallFrontierUtilFunc
.endm
@ Awards a frontier symbol depending on the current challenge
.macro frontier_givesymbol
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_GIVE_FACILITY_SYMBOL
special CallFrontierUtilFunc
.endm
@ TRUE if the given battleType is set in gBattleTypeFlags, FALSE otherwise
.macro frontier_isbattletype battleType:req
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_BATTLE_TYPE
setvar VAR_0x8005, \battleType
special CallFrontierUtilFunc
.endm
@ TRUE if there are insufficient eligible party mons to participate in the challenge, and buffers caught ineligible species to STR_VAR_1. FALSE otherwise. The return value is stored in VAR_0x8004 instead, and the current level mode is expected to be in VAR_RESULT
.macro frontier_checkineligible
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_INELIGIBLE
special CallFrontierUtilFunc
.endm
@ Validates the visiting E-Reader trainer. 0 if valid, 1 if not
.macro frontier_checkvisittrainer
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_CHECK_VISIT_TRAINER
special CallFrontierUtilFunc
.endm
@ Increments the current win streak by 1
.macro frontier_incrementstreak
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_INCREMENT_STREAK
special CallFrontierUtilFunc
.endm
@ Resets the party held items to what they were upon entering the challenge
.macro frontier_restorehelditems
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESTORE_HELD_ITEMS
special CallFrontierUtilFunc
.endm
@ Move the recorded battle to save data
.macro frontier_savebattle
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SAVE_BATTLE
special CallFrontierUtilFunc
.endm
@ Buffer the name of gTrainerBattleOpponent_A in STR_VAR_1 (0) or STR_VAR_2 (1)
.macro frontier_gettrainername stringVar:req
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_BUFFER_TRAINER_NAME
setvar VAR_0x8005, \stringVar
special CallFrontierUtilFunc
.endm
@ If any moves were copied using Sketch during the challenge then restore them to Sketch
.macro frontier_resetsketch
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_RESET_SKETCH_MOVES
special CallFrontierUtilFunc
.endm
@ Set the object event gfx of the Frontier Brain for the current facility
.macro frontier_setbrainobj
setvar VAR_0x8004, FRONTIER_UTIL_FUNC_SET_BRAIN_OBJECT
special CallFrontierUtilFunc
.endm

View File

@@ -391,11 +391,11 @@
.byte 0x47
.endm
.macro playstatchangeanimation battler:req, param1:req, param2:req
.macro playstatchangeanimation battler:req, stats:req, statchange:req
.byte 0x48
.byte \battler
.byte \param1
.byte \param2
.byte \stats
.byte \statchange
.endm
.macro moveend param0:req, param1:req
@@ -738,10 +738,10 @@
.byte 0x88
.endm
.macro statbuffchange param0:req, param1:req
.macro statbuffchange flags:req, jumpptr:req
.byte 0x89
.byte \param0
.4byte \param1
.byte \flags
.4byte \jumpptr
.endm
.macro normalisebuffs
@@ -1267,7 +1267,7 @@
various \battler, 4
.endm
.macro resetintrimidatetracebits battler:req
.macro resetintimidatetracebits battler:req
various \battler, VARIOUS_RESET_INTIMIDATE_TRACE_BITS
.endm

167
asm/macros/battle_tent.inc Normal file
View File

@@ -0,0 +1,167 @@
@ Verdanturf Tent
@ Initialize the Verdanturf Battle Tent challenge
.macro verdanturftent_init
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_INIT
special CallVerdanturfTentFunction
.endm
@ Get the current prize item id
.macro verdanturftent_getprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_PRIZE
special CallVerdanturfTentFunction
.endm
@ Unused. Set the prize item to be given
.macro verdanturftent_setprize unusedArg:req, itemId:req
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_PRIZE
setvar VAR_0x8005, \unusedArg
setvar VAR_0x8006, \itemId
special CallVerdanturfTentFunction
.endm
@ Unused. Set the opponent trainer and gfx. SetNextBattleTentOpponent is used through tower_setopponent instead
.macro verdanturftent_setopponentgfx
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_OPPONENT_GFX
special CallVerdanturfTentFunction
.endm
@ Buffers the opponents intro speech to STR_VAR_4. Despite being a Verdanturf Tent function, it serves the same purpose for all 3 tents.
.macro battletent_getopponentintro
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GET_OPPONENT_INTRO
special CallVerdanturfTentFunction
.endm
@ Save the game and set the challenge status
.macro verdanturftent_save challengeStatus:req
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallVerdanturfTentFunction
.endm
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
.macro verdanturftent_setrandomprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_SET_RANDOM_PRIZE
special CallVerdanturfTentFunction
.endm
@ Give the current prize item. FALSE if no room for prize
.macro verdanturftent_giveprize
setvar VAR_0x8004, VERDANTURF_TENT_FUNC_GIVE_PRIZE
special CallVerdanturfTentFunction
.endm
@ Fallarbor Tent
@ Initialize the Fallarbor Battle Tent challenge
.macro fallarbortent_init
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_INIT
special CallFallarborTentFunction
.endm
@ Get the current prize item id
.macro fallarbortent_getprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_PRIZE
special CallFallarborTentFunction
.endm
@ Unused. Set the prize item to be given
.macro fallarbortent_setprize unusedArg:req, itemId:req
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_PRIZE
setvar VAR_0x8005, \unusedArg
setvar VAR_0x8006, \itemId
special CallFallarborTentFunction
.endm
@ Save the game and set the challenge status
.macro fallarbortent_save challengeStatus:req
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallFallarborTentFunction
.endm
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
.macro fallarbortent_setrandomprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_SET_RANDOM_PRIZE
special CallFallarborTentFunction
.endm
@ Give the current prize item. FALSE if no room for prize
.macro fallarbortent_giveprize
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GIVE_PRIZE
special CallFallarborTentFunction
.endm
@ Buffer the opponent trainers name to STR_VAR_1
.macro fallarbortent_getopponentname
setvar VAR_0x8004, FALLARBOR_TENT_FUNC_GET_OPPONENT_NAME
special CallFallarborTentFunction
.endm
@ Slateport Tent
@ Initialize the Slateport Battle Tent challenge
.macro slateporttent_init
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_INIT
special CallSlateportTentFunction
.endm
@ Get the current prize item id
.macro slateporttent_getprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GET_PRIZE
special CallSlateportTentFunction
.endm
@ Unused. Set the prize item to be given
.macro slateporttent_setprize unusedArg:req, itemId:req
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_PRIZE
setvar VAR_0x8005, \unusedArg
setvar VAR_0x8006, \itemId
special CallSlateportTentFunction
.endm
@ Save the game and set the challenge status
.macro slateporttent_save challengeStatus:req
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SAVE
setvar VAR_0x8005, \challengeStatus
special CallSlateportTentFunction
.endm
@ Set the prize item as randomly selected from a list. Randomness unnecessary, as the list is only 1 item
.macro slateporttent_setrandomprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SET_RANDOM_PRIZE
special CallSlateportTentFunction
.endm
@ Give the current prize item. FALSE if no room for prize
.macro slateporttent_giveprize
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GIVE_PRIZE
special CallSlateportTentFunction
.endm
@ Slateport Tent's version of factory_rentmons
.macro slateporttent_rentmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SELECT_RENT_MONS
special CallSlateportTentFunction
.endm
@ Slateport Tent's version of factory_swapmons
.macro slateporttent_swapmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_SWAP_RENT_MONS
special CallSlateportTentFunction
.endm
@ Slateport Tent's version of factory_generateopponentmons
.macro slateporttent_generateopponentmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_OPPONENT_MONS
special CallSlateportTentFunction
.endm
@ Slateport Tent's version of factory_generaterentalmons
.macro slateporttent_generaterentalmons
setvar VAR_0x8004, SLATEPORT_TENT_FUNC_GENERATE_RENTAL_MONS
special CallSlateportTentFunction
.endm

View File

@@ -233,14 +233,12 @@
.endm
@ Generic compare macro which attempts to deduce argument types based on their values
@ Any values between 0x4000 to 0x4FFF and 0x8000 to 0x8FFF are considered event variable identifiers
.macro compare arg1:req, arg2:req
.if ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && ((\arg2 >> 12) == 4 || (\arg2 >> 12) == 8)
compare_var_to_var \arg1, \arg2
.elseif ((\arg1 >> 12) == 4 || (\arg1 >> 12) == 8) && (\arg2 >= 0 && \arg2 <= 0xFFFF)
compare_var_to_value \arg1, \arg2
@ Any values between 0x4000 to 0x40FF and 0x8000 to 0x8015 are considered event variable identifiers
.macro compare var:req, arg:req
.if ((\arg >= VARS_START && \arg <= VARS_END) || (\arg >= SPECIAL_VARS_START && \arg <= SPECIAL_VARS_END))
compare_var_to_var \var, \arg
.else
.error "Invalid arguments for 'compare'"
compare_var_to_value \var, \arg
.endif
.endm
@@ -465,47 +463,47 @@
.2byte \Y
.endm
@ Retrieves the number of Pokemon in the player's party, and stores that number in variable 0x800D (LASTRESULT).
@ Retrieves the number of Pokemon in the player's party, and stores that number in VAR_RESULT.
.macro getpartysize
.byte 0x43
.endm
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and variable 0x800D (LASTRESULT) will be set to 0x0001; otherwise, LASTRESULT is set to 0x0000.
.macro giveitem index:req, quantity:req
@ Attempts to add quantity of item index to the player's Bag. If the player has enough room, the item will be added and VAR_RESULT will be set to TRUE; otherwise, VAR_RESULT is set to FALSE.
.macro additem index:req, quantity=1
.byte 0x44
.2byte \index
.2byte \quantity
.endm
@ Removes quantity of item index from the player's Bag.
.macro takeitem index:req, quantity:req
.macro removeitem index:req, quantity=1
.byte 0x45
.2byte \index
.2byte \quantity
.endm
@ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room.
@ Checks if the player has enough space in their Bag to hold quantity more of item index. Sets VAR_RESULT to TRUE if there is room, or FALSE is there is no room.
.macro checkitemspace index:req, quantity:req
.byte 0x46
.2byte \index
.2byte \quantity
.endm
@ Checks if the player has quantity or more of item index in their Bag. Sets variable 0x800D (LASTRESULT) to 0x0001 if the player has enough of the item, or 0x0000 if they have fewer than quantity of the item.
@ Checks if the player has quantity or more of item index in their Bag. Sets VAR_RESULT to TRUE if the player has enough of the item, or FALSE if they have fewer than quantity of the item.
.macro checkitem index:req, quantity:req
.byte 0x47
.2byte \index
.2byte \quantity
.endm
@ Checks which Bag pocket the specified (index) item belongs in, and writes the value to variable 0x800D (LASTRESULT). This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE).
@ Checks which Bag pocket the specified item belongs in, and writes the pocket value (POCKET_*) to VAR_RESULT. This script is used to show the name of the proper Bag pocket when the player receives an item via callstd (simplified to giveitem in XSE).
.macro checkitemtype index:req
.byte 0x48
.2byte \index
.endm
@ Adds a quantity amount of item index to the player's PC. Both arguments can be variables.
.macro givepcitem index:req, quantity:req
.macro addpcitem index:req, quantity:req
.byte 0x49
.2byte \index
.2byte \quantity
@@ -519,13 +517,13 @@
.endm
@ Adds decoration to the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
.macro givedecoration decoration:req
.macro adddecoration decoration:req
.byte 0x4b
.2byte \decoration
.endm
@ Removes a decoration from the player's PC. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
.macro takedecoration decoration:req
.macro removedecoration decoration:req
.byte 0x4c
.2byte \decoration
.endm
@@ -536,7 +534,7 @@
.2byte \decoration
.endm
@ Checks if the player has enough space in their PC to hold decoration. Sets variable 0x800D (LASTRESULT) to 0x0001 if there is room, or 0x0000 is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
@ Checks if the player has enough space in their PC to hold decoration. Sets VAR_RESULT to TRUE if there is room, or FALSE is there is no room. In FireRed, this command is a nop. (The argument is read, but not used for anything.)
.macro checkdecorspace decoration:req
.byte 0x4e
.2byte \decoration
@@ -677,7 +675,7 @@
.elseif \type == TRAINER_BATTLE_SET_TRAINER_B
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.elseif \type == TRAINER_BATTLE_12
.elseif \type == TRAINER_BATTLE_HILL
.4byte \pointer1 @ text
.4byte \pointer2 @ text
.endif
@@ -818,14 +816,14 @@
.byte 0x6d
.endm
@ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in variable 0x800D (LASTRESULT); 0x0000 for "NO" or if the user pressed B, and 0x0001 for "YES".
@ Displays a YES/NO multichoice box at the specified coordinates, and blocks script execution until the user makes a selection. Their selection is stored in VAR_RESULT as NO (0) or YES (1). Pressing B is equivalent to answering NO
.macro yesnobox x:req, y:req
.byte 0x6e
.byte \x
.byte \y
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
.macro multichoice x:req, y:req, list:req, b:req
.byte 0x6f
.byte \x
@@ -834,7 +832,7 @@
.byte \b
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. The default argument determines the initial position of the cursor when the box is first opened; it is zero-indexed, and if it is too large, it is treated as 0x00. If b is set to a non-zero value, then the user will not be allowed to back out of the multichoice with the B button.
.macro multichoicedefault x:req, y:req, list:req, default:req, b:req
.byte 0x70
.byte \x
@@ -844,7 +842,7 @@
.byte \b
.endm
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (gMultichoiceLists) and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
@ Displays a multichoice box from which the user can choose a selection, and blocks script execution until a selection is made. Lists of options are predefined (sMultichoiceLists) and the one to be used is specified with list. The per_row argument determines how many list items will be shown on a single row of the box.
.macro multichoicegrid x:req, y:req, list:req, per_row:req, B:req
.byte 0x71
.byte \x
@@ -878,20 +876,20 @@
.endm
@ Displays a box containing the front sprite for the specified (species) Pokemon species.
.macro drawmonpic species:req, x:req, y:req
.macro showmonpic species:req, x:req, y:req
.byte 0x75
.2byte \species
.byte \x
.byte \y
.endm
@ Hides all boxes displayed with drawmonpic.
.macro erasemonpic
@ Hides all boxes displayed with showmonpic.
.macro hidemonpic
.byte 0x76
.endm
@ Draws an image of the winner of the contest. In FireRed, this command is a nop. (The argument is discarded.)
.macro drawcontestwinner a:req
.macro showcontestwinner a:req
.byte 0x77
.byte \a
.endm
@@ -902,15 +900,15 @@
.4byte \text
.endm
@ Gives the player one of the specified (species) Pokemon at level level holding item. The unknown arguments should all be zeroes.
.macro givemon species:req, level:req, item:req, unknown1:req, unknown2:req, unknown3:req
@ Gives the player one of the specified (species) Pokemon at level level holding item. The trailing 0s are unused parameters
.macro givemon species:req, level:req, item:req
.byte 0x79
.2byte \species
.byte \level
.2byte \item
.4byte \unknown1
.4byte \unknown2
.byte \unknown3
.4byte 0x0
.4byte 0x0
.byte 0
.endm
.macro giveegg species:req
@@ -925,7 +923,7 @@
.2byte \move
.endm
@ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, variable 0x800D (LASTRESULT) is set to the (zero-indexed) slot number of the first Pokemon that knows the move. If not, LASTRESULT is set to 0x0006. Variable 0x8004 is also set to this Pokemon's species.
@ Checks if at least one Pokemon in the player's party knows the specified (index) attack. If so, VAR_RESULT is set to the (zero-indexed) slot number of the first Pokemon that knows the move. If not, VAR_RESULT is set to PARTY_SIZE. VAR_0x8004 is also set to this Pokemon's species.
.macro checkpartymove index:req
.byte 0x7c
.2byte \index
@@ -1045,27 +1043,27 @@
.byte 0x8e
.endm
@ Stores a random integer between 0 and limit in variable 0x800D (LASTRESULT).
@ Stores a random integer between 0 and limit in VAR_RESULT.
.macro random limit:req
.byte 0x8f
.2byte \limit
.endm
@ If check is 0x00, this command adds value to the player's money.
.macro givemoney value:req, check:req
.macro addmoney value:req, check:req
.byte 0x90
.4byte \value
.byte \check
.endm
@ If check is 0x00, this command subtracts value from the player's money.
.macro takemoney value:req, check:req
.macro removemoney value:req, check:req
.byte 0x91
.4byte \value
.byte \check
.endm
@ If check is 0x00, this command will check if the player has value or more money; script variable 0x800D (LASTRESULT) is set to 0x0001 if the player has enough money, or 0x0000 if the do not.
@ If check is 0x00, this command will check if the player has money >= value; VAR_RESULT is set to TRUE if the player has enough money, or FALSE if they do not.
.macro checkmoney value:req, check:req
.byte 0x92
.4byte \value
@@ -1080,9 +1078,11 @@
.byte \check
.endm
@ Hides the secondary box spawned by showmoney.
@ Hides the secondary box spawned by showmoney. Consumption of the x and y arguments was dummied out.
.macro hidemoneybox
.byte 0x94
.byte 0 @ \x
.byte 0 @ \y
.endm
@ Updates the secondary box spawned by showmoney. Consumes but does not use arguments.
@@ -1099,16 +1099,16 @@
.2byte \index
.endm
@ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white.
.macro fadescreen effect:req
@ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK)
.macro fadescreen mode:req
.byte 0x97
.byte \effect
.byte \mode
.endm
@ Fades the screen to and from black and white. Mode 0x00 fades from black, mode 0x01 fades out to black, mode 0x2 fades in from white, and mode 0x3 fades out to white. Other modes may exist.
.macro fadescreenspeed effect:req, speed:req
@ Fades the screen to and from black and white. Modes are FADE_(TO/FROM)_(WHITE/BLACK)
.macro fadescreenspeed mode:req, speed:req
.byte 0x98
.byte \effect
.byte \mode
.byte \speed
.endm
@@ -1152,7 +1152,7 @@
.2byte \heallocation
.endm
@ Checks the player's gender. If male, then 0x0000 is stored in variable 0x800D (LASTRESULT). If female, then 0x0001 is stored in LASTRESULT.
@ Checks the player's gender. If male, then MALE (0) is stored in VAR_RESULT. If female, then FEMALE (1) is stored in VAR_RESULT.
.macro checkplayergender
.byte 0xa0
.endm
@@ -1281,12 +1281,12 @@
.2byte \out
.endm
.macro givecoins count:req
.macro addcoins count:req
.byte 0xb4
.2byte \count
.endm
.macro takecoins count:req
.macro removecoins count:req
.byte 0xb5
.2byte \count
.endm
@@ -1435,7 +1435,7 @@
.2byte \slot
.endm
@ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, 0x0001 is written to script variable 0x800D (LASTRESULT). If the Pokemon is obedient (or if the specified slot is empty or invalid), 0x0000 is written.
@ Checks if the Pokemon in the specified slot of the player's party is obedient. If the Pokemon is disobedient, VAR_RESULT is TRUE. If the Pokemon is obedient (or if the specified slot is empty or invalid), VAR_RESULT is FALSE.
.macro checkmonobedience slot:req
.byte 0xce
.2byte \slot
@@ -1468,31 +1468,34 @@
.byte \location
.endm
.macro mossdeepgym1 unknown:req
@ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Moves the objects on the colored puzzle specified by puzzleNumber one rotation
.macro moverotatingtileobjects puzzleNumber:req
.byte 0xd3
.2byte \unknown
.2byte \puzzleNumber
.endm
.macro mossdeepgym2
@ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Updates the facing direction of all objects on the puzzle tiles
.macro turnrotatingtileobjects
.byte 0xd4
.endm
@ In FireRed, this command is a nop.
.macro mossdeepgym3 var:req
@ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Allocates memory for the puzzle objects. isTrickHouse is needed to determine which of the two maps the puzzle is on, in order to know where in the tileset the puzzle tiles start. In FireRed, this command is a nop.
.macro initrotatingtilepuzzle isTrickHouse:req
.byte 0xd5
.2byte \var
.2byte \isTrickHouse
.endm
.macro mossdeepgym4
@ For the rotating tile puzzles in Mossdeep Gym/Trick House Room 7. Frees the memory allocated for the puzzle objects.
.macro freerotatingtilepuzzle
.byte 0xd6
.endm
.macro warp7 map:req, byte:req, word1:req, word2:req
.macro warpmossdeepgym map:req, warpId:req, x:req, y:req
.byte 0xd7
map \map
.byte \byte
.2byte \word1
.2byte \word2
.byte \warpId
.2byte \x
.2byte \y
.endm
.macro cmdD8
@@ -1503,7 +1506,7 @@
.byte 0xd9
.endm
.macro hidebox2
.macro closebraillemessage
.byte 0xda
.endm
@@ -1512,9 +1515,9 @@
.4byte \pointer
.endm
.macro fadescreenswapbuffers byte:req
.macro fadescreenswapbuffers mode:req
.byte 0xdc
.byte \byte
.byte \mode
.endm
.macro buffertrainerclassname out:req, class:req
@@ -1534,7 +1537,7 @@
.4byte \pointer
.endm
.macro warp8 map:req, byte:req, word1:req, word2:req
.macro warpsootopolislegend map:req, byte:req, word1:req, word2:req
.byte 0xe0
map \map
.byte \byte
@@ -1561,12 +1564,12 @@
.macro goto_if_unset flag:req, dest:req
checkflag \flag
goto_if 0, \dest
goto_if FALSE, \dest
.endm
.macro goto_if_set flag:req, dest:req
checkflag \flag
goto_if 1, \dest
goto_if TRUE, \dest
.endm
.macro goto_if_lt dest:req @ LESS THAN
@@ -1595,12 +1598,12 @@
.macro call_if_unset flag:req, dest:req
checkflag \flag
call_if 0, \dest
call_if FALSE, \dest
.endm
.macro call_if_set flag:req, dest:req
checkflag \flag
call_if 1, \dest
call_if TRUE, \dest
.endm
.macro call_if_lt dest:req @ LESS THAN
@@ -1627,6 +1630,44 @@
call_if 5, \dest
.endm
.macro vgoto_if_eq dest:req
vgoto_if TRUE, \dest
.endm
.macro vgoto_if_ne dest:req
vgoto_if FALSE, \dest
.endm
.macro vgoto_if_unset flag:req, dest:req
checkflag \flag
vgoto_if FALSE, \dest
.endm
.macro vgoto_if_set flag:req, dest:req
checkflag \flag
vgoto_if TRUE, \dest
.endm
.macro goto_if_defeated trainer:req, dest:req
checktrainerflag \trainer
goto_if TRUE, \dest
.endm
.macro goto_if_not_defeated trainer:req, dest:req
checktrainerflag \trainer
goto_if FALSE, \dest
.endm
.macro call_if_defeated trainer:req, dest:req
checktrainerflag \trainer
call_if TRUE, \dest
.endm
.macro call_if_not_defeated trainer:req, dest:req
checktrainerflag \trainer
call_if FALSE, \dest
.endm
.macro switch var:req
copyvar VAR_0x8000, \var
.endm
@@ -1642,6 +1683,7 @@
MSGBOX_DEFAULT = 4
MSGBOX_YESNO = 5
MSGBOX_AUTOCLOSE = 6
MSGBOX_GETPOINTS = 9
YES = 1
NO = 0
@@ -1651,13 +1693,19 @@
callstd \type
.endm
.macro giveitem_std item:req, amount=1, function=0
.macro giveitem item:req, amount=1
setorcopyvar VAR_0x8000, \item
setorcopyvar VAR_0x8001, \amount
callstd \function
callstd STD_OBTAIN_ITEM
.endm
.macro givedecoration_std decoration:req
.macro finditem item:req, amount=1
setorcopyvar VAR_0x8000, \item
setorcopyvar VAR_0x8001, \amount
callstd STD_FIND_ITEM
.endm
.macro givedecoration decoration:req
setorcopyvar VAR_0x8000, \decoration
callstd STD_OBTAIN_DECORATION
.endm
@@ -1668,3 +1716,10 @@
setorcopyvar VAR_0x8000, \trainer
callstd STD_REGISTER_MATCH_CALL
.endm
.macro dofieldeffectsparkle x:req, y:req, priority:req
setfieldeffectargument 0, \x
setfieldeffectargument 1, \y
setfieldeffectargument 2, \priority
dofieldeffect FLDEFF_SPARKLE
.endm

View File

@@ -102,8 +102,8 @@
create_movement_action clear_fixed_priority
create_movement_action init_affine_anim
create_movement_action clear_affine_anim
create_movement_action unknown_movement_1
create_movement_action unknown_movement_2
create_movement_action hide_reflection
create_movement_action show_reflection
create_movement_action walk_down_start_affine
create_movement_action walk_down_affine

108
asm/macros/trainer_hill.inc Normal file
View File

@@ -0,0 +1,108 @@
@ Initialize the Trainer Hill challenge and start the timer
.macro trainerhill_start
setvar VAR_0x8004, TRAINER_HILL_FUNC_START
special CallTrainerHillFunction
.endm
@ 0 if not spoken to yet, 1 if spoken to but not received prize, 2 if received prize
.macro trainerhill_getownerstate
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_OWNER_STATE
special CallTrainerHillFunction
.endm
@ Try to give prize. 0 if given successfully, 1 if no room for prize, 2 if giving prize should be skipped
.macro trainerhill_giveprize
setvar VAR_0x8004, TRAINER_HILL_FUNC_GIVE_PRIZE
special CallTrainerHillFunction
.endm
@ Check the final challenge time. 0 if new record, 1 if not, 2 if time has already been checked
.macro trainerhill_finaltime
setvar VAR_0x8004, TRAINER_HILL_FUNC_CHECK_FINAL_TIME
special CallTrainerHillFunction
.endm
@ Resume the timer. Wont resume if owner has been spoken to or max time has been reached
.macro trainerhill_resumetimer
setvar VAR_0x8004, TRAINER_HILL_FUNC_RESUME_TIMER
special CallTrainerHillFunction
.endm
@ Set player lost the challenge (trainerHill.hasLost) to TRUE
.macro trainerhill_lost
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_LOST
special CallTrainerHillFunction
.endm
@ Get the current challenge status (TRAINER_HILL_PLAYER_STATUS_*)
.macro trainerhill_getstatus
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_STATUS
special CallTrainerHillFunction
.endm
@ Buffer the current timer to string vars (mins to STR_VAR_1, secs to STR_VAR_2, fraction of sec to STR_VAR_3)
.macro trainerhill_gettime
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_CHALLENGE_TIME
special CallTrainerHillFunction
.endm
@ FALSE if fewer than all 4 floors used, TRUE otherwise. Only FALSE in JP-exclusive modes
.macro trainerhill_allfloorsused
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_ALL_FLOORS_USED
special CallTrainerHillFunction
.endm
@ Unknown, dummied. Only side effect is setting VAR_RESULT to 0.
.macro trainerhill_clearresult
setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_RESULT
special CallTrainerHillFunction
.endm
@ TRUE if currently in a Trainer Hill challenge
.macro trainerhill_inchallenge
setvar VAR_0x8004, TRAINER_HILL_FUNC_IN_CHALLENGE
special CallTrainerHillFunction
.endm
@ Show the post battle text for the spoken to Trainer Hill trainer
.macro trainerhill_postbattletext
setvar VAR_0x8004, TRAINER_HILL_FUNC_POST_BATTLE_TEXT
special CallTrainerHillFunction
.endm
@ Set all Trainer Hill trainers defeated
.macro trainerhill_settrainerflags
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_ALL_TRAINER_FLAGS
special CallTrainerHillFunction
.endm
@ TRUE if the game has been saved for the challenge, FALSE otherwise
.macro trainerhill_getsaved
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_GAME_SAVED
special CallTrainerHillFunction
.endm
@ Set that the game has been saved for the challenge
.macro trainerhill_setsaved
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_GAME_SAVED
special CallTrainerHillFunction
.endm
@ Clear that the game has been saved for the challenge
.macro trainerhill_clearsaved
setvar VAR_0x8004, TRAINER_HILL_FUNC_CLEAR_GAME_SAVED
special CallTrainerHillFunction
.endm
@ FALSE if the Trainer Hill challenge was lost, TRUE otherwise
.macro trainerhill_getwon
setvar VAR_0x8004, TRAINER_HILL_FUNC_GET_WON
special CallTrainerHillFunction
.endm
@ Set the challenge mode to HILL_TAG_* (Normal, Variety, Unique, or Expert)
.macro trainerhill_settag tag:req
setvar VAR_0x8004, TRAINER_HILL_FUNC_SET_TAG
copyvar VAR_0x8005, \tag
special CallTrainerHillFunction
.endm

View File

@@ -1,7 +1,29 @@
include $(DEVKITARM)/base_tools
TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH)
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
COMPARE ?= 0
ifeq ($(OS),Windows_NT)
EXE := .exe
@@ -144,7 +166,7 @@ $(DATA_ASM_BUILDDIR)/%.o: data_dep = $(shell $(SCANINC) $(DATA_ASM_SUBDIR)/$*.s)
endif
payload:
@$(MAKE) -C payload COMPARE=$(COMPARE)
@$(MAKE) -C payload COMPARE=$(COMPARE) TOOLCHAIN=$(TOOLCHAIN)
payload/payload.gba: payload

View File

@@ -1,7 +1,29 @@
include $(DEVKITARM)/base_tools
TOOLCHAIN := $(DEVKITARM)
COMPARE ?= 0
ifeq ($(CC),)
HOSTCC := gcc
else
HOSTCC := $(CC)
endif
ifeq ($(CXX),)
HOSTCXX := g++
else
HOSTCXX := $(CXX)
endif
ifneq (,$(wildcard $(TOOLCHAIN)/base_tools))
include $(TOOLCHAIN)/base_tools
else
export PATH := $(TOOLCHAIN)/bin:$(PATH)
PREFIX := arm-none-eabi-
OBJCOPY := $(PREFIX)objcopy
export CC := $(PREFIX)gcc
export AS := $(PREFIX)as
endif
export CPP := $(PREFIX)cpp
export LD := $(PREFIX)ld
COMPARE ?= 0
ifeq ($(OS),Windows_NT)
EXE := .exe

View File

@@ -1,3 +1,3 @@
gUnknown_030062EC
gUnknown_030062F0
gUnknown_030062F4
gApprenticePartyMovesData
gApprenticeQuestionData
gApprenticeFunc

View File

@@ -1,4 +1,4 @@
gUnknown_03006190
gUnknown_030061A0
gUnknown_030061C0
gContestMonPixels
gImageProcessingContext
gContestPaintingWinner
gContestPaintingMonPalette

View File

@@ -1,10 +0,0 @@
gUnknown_03006164
gUnknown_03006168
gUnknown_0300616C
gUnknown_03006170
gUnknown_03006174
gUnknown_03006178
gUnknown_0300617C
gUnknown_03006180
gUnknown_03006184
gUnknown_03006188

View File

@@ -1 +1 @@
gUnknown_030061D0
gScrollableMultichoice_ListMenuTemplate

View File

@@ -0,0 +1,10 @@
gCanvasColumnStart
gCanvasPixels
gCanvasRowEnd
gCanvasHeight
gCanvasColumnEnd
gCanvasRowStart
gCanvasMonPersonality
gCanvasWidth
gCanvasPalette
gCanvasPaletteStart

View File

@@ -1 +1 @@
gUnknown_03006328
gItemUseCB

View File

@@ -10,4 +10,4 @@ gSaveFileStatus
gGameContinueCallback
gRamSaveSectionLocations
gSaveUnusedVar2
gUnknown_03006294
gSaveAttemptStatus

View File

@@ -1,5 +1,5 @@
gUnknown_03006080
gUnknown_03006084
gWhichTrainerToFaceAfterBattle
gPostBattleMovementScript
gApproachingTrainers
gNoOfApproachingTrainers
gUnknown_030060AC
gTrainerApproachedPlayer

View File

@@ -1,6 +0,0 @@
.set BERRY_FIRMNESS_UNKNOWN, 0
.set BERRY_FIRMNESS_VERY_SOFT, 1
.set BERRY_FIRMNESS_SOFT, 2
.set BERRY_FIRMNESS_HARD, 3
.set BERRY_FIRMNESS_VERY_HARD, 4
.set BERRY_FIRMNESS_SUPER_HARD, 5

View File

@@ -1,6 +1,4 @@
.include "constants/gba_constants.inc"
.include "constants/global.inc"
.include "constants/contest_constants.inc"
.include "constants/pokemon_data_constants.inc"
.include "constants/berry_constants.inc"
.include "constants/contest_move_effects.inc"

View File

@@ -488,3 +488,26 @@
.set OAM_SIZE_8x32, OAM_SIZE_1 | OAM_V_RECTANGLE
.set OAM_SIZE_16x32, OAM_SIZE_2 | OAM_V_RECTANGLE
.set OAM_SIZE_32x64, OAM_SIZE_3 | OAM_V_RECTANGLE
@ BLDCNT
.set BLDCNT_TGT1_BG0, 1 << 0
.set BLDCNT_TGT1_BG1, 1 << 1
.set BLDCNT_TGT1_BG2, 1 << 2
.set BLDCNT_TGT1_BG3, 1 << 3
.set BLDCNT_TGT1_OBJ, 1 << 4
.set BLDCNT_TGT1_BD, 1 << 5
.set BLDCNT_TGT1_ALL, BLDCNT_TGT1_BG0 | BLDCNT_TGT1_BG1 | BLDCNT_TGT1_BG2 | BLDCNT_TGT1_BG3 | BLDCNT_TGT1_OBJ | BLDCNT_TGT1_BD
.set BLDCNT_EFFECT_NONE, 0 << 6
.set BLDCNT_EFFECT_BLEND, 1 << 6
.set BLDCNT_EFFECT_LIGHTEN, 2 << 6
.set BLDCNT_EFFECT_DARKEN, 3 << 6
.set BLDCNT_TGT2_BG0, 1 << 8
.set BLDCNT_TGT2_BG1, 1 << 9
.set BLDCNT_TGT2_BG2, 1 << 10
.set BLDCNT_TGT2_BG3, 1 << 11
.set BLDCNT_TGT2_OBJ, 1 << 12
.set BLDCNT_TGT2_BD, 1 << 13
.set BLDCNT_TGT2_ALL, BLDCNT_TGT2_BG0 | BLDCNT_TGT2_BG1 | BLDCNT_TGT2_BG2 | BLDCNT_TGT2_BG3 | BLDCNT_TGT2_OBJ | BLDCNT_TGT2_BD

View File

@@ -1,35 +0,0 @@
.set GROWTH_MEDIUM_FAST, 0x00
.set GROWTH_ERRATIC, 0x01
.set GROWTH_FLUCTUATING, 0x02
.set GROWTH_MEDIUM_SLOW, 0x03
.set GROWTH_FAST, 0x04
.set GROWTH_SLOW, 0x05
.set BODY_COLOR_RED, 0x00
.set BODY_COLOR_BLUE, 0x01
.set BODY_COLOR_YELLOW, 0x02
.set BODY_COLOR_GREEN, 0x03
.set BODY_COLOR_BLACK, 0x04
.set BODY_COLOR_BROWN, 0x05
.set BODY_COLOR_PURPLE, 0x06
.set BODY_COLOR_GRAY, 0x07
.set BODY_COLOR_WHITE, 0x08
.set BODY_COLOR_PINK, 0x09
.set F_SUMMARY_SCREEN_FLIP_SPRITE, 0x80
.set EVO_FRIENDSHIP, 0x0001 @ Pokémon levels up with friendship 220
.set EVO_FRIENDSHIP_DAY, 0x0002 @ Pokémon levels up during the day with friendship 220
.set EVO_FRIENDSHIP_NIGHT, 0x0003 @ Pokémon levels up at night with friendship 220
.set EVO_LEVEL, 0x0004 @ Pokémon reaches the specified level
.set EVO_TRADE, 0x0005 @ Pokémon is traded
.set EVO_TRADE_ITEM, 0x0006 @ Pokémon is traded while it's holding the specified item
.set EVO_ITEM, 0x0007 @ specified item is used on Pokémon
.set EVO_LEVEL_ATK_GT_DEF, 0x0008 @ Pokémon reaches the specified level with attack > defense
.set EVO_LEVEL_ATK_EQ_DEF, 0x0009 @ Pokémon reaches the specified level with attack = defense
.set EVO_LEVEL_ATK_LT_DEF, 0x000a @ Pokémon reaches the specified level with attack < defense
.set EVO_LEVEL_SILCOON, 0x000b @ Pokémon reaches the specified level with a Silcoon personality value
.set EVO_LEVEL_CASCOON, 0x000c @ Pokémon reaches the specified level with a Cascoon personality value
.set EVO_LEVEL_NINJASK, 0x000d @ Pokémon reaches the specified level (special value for Ninjask)
.set EVO_LEVEL_SHEDINJA, 0x000e @ Pokémon reaches the specified level (special value for Shedinja)
.set EVO_BEAUTY, 0x000f @ Pokémon levels up with beauty specified value

View File

@@ -2395,10 +2395,10 @@ AI_CV_Hail_ScoreDown1:
AI_CV_Hail_End:
end
@ BUG: Facade score is increased if the target is statused, but should be if the user is. Replace AI_TARGET with AI_USER
AI_CV_Facade:
if_not_status AI_TARGET, STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON, AI_CV_Facade_End
score +1
AI_CV_Facade_End:
end

File diff suppressed because it is too large Load Diff

View File

@@ -366,7 +366,7 @@ BattleScript_EffectAbsorb::
setbyte cMULTISTRING_CHOOSER, 0x0
goto BattleScript_AbsorbUpdateHp
BattleScript_AbsorbLiquidOoze::
manipulatedamage ATK80_DMG_CHANGE_SIGN
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, 0x1
BattleScript_AbsorbUpdateHp::
healthbarupdate BS_ATTACKER
@@ -422,7 +422,7 @@ BattleScript_ExplosionLoop:
resultmessage
waitmessage 0x40
tryfaintmon BS_TARGET, FALSE, NULL
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_ExplosionLoop
tryfaintmon BS_ATTACKER, FALSE, NULL
end
@@ -430,7 +430,7 @@ BattleScript_ExplosionMissed:
effectivenesssound
resultmessage
waitmessage 0x40
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_ExplosionLoop
tryfaintmon BS_ATTACKER, FALSE, NULL
end
@@ -511,7 +511,7 @@ BattleScript_EffectStatUp::
BattleScript_EffectStatUpAfterAtkCanceler::
attackstring
ppreduce
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_StatUpEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_StatUpEnd
jumpifbyte CMP_NOT_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpAttackAnim
pause 0x20
goto BattleScript_StatUpPrintString
@@ -557,7 +557,7 @@ BattleScript_EffectStatDown::
accuracycheck BattleScript_PrintMoveMissed, ACC_CURR_MOVE
attackstring
ppreduce
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_StatDownEnd
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_StatDownEnd
jumpifbyte CMP_LESS_THAN, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatDownDoAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x3, BattleScript_StatDownEnd
pause 0x20
@@ -654,7 +654,7 @@ BattleScript_DoMultiHit::
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
addbyte sMULTIHIT_STRING + 4, 0x1
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_MultiHitPrintStrings
decrementmultihit BattleScript_MultiHitLoop
goto BattleScript_MultiHitPrintStrings
@@ -670,8 +670,8 @@ BattleScript_MultiHitPrintStrings::
BattleScript_MultiHitEnd::
seteffectwithchance
tryfaintmon BS_TARGET, FALSE, NULL
moveendcase ATK49_SYNCHRONIZE_TARGET
moveendfrom ATK49_STATUS_IMMUNITY_ABILITIES
moveendcase MOVEEND_SYNCHRONIZE_TARGET
moveendfrom MOVEEND_IMMUNITY_ABILITIES
end
BattleScript_EffectConversion::
@@ -882,7 +882,7 @@ BattleScript_MoveMissedDoDamage::
damagecalc
typecalc
adjustnormaldamage
manipulatedamage ATK80_DMG_HALF_BY_TWO_NOT_MORE_THAN_HALF_MAX_HP
manipulatedamage DMG_RECOIL_FROM_MISS
bicbyte gMoveResultFlags, MOVE_RESULT_MISSED
orword gHitMarker, HITMARKER_IGNORE_SUBSTITUTE
healthbarupdate BS_ATTACKER
@@ -1435,7 +1435,7 @@ BattleScript_DoTripleKickAttack::
waitmessage 0x40
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifbyte CMP_COMMON_BITS, gMoveResultFlags, MOVE_RESULT_FOE_ENDURED, BattleScript_TripleKickPrintStrings
decrementmultihit BattleScript_TripleKickLoop
goto BattleScript_TripleKickPrintStrings
@@ -1454,7 +1454,7 @@ BattleScript_TripleKickPrintStrings::
BattleScript_TripleKickEnd::
seteffectwithchance
tryfaintmon BS_TARGET, FALSE, NULL
moveendfrom ATK49_UPDATE_LAST_MOVES
moveendfrom MOVEEND_UPDATE_LAST_MOVES
end
BattleScript_EffectThief::
@@ -1513,17 +1513,17 @@ BattleScript_CurseTrySpeed::
attackanimation
waitanimation
setstatchanger STAT_SPEED, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CurseTryAttack
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryAttack
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_CurseTryAttack::
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CurseTryDefence
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseTryDefence
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CurseTryDefence::
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CurseEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CurseEnd
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CurseEnd::
@@ -1635,7 +1635,7 @@ BattleScript_EffectSwagger::
attackanimation
waitanimation
setstatchanger STAT_ATK, 2, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_SwaggerTryConfuse
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_SwaggerTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SwaggerTryConfuse
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1716,7 +1716,7 @@ BattleScript_EffectBatonPass::
attackstring
ppreduce
jumpifbattletype BATTLE_TYPE_ARENA, BattleScript_ButItFailed
jumpifcantswitch ATK4F_DONT_CHECK_STATUSES | BS_ATTACKER, BattleScript_ButItFailed
jumpifcantswitch SWITCH_IGNORE_ESCAPE_PREVENTION | BS_ATTACKER, BattleScript_ButItFailed
attackanimation
waitanimation
openpartyscreen 0x1, BattleScript_ButItFailed
@@ -1834,7 +1834,7 @@ BattleScript_EffectSkullBash::
setbyte sTWOTURN_STRINGID, 0x2
call BattleScriptFirstChargingTurn
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_SkullBashEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_SkullBashEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SkullBashEnd
setgraphicalstatchangevalues
playanimation BS_ATTACKER, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -1885,7 +1885,7 @@ BattleScript_DoHitAllWithUndergroundBonus::
printstring STRINGID_EMPTYSTRING3
waitmessage 0x1
tryfaintmon BS_TARGET, FALSE, NULL
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
BattleScript_HitAllWithUndergroundBonusMissed::
@@ -1894,7 +1894,7 @@ BattleScript_HitAllWithUndergroundBonusMissed::
effectivenesssound
resultmessage
waitmessage 0x40
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
jumpifnexttargetvalid BattleScript_HitsAllWithUndergroundBonusLoop
end
@@ -1970,7 +1970,7 @@ BattleScript_BeatUpLoop::
printstring STRINGID_PKMNATTACK
critcalc
jumpifbyte CMP_NOT_EQUAL, gCritMultiplier, 0x2, BattleScript_BeatUpAttack
manipulatedamage ATK80_DMG_DOUBLED
manipulatedamage DMG_DOUBLED
BattleScript_BeatUpAttack::
adjustnormaldamage
attackanimation
@@ -1985,7 +1985,7 @@ BattleScript_BeatUpAttack::
resultmessage
waitmessage 0x40
tryfaintmon BS_TARGET, FALSE, NULL
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
goto BattleScript_BeatUpLoop
BattleScript_BeatUpEnd::
end
@@ -2037,7 +2037,7 @@ BattleScript_EffectDefenseCurl::
ppreduce
setdefensecurlbit
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_DefenseCurlDoStatUpAnim
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DefenseCurlDoStatUpAnim
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_StatUpPrintString
attackanimation
waitanimation
@@ -2178,7 +2178,7 @@ BattleScript_EffectFlatter::
attackanimation
waitanimation
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_FlatterTryConfuse
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_FlatterTryConfuse
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_FlatterTryConfuse
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -2232,17 +2232,17 @@ BattleScript_EffectMemento::
waitanimation
jumpifstatus2 BS_TARGET, STATUS2_SUBSTITUTE, BattleScript_EffectMementoPrintNoEffect
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO | ATK48_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_ATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectMementoTrySpAtk
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTrySpAtk
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTrySpAtk
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_EffectMementoTrySpAtk:
playstatchangeanimation BS_TARGET, BIT_SPATK, ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
playstatchangeanimation BS_TARGET, BIT_SPATK, STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_EffectMementoTryFaint
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_EffectMementoTryFaint
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_EffectMementoTryFaint
printfromtable gStatDownStringIds
waitmessage 0x40
@@ -2606,7 +2606,7 @@ BattleScript_TeeterDanceLoop::
resultmessage
waitmessage 0x40
BattleScript_TeeterDanceDoMoveEndIncrement::
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
BattleScript_TeeterDanceLoopIncrement::
addbyte gBattlerTarget, 0x1
jumpifbytenotequal gBattlerTarget, gBattlersCount, BattleScript_TeeterDanceLoop
@@ -2677,17 +2677,17 @@ BattleScript_TickleDoMoveAnim::
attackanimation
waitanimation
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
playstatchangeanimation BS_TARGET, BIT_ATK, ATK48_STAT_NEGATIVE
playstatchangeanimation BS_TARGET, BIT_ATK | BIT_DEF, STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_TARGET, BIT_ATK, STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleTryLowerDef
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleTryLowerDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleTryLowerDef
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_TickleTryLowerDef::
playstatchangeanimation BS_TARGET, BIT_DEF, ATK48_STAT_NEGATIVE
playstatchangeanimation BS_TARGET, BIT_DEF, STAT_CHANGE_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE
statbuffchange STAT_CHANGE_BS_PTR, BattleScript_TickleEnd
statbuffchange STAT_BUFF_ALLOW_PTR, BattleScript_TickleEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_TickleEnd
printfromtable gStatDownStringIds
waitmessage 0x40
@@ -2713,13 +2713,13 @@ BattleScript_CosmicPowerDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_SPDEF, 0x0
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CosmicPowerTrySpDef
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CosmicPowerTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CosmicPowerEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CosmicPowerEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CosmicPowerEnd
printfromtable gStatUpStringIds
waitmessage 0x40
@@ -2742,13 +2742,13 @@ BattleScript_BulkUpDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF, 0x0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_BulkUpTryDef
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpTryDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpTryDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_BulkUpTryDef::
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_BulkUpEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_BulkUpEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_BulkUpEnd
printfromtable gStatUpStringIds
waitmessage 0x40
@@ -2767,13 +2767,13 @@ BattleScript_CalmMindDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK | BIT_SPDEF, 0x0
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CalmMindTrySpDef
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindTrySpDef
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindTrySpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_CalmMindTrySpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_CalmMindEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_CalmMindEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_CalmMindEnd
printfromtable gStatUpStringIds
waitmessage 0x40
@@ -2799,13 +2799,13 @@ BattleScript_DragonDanceDoMoveAnim::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_SPEED, 0x0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_DragonDanceTrySpeed
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceTrySpeed
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceTrySpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_DragonDanceTrySpeed::
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_DragonDanceEnd
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_DragonDanceEnd
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_DragonDanceEnd
printfromtable gStatUpStringIds
waitmessage 0x40
@@ -2865,7 +2865,7 @@ BattleScript_FaintedMonTryChooseAnother::
jumpifbattletype BATTLE_TYPE_DOUBLE, BattleScript_FaintedMonChooseAnother
jumpifword CMP_COMMON_BITS, gHitMarker, HITMARKER_x400000, BattleScript_FaintedMonChooseAnother
jumpifbyte CMP_EQUAL, sBATTLE_STYLE, 0x1, BattleScript_FaintedMonChooseAnother
jumpifcantswitch 11, BattleScript_FaintedMonChooseAnother
jumpifcantswitch BS_PLAYER1, BattleScript_FaintedMonChooseAnother
printstring STRINGID_ENEMYABOUTTOSWITCHPKMN
setbyte gBattleCommunication, 0x0
yesnobox
@@ -2875,7 +2875,7 @@ BattleScript_FaintedMonTryChooseAnother::
switchhandleorder BS_ATTACKER, 0x2
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x6, BattleScript_FaintedMonChooseAnother
atknameinbuff1
resetintrimidatetracebits BS_ATTACKER
resetintimidatetracebits BS_ATTACKER
hpthresholds2 BS_ATTACKER
printstring STRINGID_RETURNMON
switchoutabilities BS_ATTACKER
@@ -3128,8 +3128,8 @@ BattleScript_DoSwitchOut::
switchinanim BS_ATTACKER, FALSE
waitstate
switchineffects BS_ATTACKER
moveendcase ATK49_STATUS_IMMUNITY_ABILITIES
moveendcase ATK49_MIRROR_MOVE
moveendcase MOVEEND_IMMUNITY_ABILITIES
moveendcase MOVEEND_MIRROR_MOVE
end2
BattleScript_PursuitDmgOnSwitchOut::
@@ -3152,7 +3152,7 @@ BattleScript_PursuitDmgOnSwitchOut::
resultmessage
waitmessage 0x40
tryfaintmon BS_TARGET, FALSE, NULL
moveendfromto ATK49_MOVE_END_ABILITIES, ATK49_CHOICE_MOVE
moveendfromto MOVEEND_ON_DAMAGE_ABILITIES, MOVEEND_CHOICE_MOVE
various4 BS_TARGET
jumpifbyte CMP_EQUAL, gBattleCommunication, 0x0, BattleScript_PursuitDmgOnSwitchOutRet
setbyte sGIVEEXP_STATE, 0x0
@@ -3281,7 +3281,7 @@ BattleScript_LeechSeedTurnDrain::
datahpupdate BS_ATTACKER
copyword gBattleMoveDamage, gHpDealt
jumpifability BS_ATTACKER, ABILITY_LIQUID_OOZE, BattleScript_LeechSeedTurnPrintLiquidOoze
manipulatedamage ATK80_DMG_CHANGE_SIGN
manipulatedamage DMG_CHANGE_SIGN
setbyte cMULTISTRING_CHOOSER, 0x3
goto BattleScript_LeechSeedTurnPrintAndUpdateHp
BattleScript_LeechSeedTurnPrintLiquidOoze::
@@ -3380,7 +3380,7 @@ BattleScript_DisabledNoMore::
BattleScript_SelectingDisabledMoveInPalace::
printstring STRINGID_PKMNMOVEISDISABLED
BattleScript_SelectingUnusableMoveInPalace::
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
end
BattleScript_EncoredNoMore::
@@ -3471,27 +3471,27 @@ BattleScript_AllStatsUpAtk::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_ATK | BIT_DEF | BIT_SPEED | BIT_SPATK | BIT_SPDEF, 0x0
setstatchanger STAT_ATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_AllStatsUpDef
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AllStatsUpDef::
setstatchanger STAT_DEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_AllStatsUpSpeed
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpeed
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AllStatsUpSpeed::
setstatchanger STAT_SPEED, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_AllStatsUpSpAtk
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpAtk
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AllStatsUpSpAtk::
setstatchanger STAT_SPATK, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_AllStatsUpSpDef
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpSpDef
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AllStatsUpSpDef::
setstatchanger STAT_SPDEF, 1, FALSE
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_AllStatsUpRet
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_AllStatsUpRet
printfromtable gStatUpStringIds
waitmessage 0x40
BattleScript_AllStatsUpRet::
@@ -3543,8 +3543,8 @@ BattleScript_DoFutureAttackHit::
tryfaintmon BS_TARGET, FALSE, NULL
atk24 BattleScript_FutureAttackEnd
BattleScript_FutureAttackEnd::
moveendcase ATK49_RAGE
moveendfromto ATK49_ITEM_EFFECTS_ALL, ATK49_UPDATE_LAST_MOVES
moveendcase MOVEEND_RAGE
moveendfromto MOVEEND_ITEM_EFFECTS_ALL, MOVEEND_UPDATE_LAST_MOVES
setbyte gMoveResultFlags, 0
end2
@@ -3635,17 +3635,17 @@ BattleScript_PrintMonIsRooted::
BattleScript_AtkDefDown::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE | ATK48_ONLY_MULTIPLE
playstatchangeanimation BS_ATTACKER, BIT_ATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE
playstatchangeanimation BS_ATTACKER, BIT_DEF | BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_MULTIPLE_STATS
playstatchangeanimation BS_ATTACKER, BIT_ATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
setstatchanger STAT_ATK, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_BS_PTR, BattleScript_82DB144
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB144
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB144
printfromtable gStatDownStringIds
waitmessage 0x40
BattleScript_82DB144::
playstatchangeanimation BS_ATTACKER, BIT_DEF, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE
playstatchangeanimation BS_ATTACKER, BIT_DEF, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE
setstatchanger STAT_DEF, 1, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_BS_PTR, BattleScript_82DB167
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_82DB167
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_82DB167
printfromtable gStatDownStringIds
waitmessage 0x40
@@ -3709,9 +3709,9 @@ BattleScript_OneHitKOMsg::
BattleScript_SAtkDown2::
setbyte sSTAT_ANIM_PLAYED, FALSE
playstatchangeanimation BS_ATTACKER, BIT_SPATK, ATK48_DONT_CHECK_LOWER | ATK48_STAT_NEGATIVE | ATK48_STAT_BY_TWO
playstatchangeanimation BS_ATTACKER, BIT_SPATK, STAT_CHANGE_CANT_PREVENT | STAT_CHANGE_NEGATIVE | STAT_CHANGE_BY_TWO
setstatchanger STAT_SPATK, 2, TRUE
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_CHANGE_BS_PTR, BattleScript_SAtkDown2End
statbuffchange MOVE_EFFECT_AFFECTS_USER | MOVE_EFFECT_CERTAIN | STAT_BUFF_ALLOW_PTR, BattleScript_SAtkDown2End
jumpifbyte CMP_EQUAL, cMULTISTRING_CHOOSER, 0x2, BattleScript_SAtkDown2End
printfromtable gStatDownStringIds
waitmessage 0x40
@@ -4042,7 +4042,7 @@ BattleScript_IntimidateActivatesLoop:
jumpifability BS_TARGET, ABILITY_CLEAR_BODY, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_HYPER_CUTTER, BattleScript_IntimidatePrevented
jumpifability BS_TARGET, ABILITY_WHITE_SMOKE, BattleScript_IntimidatePrevented
statbuffchange STAT_CHANGE_NOT_PROTECT_AFFECTED | STAT_CHANGE_BS_PTR, BattleScript_IntimidateActivatesLoopIncrement
statbuffchange STAT_BUFF_NOT_PROTECT_AFFECTED | STAT_BUFF_ALLOW_PTR, BattleScript_IntimidateActivatesLoopIncrement
jumpifbyte CMP_GREATER_THAN, cMULTISTRING_CHOOSER, 0x1, BattleScript_IntimidateActivatesLoopIncrement
setgraphicalstatchangevalues
playanimation BS_TARGET, B_ANIM_STATS_CHANGE, sB_ANIM_ARG1
@@ -4233,7 +4233,7 @@ BattleScript_AbilityCuredStatus::
BattleScript_IgnoresWhileAsleep::
printstring STRINGID_PKMNIGNORESASLEEP
waitmessage 0x40
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
end
BattleScript_IgnoresAndUsesRandomMove::
@@ -4249,7 +4249,7 @@ BattleScript_MoveUsedLoafingAround::
BattleScript_82DB6C7::
printfromtable gInobedientStringIds
waitmessage 0x40
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
end
BattleScript_IgnoresAndFallsAsleep::
@@ -4257,7 +4257,7 @@ BattleScript_IgnoresAndFallsAsleep::
waitmessage 0x40
setmoveeffect MOVE_EFFECT_SLEEP | MOVE_EFFECT_AFFECTS_USER
seteffectprimary
moveendto ATK49_NEXT_TARGET
moveendto MOVEEND_NEXT_TARGET
end
BattleScript_IgnoresAndHitsItself::
@@ -4420,7 +4420,7 @@ BattleScript_BerryConfuseHealEnd2::
BattleScript_BerryStatRaiseEnd2::
playanimation BS_ATTACKER, B_ANIM_ITEM_EFFECT, NULL
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_CHANGE_BS_PTR, BattleScript_82DB85B
statbuffchange MOVE_EFFECT_AFFECTS_USER | STAT_BUFF_ALLOW_PTR, BattleScript_82DB85B
BattleScript_82DB85B::
setbyte cMULTISTRING_CHOOSER, 0x4
call BattleScript_StatUp

View File

@@ -47,21 +47,21 @@ gUnknown_082F32CC:: @ 82F32CC struct BgTemplate? not sure
.byte 0xb3, 0x30, 0x00, 0x00
.align 2
gUnknown_082F32D8:: @ 82F32D8
.byte 0x01, 0x02, 0x03
sBerryCrushTextColors1:: @ 82F32D8
.byte 0x01, 0x02, 0x03 @ TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY
gUnknown_082F32DB:: @ 82F32DB
.byte 0x00, 0x01, 0x02
sBerryCrushTextColors2:: @ 82F32DB
.byte 0x00, 0x01, 0x02 @ TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY
gUnknown_082F32DE:: @ 82F32DE
.byte 0x00, 0x03, 0x04
sBerryCrushTextColors3:: @ 82F32DE
.byte 0x00, 0x03, 0x04 @ TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_RED
gUnknown_082F32E1:: @ 82F32E1
.byte 0x01, 0x08, 0x09
.byte 0x01, 0x06, 0x07
sBerryCrushTextColorTable:: @ 82F32E1
.byte 0x01, 0x08, 0x09 @ TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE
.byte 0x01, 0x06, 0x07 @ TEXT_COLOR_WHITE, TEXT_COLOR_GREEN, TEXT_COLOR_LIGHT_GREEN
gUnknown_082F32E7:: @ 82F32E7
.byte 0x01, 0x04, 0x05
sBerryCrushTextColors4:: @ 82F32E7
.byte 0x01, 0x04, 0x05 @ TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED
.align 2
gUnknown_082F32EC:: @ 82F32EC
@@ -281,23 +281,23 @@ gUnknown_082F4304:: @ 82F4304
.align 2
gUnknown_082F430C:: @ 82F430C
spr_template 0x0001, 0x0001, gUnknown_0852491C, gUnknown_082F42E8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
spr_template 0x0001, 0x0001, gOamData_AffineOff_ObjNormal_64x64, gUnknown_082F42E8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082F4324:: @ 82F4324
spr_template 0x0002, 0x0002, gUnknown_08524914, gUnknown_082F42EC, NULL, gDummySpriteAffineAnimTable, sub_8022A20
spr_template 0x0002, 0x0002, gOamData_AffineOff_ObjNormal_32x32, gUnknown_082F42EC, NULL, gDummySpriteAffineAnimTable, sub_8022A20
.align 2
gUnknown_082F433C:: @ 82F433C
spr_template 0x0003, 0x0002, gUnknown_0852490C, gUnknown_082F42F4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
spr_template 0x0003, 0x0002, gOamData_AffineOff_ObjNormal_16x16, gUnknown_082F42F4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082F4354:: @ 82F4354
spr_template 0x0004, 0x0004, gUnknown_08524944, gUnknown_082F42FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
spr_template 0x0004, 0x0004, gOamData_AffineOff_ObjNormal_8x16, gUnknown_082F42FC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
.align 2
gUnknown_082F436C:: @ 82F436C
spr_template 0x0005, 0x0005, gUnknown_085249D4, gUnknown_082F4300, NULL, gUnknown_082F4304, SpriteCallbackDummy
spr_template 0x0005, 0x0005, gOamData_AffineDouble_ObjNormal_32x32, gUnknown_082F4300, NULL, gUnknown_082F4304, SpriteCallbackDummy
.align 2
gUnknown_082F4384:: @ 82F4384

View File

@@ -83,6 +83,6 @@ gUnknown_0858D8E0:: @ 858D8E0
obj_tiles gMiscBlank_Gfx, 0x0200, 0x56ce
.align 2
gUnknown_0858D8E8:: @ 858D8E8
.byte 0x01, 0x0f, 0x0e, 0x00
sContestLinkTextColors:: @ 858D8E8
.byte 0x01, 0x0f, 0x0e, 0x00 @ TEXT_COLOR_WHITE, TEXT_DYNAMIC_COLOR_6, TEXT_DYNAMIC_COLOR_5

File diff suppressed because it is too large Load Diff

View File

@@ -4,7 +4,7 @@
.section .rodata
.align 2, 0
gUnknown_085A1F94:: @ 85A1F94
gPointillismPoints:: @ 85A1F94
.byte 0x00, 0x1d, 0x1c, 0x0e, 0x1e, 0x1b, 0x00, 0x01, 0x32, 0x2e, 0x1e, 0x37, 0x0a, 0x22, 0x1f, 0x05, 0x26, 0x2e, 0x12, 0x17, 0x1e, 0x1a, 0x03, 0x11, 0x05, 0x11, 0x18, 0x05, 0x27, 0x2f, 0x1a, 0x3f
.byte 0x12, 0x22, 0x3f, 0x16, 0x2b, 0x2f, 0x2e, 0x11, 0x02, 0x2d, 0x23, 0x0d, 0x28, 0x17, 0x0c, 0x19, 0x2f, 0x0e, 0x13, 0x30, 0x18, 0x20, 0x2d, 0x28, 0x22, 0x01, 0x03, 0x19, 0x0e, 0x2a, 0x2b, 0x22
.byte 0x15, 0x25, 0x22, 0x0a, 0x26, 0x39, 0x06, 0x23, 0x16, 0x07, 0x2f, 0x22, 0x3a, 0x1b, 0x3b, 0x36, 0x35, 0x0a, 0x2b, 0x24, 0x36, 0x09, 0x12, 0x1c, 0x2f, 0x23, 0x2e, 0x38, 0x2c, 0x05, 0x2a, 0x20

View File

@@ -7,31 +7,31 @@
.align 2
gUnref_82EC784:: @ 82EC784
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x04000008
.4byte 0x0400000A
.4byte 0x0400000C
.4byte 0x0400000E
.4byte 0x04000010
.4byte 0x04000014
.4byte 0x04000018
.4byte 0x0400001C
.4byte 0x04000012
.4byte 0x04000016
.4byte 0x0400001A
.4byte 0x0400001E
.4byte 0x02000100
.4byte 0x08000400
.4byte 0x00000000
.4byte 0x00000000
.4byte 0x04000008
.4byte 0x0400000A
.4byte 0x0400000C
.4byte 0x0400000E
.4byte 0x04000010
.4byte 0x04000014
.4byte 0x04000018
.4byte 0x0400001C
.4byte 0x04000012
.4byte 0x04000016
.4byte 0x0400001A
.4byte 0x0400001E
.4byte 0x02000100
.4byte 0x08000400
gOverworldBackgroundLayerFlags:: @ 82EC7C4
.2byte 0x0100 /* BLDCNT_TGT2_BG0 */
.2byte 0x0200 /* BLDCNT_TGT2_BG1 */
.2byte 0x0400 /* BLDCNT_TGT2_BG2 */
.2byte 0x0800 /* BLDCNT_TGT2_BG3 */
.2byte BLDCNT_TGT2_BG0
.2byte BLDCNT_TGT2_BG1
.2byte BLDCNT_TGT2_BG2
.2byte BLDCNT_TGT2_BG3
gUnknown_82EC7CC:: @ 82EC7CC
.2byte 0x0001
.2byte 0x0002
.2byte 0x0004
.2byte 0x0008
gOrbEffectBackgroundLayerFlags:: @ 82EC7CC
.2byte BLDCNT_TGT1_BG0
.2byte BLDCNT_TGT1_BG1
.2byte BLDCNT_TGT1_BG2
.2byte BLDCNT_TGT1_BG3

View File

@@ -2202,14 +2202,14 @@
"blockdata_filepath": "data/layouts/SecretBase_Shrub4/map.bin"
},
{
"id": "LAYOUT_SINGLE_BATTLE_COLOSSEUM",
"name": "SingleBattleColosseum_Layout",
"id": "LAYOUT_BATTLE_COLOSSEUM_2P",
"name": "BattleColosseum_2P_Layout",
"width": 14,
"height": 9,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_CableClub",
"border_filepath": "data/layouts/SingleBattleColosseum/border.bin",
"blockdata_filepath": "data/layouts/SingleBattleColosseum/map.bin"
"border_filepath": "data/layouts/BattleColosseum_2P/border.bin",
"blockdata_filepath": "data/layouts/BattleColosseum_2P/map.bin"
},
{
"id": "LAYOUT_TRADE_CENTER",
@@ -2232,24 +2232,24 @@
"blockdata_filepath": "data/layouts/RecordCorner/map.bin"
},
{
"id": "LAYOUT_DOUBLE_BATTLE_COLOSSEUM",
"name": "DoubleBattleColosseum_Layout",
"id": "LAYOUT_BATTLE_COLOSSEUM_4P",
"name": "BattleColosseum_4P_Layout",
"width": 14,
"height": 9,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_CableClub",
"border_filepath": "data/layouts/DoubleBattleColosseum/border.bin",
"blockdata_filepath": "data/layouts/DoubleBattleColosseum/map.bin"
"border_filepath": "data/layouts/BattleColosseum_4P/border.bin",
"blockdata_filepath": "data/layouts/BattleColosseum_4P/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM1",
"name": "LinkContestRoom1_Layout",
"id": "LAYOUT_CONTEST_HALL",
"name": "ContestHall_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom1/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom1/map.bin"
"border_filepath": "data/layouts/ContestHall/border.bin",
"blockdata_filepath": "data/layouts/ContestHall/map.bin"
},
{
"id": "LAYOUT_UNKNOWN_LINK_CONTEST_ROOM_25_29",
@@ -2312,54 +2312,54 @@
"blockdata_filepath": "data/layouts/UnknownLinkContestRoom_25_34/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM2",
"name": "LinkContestRoom2_Layout",
"id": "LAYOUT_CONTEST_HALL_BEAUTY",
"name": "ContestHallBeauty_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom2/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom2/map.bin"
"border_filepath": "data/layouts/ContestHallBeauty/border.bin",
"blockdata_filepath": "data/layouts/ContestHallBeauty/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM3",
"name": "LinkContestRoom3_Layout",
"id": "LAYOUT_CONTEST_HALL_TOUGH",
"name": "ContestHallTough_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom3/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom3/map.bin"
"border_filepath": "data/layouts/ContestHallTough/border.bin",
"blockdata_filepath": "data/layouts/ContestHallTough/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM4",
"name": "LinkContestRoom4_Layout",
"id": "LAYOUT_CONTEST_HALL_COOL",
"name": "ContestHallCool_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom4/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom4/map.bin"
"border_filepath": "data/layouts/ContestHallCool/border.bin",
"blockdata_filepath": "data/layouts/ContestHallCool/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM5",
"name": "LinkContestRoom5_Layout",
"id": "LAYOUT_CONTEST_HALL_SMART",
"name": "ContestHallSmart_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom5/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom5/map.bin"
"border_filepath": "data/layouts/ContestHallSmart/border.bin",
"blockdata_filepath": "data/layouts/ContestHallSmart/map.bin"
},
{
"id": "LAYOUT_LINK_CONTEST_ROOM6",
"name": "LinkContestRoom6_Layout",
"id": "LAYOUT_CONTEST_HALL_CUTE",
"name": "ContestHallCute_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_General",
"secondary_tileset": "gTileset_Contest",
"border_filepath": "data/layouts/LinkContestRoom6/border.bin",
"blockdata_filepath": "data/layouts/LinkContestRoom6/map.bin"
"border_filepath": "data/layouts/ContestHallCute/border.bin",
"blockdata_filepath": "data/layouts/ContestHallCute/map.bin"
},
{
"id": "LAYOUT_INSIDE_OF_TRUCK",
@@ -3512,24 +3512,24 @@
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeThreePathRoom/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM1",
"name": "BattleFrontier_BattlePikeRandomRoom1_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_NORMAL",
"name": "BattleFrontier_BattlePikeRoomNormal_Layout",
"width": 9,
"height": 8,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePike",
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom1/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomNormal/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM2",
"name": "BattleFrontier_BattlePikeRandomRoom2_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_FINAL",
"name": "BattleFrontier_BattlePikeRoomFinal_Layout",
"width": 5,
"height": 8,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePike",
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom2/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomFinal/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_ARENA_LOBBY",
@@ -3572,14 +3572,14 @@
"blockdata_filepath": "data/layouts/SootopolisCity_LegendsBattle/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_RANDOM_ROOM3",
"name": "BattleFrontier_BattlePikeRandomRoom3_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PIKE_ROOM_WILD_MONS",
"name": "BattleFrontier_BattlePikeRoomWildMons_Layout",
"width": 9,
"height": 20,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePike",
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRandomRoom3/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePikeRoomWildMons/map.bin"
},
{
"id": "LAYOUT_UNKNOWN_084693AC",
@@ -3602,14 +3602,14 @@
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidLobby/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_EMPTY_SQUARE",
"name": "BattleFrontier_BattlePyramidEmptySquare_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_PYRAMID_FLOOR",
"name": "BattleFrontier_BattlePyramidFloor_Layout",
"width": 8,
"height": 8,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattlePyramid",
"border_filepath": "data/layouts/BattleFrontier_BattlePyramidEmptySquare/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidEmptySquare/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePyramidFloor/map.bin"
},
{
"id": "LAYOUT_BATTLE_PYRAMID_SQUARE01",
@@ -3892,24 +3892,24 @@
"blockdata_filepath": "data/layouts/DesertUnderpass/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_BATTLE_ROOM",
"name": "BattleFrontier_BattleTowerMultiBattleRoom_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_PARTNER_ROOM",
"name": "BattleFrontier_BattleTowerMultiPartnerRoom_Layout",
"width": 21,
"height": 15,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattleFrontier",
"border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiBattleRoom/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiBattleRoom/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiPartnerRoom/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_CORRIDOR2",
"name": "BattleFrontier_BattleTowerCorridor2_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_TOWER_MULTI_CORRIDOR",
"name": "BattleFrontier_BattleTowerMultiCorridor_Layout",
"width": 17,
"height": 5,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattleFrontier",
"border_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor2/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerCorridor2/map.bin"
"border_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattleTowerMultiCorridor/map.bin"
},
{
"id": "LAYOUT_ROUTE111_NO_MIRAGE_TOWER",
@@ -3972,14 +3972,14 @@
"blockdata_filepath": "data/layouts/BattleFrontier_Lounge1/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_BATTLE_POINT_EXCHANGE_SERVICE_CORNER",
"name": "BattleFrontier_BattlePointExchangeServiceCorner_Layout",
"id": "LAYOUT_BATTLE_FRONTIER_EXCHANGE_SERVICE_CORNER",
"name": "BattleFrontier_ExchangeServiceCorner_Layout",
"width": 15,
"height": 11,
"primary_tileset": "gTileset_Building",
"secondary_tileset": "gTileset_BattleFrontier",
"border_filepath": "data/layouts/BattleFrontier_BattlePointExchangeServiceCorner/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_BattlePointExchangeServiceCorner/map.bin"
"border_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/border.bin",
"blockdata_filepath": "data/layouts/BattleFrontier_ExchangeServiceCorner/map.bin"
},
{
"id": "LAYOUT_BATTLE_FRONTIER_RECEPTION_GATE",

View File

@@ -24,7 +24,7 @@
"movement_range_y": 0,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_CaptainsOffice_EventScript_2387E2",
"script": "AbandonedShip_CaptainsOffice_EventScript_CaptSternAide",
"flag": "0"
},
{

View File

@@ -1,42 +1,42 @@
AbandonedShip_CaptainsOffice_MapScripts:: @ 82387E1
.byte 0
AbandonedShip_CaptainsOffice_EventScript_2387E2:: @ 82387E2
AbandonedShip_CaptainsOffice_EventScript_CaptSternAide:: @ 82387E2
lock
faceplayer
goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_23881A
goto_if_set FLAG_EXCHANGED_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus
checkitem ITEM_SCANNER, 1
compare VAR_RESULT, 1
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_238810
goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER, AbandonedShip_CaptainsOffice_EventScript_23881A
msgbox AbandonedShip_CaptainsOffice_Text_238824, MSGBOX_DEFAULT
goto_if_eq AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner
goto_if_set FLAG_ITEM_ABANDONED_SHIP_HIDDEN_FLOOR_ROOM_4_SCANNER, AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus
msgbox AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner, MSGBOX_DEFAULT
release
end
AbandonedShip_CaptainsOffice_EventScript_238810:: @ 8238810
msgbox AbandonedShip_CaptainsOffice_Text_23889D, MSGBOX_DEFAULT
AbandonedShip_CaptainsOffice_EventScript_CanYouDeliverScanner:: @ 8238810
msgbox AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner, MSGBOX_DEFAULT
release
end
AbandonedShip_CaptainsOffice_EventScript_23881A:: @ 823881A
msgbox AbandonedShip_CaptainsOffice_Text_238918, MSGBOX_DEFAULT
AbandonedShip_CaptainsOffice_EventScript_ThisIsSSCactus:: @ 823881A
msgbox AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus, MSGBOX_DEFAULT
release
end
AbandonedShip_CaptainsOffice_Text_238824: @ 8238824
AbandonedShip_CaptainsOffice_Text_NoSuccessFindingScanner: @ 8238824
.string "I'm investigating this ship on behalf\n"
.string "of CAPT. STERN.\p"
.string "He also asked me to find a SCANNER,\n"
.string "but I haven't had any success…$"
AbandonedShip_CaptainsOffice_Text_23889D: @ 823889D
AbandonedShip_CaptainsOffice_Text_OhCanYouDeliverScanner: @ 823889D
.string "Oh! That's a SCANNER!\p"
.string "Listen, can I get you to deliver that\n"
.string "to CAPT. STERN?\p"
.string "I want to investigate this ship a\n"
.string "little more.$"
AbandonedShip_CaptainsOffice_Text_238918: @ 8238918
AbandonedShip_CaptainsOffice_Text_ThisIsSSCactus: @ 8238918
.string "This ship is called S.S. CACTUS.\n"
.string "It seems to be from an earlier era.$"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Corridors_1F_EventScript_2379A5",
"script": "AbandonedShip_Corridors_1F_EventScript_Youngster",
"flag": "0"
},
{
@@ -37,7 +37,7 @@
"movement_range_y": 7,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "3",
"script": "AbandonedShip_Corridors_1F_EventScript_2379AE",
"script": "AbandonedShip_Corridors_1F_EventScript_Charlie",
"flag": "0"
}
],

View File

@@ -1,26 +1,26 @@
AbandonedShip_Corridors_1F_MapScripts:: @ 82379A4
.byte 0
AbandonedShip_Corridors_1F_EventScript_2379A5:: @ 82379A5
msgbox AbandonedShip_Corridors_1F_Text_237A60, MSGBOX_NPC
AbandonedShip_Corridors_1F_EventScript_Youngster:: @ 82379A5
msgbox AbandonedShip_Corridors_1F_Text_IsntItFunHere, MSGBOX_NPC
end
AbandonedShip_Corridors_1F_EventScript_2379AE:: @ 82379AE
trainerbattle_single TRAINER_CHARLIE, AbandonedShip_Corridors_1F_Text_2379C5, AbandonedShip_Corridors_1F_Text_237A01
msgbox AbandonedShip_Corridors_1F_Text_237A1B, MSGBOX_AUTOCLOSE
AbandonedShip_Corridors_1F_EventScript_Charlie:: @ 82379AE
trainerbattle_single TRAINER_CHARLIE, AbandonedShip_Corridors_1F_Text_CharlieIntro, AbandonedShip_Corridors_1F_Text_CharlieDefeat
msgbox AbandonedShip_Corridors_1F_Text_CharliePostBattle, MSGBOX_AUTOCLOSE
end
AbandonedShip_Corridors_1F_Text_2379C5: @ 82379C5
AbandonedShip_Corridors_1F_Text_CharlieIntro: @ 82379C5
.string "What's so funny about having my inner\n"
.string "tube aboard the ship?$"
AbandonedShip_Corridors_1F_Text_237A01: @ 8237A01
AbandonedShip_Corridors_1F_Text_CharlieDefeat: @ 8237A01
.string "Whoa, you overwhelmed me!$"
AbandonedShip_Corridors_1F_Text_237A1B: @ 8237A1B
AbandonedShip_Corridors_1F_Text_CharliePostBattle: @ 8237A1B
.string "It's not easy throwing POKé BALLS\n"
.string "while hanging on to an inner tube!$"
AbandonedShip_Corridors_1F_Text_237A60: @ 8237A60
AbandonedShip_Corridors_1F_Text_IsntItFunHere: @ 8237A60
.string "Isn't it fun here?\n"
.string "I get excited just being here!$"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Corridors_B1F_EventScript_237DBF",
"script": "AbandonedShip_Corridors_B1F_EventScript_TuberM",
"flag": "0"
},
{
@@ -37,7 +37,7 @@
"movement_range_y": 0,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "4",
"script": "AbandonedShip_Corridors_B1F_EventScript_237E13",
"script": "AbandonedShip_Corridors_B1F_EventScript_Duncan",
"flag": "0"
}
],
@@ -107,7 +107,7 @@
"y": 4,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_Corridors_B1F_EventScript_237DC8"
"script": "AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor"
}
]
}

View File

@@ -1,88 +1,87 @@
AbandonedShip_Corridors_B1F_MapScripts:: @ 8237D84
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Corridors_B1F_MapScript1_237D8F
map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_Corridors_B1F_MapScript1_237D98
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Corridors_B1F_OnResume
map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_Corridors_B1F_OnLoad
.byte 0
AbandonedShip_Corridors_B1F_MapScript1_237D8F: @ 8237D8F
AbandonedShip_Corridors_B1F_OnResume: @ 8237D8F
setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4
end
AbandonedShip_Corridors_B1F_MapScript1_237D98: @ 8237D98
call_if_unset FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_237DAB
call_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_237DB5
AbandonedShip_Corridors_B1F_OnLoad: @ 8237D98
call_if_unset FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom
call_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom
end
AbandonedShip_Corridors_B1F_EventScript_237DAB:: @ 8237DAB
setmetatile 11, 4, METATILE_InsideShip_InTactDoor0_Bottom, 1
AbandonedShip_Corridors_B1F_EventScript_LockStorageRoom:: @ 8237DAB
setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1
return
AbandonedShip_Corridors_B1F_EventScript_237DB5:: @ 8237DB5
setmetatile 11, 4, METATILE_InsideShip_InTactDoor1_Bottom, 1
AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom:: @ 8237DB5
setmetatile 11, 4, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1
return
AbandonedShip_Corridors_B1F_EventScript_237DBF:: @ 8237DBF
msgbox AbandonedShip_Corridors_B1F_Text_237F03, MSGBOX_NPC
AbandonedShip_Corridors_B1F_EventScript_TuberM:: @ 8237DBF
msgbox AbandonedShip_Corridors_B1F_Text_YayItsAShip, MSGBOX_NPC
end
AbandonedShip_Corridors_B1F_EventScript_237DC8:: @ 8237DC8
AbandonedShip_Corridors_B1F_EventScript_StorageRoomDoor:: @ 8237DC8
lockall
goto_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_237E09
goto_if_set FLAG_USED_STORAGE_KEY, AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked
checkitem ITEM_STORAGE_KEY, 1
compare VAR_RESULT, 0
goto_if_eq AbandonedShip_Corridors_B1F_EventScript_237DFF
msgbox AbandonedShip_Corridors_B1F_Text_237F4B, MSGBOX_DEFAULT
compare VAR_RESULT, FALSE
goto_if_eq AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked
msgbox AbandonedShip_Corridors_B1F_Text_InsertedStorageKey, MSGBOX_DEFAULT
playse SE_PIN
takeitem ITEM_STORAGE_KEY, 1
removeitem ITEM_STORAGE_KEY
setflag FLAG_USED_STORAGE_KEY
call AbandonedShip_Corridors_B1F_EventScript_237DB5
call AbandonedShip_Corridors_B1F_EventScript_UnlockStorageRoom
special DrawWholeMapView
releaseall
end
AbandonedShip_Corridors_B1F_EventScript_237DFF:: @ 8237DFF
msgbox AbandonedShip_Corridors_B1F_Text_237F15, MSGBOX_DEFAULT
AbandonedShip_Corridors_B1F_EventScript_DoorIsLocked:: @ 8237DFF
msgbox AbandonedShip_Corridors_B1F_Text_DoorIsLocked, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_Corridors_B1F_EventScript_237E09:: @ 8237E09
msgbox AbandonedShip_Corridors_B1F_Text_237FA5, MSGBOX_DEFAULT
AbandonedShip_Corridors_B1F_EventScript_DoorIsUnlocked:: @ 8237E09
msgbox AbandonedShip_Text_TheDoorIsOpen, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_Corridors_B1F_EventScript_237E13:: @ 8237E13
trainerbattle_single TRAINER_DUNCAN, AbandonedShip_Corridors_B1F_Text_237E2A, AbandonedShip_Corridors_B1F_Text_237E80
msgbox AbandonedShip_Corridors_B1F_Text_237E92, MSGBOX_AUTOCLOSE
AbandonedShip_Corridors_B1F_EventScript_Duncan:: @ 8237E13
trainerbattle_single TRAINER_DUNCAN, AbandonedShip_Corridors_B1F_Text_DuncanIntro, AbandonedShip_Corridors_B1F_Text_DuncanDefeat
msgbox AbandonedShip_Corridors_B1F_Text_DuncanPostBattle, MSGBOX_AUTOCLOSE
end
AbandonedShip_Corridors_B1F_Text_237E2A: @ 8237E2A
AbandonedShip_Corridors_B1F_Text_DuncanIntro: @ 8237E2A
.string "When we go out to sea, we SAILORS\n"
.string "always bring our POKéMON.\l"
.string "How about a quick battle?$"
AbandonedShip_Corridors_B1F_Text_237E80: @ 8237E80
AbandonedShip_Corridors_B1F_Text_DuncanDefeat: @ 8237E80
.string "Whoops, I'm sunk!$"
AbandonedShip_Corridors_B1F_Text_237E92: @ 8237E92
AbandonedShip_Corridors_B1F_Text_DuncanPostBattle: @ 8237E92
.string "The ship's bottom has sunk into the\n"
.string "depths.\p"
.string "If a POKéMON knew how to go underwater,\n"
.string "we might make some progress…$"
AbandonedShip_Corridors_B1F_Text_237F03: @ 8237F03
AbandonedShip_Corridors_B1F_Text_YayItsAShip: @ 8237F03
.string "Yay!\n"
.string "It's a ship!$"
AbandonedShip_Corridors_B1F_Text_237F15: @ 8237F15
AbandonedShip_Corridors_B1F_Text_DoorIsLocked: @ 8237F15
.string "The door is locked.\p"
.string "“STORAGE” is painted on the door.$"
AbandonedShip_Corridors_B1F_Text_237F4B: @ 8237F4B
AbandonedShip_Corridors_B1F_Text_InsertedStorageKey: @ 8237F4B
.string "{PLAYER} inserted and turned the\n"
.string "STORAGE KEY.\p"
.string "The inserted KEY stuck fast,\n"
.string "but the door opened.$"
AbandonedShip_Corridors_B1F_Text_237FA5: @ 8237FA5
AbandonedShip_HiddenFloorCorridors_Text_237FA5: @ 8237FA5
AbandonedShip_Text_TheDoorIsOpen: @ 8237FA5
.string "The door is open.$"

View File

@@ -66,7 +66,7 @@
"y": 8,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_238A19"
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door"
},
{
"type": "sign",
@@ -74,7 +74,7 @@
"y": 8,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_238A50"
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door"
},
{
"type": "sign",
@@ -82,7 +82,7 @@
"y": 4,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_238A87"
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door"
},
{
"type": "sign",
@@ -90,7 +90,7 @@
"y": 4,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_238ABE"
"script": "AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door"
}
]
}

View File

@@ -1,157 +1,157 @@
AbandonedShip_HiddenFloorCorridors_MapScripts:: @ 823896C
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_HiddenFloorCorridors_MapScript1_238977
map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_HiddenFloorCorridors_MapScript1_238980
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_HiddenFloorCorridors_OnResume
map_script MAP_SCRIPT_ON_LOAD, AbandonedShip_HiddenFloorCorridors_OnLoad
.byte 0
AbandonedShip_HiddenFloorCorridors_MapScript1_238977: @ 8238977
AbandonedShip_HiddenFloorCorridors_OnResume: @ 8238977
setdivewarp MAP_ABANDONED_SHIP_UNDERWATER1, 255, 5, 4
end
AbandonedShip_HiddenFloorCorridors_MapScript1_238980: @ 8238980
call_if_unset FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389F1
call_if_unset FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389FB
call_if_unset FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238A05
call_if_unset FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238A0F
call_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389C9
call_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389D3
call_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389DD
call_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_2389E7
AbandonedShip_HiddenFloorCorridors_OnLoad: @ 8238980
call_if_unset FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1
call_if_unset FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2
call_if_unset FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4
call_if_unset FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6
call_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1
call_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2
call_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4
call_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6
end
AbandonedShip_HiddenFloorCorridors_EventScript_2389C9:: @ 82389C9
setmetatile 3, 8, METATILE_InsideShip_InTactDoor1_Bottom, 1
AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1:: @ 82389C9
setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_2389D3:: @ 82389D3
setmetatile 6, 8, METATILE_InsideShip_InTactDoor1_Bottom, 1
AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2:: @ 82389D3
setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Unlocked, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_2389DD:: @ 82389DD
setmetatile 3, 3, METATILE_InsideShip_DoorIndent1, 0
AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4:: @ 82389DD
setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_2389E7:: @ 82389E7
setmetatile 9, 3, METATILE_InsideShip_DoorIndent1, 0
AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6:: @ 82389E7
setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Unlocked, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_2389F1:: @ 82389F1
setmetatile 3, 8, METATILE_InsideShip_InTactDoor0_Bottom, 1
AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom1:: @ 82389F1
setmetatile 3, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_2389FB:: @ 82389FB
setmetatile 6, 8, METATILE_InsideShip_InTactDoor0_Bottom, 1
AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom2:: @ 82389FB
setmetatile 6, 8, METATILE_InsideShip_IntactDoor_Bottom_Locked, 1
return
AbandonedShip_HiddenFloorCorridors_EventScript_238A05:: @ 8238A05
setmetatile 3, 3, METATILE_InsideShip_DoorIndent0, 0
AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom4:: @ 8238A05
setmetatile 3, 3, METATILE_InsideShip_DoorIndent_Locked, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_238A0F:: @ 8238A0F
setmetatile 9, 3, METATILE_InsideShip_DoorIndent0, 0
AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6:: @ 8238A0F
setmetatile 9, 3, METATILE_InsideShip_DoorIndent_Locked, 0
return
AbandonedShip_HiddenFloorCorridors_EventScript_238A19:: @ 8238A19
AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door:: @ 8238A19
lockall
goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238B1D
goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_1_KEY, 1
compare VAR_RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_238AF5
msgbox AbandonedShip_HiddenFloorCorridors_Text_238BF7, MSGBOX_DEFAULT
compare VAR_RESULT, FALSE
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
takeitem ITEM_ROOM_1_KEY, 1
removeitem ITEM_ROOM_1_KEY
setflag FLAG_USED_ROOM_1_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_2389C9
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1
special DrawWholeMapView
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238A50:: @ 8238A50
AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door:: @ 8238A50
lockall
goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238B1D
goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_2_KEY, 1
compare VAR_RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_238AFF
msgbox AbandonedShip_HiddenFloorCorridors_Text_238BF7, MSGBOX_DEFAULT
compare VAR_RESULT, FALSE
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
takeitem ITEM_ROOM_2_KEY, 1
removeitem ITEM_ROOM_2_KEY
setflag FLAG_USED_ROOM_2_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_2389D3
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2
special DrawWholeMapView
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238A87:: @ 8238A87
AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door:: @ 8238A87
lockall
goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238B1D
goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_4_KEY, 1
compare VAR_RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_238B09
msgbox AbandonedShip_HiddenFloorCorridors_Text_238BF7, MSGBOX_DEFAULT
compare VAR_RESULT, FALSE
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
takeitem ITEM_ROOM_4_KEY, 1
removeitem ITEM_ROOM_4_KEY
setflag FLAG_USED_ROOM_4_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_2389DD
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4
special DrawWholeMapView
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238ABE:: @ 8238ABE
AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door:: @ 8238ABE
lockall
goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_238B1D
goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_6_KEY, 1
compare VAR_RESULT, 0
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_238B13
msgbox AbandonedShip_HiddenFloorCorridors_Text_238BF7, MSGBOX_DEFAULT
compare VAR_RESULT, FALSE
goto_if_eq AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
takeitem ITEM_ROOM_6_KEY, 1
removeitem ITEM_ROOM_6_KEY
setflag FLAG_USED_ROOM_6_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_2389E7
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6
special DrawWholeMapView
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238AF5:: @ 8238AF5
msgbox AbandonedShip_HiddenFloorCorridors_Text_238B27, MSGBOX_DEFAULT
AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked:: @ 8238AF5
msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238AFF:: @ 8238AFF
msgbox AbandonedShip_HiddenFloorCorridors_Text_238B5B, MSGBOX_DEFAULT
AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked:: @ 8238AFF
msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238B09:: @ 8238B09
msgbox AbandonedShip_HiddenFloorCorridors_Text_238B8F, MSGBOX_DEFAULT
AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked:: @ 8238B09
msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238B13:: @ 8238B13
msgbox AbandonedShip_HiddenFloorCorridors_Text_238BC3, MSGBOX_DEFAULT
AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked:: @ 8238B13
msgbox AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorCorridors_EventScript_238B1D:: @ 8238B1D
msgbox AbandonedShip_HiddenFloorCorridors_Text_237FA5, MSGBOX_DEFAULT
AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen:: @ 8238B1D
msgbox AbandonedShip_Text_TheDoorIsOpen, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorCorridors_Text_238B27: @ 8238B27
AbandonedShip_HiddenFloorCorridors_Text_Rm1DoorIsLocked: @ 8238B27
.string "The door is locked.\p"
.string "“RM. 1” is painted on the door.$"
AbandonedShip_HiddenFloorCorridors_Text_238B5B: @ 8238B5B
AbandonedShip_HiddenFloorCorridors_Text_Rm2DoorIsLocked: @ 8238B5B
.string "The door is locked.\p"
.string "“RM. 2” is painted on the door.$"
AbandonedShip_HiddenFloorCorridors_Text_238B8F: @ 8238B8F
AbandonedShip_HiddenFloorCorridors_Text_Rm4DoorIsLocked: @ 8238B8F
.string "The door is locked.\p"
.string "“RM. 4” is painted on the door.$"
AbandonedShip_HiddenFloorCorridors_Text_238BC3: @ 8238BC3
AbandonedShip_HiddenFloorCorridors_Text_Rm6DoorIsLocked: @ 8238BC3
.string "The door is locked.\p"
.string "“RM. 6” is painted on the door.$"
AbandonedShip_HiddenFloorCorridors_Text_238BF7: @ 8238BF7
AbandonedShip_HiddenFloorCorridors_Text_InsertedKey: @ 8238BF7
.string "{PLAYER} inserted and turned the\n"
.string "KEY.\p"
.string "The inserted KEY stuck fast,\n"

View File

@@ -172,7 +172,7 @@
"y": 5,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
},
{
"type": "sign",
@@ -180,7 +180,7 @@
"y": 3,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
},
{
"type": "sign",
@@ -188,7 +188,7 @@
"y": 10,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
},
{
"type": "sign",
@@ -196,7 +196,7 @@
"y": 3,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
},
{
"type": "sign",
@@ -204,7 +204,7 @@
"y": 2,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
},
{
"type": "sign",
@@ -212,7 +212,7 @@
"y": 6,
"elevation": 3,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AbandonedShip_HiddenFloorRooms_EventScript_238DF3"
"script": "AbandonedShip_HiddenFloorRooms_EventScript_Trash"
}
]
}

View File

@@ -1,148 +1,125 @@
AbandonedShip_HiddenFloorRooms_MapScripts:: @ 8238C49
map_script MAP_SCRIPT_ON_FRAME_TABLE, AbandonedShip_HiddenFloorRooms_MapScript2_238C4F
map_script MAP_SCRIPT_ON_FRAME_TABLE, AbandonedShip_HiddenFloorRooms_OnFrame
.byte 0
AbandonedShip_HiddenFloorRooms_MapScript2_238C4F: @ 8238C4F
map_script_2 VAR_TEMP_1, 0, AbandonedShip_HiddenFloorRooms_EventScript_238C59
AbandonedShip_HiddenFloorRooms_OnFrame: @ 8238C4F
map_script_2 VAR_TEMP_1, 0, AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle
.2byte 0
AbandonedShip_HiddenFloorRooms_EventScript_238C59:: @ 8238C59
@ After the below calculation, VAR_TEMP_4 is the room number of the door the player entered
@ Bottom row, left column (Rm 1)
@ Bottom row, middle column (Rm 2)
@ Bottom row, right column (Rm 3)
@ Upper row, left column (Rm 4)
@ Upper row, middle column (Rm 5)
@ Upper row, right column (Rm 6)
AbandonedShip_HiddenFloorRooms_EventScript_DoHiddenItemSparkle:: @ 8238C59
setvar VAR_TEMP_1, 1
getplayerxy VAR_TEMP_2, VAR_TEMP_3
setvar VAR_TEMP_4, 1
compare VAR_TEMP_2, 21
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238CD1
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn
compare VAR_TEMP_2, 36
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238CD7
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn
compare VAR_TEMP_3, 2
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238CDD
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow
switch VAR_TEMP_4
case 1, AbandonedShip_HiddenFloorRooms_EventScript_238CE3
case 2, AbandonedShip_HiddenFloorRooms_EventScript_238D0C
case 3, AbandonedShip_HiddenFloorRooms_EventScript_238D0D
case 4, AbandonedShip_HiddenFloorRooms_EventScript_238D33
case 5, AbandonedShip_HiddenFloorRooms_EventScript_238D6B
case 6, AbandonedShip_HiddenFloorRooms_EventScript_238DB2
case 1, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1
case 2, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2
case 3, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3
case 4, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4
case 5, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5
case 6, AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6
end
AbandonedShip_HiddenFloorRooms_EventScript_238CD1:: @ 8238CD1
AbandonedShip_HiddenFloorRooms_EventScript_InMiddleRoomColumn:: @ 8238CD1
addvar VAR_TEMP_4, 1
return
AbandonedShip_HiddenFloorRooms_EventScript_238CD7:: @ 8238CD7
AbandonedShip_HiddenFloorRooms_EventScript_InRightRoomColumn:: @ 8238CD7
addvar VAR_TEMP_4, 2
return
AbandonedShip_HiddenFloorRooms_EventScript_238CDD:: @ 8238CDD
AbandonedShip_HiddenFloorRooms_EventScript_InUpperRoomRow:: @ 8238CDD
addvar VAR_TEMP_4, 3
return
AbandonedShip_HiddenFloorRooms_EventScript_238CE3:: @ 8238CE3
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm1:: @ 8238CE3
delay 20
setfieldeffectargument 0, 10
setfieldeffectargument 1, 10
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
dofieldeffectsparkle 10, 10, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom4Key
compare VAR_RESULT, 0
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238DD3
compare VAR_RESULT, FALSE
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_238D0C:: @ 8238D0C
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm2:: @ 8238D0C
end
AbandonedShip_HiddenFloorRooms_EventScript_238D0D:: @ 8238D0D
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm3:: @ 8238D0D
specialvar VAR_RESULT, FoundAbandonedShipRoom1Key
compare VAR_RESULT, 1
goto_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238D32
compare VAR_RESULT, TRUE
goto_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle
delay 20
compare VAR_RESULT, 0
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238DB3
compare VAR_RESULT, FALSE
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_238D32:: @ 8238D32
AbandonedShip_HiddenFloorRooms_EventScript_Rm3NoSparkle:: @ 8238D32
end
AbandonedShip_HiddenFloorRooms_EventScript_238D33:: @ 8238D33
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm4:: @ 8238D33
delay 20
setfieldeffectargument 0, 8
setfieldeffectargument 1, 5
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
setfieldeffectargument 0, 11
setfieldeffectargument 1, 3
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
dofieldeffectsparkle 8, 5, 0
dofieldeffectsparkle 11, 3, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom6Key
compare VAR_RESULT, 0
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238DE3
compare VAR_RESULT, FALSE
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_238D6B:: @ 8238D6B
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm5:: @ 8238D6B
delay 20
setfieldeffectargument 0, 16
setfieldeffectargument 1, 3
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
setfieldeffectargument 0, 25
setfieldeffectargument 1, 2
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
setfieldeffectargument 0, 24
setfieldeffectargument 1, 6
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
dofieldeffectsparkle 16, 3, 0
dofieldeffectsparkle 25, 2, 0
dofieldeffectsparkle 24, 6, 0
specialvar VAR_RESULT, FoundAbandonedShipRoom2Key
compare VAR_RESULT, 0
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_238DC3
compare VAR_RESULT, FALSE
call_if_eq AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle
waitfieldeffect FLDEFF_SPARKLE
delay 10
end
AbandonedShip_HiddenFloorRooms_EventScript_238DB2:: @ 8238DB2
AbandonedShip_HiddenFloorRooms_EventScript_EnterRm6:: @ 8238DB2
end
AbandonedShip_HiddenFloorRooms_EventScript_238DB3:: @ 8238DB3
setfieldeffectargument 0, 42
setfieldeffectargument 1, 10
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
AbandonedShip_HiddenFloorRooms_EventScript_Rm1KeySparkle:: @ 8238DB3
dofieldeffectsparkle 42, 10, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_238DC3:: @ 8238DC3
setfieldeffectargument 0, 20
setfieldeffectargument 1, 5
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
AbandonedShip_HiddenFloorRooms_EventScript_Rm2KeySparkle:: @ 8238DC3
dofieldeffectsparkle 20, 5, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_238DD3:: @ 8238DD3
setfieldeffectargument 0, 1
setfieldeffectargument 1, 12
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
AbandonedShip_HiddenFloorRooms_EventScript_Rm4KeySparkle:: @ 8238DD3
dofieldeffectsparkle 1, 12, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_238DE3:: @ 8238DE3
setfieldeffectargument 0, 1
setfieldeffectargument 1, 2
setfieldeffectargument 2, 0
dofieldeffect FLDEFF_SPARKLE
AbandonedShip_HiddenFloorRooms_EventScript_Rm6KeySparkle:: @ 8238DE3
dofieldeffectsparkle 1, 2, 0
return
AbandonedShip_HiddenFloorRooms_EventScript_238DF3:: @ 8238DF3
AbandonedShip_HiddenFloorRooms_EventScript_Trash:: @ 8238DF3
lockall
msgbox AbandonedShip_HiddenFloorRooms_Text_238DFE, MSGBOX_DEFAULT
msgbox AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash, MSGBOX_DEFAULT
releaseall
end
AbandonedShip_HiddenFloorRooms_Text_238DFE: @ 8238DFE
AbandonedShip_HiddenFloorRooms_Text_BrightShinyTrash: @ 8238DFE
.string "It's bright and shiny!\n"
.string "But it's just trash…$"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 0,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "1",
"script": "AbandonedShip_Rooms2_1F_EventScript_2380A7",
"script": "AbandonedShip_Rooms2_1F_EventScript_Dan",
"flag": "0"
},
{
@@ -37,7 +37,7 @@
"movement_range_y": 0,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "1",
"script": "AbandonedShip_Rooms2_1F_EventScript_23810B",
"script": "AbandonedShip_Rooms2_1F_EventScript_Kira",
"flag": "0"
},
{
@@ -63,7 +63,7 @@
"movement_range_y": 1,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "3",
"script": "AbandonedShip_Rooms2_1F_EventScript_238186",
"script": "AbandonedShip_Rooms2_1F_EventScript_Garrison",
"flag": "0"
},
{
@@ -76,7 +76,7 @@
"movement_range_y": 1,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "3",
"script": "AbandonedShip_Rooms2_1F_EventScript_23816F",
"script": "AbandonedShip_Rooms2_1F_EventScript_Jani",
"flag": "0"
}
],

View File

@@ -1,151 +1,151 @@
AbandonedShip_Rooms2_1F_MapScripts:: @ 82380A6
.byte 0
AbandonedShip_Rooms2_1F_EventScript_2380A7:: @ 82380A7
trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_23819D, AbandonedShip_Rooms2_1F_Text_2381DA, AbandonedShip_Rooms2_1F_Text_238257, AbandonedShip_Rooms2_1F_EventScript_2380D7
AbandonedShip_Rooms2_1F_EventScript_Dan:: @ 82380A7
trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_DanIntro, AbandonedShip_Rooms2_1F_Text_DanDefeat, AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterDan
specialvar VAR_RESULT, ShouldTryRematchBattle
compare VAR_RESULT, 1
goto_if_eq AbandonedShip_Rooms2_1F_EventScript_2380F0
msgbox AbandonedShip_Rooms2_1F_Text_23820F, MSGBOX_DEFAULT
compare VAR_RESULT, TRUE
goto_if_eq AbandonedShip_Rooms2_1F_EventScript_DanRematch
msgbox AbandonedShip_Rooms2_1F_Text_DanPostBattle, MSGBOX_DEFAULT
release
end
AbandonedShip_Rooms2_1F_EventScript_2380D7:: @ 82380D7
msgbox AbandonedShip_Rooms2_1F_Text_2383BB, MSGBOX_DEFAULT
AbandonedShip_Rooms2_1F_EventScript_RegisterDan:: @ 82380D7
msgbox AbandonedShip_Rooms2_1F_Text_KiraRegister, MSGBOX_DEFAULT @ Kira speaks for both when registering KiraAndDan
register_matchcall TRAINER_KIRA_AND_DAN_1
release
end
AbandonedShip_Rooms2_1F_EventScript_2380F0:: @ 82380F0
trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_2383FF, AbandonedShip_Rooms2_1F_Text_238473, AbandonedShip_Rooms2_1F_Text_238509
msgbox AbandonedShip_Rooms2_1F_Text_238491, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms2_1F_EventScript_DanRematch:: @ 82380F0
trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_DanRematchIntro, AbandonedShip_Rooms2_1F_Text_DanRematchDefeat, AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons
msgbox AbandonedShip_Rooms2_1F_Text_DanPostRematch, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms2_1F_EventScript_23810B:: @ 823810B
trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_2382A4, AbandonedShip_Rooms2_1F_Text_2382F4, AbandonedShip_Rooms2_1F_Text_23836F, AbandonedShip_Rooms2_1F_EventScript_23813B
AbandonedShip_Rooms2_1F_EventScript_Kira:: @ 823810B
trainerbattle_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_KiraIntro, AbandonedShip_Rooms2_1F_Text_KiraDefeat, AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons, AbandonedShip_Rooms2_1F_EventScript_RegisterKira
specialvar VAR_RESULT, ShouldTryRematchBattle
compare VAR_RESULT, 1
goto_if_eq AbandonedShip_Rooms2_1F_EventScript_238154
msgbox AbandonedShip_Rooms2_1F_Text_23830A, MSGBOX_DEFAULT
compare VAR_RESULT, TRUE
goto_if_eq AbandonedShip_Rooms2_1F_EventScript_KiraRematch
msgbox AbandonedShip_Rooms2_1F_Text_KiraPostBattle, MSGBOX_DEFAULT
release
end
AbandonedShip_Rooms2_1F_EventScript_23813B:: @ 823813B
msgbox AbandonedShip_Rooms2_1F_Text_2383BB, MSGBOX_DEFAULT
AbandonedShip_Rooms2_1F_EventScript_RegisterKira:: @ 823813B
msgbox AbandonedShip_Rooms2_1F_Text_KiraRegister, MSGBOX_DEFAULT
register_matchcall TRAINER_KIRA_AND_DAN_1
release
end
AbandonedShip_Rooms2_1F_EventScript_238154:: @ 8238154
trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_238556, AbandonedShip_Rooms2_1F_Text_2385F2, AbandonedShip_Rooms2_1F_Text_238668
msgbox AbandonedShip_Rooms2_1F_Text_23860B, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms2_1F_EventScript_KiraRematch:: @ 8238154
trainerbattle_rematch_double TRAINER_KIRA_AND_DAN_1, AbandonedShip_Rooms2_1F_Text_KiraRematchIntro, AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat, AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons
msgbox AbandonedShip_Rooms2_1F_Text_KiraPostRematch, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms2_1F_EventScript_23816F:: @ 823816F
trainerbattle_single TRAINER_JANI, AbandonedShip_Rooms2_1F_Text_2386B4, AbandonedShip_Rooms2_1F_Text_2386E8
msgbox AbandonedShip_Rooms2_1F_Text_238708, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms2_1F_EventScript_Jani:: @ 823816F
trainerbattle_single TRAINER_JANI, AbandonedShip_Rooms2_1F_Text_JaniIntro, AbandonedShip_Rooms2_1F_Text_JaniDefeat
msgbox AbandonedShip_Rooms2_1F_Text_JaniPostBattle, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms2_1F_EventScript_238186:: @ 8238186
trainerbattle_single TRAINER_GARRISON, AbandonedShip_Rooms2_1F_Text_23873F, AbandonedShip_Rooms2_1F_Text_238779
msgbox AbandonedShip_Rooms2_1F_Text_2387A9, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms2_1F_EventScript_Garrison:: @ 8238186
trainerbattle_single TRAINER_GARRISON, AbandonedShip_Rooms2_1F_Text_GarrisonIntro, AbandonedShip_Rooms2_1F_Text_GarrisonDefeat
msgbox AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms2_1F_Text_23819D: @ 823819D
AbandonedShip_Rooms2_1F_Text_DanIntro: @ 823819D
.string "DAN: While searching for treasures,\n"
.string "we discovered a TRAINER!$"
AbandonedShip_Rooms2_1F_Text_2381DA: @ 82381DA
AbandonedShip_Rooms2_1F_Text_DanDefeat: @ 82381DA
.string "DAN: We couldn't win even though\n"
.string "we worked together…$"
AbandonedShip_Rooms2_1F_Text_23820F: @ 823820F
AbandonedShip_Rooms2_1F_Text_DanPostBattle: @ 823820F
.string "DAN: We can't find any treasures…\n"
.string "I wonder if someone got them already?$"
AbandonedShip_Rooms2_1F_Text_238257: @ 8238257
AbandonedShip_Rooms2_1F_Text_DanNotEnoughMons: @ 8238257
.string "DAN: You don't even have two POKéMON.\n"
.string "You can't expect to beat us like that.$"
AbandonedShip_Rooms2_1F_Text_2382A4: @ 82382A4
AbandonedShip_Rooms2_1F_Text_KiraIntro: @ 82382A4
.string "KIRA: Oh?\n"
.string "We were searching for treasures.\l"
.string "But we discovered a TRAINER instead!$"
AbandonedShip_Rooms2_1F_Text_2382F4: @ 82382F4
AbandonedShip_Rooms2_1F_Text_KiraDefeat: @ 82382F4
.string "KIRA: Ooh, so strong!$"
AbandonedShip_Rooms2_1F_Text_23830A: @ 823830A
AbandonedShip_Rooms2_1F_Text_KiraPostBattle: @ 823830A
.string "KIRA: Where could the treasures be?\p"
.string "I've already decided what I'm buying\n"
.string "when we find the treasures!$"
AbandonedShip_Rooms2_1F_Text_23836F: @ 823836F
AbandonedShip_Rooms2_1F_Text_KiraNotEnoughMons: @ 823836F
.string "KIRA: Oh, you don't have two POKéMON?\n"
.string "We'll have to battle some other time!$"
AbandonedShip_Rooms2_1F_Text_2383BB: @ 82383BB
AbandonedShip_Rooms2_1F_Text_KiraRegister: @ 82383BB
.string "KIRA: Oh, you make me so angry!\n"
.string "I'm going to register you for that!$"
AbandonedShip_Rooms2_1F_Text_2383FF: @ 82383FF
AbandonedShip_Rooms2_1F_Text_DanRematchIntro: @ 82383FF
.string "DAN: We've been searching for\n"
.string "treasures all this time.\p"
.string "Our POKéMON have grown stronger, too.\n"
.string "Let us show you, okay?$"
AbandonedShip_Rooms2_1F_Text_238473: @ 8238473
AbandonedShip_Rooms2_1F_Text_DanRematchDefeat: @ 8238473
.string "DAN: You're strong, as usual!$"
AbandonedShip_Rooms2_1F_Text_238491: @ 8238491
AbandonedShip_Rooms2_1F_Text_DanPostRematch: @ 8238491
.string "DAN: We can't find any treasures,\n"
.string "we lose at POKéMON…\p"
.string "I want to go home… But if I say that,\n"
.string "she gets all angry with me…$"
AbandonedShip_Rooms2_1F_Text_238509: @ 8238509
AbandonedShip_Rooms2_1F_Text_DanRematchNotEnoughMons: @ 8238509
.string "DAN: You don't even have two POKéMON.\n"
.string "You can't expect to beat us like that.$"
AbandonedShip_Rooms2_1F_Text_238556: @ 8238556
AbandonedShip_Rooms2_1F_Text_KiraRematchIntro: @ 8238556
.string "KIRA: Oh? We meet again!\p"
.string "Just like us, you still haven't given up\n"
.string "searching for treasures, have you?\p"
.string "Want to make it so the loser has\n"
.string "to give up searching?$"
AbandonedShip_Rooms2_1F_Text_2385F2: @ 82385F2
AbandonedShip_Rooms2_1F_Text_KiraRematchDefeat: @ 82385F2
.string "KIRA: Oh, we lost again…$"
AbandonedShip_Rooms2_1F_Text_23860B: @ 823860B
AbandonedShip_Rooms2_1F_Text_KiraPostRematch: @ 823860B
.string "KIRA: We're not leaving until we raise\n"
.string "our POKéMON some more and we find\l"
.string "the treasures here!$"
AbandonedShip_Rooms2_1F_Text_238668: @ 8238668
AbandonedShip_Rooms2_1F_Text_KiraRematchNotEnoughMons: @ 8238668
.string "KIRA: Oh, you don't have two POKéMON?\n"
.string "We'll have to battle some other time!$"
AbandonedShip_Rooms2_1F_Text_2386B4: @ 82386B4
AbandonedShip_Rooms2_1F_Text_JaniIntro: @ 82386B4
.string "I'm not good at swimming,\n"
.string "but I am good at battles!$"
AbandonedShip_Rooms2_1F_Text_2386E8: @ 82386E8
AbandonedShip_Rooms2_1F_Text_JaniDefeat: @ 82386E8
.string "Oops.\n"
.string "That didn't go very well.$"
AbandonedShip_Rooms2_1F_Text_238708: @ 8238708
AbandonedShip_Rooms2_1F_Text_JaniPostBattle: @ 8238708
.string "Walking around barefoot in this ship\n"
.string "is kind of gross.$"
AbandonedShip_Rooms2_1F_Text_23873F: @ 823873F
AbandonedShip_Rooms2_1F_Text_GarrisonIntro: @ 823873F
.string "Strength and compassion…\n"
.string "Those are a TRAINER's treasures!$"
AbandonedShip_Rooms2_1F_Text_238779: @ 8238779
AbandonedShip_Rooms2_1F_Text_GarrisonDefeat: @ 8238779
.string "Ah, there is something about you\n"
.string "that sparkles.$"
AbandonedShip_Rooms2_1F_Text_2387A9: @ 82387A9
AbandonedShip_Rooms2_1F_Text_GarrisonPostBattle: @ 82387A9
.string "In a cabin somewhere on board,\n"
.string "I saw something sparkle.$"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Rooms2_B1F_EventScript_238025",
"script": "AbandonedShip_Rooms2_B1F_EventScript_Camper",
"flag": "0"
},
{

View File

@@ -1,11 +1,11 @@
AbandonedShip_Rooms2_B1F_MapScripts:: @ 8238024
.byte 0
AbandonedShip_Rooms2_B1F_EventScript_238025:: @ 8238025
msgbox AbandonedShip_Rooms2_B1F_Text_23802E, MSGBOX_NPC
AbandonedShip_Rooms2_B1F_EventScript_Camper:: @ 8238025
msgbox AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring, MSGBOX_NPC
end
AbandonedShip_Rooms2_B1F_Text_23802E: @ 823802E
AbandonedShip_Rooms2_B1F_Text_PerfectPlaceToGoExploring: @ 823802E
.string "This is a perfect place to go exploring!\n"
.string "It's exciting here!\p"
.string "I bet there're amazing treasures on\n"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 1,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Rooms_1F_EventScript_237A93",
"script": "AbandonedShip_Rooms_1F_EventScript_Gentleman",
"flag": "0"
},
{
@@ -50,7 +50,7 @@
"movement_range_y": 1,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "4",
"script": "AbandonedShip_Rooms_1F_EventScript_237AB3",
"script": "AbandonedShip_Rooms_1F_EventScript_Thalia",
"flag": "0"
},
{
@@ -63,7 +63,7 @@
"movement_range_y": 1,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "4",
"script": "AbandonedShip_Rooms_1F_EventScript_237A9C",
"script": "AbandonedShip_Rooms_1F_EventScript_Demetrius",
"flag": "0"
}
],

View File

@@ -1,78 +1,78 @@
AbandonedShip_Rooms_1F_MapScripts:: @ 8237A92
.byte 0
AbandonedShip_Rooms_1F_EventScript_237A93:: @ 8237A93
msgbox AbandonedShip_Rooms_1F_Text_237B15, MSGBOX_NPC
AbandonedShip_Rooms_1F_EventScript_Gentleman:: @ 8237A93
msgbox AbandonedShip_Rooms_1F_Text_TakingALookAround, MSGBOX_NPC
end
AbandonedShip_Rooms_1F_EventScript_237A9C:: @ 8237A9C
trainerbattle_single TRAINER_DEMETRIUS, AbandonedShip_Rooms_1F_Text_237D0C, AbandonedShip_Rooms_1F_Text_237D2A
msgbox AbandonedShip_Rooms_1F_Text_237D41, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms_1F_EventScript_Demetrius:: @ 8237A9C
trainerbattle_single TRAINER_DEMETRIUS, AbandonedShip_Rooms_1F_Text_DemetriusIntro, AbandonedShip_Rooms_1F_Text_DemetriusDefeat
msgbox AbandonedShip_Rooms_1F_Text_DemetriusPostBattle, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms_1F_EventScript_237AB3:: @ 8237AB3
trainerbattle_single TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_237B76, AbandonedShip_Rooms_1F_Text_237BB8, AbandonedShip_Rooms_1F_EventScript_237ADF
AbandonedShip_Rooms_1F_EventScript_Thalia:: @ 8237AB3
trainerbattle_single TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_ThaliaIntro, AbandonedShip_Rooms_1F_Text_ThaliaDefeat, AbandonedShip_Rooms_1F_EventScript_RegisterThalia
specialvar VAR_RESULT, ShouldTryRematchBattle
compare VAR_RESULT, 1
goto_if_eq AbandonedShip_Rooms_1F_EventScript_237AFE
msgbox AbandonedShip_Rooms_1F_Text_237BDB, MSGBOX_DEFAULT
compare VAR_RESULT, TRUE
goto_if_eq AbandonedShip_Rooms_1F_EventScript_ThaliaRematch
msgbox AbandonedShip_Rooms_1F_Text_ThaliaPostBattle, MSGBOX_DEFAULT
release
end
AbandonedShip_Rooms_1F_EventScript_237ADF:: @ 8237ADF
special sub_80B4808
AbandonedShip_Rooms_1F_EventScript_RegisterThalia:: @ 8237ADF
special PlayerFaceTrainerAfterBattle
waitmovement 0
msgbox AbandonedShip_Rooms_1F_Text_237C2A, MSGBOX_DEFAULT
msgbox AbandonedShip_Rooms_1F_Text_ThaliaRegister, MSGBOX_DEFAULT
register_matchcall TRAINER_THALIA_1
release
end
AbandonedShip_Rooms_1F_EventScript_237AFE:: @ 8237AFE
trainerbattle_rematch TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_237C69, AbandonedShip_Rooms_1F_Text_237CB2
msgbox AbandonedShip_Rooms_1F_Text_237CC9, MSGBOX_AUTOCLOSE
AbandonedShip_Rooms_1F_EventScript_ThaliaRematch:: @ 8237AFE
trainerbattle_rematch TRAINER_THALIA_1, AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro, AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat
msgbox AbandonedShip_Rooms_1F_Text_ThaliaPostRematch, MSGBOX_AUTOCLOSE
end
AbandonedShip_Rooms_1F_Text_237B15: @ 8237B15
AbandonedShip_Rooms_1F_Text_TakingALookAround: @ 8237B15
.string "Ships of this sort are rare, so I'm\n"
.string "taking a look around.\p"
.string "Hmhm…\n"
.string "There appear to be other cabins…$"
AbandonedShip_Rooms_1F_Text_237B76: @ 8237B76
AbandonedShip_Rooms_1F_Text_ThaliaIntro: @ 8237B76
.string "What on earth would compel you to\n"
.string "come here? You must be curious!$"
AbandonedShip_Rooms_1F_Text_237BB8: @ 8237BB8
AbandonedShip_Rooms_1F_Text_ThaliaDefeat: @ 8237BB8
.string "Not just curious, but also strong…$"
AbandonedShip_Rooms_1F_Text_237BDB: @ 8237BDB
AbandonedShip_Rooms_1F_Text_ThaliaPostBattle: @ 8237BDB
.string "The man next door…\p"
.string "He says he's just sightseeing,\n"
.string "but I don't know about that.$"
AbandonedShip_Rooms_1F_Text_237C2A: @ 8237C2A
AbandonedShip_Rooms_1F_Text_ThaliaRegister: @ 8237C2A
.string "You're such a tough TRAINER!\n"
.string "Let me register you as a memento!$"
AbandonedShip_Rooms_1F_Text_237C69: @ 8237C69
AbandonedShip_Rooms_1F_Text_ThaliaRematchIntro: @ 8237C69
.string "What on earth would compel you to\n"
.string "come back? You must really be curious!$"
AbandonedShip_Rooms_1F_Text_237CB2: @ 8237CB2
AbandonedShip_Rooms_1F_Text_ThaliaRematchDefeat: @ 8237CB2
.string "Aren't you too strong?$"
AbandonedShip_Rooms_1F_Text_237CC9: @ 8237CC9
AbandonedShip_Rooms_1F_Text_ThaliaPostRematch: @ 8237CC9
.string "I'm sure that man's up to something!\n"
.string "He just acts so suspiciously!$"
AbandonedShip_Rooms_1F_Text_237D0C: @ 8237D0C
AbandonedShip_Rooms_1F_Text_DemetriusIntro: @ 8237D0C
.string "Waaah!\n"
.string "I've been found! …Huh?$"
AbandonedShip_Rooms_1F_Text_237D2A: @ 8237D2A
AbandonedShip_Rooms_1F_Text_DemetriusDefeat: @ 8237D2A
.string "Oh, you're not my mom.$"
AbandonedShip_Rooms_1F_Text_237D41: @ 8237D41
AbandonedShip_Rooms_1F_Text_DemetriusPostBattle: @ 8237D41
.string "I'm in trouble with my mom, so I ran.\n"
.string "Keep it a secret where I am!$"

View File

@@ -24,7 +24,7 @@
"movement_range_y": 0,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AbandonedShip_Rooms_B1F_EventScript_237FC6",
"script": "AbandonedShip_Rooms_B1F_EventScript_FatMan",
"flag": "0"
},
{

View File

@@ -1,16 +1,16 @@
AbandonedShip_Rooms_B1F_MapScripts:: @ 8237FB7
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Rooms_B1F_MapScript1_237FBD
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Rooms_B1F_OnResume
.byte 0
AbandonedShip_Rooms_B1F_MapScript1_237FBD: @ 8237FBD
AbandonedShip_Rooms_B1F_OnResume: @ 8237FBD
setdivewarp MAP_ABANDONED_SHIP_UNDERWATER2, 255, 17, 4
end
AbandonedShip_Rooms_B1F_EventScript_237FC6:: @ 8237FC6
msgbox AbandonedShip_Rooms_B1F_Text_237FCF, MSGBOX_NPC
AbandonedShip_Rooms_B1F_EventScript_FatMan:: @ 8237FC6
msgbox AbandonedShip_Rooms_B1F_Text_GettingQueasy, MSGBOX_NPC
end
AbandonedShip_Rooms_B1F_Text_237FCF: @ 8237FCF
AbandonedShip_Rooms_B1F_Text_GettingQueasy: @ 8237FCF
.string "Urrrrppp…\p"
.string "I'm getting queasy just being aboard\n"
.string "this ship…\p"

View File

@@ -5,7 +5,7 @@
"music": "MUS_DEEPDEEP",
"region_map_section": "MAPSEC_ABANDONED_SHIP",
"requires_flash": false,
"weather": "WEATHER_BUBBLES",
"weather": "WEATHER_UNDERWATER_BUBBLES",
"map_type": "MAP_TYPE_UNDERWATER",
"allow_bike": true,
"allow_escape_rope": false,

View File

@@ -1,8 +1,8 @@
AbandonedShip_Underwater1_MapScripts:: @ 8238096
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater1_MapScript1_23809C
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater1_OnResume
.byte 0
AbandonedShip_Underwater1_MapScript1_23809C: @ 823809C
AbandonedShip_Underwater1_OnResume: @ 823809C
setdivewarp MAP_ABANDONED_SHIP_HIDDEN_FLOOR_CORRIDORS, 255, 0, 10
end

View File

@@ -5,7 +5,7 @@
"music": "MUS_DEEPDEEP",
"region_map_section": "MAPSEC_ABANDONED_SHIP",
"requires_flash": false,
"weather": "WEATHER_BUBBLES",
"weather": "WEATHER_UNDERWATER_BUBBLES",
"map_type": "MAP_TYPE_UNDERWATER",
"allow_bike": true,
"allow_escape_rope": false,

View File

@@ -1,8 +1,8 @@
AbandonedShip_Underwater2_MapScripts:: @ 823895D
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater2_MapScript1_238963
map_script MAP_SCRIPT_ON_RESUME, AbandonedShip_Underwater2_OnResume
.byte 0
AbandonedShip_Underwater2_MapScript1_238963: @ 8238963
AbandonedShip_Underwater2_OnResume: @ 8238963
setdivewarp MAP_ABANDONED_SHIP_ROOMS_B1F, 255, 13, 7
end

View File

@@ -24,7 +24,7 @@
"movement_range_y": 0,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AncientTomb_EventScript_23905A",
"script": "AncientTomb_EventScript_Registeel",
"flag": "FLAG_HIDE_REGISTEEL"
}
],
@@ -59,7 +59,7 @@
"y": 20,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AncientTomb_EventScript_239033"
"script": "AncientTomb_EventScript_CaveEntranceMiddle"
},
{
"type": "sign",
@@ -67,7 +67,7 @@
"y": 20,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AncientTomb_EventScript_239050"
"script": "AncientTomb_EventScript_CaveEntranceSide"
},
{
"type": "sign",
@@ -75,7 +75,7 @@
"y": 20,
"elevation": 0,
"player_facing_dir": "BG_EVENT_PLAYER_FACING_ANY",
"script": "AncientTomb_EventScript_239050"
"script": "AncientTomb_EventScript_CaveEntranceSide"
}
]
}

View File

@@ -1,34 +1,34 @@
AncientTomb_MapScripts:: @ 8238FB3
map_script MAP_SCRIPT_ON_RESUME, AncientTomb_MapScript1_238FC3
map_script MAP_SCRIPT_ON_LOAD, AncientTomb_MapScript1_238FF2
map_script MAP_SCRIPT_ON_RESUME, AncientTomb_OnResume
map_script MAP_SCRIPT_ON_LOAD, AncientTomb_OnLoad
map_script MAP_SCRIPT_ON_TRANSITION, AncientTomb_OnTransition
.byte 0
AncientTomb_MapScript1_238FC3: @ 8238FC3
call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AncientTomb_EventScript_238FCD
AncientTomb_OnResume: @ 8238FC3
call_if_set FLAG_SYS_CTRL_OBJ_DELETE, AncientTomb_EventScript_TryRemoveRegisteel
end
AncientTomb_EventScript_238FCD:: @ 8238FCD
AncientTomb_EventScript_TryRemoveRegisteel:: @ 8238FCD
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 7
compare VAR_RESULT, B_OUTCOME_CAUGHT
goto_if_ne Common_EventScript_NopReturn
removeobject VAR_LAST_TALKED
return
AncientTomb_OnTransition: @ 8238FE1
setflag FLAG_LANDMARK_ANCIENT_TOMB
call_if_unset FLAG_DEFEATED_REGISTEEL, AncientTomb_EventScript_238FEE
call_if_unset FLAG_DEFEATED_REGISTEEL, AncientTomb_EventScript_ShowRegisteel
end
AncientTomb_EventScript_238FEE:: @ 8238FEE
AncientTomb_EventScript_ShowRegisteel:: @ 8238FEE
clearflag FLAG_HIDE_REGISTEEL
return
AncientTomb_MapScript1_238FF2: @ 8238FF2
call_if_unset FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_238FFC
AncientTomb_OnLoad: @ 8238FF2
call_if_unset FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_HideRegiEntrance
end
AncientTomb_EventScript_238FFC:: @ 8238FFC
AncientTomb_EventScript_HideRegiEntrance:: @ 8238FFC
setmetatile 7, 19, METATILE_Cave_EntranceCover, 1
setmetatile 8, 19, METATILE_Cave_EntranceCover, 1
setmetatile 9, 19, METATILE_Cave_EntranceCover, 1
@@ -37,29 +37,29 @@ AncientTomb_EventScript_238FFC:: @ 8238FFC
setmetatile 9, 20, METATILE_Cave_SealedChamberBraille_Mid, 1
return
AncientTomb_EventScript_239033:: @ 8239033
AncientTomb_EventScript_CaveEntranceMiddle:: @ 8239033
lockall
goto_if_set FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_239046
braillemessage AncientTomb_Braille_2A6D06
goto_if_set FLAG_SYS_REGISTEEL_PUZZLE_COMPLETED, AncientTomb_EventScript_BigHoleInWall
braillemessage AncientTomb_Braille_ShineInTheMiddle
waitbuttonpress
hidebox2
closebraillemessage
releaseall
end
AncientTomb_EventScript_239046:: @ 8239046
msgbox gUnknown_0827304E, MSGBOX_DEFAULT
AncientTomb_EventScript_BigHoleInWall:: @ 8239046
msgbox gText_BigHoleInTheWall, MSGBOX_DEFAULT
releaseall
end
AncientTomb_EventScript_239050:: @ 8239050
AncientTomb_EventScript_CaveEntranceSide:: @ 8239050
lockall
braillemessage AncientTomb_Braille_2A6D06
braillemessage AncientTomb_Braille_ShineInTheMiddle
waitbuttonpress
hidebox2
closebraillemessage
releaseall
end
AncientTomb_EventScript_23905A:: @ 823905A
AncientTomb_EventScript_Registeel:: @ 823905A
lock
faceplayer
waitse
@@ -72,23 +72,23 @@ AncientTomb_EventScript_23905A:: @ 823905A
waitstate
clearflag FLAG_SYS_CTRL_OBJ_DELETE
specialvar VAR_RESULT, GetBattleOutcome
compare VAR_RESULT, 1
goto_if_eq AncientTomb_EventScript_2390A1
compare VAR_RESULT, 4
goto_if_eq AncientTomb_EventScript_2390AA
compare VAR_RESULT, 5
goto_if_eq AncientTomb_EventScript_2390AA
compare VAR_RESULT, B_OUTCOME_WON
goto_if_eq AncientTomb_EventScript_DefeatedRegisteel
compare VAR_RESULT, B_OUTCOME_RAN
goto_if_eq AncientTomb_EventScript_RanFromRegisteel
compare VAR_RESULT, B_OUTCOME_PLAYER_TELEPORTED
goto_if_eq AncientTomb_EventScript_RanFromRegisteel
setflag FLAG_DEFEATED_REGISTEEL
release
end
AncientTomb_EventScript_2390A1:: @ 82390A1
AncientTomb_EventScript_DefeatedRegisteel:: @ 82390A1
setflag FLAG_DEFEATED_REGISTEEL
goto AncientTomb_EventScript_27376D
goto Common_EventScript_RemoveStaticPokemon
end
AncientTomb_EventScript_2390AA:: @ 82390AA
setvar VAR_0x8004, 403
goto AncientTomb_EventScript_273776
AncientTomb_EventScript_RanFromRegisteel:: @ 82390AA
setvar VAR_0x8004, SPECIES_REGISTEEL
goto Common_EventScript_LegendaryFlewAway
end

View File

@@ -24,7 +24,7 @@
"movement_range_y": 0,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AquaHideout_1F_EventScript_233494",
"script": "AquaHideout_1F_EventScript_HideoutEntranceGrunt1",
"flag": "FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_1_BLOCKING_ENTRANCE"
},
{
@@ -37,7 +37,7 @@
"movement_range_y": 0,
"trainer_type": "0",
"trainer_sight_or_berry_tree_id": "0",
"script": "AquaHideout_1F_EventScript_2334C6",
"script": "AquaHideout_1F_EventScript_HideoutEntranceGrunt2",
"flag": "FLAG_HIDE_AQUA_HIDEOUT_1F_GRUNT_2_BLOCKING_ENTRANCE"
},
{
@@ -50,7 +50,7 @@
"movement_range_y": 5,
"trainer_type": "1",
"trainer_sight_or_berry_tree_id": "3",
"script": "AquaHideout_1F_EventScript_2334F8",
"script": "AquaHideout_1F_EventScript_Grunt1",
"flag": "FLAG_HIDE_AQUA_HIDEOUT_GRUNTS"
}
],

View File

@@ -1,55 +1,56 @@
AquaHideout_1F_MapScripts:: @ 8233493
.byte 0
AquaHideout_1F_EventScript_233494:: @ 8233494
@ The below two entrance guards give hints about what to do to progress the story
AquaHideout_1F_EventScript_HideoutEntranceGrunt1:: @ 8233494
lock
faceplayer
goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_2334BC
goto_if_set FLAG_RECEIVED_RED_OR_BLUE_ORB, AquaHideout_1F_EventScript_2334B2
msgbox AquaHideout_1F_Text_23351D, MSGBOX_DEFAULT
goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_SlateportHint1
goto_if_set FLAG_RECEIVED_RED_OR_BLUE_ORB, AquaHideout_1F_EventScript_MagmaHideoutHint1
msgbox AquaHideout_1F_Text_OurBossIsSnatchingSomething, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334B2:: @ 82334B2
msgbox AquaHideout_1F_Text_2335E3, MSGBOX_DEFAULT
AquaHideout_1F_EventScript_MagmaHideoutHint1:: @ 82334B2
msgbox AquaHideout_1F_Text_WhereMightMagmaHideoutBe, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334BC:: @ 82334BC
msgbox AquaHideout_1F_Text_23367D, MSGBOX_DEFAULT
AquaHideout_1F_EventScript_SlateportHint1:: @ 82334BC
msgbox AquaHideout_1F_Text_BossWentToJackASubmarine, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334C6:: @ 82334C6
AquaHideout_1F_EventScript_HideoutEntranceGrunt2:: @ 82334C6
lock
faceplayer
goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_2334EE
goto_if_set FLAG_RECEIVED_RED_OR_BLUE_ORB, AquaHideout_1F_EventScript_2334E4
msgbox AquaHideout_1F_Text_233739, MSGBOX_DEFAULT
goto_if_set FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, AquaHideout_1F_EventScript_SlateportHint2
goto_if_set FLAG_RECEIVED_RED_OR_BLUE_ORB, AquaHideout_1F_EventScript_MagmaHideoutHint2
msgbox AquaHideout_1F_Text_BossIsOnRoute122, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334E4:: @ 82334E4
msgbox AquaHideout_1F_Text_2337FA, MSGBOX_DEFAULT
AquaHideout_1F_EventScript_MagmaHideoutHint2:: @ 82334E4
msgbox AquaHideout_1F_Text_TeamMagmaAtMtChimney, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334EE:: @ 82334EE
msgbox AquaHideout_1F_Text_233884, MSGBOX_DEFAULT
AquaHideout_1F_EventScript_SlateportHint2:: @ 82334EE
msgbox AquaHideout_1F_Text_BossIsInSlateportCity, MSGBOX_DEFAULT
release
end
AquaHideout_1F_EventScript_2334F8:: @ 82334F8
trainerbattle_single TRAINER_GRUNT_1, AquaHideout_1F_Text_23393D, AquaHideout_1F_Text_233964, AquaHideout_1F_EventScript_233513
msgbox AquaHideout_1F_Text_233977, MSGBOX_AUTOCLOSE
AquaHideout_1F_EventScript_Grunt1:: @ 82334F8
trainerbattle_single TRAINER_GRUNT_AQUA_HIDEOUT_1, AquaHideout_1F_Text_Grunt1Intro, AquaHideout_1F_Text_Grunt1Defeat, AquaHideout_1F_EventScript_Grunt1Defeated
msgbox AquaHideout_1F_Text_Grunt1PostBattle, MSGBOX_AUTOCLOSE
end
AquaHideout_1F_EventScript_233513:: @ 8233513
msgbox AquaHideout_1F_Text_233977, MSGBOX_DEFAULT
AquaHideout_1F_EventScript_Grunt1Defeated:: @ 8233513
msgbox AquaHideout_1F_Text_Grunt1PostBattle, MSGBOX_DEFAULT
release
end
AquaHideout_1F_Text_23351D: @ 823351D
AquaHideout_1F_Text_OurBossIsSnatchingSomething: @ 823351D
.string "What? What? What do you want with \n"
.string "TEAM AQUA?\p"
.string "Our BOSS isn't here! He's gone off to\n"
@@ -59,7 +60,7 @@ AquaHideout_1F_Text_23351D: @ 823351D
.string "Wahaha! Do you really think I'd tell\n"
.string "you something that crucial?$"
AquaHideout_1F_Text_2335E3: @ 82335E3
AquaHideout_1F_Text_WhereMightMagmaHideoutBe: @ 82335E3
.string "What? What?\n"
.string "Are you a TEAM MAGMA grunt?\p"
.string "I hear that TEAM MAGMA is trying to\n"
@@ -67,7 +68,7 @@ AquaHideout_1F_Text_2335E3: @ 82335E3
.string "HIDEOUT.\p"
.string "But where might their HIDEOUT be?$"
AquaHideout_1F_Text_23367D: @ 823367D
AquaHideout_1F_Text_BossWentToJackASubmarine: @ 823367D
.string "What? What? What do you want with \n"
.string "TEAM AQUA?\p"
.string "Our BOSS isn't here!\n"
@@ -77,7 +78,7 @@ AquaHideout_1F_Text_23367D: @ 823367D
.string "Wahaha! Do you really think I'd tell\n"
.string "you something that crucial?$"
AquaHideout_1F_Text_233739: @ 8233739
AquaHideout_1F_Text_BossIsOnRoute122: @ 8233739
.string "What? What? What do you want with \n"
.string "TEAM AQUA?\p"
.string "Our BOSS isn't here! He's on his way to\n"
@@ -87,14 +88,14 @@ AquaHideout_1F_Text_233739: @ 8233739
.string "Wahaha! Do you really think I'd tell\n"
.string "you something that crucial?$"
AquaHideout_1F_Text_2337FA: @ 82337FA
AquaHideout_1F_Text_TeamMagmaAtMtChimney: @ 82337FA
.string "What? What?\n"
.string "Are you a TEAM MAGMA grunt?\p"
.string "I hear that TEAM MAGMA is after\n"
.string "an awesome POKéMON at MT. CHIMNEY.\p"
.string "But what is that POKéMON like?$"
AquaHideout_1F_Text_233884: @ 8233884
AquaHideout_1F_Text_BossIsInSlateportCity: @ 8233884
.string "What? What? What do you want with\n"
.string "TEAM AQUA?\p"
.string "Our BOSS isn't here!\n"
@@ -104,15 +105,15 @@ AquaHideout_1F_Text_233884: @ 8233884
.string "Wahaha! Do you really think I'd tell\n"
.string "you something that crucial?$"
AquaHideout_1F_Text_23393D: @ 823393D
AquaHideout_1F_Text_Grunt1Intro: @ 823393D
.string "Ayiyiyi!\n"
.string "Suspicious character spotted!$"
AquaHideout_1F_Text_233964: @ 8233964
AquaHideout_1F_Text_Grunt1Defeat: @ 8233964
.string "Grrrrr…\n"
.string "I lost it!$"
AquaHideout_1F_Text_233977: @ 8233977
AquaHideout_1F_Text_Grunt1PostBattle: @ 8233977
.string "I took the loss for the TEAM,\n"
.string "but I did my job…$"

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