diff options
Diffstat (limited to 'scripts/cinnabargym.asm')
-rwxr-xr-x | scripts/cinnabargym.asm | 340 |
1 files changed, 165 insertions, 175 deletions
diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm index 48133c52..8af7bbd3 100755 --- a/scripts/cinnabargym.asm +++ b/scripts/cinnabargym.asm @@ -1,12 +1,12 @@ -CinnabarGymScript: ; 7574a (1d:574a) +CinnabarGymScript: call CinnabarGymScript_75759 call EnableAutoTextBoxDrawing ld hl, CinnabarGymScriptPointers - ld a, [W_CINNABARGYMCURSCRIPT] + ld a, [wCinnabarGymCurScript] jp CallFunctionInTable -CinnabarGymScript_75759: ; 75759 (1d:5759) - ld hl, wd126 +CinnabarGymScript_75759: + ld hl, wCurrentMapScriptFlags bit 6, [hl] res 6, [hl] push hl @@ -14,164 +14,163 @@ CinnabarGymScript_75759: ; 75759 (1d:5759) pop hl bit 5, [hl] res 5, [hl] - call nz, Func_3ead - ld hl, wd79b - res 7, [hl] + call nz, UpdateCinnabarGymGateTileBlocks + ResetEvent EVENT_2A7 ret -CinnabarGymScript_75772: ; 75772 (1d:5772) +CinnabarGymScript_75772: ld hl, Gym7CityName ld de, Gym7LeaderName jp LoadGymLeaderAndCityName -Gym7CityName: ; 7577b (1d:577b) +Gym7CityName: db "CINNABAR ISLAND@" -Gym7LeaderName: ; 7578b (1d:578b) +Gym7LeaderName: db "BLAINE@" -CinnabarGymScript_75792: ; 75792 (1d:5792) +CinnabarGymScript_75792: xor a ld [wJoyIgnore], a - ld [W_CINNABARGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a - ld [wda38], a + ld [wCinnabarGymCurScript], a + ld [wCurMapScript], a + ld [wOpponentAfterWrongAnswer], a ret -CinnabarGymScript_757a0: ; 757a0 (1d:57a0) - ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c +CinnabarGymScript_757a0: + ld a, [hSpriteIndexOrTextID] ld [wTrainerHeaderFlagBit], a ret -CinnabarGymScriptPointers: ; 757a6 (1d:57a6) +CinnabarGymScriptPointers: dw CinnabarGymScript0 dw CinnabarGymScript1 dw CinnabarGymScript2 dw CinnabarGymScript3 -CinnabarGymScript0: ; 757ae (1d:57ae) - ld a, [wda38] +CinnabarGymScript0: + ld a, [wOpponentAfterWrongAnswer] and a ret z - ld [$ff8c], a + ld [H_SPRITEINDEX], a cp $4 - jr nz, .asm_757c3 ; 0x757b7 $a - ld a, $4 - ld [wd528], a + jr nz, .asm_757c3 + ld a, PLAYER_DIR_DOWN + ld [wPlayerMovingDirection], a ld de, MovementData_757d7 - jr .asm_757cb ; 0x757c1 $8 + jr .asm_757cb .asm_757c3 ld de, MovementData_757da - ld a, $1 - ld [wd528], a + ld a, PLAYER_DIR_RIGHT + ld [wPlayerMovingDirection], a .asm_757cb call MoveSprite ld a, $1 - ld [W_CINNABARGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wCinnabarGymCurScript], a + ld [wCurMapScript], a ret -MovementData_757d7: ; 757d7 (1d:57d7) - db $80,$40,$FF +MovementData_757d7: + db NPC_MOVEMENT_LEFT + db NPC_MOVEMENT_UP + db $FF -MovementData_757da: ; 757da (1d:57da) - db $80,$FF +MovementData_757da: + db NPC_MOVEMENT_LEFT + db $FF -CinnabarGymScript1: ; 757dc (1d:57dc) +CinnabarGymScript1: ld a, [wd730] bit 0, a ret nz xor a ld [wJoyIgnore], a - ld a, [wda38] + ld a, [wOpponentAfterWrongAnswer] ld [wTrainerHeaderFlagBit], a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a jp DisplayTextID -CinnabarGymScript_757f1: ; 757f1 (1d:57f1) +CinnabarGymFlagAction: predef_jump FlagActionPredef -CinnabarGymScript2: ; 757f6 (1d:57f6) - ld a, [W_ISINBATTLE] +CinnabarGymScript2: + ld a, [wIsInBattle] cp $ff jp z, CinnabarGymScript_75792 ld a, [wTrainerHeaderFlagBit] ld [$ffdb], a + AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 ld c, a - ld b, $2 - ld hl, wd79a - call CinnabarGymScript_757f1 + ld b, FLAG_TEST + EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + call CinnabarGymFlagAction ld a, c and a - jr nz, .asm_7581b ; 0x7580e $b + jr nz, .asm_7581b call WaitForSoundToFinish - ld a, (SFX_02_57 - SFX_Headers_02) / 3 + ld a, SFX_GO_INSIDE call PlaySound call WaitForSoundToFinish .asm_7581b ld a, [wTrainerHeaderFlagBit] ld [$ffdb], a + AdjustEventBit EVENT_BEAT_CINNABAR_GYM_TRAINER_0, 2 ld c, a - ld b, $1 - ld hl, wd79a - call CinnabarGymScript_757f1 + ld b, FLAG_SET + EventFlagAddress hl, EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + call CinnabarGymFlagAction ld a, [wTrainerHeaderFlagBit] sub $2 + AdjustEventBit EVENT_CINNABAR_GYM_GATE0_UNLOCKED, 0 ld c, a - ld b, $1 - ld hl, wd79c - call CinnabarGymScript_757f1 - call Func_3ead + ld b, FLAG_SET + EventFlagAddress hl, EVENT_CINNABAR_GYM_GATE0_UNLOCKED + call CinnabarGymFlagAction + call UpdateCinnabarGymGateTileBlocks xor a ld [wJoyIgnore], a - ld [wda38], a + ld [wOpponentAfterWrongAnswer], a ld a, $0 - ld [W_CINNABARGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wCinnabarGymCurScript], a + ld [wCurMapScript], a ret -CinnabarGymScript3: ; 7584a (1d:584a) - ld a, [W_ISINBATTLE] +CinnabarGymScript3: + ld a, [wIsInBattle] cp $ff jp z, CinnabarGymScript_75792 ld a, $f0 ld [wJoyIgnore], a -CinnabarGymScript3_75857: ; 75857 (1d:5857) +CinnabarGymScript3_75857: ld a, $a - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID - ld hl, wd79a - set 1, [hl] - ld bc, (TM_38 << 8) | 1 + SetEvent EVENT_BEAT_BLAINE + lb bc, TM_38, 1 call GiveItem jr nc, .BagFull ld a, $b - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID - ld hl, wd79a - set 0, [hl] - jr .asm_75880 ; 0x75877 $7 + SetEvent EVENT_GOT_TM38 + jr .asm_75880 .BagFull ld a, $c - ld [$ff8c], a + ld [hSpriteIndexOrTextID], a call DisplayTextID .asm_75880 - ld hl, W_OBTAINEDBADGES + ld hl, wObtainedBadges set 6, [hl] - ld hl, wd72a + ld hl, wBeatGymFlags set 6, [hl] ; deactivate gym trainers - ld a, [wd79a] - or %11111100 - ld [wd79a], a - ld hl, wd79b - set 0, [hl] + SetEventRange EVENT_BEAT_CINNABAR_GYM_TRAINER_0, EVENT_BEAT_CINNABAR_GYM_TRAINER_6 - ld hl, wd126 + ld hl, wCurrentMapScriptFlags set 5, [hl] jp CinnabarGymScript_75792 -CinnabarGymTextPointers: ; 7589f (1d:589f) +CinnabarGymTextPointers: dw CinnabarGymText1 dw CinnabarGymText2 dw CinnabarGymText3 @@ -185,8 +184,8 @@ CinnabarGymTextPointers: ; 7589f (1d:589f) dw ReceivedTM38Text dw TM38NoRoomText -CinnabarGymScript_758b7: ; 758b7 (1d:58b7) - ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c +CinnabarGymScript_758b7: + ld a, [hSpriteIndexOrTextID] ld [wSpriteIndex], a call EngageMapTrainer call InitBattleEnemyParameters @@ -201,282 +200,273 @@ CinnabarGymScript_758b7: ; 758b7 (1d:58b7) .asm_758d4 ld a, $3 .asm_758d6 - ld [W_CINNABARGYMCURSCRIPT], a - ld [W_CURMAPSCRIPT], a + ld [wCinnabarGymCurScript], a + ld [wCurMapScript], a jp TextScriptEnd -CinnabarGymText1: ; 758df (1d:58df) - db $8 - ld a, [wd79a] - bit 1, a - jr z, .asm_d9332 ; 0x758e5 $16 - bit 0, a - jr nz, .asm_3012f ; 0x758e9 $9 +CinnabarGymText1: + TX_ASM + CheckEvent EVENT_BEAT_BLAINE + jr z, .asm_d9332 + CheckEventReuseA EVENT_GOT_TM38 + jr nz, .asm_3012f call z, CinnabarGymScript3_75857 call DisableWaitingAfterTextDisplay jp TextScriptEnd -.asm_3012f ; 0x758f4 +.asm_3012f ld hl, BlaineFireBlastText call PrintText jp TextScriptEnd -.asm_d9332 ; 0x758fd +.asm_d9332 ld hl, BlaineBattleText call PrintText ld hl, BlaineEndBattleText ld de, BlaineEndBattleText call SaveEndBattleTextPointers ld a, $7 - ld [W_GYMLEADERNO], a + ld [wGymLeaderNo], a jp CinnabarGymScript_758b7 -BlaineBattleText: ; 75914 (1d:5914) +BlaineBattleText: TX_FAR _BlaineBattleText db "@" -BlaineEndBattleText: ; 75919 (1d:5919) +BlaineEndBattleText: TX_FAR _BlaineEndBattleText - db $11 - db $d + TX_SFX_KEY_ITEM ; actually plays the second channel of SFX_BALL_POOF due to the wrong music bank being loaded + TX_WAIT db "@" -BlaineFireBlastText: ; 75920 (1d:5920) +BlaineFireBlastText: TX_FAR _BlaineFireBlastText db "@" -BlaineBadgeText: ; 75925 (1d:5925) +BlaineBadgeText: TX_FAR _BlaineBadgeText db "@" -ReceivedTM38Text: ; 7592a (1d:592a) +ReceivedTM38Text: TX_FAR _ReceivedTM38Text - db $0B + TX_SFX_ITEM_1 TX_FAR _TM38ExplanationText db "@" -TM38NoRoomText: ; 75934 (1d:5934) +TM38NoRoomText: TX_FAR _TM38NoRoomText db "@" -CinnabarGymText2: ; 75939 (1d:5939) - db $08 ; asm +CinnabarGymText2: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 2, a - jr nz, .asm_46bb4 ; 0x75942 + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_0 + jr nz, .asm_46bb4 ld hl, CinnabarGymText_7595f call PrintText ld hl, CinnabarGymText_75964 - ld de, CinnabarGymText_75964 ; $5964 XXX + ld de, CinnabarGymText_75964 call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_46bb4 ; 0x75956 +.asm_46bb4 ld hl, CinnabarGymText_75969 call PrintText jp TextScriptEnd -CinnabarGymText_7595f: ; 7595f (1d:595f) +CinnabarGymText_7595f: TX_FAR _CinnabarGymText_7595f db "@" -CinnabarGymText_75964: ; 75964 (1d:5964) +CinnabarGymText_75964: TX_FAR _CinnabarGymText_75964 db "@" -CinnabarGymText_75969: ; 75969 (1d:5969) +CinnabarGymText_75969: TX_FAR _CinnabarGymText_75969 db "@" -CinnabarGymText3: ; 7596e (1d:596e) - db $08 ; asm +CinnabarGymText3: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 3, a - jr nz, .asm_4b406 ; 0x75977 + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_1 + jr nz, .asm_4b406 ld hl, CinnabarGymText_75994 call PrintText ld hl, CinnabarGymText_75999 - ld de, CinnabarGymText_75999 ; $5999 XXX + ld de, CinnabarGymText_75999 call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_4b406 ; 0x7598b +.asm_4b406 ld hl, CinnabarGymText_7599e call PrintText jp TextScriptEnd -CinnabarGymText_75994: ; 75994 (1d:5994) +CinnabarGymText_75994: TX_FAR _CinnabarGymText_75994 db "@" -CinnabarGymText_75999: ; 75999 (1d:5999) +CinnabarGymText_75999: TX_FAR _CinnabarGymText_75999 db "@" -CinnabarGymText_7599e: ; 7599e (1d:599e) +CinnabarGymText_7599e: TX_FAR _CinnabarGymText_7599e db "@" -CinnabarGymText4: ; 759a3 (1d:59a3) - db $08 ; asm +CinnabarGymText4: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 4, a - jr nz, .asm_c0673 ; 0x759ac + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_2 + jr nz, .asm_c0673 ld hl, CinnabarGymText_759c9 call PrintText ld hl, CinnabarGymText_759ce - ld de, CinnabarGymText_759ce ; $59ce XXX + ld de, CinnabarGymText_759ce call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_c0673 ; 0x759c0 +.asm_c0673 ld hl, CinnabarGymText_759d3 call PrintText jp TextScriptEnd -CinnabarGymText_759c9: ; 759c9 (1d:59c9) +CinnabarGymText_759c9: TX_FAR _CinnabarGymText_759c9 db "@" -CinnabarGymText_759ce: ; 759ce (1d:59ce) +CinnabarGymText_759ce: TX_FAR _CinnabarGymText_759ce db "@" -CinnabarGymText_759d3: ; 759d3 (1d:59d3) +CinnabarGymText_759d3: TX_FAR _CinnabarGymText_759d3 db "@" -CinnabarGymText5: ; 759d8 (1d:59d8) - db $08 ; asm +CinnabarGymText5: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 5, a - jr nz, .asm_5cfd7 ; 0x759e1 + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_3 + jr nz, .asm_5cfd7 ld hl, CinnabarGymText_759fe call PrintText ld hl, CinnabarGymText_75a03 - ld de, CinnabarGymText_75a03 ; $5a03 XXX + ld de, CinnabarGymText_75a03 call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_5cfd7 ; 0x759f5 +.asm_5cfd7 ld hl, CinnabarGymText_75a08 call PrintText jp TextScriptEnd -CinnabarGymText_759fe: ; 759fe (1d:59fe) +CinnabarGymText_759fe: TX_FAR _CinnabarGymText_759fe db "@" -CinnabarGymText_75a03: ; 75a03 (1d:5a03) +CinnabarGymText_75a03: TX_FAR _CinnabarGymText_75a03 db "@" -CinnabarGymText_75a08: ; 75a08 (1d:5a08) +CinnabarGymText_75a08: TX_FAR _CinnabarGymText_75a08 db "@" -CinnabarGymText6: ; 75a0d (1d:5a0d) - db $08 ; asm +CinnabarGymText6: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 6, a - jr nz, .asm_776b4 ; 0x75a16 + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_4 + jr nz, .asm_776b4 ld hl, CinnabarGymText_75a33 call PrintText ld hl, CinnabarGymText_75a38 ld de, CinnabarGymText_75a38 call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_776b4 ; 0x75a2a +.asm_776b4 ld hl, CinnabarGymText_75a3d call PrintText jp TextScriptEnd -CinnabarGymText_75a33: ; 75a33 (1d:5a33) +CinnabarGymText_75a33: TX_FAR _CinnabarGymText_75a33 db "@" -CinnabarGymText_75a38: ; 75a38 (1d:5a38) +CinnabarGymText_75a38: TX_FAR _CinnabarGymText_75a38 db "@" -CinnabarGymText_75a3d: ; 75a3d (1d:5a3d) +CinnabarGymText_75a3d: TX_FAR _CinnabarGymText_75a3d db "@" -CinnabarGymText7: ; 75a42 (1d:5a42) - db $08 ; asm +CinnabarGymText7: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79a] - bit 7, a - jr nz, .asm_2f755 ; 0x75a4b + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_5 + jr nz, .asm_2f755 ld hl, CinnabarGymText_75a68 call PrintText ld hl, CinnabarGymText_75a6d ld de, CinnabarGymText_75a6d call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_2f755 ; 0x75a5f +.asm_2f755 ld hl, CinnabarGymText_75a72 call PrintText jp TextScriptEnd -CinnabarGymText_75a68: ; 75a68 (1d:5a68) +CinnabarGymText_75a68: TX_FAR _CinnabarGymText_75a68 db "@" -CinnabarGymText_75a6d: ; 75a6d (1d:5a6d) +CinnabarGymText_75a6d: TX_FAR _CinnabarGymText_75a6d db "@" -CinnabarGymText_75a72: ; 75a72 (1d:5a72) +CinnabarGymText_75a72: TX_FAR _CinnabarGymText_75a72 db "@" -CinnabarGymText8: ; 75a77 (1d:5a77) - db $08 ; asm +CinnabarGymText8: + TX_ASM call CinnabarGymScript_757a0 - ld a, [wd79b] - bit 0, a - jr nz, .asm_d87be ; 0x75a80 + CheckEvent EVENT_BEAT_CINNABAR_GYM_TRAINER_6 + jr nz, .asm_d87be ld hl, CinnabarGymText_75a9d call PrintText ld hl, CinnabarGymText_75aa2 - ld de, CinnabarGymText_75aa2 ; $5aa2 XXX + ld de, CinnabarGymText_75aa2 call SaveEndBattleTextPointers jp CinnabarGymScript_758b7 -.asm_d87be ; 0x75a94 +.asm_d87be ld hl, CinnabarGymText_75aa7 call PrintText jp TextScriptEnd -CinnabarGymText_75a9d: ; 75a9d (1d:5a9d) +CinnabarGymText_75a9d: TX_FAR _CinnabarGymText_75a9d db "@" -CinnabarGymText_75aa2: ; 75aa2 (1d:5aa2) +CinnabarGymText_75aa2: TX_FAR _CinnabarGymText_75aa2 db "@" -CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7) +CinnabarGymText_75aa7: TX_FAR _CinnabarGymText_75aa7 db "@" -CinnabarGymText9: ; 75aac (1d:5aac) - db $08 ; asm - ld a, [wd79a] - bit 1, a - jr nz, .asm_627d9 ; 0x75ab2 +CinnabarGymText9: + TX_ASM + CheckEvent EVENT_BEAT_BLAINE + jr nz, .asm_627d9 ld hl, CinnabarGymText_75ac2 - jr .asm_0b11d ; 0x75ab7 -.asm_627d9 ; 0x75ab9 + jr .asm_0b11d +.asm_627d9 ld hl, CinnabarGymText_75ac7 -.asm_0b11d ; 0x75abc +.asm_0b11d call PrintText jp TextScriptEnd -CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2) +CinnabarGymText_75ac2: TX_FAR _CinnabarGymText_75ac2 db "@" -CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7) +CinnabarGymText_75ac7: TX_FAR _CinnabarGymText_75ac7 db "@" |