diff --git a/asm/non_matching/syrup/sub_0806A26C.inc b/asm/non_matching/syrup/sub_0806A26C.inc deleted file mode 100644 index c403f1f1..00000000 --- a/asm/non_matching/syrup/sub_0806A26C.inc +++ /dev/null @@ -1,43 +0,0 @@ - .include "asm/macros.inc" - - .include "constants/constants.inc" - - .syntax unified - - .text - - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0xf - movs r1, #0x2f - movs r2, #0 - bl CreateObject - adds r4, r0, #0 - cmp r4, #0 - beq _0806A2AE - adds r0, r5, #0 - adds r1, r4, #0 - bl PositionEntityOnTop - bl Random - adds r5, r0, #0 - ldr r2, _0806A2B0 @ =gUnk_081121DC - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - adds r3, r4, #0 - adds r3, #0x62 - strb r0, [r3] - lsrs r0, r5, #8 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - subs r0, #8 - adds r1, r4, #0 - adds r1, #0x63 - strb r0, [r1] -_0806A2AE: - pop {r4, r5, pc} - .align 2, 0 -_0806A2B0: .4byte gUnk_081121DC - .syntax divided diff --git a/src/npc/syrup.c b/src/npc/syrup.c index 003b60cb..d1535e72 100644 --- a/src/npc/syrup.c +++ b/src/npc/syrup.c @@ -41,20 +41,21 @@ void sub_0806A234(Entity* this) { extern u8 gUnk_081121DC[]; -NONMATCH("asm/non_matching/syrup/sub_0806A26C.inc", void sub_0806A26C(Entity* this)) { +void sub_0806A26C(Entity* this) { u8 unk; - u32 uVar2; + u8* ptr; + u32 uVar2, uVar1; Entity* pEVar1; pEVar1 = CreateObject(SPECIAL_FX, 0x2f, 0); if (pEVar1 != NULL) { PositionEntityOnTop(this, pEVar1); - if (uVar2 = Random(), uVar2) { - unk = -unk; // wtf?! - } - pEVar1->spriteOffsetX = (u8)gUnk_081121DC[uVar2 & 7]; - pEVar1->spriteOffsetY = (u8)gUnk_081121DC[(uVar2 / 256) & 7] - 8; + uVar2 = uVar1 = Random(); + ptr = gUnk_081121DC; + pEVar1->spriteOffsetX = (u8)ptr[uVar2 & 7]; + uVar1 /= 256; + uVar1 &= 7; + pEVar1->spriteOffsetY = (u8)ptr[uVar1] - 8; } } -END_NONMATCH ASM_FUNC("asm/non_matching/syrup/Syrup_Head.inc", void Syrup_Head(Entity* this))