diff options
Diffstat (limited to 'scripts/saffrongym.asm')
-rwxr-xr-x | scripts/saffrongym.asm | 305 |
1 files changed, 148 insertions, 157 deletions
diff --git a/scripts/saffrongym.asm b/scripts/saffrongym.asm index 7c2eb559..cbf935e7 100755 --- a/scripts/saffrongym.asm +++ b/scripts/saffrongym.asm @@ -1,82 +1,76 @@ -SaffronGymScript: ; 5d00d (17:500d) - ld hl, wd126 +SaffronGymScript: + ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] call nz, .extra call EnableAutoTextBoxDrawing ld hl, SaffronGymTrainerHeader0 ld de, SaffronGymScriptPointers - ld a, [W_SAFFRONGYMCURSCRIPT] + ld a, [wSaffronGymCurScript] call ExecuteCurMapScriptInTable - ld [W_SAFFRONGYMCURSCRIPT], a + ld [wSaffronGymCurScript], a ret .extra - ld hl, Gym6CityName ; $5033 - ld de, Gym6LeaderName ; $5040 + ld hl, Gym6CityName + ld de, Gym6LeaderName jp LoadGymLeaderAndCityName -Gym6CityName: ; 5d033 (17:5033) +Gym6CityName: db "SAFFRON CITY@" -Gym6LeaderName: ; 5d040 (17:5040) +Gym6LeaderName: db "SABRINA@" -SaffronGymText_5d048: ; 5d048 (17:5048) +SaffronGymText_5d048: xor a ld [wJoyIgnore], a - ld [W_SAFFRONGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wSaffronGymCurScript], a + ld [wCurMapScript], a ret -SaffronGymScriptPointers: ; 5d053 (17:5053) +SaffronGymScriptPointers: dw CheckFightingMapTrainers dw DisplayEnemyTrainerTextAndStartBattle dw EndTrainerBattle dw SaffronGymScript3 -SaffronGymScript3: ; 5d05b (17:505b) - ld a, [W_ISINBATTLE] ; W_ISINBATTLE +SaffronGymScript3: + ld a, [wIsInBattle] cp $ff jp z, SaffronGymText_5d048 ld a, $f0 ld [wJoyIgnore], a -SaffronGymText_5d068: ; 5d068 (17:5068) +SaffronGymText_5d068: ld a, $a - ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld [hSpriteIndexOrTextID], a call DisplayTextID - ld hl, wd7b3 - set 1, [hl] - ld bc, (TM_46 << 8) | 1 + SetEvent EVENT_BEAT_SABRINA + lb bc, TM_46, 1 call GiveItem jr nc, .BagFull ld a, $b - ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld [hSpriteIndexOrTextID], a call DisplayTextID - ld hl, wd7b3 - set 0, [hl] + SetEvent EVENT_GOT_TM46 jr .asm_5d091 .BagFull ld a, $c - ld [H_DOWNARROWBLINKCNT2], a ; $ff8c + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_5d091 - ld hl, W_OBTAINEDBADGES + ld hl, wObtainedBadges set 5, [hl] - ld hl, wd72a + ld hl, wBeatGymFlags set 5, [hl] ; deactivate gym trainers - ld a, [wd7b3] - or %11111100 - ld [wd7b3], a - ld hl, wd7b4 - set 0, [hl] + SetEventRange EVENT_BEAT_SAFFRON_GYM_TRAINER_0, EVENT_BEAT_SAFFRON_GYM_TRAINER_6 jp SaffronGymText_5d048 -SaffronGymTextPointers: ; 5d0ab (17:50ab) +SaffronGymTextPointers: dw SaffronGymText1 dw SaffronGymText2 dw SaffronGymText3 @@ -90,87 +84,85 @@ SaffronGymTextPointers: ; 5d0ab (17:50ab) dw SaffronGymText11 dw SaffronGymText12 -SaffronGymTrainerHeaders: ; 5d0c3 (17:50c3) -SaffronGymTrainerHeader0: ; 5d0c3 (17:50c3) - db $2 ; flag's bit +SaffronGymTrainerHeader0: + dbEventFlagBit EVENT_BEAT_SAFFRON_GYM_TRAINER_0 db ($3 << 4) ; trainer's view range - dw wd7b3 ; flag's byte - dw SaffronGymBattleText1 ; 0x51f0 TextBeforeBattle - dw SaffronGymAfterBattleText1 ; 0x51fa TextAfterBattle - dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle - dw SaffronGymEndBattleText1 ; 0x51f5 TextEndBattle - -SaffronGymTrainerHeader1: ; 5d0cf (17:50cf) - db $3 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText2 ; 0x51ff TextBeforeBattle - dw SaffronGymAfterBattleText2 ; 0x5209 TextAfterBattle - dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle - dw SaffronGymEndBattleText2 ; 0x5204 TextEndBattle - -SaffronGymTrainerHeader2: ; 5d0db (17:50db) - db $4 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText3 ; 0x520e TextBeforeBattle - dw SaffronGymAfterBattleText3 ; 0x5218 TextAfterBattle - dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle - dw SaffronGymEndBattleText3 ; 0x5213 TextEndBattle - -SaffronGymTrainerHeader3: ; 5d0e7 (17:50e7) - db $5 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText4 ; 0x521d TextBeforeBattle - dw SaffronGymAfterBattleText4 ; 0x5227 TextAfterBattle - dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle - dw SaffronGymEndBattleText4 ; 0x5222 TextEndBattle - -SaffronGymTrainerHeader4: ; 5d0f3 (17:50f3) - db $6 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText5 ; 0x522c TextBeforeBattle - dw SaffronGymAfterBattleText5 ; 0x5236 TextAfterBattle - dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle - dw SaffronGymEndBattleText5 ; 0x5231 TextEndBattle - -SaffronGymTrainerHeader5: ; 5d0ff (17:50ff) - db $7 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText6 ; 0x523b TextBeforeBattle - dw SaffronGymAfterBattleText6 ; 0x5245 TextAfterBattle - dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle - dw SaffronGymEndBattleText6 ; 0x5240 TextEndBattle - -SaffronGymTrainerHeader6: ; 5d10b (17:510b) - db $8 ; flag's bit + 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 - dw wd7b3 ; flag's byte - dw SaffronGymBattleText7 ; 0x524a TextBeforeBattle - dw SaffronGymAfterBattleText7 ; 0x5254 TextAfterBattle - dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle - dw SaffronGymEndBattleText7 ; 0x524f TextEndBattle + dwEventFlagAddress EVENT_BEAT_SAFFRON_GYM_TRAINER_6, 1 + dw SaffronGymBattleText7 ; TextBeforeBattle + dw SaffronGymAfterBattleText7 ; TextAfterBattle + dw SaffronGymEndBattleText7 ; TextEndBattle + dw SaffronGymEndBattleText7 ; TextEndBattle db $ff -SaffronGymText1: ; 5d118 (17:5118) - db $08 ; asm - ld a, [wd7b3] - bit 1, a - jr z, .asm_e3544 ; 0x5d11e - bit 0, a - jr nz, .asm_8d2f6 ; 0x5d122 +SaffronGymText1: + TX_ASM + CheckEvent EVENT_BEAT_SABRINA + jr z, .asm_5d134 + CheckEventReuseA EVENT_GOT_TM46 + jr nz, .asm_5d12c call z, SaffronGymText_5d068 call DisableWaitingAfterTextDisplay - jr .asm_34c2c ; 0x5d12a -.asm_8d2f6 ; 0x5d12c + jr .asm_5d15f +.asm_5d12c ld hl, SaffronGymText_5d16e call PrintText - jr .asm_34c2c ; 0x5d132 -.asm_e3544 ; 0x5d134 + jr .asm_5d15f +.asm_5d134 ld hl, SaffronGymText_5d162 call PrintText ld hl, wd72d @@ -179,189 +171,188 @@ SaffronGymText1: ; 5d118 (17:5118) ld hl, SaffronGymText_5d167 ld de, SaffronGymText_5d167 call SaveEndBattleTextPointers - ldh a, [$8c] + ld a, [H_SPRITEINDEX] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters ld a, $6 - ld [W_GYMLEADERNO], a + ld [wGymLeaderNo], a ld a, $3 - ld [W_SAFFRONGYMCURSCRIPT], a -.asm_34c2c ; 0x5d15f + ld [wSaffronGymCurScript], a +.asm_5d15f jp TextScriptEnd -SaffronGymText_5d162: ; 5d162 (17:5162) +SaffronGymText_5d162: TX_FAR _SaffronGymText_5d162 db "@" -SaffronGymText_5d167: ; 5d167 (17:5167) - TX_FAR _SaffronGymText_5d167 ; 0xa1c73 - db $11 ; play same sound as red giving oak parcel - db $6 ; wait for keypress +SaffronGymText_5d167: + TX_FAR _SaffronGymText_5d167 + TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded + TX_BLINK db "@" -SaffronGymText_5d16e: ; 5d16e (17:516e) +SaffronGymText_5d16e: TX_FAR _SaffronGymText_5d16e db "@" -SaffronGymText10: ; 5d173 (17:5173) +SaffronGymText10: TX_FAR _SaffronGymText_5d173 db "@" -SaffronGymText11: ; 5d178 (17:5178) +SaffronGymText11: TX_FAR ReceivedTM46Text - db $b + TX_SFX_ITEM_1 TX_FAR _TM46ExplanationText db "@" -SaffronGymText12: ; 5d182 (17:5182) +SaffronGymText12: TX_FAR _TM46NoRoomText db "@" -SaffronGymText2: ; 5d187 (17:5187) - db $08 ; asm +SaffronGymText2: + TX_ASM ld hl, SaffronGymTrainerHeader0 call TalkToTrainer jp TextScriptEnd -SaffronGymText3: ; 5d191 (17:5191) - db $08 ; asm +SaffronGymText3: + TX_ASM ld hl, SaffronGymTrainerHeader1 call TalkToTrainer jp TextScriptEnd -SaffronGymText4: ; 5d19b (17:519b) - db $08 ; asm +SaffronGymText4: + TX_ASM ld hl, SaffronGymTrainerHeader2 call TalkToTrainer jp TextScriptEnd -SaffronGymText5: ; 5d1a5 (17:51a5) - db $08 ; asm +SaffronGymText5: + TX_ASM ld hl, SaffronGymTrainerHeader3 call TalkToTrainer jp TextScriptEnd -SaffronGymText6: ; 5d1af (17:51af) - db $08 ; asm +SaffronGymText6: + TX_ASM ld hl, SaffronGymTrainerHeader4 call TalkToTrainer jp TextScriptEnd -SaffronGymText7: ; 5d1b9 (17:51b9) - db $08 ; asm +SaffronGymText7: + TX_ASM ld hl, SaffronGymTrainerHeader5 call TalkToTrainer jp TextScriptEnd -SaffronGymText8: ; 5d1c3 (17:51c3) - db $08 ; asm +SaffronGymText8: + TX_ASM ld hl, SaffronGymTrainerHeader6 call TalkToTrainer jp TextScriptEnd -SaffronGymText9: ; 5d1cd (17:51cd) - db $08 ; asm - ld a, [wd7b3] - bit 1, a - jr nz, .asm_13f3c ; 0x5d1d3 +SaffronGymText9: + TX_ASM + CheckEvent EVENT_BEAT_SABRINA + jr nz, .asm_5d1dd ld hl, SaffronGymText_5d1e6 call PrintText - jr .asm_e9907 ; 0x5d1db -.asm_13f3c ; 0x5d1dd + jr .asm_5d1e3 +.asm_5d1dd ld hl, SaffronGymText_5d1eb call PrintText -.asm_e9907 ; 0x5d1e3 +.asm_5d1e3 jp TextScriptEnd -SaffronGymText_5d1e6: ; 5d1e6 (17:51e6) +SaffronGymText_5d1e6: TX_FAR _SaffronGymText_5d1e6 db "@" -SaffronGymText_5d1eb: ; 5d1eb (17:51eb) +SaffronGymText_5d1eb: TX_FAR _SaffronGymText_5d1eb db "@" -SaffronGymBattleText1: ; 5d1f0 (17:51f0) +SaffronGymBattleText1: TX_FAR _SaffronGymBattleText1 db "@" -SaffronGymEndBattleText1: ; 5d1f5 (17:51f5) +SaffronGymEndBattleText1: TX_FAR _SaffronGymEndBattleText1 db "@" -SaffronGymAfterBattleText1: ; 5d1fa (17:51fa) +SaffronGymAfterBattleText1: TX_FAR _SaffronGymAfterBattleText1 db "@" -SaffronGymBattleText2: ; 5d1ff (17:51ff) +SaffronGymBattleText2: TX_FAR _SaffronGymBattleText2 db "@" -SaffronGymEndBattleText2: ; 5d204 (17:5204) +SaffronGymEndBattleText2: TX_FAR _SaffronGymEndBattleText2 db "@" -SaffronGymAfterBattleText2: ; 5d209 (17:5209) +SaffronGymAfterBattleText2: TX_FAR _SaffronGymAfterBattleText2 db "@" -SaffronGymBattleText3: ; 5d20e (17:520e) +SaffronGymBattleText3: TX_FAR _SaffronGymBattleText3 db "@" -SaffronGymEndBattleText3: ; 5d213 (17:5213) +SaffronGymEndBattleText3: TX_FAR _SaffronGymEndBattleText3 db "@" -SaffronGymAfterBattleText3: ; 5d218 (17:5218) +SaffronGymAfterBattleText3: TX_FAR _SaffronGymAfterBattleText3 db "@" -SaffronGymBattleText4: ; 5d21d (17:521d) +SaffronGymBattleText4: TX_FAR _SaffronGymBattleText4 db "@" -SaffronGymEndBattleText4: ; 5d222 (17:5222) +SaffronGymEndBattleText4: TX_FAR _SaffronGymEndBattleText4 db "@" -SaffronGymAfterBattleText4: ; 5d227 (17:5227) +SaffronGymAfterBattleText4: TX_FAR _SaffronGymAfterBattleText4 db "@" -SaffronGymBattleText5: ; 5d22c (17:522c) +SaffronGymBattleText5: TX_FAR _SaffronGymBattleText5 db "@" -SaffronGymEndBattleText5: ; 5d231 (17:5231) +SaffronGymEndBattleText5: TX_FAR _SaffronGymEndBattleText5 db "@" -SaffronGymAfterBattleText5: ; 5d236 (17:5236) +SaffronGymAfterBattleText5: TX_FAR _SaffronGymAfterBattleText5 db "@" -SaffronGymBattleText6: ; 5d23b (17:523b) +SaffronGymBattleText6: TX_FAR _SaffronGymBattleText6 db "@" -SaffronGymEndBattleText6: ; 5d240 (17:5240) +SaffronGymEndBattleText6: TX_FAR _SaffronGymEndBattleText6 db "@" -SaffronGymAfterBattleText6: ; 5d245 (17:5245) +SaffronGymAfterBattleText6: TX_FAR _SaffronGymAfterBattleText6 db "@" -SaffronGymBattleText7: ; 5d24a (17:524a) +SaffronGymBattleText7: TX_FAR _SaffronGymBattleText7 db "@" -SaffronGymEndBattleText7: ; 5d24f (17:524f) +SaffronGymEndBattleText7: TX_FAR _SaffronGymEndBattleText7 db "@" -SaffronGymAfterBattleText7: ; 5d254 (17:5254) +SaffronGymAfterBattleText7: TX_FAR _SaffronGymAfterBattleText7 db "@" |