summaryrefslogtreecommitdiff
path: root/scripts/SSAnne2F.asm
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/SSAnne2F.asm')
-rwxr-xr-xscripts/SSAnne2F.asm216
1 files changed, 216 insertions, 0 deletions
diff --git a/scripts/SSAnne2F.asm b/scripts/SSAnne2F.asm
new file mode 100755
index 00000000..ba900748
--- /dev/null
+++ b/scripts/SSAnne2F.asm
@@ -0,0 +1,216 @@
+SSAnne2F_Script:
+ call EnableAutoTextBoxDrawing
+ ld hl, SSAnne2F_ScriptPointers
+ ld a, [wSSAnne2FCurScript]
+ jp CallFunctionInTable
+
+SSAnne2Script_613ab:
+ xor a
+ ld [wJoyIgnore], a
+ ld [wSSAnne2FCurScript], a
+ ret
+
+SSAnne2F_ScriptPointers:
+ dw SSAnne2Script0
+ dw SSAnne2Script1
+ dw SSAnne2Script2
+ dw SSAnne2Script3
+ dw SSAnne2Script4
+
+SSAnne2Script4:
+ ret
+
+SSAnne2Script0:
+ ld hl, CoordsData_61411
+ call ArePlayerCoordsInArray
+ ret nc
+ ld a, $ff
+ ld [wNewSoundID], a
+ call PlaySound
+ ld c, BANK(Music_MeetRival)
+ ld a, MUSIC_MEET_RIVAL
+ call PlayMusic
+ ld a, [wCoordIndex]
+ ld [$ffdb], a
+ ld a, HS_SS_ANNE_2F_RIVAL
+ ld [wMissableObjectIndex], a
+ predef ShowObject
+ call Delay3
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call SetSpriteMovementBytesToFF
+ xor a
+ ld [hJoyHeld], a
+ ld a, $f0
+ ld [wJoyIgnore], a
+ ld a, [$ffdb]
+ cp $2
+ jr nz, .asm_61400
+ ld de, MovementData_6140c
+ jr .asm_61403
+.asm_61400
+ ld de, MovementData_6140d
+.asm_61403
+ call MoveSprite
+ ld a, $1
+ ld [wSSAnne2FCurScript], a
+ ret
+
+MovementData_6140c:
+ db NPC_MOVEMENT_DOWN
+
+MovementData_6140d:
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
+
+CoordsData_61411:
+ db $08,$24
+ db $08,$25
+ db $FF
+
+SSAnne2Script_61416:
+ ld a, [wXCoord]
+ cp $25
+ jr nz, .asm_61426
+ ld a, PLAYER_DIR_LEFT
+ ld [wPlayerMovingDirection], a
+ ld a, SPRITE_FACING_RIGHT
+ jr .asm_61427
+.asm_61426
+ xor a ; SPRITE_FACING_DOWN
+.asm_61427
+ ld [hSpriteFacingDirection], a
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ jp SetSpriteFacingDirectionAndDelay
+
+SSAnne2Script1:
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ call SSAnne2Script_61416
+ xor a
+ ld [wJoyIgnore], a
+ ld a, $2
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ call Delay3
+ ld a, OPP_SONY2
+ ld [wCurOpponent], a
+
+ ; select which team to use during the encounter
+ ld a, [wRivalStarter]
+ cp STARTER2
+ jr nz, .NotSquirtle
+ ld a, $1
+ jr .done
+.NotSquirtle
+ cp STARTER3
+ jr nz, .Charmander
+ ld a, $2
+ jr .done
+.Charmander
+ ld a, $3
+.done
+ ld [wTrainerNo], a
+
+ call SSAnne2Script_61416
+ ld a, $2
+ ld [wSSAnne2FCurScript], a
+ ret
+
+SSAnne2Script2:
+ ld a, [wIsInBattle]
+ cp $ff
+ jp z, SSAnne2Script_613ab
+ call SSAnne2Script_61416
+ ld a, $f0
+ ld [wJoyIgnore], a
+ ld a, $3
+ ld [hSpriteIndexOrTextID], a
+ call DisplayTextID
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call SetSpriteMovementBytesToFF
+ ld a, [wXCoord]
+ cp $25
+ jr nz, .asm_61497
+ ld de, MovementData_614b9
+ jr .asm_6149a
+.asm_61497
+ ld de, MovementData_614b7
+.asm_6149a
+ ld a, $2
+ ld [H_SPRITEINDEX], a
+ call MoveSprite
+ ld a, $ff
+ ld [wNewSoundID], a
+ call PlaySound
+ callba Music_RivalAlternateStart
+ ld a, $3
+ ld [wSSAnne2FCurScript], a
+ ret
+
+MovementData_614b7:
+ db NPC_MOVEMENT_RIGHT
+ db NPC_MOVEMENT_DOWN
+
+MovementData_614b9:
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db NPC_MOVEMENT_DOWN
+ db $FF
+
+SSAnne2Script3:
+ ld a, [wd730]
+ bit 0, a
+ ret nz
+ xor a
+ ld [wJoyIgnore], a
+ ld a, HS_SS_ANNE_2F_RIVAL
+ ld [wMissableObjectIndex], a
+ predef HideObject
+ call PlayDefaultMusic
+ ld a, $4
+ ld [wSSAnne2FCurScript], a
+ ret
+
+SSAnne2F_TextPointers:
+ dw SSAnne2Text1
+ dw SSAnne2Text2
+ dw SSAnne2Text3
+
+SSAnne2Text1:
+ TX_FAR _SSAnne2Text1
+ db "@"
+
+SSAnne2Text2:
+ TX_ASM
+ ld hl, SSAnneRivalBeforeBattleText
+ call PrintText
+ ld hl, wd72d
+ set 6, [hl]
+ set 7, [hl]
+ ld hl, SSAnneRivalDefeatedText
+ ld de, SSAnneRivalWonText
+ call SaveEndBattleTextPointers
+ jp TextScriptEnd
+
+SSAnneRivalBeforeBattleText:
+ TX_FAR _SSAnneRivalBeforeBattleText
+ db "@"
+
+SSAnneRivalDefeatedText:
+ TX_FAR _SSAnneRivalDefeatedText
+ db "@"
+
+SSAnneRivalWonText:
+ TX_FAR _SSAnneRivalWonText
+ db "@"
+
+SSAnne2Text3:
+ TX_FAR _SSAnneRivalCaptainText
+ db "@"