From 0c5d654c6a45111badc4a95a93e1b9f70fff8750 Mon Sep 17 00:00:00 2001 From: Lukas Krickl Date: Wed, 1 Oct 2025 17:24:49 +0200 Subject: [PATCH] rectangle: wip optimizing rectangle point test --- src/rectangle.s | 30 +++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/rectangle.s b/src/rectangle.s index be8db69..528c1cb 100644 --- a/src/rectangle.s +++ b/src/rectangle.s @@ -159,29 +159,37 @@ rect_br: ; 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 -- 2.30.2