diff options
| author | octorock <79596758+octorock@users.noreply.github.com> | 2021-03-16 00:22:13 +0100 |
|---|---|---|
| committer | octorock <79596758+octorock@users.noreply.github.com> | 2021-03-24 23:27:31 +0100 |
| commit | 74b661df24dbebf42496cb3cce2049cb3f15c57b (patch) | |
| tree | aaa852594d5ae6629baffeacb9c6fa339cdeb400 /asm/code_080732D0.s | |
| parent | 7846a385515bb7e63a2f79ef06c5c258edf025d5 (diff) | |
Split items and extract pointers
Diffstat (limited to 'asm/code_080732D0.s')
| -rw-r--r-- | asm/code_080732D0.s | 3191 |
1 files changed, 30 insertions, 3161 deletions
diff --git a/asm/code_080732D0.s b/asm/code_080732D0.s index 42d8326a..b64b3477 100644 --- a/asm/code_080732D0.s +++ b/asm/code_080732D0.s @@ -4331,3173 +4331,42 @@ sub_080752E8: @ 0x080752E8 .align 2, 0 _080752FC: .4byte gItemFunctions - thumb_func_start ItemDebug -ItemDebug: @ 0x08075300 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077BD4 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - pop {r4, r5, pc} - - thumb_func_start ItemSword -ItemSword: @ 0x08075314 - push {lr} - ldr r2, _08075330 @ =gPlayerState - adds r2, #0xa8 - movs r3, #2 - strb r3, [r2] - ldr r3, _08075334 @ =gUnk_0811BD44 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075330: .4byte gPlayerState -_08075334: .4byte gUnk_0811BD44 - - thumb_func_start sub_08075338 -sub_08075338: @ 0x08075338 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r7, r1, #0 - ldr r4, _0807536C @ =gPlayerState - ldr r1, [r4, #0x30] - movs r3, #0x80 - adds r0, r1, #0 - ands r0, r3 - cmp r0, #0 - beq _08075370 - ldrb r0, [r5, #9] - movs r1, #0x80 - orrs r1, r0 - strb r1, [r5, #9] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - movs r0, #0xc0 - lsls r0, r0, #4 - strh r0, [r4, #8] - movs r0, #0x75 - bl SoundReq - b _080754B4 - .align 2, 0 -_0807536C: .4byte gPlayerState -_08075370: - ldrb r2, [r4, #2] - cmp r2, #0 - beq _080753DC - movs r6, #7 - adds r0, r6, #0 - ands r0, r2 - cmp r0, #3 - beq _080753E4 - movs r0, #0x78 - ands r0, r2 - cmp r0, #0 - bne _080753E4 - ldr r3, _080753D4 @ =gPlayerEntity - ldr r1, [r3, #0x20] - ldr r0, _080753D8 @ =0x00017FFF - cmp r1, r0 - bhi _080753E4 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x40 - ands r0, r1 - cmp r0, #0 - beq _080753E4 - ldr r0, [r3, #0x34] - cmp r0, #0 - beq _080753E4 - movs r0, #0x20 - orrs r0, r2 - strb r0, [r4, #2] - adds r0, r4, #0 - adds r0, #0xab - strb r6, [r0] - movs r0, #8 - asrs r0, r7 - lsls r1, r0, #4 - orrs r0, r1 - ldrb r1, [r4, #4] - orrs r0, r1 - strb r0, [r4, #4] - adds r0, r5, #0 - bl sub_08077B98 - movs r0, #6 - strb r0, [r5, #4] - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08075898 - b _080754B4 - .align 2, 0 -_080753D4: .4byte gPlayerEntity -_080753D8: .4byte 0x00017FFF -_080753DC: - ldr r2, _080753F0 @ =gPlayerEntity - ldr r0, [r2, #0x34] - cmp r0, #0 - beq _080753F4 -_080753E4: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_080759B8 - b _080754B4 - .align 2, 0 -_080753F0: .4byte gPlayerEntity -_080753F4: - movs r6, #0x80 - lsls r6, r6, #0xb - ands r6, r1 - cmp r6, #0 - beq _08075480 - adds r0, r4, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #2 - ands r0, r1 - lsls r0, r0, #0x10 - lsrs r6, r0, #0x10 - cmp r6, #0 - bne _0807541E - ldr r0, [r4, #0x2c] - cmp r0, #0 - beq _080754B4 - bl DeleteEntity - str r6, [r4, #0x2c] - b _080754B4 -_0807541E: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 - movs r3, #8 - adds r1, r3, #0 - asrs r1, r7 - lsls r0, r1, #4 - orrs r0, r1 - ldrb r2, [r4, #4] - orrs r0, r2 - strb r0, [r4, #4] - ldrb r2, [r4, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r4, #0xa] - ldrb r0, [r4, #0xb] - orrs r1, r0 - strb r1, [r4, #0xb] - strb r3, [r5, #4] - movs r0, #0x14 - strb r0, [r5, #7] - movs r0, #6 - strb r0, [r5, #0xf] - ldrb r1, [r5, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r5, #9] - adds r1, r4, #0 - adds r1, #0xab - movs r0, #2 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x14 - orrs r0, r1 - str r0, [r4, #0x30] - movs r1, #0x98 - lsls r1, r1, #1 - adds r0, r5, #0 - bl sub_08077DF4 - movs r0, #0x77 - bl SoundReq - b _080754B4 -_08075480: - ldrb r1, [r4, #0x1b] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075492 - strb r6, [r4, #0x1b] - adds r0, r2, #0 - bl sub_0806F948 -_08075492: - ldr r1, [r4, #0x2c] - cmp r1, #0 - beq _080754A6 - ldrb r0, [r1, #9] - cmp r0, #1 - beq _080754A6 - adds r0, r1, #0 - bl DeleteEntity - str r6, [r4, #0x2c] -_080754A6: - adds r0, r5, #0 - adds r1, r7, #0 - bl sub_08077D38 - adds r0, r5, #0 - bl sub_08077B98 -_080754B4: - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_080754B8 -sub_080754B8: @ 0x080754B8 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r7, _080754D4 @ =gPlayerState - ldrb r1, [r7, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080754D8 - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 - b _0807557E - .align 2, 0 -_080754D4: .4byte gPlayerState -_080754D8: - ldrb r0, [r7, #4] - cmp r0, #0 - beq _08075576 - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r0, [r4, #0xe] - cmp r0, #0 - beq _080754F2 - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] -_080754F2: - ldr r0, _0807552C @ =gPlayerEntity - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075538 - bl sub_0807B014 - adds r5, r0, #0 - cmp r5, #0 - beq _08075538 - movs r0, #8 - movs r1, #0xf - movs r2, #2 - bl FindEntityByID - cmp r0, #0 - bne _08075538 - adds r0, r4, #0 - movs r1, #0xf - bl CreatePlayerBomb - cmp r5, #0xf - bne _08075530 - adds r1, r7, #0 - adds r1, #0xab - movs r0, #5 - b _08075536 - .align 2, 0 -_0807552C: .4byte gPlayerEntity -_08075530: - adds r1, r7, #0 - adds r1, #0xab - movs r0, #8 -_08075536: - strb r0, [r1] -_08075538: - ldrb r1, [r4, #0xe] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807557E - ldr r1, _08075568 @ =gPlayerState - ldr r0, [r1, #0x30] - ands r0, r2 - cmp r0, #0 - bne _0807555C - adds r0, r1, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - bne _0807556C -_0807555C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807557E - .align 2, 0 -_08075568: .4byte gPlayerState -_0807556C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075580 - b _0807557E -_08075576: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807557E: - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08075580 -sub_08075580: @ 0x08075580 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080755E6 - ldr r2, _080755C8 @ =gPlayerState - ldrb r3, [r2, #2] - cmp r3, #0 - bne _080755E6 - movs r1, #8 - asrs r1, r5 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r0, #1 - strb r0, [r2, #0x1b] - ldr r0, [r2, #0x2c] - adds r0, #0x40 - movs r1, #0xd - strb r1, [r0] - strb r3, [r4, #0xf] - movs r0, #2 - strb r0, [r4, #4] - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #2 - ands r0, r1 - cmp r0, #0 - beq _080755CC - movs r0, #0x28 - b _080755CE - .align 2, 0 -_080755C8: .4byte gPlayerState -_080755CC: - movs r0, #0x50 -_080755CE: - strb r0, [r4, #7] - movs r1, #0xb4 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - movs r0, #0x43 - movs r1, #0 - movs r2, #0 - bl CreateObject - b _080755EE -_080755E6: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_080755EE: - pop {r4, r5, pc} - - thumb_func_start sub_080755F0 -sub_080755F0: @ 0x080755F0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075642 - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _0807564A - ldr r2, _08075634 @ =gPlayerState - ldrb r3, [r2, #0x1b] - ldrb r0, [r2, #4] - orrs r0, r3 - cmp r0, #0 - beq _08075638 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807564A - movs r0, #3 - strb r0, [r4, #4] - ldrb r0, [r4, #9] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - movs r0, #0x20 - orrs r0, r3 - strb r0, [r2, #0x1b] - b _0807564A - .align 2, 0 -_08075634: .4byte gPlayerState -_08075638: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 - b _0807564A -_08075642: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_080759B8 -_0807564A: - pop {r4, r5, pc} - - thumb_func_start sub_0807564C -sub_0807564C: @ 0x0807564C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075668 @ =gPlayerState - ldrb r1, [r5, #0x1b] - ldrb r0, [r5, #4] - orrs r0, r1 - cmp r0, #0 - bne _0807566C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _08075692 - .align 2, 0 -_08075668: .4byte gPlayerState -_0807566C: - adds r0, r4, #0 - bl sub_08077EC8 - cmp r0, #0 - bne _08075692 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _0807568A - ldrb r1, [r5, #0x1b] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075692 -_0807568A: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08075694 -_08075692: - pop {r4, r5, r6, pc} - - thumb_func_start sub_08075694 -sub_08075694: @ 0x08075694 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r3, #1 - strb r3, [r4, #7] - ldr r2, _080756C4 @ =gPlayerState - ldr r1, [r2, #0x30] - movs r0, #0x80 - lsls r0, r0, #0x14 - ands r0, r1 - cmp r0, #0 - beq _080756D0 - ldr r0, _080756C8 @ =0xF7FFFFFF - ands r1, r0 - ldr r0, _080756CC @ =0xFFFBFFFF - ands r1, r0 - str r1, [r2, #0x30] - movs r1, #0x96 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 - b _080756E0 - .align 2, 0 -_080756C4: .4byte gPlayerState -_080756C8: .4byte 0xF7FFFFFF -_080756CC: .4byte 0xFFFBFFFF -_080756D0: - adds r0, r2, #0 - adds r0, #0xab - strb r3, [r0] - movs r1, #0x92 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_080756E0: - ldr r2, _08075730 @ =gPlayerState - movs r0, #8 - asrs r0, r5 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r0, #4 - strb r0, [r4, #4] - movs r0, #6 - strb r0, [r4, #0xf] - ldr r0, _08075734 @ =gPlayerEntity - adds r0, #0x40 - movs r1, #0x1e - strb r1, [r0] - ldrb r1, [r2, #0x1b] - movs r0, #0x40 - orrs r0, r1 - movs r1, #0xdf - ands r0, r1 - strb r0, [r2, #0x1b] - adds r3, r2, #0 - adds r3, #0xa0 - ldrb r0, [r3] - cmp r0, #4 - bne _08075726 - ldr r0, [r2, #0x30] - movs r1, #0x80 - lsls r1, r1, #0xf - ands r0, r1 - cmp r0, #0 - bne _08075726 - movs r0, #1 - strb r0, [r3] - bl sub_0807A108 -_08075726: - movs r0, #0x76 - bl SoundReq - pop {r4, r5, pc} - .align 2, 0 -_08075730: .4byte gPlayerState -_08075734: .4byte gPlayerEntity - - thumb_func_start sub_08075738 -sub_08075738: @ 0x08075738 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075750 @ =gPlayerState - ldrb r0, [r5, #4] - cmp r0, #0 - bne _08075754 - adds r0, r4, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_08075750: .4byte gPlayerState -_08075754: - adds r0, r4, #0 - bl UpdateItemAnim - adds r0, r4, #0 - bl sub_08077F10 - cmp r0, #0 - beq _08075768 - movs r0, #2 - strb r0, [r4, #7] -_08075768: - ldrb r2, [r5, #0x1b] - movs r0, #0x10 - ands r0, r2 - cmp r0, #0 - beq _080757D4 - ldrb r1, [r5, #0xd] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - bne _08075780 - strb r1, [r4, #0xb] -_08075780: - ldr r1, _080757D0 @ =gPlayerEntity - ldrb r0, [r4, #0xb] - strb r0, [r1, #0x15] - movs r0, #0xc0 - lsls r0, r0, #1 - strh r0, [r1, #0x24] - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _0807588C - movs r2, #0xa - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #4 - ands r0, r1 - cmp r0, #0 - beq _080757AA - movs r2, #0xf -_080757AA: - ldrb r0, [r4, #8] - adds r0, #1 - strb r0, [r4, #8] - movs r1, #0xff - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r2, r0 - bls _080757C6 - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - ands r0, r1 - cmp r0, #0 - bne _0807588C -_080757C6: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _0807588C - .align 2, 0 -_080757D0: .4byte gPlayerEntity -_080757D4: - ldr r7, _08075890 @ =gPlayerEntity - adds r0, r7, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - movs r0, #0x80 - ands r0, r2 - cmp r0, #0 - bne _08075816 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x80 - lsls r0, r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075816 - adds r0, r4, #0 - movs r1, #0x14 - bl CreatePlayerBomb - adds r2, r0, #0 - cmp r2, #0 - beq _08075816 - ldrb r0, [r7, #0x14] - movs r1, #6 - ands r1, r0 - movs r0, #0x80 - orrs r1, r0 - strb r1, [r2, #0x14] -_08075816: - ldr r5, _08075890 @ =gPlayerEntity - adds r0, r5, #0 - adds r0, #0x5b - ldrb r1, [r0] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldr r2, _08075894 @ =gPlayerState - ldrb r3, [r2, #0x1b] - movs r0, #0x80 - ands r0, r3 - cmp r0, #0 - bne _0807587A - adds r0, r2, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _0807587A - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807587A - movs r0, #0x10 - orrs r0, r3 - strb r0, [r2, #0x1b] - adds r1, r2, #0 - adds r1, #0xab - movs r0, #6 - strb r0, [r1] - ldrb r0, [r5, #0x14] - lsls r0, r0, #2 - strb r0, [r4, #0xb] - movs r0, #1 - strb r0, [r4, #7] - strb r0, [r4, #8] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r2, #0xa] - bics r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x94 - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_0807587A: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _0807588C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_0807588C: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075890: .4byte gPlayerEntity -_08075894: .4byte gPlayerState - - thumb_func_start sub_08075898 -sub_08075898: @ 0x08075898 - push {lr} - adds r2, r0, #0 - ldr r0, _080758AC @ =gPlayerState - ldrb r0, [r0, #4] - cmp r0, #0 - bne _080758AA - adds r0, r2, #0 - bl sub_080759B8 -_080758AA: - pop {pc} - .align 2, 0 -_080758AC: .4byte gPlayerState - - thumb_func_start sub_080758B0 -sub_080758B0: @ 0x080758B0 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080758C4 @ =gPlayerState - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080758C8 - adds r0, r4, #0 - bl sub_080759B8 - b _080758F8 - .align 2, 0 -_080758C4: .4byte gPlayerState -_080758C8: - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _080758F8 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r1, [r5, #0x1b] - movs r0, #0x20 - ands r0, r1 - cmp r0, #0 - beq _080758EA - movs r0, #3 - b _080758EC -_080758EA: - movs r0, #5 -_080758EC: - strb r0, [r4, #4] - ldr r2, _080758FC @ =gPlayerState - ldrb r1, [r2, #0x1b] - movs r0, #0xf7 - ands r0, r1 - strb r0, [r2, #0x1b] -_080758F8: - pop {r4, r5, pc} - .align 2, 0 -_080758FC: .4byte gPlayerState - - thumb_func_start sub_08075900 -sub_08075900: @ 0x08075900 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075920 @ =gPlayerState - ldrb r0, [r5, #0x12] - cmp r0, #0x11 - bne _08075928 - ldr r0, [r5, #0x30] - ldr r1, _08075924 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 - b _080759B2 - .align 2, 0 -_08075920: .4byte gPlayerState -_08075924: .4byte 0xFFFBFFFF -_08075928: - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r5, #0x1b] - movs r2, #0x80 - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _08075948 - movs r0, #0xa0 - strb r0, [r5, #0x1b] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_0807564C - b _080759B2 -_08075948: - ldrb r0, [r4, #7] - cmp r0, #0 - beq _08075998 - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _08075962 - movs r1, #0x9a - lsls r1, r1, #1 - adds r0, r4, #0 - bl sub_08077DF4 -_08075962: - ldr r4, _08075990 @ =gPlayerEntity - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - lsls r0, r0, #3 - strb r0, [r4, #0x15] - movs r0, #0xc0 - lsls r0, r0, #2 - strh r0, [r4, #0x24] - bl sub_08079E08 - ldr r0, _08075994 @ =gScreenTransition - ldr r0, [r0] - movs r1, #3 - ands r0, r1 - cmp r0, #0 - bne _080759B2 - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFx - b _080759B2 - .align 2, 0 -_08075990: .4byte gPlayerEntity -_08075994: .4byte gScreenTransition -_08075998: - ldrb r1, [r4, #0xe] - adds r0, r2, #0 - ands r0, r1 - cmp r0, #0 - beq _080759B2 - ldr r0, [r5, #0x30] - ldr r1, _080759B4 @ =0xFFFBFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_080759B8 -_080759B2: - pop {r4, r5, r6, pc} - .align 2, 0 -_080759B4: .4byte 0xFFFBFFFF - - thumb_func_start sub_080759B8 -sub_080759B8: @ 0x080759B8 - push {r4, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldr r2, _080759E8 @ =gPlayerState - ldr r1, [r2, #0x30] - movs r0, #0x80 - ands r1, r0 - cmp r1, #0 - bne _080759D0 - ldr r0, _080759EC @ =gPlayerEntity - adds r0, #0x40 - strb r1, [r0] -_080759D0: - ldr r0, [r2, #0x30] - ldr r1, _080759F0 @ =0xF7FFFFFF - ands r0, r1 - str r0, [r2, #0x30] - movs r0, #0 - strb r0, [r2, #0x1b] - str r0, [r2, #0x2c] - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 - pop {r4, pc} - .align 2, 0 -_080759E8: .4byte gPlayerState -_080759EC: .4byte gPlayerEntity -_080759F0: .4byte 0xF7FFFFFF - - thumb_func_start ItemLantern -ItemLantern: @ 0x080759F4 - push {lr} - ldr r3, _08075A08 @ =gUnk_0811BD68 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075A08: .4byte gUnk_0811BD68 - - thumb_func_start sub_08075A0C -sub_08075A0C: @ 0x08075A0C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #1] - bl IsItemEquipped - adds r6, r0, #0 - ldr r1, _08075A64 @ =gPlayerState - ldrb r0, [r1, #5] - cmp r0, #0 - bne _08075A3E - ldrb r0, [r1, #0xc] - cmp r0, #0x18 - beq _08075A3E - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x2c] - cmp r0, #0 - bne _08075A3E - ldr r0, [r1, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075A6C -_08075A3E: - movs r0, #0xf - adds r1, r6, #0 - bl ForceEquipItem - ldr r0, _08075A64 @ =gPlayerState - ldr r1, [r0, #0x30] - ldr r2, _08075A68 @ =0xFF7FFFFF - ands r1, r2 - str r1, [r0, #0x30] - movs r0, #0xf - adds r1, r6, #0 - bl ForceEquipItem - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 - b _08075AD0 - .align 2, 0 -_08075A64: .4byte gPlayerState -_08075A68: .4byte 0xFF7FFFFF -_08075A6C: - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - bl sub_08077BD4 - ldr r5, _08075AD4 @ =gPlayerEntity - adds r0, r5, #0 - bl sub_0806F948 - movs r0, #0x10 - strb r0, [r4, #1] - adds r1, r6, #0 - bl ForceEquipItem - ldrb r1, [r5, #0x14] - movs r0, #6 - ands r0, r1 - ldr r1, _08075AD8 @ =gUnk_08126EEC - adds r4, r0, r1 - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - adds r2, r0, #0 - cmp r2, #0 - beq _08075AD0 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r4, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075AD0: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075AD4: .4byte gPlayerEntity -_08075AD8: .4byte gUnk_08126EEC - - thumb_func_start sub_08075ADC -sub_08075ADC: @ 0x08075ADC - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075B44 @ =gPlayerState - ldr r0, [r2, #0x2c] - cmp r0, #0 - bne _08075B08 - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B08 - ldr r0, [r2, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08075B08 - bl sub_08079D48 - cmp r0, #0 - bne _08075B4C -_08075B08: - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - ldr r3, _08075B44 @ =gPlayerState - ldr r0, [r3, #0x30] - movs r1, #0x80 - lsls r1, r1, #0x10 - orrs r0, r1 - str r0, [r3, #0x30] - movs r2, #8 - asrs r2, r5 - lsls r1, r2, #4 - orrs r1, r2 - ldrb r0, [r3, #4] - bics r0, r1 - strb r0, [r3, #4] - mvns r2, r2 - ldrb r1, [r3, #0xa] - adds r0, r2, #0 - ands r0, r1 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - ands r2, r0 - strb r2, [r3, #0xb] - ldr r0, _08075B48 @ =0x0000013D - bl SoundReq - b _08075B52 - .align 2, 0 -_08075B44: .4byte gPlayerState -_08075B48: .4byte 0x0000013D -_08075B4C: - adds r0, r4, #0 - bl UpdateItemAnim -_08075B52: - pop {r4, r5, pc} - - thumb_func_start sub_08075B54 -sub_08075B54: @ 0x08075B54 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r5, _08075BB0 @ =gPlayerState - ldr r0, [r5, #0x30] - movs r1, #0x88 - lsls r1, r1, #1 - ands r0, r1 - cmp r0, #0 - beq _08075B70 - b _08075C80 -_08075B70: - ldrb r0, [r6, #1] - bl IsItemEquipped - adds r4, r0, #0 - adds r0, r6, #0 - bl sub_08077F10 - cmp r0, #0 - bne _08075B86 - cmp r4, #1 - bls _08075BB8 -_08075B86: - ldrb r0, [r5, #2] - cmp r0, #0 - bne _08075BB8 - movs r0, #0xf - adds r1, r4, #0 - bl ForceEquipItem - ldr r0, [r5, #0x30] - ldr r1, _08075BB4 @ =0xFF7FFFFF - ands r0, r1 - str r0, [r5, #0x30] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - movs r0, #0x9f - lsls r0, r0, #1 - bl SoundReq - b _08075C80 - .align 2, 0 -_08075BB0: .4byte gPlayerState -_08075BB4: .4byte 0xFF7FFFFF -_08075BB8: - ldr r0, _08075C88 @ =gPlayerState - mov r8, r0 - ldrb r0, [r0, #0xc] - cmp r0, #0x18 - beq _08075C80 - ldr r5, _08075C8C @ =gPlayerEntity - ldrb r0, [r5, #0x1e] - cmp r0, #0x36 - bhi _08075C80 - ldrh r1, [r5, #0x12] - cmp r1, #6 - bne _08075C80 - ldrb r0, [r5, #0x14] - ands r1, r0 - ldr r0, _08075C90 @ =gUnk_08126EEC - adds r7, r1, r0 - mov r1, r8 - ldrb r0, [r1, #2] - cmp r0, #0 - bne _08075C80 - movs r2, #0x2e - ldrsh r0, [r5, r2] - movs r1, #0 - ldrsb r1, [r7, r1] - adds r0, r0, r1 - ldr r4, _08075C94 @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - asrs r0, r0, #4 - movs r3, #0x3f - ands r0, r3 - movs r2, #0x32 - ldrsh r1, [r5, r2] - movs r2, #1 - ldrsb r2, [r7, r2] - adds r1, r1, r2 - ldrh r2, [r4, #8] - subs r1, r1, r2 - asrs r1, r1, #4 - ands r1, r3 - lsls r1, r1, #6 - orrs r0, r1 - adds r1, r5, #0 - adds r1, #0x38 - ldrb r1, [r1] - movs r2, #0x40 - bl sub_080002F0 - cmp r0, #0 - beq _08075C80 - movs r0, #0xf - strb r0, [r6, #0xf] - ldrb r0, [r6, #4] - adds r0, #1 - strb r0, [r6, #4] - adds r1, r5, #0 - adds r1, #0x7a - movs r0, #2 - strh r0, [r1] - adds r0, r5, #0 - movs r1, #0x45 - movs r2, #1 - movs r3, #0 - bl CreateObjectWithParent - adds r2, r0, #0 - cmp r2, #0 - beq _08075C60 - adds r0, r5, #0 - adds r0, #0x60 - ldrh r1, [r0] - adds r0, r2, #0 - adds r0, #0x60 - strh r1, [r0] - movs r0, #0 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x2e] - adds r0, r0, r1 - strh r0, [r2, #0x2e] - movs r0, #1 - ldrsb r0, [r7, r0] - ldrh r1, [r2, #0x32] - adds r0, r0, r1 - strh r0, [r2, #0x32] -_08075C60: - ldr r1, _08075C98 @ =0x0000060C - adds r0, r6, #0 - bl sub_08077DF4 - movs r1, #8 - mov r2, sb - asrs r1, r2 - mov r0, r8 - ldrb r2, [r0, #0xa] - adds r0, r1, #0 - orrs r0, r2 - mov r2, r8 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_08075C80: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08075C88: .4byte gPlayerState -_08075C8C: .4byte gPlayerEntity -_08075C90: .4byte gUnk_08126EEC -_08075C94: .4byte gRoomControls -_08075C98: .4byte 0x0000060C - - thumb_func_start sub_08075C9C -sub_08075C9C: @ 0x08075C9C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - movs r0, #0x10 - ands r0, r1 - cmp r0, #0 - beq _08075CCA - ldr r0, _08075CF8 @ =gPlayerEntity - ldrb r1, [r0, #0x14] - movs r2, #6 - ands r2, r1 - ldr r1, _08075CFC @ =gUnk_08126EEC - adds r2, r2, r1 - movs r1, #0 - ldrsb r1, [r2, r1] - ldrb r2, [r2, #1] - lsls r2, r2, #0x18 - asrs r2, r2, #0x18 - bl sub_0807AB44 -_08075CCA: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075D04 - movs r0, #0 - strb r0, [r4, #0xf] - ldrb r0, [r4, #4] - subs r0, #1 - strb r0, [r4, #4] - ldr r2, _08075D00 @ =gPlayerState - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - ands r1, r0 - strb r1, [r2, #0xb] - b _08075D0E - .align 2, 0 -_08075CF8: .4byte gPlayerEntity -_08075CFC: .4byte gUnk_08126EEC -_08075D00: .4byte gPlayerState -_08075D04: - ldr r1, _08075D10 @ =gPlayerEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] -_08075D0E: - pop {r4, r5, pc} - .align 2, 0 -_08075D10: .4byte gPlayerEntity - - thumb_func_start ItemBoomerang -ItemBoomerang: @ 0x08075D14 - push {lr} - ldr r3, _08075D28 @ =gUnk_0811BD78 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075D28: .4byte gUnk_0811BD78 - - thumb_func_start sub_08075D2C -sub_08075D2C: @ 0x08075D2C - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08075D74 @ =gPlayerState - ldrb r1, [r5, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #1] - adds r0, r4, #0 - bl sub_08077C94 - cmp r0, #0 - bne _08075D7C - ldrb r1, [r4, #9] - movs r0, #0xf - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075D78 @ =gPlayerEntity - bl sub_0806F948 - adds r0, r4, #0 - movs r1, #0xb - bl sub_08077C0C - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077D38 - ldrb r1, [r5, #4] - movs r0, #8 - orrs r0, r1 - strb r0, [r5, #4] - b _08075D84 - .align 2, 0 -_08075D74: .4byte gPlayerState -_08075D78: .4byte gPlayerEntity -_08075D7C: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08075D84: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075D88 -sub_08075D88: @ 0x08075D88 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075DBC @ =gPlayerState - ldrb r1, [r2, #4] - movs r3, #0x80 - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - bne _08075DD0 - ldrb r0, [r4, #1] - cmp r0, #0xc - bne _08075DC0 - ldrb r1, [r2, #0xa] - adds r0, r3, #0 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - ldrb r1, [r4, #0xe] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08075DC0 - bl sub_08078F60 - b _08075DD8 - .align 2, 0 -_08075DBC: .4byte gPlayerState -_08075DC0: - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075DD8 -_08075DD0: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075DD8: - pop {r4, r5, pc} - .align 2, 0 - - thumb_func_start ItemBow -ItemBow: @ 0x08075DDC - push {lr} - ldr r3, _08075DF0 @ =gUnk_0811BD80 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075DF0: .4byte gUnk_0811BD80 - - thumb_func_start sub_08075DF4 -sub_08075DF4: @ 0x08075DF4 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r6, _08075E2C @ =gPlayerState - ldrb r1, [r6, #4] - movs r0, #8 - ands r0, r1 - cmp r0, #0 - bne _08075E34 - ldrb r1, [r4, #9] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r4, #9] - ldr r0, _08075E30 @ =gPlayerEntity - bl sub_0806F948 - adds r0, r4, #0 - bl sub_08077BB8 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #1 - strb r0, [r1] - b _08075E3C - .align 2, 0 -_08075E2C: .4byte gPlayerState -_08075E30: .4byte gPlayerEntity -_08075E34: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075E3C: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_08075E40 -sub_08075E40: @ 0x08075E40 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - ldr r0, _08075EA0 @ =gPlayerState - adds r1, r0, #0 - adds r1, #0x21 - ldrb r1, [r1] - adds r6, r0, #0 - cmp r1, #0 - beq _08075EA8 - ldrb r1, [r6, #4] - movs r5, #0x80 - adds r0, r5, #0 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r7, r0, #0x18 - cmp r7, #0 - bne _08075EA8 - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - adds r0, r5, #0 - ands r0, r1 - cmp r0, #0 - beq _08075EB8 - movs r0, #2 - strb r0, [r4, #4] - ldrb r1, [r4, #9] - movs r0, #0x7f - ands r0, r1 - strb r0, [r4, #9] - ldr r0, _08075EA4 @ =gSave - adds r0, #0xad - ldrb r0, [r0] - cmp r0, #0 - beq _08075EB8 - strb r7, [r4, #0xf] - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r0, [r6, #0xa] - bics r0, r1 - strb r0, [r6, #0xa] - b _08075EB8 - .align 2, 0 -_08075EA0: .4byte gPlayerState -_08075EA4: .4byte gSave -_08075EA8: - adds r1, r6, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - mov r1, r8 - bl sub_08077E78 -_08075EB8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_08075EC0 -sub_08075EC0: @ 0x08075EC0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r0, _08075F04 @ =gSave - adds r0, #0xad - ldrb r5, [r0] - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08075F0C - cmp r5, #0 - beq _08075F0C - ldr r2, _08075F08 @ =gPlayerState - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075EF0 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - bne _08075F32 -_08075EF0: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08075F32 - .align 2, 0 -_08075F04: .4byte gSave -_08075F08: .4byte gPlayerState -_08075F0C: - ldr r2, _08075F34 @ =gPlayerState - movs r0, #8 - asrs r0, r6 - ldrb r1, [r2, #0xa] - orrs r0, r1 - strb r0, [r2, #0xa] - movs r1, #0x9f - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - movs r1, #0xf - movs r0, #0xf - strb r0, [r4, #0xf] - ldrb r0, [r4, #9] - orrs r1, r0 - strb r1, [r4, #9] - movs r0, #3 - strb r0, [r4, #4] -_08075F32: - pop {r4, r5, r6, pc} - .align 2, 0 -_08075F34: .4byte gPlayerState - - thumb_func_start sub_08075F38 -sub_08075F38: @ 0x08075F38 - push {r4, lr} - adds r4, r0, #0 - adds r3, r1, #0 - ldr r2, _08075F6C @ =gPlayerState - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075F70 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075F70 - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - movs r0, #1 - ands r0, r1 - cmp r0, #0 - beq _08075F80 - movs r0, #4 - strb r0, [r4, #4] - b _08075F80 - .align 2, 0 -_08075F6C: .4byte gPlayerState -_08075F70: - adds r1, r2, #0 - adds r1, #0x21 - movs r0, #0 - strb r0, [r1] - adds r0, r4, #0 - adds r1, r3, #0 - bl sub_08077E78 -_08075F80: - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_08075F84 -sub_08075F84: @ 0x08075F84 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r2, _08075FB4 @ =gPlayerState - ldrb r1, [r2, #4] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08075FC8 - adds r0, r2, #0 - adds r0, #0x21 - ldrb r0, [r0] - cmp r0, #0 - beq _08075FC8 - movs r0, #0x70 - bl GetInventoryValue - cmp r0, #1 - bne _08075FB8 - adds r0, r4, #0 - movs r1, #5 - bl sub_08077E3C - b _08075FBE - .align 2, 0 -_08075FB4: .4byte gPlayerState -_08075FB8: - adds r0, r4, #0 - bl UpdateItemAnim -_08075FBE: - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08075FD8 -_08075FC8: - ldr r0, _08075FDC @ =gPlayerState - adds r0, #0x21 - movs r1, #0 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08075FD8: - pop {r4, r5, pc} - .align 2, 0 -_08075FDC: .4byte gPlayerState - - thumb_func_start ItemBomb -ItemBomb: @ 0x08075FE0 - push {lr} - ldr r3, _08075FF4 @ =gUnk_0811BD98 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_08075FF4: .4byte gUnk_0811BD98 - - thumb_func_start sub_08075FF8 -sub_08075FF8: @ 0x08075FF8 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r7, r1, #0 - ldr r0, _08076018 @ =gPlayerState - ldrb r1, [r0, #2] - ldrb r0, [r0, #4] - orrs r0, r1 - cmp r0, #0 - bne _08076076 - movs r5, #0 - movs r0, #8 - movs r1, #2 - movs r2, #2 - bl FindEntityByID - b _08076026 - .align 2, 0 -_08076018: .4byte gPlayerState -_0807601C: - adds r5, #1 - adds r0, r4, #0 - movs r1, #2 - bl FindNextDuplicateID -_08076026: - adds r4, r0, #0 - cmp r4, #0 - bne _0807601C - ldrb r0, [r6, #1] - movs r1, #1 - cmp r0, #7 - bne _08076036 - movs r1, #3 -_08076036: - cmp r1, r5 - bls _08076076 - adds r0, r6, #0 - movs r1, #2 - bl CreatePlayerBomb - adds r4, r0, #0 - cmp r4, #0 - beq _08076076 - ldr r0, _08076080 @ =gPlayerEntity - ldrb r2, [r0, #0x14] - movs r1, #6 - ands r1, r2 - ldr r2, _08076084 @ =gUnk_0811BDAC - adds r1, r1, r2 - movs r2, #0 - ldrsb r2, [r1, r2] - lsls r2, r2, #0x10 - movs r3, #1 - ldrsb r3, [r1, r3] - lsls r3, r3, #0x10 - adds r1, r4, #0 - bl PositionRelative - movs r0, #1 - rsbs r0, r0, #0 - bl ModBombs - movs r0, #0x82 - lsls r0, r0, #1 - bl SoundReq -_08076076: - adds r0, r6, #0 - adds r1, r7, #0 - bl sub_08077E78 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076080: .4byte gPlayerEntity -_08076084: .4byte gUnk_0811BDAC - - thumb_func_start sub_08076088 -sub_08076088: @ 0x08076088 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r3, r1, #0 - adds r5, r2, #0 - cmp r3, #0 - beq _080760AA - ldrb r0, [r3, #0x16] - movs r1, #1 - ands r1, r0 - cmp r1, #0 - beq _080760A4 - b _080761A0 -_080760A4: - movs r0, #2 - strb r0, [r3, #0xc] - strb r1, [r3, #0xd] -_080760AA: - str r3, [r4, #0x18] - ldr r0, _080760C4 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080760CC - ldr r1, _080760C8 @ =0x00000928 - adds r0, r4, #0 - bl sub_08077DF4 - b _080760D6 - .align 2, 0 -_080760C4: .4byte gPlayerState -_080760C8: .4byte 0x00000928 -_080760CC: - movs r1, #0xce - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080760D6: - ldr r3, _08076130 @ =gPlayerState - movs r0, #0 - mov r8, r0 - movs r7, #3 - strb r7, [r3, #5] - adds r0, r3, #0 - adds r0, #0xa8 - movs r6, #4 - strb r6, [r0] - movs r0, #2 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r2, _08076134 @ =gPlayerEntity - movs r1, #0x79 - adds r1, r1, r2 - mov ip, r1 - ldrb r1, [r1] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076138 - mov r1, r8 - mov r0, ip - strb r1, [r0] - ldrb r0, [r2, #0x10] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - strb r6, [r3, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r2, [r3, #0xb] - adds r0, r1, #0 - ands r0, r2 - strb r0, [r3, #0xb] - ldrb r0, [r3, #0xa] - ands r1, r0 - strb r1, [r3, #0xa] - strb r7, [r4, #4] - mov r0, r8 - strb r0, [r4, #0xf] - b _0807614A - .align 2, 0 -_08076130: .4byte gPlayerState -_08076134: .4byte gPlayerEntity -_08076138: - movs r1, #8 - asrs r1, r5 - ldrb r2, [r3, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r3, #0xa] - ldrb r0, [r3, #0xb] - orrs r1, r0 - strb r1, [r3, #0xb] -_0807614A: - adds r0, r4, #0 - movs r1, #0x13 - bl CreatePlayerBomb - adds r3, r0, #0 - cmp r3, #0 - bne _08076162 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _080761A0 -_08076162: - ldr r1, _08076194 @ =gPlayerEntity - str r3, [r1, #0x74] - movs r2, #0 - strb r2, [r1, #0xf] - ldr r0, [r4, #0x18] - str r0, [r3, #0x54] - ldrb r0, [r1, #0x16] - strb r0, [r3, #0x16] - str r4, [r3, #0x50] - str r3, [r4, #0x18] - ldrb r0, [r4, #3] - strb r0, [r3, #0xb] - ldrb r0, [r4, #7] - strb r0, [r3, #0xe] - ldrb r0, [r4, #8] - strb r0, [r3, #0xf] - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _08076198 - movs r0, #8 - strb r0, [r4, #7] - b _0807619A - .align 2, 0 -_08076194: .4byte gPlayerEntity -_08076198: - strb r2, [r4, #7] -_0807619A: - movs r0, #0x7f - bl SoundReq -_080761A0: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start ItemTryPickupObject -ItemTryPickupObject: @ 0x080761A8 - push {lr} - ldr r3, _080761BC @ =gUnk_0811BDB4 - ldrb r2, [r0, #4] - lsls r2, r2, #2 - adds r2, r2, r3 - ldr r2, [r2] - bl _call_via_r2 - pop {pc} - .align 2, 0 -_080761BC: .4byte gUnk_0811BDB4 - - thumb_func_start sub_080761C0 -sub_080761C0: @ 0x080761C0 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r6, r1, #0 - ldr r5, _08076220 @ =gPlayerState - ldrb r0, [r5, #4] - cmp r0, #0 - bne _080762B8 - ldrb r0, [r5, #2] - cmp r0, #0 - beq _080761DE - ldr r0, [r5, #0x30] - ldr r1, _08076224 @ =0x00001201 - ands r0, r1 - cmp r0, #0 - beq _080762B8 -_080761DE: - ldr r1, _08076228 @ =gPlayerEntity - ldrb r2, [r1, #0x14] - movs r0, #0x80 - orrs r0, r2 - strb r0, [r5, #1] - adds r1, #0x3d - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #8 - bgt _080762B8 - bl sub_080789A8 - adds r3, r0, #0 - cmp r3, #1 - beq _08076258 - cmp r3, #1 - blo _0807626E - cmp r3, #2 - bne _080762C0 - ldr r0, _0807622C @ =gUnk_03003BE0 - ldr r2, [r0, #8] - ldrb r1, [r2, #0x16] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _08076230 - adds r0, r4, #0 - adds r1, r2, #0 - adds r2, r6, #0 - bl sub_08076088 - b _080762C0 - .align 2, 0 -_08076220: .4byte gPlayerState -_08076224: .4byte 0x00001201 -_08076228: .4byte gPlayerEntity -_0807622C: .4byte gUnk_03003BE0 -_08076230: - str r2, [r4, #0x18] - strb r3, [r2, #0xc] - movs r1, #5 - strb r1, [r2, #0xd] - adds r0, r5, #0 - adds r0, #0xa8 - strb r1, [r0] - adds r0, r4, #0 - adds r1, r2, #0 - movs r2, #2 - adds r3, r6, #0 - bl sub_080762C4 - ldr r0, _08076254 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - b _08076264 - .align 2, 0 -_08076254: .4byte gUnk_0200AF00 -_08076258: - adds r0, r4, #0 - movs r1, #0 - movs r2, #1 - adds r3, r6, #0 - bl sub_080762C4 -_08076264: - movs r0, #0x81 - lsls r0, r0, #1 - bl SoundReq - b _080762C0 -_0807626E: - movs r0, #5 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #7] - movs r0, #6 - strb r0, [r4, #0xf] - movs r3, #8 - adds r1, r3, #0 - asrs r1, r6 - ldrb r2, [r5, #0xa] - adds r0, r1, #0 - orrs r0, r2 - strb r0, [r5, #0xa] - ldrb r0, [r5, #0xb] - orrs r1, r0 - strb r1, [r5, #0xb] - ldr r0, [r5, #0x30] - ands r0, r3 - cmp r0, #0 - bne _080762A2 - movs r1, #0xde - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - b _080762AA -_080762A2: - ldr r1, _080762B4 @ =0x00000948 - adds r0, r4, #0 - bl sub_08077DF4 -_080762AA: - movs r0, #0x88 - bl SoundReq - b _080762C0 - .align 2, 0 -_080762B4: .4byte 0x00000948 -_080762B8: - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077F50 -_080762C0: - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_080762C4 -sub_080762C4: @ 0x080762C4 - push {lr} - str r1, [r0, #0x18] - ldr r1, _080762D4 @ =gPlayerState - strb r2, [r1, #5] - adds r1, r3, #0 - bl sub_08077D38 - pop {pc} - .align 2, 0 -_080762D4: .4byte gPlayerState - - thumb_func_start sub_080762D8 -sub_080762D8: @ 0x080762D8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r4, _08076334 @ =gPlayerState - ldrb r0, [r4, #5] - movs r1, #0xcf - ands r1, r0 - strb r1, [r4, #5] - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F64 - cmp r0, #0 - bne _080762F6 - b _08076486 -_080762F6: - ldr r0, _08076338 @ =gPlayerEntity - adds r1, r0, #0 - adds r1, #0x3d - ldrb r1, [r1] - lsls r1, r1, #0x18 - asrs r1, r1, #0x18 - adds r3, r0, #0 - cmp r1, #8 - bgt _0807636C - adds r0, #0x42 - ldrb r0, [r0] - cmp r0, #0 - bne _0807636C - ldr r2, [r5, #0x18] - cmp r2, #0 - beq _08076340 - ldrh r1, [r2, #0xc] - ldr r0, _0807633C @ =0x00000502 - cmp r1, r0 - bne _08076376 - adds r0, r4, #0 - adds r0, #0x90 - ldrh r1, [r0] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076340 - movs r0, #6 - strb r0, [r2, #0xd] - b _08076376 - .align 2, 0 -_08076334: .4byte gPlayerState -_08076338: .4byte gPlayerEntity -_0807633C: .4byte 0x00000502 -_08076340: - ldr r2, _08076364 @ =gPlayerState - adds r1, r2, #0 - adds r1, #0xa8 - movs r0, #5 - strb r0, [r1] - ldr r0, _08076368 @ =gUnk_0200AF00 - adds r0, #0x2e - movs r1, #8 - strb r1, [r0] - ldrb r0, [r2, #2] - cmp r0, #0 - beq _0807635A - b _0807647E -_0807635A: - ldrb r0, [r2, #5] - cmp r0, #1 - bne _08076394 - b _08076380 - .align 2, 0 -_08076364: .4byte gPlayerState -_08076368: .4byte gUnk_0200AF00 -_0807636C: - ldr r1, [r5, #0x18] - cmp r1, #0 - beq _08076376 - movs r0, #6 - strb r0, [r1, #0xd] -_08076376: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 - b _08076486 -_08076380: - adds r0, r3, #0 - movs r1, #6 - adds r2, r5, #0 - bl sub_0800875A - cmp r0, #0 - beq _08076394 - adds r0, r5, #0 - movs r1, #0 - b _080763EC -_08076394: - ldr r1, _080763F4 @ =gUnk_0811BE38 - ldr r7, _080763F8 @ =gPlayerEntity - ldrb r0, [r7, #0x14] - lsrs r0, r0, #1 - lsls r3, r0, #1 - adds r1, r3, r1 - ldr r4, _080763FC @ =gPlayerState - adds r2, r4, #0 - adds r2, #0x90 - ldrh r0, [r1] - ldrh r2, [r2] - ands r0, r2 - cmp r0, #0 - beq _08076400 - adds r0, r5, #0 - bl UpdateItemAnim - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - movs r1, #0x94 - lsls r1, r1, #4 - cmp r0, #0 - bne _080763C8 - movs r1, #0xd0 - lsls r1, r1, #2 -_080763C8: - ldrh r0, [r5, #0x10] - cmp r1, r0 - beq _080763D4 - adds r0, r5, #0 - bl sub_08077DF4 -_080763D4: - ldrb r0, [r4, #5] - movs r1, #0x10 - orrs r1, r0 - strb r1, [r4, #5] - adds r2, r4, #0 - adds r2, #0xa8 - movs r0, #0x1a - strb r0, [r2] - cmp r1, #1 - beq _08076486 - ldr r1, [r5, #0x18] - adds r0, r5, #0 -_080763EC: - adds r2, r6, #0 - bl sub_08076088 - b _08076486 - .align 2, 0 -_080763F4: .4byte gUnk_0811BE38 -_080763F8: .4byte gPlayerEntity -_080763FC: .4byte gPlayerState -_08076400: - ldr r0, _08076418 @ =gUnk_0811BE40 - adds r0, r3, r0 - ldrh r0, [r0] - ands r0, r2 - cmp r0, #0 - beq _08076460 - ldrb r0, [r7, #0xf] - cmp r0, #5 - bhi _0807641C - adds r0, #1 - strb r0, [r7, #0xf] - b _08076486 - .align 2, 0 -_08076418: .4byte gUnk_0811BE40 -_0807641C: - ldrb r0, [r5, #0xa] - adds r1, r4, #0 - adds r1, #0x35 - strb r0, [r1] - ldrb r0, [r4, #6] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #6] - ldrb r1, [r4, #5] - movs r0, #0x20 - orrs r0, r1 - strb r0, [r4, #5] - adds r1, r4, #0 - adds r1, #0xa8 - movs r0, #0x19 - strb r0, [r1] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - ldr r1, _0807645C @ =0x0000093C - cmp r0, #0 - bne _0807644C - movs r1, #0xcf - lsls r1, r1, #2 -_0807644C: - ldrh r0, [r5, #0x10] - cmp r1, r0 - bne _08076476 - adds r0, r5, #0 - bl UpdateItemAnim - b _08076486 - .align 2, 0 -_0807645C: .4byte 0x0000093C -_08076460: - strb r0, [r7, #0xf] - ldr r0, [r4, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - bne _08076472 - movs r1, #0xd0 - lsls r1, r1, #2 - b _08076476 -_08076472: - movs r1, #0x94 - lsls r1, r1, #4 -_08076476: - adds r0, r5, #0 - bl sub_08077DF4 - b _08076486 -_0807647E: - adds r0, r5, #0 - adds r1, r6, #0 - bl sub_08077F50 -_08076486: - pop {r4, r5, r6, r7, pc} +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ - thumb_func_start sub_08076488 -sub_08076488: @ 0x08076488 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r4, #7] - adds r6, r0, #0 - cmp r6, #0 - bne _08076504 - adds r0, r4, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076508 - ldr r0, [r4, #0x18] - ldrb r1, [r0, #0x16] - movs r0, #0xf0 - ands r0, r1 - cmp r0, #0x10 - bne _080764B8 - ldr r0, _080764F8 @ =gScreenTransition - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _08076510 -_080764B8: - adds r0, r4, #0 - bl UpdateItemAnim - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076508 - ldr r2, _080764FC @ =gPlayerEntity - ldrb r1, [r2, #0x10] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x10] - ldr r2, _08076500 @ =gPlayerState - movs r0, #4 - strb r0, [r2, #5] - movs r1, #8 - asrs r1, r5 - mvns r1, r1 - ldrb r3, [r2, #0xb] - adds r0, r1, #0 - ands r0, r3 - strb r0, [r2, #0xb] - ldrb r0, [r2, #0xa] - ands r1, r0 - strb r1, [r2, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - strb r6, [r4, #0xf] - b _08076508 - .align 2, 0 -_080764F8: .4byte gScreenTransition -_080764FC: .4byte gPlayerEntity -_08076500: .4byte gPlayerState -_08076504: - subs r0, #1 - strb r0, [r4, #7] -_08076508: - ldr r0, _08076514 @ =gPlayerState - adds r0, #0xa8 - movs r1, #4 - strb r1, [r0] -_08076510: - pop {r4, r5, r6, pc} - .align 2, 0 -_08076514: .4byte gPlayerState - - thumb_func_start sub_08076518 -sub_08076518: @ 0x08076518 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - mov r8, r1 - bl sub_08077F64 - cmp r0, #0 - beq _080765D4 - ldr r5, _0807655C @ =gPlayerState - adds r1, r5, #0 - adds r1, #0xa8 - movs r0, #4 - strb r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080765D4 - ldrb r0, [r5, #0x1f] - cmp r0, #0 - bne _080765D4 - ldr r6, _08076560 @ =gPlayerEntity - adds r0, r6, #0 - adds r0, #0x42 - ldrb r7, [r0] - cmp r7, #0 - beq _08076564 - adds r0, r4, #0 - mov r1, r8 - bl sub_08077F50 - b _080765D4 - .align 2, 0 -_0807655C: .4byte gPlayerState -_08076560: .4byte gPlayerEntity -_08076564: - adds r0, r5, #0 - adds r0, #0x92 - ldrh r1, [r0] - ldr r0, _080765B0 @ =0x00008018 - ands r0, r1 - cmp r0, #0 - beq _080765D4 - adds r0, r6, #0 - bl sub_0806F948 - movs r0, #5 - strb r0, [r5, #5] - ldr r1, [r4, #0x18] - movs r0, #2 - strb r0, [r1, #0xd] - ldr r2, [r4, #0x18] - ldrb r1, [r6, #0x14] - movs r0, #0xe - ands r0, r1 - lsls r0, r0, #2 - strb r0, [r2, #0x15] - str r7, [r4, #0x18] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - movs r0, #0xf - strb r0, [r4, #0xf] - ldr r0, [r5, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _080765B4 - movs r1, #0x93 - lsls r1, r1, #4 - adds r0, r4, #0 - bl sub_08077DF4 - b _080765BE - .align 2, 0 -_080765B0: .4byte 0x00008018 -_080765B4: - movs r1, #0xd1 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 -_080765BE: - ldr r2, _080765DC @ =gPlayerState - movs r1, #8 - mov r0, r8 - asrs r1, r0 - ldrb r3, [r2, #0xa] - adds r0, r1, #0 - orrs r0, r3 - strb r0, [r2, #0xa] - ldrb r0, [r2, #0xb] - orrs r1, r0 - strb r1, [r2, #0xb] -_080765D4: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080765DC: .4byte gPlayerState + @ TODO convert .inc files into .s files and include them in linker.ld + .include "asm/item/itemDebug.inc" - thumb_func_start sub_080765E0 -sub_080765E0: @ 0x080765E0 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl sub_08077F64 - cmp r0, #0 - beq _08076608 - ldrb r1, [r4, #0xe] - movs r0, #0x80 - ands r0, r1 - cmp r0, #0 - beq _08076602 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077F50 - b _08076608 -_08076602: - adds r0, r4, #0 - bl UpdateItemAnim -_08076608: - pop {r4, r5, pc} - .align 2, 0 + .include "asm/item/itemSword.inc" - thumb_func_start sub_0807660C -sub_0807660C: @ 0x0807660C - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl UpdateItemAnim - ldrb r0, [r4, #7] - subs r0, #1 - strb r0, [r4, #7] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - beq _0807662C - ldr r0, _0807663C @ =gPlayerState - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0807663A -_0807662C: - ldr r1, _0807663C @ =gPlayerState - movs r0, #0 - strb r0, [r1, #1] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_0807663A: - pop {r4, r5, pc} - .align 2, 0 -_0807663C: .4byte gPlayerState + .include "asm/item/itemLantern.inc" - thumb_func_start ItemRocsCape -ItemRocsCape: @ 0x08076640 - push {r4, r5, lr} - adds r3, r0, #0 - adds r4, r1, #0 - ldrb r0, [r3, #4] - cmp r0, #0 - beq _08076654 - adds r0, r3, #0 - bl sub_08076758 - b _08076754 -_08076654: - ldr r0, _080766BC @ =gPlayerState - ldr r1, [r0, #0x2c] - adds r2, r0, #0 - cmp r1, #0 - bne _0807674C - ldrb r0, [r2, #1] - cmp r0, #0 - beq _080766C4 - ldrb r1, [r2, #4] - ldrb r0, [r2, #5] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r0, [r2, #0x12] - cmp r0, #0x12 - beq _08076678 - cmp r0, #1 - bne _08076686 -_08076678: - ldr r0, _080766C0 @ =gPlayerEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076686 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076686: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076694 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - bne _08076710 -_08076694: - ldr r5, _080766C0 @ =gPlayerEntity - ldr r0, [r5, #0x34] - cmp r0, #0 - blt _0807674C - movs r1, #0 - strb r1, [r2, #1] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] - strb r1, [r2, #0xb] - movs r0, #1 - strb r0, [r2, #2] - movs r0, #0xff - strb r0, [r2, #0xe] - str r1, [r2, #0x2c] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r5, #0x20] - b _0807673C - .align 2, 0 -_080766BC: .4byte gPlayerState -_080766C0: .4byte gPlayerEntity -_080766C4: - ldrb r0, [r2, #0x1b] - ldrb r1, [r2, #0xa] - orrs r0, r1 - ldrb r1, [r2, #4] - orrs r0, r1 - ldrb r1, [r2, #5] - orrs r0, r1 - ldrb r1, [r2, #0x1c] - orrs r0, r1 - adds r1, r2, #0 - adds r1, #0x3d - ldrb r1, [r1] - orrs r0, r1 - cmp r0, #0 - bne _0807674C - ldrb r1, [r2, #0x12] - adds r0, r1, #0 - subs r0, #0x12 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #1 - bls _080766F4 - cmp r1, #1 - bne _08076702 -_080766F4: - ldr r0, _0807671C @ =gPlayerEntity - ldr r0, [r0, #0x34] - cmp r0, #0 - bne _08076702 - ldrb r0, [r2, #0x14] - cmp r0, #0 - beq _0807674C -_08076702: - ldrb r1, [r2, #2] - cmp r1, #0 - beq _08076720 - movs r0, #7 - ands r0, r1 - cmp r0, #3 - beq _08076720 -_08076710: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08076758 - b _08076754 - .align 2, 0 -_0807671C: .4byte gPlayerEntity -_08076720: - ldr r1, _08076748 @ =gPlayerEntity - ldr r0, [r1, #0x34] - cmp r0, #0 - blt _0807674C - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r1, #0x20] - movs r1, #0 - movs r0, #1 - strb r0, [r2, #2] - str r1, [r2, #0x2c] - ldrb r0, [r3, #4] - adds r0, #1 - strb r0, [r3, #4] -_0807673C: - bl sub_08077F84 - movs r0, #0x78 - bl SoundReq - b _08076754 - .align 2, 0 -_08076748: .4byte gPlayerEntity -_0807674C: - adds r0, r3, #0 - adds r1, r4, #0 - bl sub_08077E78 -_08076754: - pop {r4, r5, pc} - .align 2, 0 + .include "asm/item/itemBoomerang.inc" - thumb_func_start sub_08076758 -sub_08076758: @ 0x08076758 - push {r4, r5, lr} - adds r4, r0, #0 - ldr r5, _080767C0 @ =gPlayerState - movs r0, #0 - strb r0, [r5, #0xe] - ldrb r2, [r5, #2] - movs r0, #0x28 - ands r0, r2 - cmp r0, #0 - bne _080767F8 - cmp r2, #0 - beq _080767F8 - movs r0, #7 - ands r0, r2 - cmp r0, #3 - beq _080767F8 - adds r0, r4, #0 - bl sub_08077EFC - cmp r0, #0 - beq _080767D8 - ldrb r0, [r4, #4] - cmp r0, #1 - bhi _080767C8 - ldr r2, _080767C4 @ =gPlayerEntity - ldr r0, [r2, #0x20] - cmp r0, #0 - bgt _080767FE - ldrb r3, [r5, #2] - movs r0, #0x10 - ands r0, r3 - cmp r0, #0 - bne _080767FE - movs r0, #2 - strb r0, [r4, #4] - adds r1, r2, #0 - adds r1, #0x7a - strh r0, [r1] - movs r0, #0x80 - lsls r0, r0, #0xa - str r0, [r2, #0x20] - movs r0, #0x10 - orrs r0, r3 - strb r0, [r5, #2] - movs r0, #0xa2 - lsls r0, r0, #2 - strh r0, [r5, #8] - movs r0, #0xb9 - lsls r0, r0, #1 - bl SoundReq - b _080767FE - .align 2, 0 -_080767C0: .4byte gPlayerState -_080767C4: .4byte gPlayerEntity -_080767C8: - ldr r1, _080767D4 @ =gPlayerEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - b _080767FE - .align 2, 0 -_080767D4: .4byte gPlayerEntity -_080767D8: - ldrb r0, [r4, #4] - cmp r0, #1 - bls _080767FE - ldr r1, _080767F4 @ =gPlayerEntity - adds r1, #0x7a - ldrh r0, [r1] - adds r0, #1 - strh r0, [r1] - ldrb r1, [r5, #2] - movs r0, #0xef - ands r0, r1 - strb r0, [r5, #2] - b _080767FE - .align 2, 0 -_080767F4: .4byte gPlayerEntity -_080767F8: - adds r0, r4, #0 - bl sub_08077E78 -_080767FE: - pop {r4, r5, pc} + .include "asm/item/itemBow.inc" - thumb_func_start ItemPegasusBoots -ItemPegasusBoots: @ 0x08076800 - push {r4, r5, r6, r7, lr} - mov r7, sb - mov r6, r8 - push {r6, r7} - adds r6, r0, #0 - mov sb, r1 - ldr r4, _0807682C @ =gPlayerEntity - adds r0, r4, #0 - adds r0, #0x7a - ldrh r0, [r0] - cmp r0, #0 - beq _08076834 - ldr r1, _08076830 @ =gPlayerState - movs r0, #0 - strb r0, [r1, #0x1e] - strb r0, [r1, #0xe] - adds r0, r6, #0 - mov r1, sb - bl sub_08077E78 - b _080768EC - .align 2, 0 -_0807682C: .4byte gPlayerEntity -_08076830: .4byte gPlayerState -_08076834: - ldrb r0, [r6, #7] - subs r0, #1 - strb r0, [r6, #7] - movs r1, #7 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _0807684A - movs r0, #0x7d - bl SoundReq -_0807684A: - ldr r2, _08076880 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r1, [r6, #7] - mov r0, r8 - ands r0, r1 - cmp r0, #0 - bne _080768DA - ldrb r0, [r2, #0x12] - cmp r0, #0x11 - bne _08076884 - adds r0, r4, #0 - adds r0, #0x63 - ldrb r0, [r0] - lsls r0, r0, #0x18 - asrs r0, r0, #0x18 - cmp r0, #0 - bne _080768DA - adds r0, r4, #0 - movs r1, #0x52 - movs r2, #0 - bl CreateFx - b _080768DA - .align 2, 0 -_08076880: .4byte gPlayerState -_08076884: - adds r0, r4, #0 - movs r1, #0x11 - movs r2, #0x40 - bl CreateFx - adds r5, r0, #0 - cmp r5, #0 - beq _080768DA - ldrh r0, [r5, #0x32] - adds r0, #2 - strh r0, [r5, #0x32] - ldrb r0, [r6, #4] - cmp r0, #2 - beq _080768DA - bl Random - adds r4, r0, #0 - movs r0, #3 - ands r4, r0 - bl Random - movs r7, #1 - ands r0, r7 - cmp r0, #0 - beq _080768B8 - rsbs r4, r4, #0 -_080768B8: - ldrh r0, [r5, #0x32] - adds r0, r0, r4 - strh r0, [r5, #0x32] - bl Random - adds r4, r0, #0 - mov r0, r8 - ands r4, r0 - bl Random - ands r0, r7 - cmp r0, #0 - beq _080768D4 - rsbs r4, r4, #0 -_080768D4: - ldrh r0, [r5, #0x2e] - adds r0, r0, r4 - strh r0, [r5, #0x2e] -_080768DA: - ldr r0, _080768F4 @ =gUnk_0811BDCC - ldrb r1, [r6, #4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldr r2, [r1] - adds r0, r6, #0 - mov r1, sb - bl _call_via_r2 -_080768EC: - pop {r3, r4} - mov r8, r3 - mov sb, r4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080768F4: .4byte gUnk_0811BDCC + .include "asm/item/itemBomb.inc" - thumb_func_start sub_080768F8 -sub_080768F8: @ 0x080768F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldr r3, _08076934 @ =gPlayerState - ldrb r1, [r3, #0x1c] - ldrb r0, [r3, #4] - orrs r1, r0 - ldrb r0, [r3, #5] - orrs r1, r0 - ldrb r0, [r3, #2] - orrs r1, r0 - ldr r2, [r3, #0x30] - movs r0, #0x80 - lsls r0, r0, #5 - ands r0, r2 - orrs r1, r0 - cmp r1, #0 - bne _08076954 - movs r0, #1 - strb r0, [r3, #0x1e] - adds r0, r3, #0 - adds r0, #0x21 - strb r1, [r0] - movs r0, #0x80 - ands r2, r0 - cmp r2, #0 - bne _08076938 - movs r0, #0x10 - strb r0, [r4, #7] - b _0807693C - .align 2, 0 -_08076934: .4byte gPlayerState -_08076938: - ldr r0, _08076950 @ =0x00000C14 - strh r0, [r3, #8] -_0807693C: - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077D38 - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08076964 - b _08076962 - .align 2, 0 -_08076950: .4byte 0x00000C14 -_08076954: - movs r0, #0 - strb r0, [r3, #0x1e] - strb r0, [r3, #0xe] - adds r0, r4, #0 - adds r1, r5, #0 - bl sub_08077E78 -_08076962: - pop {r4, r5, pc} + .include "asm/item/itemTryPickupObject.inc" - thumb_func_start sub_08076964 -sub_08076964: @ 0x08076964 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r4, r0, #0 - adds r6, r1, #0 - bl sub_08077EFC - cmp r0, #0 - bne _08076978 - b _08076A70 -_08076978: - ldr r0, _080769C4 @ =gPlayerEntity - ldr r7, [r0, #0x34] - cmp r7, #0 - bne _08076A70 - ldr r5, _080769C8 @ =gPlayerState - ldrb r0, [r5, #0x1e] - cmp r0, #0 - beq _08076A70 - adds r0, r4, #0 - bl UpdateItemAnim - ldr r0, [r5, #0x30] - movs r1, #0x80 - mov r8, r1 - ands r0, r1 - cmp r0, #0 - bne _080769A0 - adds r0, r4, #0 - bl UpdateItemAnim -_080769A0: - ldrb r0, [r5, #0x1e] - adds r0, #1 - strb r0, [r5, #0x1e] - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0x1e - bne _08076A7E - ldr r0, [r5, #0x30] - movs r1, #2 - ands r0, r1 - cmp r0, #0 - beq _080769CC - strb r7, [r5, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 - b _08076A7E - .align 2, 0 -_080769C4: .4byte gPlayerEntity -_080769C8: .4byte gPlayerState -_080769CC: - movs r0, #0x40 - strb r0, [r5, #0x1e] - movs r1, #8 - asrs r1, r6 - ldrb r0, [r5, #0xa] - bics r0, r1 - strb r0, [r5, #0xa] - ldrb r0, [r4, #4] - adds r0, #1 - strb r0, [r4, #4] - bl sub_0807A158 - cmp r0, #0 - beq _08076A46 - ldr r0, [r5, #0x30] - mov r1, r8 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r0, r5, #0 - adds r0, #0xac - ldrh r1, [r0] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _08076A46 - adds r0, r5, #0 - adds r0, #0xab - movs r1, #3 - strb r1, [r0] - movs r1, #0xa6 - lsls r1, r1, #2 - adds r0, r4, #0 - bl sub_08077DF4 - adds r0, r4, #0 - movs r1, #0xc - bl CreatePlayerBomb - adds r5, r0, #0 - cmp r5, #0 - beq _08076A70 - ldr r6, _08076A34 @ =gSave - adds r4, r6, #0 - adds r4, #0xb4 - ldrb r0, [r4] - bl sub_0805449C - cmp r0, #0 - beq _08076A38 - ldrb r1, [r4] - b _08076A3E - .align 2, 0 -_08076A34: .4byte gSave -_08076A38: - adds r0, r6, #0 - adds r0, #0xb5 - ldrb r1, [r0] -_08076A3E: - adds r0, r5, #0 - adds r0, #0x68 - strb r1, [r0] - b _08076A7E -_08076A46: - ldr r0, _08076A5C @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076A60 - adds r1, #0x84 - adds r0, r4, #0 - bl sub_08077DF4 - b _08076A7E - .align 2, 0 -_08076A5C: .4byte gPlayerState -_08076A60: - ldr r1, _08076A6C @ =gPlayerState - movs r0, #0xc1 - lsls r0, r0, #4 - strh r0, [r1, #8] - b _08076A7E - .align 2, 0 -_08076A6C: .4byte gPlayerState -_08076A70: - ldr r1, _08076A84 @ =gPlayerState - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r6, #0 - bl sub_08077E78 -_08076A7E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076A84: .4byte gPlayerState + .include "asm/item/itemRocsCape.inc" - thumb_func_start sub_08076A88 -sub_08076A88: @ 0x08076A88 - push {r4, r5, r6, r7, lr} - adds r4, r0, #0 - adds r7, r1, #0 - bl sub_08077EFC - cmp r0, #0 - beq _08076B64 - ldr r1, _08076AB4 @ =gPlayerState - ldrb r0, [r1, #0x1e] - adds r3, r1, #0 - cmp r0, #0 - beq _08076B64 - ldr r0, [r3, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _08076ABC - ldr r1, _08076AB8 @ =gPlayerEntity - movs r0, #0xc0 - lsls r0, r0, #2 - b _08076AC2 - .align 2, 0 -_08076AB4: .4byte gPlayerState -_08076AB8: .4byte gPlayerEntity -_08076ABC: - ldr r1, _08076B00 @ =gPlayerEntity - movs r0, #0xa0 - lsls r0, r0, #2 -_08076AC2: - strh r0, [r1, #0x24] - adds r5, r1, #0 - ldr r1, _08076B04 @ =gUnk_0800275C - ldrb r2, [r5, #0x14] - movs r6, #0xe - adds r0, r6, #0 - ands r0, r2 - lsls r0, r0, #3 - adds r0, r0, r1 - ldrh r1, [r0] - ldrh r0, [r5, #0x2a] - ands r0, r1 - cmp r1, r0 - bne _08076B0E - ldrb r0, [r4, #8] - cmp r0, #0 - beq _08076B08 - movs r2, #0 - movs r0, #6 - strb r0, [r5, #0xc] - strb r2, [r5, #0xd] - ldrb r1, [r5, #0x10] - movs r0, #0x7f - ands r0, r1 - strb r0, [r5, #0x10] - adds r0, r3, #0 - adds r0, #0x38 - strb r2, [r0] - movs r0, #0xff - strb r0, [r3, #0xd] - b _08076B72 - .align 2, 0 -_08076B00: .4byte gPlayerEntity -_08076B04: .4byte gUnk_0800275C -_08076B08: - movs r0, #1 - strb r0, [r4, #8] - b _08076B72 -_08076B0E: - ldr r1, _08076B60 @ =gUnk_0811BE38 - movs r0, #0xfe - ands r0, r2 - adds r0, r0, r1 - adds r1, r3, #0 - adds r1, #0x90 - ldrh r2, [r0] - ldrh r0, [r1] - ands r0, r2 - cmp r0, #0 - bne _08076B64 - ldrb r0, [r4, #0xa] - adds r1, r6, #0 - ands r1, r0 - lsls r0, r1, #2 - strb r0, [r4, #0xb] - ldrb r2, [r3, #0xd] - cmp r2, #0xff - beq _08076B52 - cmp r2, r0 - beq _08076B52 - adds r0, r2, #0 - ldrb r1, [r4, #0xb] - subs r0, r0, r1 - movs r2, #0x1f - ands r0, r2 - cmp r0, #0xf - bgt _08076B4A - adds r0, r1, #2 - strb r0, [r4, #0xb] -_08076B4A: - ldrb r0, [r4, #0xb] - subs r0, #1 - ands r0, r2 - strb r0, [r4, #0xb] -_08076B52: - ldrb r0, [r4, #0xb] - strb r0, [r3, #0xd] - adds r0, r4, #0 - bl UpdateItemAnim - b _08076B72 - .align 2, 0 -_08076B60: .4byte gUnk_0811BE38 -_08076B64: - ldr r1, _08076B74 @ =gPlayerState - movs r0, #0 - strb r0, [r1, #0x1e] - adds r0, r4, #0 - adds r1, r7, #0 - bl sub_08077E78 -_08076B72: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08076B74: .4byte gPlayerState + .include "asm/item/itemPegasusBoots.inc" |
