mirror of
https://github.com/pret/pokered.git
synced 2024-10-23 06:58:24 +00:00
469 lines
8.8 KiB
NASM
469 lines
8.8 KiB
NASM
|
PrintRedsNESText: ; 5db79 (17:5b79)
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $4 ; RedBedroomSNESText
|
||
|
jp PrintPredefTextID
|
||
|
|
||
|
RedBedroomSNESText: ; 5db81 (17:5b81)
|
||
|
TX_FAR _RedBedroomSNESText
|
||
|
db "@"
|
||
|
|
||
|
OpenRedsPC: ; 5db86 (17:5b86)
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $3
|
||
|
jp PrintPredefTextID
|
||
|
|
||
|
RedBedroomPC: ; 5db8e (17:5b8e)
|
||
|
db $fc ; FuncTX_ItemStoragePC
|
||
|
|
||
|
Route15GateLeftBinoculars: ; 5db8f (17:5b8f)
|
||
|
ld a, [$c109]
|
||
|
cp $4 ; i
|
||
|
ret nz
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $a ; text id Route15UpstairsBinocularsText
|
||
|
call PrintPredefTextID
|
||
|
ld a, ARTICUNO
|
||
|
ld [$cf91], a
|
||
|
call PlayCry
|
||
|
jp DisplayMonFrontSpriteInBox
|
||
|
|
||
|
Route15UpstairsBinocularsText: ; 5dba8 (17:5ba8)
|
||
|
TX_FAR _Route15UpstairsBinocularsText
|
||
|
db "@"
|
||
|
|
||
|
AerodactylFossil: ; 5dbad (17:5bad)
|
||
|
ld a, FOSSIL_AERODACTYL
|
||
|
ld [$cf91], a
|
||
|
call DisplayMonFrontSpriteInBox
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $9
|
||
|
call PrintPredefTextID
|
||
|
ret
|
||
|
|
||
|
AerodactylFossilText: ; 5dbbe (17:5bbe)
|
||
|
TX_FAR _AerodactylFossilText
|
||
|
db "@"
|
||
|
|
||
|
KabutopsFossil: ; 5bdc3 (17:5bc3)
|
||
|
ld a, FOSSIL_KABUTOPS
|
||
|
ld [$cf91], a
|
||
|
call DisplayMonFrontSpriteInBox
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $b
|
||
|
call PrintPredefTextID
|
||
|
ret
|
||
|
|
||
|
KabutopsFossilText: ; 5dbd4 (17:5bd4)
|
||
|
TX_FAR _KabutopsFossilText
|
||
|
db "@"
|
||
|
|
||
|
DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9)
|
||
|
; Displays a pokemon's front sprite in a pop-up window.
|
||
|
; [$cf91] = pokemon interal id number
|
||
|
ld a, $1
|
||
|
ld [H_AUTOBGTRANSFERENABLED], a ; $ffba
|
||
|
call Delay3
|
||
|
xor a
|
||
|
ld [$ffb0], a
|
||
|
call SaveScreenTilesToBuffer1
|
||
|
ld a, $11
|
||
|
ld [$d125], a
|
||
|
call DisplayTextBoxID
|
||
|
call UpdateSprites
|
||
|
ld a, [$cf91]
|
||
|
ld [$d0b5], a
|
||
|
call GetMonHeader
|
||
|
ld de, $8b10
|
||
|
call LoadMonFrontSprite
|
||
|
ld a, $80
|
||
|
ld [$ffe1], a
|
||
|
FuncCoord 10, 11 ; $c486
|
||
|
ld hl, Coord
|
||
|
ld a, $2
|
||
|
call Predef ; indirect jump to Func_3f073 (3f073 (f:7073))
|
||
|
call WaitForTextScrollButtonPress
|
||
|
call LoadScreenTilesFromBuffer1
|
||
|
call Delay3
|
||
|
ld a, $90
|
||
|
ld [$ffb0], a
|
||
|
ret
|
||
|
|
||
|
PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a)
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $1
|
||
|
ld [$cc3c], a
|
||
|
ld a, [$cd3d]
|
||
|
call PrintPredefTextID
|
||
|
ret
|
||
|
|
||
|
LinkCableHelp: ; 5dc29 (17:5c29)
|
||
|
db $08 ; asm
|
||
|
call SaveScreenTilesToBuffer1
|
||
|
ld hl, LinkCableHelpText1
|
||
|
call PrintText
|
||
|
xor a
|
||
|
ld [W_ANIMATIONID], a
|
||
|
ld [wCurrentMenuItem], a
|
||
|
ld [wLastMenuItem], a
|
||
|
ld a, $3
|
||
|
ld [wMenuWatchedKeys], a
|
||
|
ld a, $3
|
||
|
ld [wMaxMenuItem], a
|
||
|
ld a, $2
|
||
|
ld [wTopMenuItemY], a
|
||
|
ld a, $1
|
||
|
ld [wTopMenuItemX], a
|
||
|
.asm_5c51
|
||
|
ld hl, $d730
|
||
|
set 6, [hl]
|
||
|
ld hl, wTileMap
|
||
|
ld b, $8
|
||
|
ld c, $d
|
||
|
call TextBoxBorder
|
||
|
ld hl, $c3ca
|
||
|
ld de, HowToLinkText
|
||
|
call PlaceString
|
||
|
ld hl, LinkCableHelpText2
|
||
|
call PrintText
|
||
|
call HandleMenuInput
|
||
|
bit 1, a
|
||
|
jr nz, .asm_5dc93 ; 0x5dc74 $1d
|
||
|
ld a, [wCurrentMenuItem]
|
||
|
cp $3
|
||
|
jr z, .asm_5dc93 ; 0x5dc7b $16
|
||
|
ld hl, $d730
|
||
|
res 6, [hl]
|
||
|
ld hl, LinkCableInfoTexts
|
||
|
add a
|
||
|
ld d, $0
|
||
|
ld e, a
|
||
|
add hl, de
|
||
|
ld a, [hli]
|
||
|
ld h, [hl]
|
||
|
ld l, a
|
||
|
call PrintText
|
||
|
jp .asm_5c51
|
||
|
.asm_5dc93
|
||
|
ld hl, $d730
|
||
|
res 6, [hl]
|
||
|
call LoadScreenTilesFromBuffer1
|
||
|
jp TextScriptEnd
|
||
|
|
||
|
LinkCableHelpText1: ; 5dc9e (17:5c9e)
|
||
|
TX_FAR _LinkCableHelpText1
|
||
|
db "@"
|
||
|
|
||
|
LinkCableHelpText2: ; 5dca3 (17:5ca3)
|
||
|
TX_FAR _LinkCableHelpText2
|
||
|
db "@"
|
||
|
|
||
|
HowToLinkText: ; 5dca8 (17:5ca8)
|
||
|
db "HOW TO LINK"
|
||
|
next "COLOSSEUM"
|
||
|
next "TRADE CENTER"
|
||
|
next "STOP READING@"
|
||
|
|
||
|
LinkCableInfoTexts: ; 5dcd8 (17:5cd8)
|
||
|
dw LinkCableInfoText1
|
||
|
dw LinkCableInfoText2
|
||
|
dw LinkCableInfoText3
|
||
|
|
||
|
LinkCableInfoText1: ; 5dcde (17:5cde)
|
||
|
TX_FAR _LinkCableInfoText1
|
||
|
db "@"
|
||
|
|
||
|
LinkCableInfoText2: ; 5dce3 (17:5ce3)
|
||
|
TX_FAR _LinkCableInfoText2
|
||
|
db "@"
|
||
|
|
||
|
LinkCableInfoText3: ; 5dce8 (17:5ce8)
|
||
|
TX_FAR _LinkCableInfoText3
|
||
|
db "@"
|
||
|
|
||
|
ViridianSchoolBlackboard: ; 5dced (17:5ced)
|
||
|
db $08 ; asm
|
||
|
call SaveScreenTilesToBuffer1
|
||
|
ld hl, ViridianSchoolBlackboardText1
|
||
|
call PrintText
|
||
|
xor a
|
||
|
ld [W_ANIMATIONID], a
|
||
|
ld [wCurrentMenuItem], a
|
||
|
ld [wLastMenuItem], a
|
||
|
ld a, $33
|
||
|
ld [wMenuWatchedKeys], a
|
||
|
ld a, $2
|
||
|
ld [wMaxMenuItem], a
|
||
|
ld a, $2
|
||
|
ld [wTopMenuItemY], a
|
||
|
ld a, $1
|
||
|
ld [wTopMenuItemX], a
|
||
|
.asm_5dd15
|
||
|
ld hl, $d730
|
||
|
set 6, [hl]
|
||
|
ld hl, wTileMap
|
||
|
ld bc, $060a
|
||
|
call TextBoxBorder
|
||
|
ld hl, $c3c9
|
||
|
ld de, StatusAilmentText1
|
||
|
call PlaceString
|
||
|
ld hl, $c3ce
|
||
|
ld de, StatusAilmentText2
|
||
|
call PlaceString
|
||
|
ld hl, ViridianSchoolBlackboardText2
|
||
|
call PrintText
|
||
|
call HandleMenuInput
|
||
|
bit 1, a
|
||
|
jr nz, .exitBlackboard
|
||
|
bit 4, a
|
||
|
jr z, .asm_5dd5c
|
||
|
ld a, $2
|
||
|
ld [wMaxMenuItem], a
|
||
|
ld a, $2
|
||
|
ld [wTopMenuItemY], a
|
||
|
ld a, $6
|
||
|
ld [wTopMenuItemX], a
|
||
|
ld a, $3
|
||
|
ld [W_ANIMATIONID], a
|
||
|
jr .asm_5dd15
|
||
|
.asm_5dd5c
|
||
|
bit 5, a
|
||
|
jr z, .asm_5dd75
|
||
|
ld a, $2
|
||
|
ld [wMaxMenuItem], a
|
||
|
ld a, $2
|
||
|
ld [wTopMenuItemY], a
|
||
|
ld a, $1
|
||
|
ld [wTopMenuItemX], a
|
||
|
xor a
|
||
|
ld [W_ANIMATIONID], a
|
||
|
jr .asm_5dd15
|
||
|
.asm_5dd75
|
||
|
ld a, [wCurrentMenuItem]
|
||
|
ld b, a
|
||
|
ld a, [W_ANIMATIONID]
|
||
|
add b
|
||
|
cp $5
|
||
|
jr z, .exitBlackboard
|
||
|
ld hl, $d730
|
||
|
res 6, [hl]
|
||
|
ld hl, ViridianBlackboardStatusPointers
|
||
|
add a
|
||
|
ld d, $0
|
||
|
ld e, a
|
||
|
add hl, de
|
||
|
ld a, [hli]
|
||
|
ld h, [hl]
|
||
|
ld l, a
|
||
|
call PrintText
|
||
|
jp .asm_5dd15
|
||
|
.exitBlackboard
|
||
|
ld hl, $d730
|
||
|
res 6, [hl]
|
||
|
call LoadScreenTilesFromBuffer1
|
||
|
jp TextScriptEnd
|
||
|
|
||
|
ViridianSchoolBlackboardText1: ; 5dda2 (17:5da2)
|
||
|
TX_FAR _ViridianSchoolBlackboardText1
|
||
|
db "@"
|
||
|
|
||
|
ViridianSchoolBlackboardText2: ; 5dda7 (17:5da7)
|
||
|
TX_FAR _ViridianSchoolBlackboardText2
|
||
|
db "@"
|
||
|
|
||
|
StatusAilmentText1: ; 5ddac (17:5dac)
|
||
|
db " SLP"
|
||
|
next " PSN"
|
||
|
next " PAR@"
|
||
|
|
||
|
StatusAilmentText2: ; 5ddbb (17:5dbb)
|
||
|
db " BRN"
|
||
|
next " FRZ"
|
||
|
next " QUIT@@"
|
||
|
|
||
|
ViridianBlackboardStatusPointers: ; 5ddcc (17:5ddc)
|
||
|
dw ViridianBlackboardSleepText
|
||
|
dw ViridianBlackboardPoisonText
|
||
|
dw ViridianBlackbaordPrlzText
|
||
|
dw ViridianBlackboardBurnText
|
||
|
dw ViridianBlackboardFrozenText
|
||
|
|
||
|
ViridianBlackboardSleepText: ; 5ddd6 (17:5dd6)
|
||
|
TX_FAR _ViridianBlackboardSleepText
|
||
|
db "@"
|
||
|
|
||
|
ViridianBlackboardPoisonText: ; 5dddb (17:5ddb)
|
||
|
TX_FAR _ViridianBlackboardPoisonText
|
||
|
db "@"
|
||
|
|
||
|
ViridianBlackbaordPrlzText: ; 5dde0 (17:5de0)
|
||
|
TX_FAR _ViridianBlackbaordPrlzText
|
||
|
db "@"
|
||
|
|
||
|
ViridianBlackboardBurnText: ; 5dde5 (17:5de5)
|
||
|
TX_FAR _ViridianBlackboardBurnText
|
||
|
db "@"
|
||
|
|
||
|
ViridianBlackboardFrozenText: ; 5ddea (17:5dea)
|
||
|
TX_FAR _ViridianBlackboardFrozenText
|
||
|
db "@"
|
||
|
|
||
|
PrintTrashText: ; 5ddef (17:5def)
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, $26
|
||
|
jp PrintPredefTextID
|
||
|
|
||
|
VermilionGymTrashText: ; 5ddf7 (17:5df7)
|
||
|
TX_FAR _VermilionGymTrashText
|
||
|
db "@"
|
||
|
|
||
|
GymTrashScript: ; 5ddfc (17:5dfc)
|
||
|
call EnableAutoTextBoxDrawing
|
||
|
ld a, [wWhichTrade] ; $cd3d
|
||
|
ld [$cd5b], a
|
||
|
|
||
|
; Don't do the trash can puzzle if it's already been done.
|
||
|
ld a, [$d773]
|
||
|
bit 0, a
|
||
|
jr z, .ok
|
||
|
|
||
|
ld a, $26 ; DisplayTextID $26 = VermilionGymTrashText (nothing in the trash)
|
||
|
jp PrintPredefTextID
|
||
|
|
||
|
.ok
|
||
|
bit 1, a
|
||
|
jr nz, .trySecondLock
|
||
|
|
||
|
ld a, [$d743]
|
||
|
ld b, a
|
||
|
ld a, [$cd5b]
|
||
|
cp b
|
||
|
jr z, .openFirstLock
|
||
|
|
||
|
ld a, $26 ; DisplayTextID $26 = VermilionGymTrashText (nothing in the trash)
|
||
|
jr .done
|
||
|
|
||
|
.openFirstLock
|
||
|
; Next can is trying for the second switch.
|
||
|
ld hl, $d773
|
||
|
set 1, [hl]
|
||
|
|
||
|
ld hl, GymTrashCans ; $5e7d
|
||
|
ld a, [$cd5b]
|
||
|
; * 5
|
||
|
ld b, a
|
||
|
add a
|
||
|
add a
|
||
|
add b
|
||
|
|
||
|
ld d, 0
|
||
|
ld e, a
|
||
|
add hl, de
|
||
|
ld a, [hli]
|
||
|
|
||
|
ld [$ffdb], a
|
||
|
push hl
|
||
|
call GenRandom
|
||
|
swap a
|
||
|
ld b, a
|
||
|
ld a, [$ffdb]
|
||
|
and b
|
||
|
dec a
|
||
|
pop hl
|
||
|
|
||
|
ld d, 0
|
||
|
ld e, a
|
||
|
add hl, de
|
||
|
ld a, [hl]
|
||
|
and $f
|
||
|
ld [$d744], a
|
||
|
|
||
|
ld a, $3b ; DisplayTextID $3b = VermilionGymTrashSuccesText1 (first lock opened!)
|
||
|
jr .done
|
||
|
|
||
|
.trySecondLock
|
||
|
ld a, [$d744]
|
||
|
ld b, a
|
||
|
ld a, [$cd5b]
|
||
|
cp b
|
||
|
jr z, .openSecondLock
|
||
|
|
||
|
; Reset the cans.
|
||
|
ld hl, $d773
|
||
|
res 1, [hl]
|
||
|
call GenRandom
|
||
|
|
||
|
and $e
|
||
|
ld [$d743], a
|
||
|
|
||
|
ld a, $3e ; DisplayTextID $3e = VermilionGymTrashFailText (locks reset!)
|
||
|
jr .done
|
||
|
|
||
|
.openSecondLock
|
||
|
; Completed the trash can puzzle.
|
||
|
ld hl, $d773
|
||
|
set 0, [hl]
|
||
|
ld hl, $d126
|
||
|
set 6, [hl]
|
||
|
|
||
|
ld a, $3d ; DisplayTextID $3d = VermilionGymTrashSuccesText3 (2nd lock opened!)
|
||
|
|
||
|
.done
|
||
|
jp PrintPredefTextID
|
||
|
|
||
|
GymTrashCans: ; 5de7d (17:5e7d)
|
||
|
db 2, 1, 3, 0, 0 ; 0
|
||
|
db 3, 0, 2, 4, 0 ; 1
|
||
|
db 2, 1, 5, 0, 0 ; 2
|
||
|
db 3, 0, 4, 6, 0 ; 3
|
||
|
db 4, 1, 3, 5, 7 ; 4
|
||
|
db 3, 2, 4, 8, 0 ; 5
|
||
|
db 3, 3, 7, 9, 0 ; 6
|
||
|
db 4, 4, 6, 8, 10 ; 7
|
||
|
db 3, 5, 7, 11, 0 ; 8
|
||
|
db 3, 6, 10, 12, 0 ; 9
|
||
|
db 4, 7, 9, 11, 13 ; 10
|
||
|
db 3, 8, 10, 14, 0 ; 11
|
||
|
db 2, 9, 13, 0, 0 ; 12
|
||
|
db 3, 10, 12, 14, 0 ; 13
|
||
|
db 2, 11, 13, 0, 0 ; 14
|
||
|
; 5dec8
|
||
|
|
||
|
VermilionGymTrashSuccesText1: ; 5dec8 (17:5ec8)
|
||
|
TX_FAR _VermilionGymTrashSuccesText1
|
||
|
db $08 ; asm
|
||
|
call WaitForSoundToFinish
|
||
|
ld a, (SFX_02_49 - SFX_Headers_02) / 3
|
||
|
call PlaySound
|
||
|
call WaitForSoundToFinish
|
||
|
jp TextScriptEnd
|
||
|
|
||
|
VermilionGymTrashSuccesText2: ; 5dedb (17:5edb)
|
||
|
TX_FAR _VermilionGymTrashSuccesText2
|
||
|
db "@"
|
||
|
|
||
|
UnnamedText_5dee0: ; 5dee0 (17:5ee0)
|
||
|
db $08 ; asm
|
||
|
call WaitForSoundToFinish
|
||
|
ld a, (SFX_02_49 - SFX_Headers_02) / 3
|
||
|
call PlaySound
|
||
|
call WaitForSoundToFinish
|
||
|
jp TextScriptEnd
|
||
|
|
||
|
VermilionGymTrashSuccesText3: ; 5deef (17:5eef)
|
||
|
TX_FAR _VermilionGymTrashSuccesText3
|
||
|
db $08 ; asm
|
||
|
call WaitForSoundToFinish
|
||
|
ld a, (SFX_02_57 - SFX_Headers_02) / 3
|
||
|
call PlaySound
|
||
|
call WaitForSoundToFinish
|
||
|
jp TextScriptEnd
|
||
|
|
||
|
VermilionGymTrashFailText: ; 5df02 (17:5f02)
|
||
|
TX_FAR _VermilionGymTrashFailText
|
||
|
db $08 ; asm
|
||
|
call WaitForSoundToFinish
|
||
|
ld a, (SFX_02_51 - SFX_Headers_02) / 3
|
||
|
call PlaySound
|
||
|
call WaitForSoundToFinish
|
||
|
jp TextScriptEnd
|