diff --git a/asm/kinstone.s b/asm/kinstone.s deleted file mode 100644 index 4f28742e..00000000 --- a/asm/kinstone.s +++ /dev/null @@ -1,53 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_08018500 -sub_08018500: @ 0x08018500 - push {r4, lr} - ldr r4, _08018550 @ =gUnk_02033AB8 - adds r3, r4, #4 - ldr r0, _08018554 @ =gUnk_080B3D14 - ldrb r1, [r4] - lsls r1, r1, #1 - adds r1, r1, r0 - ldrb r2, [r4, #1] - lsls r0, r2, #1 - adds r0, r0, r2 - ldrh r1, [r1] - adds r0, r0, r1 - movs r2, #0 -_0801851A: - strh r0, [r3] - adds r0, #1 - adds r3, #2 - adds r2, #1 - cmp r2, #2 - bls _0801851A - ldrb r1, [r4] - lsls r0, r1, #2 - adds r0, r0, r1 - ldr r1, _08018558 @ =0x00000C81 - adds r0, r0, r1 - movs r2, #0 - adds r1, r4, #0 - adds r1, #0xa -_08018536: - strh r0, [r3] - adds r0, #1 - adds r3, #2 - adds r2, #1 - cmp r2, #4 - bls _08018536 - movs r0, #5 - bl sub_08018690 - movs r0, #0 - strb r0, [r4, #2] - pop {r4, pc} - .align 2, 0 -_08018550: .4byte gUnk_02033AB8 -_08018554: .4byte gUnk_080B3D14 -_08018558: .4byte 0x00000C81 diff --git a/linker.ld b/linker.ld index af9cfea7..443d0cff 100644 --- a/linker.ld +++ b/linker.ld @@ -107,8 +107,6 @@ SECTIONS { . = 0x00033280; gActiveScriptInfo = .; . = 0x00033290; gUnk_02033290 = .; . = 0x00033A90; gArea = .; - . = 0x00033AB8; gUnk_02033AB8 = .; - . = 0x00033ACC; gUnk_02033ACC = .; . = 0x000342F8; gUnk_020342F8 = .; . = 0x00034330; gUnk_02034330 = .; . = 0x00034350; gRoomVars = .; @@ -305,7 +303,6 @@ SECTIONS { src/npc.o(.text); src/collision.o(.text); /* C source compiled without interworking */ - asm/kinstone.o(.text); src/kinstone.o(.text); src/playerItem/playerItemGustBig.o(.text); src/playerItem/playerItemBow.o(.text); diff --git a/src/kinstone.c b/src/kinstone.c index 11a5835e..24feb5ab 100644 --- a/src/kinstone.c +++ b/src/kinstone.c @@ -28,6 +28,7 @@ extern const EntityData gUnk_080FEE18[]; extern const EntityData gUnk_080FEE48[]; extern const EntityData gUnk_080FEE58[]; extern const void* gUnk_080FED98[]; +extern const u16 gUnk_080B3D14[]; void sub_08018AB4(int); void sub_08018BB4(int); @@ -40,6 +41,32 @@ void sub_08018690(int param_1, u16* param_2); void sub_08018500(); bool32 sub_080185B4(const struct_gUnk_080B3D20* param_1); +void sub_08018500(void) { + s32 sVar1; + u32 i; + u16* puVar3; + u16* puVar4; + struct_area_28* ptr = &gArea.unk28; + + puVar3 = ptr->unk2C; + sVar1 = gUnk_080B3D14[ptr->inventoryGfxIdx] + ptr->unk29 * 3; + + for (i = 0; i < 3; i++) { + *puVar3 = sVar1; + sVar1++; + puVar3++; + } + + sVar1 = ptr->inventoryGfxIdx * 5 + 0xc81; + for (i = 0, puVar4 = &ptr->unk2C[3]; i < 5; i++) { + *puVar3 = sVar1; + sVar1++; + puVar3++; + } + sub_08018690(5, puVar4); + ptr->unk2a = 0; +} + void sub_0801855C(void) { u32 bVar3; struct_area_28* ptr;