ref: 053afc46349952688c0ce2116cc76f8d4733895e
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:: TX_FAR _CardKeySuccessText1 TX_SFX_ITEM_1 TX_FAR _CardKeySuccessText2 db "@" CardKeyFailText:: TX_FAR _CardKeyFailText db "@" ; d = Y ; e = X GetCoordsInFrontOfPlayer: ld a, [wYCoord] ld d, a ld a, [wXCoord] ld e, a ld a, [wSpriteStateData1 + 9] ; player's sprite facing direction 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