; a == 1: inside
; a == 0: not inside
rect_point_test:
- ; top left
+ ; bottom left
push hl
- call rect_tl
+ inc hl ; skip mask
+
+ ; load bottom left point
+ ld a, [hl+]
+ ld d, a ; d = y
+ ld a, [hl]
+ ld e, a ; e = x
pop hl
- ld a, b ; compare y points
+ ld a, b ; compare y
cp a, d
- jr c, @no_collision REL
- ld a, c ; compare x position
+ jr nc, @no_collision REL
+ ld a, c ; compare x
cp a, e
jr c, @no_collision REL
-
- ; bottom left
+
+ ; top left
push hl
- call rect_bl
+ call rect_tl
pop hl
- ld a, b ; compare y
+ ld a, b ; compare y points
cp a, d
- jr nc, @no_collision REL
- ld a, c ; compare x
+ jr c, @no_collision REL
+ ld a, c ; compare x position
cp a, e
jr c, @no_collision REL
+
+
; top right
push hl