summaryrefslogtreecommitdiff
path: root/asm/macros/battle_frontier/battle_pyramid.inc
diff options
context:
space:
mode:
Diffstat (limited to 'asm/macros/battle_frontier/battle_pyramid.inc')
-rw-r--r--asm/macros/battle_frontier/battle_pyramid.inc104
1 files changed, 104 insertions, 0 deletions
diff --git a/asm/macros/battle_frontier/battle_pyramid.inc b/asm/macros/battle_frontier/battle_pyramid.inc
new file mode 100644
index 000000000..f8141e2dd
--- /dev/null
+++ b/asm/macros/battle_frontier/battle_pyramid.inc
@@ -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