1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
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
|