Merge branch 'master' into fix-eventobj

This commit is contained in:
GriffinR
2019-12-06 02:34:54 -05:00
committed by GitHub
106 changed files with 1965 additions and 1418 deletions

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -1,54 +1,173 @@
@ To be populated with macros for CallBattlePikeFunction
@ TODO: Add explanatory comments to macros
.macro battlepike_getstreak
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_DATA
setvar VAR_0x8005, 1
special CallBattlePikeFunction
.endm
.macro battlepike_setstreak streak:req
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_DATA
setvar VAR_0x8005, 1
.if \streak >= VARS_START
copyvar VAR_0x8006, \streak
.else
setvar VAR_0x8006, \streak
.endif
special CallBattlePikeFunction
.endm
.macro battlepike_isfinalroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM
special CallBattlePikeFunction
.endm
.macro battlepike_setroomobjects
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS
special CallBattlePikeFunction
.endm
.macro battlepike_getroomtype
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_TYPE
special CallBattlePikeFunction
.endm
.macro battlepike_setnextroom
@
.macro pike_setnextroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_TYPE
special CallBattlePikeFunction
.endm
.macro battlepike_gethint
@ 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
@
.macro pike_isfinalroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_FINAL_ROOM
special CallBattlePikeFunction
.endm
@
.macro pike_setroomobjects
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_ROOM_OBJECTS
special CallBattlePikeFunction
.endm
@
.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
@
.macro pike_getstatus
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS
special CallBattlePikeFunction
.endm
@
.macro pike_getstatusmon
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_ROOM_STATUS_MON
special CallBattlePikeFunction
.endm
@
.macro pike_healonetwomons
setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_ONE_TWO_MONS
special CallBattlePikeFunction
.endm
@
.macro pike_getnpcmsg
setvar VAR_0x8004, BATTLE_PIKE_FUNC_BUFFER_NPC_MSG
special CallBattlePikeFunction
.endm
@
.macro pike_fadescreen
setvar VAR_0x8004, BATTLE_PIKE_FUNC_STATUS_SCREEN_FADE
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
@ TRUE if its the Pike Queens room
.macro pike_sethintroom
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SET_HINT_ROOM
special CallBattlePikeFunction
.endm
@
.macro pike_gethintroomid
setvar VAR_0x8004, BATTLE_PIKE_FUNC_GET_HINT_ROOM_ID
special CallBattlePikeFunction
.endm
@
.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
@
.macro pike_cleartrainerids
setvar VAR_0x8004, BATTLE_PIKE_FUNC_CLEAR_TRAINER_IDS
special CallBattlePikeFunction
.endm
@
.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
@
.macro pike_prequeenheal
setvar VAR_0x8004, BATTLE_PIKE_FUNC_HEAL_MONS_BEFORE_QUEEN
special CallBattlePikeFunction
.endm
@
.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
@
.macro pike_ispartyfullhealth
setvar VAR_0x8004, BATTLE_PIKE_FUNC_IS_PARTY_FULL_HEALTH
special CallBattlePikeFunction
.endm
@
.macro pike_savehelditems
setvar VAR_0x8004, BATTLE_PIKE_FUNC_SAVE_HELD_ITEMS
special CallBattlePikeFunction
.endm
@
.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

@@ -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

View File

@@ -1,7 +1,62 @@
@ To be populated with macros for CallBattleTowerFunc
.macro battletower_getstreak
setvar VAR_0x8004, BATTLE_TOWER_FUNC_1
setvar VAR_0x8005, 1
@ 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
@ 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

@@ -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

View File

@@ -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