diff --git a/asm/non_matching/moldorm/sub_08022E40.inc b/asm/non_matching/moldorm/sub_08022E40.inc deleted file mode 100644 index a4f2d937..00000000 --- a/asm/non_matching/moldorm/sub_08022E40.inc +++ /dev/null @@ -1,62 +0,0 @@ - - .syntax unified - - .text - - push {r4, r5, lr} - adds r4, r0, #0 - ldrh r1, [r4, #0x2e] - adds r0, #0x74 - strh r1, [r0] - ldrh r0, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x76 - strh r0, [r1] - ldr r2, [r4, #0x50] - adds r2, #0x79 - ldrb r0, [r2] - adds r0, #1 - movs r3, #7 - ands r0, r3 - adds r0, #0x7c - adds r0, r4, r0 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - subs r0, #8 - lsrs r1, r1, #4 - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - ldrh r5, [r4, #0x2e] - adds r0, r0, r5 - strh r0, [r4, #0x2e] - subs r1, #8 - ldrh r0, [r4, #0x32] - adds r1, r1, r0 - strh r1, [r4, #0x32] - adds r1, r4, #0 - adds r1, #0x84 - ldrb r0, [r2] - adds r0, #1 - ands r0, r3 - lsls r0, r0, #2 - ldr r1, [r1] - lsrs r1, r0 - movs r0, #7 - ands r1, r0 - strb r1, [r4, #0x14] - ldrb r0, [r4, #0xa] - cmp r0, #3 - bne _08022EA2 - adds r0, r1, #0 - adds r0, #0xa - strb r0, [r4, #0x1e] - b _08022EA8 -_08022EA2: - adds r0, r4, #0 - bl sub_08022EAC -_08022EA8: - pop {r4, r5, pc} - .align 2, 0 - - .syntax divided diff --git a/src/enemy/moldorm.c b/src/enemy/moldorm.c index f212fa29..facad891 100644 --- a/src/enemy/moldorm.c +++ b/src/enemy/moldorm.c @@ -146,12 +146,9 @@ void sub_08022DE8(Entity* this) { } } -// this definition is only here, so clang-tidy does not mess gUnk_080CBBBC up. -extern void sub_08022E40(Entity* this); - -NONMATCH("asm/non_matching/moldorm/sub_08022E40.inc", void sub_08022E40(Entity* this)) { +void sub_08022E40(Entity* this) { u32 bVar1; - u32 bVar2; + u32 animationState; u32 tmp; u32 tmp2; u8* ptr; @@ -159,21 +156,21 @@ NONMATCH("asm/non_matching/moldorm/sub_08022E40.inc", void sub_08022E40(Entity* this->field_0x74.HWORD = this->x.HALF.HI; this->field_0x76.HWORD = this->y.HALF.HI; tmp2 = (this->parent->field_0x78.HALF.HI + 1) & 7; - bVar1 = ((u8*)&this->field_0x7c)[tmp2]; + ptr = (u8*)&this->field_0x7c + tmp2; + bVar1 = *ptr; tmp = (bVar1 & 0xf) - 8; bVar1 >>= 4; this->x.HALF.HI = ((short)((tmp * 0x100)) >> 8) + this->x.HALF.HI; bVar1 -= 8; this->y.HALF.HI = bVar1 + this->y.HALF.HI; - bVar2 = (u8)(*(u32*)&this->cutsceneBeh >> (((this->parent->field_0x78.HALF.HI + 1) & 7) << 2)) & 7; - this->animationState = bVar2; + animationState = (u8)(*(u32*)&this->cutsceneBeh >> (((this->parent->field_0x78.HALF.HI + 1) & 7) << 2)) & 7; + this->animationState = animationState; if (this->type == 3) { - this->frameIndex = bVar2 + 10; + this->frameIndex = animationState + 10; } else { sub_08022EAC(this); } } -END_NONMATCH void sub_08022EAC(Entity* this) { int iVar1;