diff options
author | Rangi <35663410+Rangi42@users.noreply.github.com> | 2021-03-08 07:01:31 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-03-08 07:01:31 -0800 |
commit | e791c5392b19f589c51afd98666d19e778278847 (patch) | |
tree | 4392cbecdd5166484f3a8ec8799939434159bae3 /macros/asserts.asm | |
parent | fb35fe6aba5e4e4ce7edf5b345fdf2afec4b6b49 (diff) | |
parent | 98da09b3e90b6a132ce6d2431999485593aef0c9 (diff) |
Merge pull request #806 from Rangi42/tables
Verify data table sizes with table_width and assert_table_length macros
Diffstat (limited to 'macros/asserts.asm')
-rw-r--r-- | macros/asserts.asm | 58 |
1 files changed, 58 insertions, 0 deletions
diff --git a/macros/asserts.asm b/macros/asserts.asm new file mode 100644 index 000000000..306fc4c34 --- /dev/null +++ b/macros/asserts.asm @@ -0,0 +1,58 @@ +; Macros to verify assumptions about the data or code + +table_width: MACRO +CURRENT_TABLE_WIDTH = \1 +if DEF(CURRENT_TABLE_START) +PURGE CURRENT_TABLE_START +endc +if _NARG == 2 +CURRENT_TABLE_START EQUS "\2" +else +CURRENT_TABLE_START EQUS "._table_width\@" +CURRENT_TABLE_START: +endc +ENDM + +assert_table_length: MACRO +x = \1 + assert x * CURRENT_TABLE_WIDTH == @ - CURRENT_TABLE_START, \ + "{CURRENT_TABLE_START}: expected {d:x} entries, each {d:CURRENT_TABLE_WIDTH} bytes" +ENDM + +def_grass_wildmons: MACRO +;\1: map id +if DEF(CURRENT_GRASS_WILDMONS_MAP) +PURGE CURRENT_GRASS_WILDMONS_MAP +endc +if DEF(CURRENT_GRASS_WILDMONS_LABEL) +PURGE CURRENT_GRASS_WILDMONS_LABEL +endc +CURRENT_GRASS_WILDMONS_MAP EQUS "\1" +CURRENT_GRASS_WILDMONS_LABEL EQUS "._def_grass_wildmons_\1" +CURRENT_GRASS_WILDMONS_LABEL: + map_id \1 +ENDM + +end_grass_wildmons: MACRO + assert GRASS_WILDDATA_LENGTH == @ - CURRENT_GRASS_WILDMONS_LABEL, \ + "def_grass_wildmons {CURRENT_GRASS_WILDMONS_MAP}: expected {d:GRASS_WILDDATA_LENGTH} bytes" +ENDM + +def_water_wildmons: MACRO +;\1: map id +if DEF(CURRENT_WATER_WILDMONS_MAP) +PURGE CURRENT_WATER_WILDMONS_MAP +endc +if DEF(CURRENT_WATER_WILDMONS_LABEL) +PURGE CURRENT_WATER_WILDMONS_LABEL +endc +CURRENT_WATER_WILDMONS_MAP EQUS "\1" +CURRENT_WATER_WILDMONS_LABEL EQUS "._def_water_wildmons_\1" +CURRENT_WATER_WILDMONS_LABEL: + map_id \1 +ENDM + +end_water_wildmons: MACRO + assert WATER_WILDDATA_LENGTH == @ - CURRENT_WATER_WILDMONS_LABEL, \ + "def_water_wildmons {CURRENT_WATER_WILDMONS_MAP}: expected {d:WATER_WILDDATA_LENGTH} bytes" +ENDM |