From 9ca86abfb1243ce17b90e8eaf6959c46ad03e495 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sat, 23 Apr 2022 17:12:23 +0300 Subject: [PATCH] Match sub_0801A370 --- .../beanstalkSubtask/sub_0801A370.inc | 120 ------------------ src/beanstalkSubtask.c | 6 +- 2 files changed, 3 insertions(+), 123 deletions(-) delete mode 100644 asm/non_matching/beanstalkSubtask/sub_0801A370.inc diff --git a/asm/non_matching/beanstalkSubtask/sub_0801A370.inc b/asm/non_matching/beanstalkSubtask/sub_0801A370.inc deleted file mode 100644 index 5bbea38e..00000000 --- a/asm/non_matching/beanstalkSubtask/sub_0801A370.inc +++ /dev/null @@ -1,120 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r4, r1, #0 - ldr r5, _0801A3C8 @ =gPlayerEntity - ldrb r1, [r5, #0x14] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0801A44E - bl sub_0801A4F8 - cmp r0, #0 - beq _0801A44E - movs r0, #2 - bl GetLayerByIndex - adds r7, r0, #0 - ldr r1, _0801A3CC @ =gUnk_080B4488 - ldrb r0, [r5, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #1 - adds r0, r0, r1 - movs r1, #0 - ldrsh r6, [r0, r1] - adds r4, r4, r6 - adds r0, r5, #0 - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl GetTileType - adds r1, r0, #0 - ldr r0, _0801A3D0 @ =0x0000402B - cmp r1, r0 - beq _0801A3D4 - cmp r1, r0 - blo _0801A3D6 - adds r0, #4 - cmp r1, r0 - bhi _0801A3D6 -_0801A3C4: - movs r0, #1 - b _0801A450 - .align 2, 0 -_0801A3C8: .4byte gPlayerEntity -_0801A3CC: .4byte gUnk_080B4488 -_0801A3D0: .4byte 0x0000402B -_0801A3D4: - adds r4, r4, r6 -_0801A3D6: - adds r0, r7, r4 - ldr r1, _0801A40C @ =0x00001F84 - adds r0, r0, r1 - ldrb r0, [r0] - cmp r0, #0x46 - beq _0801A44E - ldr r0, _0801A410 @ =gPlayerEntity - adds r0, #0x38 - ldrb r1, [r0] - adds r0, r4, #0 - bl GetTileType - bl sub_080B1B54 - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x52 - beq _0801A44E - cmp r0, #0x52 - bgt _0801A414 - cmp r0, #0x26 - blt _0801A418 - cmp r0, #0x27 - ble _0801A44E - cmp r0, #0x29 - beq _0801A44E - b _0801A418 - .align 2, 0 -_0801A40C: .4byte 0x00001F84 -_0801A410: .4byte gPlayerEntity -_0801A414: - cmp r0, #0x74 - beq _0801A44E -_0801A418: - ldr r0, _0801A434 @ =0x00002004 - add r0, r8 - adds r0, r0, r4 - ldrb r0, [r0] - adds r1, r0, #0 - cmp r0, #0xa - beq _0801A446 - cmp r0, #0xa - bgt _0801A438 - cmp r0, #0 - beq _0801A3C4 - cmp r0, #5 - beq _0801A440 - b _0801A44E - .align 2, 0 -_0801A434: .4byte 0x00002004 -_0801A438: - cmp r1, #0x44 - beq _0801A446 - cmp r1, #0x45 - bne _0801A44E -_0801A440: - cmp r6, #1 - bne _0801A44E - b _0801A3C4 -_0801A446: - movs r0, #1 - rsbs r0, r0, #0 - cmp r6, r0 - beq _0801A3C4 -_0801A44E: - movs r0, #0 -_0801A450: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - .syntax divided diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 766e9f55..6b18442d 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -166,11 +166,12 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A2B0.inc", } END_NONMATCH -NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A370(LayerStruct* layer, u32 position)) { +bool32 sub_0801A370(LayerStruct* layer, u32 position) { LayerStruct* topLayer; u32 tileType; u32 pos; s32 offset; + s32 temp; if ((gPlayerEntity.animationState & 2) == 0) { return FALSE; @@ -203,7 +204,7 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A3 case 0x74: return FALSE; } - switch (layer->collisionData[pos]) { + switch (temp = layer->collisionData[pos]) { case 0: return TRUE; case 5: @@ -221,7 +222,6 @@ NONMATCH("asm/non_matching/beanstalkSubtask/sub_0801A370.inc", bool32 sub_0801A3 } return FALSE; } -END_NONMATCH bool32 sub_0801A458(LayerStruct* layer, u32 position, u32 collisionType) { u32 tileType;