diff options
Diffstat (limited to 'scripts/oakslab.asm')
-rwxr-xr-x | scripts/oakslab.asm | 1244 |
1 files changed, 1244 insertions, 0 deletions
diff --git a/scripts/oakslab.asm b/scripts/oakslab.asm new file mode 100755 index 00000000..01b9c62b --- /dev/null +++ b/scripts/oakslab.asm @@ -0,0 +1,1244 @@ +OaksLabScript: ; 1cb0e (7:4b0e) + ld a, [$d74b] + bit 6, a + call nz, OaksLabScript_1d076 + ld a, $1 + ld [$cf0c], a + xor a + ld [$cc3c], a + ld hl, OaksLabScriptPointers + ld a, [W_OAKSLABCURSCRIPT] + jp CallFunctionInTable + +OaksLabScriptPointers: ; 1cb28 (7:4b28) + 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: ; 1cb4e (7:4b4e) + ld a, [$d74b] + bit 7, a + ret z + ld a, [$cf10] + and a + ret nz + ld a, $31 + ld [$cc4d], a + ld a, $15 + call Predef + ld hl, $d72e + res 4, [hl] + + ld a, $1 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript1: ; 1cb6e (7:4b6e) + ld a, $8 + ld [$ff8c], a + ld de, OakEntryMovement + call MoveSprite + + ld a, $2 + ld [W_OAKSLABCURSCRIPT], a + ret + +OakEntryMovement: ; 1cb7e (7:4b7e) + db $40,$40,$40,$FF + +OaksLabScript2: ; 1cb82 (7:4b82) + ld a, [$d730] + bit 0, a + ret nz + ld a, $31 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $2e + ld [$cc4d], a + ld a, $15 + call Predef + + ld a, $3 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript3: ; 1cba2 (7:4ba2) + call Delay3 + ld hl, $ccd3 + ld de, PlayerEntryMovementRLE + call DecodeRLEList + dec a + ld [$cd38], a + call Func_3486 + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $5 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + + ld a, $4 + ld [W_OAKSLABCURSCRIPT], a + ret + +PlayerEntryMovementRLE: ; 1cbcf (7:4bcf) + db $40, $8, $ff + +OaksLabScript4: ; 1cbd2 (7:4bd2) + ld a, [$cd38] + and a + ret nz + ld hl, $d747 + set 0, [hl] + ld hl, $d74b + set 0, [hl] + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + call UpdateSprites + ld hl, W_FLAGS_D733 + res 1, [hl] + call Func_2307 + + ld a, $5 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript5: ; 1cbfd (7:4bfd) + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $11 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $12 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $13 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $14 + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 1, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $6 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript6: ; 1cc36 (7:4c36) + ld a, [W_YCOORD] + cp $6 + ret nz + ld a, $5 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + call UpdateSprites + ld a, $c + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$cd38], a + ld a, $40 + ld [$ccd3], a + call Func_3486 + ld a, $8 + ld [$d528], a + + ld a, $7 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript7: ; 1cc72 (7:4c72) + ld a, [$cd38] + and a + ret nz + call Delay3 + + ld a, $6 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript8: ; 1cc80 (7:4c80) + ld a, [W_PLAYERSTARTER] + cp CHARMANDER + jr z, .Charmander ; 0x1cc85 $6 + cp SQUIRTLE + jr z, .Squirtle ; 0x1cc89 $1d + jr .Bulbasaur ; 0x1cc8b $38 +.Charmander + ld de, .MiddleBallMovement1 + ld a, [W_YCOORD] + cp $4 ; is the player standing below the table? + jr z, .asm_1ccf3 ; 0x1cc95 $5c + ld de, .MiddleBallMovement2 + jr .asm_1ccf3 ; 0x1cc9a $57 + +.MiddleBallMovement1 + db 0,0,$C0,$C0,$C0,$40,$FF +.MiddleBallMovement2 + db 0,$C0,$C0,$C0,$FF + +.Squirtle + ld de, .RightBallMovement1 + ld a, [W_YCOORD] + cp $4 ; is the player standing below the table? + jr z, .asm_1ccf3 ; 0x1ccb0 $41 + ld de, .RightBallMovement2 + jr .asm_1ccf3 ; 0x1ccb5 $3c + +.RightBallMovement1 + db 0,0,$C0,$C0,$C0,$C0,$40,$FF +.RightBallMovement2 + db 0,$C0,$C0,$C0,$C0,$FF + +.Bulbasaur + ld de, .LeftBallMovement1 + ld a, [W_XCOORD] + cp $9 ; is the player standing to the right of the table? + jr nz, .asm_1ccf3 ; 0x1cccd $24 + push hl + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8b], a + call Func_34fc + 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 ; 0x1cced $4 + +.LeftBallMovement1 + db $00,$C0 ; not yet terminated! +.LeftBallMovement2 + db $C0,$FF + +.asm_1ccf3 + ld a, $1 + ld [$ff8c], a + call MoveSprite + + ld a, $9 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript9: ; 1cd00 (7:4d00) + ld a, [$d730] + bit 0, a + ret nz + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $d + ld [$ff8c], a + call DisplayTextID + ld a, [$cd3e] + cp $2 + jr nz, .asm_1cd28 ; 0x1cd22 $4 + ld a, $2b + jr .asm_1cd32 ; 0x1cd26 $a +.asm_1cd28 + cp $3 + jr nz, .asm_1cd30 ; 0x1cd2a $4 + ld a, $2c + jr .asm_1cd32 ; 0x1cd2e $2 +.asm_1cd30 + ld a, $2d +.asm_1cd32 + ld [$cc4d], a + ld a, $11 + call Predef + call Delay3 + ld a, [$cd3d] + ld [W_RIVALSTARTER], a + ld [$cf91], a + ld [$d11e], a + call GetMonName + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $e + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 2, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $a + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript10: ; 1cd6d (7:4d6d) + ld a, [W_YCOORD] + cp $6 + ret nz + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $8 + ld [$d528], a + ld c, BANK(Music_MeetRival) + ld a, MUSIC_MEET_RIVAL + call PlayMusic ; play music + ld a, $f + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$ff9b], a + ld a, $1 + swap a + ld [$ff95], a + ld a, $22 + call Predef + ld a, [$ff95] + dec a + ld [$ff95], a + ld a, $20 + call Predef + ld de, $cc97 + ld a, $1 + ld [$ff8c], a + call MoveSprite + + ld a, $b + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript11: ; 1cdb9 (7:4db9) + ld a, [$d730] + bit 0, a + ret nz + + ; define which team rival uses, and fight it + ld a, SONY1 + $C8 + ld [W_CUROPPONENT], a + ld a, [W_RIVALSTARTER] + cp SQUIRTLE + jr nz, .NotSquirtle ; 0x1cdc9 $4 + ld a, $1 + jr .done ; 0x1cdcd $a +.NotSquirtle + cp BULBASAUR + jr nz, .Charmander ; 0x1cdd1 $4 + ld a, $2 + jr .done ; 0x1cdd5 $2 +.Charmander + ld a, $3 +.done + ld [W_TRAINERNO], a + ld a, $1 + ld [$cf13], a + call Func_32ef + ld hl, OaksLabText_1d3be + ld de, OaksLabText_1d3c3 + call PreBattleSaveRegisters + ld hl, $d72d + set 6, [hl] + set 7, [hl] + xor a + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [$d528], a + ld a, $c + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript12: ; 1ce03 (7:4e03) + ld a, $f0 + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [$d528], a + call UpdateSprites + ld a, $1 + ld [$cf13], a + call Func_32f9 + ld a, $1 + ld [$ff8c], a + xor a + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $7 + call Predef + ld hl, $d74b + set 3, [hl] + + ld a, $d + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript13: ; 1ce32 (7:4e32) + ld c, $14 + call DelayFrames + ld a, $10 + ld [$ff8c], a + call DisplayTextID + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $1 + ld [$ff8c], a + ld de, .RivalExitMovement + call MoveSprite + ld a, [W_XCOORD] + cp $4 + ; move left or right depending on where the player is standing + jr nz, .asm_1ce5b ; 0x1ce55 $4 + ld a, $c0 + jr .asm_1ce5d ; 0x1ce59 $2 +.asm_1ce5b + ld a, $80 +.asm_1ce5d + ld [$cc5b], a + + ld a, $e + ld [W_OAKSLABCURSCRIPT], a + ret + +.RivalExitMovement + db $E0,$00,$00,$00,$00,$00,$FF + +OaksLabScript14: ; 1ce6d (7:4e6d) + ld a, [$d730] + bit 0, a + jr nz, .asm_1ce8c ; 0x1ce72 $18 + ld a, $2a + ld [$cc4d], a + ld a, $11 + call Predef + xor a + ld [wJoypadForbiddenButtonsMask], a + call Func_2307 ; reset to map music + ld a, $12 + ld [W_OAKSLABCURSCRIPT], a + jr .done ; 0x1ce8a $23 +.asm_1ce8c + ld a, [$cf0f] + cp $5 + jr nz, .asm_1cea8 ; 0x1ce91 $15 + ld a, [W_XCOORD] + cp $4 + jr nz, .asm_1cea1 ; 0x1ce98 $7 + ld a, $c + ld [$c109], a + jr .done ; 0x1ce9f $e +.asm_1cea1 + ld a, $8 + ld [$c109], a + jr .done ; 0x1cea6 $7 +.asm_1cea8 + cp $4 + ret nz + xor a + ld [$c109], a +.done + ret + +OaksLabScript15: ; 1ceb0 (7:4eb0) + xor a + ld [H_CURRENTPRESSEDBUTTONS], a + call EnableAutoTextBoxDrawing + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $15 + ld [$ff8c], a + call DisplayTextID + call OaksLabScript_1d02b + ld a, $2a + ld [$cc4d], a + ld a, $15 + call Predef + ld a, [$cd37] + ld [$d157], a + ld b, $0 + ld c, a + ld hl, $cc97 + ld a, $40 + call FillMemory + ld [hl], $ff + ld a, $1 + ld [$ff8c], a + ld de, $cc97 + call MoveSprite + + ld a, $10 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript_1cefd ; 1cefd (7:4efd) + ld a, $1 + ld [$ff8c], a + ld a, $4 + ld [$ff8d], a + call Func_34a6 ; face object + ld a, $8 + ld [$ff8c], a + xor a + ld [$ff8d], a + jp Func_34a6 ; face object + +OaksLabScript16: ; 1cf12 (7:4f12) + ld a, [$d730] + bit 0, a + ret nz + call EnableAutoTextBoxDrawing + call Func_2307 + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + call OaksLabScript_1cefd + ld a, $16 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1cefd + ld a, $17 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + call OaksLabScript_1cefd + ld a, $18 + ld [$ff8c], a + call DisplayTextID + call DelayFrame + ld a, $19 + ld [$ff8c], a + call DisplayTextID + call Delay3 + ld a, $2f + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $30 + ld [$cc4d], a + ld a, $11 + call Predef + call OaksLabScript_1cefd + ld a, $1a + ld [$ff8c], a + call DisplayTextID + ld a, $1 + ld [$ff8c], a + ld a, $c + ld [$ff8d], a + call Func_34a6 ; face object + call Delay3 + ld a, $1b + ld [$ff8c], a + call DisplayTextID + ld hl, $d74b + set 5, [hl] + ld hl, $d74e + set 0, [hl] + ld a, $1 + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $2 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, [$d157] + ld b, $0 + ld c, a + ld hl, $cc97 + xor a + call FillMemory + ld [hl], $ff + ld a, $ff + ld [$c0ee], a + call PlaySound + ld b, BANK(Music_RivalAlternateStart) + ld hl, Music_RivalAlternateStart + call Bankswitch + ld a, $1 + ld [$ff8c], a + ld de, $cc97 + call MoveSprite + + ld a, $11 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript17: ; 1cfd4 (7:4fd4) + ld a, [$d730] + bit 0, a + ret nz + call Func_2307 + ld a, $2a + ld [$cc4d], a + ld a, $11 + call Predef + ld hl, $d7eb + set 0, [hl] + res 1, [hl] + set 7, [hl] + ld a, $22 + ld [$cc4d], a + ld a, $15 + call Predef + ld a, $5 + ld [W_PALLETTOWNCURSCRIPT], a + xor a + ld [wJoypadForbiddenButtonsMask], a + + ld a, $12 + ld [W_OAKSLABCURSCRIPT], a + ret + +OaksLabScript18: ; 1d009 (7:5009) + ret + +OaksLabScript_1d00a: ; 1d00a (7:500a) + ld hl, wBagItems + ld bc, $0000 +.asm_1d010 + ld a, [hli] + cp $ff + ret z + cp OAKS_PARCEL + jr z, .GotParcel ; 0x1d016 $4 + inc hl + inc c + jr .asm_1d010 ; 0x1d01a $f4 +.GotParcel + ld hl, $d31d + ld a, c + ld [wWhichPokemon], a + ld a, $1 + ld [$cf96], a + jp RemoveItemFromInventory + +OaksLabScript_1d02b: ; 1d02b (7:502b) + ld a, $7c + ld [$ffeb], a + ld a, $8 + ld [$ffee], a + ld a, [W_YCOORD] + cp $3 + jr nz, .asm_1d045 ; 0x1d038 $b + ld a, $4 + ld [$cd37], a + ld a, $30 + ld b, $b + jr .asm_1d068 ; 0x1d043 $23 +.asm_1d045 + cp $1 + jr nz, .asm_1d054 ; 0x1d047 $b + ld a, $2 + ld [$cd37], a + ld a, $30 + ld b, $9 + jr .asm_1d068 ; 0x1d052 $14 +.asm_1d054 + ld a, $3 + ld [$cd37], a + ld b, $a + ld a, [W_XCOORD] + cp $4 + jr nz, .asm_1d066 ; 0x1d060 $4 + ld a, $40 + jr .asm_1d068 ; 0x1d064 $2 +.asm_1d066 + ld a, $20 +.asm_1d068 + ld [$ffec], a + ld a, b + ld [$ffed], a + ld a, $1 + ld [$cf13], a + call Func_32f9 + ret + +OaksLabScript_1d076: ; 1d076 (7:5076) + ld hl, OaksLabTextPointers + $36 ; $50b8 ; starts at OaksLabText28 + ld a, l + ld [W_MAPTEXTPTR], a + ld a, h + ld [W_MAPTEXTPTR+1], a + ret + +OaksLabTextPointers: ; 1d082 (7:5082) + 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 + dw OaksLabText28 + dw OaksLabText29 + dw OaksLabText30 + dw OaksLabText31 + dw OaksLabText32 + dw OaksLabText33 + dw OaksLabText34 + dw OaksLabText35 + dw OaksLabText36 + dw OaksLabText37 + dw OaksLabText38 + +OaksLabText28: ; 1d0ce (7:50ce) +OaksLabText1: ; 1d0ce (7:50ce) + db $08 ; asm + ld a, [$d74b] + bit 0, a + jr nz, .asm_1d0de ; 0x1d0d4 + ld hl, OaksLabGaryText1 + call PrintText + jr .asm_1d0f0 ; 0x1d0dc +.asm_1d0de ; 0x1d0de + bit 2, a + jr nz, .asm_1d0ea ; 0x1d0e0 + ld hl, OaksLabText40 + call PrintText + jr .asm_1d0f0 ; 0x1d0e8 +.asm_1d0ea ; 0x1d0ea + ld hl, OaksLabText41 + call PrintText +.asm_1d0f0 ; 0x1d0f0 + jp TextScriptEnd + +OaksLabGaryText1: ; 1d0f3 (7:50f3) + TX_FAR _OaksLabGaryText1 + db "@" + +OaksLabText40: ; 1d0f8 (7:50f8) + TX_FAR _OaksLabText40 + db "@" + +OaksLabText41: ; 1d0fd (7:50fd) + TX_FAR _OaksLabText41 + db "@" + +OaksLabText29: ; 1d102 (7:5102) +OaksLabText2: ; 1d102 (7:5102) + db $8 + ld a, SQUIRTLE + ld [$cd3d], a + ld a, $3 + ld [$cd3e], a + ld a, CHARMANDER + ld b, $2 + jr OaksLabScript_1d133 ; 0x1d111 $20 + +OaksLabText30: ; 1d113 (7:5113) +OaksLabText3: ; 1d113 (7:5113) + db $8 + ld a, BULBASAUR + ld [$cd3d], a + ld a, $4 + ld [$cd3e], a + ld a, SQUIRTLE + ld b, $3 + jr OaksLabScript_1d133 ; 0x1d122 $f + +OaksLabText31: ; 1d124 (7:5124) +OaksLabText4: ; 1d124 (7:5124) + db $8 + ld a, CHARMANDER + ld [$cd3d], a + ld a, $2 + ld [$cd3e], a + ld a, BULBASAUR + ld b, $4 + +OaksLabScript_1d133: ; 1d133 (7:5133) + ld [$cf91], a + ld [$d11e], a + ld a, b + ld [$cf13], a + ld a, [$d74b] + bit 2, a + jp nz, OaksLabScript_1d22d + bit 1, a + jr nz, OaksLabScript_1d157 ; 0x1d147 $e + ld hl, OaksLabText39 + call PrintText + jp TextScriptEnd + +OaksLabText39: ; 1d152 (7:5152) + TX_FAR _OaksLabText39 + db "@" + +OaksLabScript_1d157: ; 1d157 (7:5157) + ld a, $5 + ld [$ff8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $0 + ; manually fixed some disassembler issues around here + ld a, $1 + ld [$FF8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $c + ld hl, $d730 + set 6, [hl] + ld a, $46 + call Predef + ld hl, $d730 + res 6, [hl] + call ReloadMapData + ld c, $a + call DelayFrames + ld a, [$cf13] + cp $2 + jr z, OaksLabLookAtCharmander + cp $3 + jr z, OaksLabLookAtSquirtle + jr OaksLabLookAtBulbasaur + +OaksLabLookAtCharmander ; 0x1d195 + ld hl, OaksLabCharmanderText + jr OaksLabMonChoiceMenu +OaksLabCharmanderText: ; 1d19a (7:519a) + TX_FAR _OaksLabCharmanderText + db "@" + +OaksLabLookAtSquirtle: ; 1d19f (7:519f) + ld hl, OaksLabSquirtleText + jr OaksLabMonChoiceMenu +OaksLabSquirtleText: ; 1d1a4 (7:51a4) + TX_FAR _OaksLabSquirtleText + db "@" + +OaksLabLookAtBulbasaur: ; 1d1a9 (7:51a9) + ld hl, OaksLabBulbasaurText + jr OaksLabMonChoiceMenu +OaksLabBulbasaurText: ; 1d1ae (7:51ae) + TX_FAR _OaksLabBulbasaurText + db "@" + +OaksLabMonChoiceMenu: ; 1d1b3 (7:51b3) + call PrintText + ld a, $1 + ld [$cc3c], a + call YesNoChoice ; yes/no menu + ld a, [$cc26] + and a + jr nz, OaksLabMonChoiceEnd + ld a, [$cf91] + ld [$d717], a + ld [$d11e], a + call GetMonName + ld a, [$cf13] + cp $2 + jr nz, asm_1d1db ; 0x1d1d5 $4 + ld a, $2b + jr asm_1d1e5 ; 0x1d1d9 $a +asm_1d1db: ; 1d1db (7:51db) + cp $3 + jr nz, asm_1d1e3 ; 0x1d1dd $4 + ld a, $2c + jr asm_1d1e5 ; 0x1d1e1 $2 +asm_1d1e3: ; 1d1e3 (7:51e3) + ld a, $2d +asm_1d1e5: ; 1d1e5 (7:51e5) + ld [$cc4d], a + ld a, $11 + call Predef + ld a, $1 + ld [$cc3c], a + ld hl, OaksLabMonEnergeticText + call PrintText + ld hl, OaksLabReceivedMonText + call PrintText + xor a + ld [$cc49], a + ld a, $5 + ld [$d127], a + ld a, [$cf91] + ld [$d11e], a + call AddPokemonToParty + ld hl, $d72e + set 3, [hl] + ld a, $fc + ld [wJoypadForbiddenButtonsMask], a + ld a, $8 + ld [W_OAKSLABCURSCRIPT], a +OaksLabMonChoiceEnd: ; 1d21f (7:521f) + jp TextScriptEnd + +OaksLabMonEnergeticText: ; 1d222 (7:5222) + TX_FAR _OaksLabMonEnergeticText + db "@" + +OaksLabReceivedMonText: ; 1d227 (7:5227) + TX_FAR _OaksLabReceivedMonText + db $11, "@" + +OaksLabScript_1d22d: ; 1d22d (7:522d) + ld a, $5 + ld [$ff8c], a + ld a, $9 + ld [$ff8b], a + call Func_34fc + ld [hl], $0 + ld hl, OaksLabLastMonText + call PrintText + jp TextScriptEnd + +OaksLabLastMonText: ; 1d243 (7:5243) + TX_FAR _OaksLabLastMonText + db "@" + +OaksLabText32: ; 1d248 (7:5248) +OaksLabText5: ; 1d248 (7:5248) + db $08 ; asm + ld a, [$d747] + bit 6, a + jr nz, .asm_50e81 ; 0x1d24e + ld hl, $d2f7 + ld b, $13 + call CountSetBits + ld a, [$d11e] + cp $2 + jr c, .asm_b28b0 ; 0x1d25d + ld a, [$d74b] + bit 5, a + jr z, .asm_b28b0 ; 0x1d264 +.asm_50e81 ; 0x1d266 + ld hl, OaksLabText_1d31d + call PrintText + ld a, $1 + ld [$cc3c], a + ld a, $56 + call Predef + jp .asm_0f042 +.asm_b28b0 ; 0x1d279 + ld b,POKE_BALL + call IsItemInBag + jr nz, .asm_17c30 ; 0x1d27e + ld a, [$d7eb] + bit 5, a + jr nz, .asm_f1adc ; 0x1d285 + ld a, [$d74b] + bit 5, a + jr nz, .asm_333a2 ; 0x1d28c + bit 3, a + jr nz, .asm_76269 ; 0x1d290 + ld a, [$d72e] + bit 3, a + jr nz, .asm_4a5e0 ; 0x1d297 + ld hl, OaksLabText_1d2f0 + call PrintText + jr .asm_0f042 ; 0x1d29f +.asm_4a5e0 ; 0x1d2a1 + ld hl, OaksLabText_1d2f5 + call PrintText + jr .asm_0f042 ; 0x1d2a7 +.asm_76269 ; 0x1d2a9 + ld b, OAKS_PARCEL + call IsItemInBag + jr nz, .asm_a8fcf ; 0x1d2ae + ld hl, OaksLabText_1d2fa + call PrintText + jr .asm_0f042 ; 0x1d2b6 +.asm_a8fcf ; 0x1d2b8 + ld hl, OaksLabDeliverParcelText + call PrintText + call OaksLabScript_1d00a + ld a, $f + ld [W_OAKSLABCURSCRIPT], a + jr .asm_0f042 ; 0x1d2c6 +.asm_333a2 ; 0x1d2c8 + ld hl, OaksLabAroundWorldText + call PrintText + jr .asm_0f042 ; 0x1d2ce +.asm_f1adc ; 0x1d2d0 + ld hl, $d74b + bit 4, [hl] + set 4, [hl] + jr nz, .asm_17c30 ; 0x1d2d7 + ld bc, (POKE_BALL << 8) | 5 + call GiveItem + ld hl, OaksLabGivePokeballsText + call PrintText + jr .asm_0f042 ; 0x1d2e5 +.asm_17c30 ; 0x1d2e7 + ld hl, OaksLabPleaseVisitText + call PrintText +.asm_0f042 ; 0x1d2ed + jp TextScriptEnd + +OaksLabText_1d2f0: ; 1d2f0 (7:52f0) + TX_FAR _OaksLabText_1d2f0 + db "@" + +OaksLabText_1d2f5: ; 1d2f5 (7:52f5) + TX_FAR _OaksLabText_1d2f5 + db "@" + +OaksLabText_1d2fa: ; 1d2fa (7:52fa) + TX_FAR _OaksLabText_1d2fa + db "@" + +OaksLabDeliverParcelText: ; 1d2ff (7:52ff) + TX_FAR _OaksLabDeliverParcelText1 + db $11 + TX_FAR _OaksLabDeliverParcelText2 + db "@" + +OaksLabAroundWorldText: ; 1d309 (7:5309) + TX_FAR _OaksLabAroundWorldText + db "@" + +OaksLabGivePokeballsText: ; 1d30e (7:530e) + TX_FAR _OaksLabGivePokeballsText1 + db $11 + TX_FAR _OaksLabGivePokeballsText2 + db "@" + +OaksLabPleaseVisitText: ; 1d318 (7:5318) + TX_FAR _OaksLabPleaseVisitText + db "@" + +OaksLabText_1d31d: ; 1d31d (7:531d) + TX_FAR _OaksLabText_1d31d + db "@" + +OaksLabText34: ; 1d322 (7:5322) +OaksLabText33: ; 1d322 (7:5322) +OaksLabText7: ; 1d322 (7:5322) +OaksLabText6: ; 1d322 (7:5322) + db $08 ; asm + ld hl, OaksLabText_1d32c + call PrintText + jp TextScriptEnd + +OaksLabText_1d32c: ; 1d32c (7:532c) + TX_FAR _OaksLabText_1d32c + db "@" + +OaksLabText35: ; 1d331 (7:5331) +OaksLabText8: ; 1d331 (7:5331) + TX_FAR _OaksLabText8 + db "@" + +OaksLabText36: ; 1d336 (7:5336) +OaksLabText9: ; 1d336 (7:5336) + db $08 ; asm + ld hl, OaksLabText_1d340 + call PrintText + jp TextScriptEnd + +OaksLabText_1d340: ; 1d340 (7:5340) + TX_FAR _OaksLabText_1d340 + db "@" + +OaksLabText17: ; 1d345 (7:5345) + db $8 + ld hl, OaksLabRivalWaitingText + call PrintText + jp TextScriptEnd + +OaksLabRivalWaitingText: ; 1d34f (7:534f) + TX_FAR _OaksLabRivalWaitingText + db "@" + +OaksLabText18: ; 1d354 (7:5354) + db $8 + ld hl, OaksLabChooseMonText + call PrintText + jp TextScriptEnd + +OaksLabChooseMonText: ; 1d35e (7:535e) + TX_FAR _OaksLabChooseMonText + db "@" + +OaksLabText19: ; 1d363 (7:5363) + db $8 + ld hl, OaksLabRivalInterjectionText + call PrintText + jp TextScriptEnd + +OaksLabRivalInterjectionText: ; 1d36d (7:536d) + TX_FAR _OaksLabRivalInterjectionText + db "@" + +OaksLabText20: ; 1d372 (7:5372) + db $8 + ld hl, OaksLabBePatientText + call PrintText + jp TextScriptEnd + +OaksLabBePatientText: ; 1d37c (7:537c) + TX_FAR _OaksLabBePatientText + db "@" + +OaksLabText12: ; 1d381 (7:5381) + db $8 + ld hl, OaksLabLeavingText + call PrintText + jp TextScriptEnd + +OaksLabLeavingText: ; 1d38b (7:538b) + TX_FAR _OaksLabLeavingText + db "@" + +OaksLabText13: ; 1d390 (7:5390) + db $8 + ld hl, OaksLabRivalPickingMonText + call PrintText + jp TextScriptEnd + +OaksLabRivalPickingMonText: ; 1d39a (7:539a) + TX_FAR _OaksLabRivalPickingMonText + db "@" + +OaksLabText14: ; 1d39f (7:539f) + db $8 + ld hl, OaksLabRivalReceivedMonText + call PrintText + jp TextScriptEnd + +OaksLabRivalReceivedMonText: ; 1d3a9 (7:53a9) + TX_FAR _OaksLabRivalReceivedMonText + db $11, "@" + +OaksLabText15: ; 1d3af (7:53af) + db $8 + ld hl, OaksLabRivalChallengeText + call PrintText + jp TextScriptEnd + +OaksLabRivalChallengeText: ; 1d3b9 (7:53b9) + TX_FAR _OaksLabRivalChallengeText + db "@" + +OaksLabText_1d3be: ; 1d3be (7:53be) + TX_FAR _OaksLabText_1d3be + db "@" + +OaksLabText_1d3c3: ; 1d3c3 (7:53c3) + TX_FAR _OaksLabText_1d3c3 + db "@" + +OaksLabText16: ; 1d3c8 (7:53c8) + db $8 + ld hl, OaksLabRivalToughenUpText + call PrintText + jp TextScriptEnd + +OaksLabRivalToughenUpText: ; 1d3d2 (7:53d2) + TX_FAR _OaksLabRivalToughenUpText + db "@" + +OaksLabText21: ; 1d3d7 (7:53d7) + TX_FAR _OaksLabText21 + db "@" + +OaksLabText22: ; 1d3dc (7:53dc) + TX_FAR _OaksLabText22 + db "@" + +OaksLabText23: ; 1d3e1 (7:53e1) + TX_FAR _OaksLabText23 + db "@" + +OaksLabText24: ; 1d3e6 (7:53e6) + TX_FAR _OaksLabText24 + db "@" + +OaksLabText25: ; 1d3eb (7:53eb) + TX_FAR _OaksLabText25 + db $11, "@" + +OaksLabText26: ; 1d3f1 (7:53f1) + TX_FAR _OaksLabText26 + db "@" + +OaksLabText27: ; 1d3f6 (7:53f6) + TX_FAR _OaksLabText27 + db "@" + +OaksLabText38: ; 1d3fb (7:53fb) +OaksLabText37: ; 1d3fb (7:53fb) +OaksLabText11: ; 1d3fb (7:53fb) +OaksLabText10: ; 1d3fb (7:53fb) + db $08 ; asm + ld hl, OaksLabText_1d405 + call PrintText + jp TextScriptEnd + +OaksLabText_1d405: ; 1d405 (7:5405) + TX_FAR _OaksLabText_1d405 + db "@" |