summaryrefslogtreecommitdiff
path: root/scripts/cinnabargym.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/cinnabargym.asm')
-rwxr-xr-xscripts/cinnabargym.asm483
1 files changed, 483 insertions, 0 deletions
diff --git a/scripts/cinnabargym.asm b/scripts/cinnabargym.asm
new file mode 100755
index 00000000..1d66a1bf
--- /dev/null
+++ b/scripts/cinnabargym.asm
@@ -0,0 +1,483 @@
+CinnabarGymScript: ; 7574a (1d:574a)
+ call CinnabarGymScript_75759
+ call EnableAutoTextBoxDrawing
+ ld hl, CinnabarGymScriptPointers
+ ld a, [W_CINNABARGYMCURSCRIPT]
+ jp CallFunctionInTable
+
+CinnabarGymScript_75759: ; 75759 (1d:5759)
+ ld hl, $D126
+ bit 6, [hl]
+ res 6, [hl]
+ push hl
+ call nz, CinnabarGymScript_75772
+ pop hl
+ bit 5, [hl]
+ res 5, [hl]
+ call nz, Func_3ead
+ ld hl, $D79B
+ res 7, [hl]
+ ret
+CinnabarGymScript_75772: ; 75772 (1d:5772)
+ ld hl, Gym7CityName
+ ld de, Gym7LeaderName
+ jp LoadGymLeaderAndCityName
+
+Gym7CityName: ; 7577b (1d:577b)
+ db "CINNABAR ISLAND@"
+Gym7LeaderName: ; 7578b (1d:578b)
+ db "BLAINE@"
+
+CinnabarGymScript_75792: ; 75792 (1d:5792)
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld [W_CINNABARGYMCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ ld [$da38], a
+ ret
+
+CinnabarGymScript_757a0: ; 757a0 (1d:57a0)
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld [wTrainerHeaderFlagBit], a
+ ret
+
+CinnabarGymScriptPointers: ; 757a6 (1d:57a6)
+ dw CinnabarGymScript0
+ dw CinnabarGymScript1
+ dw CinnabarGymScript2
+ dw CinnabarGymScript3
+
+CinnabarGymScript0: ; 757ae (1d:57ae)
+ ld a, [$da38]
+ and a
+ ret z
+ ld [$ff8c], a
+ cp $4
+ jr nz, .asm_757c3 ; 0x757b7 $a
+ ld a, $4
+ ld [$d528], a
+ ld de, MovementData_757d7
+ jr .asm_757cb ; 0x757c1 $8
+.asm_757c3
+ ld de, MovementData_757da
+ ld a, $1
+ ld [$d528], a
+.asm_757cb
+ call MoveSprite
+ ld a, $1
+ ld [W_CINNABARGYMCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ ret
+
+MovementData_757d7: ; 757d7 (1d:57d7)
+ db $80,$40,$FF
+
+MovementData_757da: ; 757da (1d:57da)
+ db $80,$FF
+
+CinnabarGymScript1: ; 757dc (1d:57dc)
+ ld a, [$d730]
+ bit 0, a
+ ret nz
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld a, [$da38]
+ ld [wTrainerHeaderFlagBit], a
+ ld [$ff8c], a
+ jp DisplayTextID
+
+CinnabarGymScript_757f1: ; 757f1 (1d:57f1)
+ ld a, $10
+ jp Predef ; indirect jump to HandleBitArray (f666 (3:7666))
+
+CinnabarGymScript2: ; 757f6 (1d:57f6)
+ ld a, [$d057]
+ cp $ff
+ jp z, CinnabarGymScript_75792
+ ld a, [wTrainerHeaderFlagBit]
+ ld [$ffdb], a
+ ld c, a
+ ld b, $2
+ ld hl, $d79a
+ call CinnabarGymScript_757f1
+ ld a, c
+ and a
+ jr nz, .asm_7581b ; 0x7580e $b
+ call WaitForSoundToFinish
+ ld a, (SFX_02_57 - SFX_Headers_02) / 3
+ call PlaySound
+ call WaitForSoundToFinish
+.asm_7581b
+ ld a, [wTrainerHeaderFlagBit]
+ ld [$ffdb], a
+ ld c, a
+ ld b, $1
+ ld hl, $d79a
+ call CinnabarGymScript_757f1
+ ld a, [wTrainerHeaderFlagBit]
+ sub $2
+ ld c, a
+ ld b, $1
+ ld hl, $d79c
+ call CinnabarGymScript_757f1
+ call Func_3ead
+ xor a
+ ld [wJoypadForbiddenButtonsMask], a
+ ld [$da38], a
+ ld a, $0
+ ld [W_CINNABARGYMCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ ret
+
+CinnabarGymScript3: ; 7584a (1d:584a)
+ ld a, [$d057]
+ cp $ff
+ jp z, CinnabarGymScript_75792
+ ld a, $f0
+ ld [wJoypadForbiddenButtonsMask], a
+CinnabarGymScript3_75857: ; 75857 (1d:5857)
+ ld a, $a
+ ld [$ff8c], a
+ call DisplayTextID
+ ld hl, $d79a
+ set 1, [hl]
+ ld bc, (TM_38 << 8) | 1
+ call GiveItem
+ jr nc, .BagFull
+ ld a, $b
+ ld [$ff8c], a
+ call DisplayTextID
+ ld hl, $d79a
+ set 0, [hl]
+ jr .asm_75880 ; 0x75877 $7
+.BagFull
+ ld a, $c
+ ld [$ff8c], a
+ call DisplayTextID
+.asm_75880
+ ld hl, W_OBTAINEDBADGES
+ set 6, [hl]
+ ld hl, $d72a
+ set 6, [hl]
+
+ ; deactivate gym trainers
+ ld a, [$d79a]
+ or %11111100
+ ld [$d79a], a
+ ld hl, $d79b
+ set 0, [hl]
+
+ ld hl, $d126
+ set 5, [hl]
+
+ jp CinnabarGymScript_75792
+
+CinnabarGymTextPointers: ; 7589f (1d:589f)
+ dw CinnabarGymText1
+ dw CinnabarGymText2
+ dw CinnabarGymText3
+ dw CinnabarGymText4
+ dw CinnabarGymText5
+ dw CinnabarGymText6
+ dw CinnabarGymText7
+ dw CinnabarGymText8
+ dw CinnabarGymText9
+ dw BlaineBadgeText
+ dw ReceivedTM38Text
+ dw TM38NoRoomText
+
+CinnabarGymScript_758b7: ; 758b7 (1d:58b7)
+ ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c
+ ld [$cf13], a
+ call EngageMapTrainer
+ call InitBattleEnemyParameters
+ ld hl, $d72d
+ set 6, [hl]
+ set 7, [hl]
+ ld a, [$cf13]
+ cp $1
+ jr z, .asm_758d4
+ ld a, $2
+ jr .asm_758d6
+.asm_758d4
+ ld a, $3
+.asm_758d6
+ ld [W_CINNABARGYMCURSCRIPT], a
+ ld [W_CURMAPSCRIPT], a
+ jp TextScriptEnd
+
+CinnabarGymText1: ; 758df (1d:58df)
+ db $8
+ ld a, [$d79a]
+ bit 1, a
+ jr z, .asm_d9332 ; 0x758e5 $16
+ bit 0, a
+ jr nz, .asm_3012f ; 0x758e9 $9
+ call z, CinnabarGymScript3_75857
+ call DisableWaitingAfterTextDisplay
+ jp TextScriptEnd
+.asm_3012f ; 0x758f4
+ ld hl, BlaineFireBlastText
+ call PrintText
+ jp TextScriptEnd
+.asm_d9332 ; 0x758fd
+ ld hl, BlaineBattleText
+ call PrintText
+ ld hl, BlaineEndBattleText
+ ld de, BlaineEndBattleText
+ call PreBattleSaveRegisters
+ ld a, $7
+ ld [$d05c], a
+ jp CinnabarGymScript_758b7
+
+BlaineBattleText: ; 75914 (1d:5914)
+ TX_FAR _BlaineBattleText
+ db "@"
+
+BlaineEndBattleText: ; 75919 (1d:5919)
+ TX_FAR _BlaineEndBattleText
+ db $11
+ db $d
+ db "@"
+
+BlaineFireBlastText: ; 75920 (1d:5920)
+ TX_FAR _BlaineFireBlastText
+ db "@"
+
+BlaineBadgeText: ; 75925 (1d:5925)
+ TX_FAR _BlaineBadgeText
+ db "@"
+
+ReceivedTM38Text: ; 7592a (1d:592a)
+ TX_FAR _ReceivedTM38Text
+ db $0B
+ TX_FAR _TM38ExplanationText
+ db "@"
+
+TM38NoRoomText: ; 75934 (1d:5934)
+ TX_FAR _TM38NoRoomText
+ db "@"
+
+CinnabarGymText2: ; 75939 (1d:5939)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 2, a
+ jr nz, .asm_46bb4 ; 0x75942
+ ld hl, CinnabarGymText_7595f
+ call PrintText
+ ld hl, CinnabarGymText_75964
+ ld de, CinnabarGymText_75964 ; $5964 XXX
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_46bb4 ; 0x75956
+ ld hl, CinnabarGymText_75969
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_7595f: ; 7595f (1d:595f)
+ TX_FAR _CinnabarGymText_7595f
+ db "@"
+
+CinnabarGymText_75964: ; 75964 (1d:5964)
+ TX_FAR _CinnabarGymText_75964
+ db "@"
+
+CinnabarGymText_75969: ; 75969 (1d:5969)
+ TX_FAR _CinnabarGymText_75969
+ db "@"
+
+CinnabarGymText3: ; 7596e (1d:596e)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 3, a
+ jr nz, .asm_4b406 ; 0x75977
+ ld hl, CinnabarGymText_75994
+ call PrintText
+ ld hl, CinnabarGymText_75999
+ ld de, CinnabarGymText_75999 ; $5999 XXX
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_4b406 ; 0x7598b
+ ld hl, CinnabarGymText_7599e
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_75994: ; 75994 (1d:5994)
+ TX_FAR _CinnabarGymText_75994
+ db "@"
+
+CinnabarGymText_75999: ; 75999 (1d:5999)
+ TX_FAR _CinnabarGymText_75999
+ db "@"
+
+CinnabarGymText_7599e: ; 7599e (1d:599e)
+ TX_FAR _CinnabarGymText_7599e
+ db "@"
+
+CinnabarGymText4: ; 759a3 (1d:59a3)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 4, a
+ jr nz, .asm_c0673 ; 0x759ac
+ ld hl, CinnabarGymText_759c9
+ call PrintText
+ ld hl, CinnabarGymText_759ce
+ ld de, CinnabarGymText_759ce ; $59ce XXX
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_c0673 ; 0x759c0
+ ld hl, CinnabarGymText_759d3
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_759c9: ; 759c9 (1d:59c9)
+ TX_FAR _CinnabarGymText_759c9
+ db "@"
+
+CinnabarGymText_759ce: ; 759ce (1d:59ce)
+ TX_FAR _CinnabarGymText_759ce
+ db "@"
+
+CinnabarGymText_759d3: ; 759d3 (1d:59d3)
+ TX_FAR _CinnabarGymText_759d3
+ db "@"
+
+CinnabarGymText5: ; 759d8 (1d:59d8)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 5, a
+ jr nz, .asm_5cfd7 ; 0x759e1
+ ld hl, CinnabarGymText_759fe
+ call PrintText
+ ld hl, CinnabarGymText_75a03
+ ld de, CinnabarGymText_75a03 ; $5a03 XXX
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_5cfd7 ; 0x759f5
+ ld hl, CinnabarGymText_75a08
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_759fe: ; 759fe (1d:59fe)
+ TX_FAR _CinnabarGymText_759fe
+ db "@"
+
+CinnabarGymText_75a03: ; 75a03 (1d:5a03)
+ TX_FAR _CinnabarGymText_75a03
+ db "@"
+
+CinnabarGymText_75a08: ; 75a08 (1d:5a08)
+ TX_FAR _CinnabarGymText_75a08
+ db "@"
+
+CinnabarGymText6: ; 75a0d (1d:5a0d)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 6, a
+ jr nz, .asm_776b4 ; 0x75a16
+ ld hl, CinnabarGymText_75a33
+ call PrintText
+ ld hl, CinnabarGymText_75a38
+ ld de, CinnabarGymText_75a38
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_776b4 ; 0x75a2a
+ ld hl, CinnabarGymText_75a3d
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_75a33: ; 75a33 (1d:5a33)
+ TX_FAR _CinnabarGymText_75a33
+ db "@"
+
+CinnabarGymText_75a38: ; 75a38 (1d:5a38)
+ TX_FAR _CinnabarGymText_75a38
+ db "@"
+
+CinnabarGymText_75a3d: ; 75a3d (1d:5a3d)
+ TX_FAR _CinnabarGymText_75a3d
+ db "@"
+
+CinnabarGymText7: ; 75a42 (1d:5a42)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79a]
+ bit 7, a
+ jr nz, .asm_2f755 ; 0x75a4b
+ ld hl, CinnabarGymText_75a68
+ call PrintText
+ ld hl, CinnabarGymText_75a6d
+ ld de, CinnabarGymText_75a6d
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_2f755 ; 0x75a5f
+ ld hl, CinnabarGymText_75a72
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_75a68: ; 75a68 (1d:5a68)
+ TX_FAR _CinnabarGymText_75a68
+ db "@"
+
+CinnabarGymText_75a6d: ; 75a6d (1d:5a6d)
+ TX_FAR _CinnabarGymText_75a6d
+ db "@"
+
+CinnabarGymText_75a72: ; 75a72 (1d:5a72)
+ TX_FAR _CinnabarGymText_75a72
+ db "@"
+
+CinnabarGymText8: ; 75a77 (1d:5a77)
+ db $08 ; asm
+ call CinnabarGymScript_757a0
+ ld a, [$d79b]
+ bit 0, a
+ jr nz, .asm_d87be ; 0x75a80
+ ld hl, CinnabarGymText_75a9d
+ call PrintText
+ ld hl, CinnabarGymText_75aa2
+ ld de, CinnabarGymText_75aa2 ; $5aa2 XXX
+ call PreBattleSaveRegisters
+ jp CinnabarGymScript_758b7
+.asm_d87be ; 0x75a94
+ ld hl, CinnabarGymText_75aa7
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_75a9d: ; 75a9d (1d:5a9d)
+ TX_FAR _CinnabarGymText_75a9d
+ db "@"
+
+CinnabarGymText_75aa2: ; 75aa2 (1d:5aa2)
+ TX_FAR _CinnabarGymText_75aa2
+ db "@"
+
+CinnabarGymText_75aa7: ; 75aa7 (1d:5aa7)
+ TX_FAR _CinnabarGymText_75aa7
+ db "@"
+
+CinnabarGymText9: ; 75aac (1d:5aac)
+ db $08 ; asm
+ ld a, [$d79a]
+ bit 1, a
+ jr nz, .asm_627d9 ; 0x75ab2
+ ld hl, CinnabarGymText_75ac2
+ jr .asm_0b11d ; 0x75ab7
+.asm_627d9 ; 0x75ab9
+ ld hl, CinnabarGymText_75ac7
+.asm_0b11d ; 0x75abc
+ call PrintText
+ jp TextScriptEnd
+
+CinnabarGymText_75ac2: ; 75ac2 (1d:5ac2)
+ TX_FAR _CinnabarGymText_75ac2
+ db "@"
+
+CinnabarGymText_75ac7: ; 75ac7 (1d:5ac7)
+ TX_FAR _CinnabarGymText_75ac7
+ db "@"