summaryrefslogtreecommitdiff
path: root/asm/macros
diff options
context:
space:
mode:
Diffstat (limited to 'asm/macros')
-rw-r--r--asm/macros/battle_frontier/apprentice.inc31
-rw-r--r--asm/macros/battle_frontier/battle_arena.inc82
-rw-r--r--asm/macros/battle_frontier/battle_dome.inc147
-rw-r--r--asm/macros/battle_frontier/battle_factory.inc104
-rw-r--r--asm/macros/battle_frontier/battle_palace.inc68
-rw-r--r--asm/macros/battle_frontier/battle_pike.inc151
-rw-r--r--asm/macros/battle_frontier/battle_pyramid.inc98
-rw-r--r--asm/macros/battle_frontier/battle_tower.inc63
-rw-r--r--asm/macros/battle_tent.inc168
-rw-r--r--asm/macros/trainer_hill.inc20
10 files changed, 855 insertions, 77 deletions
diff --git a/asm/macros/battle_frontier/apprentice.inc b/asm/macros/battle_frontier/apprentice.inc
index e9b098a18..5d9ab8e3b 100644
--- a/asm/macros/battle_frontier/apprentice.inc
+++ b/asm/macros/battle_frontier/apprentice.inc
@@ -1,22 +1,24 @@
-@ TODO: These need to have description comment
-
+ @ 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
+ 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
@@ -24,16 +26,19 @@
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
@@ -42,46 +47,54 @@
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
- .macro apprentice_buff whichstringvar:req, tobuff:req
+ @ 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, \whichstringvar
+ setvar VAR_0x8005, \stringvar
.if \tobuff >= VARS_START
copyvar VAR_0x8006, \tobuff
.else
@@ -90,43 +103,51 @@
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
diff --git a/asm/macros/battle_frontier/battle_arena.inc b/asm/macros/battle_frontier/battle_arena.inc
index 1c32de981..8280f5845 100644
--- a/asm/macros/battle_frontier/battle_arena.inc
+++ b/asm/macros/battle_frontier/battle_arena.inc
@@ -1,45 +1,49 @@
- @ Initialize the Battle Arena challenge
- .macro arena_init
- setvar VAR_0x8004, BATTLE_ARENA_FUNC_INIT
- special CallBattleArenaFunction
- .endm
+ @ 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
+ @ 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
- setvar VAR_0x8006, \val
- 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
+ @ 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 reward item to give from one of two lists of possible awards, depending on streak.
- .macro arena_setreward
- setvar VAR_0x8004, BATTLE_ARENA_FUNC_SET_REWARD
- 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 award item to the player. TRUE if room in Bag for award, FALSE otherwise
- .macro arena_givereward
- setvar VAR_0x8004, BATTLE_ARENA_FUNC_GIVE_REWARD
- 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
+ @ Buffer the opponents name to STR_VAR_1
+ .macro arena_gettrainername
+ setvar VAR_0x8004, BATTLE_ARENA_FUNC_GET_TRAINER_NAME
+ special CallBattleArenaFunction
+ .endm
diff --git a/asm/macros/battle_frontier/battle_dome.inc b/asm/macros/battle_frontier/battle_dome.inc
index 12672ea37..882c82e8b 100644
--- a/asm/macros/battle_frontier/battle_dome.inc
+++ b/asm/macros/battle_frontier/battle_dome.inc
@@ -1 +1,146 @@
-@ To be populated with macros for CallBattleDomeFunction
+@ TODO: Add explanatory comments to macros
+
+ @ 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
+
+ @
+ .macro dome_getroundtext
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_ROUND_TEXT
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_getopponentname
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_GET_OPPONENT_NAME
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_initopponentparty
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_OPPONENT_PARTY
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_showopponentinfo
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_OPPONENT_INFO
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_showtourneytree
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_TOURNEY_TREE
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_showresultstree
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_PREV_RESULTS_TREE
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_setopponent
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_ID
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_setopponentgfx
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SET_OPPONENT_GFX
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_showstatictourneytree
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_SHOW_STATIC_TOURNEY_TREE
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_resolvewinners arg:req
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_RESOLVE_WINNERS
+ setvar VAR_0x8005, \arg
+ 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
+
+ @
+ .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
+
+ @
+ .macro dome_restorehelditems
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_RESTORE_HELD_ITEMS
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_reduceparty
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_REDUCE_PARTY
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .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
+
+ @ TODO: Document this macro and its function
+ .macro dome_21
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_21
+ special CallBattleDomeFunction
+ .endm
+
+ @
+ .macro dome_inittrainers
+ setvar VAR_0x8004, BATTLE_DOME_FUNC_INIT_TRAINERS
+ special CallBattleDomeFunction
+ .endm
diff --git a/asm/macros/battle_frontier/battle_factory.inc b/asm/macros/battle_frontier/battle_factory.inc
index 9a8879df8..5a1eb33b7 100644
--- a/asm/macros/battle_frontier/battle_factory.inc
+++ b/asm/macros/battle_frontier/battle_factory.inc
@@ -1 +1,103 @@
-@ To be populated with macros for CallBattleFactoryFunction
+@ TODO: Add explanatory comments to macros
+
+ @ 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
+
+ @
+ .macro factory_rentmons
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SELECT_RENT_MONS
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_swapmons
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SWAP_RENT_MONS
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_setswapped
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_SWAPPED
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_setopponentmons
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_MONS
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_setparties arg:req
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_PARTIES
+ setvar VAR_0x8005, \arg
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_setopponentgfx
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_SET_OPPONENT_GFX
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_generateopponentmons
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_OPPONENT_MONS
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_generaterentalmons
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GENERATE_RENTAL_MONS
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_getopponentmontype
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_MON_TYPE
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_getopponentstyle
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_GET_OPPONENT_STYLE
+ special CallBattleFactoryFunction
+ .endm
+
+ @
+ .macro factory_resethelditems
+ setvar VAR_0x8004, BATTLE_FACTORY_FUNC_RESET_HELD_ITEMS
+ special CallBattleFactoryFunction
+ .endm
+
diff --git a/asm/macros/battle_frontier/battle_palace.inc b/asm/macros/battle_frontier/battle_palace.inc
index 2b59fd734..f326c1154 100644
--- a/asm/macros/battle_frontier/battle_palace.inc
+++ b/asm/macros/battle_frontier/battle_palace.inc
@@ -1,7 +1,63 @@
-@ To be populated with macros for CallBattlePalaceFunction
+ @ Initialize the Battle Palace challenge
+ .macro palace_init
+ setvar VAR_0x8004, BATTLE_PALACE_FUNC_INIT
+ 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
+ @ 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
diff --git a/asm/macros/battle_frontier/battle_pike.inc b/asm/macros/battle_frontier/battle_pike.inc
index 0f2d2627d..30f5c88d8 100644
--- a/asm/macros/battle_frontier/battle_pike.inc
+++ b/asm/macros/battle_frontier/battle_pike.inc
@@ -1,54 +1,171 @@
-@ To be populated with macros for CallBattlePikeFunction
+ @ Set sRoomType to the next PIKE_ROOM_* id
+ .macro pike_setnextroom
+ setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE
+ special CallBattlePikeFunction
+ .endm
- .macro battlepike_getstreak
+ @ 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, 1
+ setvar VAR_0x8005, \data
special CallBattlePikeFunction
.endm
- .macro battlepike_setstreak streak:req
+ @ 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, 1
- .if \streak >= VARS_START
- copyvar VAR_0x8006, \streak
+ setvar VAR_0x8005, \data
+ .if \val >= VARS_START
+ copyvar VAR_0x8006, \val
.else
- setvar VAR_0x8006, \streak
+ setvar VAR_0x8006, \val
.endif
special CallBattlePikeFunction
.endm
- .macro battlepike_isfinalroom
+ @ 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
- .macro battlepike_setroomobjects
+ @ 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
- .macro battlepike_getroomtype
+ @ Get the current room type (sRoomType)
+ .macro pike_getroomtype
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE
special CallBattlePikeFunction
.endm
- .macro battlepike_setnextroom
- setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE
+ @ 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
- .macro battlepike_gethint
+ @ 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
- .macro battlepike_nohealing set:req
- setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HEALING_ROOMS_DISABLED
+ @ 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
- .macro battlepike_ispartyfullhealth
+ @ 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
diff --git a/asm/macros/battle_frontier/battle_pyramid.inc b/asm/macros/battle_frontier/battle_pyramid.inc
index e23a819c0..0468e5956 100644
--- a/asm/macros/battle_frontier/battle_pyramid.inc
+++ b/asm/macros/battle_frontier/battle_pyramid.inc
@@ -1 +1,97 @@
-@ To be populated with macros for CallBattlePyramidFunction
+@ TODO: Add explanatory comments to macros
+
+ @ 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
+
+ @
+ .macro pyramid_setprize
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_PRIZE
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_seedfloor
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SEED_FLOOR
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_setitem
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_ITEM
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_hideitem
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_HIDE_ITEM
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_inittrainers
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_INIT_TRAINERS
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .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
+
+ @
+ .macro pyramid_updatelight radius:req, mode:req
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_UPDATE_LIGHT
+ setvar VAR_0x8005, \radius
+ setvar VAR_0x8006, \mode
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_clearhelditems
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_CLEAR_HELD_ITEMS
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_setfloorpal
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_SET_FLOOR_PALETTE
+ special CallBattlePyramidFunction
+ .endm
+
+ @
+ .macro pyramid_healparty
+ setvar VAR_0x8004, BATTLE_PYRAMID_FUNC_RESTORE_PARTY
+ special CallBattlePyramidFunction
+ .endm
diff --git a/asm/macros/battle_frontier/battle_tower.inc b/asm/macros/battle_frontier/battle_tower.inc
index e9f8c9293..d5a02ea21 100644
--- a/asm/macros/battle_frontier/battle_tower.inc
+++ b/asm/macros/battle_frontier/battle_tower.inc
@@ -1,7 +1,62 @@
-@ To be populated with macros for CallBattleTowerFunc
+ @ 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
+
+ @ TODO: Document and add macros for BATTLE_TOWER_FUNC_10 - BATTLE_TOWER_FUNC_14
- .macro battletower_getstreak
- setvar VAR_0x8004, BATTLE_TOWER_FUNC_1
- setvar VAR_0x8005, 1
+ @ 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
diff --git a/asm/macros/battle_tent.inc b/asm/macros/battle_tent.inc
index 9a304475b..663d1d344 100644
--- a/asm/macros/battle_tent.inc
+++ b/asm/macros/battle_tent.inc
@@ -1 +1,167 @@
-@ To be populated with macros for CallVerdanturfTentFunction, CallFallarborTentFunction, and CallSlateportTentFunction
+@ 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
+
diff --git a/asm/macros/trainer_hill.inc b/asm/macros/trainer_hill.inc
index 7ea1c77f6..d5c84fd02 100644
--- a/asm/macros/trainer_hill.inc
+++ b/asm/macros/trainer_hill.inc
@@ -1,90 +1,106 @@
-@ TODO: These need to have description comment
-
+ @ 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