From 52e3382791186d899e130fcf185e56e0bbdc377b Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Mon, 15 Aug 2022 21:36:29 +0300 Subject: [PATCH] Match sub_0801AFE4 --- .../beanstalkSubtask/sub_0801AFE4.inc | 67 ------------------- src/beanstalkSubtask.c | 23 ++++++- 2 files changed, 22 insertions(+), 68 deletions(-) delete mode 100644 asm/non_matching/beanstalkSubtask/sub_0801AFE4.inc diff --git a/asm/non_matching/beanstalkSubtask/sub_0801AFE4.inc b/asm/non_matching/beanstalkSubtask/sub_0801AFE4.inc deleted file mode 100644 index 5aa6bf6d..00000000 --- a/asm/non_matching/beanstalkSubtask/sub_0801AFE4.inc +++ /dev/null @@ -1,67 +0,0 @@ - .syntax unified - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - ldr r3, _0801B018 @ =gMapBottom+0x2004 - ldr r0, _0801B01C @ =gRoomControls - ldrh r1, [r0, #0x1e] - lsrs r1, r1, #4 - mov sl, r1 - ldrh r0, [r0, #0x20] - lsrs r0, r0, #4 - mov sb, r0 - movs r7, #0 - cmp r7, sb - bhs _0801B054 -_0801B004: - movs r2, #0 - adds r0, r7, #1 - mov r8, r0 - cmp r2, sl - bhs _0801B046 -_0801B00E: - ldr r1, _0801B020 @ =gUnk_080B44D0 - adds r4, r3, #1 - adds r5, r2, #1 - b _0801B026 - .align 2, 0 -_0801B018: .4byte gMapBottom+0x2004 -_0801B01C: .4byte gRoomControls -_0801B020: .4byte gUnk_080B44D0 -_0801B024: - adds r1, #4 -_0801B026: - ldrh r0, [r1] - cmp r0, #0 - beq _0801B03E - ldrb r6, [r3] - cmp r0, r6 - bne _0801B024 - ldrh r0, [r1, #2] - lsls r1, r7, #6 - adds r1, r1, r2 - movs r2, #1 - bl SetTile -_0801B03E: - adds r3, r4, #0 - adds r2, r5, #0 - cmp r2, sl - blo _0801B00E -_0801B046: - adds r0, r3, #0 - adds r0, #0x40 - mov r1, sl - subs r3, r0, r1 - mov r7, r8 - cmp r7, sb - blo _0801B004 -_0801B054: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - .syntax divided diff --git a/src/beanstalkSubtask.c b/src/beanstalkSubtask.c index 56ef2349..b9bf1dc9 100644 --- a/src/beanstalkSubtask.c +++ b/src/beanstalkSubtask.c @@ -594,7 +594,28 @@ void DeleteLoadedTileEntity(u32 position, s32 layer) { ptr[t] = ptr[count]; } -ASM_FUNC("asm/non_matching/beanstalkSubtask/sub_0801AFE4.inc", void sub_0801AFE4(void)) +void sub_0801AFE4(void) { + const u16* ptr; + u8* collisionData; + u32 x; + u32 y; + u32 width; + u32 height; + + collisionData = gMapBottom.collisionData; + width = gRoomControls.width >> 4; + height = gRoomControls.height >> 4; + for (y = 0; y < height; collisionData = collisionData + (0x40 - width), y++) { + for (x = 0; x < width; collisionData++, x++) { + for (ptr = gUnk_080B44D0; ptr[0] != 0; ptr += 2) { + if (ptr[0] == *collisionData) { + SetTile(ptr[1], y * 0x40 + x, 1); + break; + } + } + } + } +} void UpdateBgAnimations(void) { bool32 alreadyUploadedGfx = FALSE;