mirror of
https://github.com/pret/pokered.git
synced 2024-10-24 15:27:10 +00:00
1238 lines
21 KiB
NASM
Executable file
1238 lines
21 KiB
NASM
Executable file
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 STARTER1
|
|
jr z, .Charmander ; 0x1cc85 $6
|
|
cp STARTER2
|
|
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 STARTER2
|
|
jr nz, .NotSquirtle ; 0x1cdc9 $4
|
|
ld a, $1
|
|
jr .done ; 0x1cdcd $a
|
|
.NotSquirtle
|
|
cp STARTER3
|
|
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
|
|
callba Music_RivalAlternateStart
|
|
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
|
|
callba Music_RivalAlternateStart
|
|
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
|
|
callba Music_RivalAlternateStart
|
|
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, STARTER2
|
|
ld [$cd3d], a
|
|
ld a, $3
|
|
ld [$cd3e], a
|
|
ld a, STARTER1
|
|
ld b, $2
|
|
jr OaksLabScript_1d133 ; 0x1d111 $20
|
|
|
|
OaksLabText30: ; 1d113 (7:5113)
|
|
OaksLabText3: ; 1d113 (7:5113)
|
|
db $8
|
|
ld a, STARTER3
|
|
ld [$cd3d], a
|
|
ld a, $4
|
|
ld [$cd3e], a
|
|
ld a, STARTER2
|
|
ld b, $3
|
|
jr OaksLabScript_1d133 ; 0x1d122 $f
|
|
|
|
OaksLabText31: ; 1d124 (7:5124)
|
|
OaksLabText4: ; 1d124 (7:5124)
|
|
db $8
|
|
ld a, STARTER1
|
|
ld [$cd3d], a
|
|
ld a, $2
|
|
ld [$cd3e], a
|
|
ld a, STARTER3
|
|
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 ; DisplayStarterMonDex
|
|
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 "@"
|