123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- 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
|