From 43f25e93af27eb393517bb05261d0966a263240f Mon Sep 17 00:00:00 2001 From: KEKW555 <152369890+KEKW555@users.noreply.github.com> Date: Wed, 29 Nov 2023 12:20:59 +0530 Subject: [PATCH 1/2] OK sub_0807A5B8 --- src/playerUtils.c | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/src/playerUtils.c b/src/playerUtils.c index 7678ab5a..5a3c0225 100644 --- a/src/playerUtils.c +++ b/src/playerUtils.c @@ -1688,7 +1688,45 @@ void sub_080792BC(s32 speed, u32 direction, u32 field_0x38) { gPlayerEntity.direction = direction; } -ASM_FUNC("asm/non_matching/playerUtils/sub_080792D8.inc", void sub_080792D8()) +void sub_080792D8(void) { + Entity* playerEntity = &gPlayerEntity; + + if (playerEntity->knockbackDuration != 0) { + if (((((playerEntity->action == 0xb) || (gPlayerState.dash_state != 0)) || + ((u8)(gPlayerState.heldObject - 1) < 4)) || + (((gPlayerState.jump_status != 0 || (gPlayerState.floor_type == 0xff)) || + (((gPlayerState.field_0x7 & 0x80) != 0 || + ((0 < (s32)((gPlayerState.swim_state & 0xf) - 1) || (playerEntity->action == 3)))))))) || + ((gPlayerState.flags & 0x40000) != 0)) { + playerEntity->knockbackDuration = 0; + } else if ((playerEntity->action == 0x1d) && (playerEntity->knockbackDirection != 0x10)) { + playerEntity->knockbackDuration = 0; + } else { + + if ((s8)(playerEntity->knockbackDuration) >= 1) { + playerEntity->knockbackDuration--; + + } else { + playerEntity->knockbackDuration++; + } + if (playerEntity->knockbackDuration != 0) { + gPlayerState.field_0x7 &= 0xdf; + if ((((0 < playerEntity->iframes) && (gPlayerState.swim_state == 0)) && + ((gPlayerState.flags & 0x80) == 0)) && + gPlayerState.jump_status == 0) { + ResetActiveItems(); + if ((gPlayerState.flags & 8) == 0) { + gPlayerState.animation = 0x114; + } else { + gPlayerState.animation = 0x418; + } + } + sub_080027EA(playerEntity, 0x280, playerEntity->knockbackDirection); + sub_0807A5B8(playerEntity->knockbackDirection); + } + } + } +} bool32 sub_080793E4(u32 param_1) { u32 tmp; From 6fec0894053f16b0f9b2e6cd50a4fcaa27565408 Mon Sep 17 00:00:00 2001 From: KEKW555 <152369890+KEKW555@users.noreply.github.com> Date: Wed, 29 Nov 2023 12:23:19 +0530 Subject: [PATCH 2/2] Delete asm/non_matching/playerUtils/sub_080792D8.inc --- asm/non_matching/playerUtils/sub_080792D8.inc | 139 ------------------ 1 file changed, 139 deletions(-) delete mode 100644 asm/non_matching/playerUtils/sub_080792D8.inc diff --git a/asm/non_matching/playerUtils/sub_080792D8.inc b/asm/non_matching/playerUtils/sub_080792D8.inc deleted file mode 100644 index e14695a1..00000000 --- a/asm/non_matching/playerUtils/sub_080792D8.inc +++ /dev/null @@ -1,139 +0,0 @@ - .syntax unified - push {r4, r5, r6, lr} - ldr r5, _08079344 @ =gPlayerEntity - adds r3, r5, #0 - adds r3, #0x42 - ldrb r0, [r3] - cmp r0, #0 - beq _080793E0 - ldrb r2, [r5, #0xc] - cmp r2, #0xb - beq _08079338 - ldr r0, _08079348 @ =gPlayerState - ldrb r1, [r0, #0x1e] - adds r6, r0, #0 - cmp r1, #0 - bne _08079338 - ldrb r0, [r6, #5] - subs r0, #1 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #3 - bls _08079338 - ldrb r0, [r6, #2] - cmp r0, #0 - bne _08079338 - ldrb r0, [r6, #0x12] - cmp r0, #0xff - beq _08079338 - ldrb r1, [r6, #7] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08079338 - adds r0, r6, #0 - adds r0, #0x26 - ldrb r1, [r0] - movs r0, #0xf - ands r0, r1 - subs r0, #1 - cmp r0, #0 - bgt _08079338 - cmp r2, #3 - beq _08079338 - ldr r1, [r6, #0x30] - movs r0, #0x80 - lsls r0, r0, #0xb - ands r1, r0 - cmp r1, #0 - beq _0807934C -_08079338: - adds r1, r5, #0 - adds r1, #0x42 - movs r0, #0 - strb r0, [r1] - b _080793E0 - .align 2, 0 -_08079344: .4byte gPlayerEntity -_08079348: .4byte gPlayerState -_0807934C: - cmp r2, #0x1d - bne _0807935E - adds r0, r5, #0 - adds r0, #0x3e - ldrb r0, [r0] - cmp r0, #0x10 - beq _0807935E - strb r1, [r3] - b _080793E0 -_0807935E: - adds r0, r5, #0 - adds r0, #0x42 - ldrb r3, [r0] - movs r1, #0 - ldrsb r1, [r0, r1] - adds r2, r0, #0 - cmp r1, #0 - ble _08079372 - subs r0, r3, #1 - b _08079374 -_08079372: - adds r0, r3, #1 -_08079374: - strb r0, [r2] - ldrb r0, [r2] - cmp r0, #0 - beq _080793E0 - adds r4, r6, #0 - ldrb r0, [r4, #7] - movs r1, #0xdf - ands r1, r0 - strb r1, [r4, #7] - adds r0, r5, #0 - adds r0, #0x3d - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - ble _080793CA - adds r0, r4, #0 - adds r0, #0x26 - ldrb r0, [r0] - cmp r0, #0 - bne _080793CA - ldr r0, [r4, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080793CA - ldrb r0, [r4, #2] - cmp r0, #0 - bne _080793CA - bl ResetActiveItems - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _080793C4 - movs r0, #0x8a - lsls r0, r0, #1 - strh r0, [r4, #8] - b _080793CA -_080793C4: - movs r0, #0x83 - lsls r0, r0, #3 - strh r0, [r6, #8] -_080793CA: - movs r1, #0xa0 - lsls r1, r1, #2 - adds r4, r5, #0 - adds r4, #0x3e - ldrb r2, [r4] - adds r0, r5, #0 - bl sub_080027EA - ldrb r0, [r4] - bl sub_0807A5B8 -_080793E0: - pop {r4, r5, r6, pc} - .align 2, 0 - .syntax divided