summaryrefslogtreecommitdiff
path: root/macros/scripts/maps.asm
diff options
context:
space:
mode:
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