diff options
author | Rangi <35663410+Rangi42@users.noreply.github.com> | 2021-04-13 18:24:37 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-04-13 18:24:37 -0400 |
commit | 506a14084e32d7532b8400a6457f46492bbc47ab (patch) | |
tree | 60ce89cfa9dc1158c5e8a8353ef96fba810c929c /macros/scripts/maps.asm | |
parent | 2954013da1f10e11db4ec96f9586b7c01706ae1a (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.asm | 27 |
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 |