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/types/names.asm | 4 ++++ data/types/search_strings.asm | 2 ++ data/types/search_types.asm | 2 ++ 3 files changed, 8 insertions(+) (limited to 'data/types') diff --git a/data/types/names.asm b/data/types/names.asm index 62d8e13bf..94fe67e13 100644 --- a/data/types/names.asm +++ b/data/types/names.asm @@ -1,5 +1,6 @@ TypeNames: ; entries correspond to types (see constants/type_constants.asm) + table_width 2, TypeNames dw Normal dw Fighting dw Flying @@ -10,6 +11,7 @@ TypeNames: dw Bug dw Ghost dw Steel + assert_table_length UNUSED_TYPES dw Normal dw Normal dw Normal @@ -20,6 +22,7 @@ TypeNames: dw Normal dw Normal dw CurseType + assert_table_length UNUSED_TYPES_END dw Fire dw Water dw Grass @@ -28,6 +31,7 @@ TypeNames: dw Ice dw Dragon dw Dark + assert_table_length TYPES_END Normal: db "NORMAL@" Fighting: db "FIGHTING@" diff --git a/data/types/search_strings.asm b/data/types/search_strings.asm index d03d2786b..1345c27cd 100644 --- a/data/types/search_strings.asm +++ b/data/types/search_strings.asm @@ -1,5 +1,6 @@ PokedexTypeSearchStrings: ; entries correspond with PokedexTypeSearchConversionTable (see data/types/search_types.asm) + table_width POKEDEX_TYPE_STRING_LENGTH, PokedexTypeSearchStrings db " ---- @" db " NORMAL @" db " FIRE @" @@ -18,3 +19,4 @@ PokedexTypeSearchStrings: db " DRAGON @" db " DARK @" db " STEEL @" + assert_table_length NUM_TYPES + 1 diff --git a/data/types/search_types.asm b/data/types/search_types.asm index c3aba3c91..dd9ea5628 100644 --- a/data/types/search_types.asm +++ b/data/types/search_types.asm @@ -1,5 +1,6 @@ PokedexTypeSearchConversionTable: ; entries correspond with PokedexTypeSearchStrings (see data/types/search_strings.asm) + table_width 1, PokedexTypeSearchConversionTable db NORMAL db FIRE db WATER @@ -17,3 +18,4 @@ PokedexTypeSearchConversionTable: db DRAGON db DARK db STEEL + assert_table_length NUM_TYPES -- cgit v1.2.3