summaryrefslogtreecommitdiff
path: root/engine/hidden_object_functions17.asm
diff options
context:
space:
mode:
authorU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-22 18:13:20 -0400
committerU-Fish-PC\Daniel <corrnondacqb@yahoo.com>2014-05-22 18:13:20 -0400
commit15427f532085846ab6b51719be687951a094cb6c (patch)
treeedea9b189e91641a12dd521756894df84aeeace7 /engine/hidden_object_functions17.asm
parentea3ba4cde3706b7c77efb705555ec0c86321cbe2 (diff)
Pull a lot of engine out of main.asm
Diffstat (limited to 'engine/hidden_object_functions17.asm')
-rwxr-xr-xengine/hidden_object_functions17.asm468
1 files changed, 468 insertions, 0 deletions
diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm
new file mode 100755
index 00000000..d0c6699e
--- /dev/null
+++ b/engine/hidden_object_functions17.asm
@@ -0,0 +1,468 @@
+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