diff options
| author | entrpntr <entrpntr@gmail.com> | 2020-04-29 18:39:24 -0400 |
|---|---|---|
| committer | entrpntr <entrpntr@gmail.com> | 2020-04-29 18:48:23 -0400 |
| commit | a308a1adadc1f782577c23ca62c0b3abd715b0ce (patch) | |
| tree | e0eb39bcc341ccc3e33c98cc3aec61c50b752061 /engine/overworld/map_objects_2.asm | |
| parent | 70d3a3fdbc508eeb4557ddc43d78ba12ed41963e (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.asm | 70 |
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 |
