summaryrefslogtreecommitdiff
path: root/scripts/oakslab.asm
diff options
context:
space:
mode:
authorDaniel Harding <33dannye@gmail.com>2019-01-13 22:38:16 -0600
committerGitHub <noreply@github.com>2019-01-13 22:38:16 -0600
commit725b86ebbec23bd1f53fd60bf0201c904fee951d (patch)
treea37f4d33c5b77635c7ff72b91a73fcd90c4af915 /scripts/oakslab.asm
parent108245cb21abb3abac051b7db84ed6c694192a61 (diff)
parentc7796024590fec48ac79756793c1a6e3b54daf8f (diff)
Merge pull request #196 from Rangi42/polishedmaps
Rename map files, labels, and constants to be consistent and work with Polished Map
Diffstat (limited to 'scripts/oakslab.asm')
-rwxr-xr-xscripts/oakslab.asm1233
1 files changed, 0 insertions, 1233 deletions
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm
deleted file mode 100755
index aa84fab9..00000000
--- a/scripts/oakslab.asm
+++ /dev/null
@@ -1,1233 +0,0 @@
-OaksLabScript:
- CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS_2
- call nz, OaksLabScript_1d076
- ld a, $1
- ld [wAutoTextBoxDrawingControl], a
- xor a
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, OaksLabScriptPointers
- ld a, [wOaksLabCurScript]
- jp CallFunctionInTable
-
-OaksLabScriptPointers:
- dw OaksLabScript0
- dw OaksLabScript1
- dw OaksLabScript2
- dw OaksLabScript3
- dw OaksLabScript4
- dw OaksLabScript5
- dw OaksLabScript6
- dw OaksLabScript7
- dw OaksLabScript8
- dw OaksLabScript9
- dw OaksLabScript10
- dw OaksLabScript11
- dw OaksLabScript12
- dw OaksLabScript13
- dw OaksLabScript14
- dw OaksLabScript15
- dw OaksLabScript16
- dw OaksLabScript17
- dw OaksLabScript18
-
-OaksLabScript0:
- CheckEvent EVENT_OAK_APPEARED_IN_PALLET
- ret z
- ld a, [wNPCMovementScriptFunctionNum]
- and a
- ret nz
- ld a, HS_OAKS_LAB_OAK_2
- ld [wMissableObjectIndex], a
- predef ShowObject
- ld hl, wd72e
- res 4, [hl]
-
- ld a, $1
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript1:
- ld a, $8
- ld [H_SPRITEINDEX], a
- ld de, OakEntryMovement
- call MoveSprite
-
- ld a, $2
- ld [wOaksLabCurScript], a
- ret
-
-OakEntryMovement:
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db NPC_MOVEMENT_UP
- db $FF
-
-OaksLabScript2:
- ld a, [wd730]
- bit 0, a
- ret nz
- ld a, HS_OAKS_LAB_OAK_2
- ld [wMissableObjectIndex], a
- predef HideObject
- ld a, HS_OAKS_LAB_OAK_1
- ld [wMissableObjectIndex], a
- predef ShowObject
-
- ld a, $3
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript3:
- call Delay3
- ld hl, wSimulatedJoypadStatesEnd
- ld de, PlayerEntryMovementRLE
- call DecodeRLEList
- dec a
- ld [wSimulatedJoypadStatesIndex], a
- call StartSimulatingJoypadStates
- ld a, $1
- ld [H_SPRITEINDEX], a
- xor a
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $5
- ld [H_SPRITEINDEX], a
- xor a
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
-
- ld a, $4
- ld [wOaksLabCurScript], a
- ret
-
-PlayerEntryMovementRLE:
- db D_UP,$8
- db $ff
-
-OaksLabScript4:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- SetEvent EVENT_FOLLOWED_OAK_INTO_LAB
- SetEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_UP
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- call UpdateSprites
- ld hl, wFlags_D733
- res 1, [hl]
- call PlayDefaultMusic
-
- ld a, $5
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript5:
- ld a, $fc
- ld [wJoyIgnore], a
- ld a, $11
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call Delay3
- ld a, $12
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call Delay3
- ld a, $13
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call Delay3
- ld a, $14
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_OAK_ASKED_TO_CHOOSE_MON
- xor a
- ld [wJoyIgnore], a
-
- ld a, $6
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript6:
- ld a, [wYCoord]
- cp $6
- ret nz
- ld a, $5
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $1
- ld [H_SPRITEINDEX], a
- xor a
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- call UpdateSprites
- ld a, $c
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, $1
- ld [wSimulatedJoypadStatesIndex], a
- ld a, D_UP
- ld [wSimulatedJoypadStatesEnd], a
- call StartSimulatingJoypadStates
- ld a, PLAYER_DIR_UP
- ld [wPlayerMovingDirection], a
-
- ld a, $7
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript7:
- ld a, [wSimulatedJoypadStatesIndex]
- and a
- ret nz
- call Delay3
-
- ld a, $6
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript8:
- ld a, [wPlayerStarter]
- cp STARTER1
- jr z, .Charmander
- cp STARTER2
- jr z, .Squirtle
- jr .Bulbasaur
-.Charmander
- ld de, .MiddleBallMovement1
- ld a, [wYCoord]
- cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3
- ld de, .MiddleBallMovement2
- jr .asm_1ccf3
-
-.MiddleBallMovement1
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_UP
- db $FF
-
-.MiddleBallMovement2
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db $FF
-
-.Squirtle
- ld de, .RightBallMovement1
- ld a, [wYCoord]
- cp $4 ; is the player standing below the table?
- jr z, .asm_1ccf3
- ld de, .RightBallMovement2
- jr .asm_1ccf3
-
-.RightBallMovement1
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_UP
- db $FF
-
-.RightBallMovement2
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db NPC_MOVEMENT_RIGHT
- db $FF
-
-.Bulbasaur
- ld de, .LeftBallMovement1
- ld a, [wXCoord]
- cp $9 ; is the player standing to the right of the table?
- jr nz, .asm_1ccf3
- push hl
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, $4
- ld [H_SPRITEDATAOFFSET], a
- call GetPointerWithinSpriteStateData1
- push hl
- ld [hl], $4c
- inc hl
- inc hl
- ld [hl], $0
- pop hl
- inc h
- ld [hl], $8
- inc hl
- ld [hl], $9
- ld de, .LeftBallMovement2 ; the rival is not currently onscreen, so account for that
- pop hl
- jr .asm_1ccf3
-
-.LeftBallMovement1
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_RIGHT ; not yet terminated!
-.LeftBallMovement2
- db NPC_MOVEMENT_RIGHT
- db $FF
-
-.asm_1ccf3
- ld a, $1
- ld [H_SPRITEINDEX], a
- call MoveSprite
-
- ld a, $9
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript9:
- ld a, [wd730]
- bit 0, a
- ret nz
- ld a, $fc
- ld [wJoyIgnore], a
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_UP
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $d
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, [wRivalStarterBallSpriteIndex]
- cp $2
- jr nz, .asm_1cd28
- ld a, HS_STARTER_BALL_1
- jr .asm_1cd32
-.asm_1cd28
- cp $3
- jr nz, .asm_1cd30
- ld a, HS_STARTER_BALL_2
- jr .asm_1cd32
-.asm_1cd30
- ld a, HS_STARTER_BALL_3
-.asm_1cd32
- ld [wMissableObjectIndex], a
- predef HideObject
- call Delay3
- ld a, [wRivalStarterTemp]
- ld [wRivalStarter], a
- ld [wcf91], a
- ld [wd11e], a
- call GetMonName
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_UP
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $e
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_GOT_STARTER
- xor a
- ld [wJoyIgnore], a
-
- ld a, $a
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript10:
- ld a, [wYCoord]
- cp $6
- ret nz
- ld a, $1
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, PLAYER_DIR_UP
- ld [wPlayerMovingDirection], a
- ld c, BANK(Music_MeetRival)
- ld a, MUSIC_MEET_RIVAL
- call PlayMusic
- ld a, $f
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, $1
- ld [hNPCPlayerRelativePosPerspective], a
- ld a, $1
- swap a
- ld [hNPCSpriteOffset], a
- predef CalcPositionOfPlayerRelativeToNPC
- ld a, [hNPCPlayerYDistance]
- dec a
- ld [hNPCPlayerYDistance], a
- predef FindPathToPlayer
- ld de, wNPCMovementDirections2
- ld a, $1
- ld [H_SPRITEINDEX], a
- call MoveSprite
-
- ld a, $b
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript11:
- ld a, [wd730]
- bit 0, a
- ret nz
-
- ; define which team rival uses, and fight it
- ld a, OPP_SONY1
- ld [wCurOpponent], a
- 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
- ld a, $1
- ld [wSpriteIndex], a
- call GetSpritePosition1
- ld hl, OaksLabText_1d3be
- ld de, OaksLabText_1d3c3
- call SaveEndBattleTextPointers
- ld hl, wd72d
- set 6, [hl]
- set 7, [hl]
- xor a
- ld [wJoyIgnore], a
- ld a, PLAYER_DIR_UP
- ld [wPlayerMovingDirection], a
- ld a, $c
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript12:
- ld a, $f0
- ld [wJoyIgnore], a
- ld a, PLAYER_DIR_UP
- ld [wPlayerMovingDirection], a
- call UpdateSprites
- ld a, $1
- ld [wSpriteIndex], a
- call SetSpritePosition1
- ld a, $1
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- predef HealParty
- SetEvent EVENT_BATTLED_RIVAL_IN_OAKS_LAB
-
- ld a, $d
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript13:
- ld c, 20
- call DelayFrames
- ld a, $10
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- callba Music_RivalAlternateStart
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld de, .RivalExitMovement
- call MoveSprite
- ld a, [wXCoord]
- cp $4
- ; move left or right depending on where the player is standing
- jr nz, .moveLeft
- ld a, NPC_MOVEMENT_RIGHT
- jr .next
-.moveLeft
- ld a, NPC_MOVEMENT_LEFT
-.next
- ld [wNPCMovementDirections], a
-
- ld a, $e
- ld [wOaksLabCurScript], a
- ret
-
-.RivalExitMovement
- db $E0 ; change sprite facing direction
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db NPC_MOVEMENT_DOWN
- db $FF
-
-OaksLabScript14:
- ld a, [wd730]
- bit 0, a
- jr nz, .asm_1ce8c
- ld a, HS_OAKS_LAB_RIVAL
- ld [wMissableObjectIndex], a
- predef HideObject
- xor a
- ld [wJoyIgnore], a
- call PlayDefaultMusic ; reset to map music
- ld a, $12
- ld [wOaksLabCurScript], a
- jr .done
-; make the player keep facing the rival as he walks away
-.asm_1ce8c
- ld a, [wNPCNumScriptedSteps]
- cp $5
- jr nz, .asm_1cea8
- ld a, [wXCoord]
- cp $4
- jr nz, .asm_1cea1
- ld a, SPRITE_FACING_RIGHT
- ld [wSpriteStateData1 + 9], a
- jr .done
-.asm_1cea1
- ld a, SPRITE_FACING_LEFT
- ld [wSpriteStateData1 + 9], a
- jr .done
-.asm_1cea8
- cp $4
- ret nz
- xor a ; ld a, SPRITE_FACING_DOWN
- ld [wSpriteStateData1 + 9], a
-.done
- ret
-
-OaksLabScript15:
- xor a
- ld [hJoyHeld], a
- call EnableAutoTextBoxDrawing
- ld a, $ff
- ld [wNewSoundID], a
- call PlaySound
- callba Music_RivalAlternateStart
- ld a, $15
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call OaksLabScript_1d02b
- ld a, HS_OAKS_LAB_RIVAL
- ld [wMissableObjectIndex], a
- predef ShowObject
- ld a, [wNPCMovementDirections2Index]
- ld [wSavedNPCMovementDirections2Index], a
- ld b, 0
- ld c, a
- ld hl, wNPCMovementDirections2
- ld a, NPC_MOVEMENT_UP
- call FillMemory
- ld [hl], $ff
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld de, wNPCMovementDirections2
- call MoveSprite
-
- ld a, $10
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript_1cefd:
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_UP
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- ld a, $8
- ld [H_SPRITEINDEX], a
- xor a ; SPRITE_FACING_DOWN
- ld [hSpriteFacingDirection], a
- jp SetSpriteFacingDirectionAndDelay
-
-OaksLabScript16:
- ld a, [wd730]
- bit 0, a
- ret nz
- call EnableAutoTextBoxDrawing
- call PlayDefaultMusic
- ld a, $fc
- ld [wJoyIgnore], a
- call OaksLabScript_1cefd
- ld a, $16
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call DelayFrame
- call OaksLabScript_1cefd
- ld a, $17
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call DelayFrame
- call OaksLabScript_1cefd
- ld a, $18
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call DelayFrame
- ld a, $19
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- call Delay3
- ld a, HS_POKEDEX_1
- ld [wMissableObjectIndex], a
- predef HideObject
- ld a, HS_POKEDEX_2
- ld [wMissableObjectIndex], a
- predef HideObject
- call OaksLabScript_1cefd
- ld a, $1a
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, SPRITE_FACING_RIGHT
- ld [hSpriteFacingDirection], a
- call SetSpriteFacingDirectionAndDelay
- call Delay3
- ld a, $1b
- ld [hSpriteIndexOrTextID], a
- call DisplayTextID
- SetEvent EVENT_GOT_POKEDEX
- SetEvent EVENT_OAK_GOT_PARCEL
- ld a, HS_LYING_OLD_MAN
- ld [wMissableObjectIndex], a
- predef HideObject
- ld a, HS_OLD_MAN
- ld [wMissableObjectIndex], a
- predef ShowObject
- ld a, [wSavedNPCMovementDirections2Index]
- ld b, 0
- ld c, a
- ld hl, wNPCMovementDirections2
- xor a ; NPC_MOVEMENT_DOWN
- call FillMemory
- ld [hl], $ff
- ld a, $ff
- ld [wNewSoundID], a
- call PlaySound
- callba Music_RivalAlternateStart
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld de, wNPCMovementDirections2
- call MoveSprite
-
- ld a, $11
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript17:
- ld a, [wd730]
- bit 0, a
- ret nz
- call PlayDefaultMusic
- ld a, HS_OAKS_LAB_RIVAL
- ld [wMissableObjectIndex], a
- predef HideObject
- SetEvent EVENT_1ST_ROUTE22_RIVAL_BATTLE
- ResetEventReuseHL EVENT_2ND_ROUTE22_RIVAL_BATTLE
- SetEventReuseHL EVENT_ROUTE22_RIVAL_WANTS_BATTLE
- ld a, HS_ROUTE_22_RIVAL_1
- ld [wMissableObjectIndex], a
- predef ShowObject
- ld a, $5
- ld [wPalletTownCurScript], a
- xor a
- ld [wJoyIgnore], a
-
- ld a, $12
- ld [wOaksLabCurScript], a
- ret
-
-OaksLabScript18:
- ret
-
-OaksLabScript_RemoveParcel:
- ld hl, wBagItems
- ld bc, $0000
-.loop
- ld a, [hli]
- cp $ff
- ret z
- cp OAKS_PARCEL
- jr z, .foundParcel
- inc hl
- inc c
- jr .loop
-.foundParcel
- ld hl, wNumBagItems
- ld a, c
- ld [wWhichPokemon], a
- ld a, $1
- ld [wItemQuantity], a
- jp RemoveItemFromInventory
-
-OaksLabScript_1d02b:
- ld a, $7c
- ld [$ffeb], a
- ld a, $8
- ld [$ffee], a
- ld a, [wYCoord]
- cp $3
- jr nz, .asm_1d045
- ld a, $4
- ld [wNPCMovementDirections2Index], a
- ld a, $30
- ld b, $b
- jr .asm_1d068
-.asm_1d045
- cp $1
- jr nz, .asm_1d054
- ld a, $2
- ld [wNPCMovementDirections2Index], a
- ld a, $30
- ld b, $9
- jr .asm_1d068
-.asm_1d054
- ld a, $3
- ld [wNPCMovementDirections2Index], a
- ld b, $a
- ld a, [wXCoord]
- cp $4
- jr nz, .asm_1d066
- ld a, $40
- jr .asm_1d068
-.asm_1d066
- ld a, $20
-.asm_1d068
- ld [$ffec], a
- ld a, b
- ld [$ffed], a
- ld a, $1
- ld [wSpriteIndex], a
- call SetSpritePosition1
- ret
-
-OaksLabScript_1d076:
- ld hl, OaksLabTextPointers2
- ld a, l
- ld [wMapTextPtr], a
- ld a, h
- ld [wMapTextPtr+1], a
- ret
-
-OaksLabTextPointers:
- dw OaksLabText1
- dw OaksLabText2
- dw OaksLabText3
- dw OaksLabText4
- dw OaksLabText5
- dw OaksLabText6
- dw OaksLabText7
- dw OaksLabText8
- dw OaksLabText9
- dw OaksLabText10
- dw OaksLabText11
- dw OaksLabText12
- dw OaksLabText13
- dw OaksLabText14
- dw OaksLabText15
- dw OaksLabText16
- dw OaksLabText17
- dw OaksLabText18
- dw OaksLabText19
- dw OaksLabText20
- dw OaksLabText21
- dw OaksLabText22
- dw OaksLabText23
- dw OaksLabText24
- dw OaksLabText25
- dw OaksLabText26
- dw OaksLabText27
-
-OaksLabTextPointers2:
- dw OaksLabText1
- dw OaksLabText2
- dw OaksLabText3
- dw OaksLabText4
- dw OaksLabText5
- dw OaksLabText6
- dw OaksLabText7
- dw OaksLabText8
- dw OaksLabText9
- dw OaksLabText10
- dw OaksLabText11
-
-OaksLabText1:
- TX_ASM
- CheckEvent EVENT_FOLLOWED_OAK_INTO_LAB_2
- jr nz, .asm_1d0de
- ld hl, OaksLabGaryText1
- call PrintText
- jr .asm_1d0f0
-.asm_1d0de
- bit 2, a
- jr nz, .asm_1d0ea
- ld hl, OaksLabText40
- call PrintText
- jr .asm_1d0f0
-.asm_1d0ea
- ld hl, OaksLabText41
- call PrintText
-.asm_1d0f0
- jp TextScriptEnd
-
-OaksLabGaryText1:
- TX_FAR _OaksLabGaryText1
- db "@"
-
-OaksLabText40:
- TX_FAR _OaksLabText40
- db "@"
-
-OaksLabText41:
- TX_FAR _OaksLabText41
- db "@"
-
-OaksLabText2:
- TX_ASM
- ld a, STARTER2
- ld [wRivalStarterTemp], a
- ld a, $3
- ld [wRivalStarterBallSpriteIndex], a
- ld a, STARTER1
- ld b, $2
- jr OaksLabScript_1d133
-
-OaksLabText3:
- TX_ASM
- ld a, STARTER3
- ld [wRivalStarterTemp], a
- ld a, $4
- ld [wRivalStarterBallSpriteIndex], a
- ld a, STARTER2
- ld b, $3
- jr OaksLabScript_1d133
-
-OaksLabText4:
- TX_ASM
- ld a, STARTER1
- ld [wRivalStarterTemp], a
- ld a, $2
- ld [wRivalStarterBallSpriteIndex], a
- ld a, STARTER3
- ld b, $4
-
-OaksLabScript_1d133:
- ld [wcf91], a
- ld [wd11e], a
- ld a, b
- ld [wSpriteIndex], a
- CheckEvent EVENT_GOT_STARTER
- jp nz, OaksLabScript_1d22d
- CheckEventReuseA EVENT_OAK_ASKED_TO_CHOOSE_MON
- jr nz, OaksLabScript_1d157
- ld hl, OaksLabText39
- call PrintText
- jp TextScriptEnd
-
-OaksLabText39:
- TX_FAR _OaksLabText39
- db "@"
-
-OaksLabScript_1d157:
- ld a, $5
- ld [H_SPRITEINDEX], a
- ld a, $9
- ld [H_SPRITEDATAOFFSET], a
- call GetPointerWithinSpriteStateData1
- ld [hl], SPRITE_FACING_DOWN
- ld a, $1
- ld [H_SPRITEINDEX], a
- ld a, $9
- ld [H_SPRITEDATAOFFSET], a
- call GetPointerWithinSpriteStateData1
- ld [hl], SPRITE_FACING_RIGHT
- ld hl, wd730
- set 6, [hl]
- predef StarterDex
- ld hl, wd730
- res 6, [hl]
- call ReloadMapData
- ld c, 10
- call DelayFrames
- ld a, [wSpriteIndex]
- cp $2
- jr z, OaksLabLookAtCharmander
- cp $3
- jr z, OaksLabLookAtSquirtle
- jr OaksLabLookAtBulbasaur
-
-OaksLabLookAtCharmander:
- ld hl, OaksLabCharmanderText
- jr OaksLabMonChoiceMenu
-OaksLabCharmanderText:
- TX_FAR _OaksLabCharmanderText
- db "@"
-
-OaksLabLookAtSquirtle:
- ld hl, OaksLabSquirtleText
- jr OaksLabMonChoiceMenu
-OaksLabSquirtleText:
- TX_FAR _OaksLabSquirtleText
- db "@"
-
-OaksLabLookAtBulbasaur:
- ld hl, OaksLabBulbasaurText
- jr OaksLabMonChoiceMenu
-OaksLabBulbasaurText:
- TX_FAR _OaksLabBulbasaurText
- db "@"
-
-OaksLabMonChoiceMenu:
- call PrintText
- ld a, $1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- call YesNoChoice ; yes/no menu
- ld a, [wCurrentMenuItem]
- and a
- jr nz, OaksLabMonChoiceEnd
- ld a, [wcf91]
- ld [wPlayerStarter], a
- ld [wd11e], a
- call GetMonName
- ld a, [wSpriteIndex]
- cp $2
- jr nz, .asm_1d1db
- ld a, HS_STARTER_BALL_1
- jr .asm_1d1e5
-.asm_1d1db
- cp $3
- jr nz, .asm_1d1e3
- ld a, HS_STARTER_BALL_2
- jr .asm_1d1e5
-.asm_1d1e3
- ld a, HS_STARTER_BALL_3
-.asm_1d1e5
- ld [wMissableObjectIndex], a
- predef HideObject
- ld a, $1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- ld hl, OaksLabMonEnergeticText
- call PrintText
- ld hl, OaksLabReceivedMonText
- call PrintText
- xor a ; PLAYER_PARTY_DATA
- ld [wMonDataLocation], a
- ld a, 5
- ld [wCurEnemyLVL], a
- ld a, [wcf91]
- ld [wd11e], a
- call AddPartyMon
- ld hl, wd72e
- set 3, [hl]
- ld a, $fc
- ld [wJoyIgnore], a
- ld a, $8
- ld [wOaksLabCurScript], a
-OaksLabMonChoiceEnd:
- jp TextScriptEnd
-
-OaksLabMonEnergeticText:
- TX_FAR _OaksLabMonEnergeticText
- db "@"
-
-OaksLabReceivedMonText:
- TX_FAR _OaksLabReceivedMonText
- TX_SFX_KEY_ITEM
- db "@"
-
-OaksLabScript_1d22d:
- ld a, $5
- ld [H_SPRITEINDEX], a
- ld a, $9
- ld [H_SPRITEDATAOFFSET], a
- call GetPointerWithinSpriteStateData1
- ld [hl], $0
- ld hl, OaksLabLastMonText
- call PrintText
- jp TextScriptEnd
-
-OaksLabLastMonText:
- TX_FAR _OaksLabLastMonText
- db "@"
-
-OaksLabText32:
-OaksLabText5:
- TX_ASM
- CheckEvent EVENT_PALLET_AFTER_GETTING_POKEBALLS
- jr nz, .asm_1d266
- ld hl, wPokedexOwned
- ld b, wPokedexOwnedEnd - wPokedexOwned
- call CountSetBits
- ld a, [wNumSetBits]
- cp 2
- jr c, .asm_1d279
- CheckEvent EVENT_GOT_POKEDEX
- jr z, .asm_1d279
-.asm_1d266
- ld hl, OaksLabText_1d31d
- call PrintText
- ld a, $1
- ld [wDoNotWaitForButtonPressAfterDisplayingText], a
- predef DisplayDexRating
- jp .asm_1d2ed
-.asm_1d279
- ld b, POKE_BALL
- call IsItemInBag
- jr nz, .asm_1d2e7
- CheckEvent EVENT_BEAT_ROUTE22_RIVAL_1ST_BATTLE
- jr nz, .asm_1d2d0
- CheckEvent EVENT_GOT_POKEDEX
- jr nz, .asm_1d2c8
- CheckEventReuseA EVENT_BATTLED_RIVAL_IN_OAKS_LAB
- jr nz, .asm_1d2a9
- ld a, [wd72e]
- bit 3, a
- jr nz, .asm_1d2a1
- ld hl, OaksLabText_1d2f0
- call PrintText
- jr .asm_1d2ed
-.asm_1d2a1
- ld hl, OaksLabText_1d2f5
- call PrintText
- jr .asm_1d2ed
-.asm_1d2a9
- ld b, OAKS_PARCEL
- call IsItemInBag
- jr nz, .asm_1d2b8
- ld hl, OaksLabText_1d2fa
- call PrintText
- jr .asm_1d2ed
-.asm_1d2b8
- ld hl, OaksLabDeliverParcelText
- call PrintText
- call OaksLabScript_RemoveParcel
- ld a, $f
- ld [wOaksLabCurScript], a
- jr .asm_1d2ed
-.asm_1d2c8
- ld hl, OaksLabAroundWorldText
- call PrintText
- jr .asm_1d2ed
-.asm_1d2d0
- CheckAndSetEvent EVENT_GOT_POKEBALLS_FROM_OAK
- jr nz, .asm_1d2e7
- lb bc, POKE_BALL, 5
- call GiveItem
- ld hl, OaksLabGivePokeballsText
- call PrintText
- jr .asm_1d2ed
-.asm_1d2e7
- ld hl, OaksLabPleaseVisitText
- call PrintText
-.asm_1d2ed
- jp TextScriptEnd
-
-OaksLabText_1d2f0:
- TX_FAR _OaksLabText_1d2f0
- db "@"
-
-OaksLabText_1d2f5:
- TX_FAR _OaksLabText_1d2f5
- db "@"
-
-OaksLabText_1d2fa:
- TX_FAR _OaksLabText_1d2fa
- db "@"
-
-OaksLabDeliverParcelText:
- TX_FAR _OaksLabDeliverParcelText1
- TX_SFX_KEY_ITEM
- TX_FAR _OaksLabDeliverParcelText2
- db "@"
-
-OaksLabAroundWorldText:
- TX_FAR _OaksLabAroundWorldText
- db "@"
-
-OaksLabGivePokeballsText:
- TX_FAR _OaksLabGivePokeballsText1
- TX_SFX_KEY_ITEM
- TX_FAR _OaksLabGivePokeballsText2
- db "@"
-
-OaksLabPleaseVisitText:
- TX_FAR _OaksLabPleaseVisitText
- db "@"
-
-OaksLabText_1d31d:
- TX_FAR _OaksLabText_1d31d
- db "@"
-
-OaksLabText7:
-OaksLabText6:
- TX_ASM
- ld hl, OaksLabText_1d32c
- call PrintText
- jp TextScriptEnd
-
-OaksLabText_1d32c:
- TX_FAR _OaksLabText_1d32c
- db "@"
-
-OaksLabText8:
- TX_FAR _OaksLabText8
- db "@"
-
-OaksLabText9:
- TX_ASM
- ld hl, OaksLabText_1d340
- call PrintText
- jp TextScriptEnd
-
-OaksLabText_1d340:
- TX_FAR _OaksLabText_1d340
- db "@"
-
-OaksLabText17:
- TX_ASM
- ld hl, OaksLabRivalWaitingText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalWaitingText:
- TX_FAR _OaksLabRivalWaitingText
- db "@"
-
-OaksLabText18:
- TX_ASM
- ld hl, OaksLabChooseMonText
- call PrintText
- jp TextScriptEnd
-
-OaksLabChooseMonText:
- TX_FAR _OaksLabChooseMonText
- db "@"
-
-OaksLabText19:
- TX_ASM
- ld hl, OaksLabRivalInterjectionText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalInterjectionText:
- TX_FAR _OaksLabRivalInterjectionText
- db "@"
-
-OaksLabText20:
- TX_ASM
- ld hl, OaksLabBePatientText
- call PrintText
- jp TextScriptEnd
-
-OaksLabBePatientText:
- TX_FAR _OaksLabBePatientText
- db "@"
-
-OaksLabText12:
- TX_ASM
- ld hl, OaksLabLeavingText
- call PrintText
- jp TextScriptEnd
-
-OaksLabLeavingText:
- TX_FAR _OaksLabLeavingText
- db "@"
-
-OaksLabText13:
- TX_ASM
- ld hl, OaksLabRivalPickingMonText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalPickingMonText:
- TX_FAR _OaksLabRivalPickingMonText
- db "@"
-
-OaksLabText14:
- TX_ASM
- ld hl, OaksLabRivalReceivedMonText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalReceivedMonText:
- TX_FAR _OaksLabRivalReceivedMonText
- TX_SFX_KEY_ITEM
- db "@"
-
-OaksLabText15:
- TX_ASM
- ld hl, OaksLabRivalChallengeText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalChallengeText:
- TX_FAR _OaksLabRivalChallengeText
- db "@"
-
-OaksLabText_1d3be:
- TX_FAR _OaksLabText_1d3be
- db "@"
-
-OaksLabText_1d3c3:
- TX_FAR _OaksLabText_1d3c3
- db "@"
-
-OaksLabText16:
- TX_ASM
- ld hl, OaksLabRivalToughenUpText
- call PrintText
- jp TextScriptEnd
-
-OaksLabRivalToughenUpText:
- TX_FAR _OaksLabRivalToughenUpText
- db "@"
-
-OaksLabText21:
- TX_FAR _OaksLabText21
- db "@"
-
-OaksLabText22:
- TX_FAR _OaksLabText22
- db "@"
-
-OaksLabText23:
- TX_FAR _OaksLabText23
- db "@"
-
-OaksLabText24:
- TX_FAR _OaksLabText24
- db "@"
-
-OaksLabText25:
- TX_FAR _OaksLabText25
- TX_SFX_KEY_ITEM
- db "@"
-
-OaksLabText26:
- TX_FAR _OaksLabText26
- db "@"
-
-OaksLabText27:
- TX_FAR _OaksLabText27
- db "@"
-
-OaksLabText11:
-OaksLabText10:
- TX_ASM
- ld hl, OaksLabText_1d405
- call PrintText
- jp TextScriptEnd
-
-OaksLabText_1d405:
- TX_FAR _OaksLabText_1d405
- db "@"