SaffronGym_Script: ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] call nz, .extra call EnableAutoTextBoxDrawing ld hl, SaffronGymTrainerHeader0 ld de, SaffronGym_ScriptPointers ld a, [wSaffronGymCurScript] call ExecuteCurMapScriptInTable ld [wSaffronGymCurScript], a ret .extra ld hl, Gym6CityName ld de, Gym6LeaderName jp LoadGymLeaderAndCityName Gym6CityName: db "SAFFRON CITY@" Gym6LeaderName: db "SABRINA@" SaffronGymText_5d048: xor a ld [wJoyIgnore], a ld [wSaffronGymCurScript], a ld [wCurMapScript], a ret SaffronGym_ScriptPointers: dw CheckFightingMapTrainers dw DisplayEnemyTrainerTextAndStartBattle dw EndTrainerBattle dw SaffronGymScript3 SaffronGymScript3: ld a, [wIsInBattle] cp $ff jp z, SaffronGymText_5d048 ld a, $f0 ld [wJoyIgnore], a SaffronGymText_5d068: ld a, $a ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_BEAT_SABRINA lb bc, TM_PSYWAVE, 1 call GiveItem jr nc, .BagFull ld a, $b ldh [hSpriteIndexOrTextID], a call DisplayTextID SetEvent EVENT_GOT_TM46 jr .gymVictory .BagFull ld a, $c ldh [hSpriteIndexOrTextID], a call DisplayTextID .gymVictory ld hl, wObtainedBadges set 5, [hl] ld hl, wBeatGymFlags set 5, [hl] ; deactivate gym trainers SetEventRange EVENT_BEAT_SAFFRON_GYM_TRAINER_0, EVENT_BEAT_SAFFRON_GYM_TRAINER_6 jp SaffronGymText_5d048 SaffronGym_TextPointers: dw SaffronGymText1 dw SaffronGymText2 dw SaffronGymText3 dw SaffronGymText4 dw SaffronGymText5 dw SaffronGymText6 dw SaffronGymText7 dw SaffronGymText8 dw SaffronGymText9 dw SaffronGymText10 dw SaffronGymText11 dw SaffronGymText12 SaffronGymTrainerHeader0: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_0 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_0 dw SaffronGymBattleText1 ; TextBeforeBattle dw SaffronGymAfterBattleText1 ; TextAfterBattle dw SaffronGymEndBattleText1 ; TextEndBattle dw SaffronGymEndBattleText1 ; TextEndBattle SaffronGymTrainerHeader1: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_1 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_1 dw SaffronGymBattleText2 ; TextBeforeBattle dw SaffronGymAfterBattleText2 ; TextAfterBattle dw SaffronGymEndBattleText2 ; TextEndBattle dw SaffronGymEndBattleText2 ; TextEndBattle SaffronGymTrainerHeader2: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_2 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_2 dw SaffronGymBattleText3 ; TextBeforeBattle dw SaffronGymAfterBattleText3 ; TextAfterBattle dw SaffronGymEndBattleText3 ; TextEndBattle dw SaffronGymEndBattleText3 ; TextEndBattle SaffronGymTrainerHeader3: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_3 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_3 dw SaffronGymBattleText4 ; TextBeforeBattle dw SaffronGymAfterBattleText4 ; TextAfterBattle dw SaffronGymEndBattleText4 ; TextEndBattle dw SaffronGymEndBattleText4 ; TextEndBattle SaffronGymTrainerHeader4: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_4 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_4 dw SaffronGymBattleText5 ; TextBeforeBattle dw SaffronGymAfterBattleText5 ; TextAfterBattle dw SaffronGymEndBattleText5 ; TextEndBattle dw SaffronGymEndBattleText5 ; TextEndBattle SaffronGymTrainerHeader5: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_5 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_5 dw SaffronGymBattleText6 ; TextBeforeBattle dw SaffronGymAfterBattleText6 ; TextAfterBattle dw SaffronGymEndBattleText6 ; TextEndBattle dw SaffronGymEndBattleText6 ; TextEndBattle SaffronGymTrainerHeader6: dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1 db ($3 << 4) ; trainer's view range dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1 dw SaffronGymBattleText7 ; TextBeforeBattle dw SaffronGymAfterBattleText7 ; TextAfterBattle dw SaffronGymEndBattleText7 ; TextEndBattle dw SaffronGymEndBattleText7 ; TextEndBattle db $ff SaffronGymText1: text_asm CheckEvent EVENT_BEAT_SABRINA jr z, .beginBattle CheckEventReuseA EVENT_GOT_TM46 jr nz, .afterVictory call z, SaffronGymText_5d068 call DisableWaitingAfterTextDisplay jr .done .afterVictory ld hl, SaffronGymText_5d16e call PrintText jr .done .beginBattle ld hl, SaffronGymText_5d162 call PrintText ld hl, wd72d set 6, [hl] set 7, [hl] ld hl, SaffronGymText_5d167 ld de, SaffronGymText_5d167 call SaveEndBattleTextPointers ldh a, [hSpriteIndex] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $6 ld [wGymLeaderNo], a ld a, $3 ld [wSaffronGymCurScript], a .done jp TextScriptEnd SaffronGymText_5d162: text_far _SaffronGymText_5d162 text_end SaffronGymText_5d167: text_far _SaffronGymText_5d167 sound_get_key_item ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded text_promptbutton text_end SaffronGymText_5d16e: text_far _SaffronGymText_5d16e text_end SaffronGymText10: text_far _SaffronGymText_5d173 text_end SaffronGymText11: text_far ReceivedTM46Text sound_get_item_1 text_far _TM46ExplanationText text_end SaffronGymText12: text_far _TM46NoRoomText text_end SaffronGymText2: text_asm ld hl, SaffronGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd SaffronGymText3: text_asm ld hl, SaffronGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd SaffronGymText4: text_asm ld hl, SaffronGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd SaffronGymText5: text_asm ld hl, SaffronGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd SaffronGymText6: text_asm ld hl, SaffronGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd SaffronGymText7: text_asm ld hl, SaffronGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd SaffronGymText8: text_asm ld hl, SaffronGymTrainerHeader6 call TalkToTrainer jp TextScriptEnd SaffronGymText9: text_asm CheckEvent EVENT_BEAT_SABRINA jr nz, .asm_5d1dd ld hl, SaffronGymText_5d1e6 call PrintText jr .asm_5d1e3 .asm_5d1dd ld hl, SaffronGymText_5d1eb call PrintText .asm_5d1e3 jp TextScriptEnd SaffronGymText_5d1e6: text_far _SaffronGymText_5d1e6 text_end SaffronGymText_5d1eb: text_far _SaffronGymText_5d1eb text_end SaffronGymBattleText1: text_far _SaffronGymBattleText1 text_end SaffronGymEndBattleText1: text_far _SaffronGymEndBattleText1 text_end SaffronGymAfterBattleText1: text_far _SaffronGymAfterBattleText1 text_end SaffronGymBattleText2: text_far _SaffronGymBattleText2 text_end SaffronGymEndBattleText2: text_far _SaffronGymEndBattleText2 text_end SaffronGymAfterBattleText2: text_far _SaffronGymAfterBattleText2 text_end SaffronGymBattleText3: text_far _SaffronGymBattleText3 text_end SaffronGymEndBattleText3: text_far _SaffronGymEndBattleText3 text_end SaffronGymAfterBattleText3: text_far _SaffronGymAfterBattleText3 text_end SaffronGymBattleText4: text_far _SaffronGymBattleText4 text_end SaffronGymEndBattleText4: text_far _SaffronGymEndBattleText4 text_end SaffronGymAfterBattleText4: text_far _SaffronGymAfterBattleText4 text_end SaffronGymBattleText5: text_far _SaffronGymBattleText5 text_end SaffronGymEndBattleText5: text_far _SaffronGymEndBattleText5 text_end SaffronGymAfterBattleText5: text_far _SaffronGymAfterBattleText5 text_end SaffronGymBattleText6: text_far _SaffronGymBattleText6 text_end SaffronGymEndBattleText6: text_far _SaffronGymEndBattleText6 text_end SaffronGymAfterBattleText6: text_far _SaffronGymAfterBattleText6 text_end SaffronGymBattleText7: text_far _SaffronGymBattleText7 text_end SaffronGymEndBattleText7: text_far _SaffronGymEndBattleText7 text_end SaffronGymAfterBattleText7: text_far _SaffronGymAfterBattleText7 text_end