From 40902ffe244544d638567642e4e01b9c5801db23 Mon Sep 17 00:00:00 2001 From: Rangi Date: Wed, 3 Mar 2021 22:22:41 -0500 Subject: 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 --- data/decorations/attributes.asm | 4 +++- data/decorations/decorations.asm | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) (limited to 'data/decorations') diff --git a/data/decorations/attributes.asm b/data/decorations/attributes.asm index 77cd1388b..5e62c3a11 100644 --- a/data/decorations/attributes.asm +++ b/data/decorations/attributes.asm @@ -1,5 +1,5 @@ decoration: MACRO - ; type, name, command, event flag, tile/sprite + ; type, name, action, event flag, tile/sprite db \1, \2, \3 dw \4 db \5 @@ -7,6 +7,7 @@ ENDM DecorationAttributes: ; entries correspond to deco constants + table_width DECOATTR_STRUCT_LENGTH, DecorationAttributes decoration DECO_PLANT, 0, 0, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0 decoration DECO_PLANT, PUT_IT_AWAY, PUT_AWAY_BED, EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1, 0 decoration DECO_BED, FEATHERY_BED, SET_UP_BED, EVENT_DECO_BED_1, $1b @@ -60,3 +61,4 @@ DecorationAttributes: decoration DECO_DOLL, TENTACOOL, SET_UP_DOLL, EVENT_DECO_TENTACOOL_DOLL, SPRITE_TENTACOOL decoration DECO_PLANT, GOLD_TROPHY, SET_UP_DOLL, EVENT_DECO_GOLD_TROPHY, SPRITE_GOLD_TROPHY decoration DECO_PLANT, SILVER_TROPHY, SET_UP_DOLL, EVENT_DECO_SILVER_TROPHY, SPRITE_SILVER_TROPHY + assert_table_length NUM_DECOS + NUM_DECO_CATEGORIES + 1 diff --git a/data/decorations/decorations.asm b/data/decorations/decorations.asm index e3ec28f1c..a5519efa0 100644 --- a/data/decorations/decorations.asm +++ b/data/decorations/decorations.asm @@ -1,5 +1,7 @@ DecorationIDs: ; see constants/deco_constants.asm + table_width 1, DecorationIDs + db DECO_FEATHERY_BED ; 2 db DECO_PINK_BED ; 3 db DECO_POLKADOT_BED ; 4 @@ -52,4 +54,5 @@ DecorationIDs: db DECO_GOLD_TROPHY_DOLL ; 33 db DECO_SILVER_TROPHY_DOLL ; 34 + assert_table_length NUM_DECOS db -1 ; end -- cgit v1.2.3