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
This commit is contained in:
@@ -6,7 +6,8 @@ item_attribute: MACRO
|
||||
ENDM
|
||||
|
||||
ItemAttributes:
|
||||
; entries correspond to item ids
|
||||
; entries correspond to item ids (see constants/item_constants.asm)
|
||||
table_width ITEMATTR_STRUCT_LENGTH, ItemAttributes
|
||||
; MASTER_BALL
|
||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT, BALL, ITEMMENU_NOUSE, ITEMMENU_CLOSE
|
||||
; ULTRA_BALL
|
||||
@@ -387,6 +388,7 @@ ItemAttributes:
|
||||
item_attribute 50, HELD_NONE, 0, CANT_SELECT, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||
; ITEM_BE
|
||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||
assert_table_length NUM_ITEMS
|
||||
; TM01
|
||||
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
; TM02
|
||||
@@ -491,6 +493,7 @@ ItemAttributes:
|
||||
item_attribute 3000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
; TM50
|
||||
item_attribute 2000, HELD_NONE, 0, CANT_SELECT, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
assert_table_length NUM_ITEMS + NUM_TMS + 2 ; count ITEM_C3 and ITEM_DC
|
||||
; HM01
|
||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
; HM02
|
||||
@@ -505,6 +508,7 @@ ItemAttributes:
|
||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
; HM07
|
||||
item_attribute 0, HELD_NONE, 0, CANT_SELECT | CANT_TOSS, TM_HM, ITEMMENU_PARTY, ITEMMENU_NOUSE
|
||||
assert_table_length NUM_ITEMS + NUM_TMS + 2 + NUM_HMS ; count ITEM_C3 and ITEM_DC
|
||||
; ITEM_FA
|
||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||
; $fb
|
||||
@@ -519,3 +523,4 @@ ItemAttributes:
|
||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||
; $00
|
||||
item_attribute $9999, HELD_NONE, 0, NO_LIMITS, ITEM, ITEMMENU_NOUSE, ITEMMENU_NOUSE
|
||||
assert_table_length $100
|
||||
|
@@ -1,5 +1,5 @@
|
||||
BuenaPrizeItems:
|
||||
; there are NUM_BUENA_PRIZES entries
|
||||
table_width 2, BuenaPrizeItems
|
||||
db ULTRA_BALL, 2
|
||||
db FULL_RESTORE, 2
|
||||
db NUGGET, 3
|
||||
@@ -9,3 +9,4 @@ BuenaPrizeItems:
|
||||
db CARBOS, 5
|
||||
db CALCIUM, 5
|
||||
db HP_UP, 5
|
||||
assert_table_length NUM_BUENA_PRIZES
|
||||
|
@@ -1,5 +1,6 @@
|
||||
ItemDescriptions:
|
||||
; entries correspond to item ids
|
||||
; entries correspond to item ids (see constants/item_constants.asm)
|
||||
table_width 2, ItemDescriptions
|
||||
dw MasterBallDesc
|
||||
dw UltraBallDesc
|
||||
dw BrightpowderDesc
|
||||
@@ -190,6 +191,7 @@ ItemDescriptions:
|
||||
dw MusicMailDesc
|
||||
dw MirageMailDesc
|
||||
dw TeruSama25Desc
|
||||
assert_table_length NUM_ITEMS
|
||||
dw TeruSama26Desc
|
||||
dw TeruSama26Desc
|
||||
dw TeruSama26Desc
|
||||
@@ -255,6 +257,7 @@ ItemDescriptions:
|
||||
dw TeruSama31Desc
|
||||
dw TeruSama32Desc
|
||||
dw TeruSama33Desc
|
||||
assert_table_length $ff
|
||||
|
||||
MasterBallDesc:
|
||||
db "The best BALL. It"
|
||||
|
@@ -1,5 +1,6 @@
|
||||
FruitTreeItems:
|
||||
; entries correspond to FRUITTREE_* constants
|
||||
table_width 1, FruitTreeItems
|
||||
db BERRY ; ROUTE_29
|
||||
db BERRY ; ROUTE_30_1
|
||||
db BERRY ; ROUTE_38
|
||||
@@ -30,3 +31,4 @@ FruitTreeItems:
|
||||
db ICE_BERRY ; PEWTER_CITY_1
|
||||
db MINT_BERRY ; PEWTER_CITY_2
|
||||
db BURNT_BERRY ; FUCHSIA_CITY
|
||||
assert_table_length NUM_FRUIT_TREES
|
||||
|
@@ -1,5 +1,6 @@
|
||||
Marts:
|
||||
; entries correspond to MART_* constants
|
||||
; entries correspond to MART_* constants (see constants/mart_constants.asm)
|
||||
table_width 2, Marts
|
||||
dw MartCherrygrove
|
||||
dw MartCherrygroveDex
|
||||
dw MartViolet
|
||||
@@ -34,6 +35,7 @@ Marts:
|
||||
dw MartMtMoon
|
||||
dw MartIndigoPlateau
|
||||
dw MartUnderground
|
||||
assert_table_length NUM_MARTS
|
||||
|
||||
MartCherrygrove:
|
||||
db 4 ; # items
|
||||
|
Reference in New Issue
Block a user