Match sub_080AB758

This commit is contained in:
Tal Hayon 2022-05-08 22:21:17 +03:00
parent c5c1343c7c
commit 854e623bf9
2 changed files with 18 additions and 145 deletions

View File

@ -1,123 +0,0 @@
.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r5, r0, #0
movs r6, #6
movs r7, #0
movs r4, #0
movs r0, #0x32
ldrsh r2, [r5, r0]
ldr r1, _080AB818 @ =gRoomControls
ldrh r0, [r1, #8]
adds r0, #0xd4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
mov r8, r1
cmp r2, r0
bhi _080AB7B4
movs r3, #7
_080AB77E:
adds r0, r4, #0
ands r0, r3
cmp r0, #7
bne _080AB798
adds r0, r5, #0
movs r1, #4
adds r2, r6, #0
str r3, [sp]
bl sub_080AB844
adds r6, #0x3e
adds r7, #0x3e
ldr r3, [sp]
_080AB798:
adds r4, #1
ands r4, r3
movs r1, #0x32
ldrsh r0, [r5, r1]
adds r0, r0, r7
lsls r1, r4, #3
adds r2, r0, r1
ldr r0, _080AB818 @ =gRoomControls
ldrh r0, [r0, #8]
adds r0, #0xd4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r2, r0
bls _080AB77E
_080AB7B4:
movs r4, #0
movs r1, #0x32
ldrsh r0, [r5, r1]
adds r2, r0, r7
mov r1, r8
ldrh r0, [r1, #8]
adds r0, #0xd4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r2, r0
bhi _080AB802
movs r3, #3
_080AB7CC:
adds r0, r4, #0
ands r0, r3
cmp r0, #3
bne _080AB7E6
adds r0, r5, #0
movs r1, #3
adds r2, r6, #0
str r3, [sp]
bl sub_080AB844
adds r6, #0x1e
adds r7, #0x1e
ldr r3, [sp]
_080AB7E6:
adds r4, #1
ands r4, r3
movs r1, #0x32
ldrsh r0, [r5, r1]
adds r0, r0, r7
lsls r1, r4, #3
adds r2, r0, r1
ldr r0, _080AB818 @ =gRoomControls
ldrh r0, [r0, #8]
adds r0, #0xd4
lsls r0, r0, #0x10
lsrs r0, r0, #0x10
cmp r2, r0
bls _080AB7CC
_080AB802:
movs r0, #2
ands r0, r4
cmp r0, #0
beq _080AB81C
adds r0, r5, #0
movs r1, #2
adds r2, r6, #0
bl sub_080AB844
adds r6, #0xe
b _080AB830
.align 2, 0
_080AB818: .4byte gRoomControls
_080AB81C:
movs r0, #1
ands r4, r0
cmp r4, #0
beq _080AB830
adds r0, r5, #0
movs r1, #1
adds r2, r6, #0
bl sub_080AB844
adds r6, #6
_080AB830:
adds r0, r5, #0
movs r1, #6
adds r2, r6, #0
bl sub_080AB844
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
.syntax divided

View File

@ -51,32 +51,29 @@ void V1EyeLaser_Action2(Entity* this) {
}
}
NONMATCH("asm/non_matching/v1EyeLaser/sub_080AB758.inc", void sub_080AB758(Entity* this)) {
void sub_080AB758(Entity* this) {
s32 r6 = 6;
u32 r7 = 0;
u32 index = 0;
if (((u32)this->y.HALF.HI) <= (u16)(gRoomControls.origin_y + 0xd4)) {
u32 tmp = 7;
do {
if ((index & tmp) == 7) {
sub_080AB844(this, 4, r6);
r6 += 0x3e;
r7 += 0x3e;
}
index = (index + 1) & tmp;
} while (this->y.HALF.HI + r7 + (index << 3) <= (u16)(gRoomControls.origin_y + 0xd4));
u32 tmp = this->y.HALF.HI + r7 + (index << 3);
for (; tmp <= (u16)(gRoomControls.origin_y + 0xd4);
index = (index + 1) & 7, tmp = this->y.HALF.HI + r7 + (index << 3)) {
if ((index & 7) == 7) {
sub_080AB844(this, 4, r6);
r6 += 0x3e;
r7 += 0x3e;
}
}
index = 0;
if (this->y.HALF.HI + r7 <= (u16)(gRoomControls.origin_y + 0xd4)) {
u32 tmp = 3;
do {
if ((index & tmp) == 3) {
sub_080AB844(this, 3, r6);
r6 += 0x1e;
r7 += 0x1e;
}
index = (index + 1) & tmp;
} while (this->y.HALF.HI + r7 + (index << 3) <= (u16)(gRoomControls.origin_y + 0xd4));
tmp = this->y.HALF.HI + r7 + (index << 3);
for (; tmp <= (u16)(gRoomControls.origin_y + 0xd4);
index = (index + 1) & 3, tmp = this->y.HALF.HI + r7 + (index << 3)) {
if ((index & 3) == 3) {
sub_080AB844(this, 3, r6);
r6 += 0x1e;
r7 += 0x1e;
}
}
if (index & 0x2) {
@ -89,7 +86,6 @@ NONMATCH("asm/non_matching/v1EyeLaser/sub_080AB758.inc", void sub_080AB758(Entit
sub_080AB844(this, 6, r6);
}
END_NONMATCH
void sub_080AB844(Entity* this, s32 param_1, s32 param_2) {
Entity* entity;