pokecrystal/engine/overworld/map_objects_2.asm

71 lines
813 B
NASM
Raw Normal View History

2018-06-24 14:09:41 +00:00
LoadObjectMasks:
ld hl, wObjectMasks
xor a
ld bc, NUM_OBJECTS
call ByteFill
nop
2018-01-23 22:39:09 +00:00
ld bc, wMapObjects
ld de, wObjectMasks
xor a
.loop
push af
push bc
push de
call GetObjectTimeMask
jr c, .next
call CheckObjectFlag
.next
pop de
ld [de], a
inc de
pop bc
ld hl, MAPOBJECT_LENGTH
add hl, bc
ld b, h
ld c, l
pop af
inc a
cp NUM_OBJECTS
jr nz, .loop
ret
2018-06-24 14:09:41 +00:00
CheckObjectFlag:
ld hl, MAPOBJECT_SPRITE
add hl, bc
ld a, [hl]
and a
jr z, .masked
ld hl, MAPOBJECT_EVENT_FLAG
add hl, bc
ld a, [hli]
ld e, a
ld a, [hl]
ld d, a
cp -1
jr nz, .check
ld a, e
cp -1
jr z, .unmasked
jr .masked
.check
ld b, CHECK_FLAG
call EventFlagAction
ld a, c
and a
jr nz, .masked
.unmasked
xor a
ret
.masked
ld a, -1
scf
ret
2018-06-24 14:09:41 +00:00
GetObjectTimeMask:
call CheckObjectTime
ld a, -1
ret c
xor a
ret