mirror of
https://github.com/pret/pokered.git
synced 2024-10-22 22:55:31 +00:00
227 lines
6.1 KiB
NASM
227 lines
6.1 KiB
NASM
; item ids
|
|
; indexes for:
|
|
; - ItemNames (see data/items/names.asm)
|
|
; - ItemPrices (see data/items/prices.asm)
|
|
; - TechnicalMachinePrices (see data/items/tm_prices.asm)
|
|
; - KeyItemBitfield (see data/items/key_items.asm)
|
|
; - ItemUsePtrTable (see engine/items/item_effects.asm)
|
|
const_def
|
|
const NO_ITEM ; $00
|
|
const MASTER_BALL ; $01
|
|
const ULTRA_BALL ; $02
|
|
const GREAT_BALL ; $03
|
|
const POKE_BALL ; $04
|
|
const TOWN_MAP ; $05
|
|
const BICYCLE ; $06
|
|
const SURFBOARD ; $07 buggy?
|
|
const SAFARI_BALL ; $08
|
|
const POKEDEX ; $09
|
|
const MOON_STONE ; $0A
|
|
const ANTIDOTE ; $0B
|
|
const BURN_HEAL ; $0C
|
|
const ICE_HEAL ; $0D
|
|
const AWAKENING ; $0E
|
|
const PARLYZ_HEAL ; $0F
|
|
const FULL_RESTORE ; $10
|
|
const MAX_POTION ; $11
|
|
const HYPER_POTION ; $12
|
|
const SUPER_POTION ; $13
|
|
const POTION ; $14
|
|
const BOULDERBADGE ; $15
|
|
const CASCADEBADGE ; $16
|
|
SAFARI_BAIT EQU $15 ; overload
|
|
SAFARI_ROCK EQU $16 ; overload
|
|
const THUNDERBADGE ; $17
|
|
const RAINBOWBADGE ; $18
|
|
const SOULBADGE ; $19
|
|
const MARSHBADGE ; $1A
|
|
const VOLCANOBADGE ; $1B
|
|
const EARTHBADGE ; $1C
|
|
const ESCAPE_ROPE ; $1D
|
|
const REPEL ; $1E
|
|
const OLD_AMBER ; $1F
|
|
const FIRE_STONE ; $20
|
|
const THUNDER_STONE ; $21
|
|
const WATER_STONE ; $22
|
|
const HP_UP ; $23
|
|
const PROTEIN ; $24
|
|
const IRON ; $25
|
|
const CARBOS ; $26
|
|
const CALCIUM ; $27
|
|
const RARE_CANDY ; $28
|
|
const DOME_FOSSIL ; $29
|
|
const HELIX_FOSSIL ; $2A
|
|
const SECRET_KEY ; $2B
|
|
const UNUSED_ITEM ; $2C "?????"
|
|
const BIKE_VOUCHER ; $2D
|
|
const X_ACCURACY ; $2E
|
|
const LEAF_STONE ; $2F
|
|
const CARD_KEY ; $30
|
|
const NUGGET ; $31
|
|
const PP_UP_2 ; $32
|
|
const POKE_DOLL ; $33
|
|
const FULL_HEAL ; $34
|
|
const REVIVE ; $35
|
|
const MAX_REVIVE ; $36
|
|
const GUARD_SPEC ; $37
|
|
const SUPER_REPEL ; $38
|
|
const MAX_REPEL ; $39
|
|
const DIRE_HIT ; $3A
|
|
const COIN ; $3B
|
|
const FRESH_WATER ; $3C
|
|
const SODA_POP ; $3D
|
|
const LEMONADE ; $3E
|
|
const S_S_TICKET ; $3F
|
|
const GOLD_TEETH ; $40
|
|
const X_ATTACK ; $41
|
|
const X_DEFEND ; $42
|
|
const X_SPEED ; $43
|
|
const X_SPECIAL ; $44
|
|
const COIN_CASE ; $45
|
|
const OAKS_PARCEL ; $46
|
|
const ITEMFINDER ; $47
|
|
const SILPH_SCOPE ; $48
|
|
const POKE_FLUTE ; $49
|
|
const LIFT_KEY ; $4A
|
|
const EXP_ALL ; $4B
|
|
const OLD_ROD ; $4C
|
|
const GOOD_ROD ; $4D
|
|
const SUPER_ROD ; $4E
|
|
const PP_UP ; $4F
|
|
const ETHER ; $50
|
|
const MAX_ETHER ; $51
|
|
const ELIXER ; $52
|
|
const MAX_ELIXER ; $53
|
|
const FLOOR_B2F ; $54
|
|
const FLOOR_B1F ; $55
|
|
const FLOOR_1F ; $56
|
|
const FLOOR_2F ; $57
|
|
const FLOOR_3F ; $58
|
|
const FLOOR_4F ; $59
|
|
const FLOOR_5F ; $5A
|
|
const FLOOR_6F ; $5B
|
|
const FLOOR_7F ; $5C
|
|
const FLOOR_8F ; $5D
|
|
const FLOOR_9F ; $5E
|
|
const FLOOR_10F ; $5F
|
|
const FLOOR_11F ; $60
|
|
const FLOOR_B4F ; $61
|
|
|
|
const_next $C4
|
|
|
|
; HMs are defined before TMs, so the actual number of TM definitions
|
|
; is not yet available. The TM quantity is hard-coded here and must
|
|
; match the actual number below.
|
|
NUM_TMS EQU 50
|
|
|
|
add_hm: MACRO
|
|
; Defines three constants:
|
|
; - HM_\1: the item id, starting at $C4
|
|
; - \1_TMNUM: the learnable TM/HM flag, starting at 51
|
|
; - HM##_MOVE: alias for the move id, equal to the value of \1
|
|
; The first usage also defines HM01 as the first HM item id.
|
|
IF !DEF(HM01)
|
|
HM01 EQU const_value
|
|
__tmhm_value__ = NUM_TMS + 1
|
|
ENDC
|
|
HM_VALUE EQU __tmhm_value__ - NUM_TMS
|
|
IF HM_VALUE < 10
|
|
MOVE_FOR_HM EQUS "HM0{d:HM_VALUE}_MOVE"
|
|
ELSE
|
|
MOVE_FOR_HM EQUS "HM{d:HM_VALUE}_MOVE"
|
|
ENDC
|
|
MOVE_FOR_HM = \1
|
|
PURGE MOVE_FOR_HM
|
|
PURGE HM_VALUE
|
|
const HM_\1
|
|
\1_TMNUM EQU __tmhm_value__
|
|
__tmhm_value__ = __tmhm_value__ + 1
|
|
ENDM
|
|
|
|
add_hm CUT ; $C4
|
|
add_hm FLY ; $C5
|
|
add_hm SURF ; $C6
|
|
add_hm STRENGTH ; $C7
|
|
add_hm FLASH ; $C8
|
|
NUM_HMS EQU const_value - HM01
|
|
|
|
add_tm: MACRO
|
|
; Defines three constants:
|
|
; - TM_\1: the item id, starting at $C9
|
|
; - \1_TMNUM: the learnable TM/HM flag, starting at 1
|
|
; - TM##_MOVE: alias for the move id, equal to the value of \1
|
|
; The first usage also defines TM01 as the first TM item id.
|
|
IF !DEF(TM01)
|
|
TM01 EQU const_value
|
|
__tmhm_value__ = 1
|
|
ENDC
|
|
IF __tmhm_value__ < 10
|
|
MOVE_FOR_TM EQUS "TM0{d:__tmhm_value__}_MOVE"
|
|
ELSE
|
|
MOVE_FOR_TM EQUS "TM{d:__tmhm_value__}_MOVE"
|
|
ENDC
|
|
MOVE_FOR_TM = \1
|
|
PURGE MOVE_FOR_TM
|
|
const TM_\1
|
|
\1_TMNUM EQU __tmhm_value__
|
|
__tmhm_value__ = __tmhm_value__ + 1
|
|
ENDM
|
|
|
|
add_tm MEGA_PUNCH ; $C9
|
|
add_tm RAZOR_WIND ; $CA
|
|
add_tm SWORDS_DANCE ; $CB
|
|
add_tm WHIRLWIND ; $CC
|
|
add_tm MEGA_KICK ; $CD
|
|
add_tm TOXIC ; $CE
|
|
add_tm HORN_DRILL ; $CF
|
|
add_tm BODY_SLAM ; $D0
|
|
add_tm TAKE_DOWN ; $D1
|
|
add_tm DOUBLE_EDGE ; $D2
|
|
add_tm BUBBLEBEAM ; $D3
|
|
add_tm WATER_GUN ; $D4
|
|
add_tm ICE_BEAM ; $D5
|
|
add_tm BLIZZARD ; $D6
|
|
add_tm HYPER_BEAM ; $D7
|
|
add_tm PAY_DAY ; $D8
|
|
add_tm SUBMISSION ; $D9
|
|
add_tm COUNTER ; $DA
|
|
add_tm SEISMIC_TOSS ; $DB
|
|
add_tm RAGE ; $DC
|
|
add_tm MEGA_DRAIN ; $DD
|
|
add_tm SOLARBEAM ; $DE
|
|
add_tm DRAGON_RAGE ; $DF
|
|
add_tm THUNDERBOLT ; $E0
|
|
add_tm THUNDER ; $E1
|
|
add_tm EARTHQUAKE ; $E2
|
|
add_tm FISSURE ; $E3
|
|
add_tm DIG ; $E4
|
|
add_tm PSYCHIC_M ; $E5
|
|
add_tm TELEPORT ; $E6
|
|
add_tm MIMIC ; $E7
|
|
add_tm DOUBLE_TEAM ; $E8
|
|
add_tm REFLECT ; $E9
|
|
add_tm BIDE ; $EA
|
|
add_tm METRONOME ; $EB
|
|
add_tm SELFDESTRUCT ; $EC
|
|
add_tm EGG_BOMB ; $ED
|
|
add_tm FIRE_BLAST ; $EE
|
|
add_tm SWIFT ; $EF
|
|
add_tm SKULL_BASH ; $F0
|
|
add_tm SOFTBOILED ; $F1
|
|
add_tm DREAM_EATER ; $F2
|
|
add_tm SKY_ATTACK ; $F3
|
|
add_tm REST ; $F4
|
|
add_tm THUNDER_WAVE ; $F5
|
|
add_tm PSYWAVE ; $F6
|
|
add_tm EXPLOSION ; $F7
|
|
add_tm ROCK_SLIDE ; $F8
|
|
add_tm TRI_ATTACK ; $F9
|
|
add_tm SUBSTITUTE ; $FA
|
|
assert NUM_TMS == const_value - TM01, "NUM_TMS ({d:NUM_TMS}) does not match the number of add_tm definitions"
|
|
|
|
NUM_TM_HM EQU NUM_TMS + NUM_HMS
|
|
|
|
; 50 TMs + 5 HMs = 55 learnable TM/HM flags per Pokémon.
|
|
; These fit in 7 bytes, with one unused bit left over.
|
|
__tmhm_value__ = NUM_TM_HM + 1
|
|
UNUSED_TMNUM EQU __tmhm_value__
|