mirror of https://github.com/zeldaret/tmc.git
Match sub_080AB758
This commit is contained in:
parent
c5c1343c7c
commit
854e623bf9
|
|
@ -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
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
Loading…
Reference in New Issue