Skip to content

Commit

Permalink
The 'def_trainers' macro checks that trainers' event flag bits are co…
Browse files Browse the repository at this point in the history
…rrect (#318)
  • Loading branch information
Rangi42 committed Apr 13, 2021
1 parent 2954013 commit 506a140
Show file tree
Hide file tree
Showing 71 changed files with 274 additions and 149 deletions.
22 changes: 0 additions & 22 deletions macros/scripts/events.asm
Original file line number Diff line number Diff line change
Expand Up @@ -242,28 +242,6 @@ ResetEvents: MACRO
ENDM


;\1 = event index
;\2 = number of bytes away from the base address (optional, for matching the ROM)
dbEventFlagBit: MACRO
IF _NARG > 1
db ((\1) % 8) + ((\2) * 8)
ELSE
db ((\1) % 8)
ENDC
ENDM


;\1 = event index
;\2 = number of bytes away from the base address (optional, for matching the ROM)
dwEventFlagAddress: MACRO
IF _NARG > 1
dw wEventFlags + ((\1) / 8) - (\2)
ELSE
dw wEventFlags + ((\1) / 8)
ENDC
ENDM


;\1 = start
;\2 = end
SetEventRange: MACRO
Expand Down
27 changes: 17 additions & 10 deletions macros/scripts/maps.asm
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
8 changes: 5 additions & 3 deletions scripts/AgathasRoom.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
AgathasRoom_Script:
call AgathaShowOrHideExitBlock
call EnableAutoTextBoxDrawing
ld hl, AgathaTrainerHeader0
ld hl, AgathasRoomTrainerHeaders
ld de, AgathasRoom_ScriptPointers
ld a, [wAgathasRoomCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -120,13 +120,15 @@ AgathasRoom_TextPointers:
dw AgathaText1
dw AgathaDontRunAwayText

AgathaTrainerHeader0:
AgathasRoomTrainerHeaders:
def_trainers
AgathasRoomTrainerHeader0:
trainer EVENT_BEAT_AGATHAS_ROOM_TRAINER_0, 0, AgathaBeforeBattleText, AgathaEndBattleText, AgathaAfterBattleText
db -1 ; end

AgathaText1:
text_asm
ld hl, AgathaTrainerHeader0
ld hl, AgathasRoomTrainerHeader0
call TalkToTrainer
jp TextScriptEnd

Expand Down
8 changes: 5 additions & 3 deletions scripts/BrunosRoom.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
BrunosRoom_Script:
call BrunoShowOrHideExitBlock
call EnableAutoTextBoxDrawing
ld hl, BrunoTrainerHeader0
ld hl, BrunosRoomTrainerHeaders
ld de, BrunosRoom_ScriptPointers
ld a, [wBrunosRoomCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -117,13 +117,15 @@ BrunosRoom_TextPointers:
dw BrunoText1
dw BrunoDontRunAwayText

BrunoTrainerHeader0:
BrunosRoomTrainerHeaders:
def_trainers
BrunosRoomTrainerHeader0:
trainer EVENT_BEAT_BRUNOS_ROOM_TRAINER_0, 0, BrunoBeforeBattleText, BrunoEndBattleText, BrunoAfterBattleText
db -1 ; end

BrunoText1:
text_asm
ld hl, BrunoTrainerHeader0
ld hl, BrunosRoomTrainerHeader0
call TalkToTrainer
jp TextScriptEnd

Expand Down
6 changes: 4 additions & 2 deletions scripts/CeladonGym.asm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CeladonGym_Script:
res 6, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, CeladonGymTrainerHeader0
ld hl, CeladonGymTrainerHeaders
ld de, CeladonGym_ScriptPointers
ld a, [wCeladonGymCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -83,6 +83,8 @@ CeladonGym_TextPointers:
dw TM21Text
dw TM21NoRoomText

CeladonGymTrainerHeaders:
def_trainers 2
CeladonGymTrainerHeader0:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_0, 2, CeladonGymBattleText2, CeladonGymEndBattleText2, CeladonGymAfterBattleText2
CeladonGymTrainerHeader1:
Expand All @@ -96,7 +98,7 @@ CeladonGymTrainerHeader4:
CeladonGymTrainerHeader5:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_5, 2, CeladonGymBattleText7, CeladonGymEndBattleText7, CeladonGymAfterBattleText7
CeladonGymTrainerHeader6:
trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 1, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8
trainer EVENT_BEAT_CELADON_GYM_TRAINER_6, 3, CeladonGymBattleText8, CeladonGymEndBattleText8, CeladonGymAfterBattleText8
db -1 ; end

CeladonGymText1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/CeruleanCaveB1F.asm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
CeruleanCaveB1F_Script:
call EnableAutoTextBoxDrawing
ld hl, MewtwoTrainerHeader
ld hl, CeruleanCaveB1FTrainerHeaders
ld de, CeruleanCaveB1F_ScriptPointers
ld a, [wCeruleanCaveB1FCurScript]
call ExecuteCurMapScriptInTable
Expand All @@ -17,6 +17,8 @@ CeruleanCaveB1F_TextPointers:
dw PickUpItemText
dw PickUpItemText

CeruleanCaveB1FTrainerHeaders:
def_trainers
MewtwoTrainerHeader:
trainer EVENT_BEAT_MEWTWO, 0, MewtwoBattleText, MewtwoBattleText, MewtwoBattleText
db -1 ; end
Expand Down
4 changes: 3 additions & 1 deletion scripts/CeruleanGym.asm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ CeruleanGym_Script:
res 6, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, CeruleanGymTrainerHeader0
ld hl, CeruleanGymTrainerHeaders
ld de, CeruleanGym_ScriptPointers
ld a, [wCeruleanGymCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -79,6 +79,8 @@ CeruleanGym_TextPointers:
dw CeruleanGymText6
dw CeruleanGymText7

CeruleanGymTrainerHeaders:
def_trainers 2
CeruleanGymTrainerHeader0:
trainer EVENT_BEAT_CERULEAN_GYM_TRAINER_0, 3, CeruleanGymBattleText1, CeruleanGymEndBattleText1, CeruleanGymAfterBattleText1
CeruleanGymTrainerHeader1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/FightingDojo.asm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FightingDojo_Script:
call EnableAutoTextBoxDrawing
ld hl, FightingDojoTrainerHeader0
ld hl, FightingDojoTrainerHeaders
ld de, FightingDojo_ScriptPointers
ld a, [wFightingDojoCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -90,6 +90,8 @@ FightingDojo_TextPointers:
dw FightingDojoText7
dw FightingDojoText8

FightingDojoTrainerHeaders:
def_trainers 2
FightingDojoTrainerHeader0:
trainer EVENT_BEAT_FIGHTING_DOJO_TRAINER_0, 4, FightingDojoBattleText1, FightingDojoEndBattleText1, FightingDojoAfterBattleText1
FightingDojoTrainerHeader1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/FuchsiaGym.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
FuchsiaGym_Script:
call .LoadNames
call EnableAutoTextBoxDrawing
ld hl, FuchsiaGymTrainerHeader0
ld hl, FuchsiaGymTrainerHeaders
ld de, FuchsiaGym_ScriptPointers
ld a, [wFuchsiaGymCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -84,6 +84,8 @@ FuchsiaGym_TextPointers:
dw FuchsiaGymText10
dw FuchsiaGymText11

FuchsiaGymTrainerHeaders:
def_trainers 2
FuchsiaGymTrainerHeader0:
trainer EVENT_BEAT_FUCHSIA_GYM_TRAINER_0, 2, FuchsiaGymBattleText1, FuchsiaGymEndBattleText1, FuchsiaGymAfterBattleText1
FuchsiaGymTrainerHeader1:
Expand Down
8 changes: 5 additions & 3 deletions scripts/LancesRoom.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
LancesRoom_Script:
call LanceShowOrHideEntranceBlocks
call EnableAutoTextBoxDrawing
ld hl, LanceTrainerHeader0
ld hl, LancesRoomTrainerHeaders
ld de, LancesRoom_ScriptPointers
ld a, [wLancesRoomCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -128,13 +128,15 @@ LanceScript3:
LancesRoom_TextPointers:
dw LanceText1

LanceTrainerHeader0:
LancesRoomTrainerHeaders:
def_trainers
LancesRoomTrainerHeader0:
trainer EVENT_BEAT_LANCES_ROOM_TRAINER_0, 0, LanceBeforeBattleText, LanceEndBattleText, LanceAfterBattleText
db -1 ; end

LanceText1:
text_asm
ld hl, LanceTrainerHeader0
ld hl, LancesRoomTrainerHeader0
call TalkToTrainer
jp TextScriptEnd

Expand Down
8 changes: 5 additions & 3 deletions scripts/LoreleisRoom.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
LoreleisRoom_Script:
call LoreleiShowOrHideExitBlock
call EnableAutoTextBoxDrawing
ld hl, LoreleiTrainerHeader0
ld hl, LoreleisRoomTrainerHeaders
ld de, LoreleisRoom_ScriptPointers
ld a, [wLoreleisRoomCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -119,13 +119,15 @@ LoreleisRoom_TextPointers:
dw LoreleiText1
dw LoreleiDontRunAwayText

LoreleiTrainerHeader0:
LoreleisRoomTrainerHeaders:
def_trainers
LoreleisRoomTrainerHeader0:
trainer EVENT_BEAT_LORELEIS_ROOM_TRAINER_0, 0, LoreleiBeforeBattleText, LoreleiEndBattleText, LoreleiAfterBattleText
db -1 ; end

LoreleiText1:
text_asm
ld hl, LoreleiTrainerHeader0
ld hl, LoreleisRoomTrainerHeader0
call TalkToTrainer
jp TextScriptEnd

Expand Down
4 changes: 3 additions & 1 deletion scripts/MtMoon1F.asm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MtMoon1F_Script:
call EnableAutoTextBoxDrawing
ld hl, MtMoon1TrainerHeader0
ld hl, MtMoon1TrainerHeaders
ld de, MtMoon1F_ScriptPointers
ld a, [wMtMoon1FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -28,6 +28,8 @@ MtMoon1F_TextPointers:
dw PickUpItemText
dw MtMoon1Text14

MtMoon1TrainerHeaders:
def_trainers
MtMoon1TrainerHeader0:
trainer EVENT_BEAT_MT_MOON_1_TRAINER_0, 2, MtMoon1BattleText2, MtMoon1EndBattleText2, MtMoon1AfterBattleText2
MtMoon1TrainerHeader1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/MtMoonB2F.asm
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MtMoonB2F_Script:
call EnableAutoTextBoxDrawing
ld hl, MtMoon3TrainerHeader0
ld hl, MtMoon3TrainerHeaders
ld de, MtMoonB2F_ScriptPointers
ld a, [wMtMoonB2FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -166,6 +166,8 @@ MtMoonB2F_TextPointers:
dw PickUpItemText
dw MtMoon3Text_49f99

MtMoon3TrainerHeaders:
def_trainers 2
MtMoon3TrainerHeader0:
trainer EVENT_BEAT_MT_MOON_3_TRAINER_0, 4, MtMoon3BattleText2, MtMoon3EndBattleText2, MtMoon3AfterBattleText2
MtMoon3TrainerHeader1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/PewterGym.asm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ PewterGym_Script:
res 6, [hl]
call nz, .LoadNames
call EnableAutoTextBoxDrawing
ld hl, PewterGymTrainerHeader0
ld hl, PewterGymTrainerHeaders
ld de, PewterGym_ScriptPointers
ld a, [wPewterGymCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -86,6 +86,8 @@ PewterGym_TextPointers:
dw PewterGymText5
dw PewterGymText6

PewterGymTrainerHeaders:
def_trainers 2
PewterGymTrainerHeader0:
trainer EVENT_BEAT_PEWTER_GYM_TRAINER_0, 5, PewterGymBattleText1, PewterGymEndBattleText1, PewterGymAfterBattleText1
db -1 ; end
Expand Down
4 changes: 3 additions & 1 deletion scripts/PokemonMansion1F.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PokemonMansion1F_Script:
call Mansion1Subscript1
call EnableAutoTextBoxDrawing
ld hl, Mansion1TrainerHeader0
ld hl, Mansion1TrainerHeaders
ld de, PokemonMansion1F_ScriptPointers
ld a, [wPokemonMansion1FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -66,6 +66,8 @@ PokemonMansion1F_TextPointers:
dw PickUpItemText
dw Mansion1Text4

Mansion1TrainerHeaders:
def_trainers
Mansion1TrainerHeader0:
trainer EVENT_BEAT_MANSION_1_TRAINER_0, 3, Mansion1BattleText2, Mansion1EndBattleText2, Mansion1AfterBattleText2
db -1 ; end
Expand Down
4 changes: 3 additions & 1 deletion scripts/PokemonMansion2F.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PokemonMansion2F_Script:
call Mansion2Script_51fee
call EnableAutoTextBoxDrawing
ld hl, Mansion2TrainerHeader0
ld hl, Mansion2TrainerHeaders
ld de, PokemonMansion2F_ScriptPointers
ld a, [wPokemonMansion2FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -63,6 +63,8 @@ PokemonMansion2F_TextPointers:
dw Mansion2Text4
dw Mansion2Text5

Mansion2TrainerHeaders:
def_trainers
Mansion2TrainerHeader0:
trainer EVENT_BEAT_MANSION_2_TRAINER_0, 0, Mansion2BattleText1, Mansion2EndBattleText1, Mansion2AfterBattleText1
db -1 ; end
Expand Down
4 changes: 3 additions & 1 deletion scripts/PokemonMansion3F.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PokemonMansion3F_Script:
call Mansion3Script_52204
call EnableAutoTextBoxDrawing
ld hl, Mansion3TrainerHeader0
ld hl, Mansion3TrainerHeaders
ld de, PokemonMansion3F_ScriptPointers
ld a, [wPokemonMansion3FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -90,6 +90,8 @@ PokemonMansion3F_TextPointers:
dw Mansion3Text5
dw Mansion3Text6

Mansion3TrainerHeaders:
def_trainers
Mansion3TrainerHeader0:
trainer EVENT_BEAT_MANSION_3_TRAINER_0, 0, Mansion3BattleText1, Mansion3EndBattleText1, Mansion3AfterBattleText1
Mansion3TrainerHeader1:
Expand Down
4 changes: 3 additions & 1 deletion scripts/PokemonMansionB1F.asm
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
PokemonMansionB1F_Script:
call Mansion4Script_523cf
call EnableAutoTextBoxDrawing
ld hl, Mansion4TrainerHeader0
ld hl, Mansion4TrainerHeaders
ld de, PokemonMansionB1F_ScriptPointers
ld a, [wPokemonMansionB1FCurScript]
call ExecuteCurMapScriptInTable
Expand Down Expand Up @@ -69,6 +69,8 @@ PokemonMansionB1F_TextPointers:
dw PickUpItemText
dw Mansion3Text6

Mansion4TrainerHeaders:
def_trainers
Mansion4TrainerHeader0:
trainer EVENT_BEAT_MANSION_4_TRAINER_0, 0, Mansion4BattleText1, Mansion4EndBattleText1, Mansion4AfterBattleText1
Mansion4TrainerHeader1:
Expand Down
Loading

0 comments on commit 506a140

Please sign in to comment.