summaryrefslogtreecommitdiff
path: root/macros
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2021-03-08 07:01:31 -0800
committerGitHub <noreply@github.com>2021-03-08 07:01:31 -0800
commite791c5392b19f589c51afd98666d19e778278847 (patch)
tree4392cbecdd5166484f3a8ec8799939434159bae3 /macros
parentfb35fe6aba5e4e4ce7edf5b345fdf2afec4b6b49 (diff)
parent98da09b3e90b6a132ce6d2431999485593aef0c9 (diff)
Merge pull request #806 from Rangi42/tables
Verify data table sizes with table_width and assert_table_length macros
Diffstat (limited to 'macros')
-rw-r--r--macros/asserts.asm58
-rw-r--r--macros/const.asm8
-rw-r--r--macros/scripts/battle_commands.asm1
3 files changed, 67 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
diff --git a/macros/const.asm b/macros/const.asm
index 5dfc3bca1..11d96d179 100644
--- a/macros/const.asm
+++ b/macros/const.asm
@@ -38,3 +38,11 @@ else
const_value = \1
endc
ENDM
+
+rb_skip: MACRO
+if _NARG == 1
+rsset _RS + \1
+else
+rsset _RS + 1
+endc
+ENDM
diff --git a/macros/scripts/battle_commands.asm b/macros/scripts/battle_commands.asm
index ad4480199..3e5046154 100644
--- a/macros/scripts/battle_commands.asm
+++ b/macros/scripts/battle_commands.asm
@@ -180,6 +180,7 @@ ENDM
command supereffectivelooptext ; ad
command startloop ; ae
command curl ; af
+NUM_EFFECT_COMMANDS EQU const_value - 1
const_def -1, -1
command endmove ; ff