1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234 |
- 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 "@"
|