summaryrefslogtreecommitdiff
path: root/engine/overworld/map_objects_2.asm
diff options
context:
space:
mode:
authorentrpntr <entrpntr@gmail.com>2020-04-29 18:39:24 -0400
committerentrpntr <entrpntr@gmail.com>2020-04-29 18:48:23 -0400
commita308a1adadc1f782577c23ca62c0b3abd715b0ce (patch)
treee0eb39bcc341ccc3e33c98cc3aec61c50b752061 /engine/overworld/map_objects_2.asm
parent70d3a3fdbc508eeb4557ddc43d78ba12ed41963e (diff)
Add bank 9 files before trainer card.
Diffstat (limited to 'engine/overworld/map_objects_2.asm')
-rw-r--r--engine/overworld/map_objects_2.asm70
1 files changed, 70 insertions, 0 deletions
diff --git a/engine/overworld/map_objects_2.asm b/engine/overworld/map_objects_2.asm
new file mode 100644
index 00000000..d89d95fc
--- /dev/null
+++ b/engine/overworld/map_objects_2.asm
@@ -0,0 +1,70 @@
+LoadObjectMasks:
+ ld hl, wObjectMasks
+ xor a
+ ld bc, NUM_OBJECTS
+ call ByteFill
+ nop
+ 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
+
+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
+
+GetObjectTimeMask:
+ call CheckObjectTime
+ ld a, -1
+ ret c
+ xor a
+ ret