pokecrystal/engine/overworld/tile_events.asm

102 lines
1.5 KiB
NASM
Raw Normal View History

2018-06-24 14:09:41 +00:00
CheckWarpCollision::
2015-12-15 23:59:49 +00:00
; Is this tile a warp?
2018-01-23 22:39:09 +00:00
ld a, [wPlayerStandingTile]
2017-12-12 21:15:58 +00:00
cp COLL_PIT
2015-12-15 23:59:49 +00:00
jr z, .warp
2017-12-12 21:15:58 +00:00
cp COLL_PIT_68
2015-12-15 23:59:49 +00:00
jr z, .warp
and $f0
2017-12-12 21:15:58 +00:00
cp HI_NYBBLE_WARPS
2015-12-15 23:59:49 +00:00
jr z, .warp
and a
ret
.warp
scf
ret
2018-06-24 14:09:41 +00:00
CheckDirectionalWarp::
2015-12-15 23:59:49 +00:00
; If this is a directional warp, clear carry (press the designated button to warp).
; Else, set carry (immediate warp).
2018-01-23 22:39:09 +00:00
ld a, [wPlayerStandingTile]
2017-12-12 21:15:58 +00:00
cp COLL_WARP_CARPET_DOWN
2016-03-02 03:31:21 +00:00
jr z, .directional
2017-12-12 21:15:58 +00:00
cp COLL_WARP_CARPET_LEFT
2016-03-02 03:31:21 +00:00
jr z, .directional
2017-12-12 21:15:58 +00:00
cp COLL_WARP_CARPET_UP
2016-03-02 03:31:21 +00:00
jr z, .directional
2017-12-12 21:15:58 +00:00
cp COLL_WARP_CARPET_RIGHT
2016-03-02 03:31:21 +00:00
jr z, .directional
2015-12-15 23:59:49 +00:00
scf
ret
2016-03-02 03:31:21 +00:00
.directional
2015-12-15 23:59:49 +00:00
xor a
ret
2018-06-24 14:09:41 +00:00
CheckWarpFacingDown:
2015-12-15 23:59:49 +00:00
ld de, 1
ld hl, .blocks
2018-01-23 22:39:09 +00:00
ld a, [wPlayerStandingTile]
2015-12-15 23:59:49 +00:00
call IsInArray
ret
2018-06-24 14:09:41 +00:00
.blocks
2017-12-12 21:15:58 +00:00
db COLL_DOOR
db COLL_DOOR_79
db COLL_STAIRCASE
db COLL_STAIRCASE_73
db COLL_CAVE
db COLL_CAVE_74
db COLL_WARP_PANEL
db COLL_DOOR_75
db COLL_DOOR_7D
2015-12-15 23:59:49 +00:00
db -1
2018-06-24 14:09:41 +00:00
CheckGrassCollision::
2018-01-23 22:39:09 +00:00
ld a, [wPlayerStandingTile]
2015-12-15 23:59:49 +00:00
ld hl, .blocks
ld de, 1
call IsInArray
ret
2018-06-24 14:09:41 +00:00
.blocks
2017-12-12 21:15:58 +00:00
db COLL_CUT_08
db COLL_TALL_GRASS
db COLL_LONG_GRASS
db COLL_CUT_28
db COLL_WATER
db COLL_GRASS_48
db COLL_GRASS_49
db COLL_GRASS_4A
db COLL_GRASS_4B
db COLL_GRASS_4C
2015-12-15 23:59:49 +00:00
db -1
2018-06-24 14:09:41 +00:00
CheckCutCollision:
2015-12-15 23:59:49 +00:00
ld a, c
ld hl, .blocks
ld de, 1
call IsInArray
ret
2018-06-24 14:09:41 +00:00
.blocks
2017-12-12 21:15:58 +00:00
db COLL_CUT_TREE
db COLL_CUT_TREE_1A
db COLL_TALL_GRASS_10
db COLL_TALL_GRASS
db COLL_LONG_GRASS
db COLL_LONG_GRASS_1C
2015-12-15 23:59:49 +00:00
db -1
2018-06-24 14:09:41 +00:00
GetWarpSFX::
2018-01-23 22:39:09 +00:00
ld a, [wPlayerStandingTile]
ld de, SFX_ENTER_DOOR
2017-12-12 21:15:58 +00:00
cp COLL_DOOR
2015-12-15 23:59:49 +00:00
ret z
ld de, SFX_WARP_TO
2017-12-12 21:15:58 +00:00
cp COLL_WARP_PANEL
2015-12-15 23:59:49 +00:00
ret z
ld de, SFX_EXIT_BUILDING
2015-12-15 23:59:49 +00:00
ret