pokecrystal-board/data/party_menu_qualities.asm
Rangi 40902ffe24 Verify data table sizes with table_width and assert_table_length macros
This was discussed in #706

It also uncovered some off-by-one issues with defining some constants.

A few structs now use rsreset/_RS to define their offset constants, as discussed in #739
2021-03-04 00:15:03 -05:00

41 lines
1.4 KiB
NASM

; WritePartyMenuTilemap.Jumptable indexes (see engine/pokemon/party_menu.asm)
const_def
const PARTYMENUQUALITY_NICKNAMES
const PARTYMENUQUALITY_HP_BAR
const PARTYMENUQUALITY_HP_DIGITS
const PARTYMENUQUALITY_LEVEL
const PARTYMENUQUALITY_STATUS
const PARTYMENUQUALITY_TMHM_COMPAT
const PARTYMENUQUALITY_EVO_STONE_COMPAT
const PARTYMENUQUALITY_GENDER
const PARTYMENUQUALITY_MOBILE_SELECTION
partymenuqualities: MACRO
rept _NARG
db PARTYMENUQUALITY_\1
shift
endr
db -1 ; end
ENDM
PartyMenuQualityPointers:
; entries correspond to PARTYMENUACTION_* constants
table_width 2, PartyMenuQualityPointers
dw .Default ; PARTYMENUACTION_CHOOSE_POKEMON
dw .Default ; PARTYMENUACTION_HEALING_ITEM
dw .Default ; PARTYMENUACTION_SWITCH
dw .TMHM ; PARTYMENUACTION_TEACH_TMHM
dw .Default ; PARTYMENUACTION_MOVE
dw .EvoStone ; PARTYMENUACTION_EVO_STONE
dw .Gender ; PARTYMENUACTION_GIVE_MON
dw .Gender ; PARTYMENUACTION_GIVE_MON_FEMALE
dw .Default ; PARTYMENUACTION_GIVE_ITEM
dw .Mobile ; PARTYMENUACTION_MOBILE
assert_table_length NUM_PARTYMENUACTIONS
.Default: partymenuqualities NICKNAMES, HP_BAR, HP_DIGITS, LEVEL, STATUS
.TMHM: partymenuqualities NICKNAMES, TMHM_COMPAT, LEVEL, STATUS
.EvoStone: partymenuqualities NICKNAMES, EVO_STONE_COMPAT, LEVEL, STATUS
.Gender: partymenuqualities NICKNAMES, GENDER, LEVEL, STATUS
.Mobile: partymenuqualities NICKNAMES, MOBILE_SELECTION, LEVEL, STATUS