summaryrefslogtreecommitdiff
path: root/engine/overworld/card_key.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/overworld/card_key.asm')
-rwxr-xr-xengine/overworld/card_key.asm108
1 files changed, 108 insertions, 0 deletions
diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm
new file mode 100755
index 00000000..658f4712
--- /dev/null
+++ b/engine/overworld/card_key.asm
@@ -0,0 +1,108 @@
+PrintCardKeyText: ; 52673 (14:6673)
+ ld hl, SilphCoMapList
+ ld a, [W_CURMAP]
+ ld b, a
+.asm_5267a
+ ld a, [hli]
+ cp $ff
+ ret z
+ cp b
+ jr nz, .asm_5267a
+ ld a, $35
+ call Predef ; indirect jump to Func_c586 (c586 (3:4586))
+ ld a, [$cfc6]
+ cp $18
+ jr z, .asm_5269c
+ cp $24
+ jr z, .asm_5269c
+ ld b, a
+ ld a, [W_CURMAP]
+ cp SILPH_CO_11F
+ ret nz
+ ld a, b
+ cp $5e
+ ret nz
+.asm_5269c
+ ld b, CARD_KEY
+ call IsItemInBag
+ jr z, .asm_526dc
+ call Func_526fd
+ push de
+ ld a, $1
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ call PrintPredefTextID
+ pop de
+ srl d
+ ld a, d
+ ld b, a
+ ld [$d73f], a
+ srl e
+ ld a, e
+ ld c, a
+ ld [$d740], a
+ ld a, [W_CURMAP] ; $d35e
+ cp SILPH_CO_11F
+ jr nz, .asm_526c8
+ ld a, $3
+ jr .asm_526ca
+.asm_526c8
+ ld a, $e
+.asm_526ca
+ ld [$d09f], a
+ ld a, $17
+ call Predef ; indirect jump to Func_ee9e
+ ld hl, $d126
+ set 5, [hl]
+ ld a, (SFX_1f_57 - SFX_Headers_1f) / 3
+ jp PlaySound
+.asm_526dc
+ ld a, $2
+ ld [H_DOWNARROWBLINKCNT2], a ; $ff8c
+ jp PrintPredefTextID
+
+SilphCoMapList: ; 526e3 (14:66e3)
+ db SILPH_CO_2F
+ db SILPH_CO_3F
+ db SILPH_CO_4F
+ db SILPH_CO_5F
+ db SILPH_CO_6F
+ db SILPH_CO_7F
+ db SILPH_CO_8F
+ db SILPH_CO_9F
+ db SILPH_CO_10F
+ db SILPH_CO_11F
+ db $FF
+
+CardKeySuccessText: ; 526ee (14:66ee)
+ TX_FAR _CardKeySuccessText1
+ db $0b
+ TX_FAR _CardKeySuccessText2
+ db "@"
+
+CardKeyFailText: ; 526f8 (14:66f8)
+ TX_FAR _CardKeyFailText
+ db "@"
+
+Func_526fd: ; 526fd (14:66fd)
+ ld a, [W_YCOORD] ; $d361
+ ld d, a
+ ld a, [W_XCOORD] ; $d362
+ ld e, a
+ ld a, [$c109]
+ and a
+ jr nz, .asm_5270d
+ inc d
+ ret
+.asm_5270d
+ cp $4
+ jr nz, .asm_52713
+ dec d
+ ret
+.asm_52713
+ cp $8
+ jr nz, .asm_52719
+ dec e
+ ret
+.asm_52719
+ inc e
+ ret