summaryrefslogtreecommitdiff
path: root/data/items
diff options
context:
space:
mode:
authorRangi <remy.oukaour+rangi42@gmail.com>2021-03-03 22:22:41 -0500
committerRangi <remy.oukaour+rangi42@gmail.com>2021-03-05 16:10:25 -0500
commit5454e1e0deefc6b4fc8c4de0e63314052fceebc0 (patch)
tree565805b252fa596aab3f80b3128ebc91b1fae540 /data/items
parentb423e94be700cc6434465cf1dcccf0b677489192 (diff)
Verify data table sizes with table_width and assert_table_length macros
It also uncovered some off-by-one issues with defining some constants. A few structs now use rsreset/_RS to define their offset constants.
Diffstat (limited to 'data/items')
-rw-r--r--data/items/attributes.asm7
-rw-r--r--data/items/descriptions.asm5
-rw-r--r--data/items/fruit_trees.asm2
-rw-r--r--data/items/marts.asm4
4 files changed, 15 insertions, 3 deletions
diff --git a/data/items/attributes.asm b/data/items/attributes.asm
index 1ed369f0..964843c1 100644
--- a/data/items/attributes.asm
+++ b/data/items/attributes.asm
@@ -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
diff --git a/data/items/descriptions.asm b/data/items/descriptions.asm
index d259b364..7c195f78 100644
--- a/data/items/descriptions.asm
+++ b/data/items/descriptions.asm
@@ -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 TeruSama29Desc
+ assert_table_length NUM_ITEMS
dw TeruSama30Desc
dw TeruSama30Desc
dw TeruSama30Desc
@@ -256,6 +258,7 @@ ItemDescriptions:
dw TeruSama36Desc
dw TeruSama37Desc
dw TeruSama37Desc
+ assert_table_length $100
MasterBallDesc:
db "The best BALL. It"
diff --git a/data/items/fruit_trees.asm b/data/items/fruit_trees.asm
index 9c4e4793..ff39551e 100644
--- a/data/items/fruit_trees.asm
+++ b/data/items/fruit_trees.asm
@@ -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
diff --git a/data/items/marts.asm b/data/items/marts.asm
index 37bf846b..d96281df 100644
--- a/data/items/marts.asm
+++ b/data/items/marts.asm
@@ -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