Prev: 6d9c Up: Map Next: 6e1b
6de9: Alien Collision.
Used by the routines at 63a3, 6461, 64e8, 66d0, 6a35, 6ab8, 6bf8, 6cbe and 6d9c.
Input
IX Alien object.
Output
E as either $00 or $01.
6de9 ld hl,$5d00 HL=Jetman object
6dec ld e,$00 Default value for E
6dee ld a,(hl) Jetman direction
6def and $3f
6df1 dec a Jump if A - 1 == 0
6df2 jr z,$6df6
6df4 dec a
6df5 ret nz Return if A is not zero
6df6 inc hl HL=Jetman X position
6df7 ld a,(hl)
6df8 sub (ix+$01) Jetman X position - Alien X position
6dfb jp p,$6e00 Make sure we have a positive byte
6dfe neg
6e00 cp $0c Return if A >= 12
6e02 ret nc
6e03 inc hl HL=Jetman Y position
6e04 ld a,(hl)
6e05 sub (ix+$02) Jetman Y position - Alien Y position
6e08 jp p,$6e14 Set D to 15 if it's still a positive number
6e0b neg else: negate it
6e0d ld d,(ix+$07) D=alien sprite height
6e10 add a,$0e
6e12 jr $6e16 Compare and return
6e14 ld d,$15 default D to 21
6e16 cp d Return $00 if D >= A
6e17 ret nc
6e18 ld e,$01
6e1a ret else return $01
Prev: 6d9c Up: Map Next: 6e1b