Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
pret
GitHub Repository: pret/pokered
Path: blob/master/constants/item_constants.asm
1270 views
1
; item ids
2
; indexes for:
3
; - ItemNames (see data/items/names.asm)
4
; - ItemPrices (see data/items/prices.asm)
5
; - TechnicalMachinePrices (see data/items/tm_prices.asm)
6
; - KeyItemFlags (see data/items/key_items.asm)
7
; - ItemUsePtrTable (see engine/items/item_effects.asm)
8
const_def
9
const NO_ITEM ; $00
10
const MASTER_BALL ; $01
11
const ULTRA_BALL ; $02
12
const GREAT_BALL ; $03
13
const POKE_BALL ; $04
14
const TOWN_MAP ; $05
15
const BICYCLE ; $06
16
const SURFBOARD ; $07
17
const SAFARI_BALL ; $08
18
const POKEDEX ; $09
19
const MOON_STONE ; $0A
20
const ANTIDOTE ; $0B
21
const BURN_HEAL ; $0C
22
const ICE_HEAL ; $0D
23
const AWAKENING ; $0E
24
const PARLYZ_HEAL ; $0F
25
const FULL_RESTORE ; $10
26
const MAX_POTION ; $11
27
const HYPER_POTION ; $12
28
const SUPER_POTION ; $13
29
const POTION ; $14
30
; badges use item IDs (see scripts/CeruleanBadgeHouse.asm)
31
const BOULDERBADGE ; $15
32
DEF SAFARI_BAIT EQU BOULDERBADGE ; overload
33
const CASCADEBADGE ; $16
34
DEF SAFARI_ROCK EQU CASCADEBADGE ; overload
35
const THUNDERBADGE ; $17
36
const RAINBOWBADGE ; $18
37
const SOULBADGE ; $19
38
const MARSHBADGE ; $1A
39
const VOLCANOBADGE ; $1B
40
const EARTHBADGE ; $1C
41
const ESCAPE_ROPE ; $1D
42
const REPEL ; $1E
43
const OLD_AMBER ; $1F
44
const FIRE_STONE ; $20
45
const THUNDER_STONE ; $21
46
const WATER_STONE ; $22
47
const HP_UP ; $23
48
const PROTEIN ; $24
49
const IRON ; $25
50
const CARBOS ; $26
51
const CALCIUM ; $27
52
const RARE_CANDY ; $28
53
const DOME_FOSSIL ; $29
54
const HELIX_FOSSIL ; $2A
55
const SECRET_KEY ; $2B
56
const ITEM_2C ; $2C ; unused
57
const BIKE_VOUCHER ; $2D
58
const X_ACCURACY ; $2E
59
const LEAF_STONE ; $2F
60
const CARD_KEY ; $30
61
const NUGGET ; $31
62
const ITEM_32 ; $32 ; unused
63
const POKE_DOLL ; $33
64
const FULL_HEAL ; $34
65
const REVIVE ; $35
66
const MAX_REVIVE ; $36
67
const GUARD_SPEC ; $37
68
const SUPER_REPEL ; $38
69
const MAX_REPEL ; $39
70
const DIRE_HIT ; $3A
71
const COIN ; $3B
72
const FRESH_WATER ; $3C
73
const SODA_POP ; $3D
74
const LEMONADE ; $3E
75
const S_S_TICKET ; $3F
76
const GOLD_TEETH ; $40
77
const X_ATTACK ; $41
78
const X_DEFEND ; $42
79
const X_SPEED ; $43
80
const X_SPECIAL ; $44
81
const COIN_CASE ; $45
82
const OAKS_PARCEL ; $46
83
const ITEMFINDER ; $47
84
const SILPH_SCOPE ; $48
85
const POKE_FLUTE ; $49
86
const LIFT_KEY ; $4A
87
const EXP_ALL ; $4B
88
const OLD_ROD ; $4C
89
const GOOD_ROD ; $4D
90
const SUPER_ROD ; $4E
91
const PP_UP ; $4F
92
const ETHER ; $50
93
const MAX_ETHER ; $51
94
const ELIXER ; $52
95
const MAX_ELIXER ; $53
96
DEF NUM_ITEMS EQU const_value - 1
97
98
; elevator floors use item IDs (see scripts/CeladonMartElevator.asm and scripts/SilphCoElevator.asm)
99
const FLOOR_B2F ; $54
100
const FLOOR_B1F ; $55
101
const FLOOR_1F ; $56
102
const FLOOR_2F ; $57
103
const FLOOR_3F ; $58
104
const FLOOR_4F ; $59
105
const FLOOR_5F ; $5A
106
const FLOOR_6F ; $5B
107
const FLOOR_7F ; $5C
108
const FLOOR_8F ; $5D
109
const FLOOR_9F ; $5E
110
const FLOOR_10F ; $5F
111
const FLOOR_11F ; $60
112
const FLOOR_B4F ; $61
113
DEF NUM_FLOORS EQU const_value - 1 - NUM_ITEMS
114
115
const_next $C4
116
117
; HMs are defined before TMs, so the actual number of TM definitions
118
; is not yet available. The TM quantity is hard-coded here and must
119
; match the actual number below.
120
DEF NUM_TMS EQU 50
121
122
DEF __tmhm_value__ = NUM_TMS + 1
123
124
MACRO add_tmnum
125
DEF \1_TMNUM EQU __tmhm_value__
126
DEF __tmhm_value__ += 1
127
ENDM
128
129
MACRO add_hm
130
; Defines three constants:
131
; - HM_\1: the item id, starting at $C4
132
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
133
; - HM##_MOVE: alias for the move id, equal to the value of \1
134
const HM_\1
135
DEF HM_VALUE = __tmhm_value__ - NUM_TMS
136
DEF HM{02d:HM_VALUE}_MOVE EQU \1
137
add_tmnum \1
138
ENDM
139
140
DEF HM01 EQU const_value
141
add_hm CUT ; $C4
142
add_hm FLY ; $C5
143
add_hm SURF ; $C6
144
add_hm STRENGTH ; $C7
145
add_hm FLASH ; $C8
146
DEF NUM_HMS EQU const_value - HM01
147
148
DEF __tmhm_value__ = 1
149
150
MACRO add_tm
151
; Defines three constants:
152
; - TM_\1: the item id, starting at $C9
153
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
154
; - TM##_MOVE: alias for the move id, equal to the value of \1
155
const TM_\1
156
DEF TM{02d:__tmhm_value__}_MOVE EQU \1
157
add_tmnum \1
158
ENDM
159
160
DEF TM01 EQU const_value
161
add_tm MEGA_PUNCH ; $C9
162
add_tm RAZOR_WIND ; $CA
163
add_tm SWORDS_DANCE ; $CB
164
add_tm WHIRLWIND ; $CC
165
add_tm MEGA_KICK ; $CD
166
add_tm TOXIC ; $CE
167
add_tm HORN_DRILL ; $CF
168
add_tm BODY_SLAM ; $D0
169
add_tm TAKE_DOWN ; $D1
170
add_tm DOUBLE_EDGE ; $D2
171
add_tm BUBBLEBEAM ; $D3
172
add_tm WATER_GUN ; $D4
173
add_tm ICE_BEAM ; $D5
174
add_tm BLIZZARD ; $D6
175
add_tm HYPER_BEAM ; $D7
176
add_tm PAY_DAY ; $D8
177
add_tm SUBMISSION ; $D9
178
add_tm COUNTER ; $DA
179
add_tm SEISMIC_TOSS ; $DB
180
add_tm RAGE ; $DC
181
add_tm MEGA_DRAIN ; $DD
182
add_tm SOLARBEAM ; $DE
183
add_tm DRAGON_RAGE ; $DF
184
add_tm THUNDERBOLT ; $E0
185
add_tm THUNDER ; $E1
186
add_tm EARTHQUAKE ; $E2
187
add_tm FISSURE ; $E3
188
add_tm DIG ; $E4
189
add_tm PSYCHIC_M ; $E5
190
add_tm TELEPORT ; $E6
191
add_tm MIMIC ; $E7
192
add_tm DOUBLE_TEAM ; $E8
193
add_tm REFLECT ; $E9
194
add_tm BIDE ; $EA
195
add_tm METRONOME ; $EB
196
add_tm SELFDESTRUCT ; $EC
197
add_tm EGG_BOMB ; $ED
198
add_tm FIRE_BLAST ; $EE
199
add_tm SWIFT ; $EF
200
add_tm SKULL_BASH ; $F0
201
add_tm SOFTBOILED ; $F1
202
add_tm DREAM_EATER ; $F2
203
add_tm SKY_ATTACK ; $F3
204
add_tm REST ; $F4
205
add_tm THUNDER_WAVE ; $F5
206
add_tm PSYWAVE ; $F6
207
add_tm EXPLOSION ; $F7
208
add_tm ROCK_SLIDE ; $F8
209
add_tm TRI_ATTACK ; $F9
210
add_tm SUBSTITUTE ; $FA
211
ASSERT NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions"
212
213
DEF NUM_TM_HM EQU NUM_TMS + NUM_HMS
214
215
; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
216
; These fit in 7 bytes, with one unused bit left over.
217
DEF __tmhm_value__ = NUM_TM_HM + 1
218
DEF UNUSED_TMNUM EQU __tmhm_value__
219
220
DEF MAX_HIDDEN_ITEMS EQU 112
221
DEF MAX_HIDDEN_COINS EQU 16
222
223