mirror of https://github.com/pret/pokeemerald.git
105 lines
3.4 KiB
PHP
105 lines
3.4 KiB
PHP
@ 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
|