ref: 25a3e67b940fc91c11ed9b408fa20762995e6948
dir: /engine/events/card_key.asm/
PrintCardKeyText: ld hl, SilphCoMapList ld a, [wCurMap] ld b, a .silphCoMapListLoop ld a, [hli] cp $ff ret z cp b jr nz, .silphCoMapListLoop predef GetTileAndCoordsInFrontOfPlayer ld a, [wTileInFrontOfPlayer] cp $18 jr z, .cardKeyDoorInFrontOfPlayer cp $24 jr z, .cardKeyDoorInFrontOfPlayer ld b, a ld a, [wCurMap] cp SILPH_CO_11F ret nz ld a, b cp $5e ret nz .cardKeyDoorInFrontOfPlayer ld b, CARD_KEY call IsItemInBag jr z, .noCardKey call GetCoordsInFrontOfPlayer push de tx_pre_id CardKeySuccessText ld [hSpriteIndexOrTextID], a call PrintPredefTextID pop de srl d ld a, d ld b, a ld [wCardKeyDoorY], a srl e ld a, e ld c, a ld [wCardKeyDoorX], a ld a, [wCurMap] cp SILPH_CO_11F jr nz, .notSilphCo11F ld a, $3 jr .replaceCardKeyDoorTileBlock .notSilphCo11F ld a, $e .replaceCardKeyDoorTileBlock ld [wNewTileBlockID], a predef ReplaceTileBlock ld hl, wCurrentMapScriptFlags set 5, [hl] ld a, SFX_GO_INSIDE jp PlaySound .noCardKey tx_pre_id CardKeyFailText ld [hSpriteIndexOrTextID], a jp PrintPredefTextID SilphCoMapList: 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:: text_far _CardKeySuccessText1 sound_get_item_1 text_far _CardKeySuccessText2 text_end CardKeyFailText:: text_far _CardKeyFailText text_end ; d = Y ; e = X GetCoordsInFrontOfPlayer: ld a, [wYCoord] ld d, a ld a, [wXCoord] ld e, a ld a, [wSpritePlayerStateData1FacingDirection] and a jr nz, .notFacingDown ; facing down inc d ret .notFacingDown cp SPRITE_FACING_UP jr nz, .notFacingUp ; facing up dec d ret .notFacingUp cp SPRITE_FACING_LEFT jr nz, .notFacingLeft ; facing left dec e ret .notFacingLeft ; facing right inc e ret