diff --git a/asm/non_matching/SetAffineInfo.inc b/asm/non_matching/SetAffineInfo.inc deleted file mode 100644 index ae3e7a77..00000000 --- a/asm/non_matching/SetAffineInfo.inc +++ /dev/null @@ -1,41 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r5, r1, #0 - adds r6, r2, #0 - adds r7, r3, #0 - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - cmp r0, #0 - bne _0805ECBE - adds r0, r4, #0 - bl sub_0805EC04 - cmp r0, #0 - bne _0805ECBE - movs r0, #0 - b _0805ECE0 -_0805ECBE: - ldr r1, _0805ECE4 @ =gOAMControls - ldr r0, _0805ECE8 @ =0x00000427 - adds r2, r1, r0 - movs r0, #1 - strb r0, [r2] - ldrb r0, [r4, #0x1b] - lsls r0, r0, #0x1a - lsrs r0, r0, #0x1b - lsls r0, r0, #3 - movs r2, #0x84 - lsls r2, r2, #3 - adds r1, r1, r2 - adds r0, r0, r1 - strh r5, [r0] - strh r6, [r0, #2] - strh r7, [r0, #4] - movs r0, #1 -_0805ECE0: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0805ECE4: .4byte gOAMControls -_0805ECE8: .4byte 0x00000427 - .syntax divided diff --git a/src/code_0805EC04.c b/src/code_0805EC04.c index 42f1403a..e8197e14 100644 --- a/src/code_0805EC04.c +++ b/src/code_0805EC04.c @@ -32,7 +32,20 @@ void sub_0805EC60(Entity* this) { } } -ASM_FUNC("asm/non_matching/SetAffineInfo.inc", bool32 SetAffineInfo(Entity* ent, u32 param_2, u32 param_3, u32 param_4)) +bool32 SetAffineInfo(Entity* ent, u32 param_2, u32 param_3, u32 param_4) { + u16* temp; + + if (ent->spriteOrientation.b1 == 0 && !sub_0805EC04(ent)) { + return 0; + } else { + gOAMControls.unk[0].unk7 = 1; + temp = (u16*)&gOAMControls.unk[ent->spriteOrientation.b1].unk0; + temp[0] = param_2; + temp[1] = param_3; + temp[2] = param_4; + return 1; + } +} void sub_0805ECEC(int param_1, u32 param_2, u32 param_3, u32 param_4) { u16* temp;