summaryrefslogtreecommitdiff
path: root/macros/scripts/maps.asm
diff options
context:
space:
mode:
authorRangi <35663410+Rangi42@users.noreply.github.com>2021-04-13 18:24:37 -0400
committerGitHub <noreply@github.com>2021-04-13 18:24:37 -0400
commit506a14084e32d7532b8400a6457f46492bbc47ab (patch)
tree60ce89cfa9dc1158c5e8a8353ef96fba810c929c /macros/scripts/maps.asm
parent2954013da1f10e11db4ec96f9586b7c01706ae1a (diff)
The 'def_trainers' macro checks that trainers' event flag bits are correct (#318)
Diffstat (limited to 'macros/scripts/maps.asm')
-rw-r--r--macros/scripts/maps.asm27
1 files changed, 17 insertions, 10 deletions
diff --git a/macros/scripts/maps.asm b/macros/scripts/maps.asm
index a282acba..204098ad 100644
--- a/macros/scripts/maps.asm
+++ b/macros/scripts/maps.asm
@@ -92,23 +92,30 @@ warp_to: MACRO
ENDM
+;\1 first bit offset / first object id
+def_trainers: MACRO
+IF _NARG == 1
+CURRENT_TRAINER_BIT = \1
+ELSE
+CURRENT_TRAINER_BIT = 1
+ENDC
+ENDM
+
;\1 event flag
;\2 view range
;\3 TextBeforeBattle
;\4 TextAfterBattle
;\5 TextEndBattle
trainer: MACRO
- IF _NARG > 5
- dbEventFlagBit \1, \2
- db (\3 << 4)
- dwEventFlagAddress \1, \2
- SHIFT
- ELSE
- dbEventFlagBit \1
- db (\2 << 4)
- dwEventFlagAddress \1
- ENDC
+_ev_bit = \1 % 8
+_cur_bit = CURRENT_TRAINER_BIT % 8
+ ASSERT _ev_bit == _cur_bit, \
+ "Expected \1 to be bit {d:_cur_bit}, got {d:_ev_bit}"
+ db CURRENT_TRAINER_BIT
+ db \2 << 4
+ dw wEventFlags + (\1 - CURRENT_TRAINER_BIT) / 8
dw \3, \5, \4, \4
+CURRENT_TRAINER_BIT = CURRENT_TRAINER_BIT + 1
ENDM
;\1 x position