From d4bc136bd7013be31dc06bda95be4de0f9a7b6fa Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Thu, 13 Jan 2022 17:00:40 +0200 Subject: [PATCH] Match sub_080177A0 --- asm/non_matching/arm_proxy/sub_080177A0.inc | 95 --------------------- src/collision.c | 16 ++-- 2 files changed, 6 insertions(+), 105 deletions(-) delete mode 100644 asm/non_matching/arm_proxy/sub_080177A0.inc diff --git a/asm/non_matching/arm_proxy/sub_080177A0.inc b/asm/non_matching/arm_proxy/sub_080177A0.inc deleted file mode 100644 index da64049f..00000000 --- a/asm/non_matching/arm_proxy/sub_080177A0.inc +++ /dev/null @@ -1,95 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - mov ip, r0 - adds r5, r1, #0 - adds r0, #0x38 - adds r1, #0x38 - ldrb r2, [r0] - ldrb r0, [r1] - ands r0, r2 - cmp r0, #0 - beq _08017848 - mov r0, ip - ldr r3, [r0, #0x48] - ldr r4, [r5, #0x48] - ldrb r1, [r3, #6] - ldrb r0, [r4, #6] - adds r2, r1, r0 - mov r1, ip - movs r6, #0x2e - ldrsh r0, [r1, r6] - movs r6, #0x2e - ldrsh r1, [r5, r6] - subs r0, r0, r1 - movs r1, #0 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - movs r1, #0 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - ldrb r1, [r3, #7] - ldrb r0, [r4, #7] - adds r2, r1, r0 - mov r1, ip - movs r6, #0x32 - ldrsh r0, [r1, r6] - movs r6, #0x32 - ldrsh r1, [r5, r6] - subs r0, r0, r1 - movs r1, #1 - ldrsb r1, [r3, r1] - adds r0, r0, r1 - movs r1, #1 - ldrsb r1, [r4, r1] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - mov r0, ip - adds r0, #0x3c - ldrb r1, [r0] - movs r6, #0x10 - adds r0, r6, #0 - ands r0, r1 - movs r2, #5 - cmp r0, #0 - beq _0801781A - ldrb r2, [r3, #8] -_0801781A: - adds r0, r5, #0 - adds r0, #0x3c - ldrb r1, [r0] - adds r0, r6, #0 - ands r0, r1 - cmp r0, #0 - beq _0801782E - ldrb r0, [r4, #8] - adds r2, r2, r0 - b _08017830 -_0801782E: - adds r2, #5 -_08017830: - mov r1, ip - movs r3, #0x36 - ldrsh r0, [r1, r3] - movs r6, #0x36 - ldrsh r1, [r5, r6] - subs r0, r0, r1 - adds r0, r0, r2 - lsls r1, r2, #1 - cmp r0, r1 - bhi _08017848 - movs r0, #1 - b _0801784A -_08017848: - movs r0, #0 -_0801784A: - pop {r4, r5, r6} - pop {r1} - bx r1 - .syntax divided diff --git a/src/collision.c b/src/collision.c index 32e963e6..f33bcb3f 100644 --- a/src/collision.c +++ b/src/collision.c @@ -177,22 +177,19 @@ NONMATCH("asm/non_matching/arm_proxy/sub_08017744.inc", void sub_08017744(Entity } END_NONMATCH -// regalloc -NONMATCH("asm/non_matching/arm_proxy/sub_080177A0.inc", bool32 sub_080177A0(Entity* this, Entity* that)) { +bool32 sub_080177A0(Entity* this, Entity* that) { u32 this_d; u32 depth; if ((this->collisionLayer & that->collisionLayer) != 0) { Hitbox* bb_this = this->hitbox; Hitbox* bb_that = that->hitbox; - u32 this_w = bb_this->width; - u32 that_w = bb_that->width; - u32 sumw = this_w + that_w; + u32 this_len = bb_this->width; + u32 sumw = this_len + bb_that->width; if ((((this->x.HALF.HI - that->x.HALF.HI) + bb_this->offset_x) - bb_that->offset_x) + sumw <= (sumw)*2) { - u32 this_h = bb_this->height; - u32 that_h = bb_that->height; - u32 sumh = this_h + that_h; - if ((((this->y.HALF.HI - that->y.HALF.HI) + bb_this->offset_y) - bb_that->offset_y) + sumh <= (sumh)*2) { + this_len = bb_this->height; + sumw = this_len + bb_that->height; + if ((((this->y.HALF.HI - that->y.HALF.HI) + bb_this->offset_y) - bb_that->offset_y) + sumw <= (sumw)*2) { if ((this->field_0x3c & 0x10) != 0) this_d = ((Hitbox3D*)bb_this)->depth; else @@ -208,7 +205,6 @@ NONMATCH("asm/non_matching/arm_proxy/sub_080177A0.inc", bool32 sub_080177A0(Enti } return FALSE; } -END_NONMATCH bool32 sub_08017850(Entity* this) { if (sub_08079F8C())