From 63038b4c6bf6de73e489b4395ae0a67a0f92a3b3 Mon Sep 17 00:00:00 2001 From: Ibot02 Date: Fri, 15 Jan 2021 17:57:02 +0100 Subject: [PATCH] code_0807DF74.c: ok ExecuteScriptCommandSet and functions in gUnk_0811E524. --- asm/code_0807CC3C.s | 5757 ------------------------------------------ asm/code_0807F0D8.s | 3251 ++++++++++++++++++++++++ data/data_0811E454.s | 954 ------- data/data_0811E750.s | 956 +++++++ include/functions.h | 4 +- include/player.h | 6 +- include/textbox.h | 1 + linker.ld | 4 + src/code_0807DF74.c | 1263 +++++++++ 9 files changed, 5480 insertions(+), 6716 deletions(-) create mode 100644 asm/code_0807F0D8.s create mode 100644 data/data_0811E750.s create mode 100644 src/code_0807DF74.c diff --git a/asm/code_0807CC3C.s b/asm/code_0807CC3C.s index c38f3a9e..fa09e5b8 100644 --- a/asm/code_0807CC3C.s +++ b/asm/code_0807CC3C.s @@ -2214,5760 +2214,3 @@ sub_0807DF50: @ 0x0807DF50 .align 2, 0 _0807DF6C: .4byte gUnk_02034490 _0807DF70: .4byte gUnk_0200AF00 - - thumb_func_start ExecuteScriptCommandSet -ExecuteScriptCommandSet: @ 0x0807DF74 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - mov r8, r0 - adds r5, r1, #0 - ldr r0, [r5] - cmp r0, #0 - beq _0807DFE8 - ldrh r0, [r5, #0x10] - adds r1, r0, #0 - cmp r1, #0 - beq _0807DF92 - subs r0, #1 - strh r0, [r5, #0x10] - b _0807DFE8 -_0807DF92: - ldr r6, _0807DFF0 @ =gUnk_02033280 - strb r1, [r6, #7] -_0807DF96: - ldr r0, [r5] - bl GetNextScriptCommandHalfword - adds r1, r0, #0 - ldr r0, _0807DFF4 @ =0x0000FFFF - cmp r1, r0 - beq _0807DFE8 - lsrs r0, r1, #0xa - strb r0, [r6, #6] - ldr r2, _0807DFF8 @ =0x000003FF - adds r0, r2, #0 - ands r1, r0 - movs r7, #0 - strh r1, [r6, #4] - ldr r4, [r5] - ldrb r1, [r6, #7] - movs r0, #0xfe - ands r0, r1 - strb r0, [r6, #7] - ldr r1, _0807DFFC @ =gUnk_0811E524 - ldrh r0, [r6, #4] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r2, [r0] - mov r0, r8 - adds r1, r5, #0 - bl _call_via_r2 - ldrb r1, [r6, #6] - lsls r1, r1, #1 - ldr r0, [r5] - adds r0, r0, r1 - str r0, [r5] - cmp r4, r0 - beq _0807DFDE - strb r7, [r5, #0x18] -_0807DFDE: - ldrb r1, [r6, #7] - movs r0, #3 - ands r0, r1 - cmp r0, #0 - bne _0807DF96 -_0807DFE8: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807DFF0: .4byte gUnk_02033280 -_0807DFF4: .4byte 0x0000FFFF -_0807DFF8: .4byte 0x000003FF -_0807DFFC: .4byte gUnk_0811E524 - - thumb_func_start nullsub_507 -nullsub_507: @ 0x0807E000 - bx lr - .align 2, 0 - - thumb_func_start sub_0807E004 -sub_0807E004: @ 0x0807E004 - ldr r2, _0807E010 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #2 - orrs r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E010: .4byte gUnk_02033280 - - thumb_func_start sub_0807E014 -sub_0807E014: @ 0x0807E014 - ldr r2, _0807E020 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #0xfd - ands r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E020: .4byte gUnk_02033280 - - thumb_func_start sub_0807E024 -sub_0807E024: @ 0x0807E024 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - adds r0, #2 - str r0, [r4] - bl GetNextScriptCommandHalfword - lsls r0, r0, #0x10 - asrs r1, r0, #0x10 - lsrs r0, r0, #0x1f - adds r1, r1, r0 - asrs r1, r1, #1 - lsls r1, r1, #1 - ldr r0, [r4] - adds r0, r0, r1 - str r0, [r4] - ldr r1, _0807E04C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - pop {r4, pc} - .align 2, 0 -_0807E04C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E050 -sub_0807E050: @ 0x0807E050 - push {lr} - adds r2, r0, #0 - ldr r0, [r1, #0x14] - cmp r0, #0 - beq _0807E060 - adds r0, r2, #0 - bl sub_0807E024 -_0807E060: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E064 -sub_0807E064: @ 0x0807E064 - push {lr} - adds r2, r0, #0 - ldr r0, [r1, #0x14] - cmp r0, #0 - bne _0807E074 - adds r0, r2, #0 - bl sub_0807E024 -_0807E074: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E078 -sub_0807E078: @ 0x0807E078 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldr r0, _0807E09C @ =gUnk_02033280 - ldrb r0, [r0, #6] - ldr r1, [r2, #4] - cmp r0, r1 - bls _0807E098 - lsls r1, r1, #1 - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807E024 -_0807E098: - pop {pc} - .align 2, 0 -_0807E09C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E0A0 -sub_0807E0A0: @ 0x0807E0A0 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - str r0, [r4] - ldr r1, _0807E0B4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - pop {r4, pc} - .align 2, 0 -_0807E0B4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E0B8 -sub_0807E0B8: @ 0x0807E0B8 - push {lr} - adds r2, r0, #0 - ldr r0, [r1, #0x14] - cmp r0, #0 - beq _0807E0C8 - adds r0, r2, #0 - bl sub_0807E0A0 -_0807E0C8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E0CC -sub_0807E0CC: @ 0x0807E0CC - push {lr} - adds r2, r0, #0 - ldr r0, [r1, #0x14] - cmp r0, #0 - bne _0807E0DC - adds r0, r2, #0 - bl sub_0807E0A0 -_0807E0DC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E0E0 -sub_0807E0E0: @ 0x0807E0E0 - push {r4, lr} - adds r4, r0, #0 - adds r2, r1, #0 - ldr r0, _0807E108 @ =gUnk_02033280 - ldrb r1, [r0, #6] - ldr r3, [r2, #4] - lsls r0, r3, #1 - adds r0, #1 - cmp r1, r0 - bls _0807E104 - lsls r1, r3, #2 - ldr r0, [r2] - adds r0, r0, r1 - str r0, [r2] - adds r0, r4, #0 - adds r1, r2, #0 - bl sub_0807E0A0 -_0807E104: - pop {r4, pc} - .align 2, 0 -_0807E108: .4byte gUnk_02033280 - - thumb_func_start sub_0807E10C -sub_0807E10C: @ 0x0807E10C - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - adds r2, r0, #0 - adds r0, r5, #0 - adds r1, r4, #0 - bl _call_via_r2 - pop {r4, r5, pc} - - thumb_func_start sub_0807E124 -sub_0807E124: @ 0x0807E124 - push {r4, r5, r6, lr} - adds r6, r0, #0 - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - adds r5, r0, #0 - ldr r0, [r4] - adds r0, #6 - bl GetNextScriptCommandWord - str r0, [r4, #4] - adds r0, r6, #0 - adds r1, r4, #0 - bl _call_via_r5 - pop {r4, r5, r6, pc} - .align 2, 0 - - thumb_func_start sub_0807E148 -sub_0807E148: @ 0x0807E148 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - bl LoadRoomEntityList - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E158 -sub_0807E158: @ 0x0807E158 - push {r4, r5, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - adds r2, r0, #0 - movs r5, #0 - ldr r3, _0807E184 @ =gUnk_02033280 - ldr r1, [r3] - adds r0, r1, #0 - ands r0, r2 - cmp r0, r2 - bne _0807E174 - movs r5, #1 -_0807E174: - str r5, [r4, #0x14] - bics r1, r2 - str r1, [r3] - ldrb r1, [r3, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r3, #7] - pop {r4, r5, pc} - .align 2, 0 -_0807E184: .4byte gUnk_02033280 - - thumb_func_start sub_0807E188 -sub_0807E188: @ 0x0807E188 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandHalfwordAfterCommandMetadata - cmp r0, #0x51 - beq _0807E1B4 - cmp r0, #0x51 - bhi _0807E1A0 - cmp r0, #0x50 - beq _0807E1BA - b _0807E1C0 -_0807E1A0: - cmp r0, #0x52 - beq _0807E1AE - cmp r0, #0x53 - bne _0807E1C0 - bl sub_08052734 - b _0807E1C4 -_0807E1AE: - bl sub_08052764 - b _0807E1C4 -_0807E1B4: - bl sub_0805279C - b _0807E1C4 -_0807E1BA: - bl sub_080527CC - b _0807E1C4 -_0807E1C0: - bl GetInventoryValue -_0807E1C4: - str r0, [r4, #0x14] - ldr r2, _0807E1D4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E1D4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E1D8 -sub_0807E1D8: @ 0x0807E1D8 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl GetInventoryValue - movs r1, #0 - cmp r0, #2 - bne _0807E1EC - movs r1, #1 -_0807E1EC: - str r1, [r4, #0x14] - ldr r2, _0807E1FC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E1FC: .4byte gUnk_02033280 - - thumb_func_start sub_0807E200 -sub_0807E200: @ 0x0807E200 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl CheckLocalFlag - str r0, [r4, #0x14] - ldr r2, _0807E21C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E21C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E220 -sub_0807E220: @ 0x0807E220 - push {r4, lr} - adds r4, r1, #0 - ldr r1, [r4] - ldrh r0, [r1, #2] - ldrh r1, [r1, #4] - bl CheckLocalFlagByOffset - str r0, [r4, #0x14] - ldr r2, _0807E23C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E23C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E240 -sub_0807E240: @ 0x0807E240 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandHalfwordAfterCommandMetadata - bl CheckGlobalFlag - str r0, [r4, #0x14] - ldr r2, _0807E25C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E25C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E260 -sub_0807E260: @ 0x0807E260 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl CheckRoomFlag - str r0, [r4, #0x14] - ldr r2, _0807E27C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E27C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E280 -sub_0807E280: @ 0x0807E280 - push {r4, lr} - adds r4, r1, #0 - ldr r1, [r4] - ldrh r2, [r1, #6] - lsrs r3, r2, #8 - movs r0, #0xff - ands r2, r0 - ldrh r0, [r1, #2] - ldrh r1, [r1, #4] - bl CheckPlayerInRegion - str r0, [r4, #0x14] - ldr r2, _0807E2A4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E2A4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E2A8 -sub_0807E2A8: @ 0x0807E2A8 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - adds r6, r1, #0 - ldr r0, [r6] - ldrh r3, [r0, #2] - ldrb r2, [r0, #2] - lsrs r3, r3, #8 - movs r1, #0x2e - ldrsh r0, [r5, r1] - ldr r4, _0807E2DC @ =gRoomControls - ldrh r1, [r4, #6] - subs r0, r0, r1 - movs r7, #0x32 - ldrsh r1, [r5, r7] - ldrh r4, [r4, #8] - subs r1, r1, r4 - bl CheckPlayerInRegion - str r0, [r6, #0x14] - ldr r2, _0807E2E0 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807E2DC: .4byte gRoomControls -_0807E2E0: .4byte gUnk_02033280 - - thumb_func_start sub_0807E2E4 -sub_0807E2E4: @ 0x0807E2E4 - push {lr} - adds r2, r0, #0 - adds r2, #0x39 - movs r0, #0 - ldrsb r0, [r2, r0] - cmp r0, #0 - beq _0807E2F8 - movs r0, #0 - strb r0, [r2] - movs r0, #1 -_0807E2F8: - str r0, [r1, #0x14] - ldr r2, _0807E308 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E308: .4byte gUnk_02033280 - - thumb_func_start sub_0807E30C -sub_0807E30C: @ 0x0807E30C - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r1, [r4, #0x1a] - movs r0, #0xf - ands r0, r1 - cmp r0, #0 - bne _0807E348 - ldr r0, _0807E374 @ =gPlayerState - ldr r0, [r0, #0x30] - movs r1, #0x80 - ands r0, r1 - cmp r0, #0 - bne _0807E348 - ldr r6, _0807E378 @ =gPlayerEntity - adds r0, r5, #0 - adds r1, r6, #0 - movs r2, #0x28 - movs r3, #0x28 - bl sub_080041A0 - cmp r0, #0 - beq _0807E348 - adds r0, r5, #0 - adds r1, r6, #0 - bl GetFacingDirection - bl sub_0806F5B0 - strb r0, [r5, #0x14] -_0807E348: - ldrb r0, [r4, #0x1a] - adds r0, #1 - strb r0, [r4, #0x1a] - adds r1, r5, #0 - adds r1, #0x39 - movs r0, #0 - ldrsb r0, [r1, r0] - cmp r0, #0 - beq _0807E37C - movs r0, #0 - strb r0, [r1] - movs r0, #1 - str r0, [r4, #0x14] - ldr r1, _0807E378 @ =gPlayerEntity - adds r0, r5, #0 - bl GetFacingDirection - bl sub_0806F5B0 - strb r0, [r5, #0x14] - b _0807E37E - .align 2, 0 -_0807E374: .4byte gPlayerState -_0807E378: .4byte gPlayerEntity -_0807E37C: - str r0, [r4, #0x14] -_0807E37E: - ldr r2, _0807E38C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807E38C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E390 -sub_0807E390: @ 0x0807E390 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, [r2] - ldr r1, _0807E3B4 @ =gUnk_02002A40 - adds r1, #0xc0 - ldrh r0, [r0, #2] - ldrh r1, [r1] - cmp r0, r1 - bhi _0807E3A6 - movs r3, #1 -_0807E3A6: - str r3, [r2, #0x14] - ldr r2, _0807E3B8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E3B4: .4byte gUnk_02002A40 -_0807E3B8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E3BC -sub_0807E3BC: @ 0x0807E3BC - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, [r2] - ldr r1, _0807E3E0 @ =gUnk_02002A40 - adds r1, #0xc2 - ldrh r0, [r0, #2] - ldrh r1, [r1] - cmp r0, r1 - bhi _0807E3D2 - movs r3, #1 -_0807E3D2: - str r3, [r2, #0x14] - ldr r2, _0807E3E4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E3E0: .4byte gUnk_02002A40 -_0807E3E4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E3E8 -sub_0807E3E8: @ 0x0807E3E8 - push {lr} - movs r2, #0 - ldr r0, _0807E404 @ =gUnk_02000040 - ldrb r0, [r0, #1] - cmp r0, #0 - bne _0807E3F6 - movs r2, #1 -_0807E3F6: - str r2, [r1, #0x14] - ldr r2, _0807E408 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E404: .4byte gUnk_02000040 -_0807E408: .4byte gUnk_02033280 - - thumb_func_start sub_0807E40C -sub_0807E40C: @ 0x0807E40C - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl CheckKinstoneFused - str r0, [r4, #0x14] - ldr r2, _0807E428 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E428: .4byte gUnk_02033280 - - thumb_func_start sub_0807E42C -sub_0807E42C: @ 0x0807E42C - push {r4, r5, r6, lr} - adds r5, r1, #0 - ldr r0, [r5] - ldrh r4, [r0, #2] - ldrh r6, [r0, #4] - cmp r4, #0 - bne _0807E440 - ldr r0, _0807E480 @ =gRoomVars - ldrb r4, [r0, #6] - ldrb r6, [r0, #7] -_0807E440: - adds r0, r4, #0 - bl sub_08053FE0 - adds r2, r0, #0 - movs r1, #0 - ldr r0, _0807E484 @ =gUnk_02002A40 - adds r0, #0xc0 - ldrh r0, [r0] - cmp r2, r0 - bgt _0807E456 - movs r1, #1 -_0807E456: - str r1, [r5, #0x14] - cmp r1, #0 - beq _0807E474 - rsbs r0, r2, #0 - bl ModRupees - adds r0, r4, #0 - adds r1, r6, #0 - movs r2, #0 - bl sub_080A7C18 - ldr r1, _0807E480 @ =gRoomVars - movs r0, #0 - strb r0, [r1, #6] - strb r0, [r1, #7] -_0807E474: - ldr r2, _0807E488 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807E480: .4byte gRoomVars -_0807E484: .4byte gUnk_02002A40 -_0807E488: .4byte gUnk_02033280 - - thumb_func_start sub_0807E48C -sub_0807E48C: @ 0x0807E48C - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl sub_080544DC - str r0, [r4, #0x14] - ldr r2, _0807E4A8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E4A8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E4AC -sub_0807E4AC: @ 0x0807E4AC - ldr r0, _0807E4C4 @ =gRoomVars - ldrb r2, [r0, #6] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - str r0, [r1, #0x14] - ldr r2, _0807E4C8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E4C4: .4byte gRoomVars -_0807E4C8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E4CC -sub_0807E4CC: @ 0x0807E4CC - ldr r0, [r1] - ldrh r0, [r0, #2] - ldr r2, [r1, #4] - ands r2, r0 - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - str r0, [r1, #0x14] - ldr r2, _0807E4E8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E4E8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E4EC -sub_0807E4EC: @ 0x0807E4EC - push {lr} - adds r2, r1, #0 - ldr r0, [r2] - ldrh r1, [r0, #2] - movs r3, #0 - ldr r0, [r2, #4] - ands r0, r1 - cmp r1, r0 - bne _0807E500 - movs r3, #1 -_0807E500: - str r3, [r2, #0x14] - ldr r2, _0807E510 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E510: .4byte gUnk_02033280 - - thumb_func_start sub_0807E514 -sub_0807E514: @ 0x0807E514 - push {lr} - adds r2, r1, #0 - ldr r0, [r2] - ldrh r1, [r0, #2] - movs r3, #0 - ldr r0, [r2, #4] - cmp r1, r0 - bne _0807E526 - movs r3, #1 -_0807E526: - str r3, [r2, #0x14] - ldr r2, _0807E534 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E534: .4byte gUnk_02033280 - - thumb_func_start sub_0807E538 -sub_0807E538: @ 0x0807E538 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r1, _0807E55C @ =gPlayerState - ldr r1, [r1, #0x30] - ands r0, r1 - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - str r1, [r4, #0x14] - ldr r2, _0807E560 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807E55C: .4byte gPlayerState -_0807E560: .4byte gUnk_02033280 - - thumb_func_start sub_0807E564 -sub_0807E564: @ 0x0807E564 - ldr r0, _0807E57C @ =gPlayerState - ldr r0, [r0, #0x30] - lsrs r0, r0, #7 - movs r2, #1 - ands r0, r2 - str r0, [r1, #0x14] - ldr r2, _0807E580 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E57C: .4byte gPlayerState -_0807E580: .4byte gUnk_02033280 - - thumb_func_start sub_0807E584 -sub_0807E584: @ 0x0807E584 - ldr r2, [r0, #0x34] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - str r0, [r1, #0x14] - ldr r2, _0807E59C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - bx lr - .align 2, 0 -_0807E59C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E5A0 -sub_0807E5A0: @ 0x0807E5A0 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, [r2] - ldr r1, _0807E5C4 @ =gPlayerEntity - ldrh r0, [r0, #2] - ldrb r1, [r1, #0xc] - cmp r0, r1 - bne _0807E5B4 - movs r3, #1 -_0807E5B4: - str r3, [r2, #0x14] - ldr r2, _0807E5C8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E5C4: .4byte gPlayerEntity -_0807E5C8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E5CC -sub_0807E5CC: @ 0x0807E5CC - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, [r2] - ldr r1, _0807E5F0 @ =gPlayerEntity - ldrh r0, [r0, #2] - ldrb r1, [r1, #0x14] - cmp r0, r1 - bne _0807E5E0 - movs r3, #1 -_0807E5E0: - str r3, [r2, #0x14] - ldr r2, _0807E5F4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807E5F0: .4byte gPlayerEntity -_0807E5F4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E5F8 -sub_0807E5F8: @ 0x0807E5F8 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r2, _0807E60C @ =gUnk_02033280 - ldr r1, [r2] - orrs r1, r0 - str r1, [r2] - pop {pc} - .align 2, 0 -_0807E60C: .4byte gUnk_02033280 - - thumb_func_start sub_0807E610 -sub_0807E610: @ 0x0807E610 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r2, _0807E624 @ =gUnk_02033280 - ldr r1, [r2] - bics r1, r0 - str r1, [r2] - pop {pc} - .align 2, 0 -_0807E624: .4byte gUnk_02033280 - - thumb_func_start sub_0807E628 -sub_0807E628: @ 0x0807E628 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl SetLocalFlag - pop {pc} - - thumb_func_start sub_0807E634 -sub_0807E634: @ 0x0807E634 - push {lr} - ldr r1, [r1] - ldrh r0, [r1, #2] - ldrh r1, [r1, #4] - bl SetLocalFlagByOffset - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E644 -sub_0807E644: @ 0x0807E644 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl ClearLocalFlag - pop {pc} - - thumb_func_start sub_0807E650 -sub_0807E650: @ 0x0807E650 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl SetGlobalFlag - pop {pc} - - thumb_func_start sub_0807E65C -sub_0807E65C: @ 0x0807E65C - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl ClearGlobalFlag - pop {pc} - - thumb_func_start sub_0807E668 -sub_0807E668: @ 0x0807E668 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl SetRoomFlag - pop {pc} - - thumb_func_start sub_0807E674 -sub_0807E674: @ 0x0807E674 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl ClearRoomFlag - pop {pc} - - thumb_func_start sub_0807E680 -sub_0807E680: @ 0x0807E680 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandHalfwordAfterCommandMetadata - strh r0, [r4, #0x10] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807E690 -sub_0807E690: @ 0x0807E690 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r2, _0807E6A8 @ =gUnk_02033280 - ldr r1, [r2] - ands r1, r0 - cmp r1, r0 - beq _0807E6A6 - movs r0, #0 - strb r0, [r2, #6] -_0807E6A6: - pop {pc} - .align 2, 0 -_0807E6A8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E6AC -sub_0807E6AC: @ 0x0807E6AC - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r3, _0807E6C8 @ =gUnk_02033280 - ldr r2, [r3] - adds r1, r2, #0 - ands r1, r0 - cmp r1, r0 - beq _0807E6CC - movs r0, #0 - strb r0, [r3, #6] - b _0807E6D8 - .align 2, 0 -_0807E6C8: .4byte gUnk_02033280 -_0807E6CC: - bics r2, r1 - str r2, [r3] - ldrb r1, [r3, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r3, #7] -_0807E6D8: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E6DC -sub_0807E6DC: @ 0x0807E6DC - push {lr} - ldr r0, _0807E6F0 @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #8 - bne _0807E6F8 - ldr r1, _0807E6F4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _0807E6FC - .align 2, 0 -_0807E6F0: .4byte gPlayerEntity -_0807E6F4: .4byte gUnk_02033280 -_0807E6F8: - movs r0, #0x2d - strh r0, [r1, #0x10] -_0807E6FC: - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E700 -sub_0807E700: @ 0x0807E700 - push {lr} - ldr r0, _0807E718 @ =gPlayerEntity - ldrb r0, [r0, #0xc] - cmp r0, #0x17 - beq _0807E720 - ldr r2, _0807E71C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807E726 - .align 2, 0 -_0807E718: .4byte gPlayerEntity -_0807E71C: .4byte gUnk_02033280 -_0807E720: - ldr r1, _0807E728 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807E726: - pop {pc} - .align 2, 0 -_0807E728: .4byte gUnk_02033280 - - thumb_func_start sub_0807E72C -sub_0807E72C: @ 0x0807E72C - push {lr} - ldr r0, _0807E744 @ =gRoomControls - ldrb r1, [r0, #0xf] - movs r0, #4 - ands r0, r1 - cmp r0, #0 - beq _0807E74C - ldr r1, _0807E748 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _0807E756 - .align 2, 0 -_0807E744: .4byte gRoomControls -_0807E748: .4byte gUnk_02033280 -_0807E74C: - ldr r2, _0807E758 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] -_0807E756: - pop {pc} - .align 2, 0 -_0807E758: .4byte gUnk_02033280 - - thumb_func_start sub_0807E75C -sub_0807E75C: @ 0x0807E75C - push {lr} - ldr r0, _0807E770 @ =gFadeControl - ldrb r0, [r0] - cmp r0, #0 - beq _0807E76C - ldr r1, _0807E774 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807E76C: - pop {pc} - .align 2, 0 -_0807E770: .4byte gFadeControl -_0807E774: .4byte gUnk_02033280 - - thumb_func_start sub_0807E778 -sub_0807E778: @ 0x0807E778 - ldr r2, _0807E784 @ =gUnk_02033280 - ldr r0, [r1] - ldrh r0, [r0, #2] - strb r0, [r2, #8] - bx lr - .align 2, 0 -_0807E784: .4byte gUnk_02033280 - - thumb_func_start sub_0807E788 -sub_0807E788: @ 0x0807E788 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r1, _0807E798 @ =gFadeControl - str r0, [r1, #4] - pop {pc} - .align 2, 0 -_0807E798: .4byte gFadeControl - - thumb_func_start sub_0807E79C -sub_0807E79C: @ 0x0807E79C - push {lr} - ldr r0, _0807E7A8 @ =gUnk_02033280 - ldrb r0, [r0, #8] - bl sub_080500F4 - pop {pc} - .align 2, 0 -_0807E7A8: .4byte gUnk_02033280 - - thumb_func_start nullsub_508 -nullsub_508: @ 0x0807E7AC - bx lr - .align 2, 0 - - thumb_func_start sub_0807E7B0 -sub_0807E7B0: @ 0x0807E7B0 - push {lr} - ldr r0, _0807E7C0 @ =gUnk_02033280 - ldrb r1, [r0, #8] - movs r0, #4 - bl DoFade - pop {pc} - .align 2, 0 -_0807E7C0: .4byte gUnk_02033280 - - thumb_func_start sub_0807E7C4 -sub_0807E7C4: @ 0x0807E7C4 - push {lr} - ldr r0, _0807E7D4 @ =gUnk_02033280 - ldrb r1, [r0, #8] - movs r0, #5 - bl DoFade - pop {pc} - .align 2, 0 -_0807E7D4: .4byte gUnk_02033280 - - thumb_func_start sub_0807E7D8 -sub_0807E7D8: @ 0x0807E7D8 - push {lr} - ldr r0, _0807E7E8 @ =gUnk_02033280 - ldrb r1, [r0, #8] - movs r0, #6 - bl DoFade - pop {pc} - .align 2, 0 -_0807E7E8: .4byte gUnk_02033280 - - thumb_func_start sub_0807E7EC -sub_0807E7EC: @ 0x0807E7EC - push {lr} - ldr r0, _0807E7FC @ =gUnk_02033280 - ldrb r1, [r0, #8] - movs r0, #7 - bl DoFade - pop {pc} - .align 2, 0 -_0807E7FC: .4byte gUnk_02033280 - - thumb_func_start sub_0807E800 -sub_0807E800: @ 0x0807E800 - push {lr} - movs r0, #0x10 - bl sub_0807E818 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E80C -sub_0807E80C: @ 0x0807E80C - push {lr} - movs r0, #0x11 - bl sub_0807E818 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E818 -sub_0807E818: @ 0x0807E818 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r2, _0807E83C @ =gRoomControls - ldr r3, [r2, #0x30] - cmp r3, #0 - beq _0807E840 - movs r0, #0x2e - ldrsh r1, [r3, r0] - movs r4, #0xa - ldrsh r0, [r2, r4] - subs r4, r1, r0 - movs r0, #0x32 - ldrsh r1, [r3, r0] - movs r3, #0xc - ldrsh r0, [r2, r3] - subs r1, r1, r0 - b _0807E844 - .align 2, 0 -_0807E83C: .4byte gRoomControls -_0807E840: - movs r4, #0x78 - movs r1, #0x50 -_0807E844: - ldr r0, _0807E854 @ =gUnk_02033280 - ldrb r3, [r0, #8] - adds r0, r4, #0 - adds r2, r5, #0 - bl sub_08050110 - pop {r4, r5, pc} - .align 2, 0 -_0807E854: .4byte gUnk_02033280 - - thumb_func_start sub_0807E858 -sub_0807E858: @ 0x0807E858 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl sub_08050038 - pop {pc} - - thumb_func_start sub_0807E864 -sub_0807E864: @ 0x0807E864 - push {lr} - ldr r0, _0807E874 @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - bl sub_08078B48 - pop {pc} - .align 2, 0 -_0807E874: .4byte gPlayerState - - thumb_func_start sub_0807E878 -sub_0807E878: @ 0x0807E878 - ldr r0, _0807E884 @ =gPlayerState - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - bx lr - .align 2, 0 -_0807E884: .4byte gPlayerState - - thumb_func_start sub_0807E888 -sub_0807E888: @ 0x0807E888 - ldr r0, _0807E894 @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - bx lr - .align 2, 0 -_0807E894: .4byte gPlayerState - - thumb_func_start sub_0807E898 -sub_0807E898: @ 0x0807E898 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - ldr r3, _0807E8C0 @ =gPlayerState - strb r0, [r3, #0xc] - lsrs r2, r0, #8 - adds r1, r3, #0 - adds r1, #0x38 - strb r2, [r1] - lsrs r1, r0, #0x10 - adds r2, r3, #0 - adds r2, #0x39 - strb r1, [r2] - lsrs r0, r0, #0x18 - adds r1, r3, #0 - adds r1, #0x3a - strb r0, [r1] - pop {pc} - .align 2, 0 -_0807E8C0: .4byte gPlayerState - - thumb_func_start sub_0807E8C4 -sub_0807E8C4: @ 0x0807E8C4 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - bl StartPlayerScript - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807E8D4 -sub_0807E8D4: @ 0x0807E8D4 - ldr r2, _0807E8E0 @ =gPlayerState - ldr r0, [r1] - ldrh r0, [r0, #2] - strh r0, [r2, #8] - bx lr - .align 2, 0 -_0807E8E0: .4byte gPlayerState - - thumb_func_start sub_0807E8E4 -sub_0807E8E4: @ 0x0807E8E4 - ldr r0, _0807E8FC @ =gUnk_08016984 - ldrh r0, [r0] - ldr r2, _0807E900 @ =0x000003FF - ands r2, r0 - ldr r3, _0807E904 @ =gPlayerEntity - ldr r0, [r1] - ldrh r0, [r0] - subs r0, r0, r2 - lsls r0, r0, #1 - strb r0, [r3, #0x14] - bx lr - .align 2, 0 -_0807E8FC: .4byte gUnk_08016984 -_0807E900: .4byte 0x000003FF -_0807E904: .4byte gPlayerEntity - - thumb_func_start sub_0807E908 -sub_0807E908: @ 0x0807E908 - ldr r1, [r1] - ldrh r1, [r1, #2] - movs r2, #0 - strb r1, [r0, #0xc] - strb r2, [r0, #0xd] - bx lr - - thumb_func_start sub_0807E914 -sub_0807E914: @ 0x0807E914 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - bl GetNextScriptCommandWordAfterCommandMetadata - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807E924 -sub_0807E924: @ 0x0807E924 - adds r0, #0x5a - ldrb r2, [r0] - str r2, [r1, #4] - movs r1, #0 - strb r1, [r0] - bx lr - - thumb_func_start sub_0807E930 -sub_0807E930: @ 0x0807E930 - push {lr} - ldr r3, [r1] - ldrh r2, [r3, #2] - adds r1, r0, #0 - adds r1, #0x80 - strh r2, [r1] - ldrh r1, [r3, #2] - bl InitAnimationForceUpdate - pop {pc} - - thumb_func_start sub_0807E944 -sub_0807E944: @ 0x0807E944 - push {lr} - adds r2, r0, #0 - adds r2, #0x39 - movs r1, #0 - ldrsb r1, [r2, r1] - cmp r1, #0 - beq _0807E968 - movs r0, #0 - strb r0, [r2] - ldr r2, _0807E964 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807E96C - .align 2, 0 -_0807E964: .4byte gUnk_02033280 -_0807E968: - ldr r0, _0807E970 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807E96C: - pop {pc} - .align 2, 0 -_0807E970: .4byte gUnk_02033280 - - thumb_func_start sub_0807E974 -sub_0807E974: @ 0x0807E974 - push {lr} - adds r2, r1, #0 - ldrb r1, [r2, #0x18] - cmp r1, #0 - beq _0807E990 - cmp r1, #1 - beq _0807E9AE - ldrb r0, [r2, #0x19] - subs r0, #1 - strb r0, [r2, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - beq _0807E9C8 - b _0807E9C2 -_0807E990: - adds r3, r0, #0 - adds r3, #0x39 - movs r0, #0 - ldrsb r0, [r3, r0] - cmp r0, #0 - beq _0807E9C2 - strb r1, [r3] - ldrb r0, [r2, #0x18] - adds r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - bl TextboxNoOverlapFollow - b _0807E9C2 -_0807E9AE: - ldr r0, _0807E9CC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - bne _0807E9C2 - movs r0, #2 - strb r0, [r2, #0x18] - movs r0, #0xf - strb r0, [r2, #0x19] -_0807E9C2: - ldr r1, _0807E9D0 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807E9C8: - pop {pc} - .align 2, 0 -_0807E9CC: .4byte gTextBox -_0807E9D0: .4byte gUnk_02033280 - - thumb_func_start sub_0807E9D4 -sub_0807E9D4: @ 0x0807E9D4 - push {lr} - bl sub_08078778 - pop {pc} - - thumb_func_start sub_0807E9DC -sub_0807E9DC: @ 0x0807E9DC - push {lr} - bl sub_080788E0 - pop {pc} - - thumb_func_start sub_0807E9E4 -sub_0807E9E4: @ 0x0807E9E4 - push {lr} - ldr r1, [r1] - ldrh r1, [r1, #2] - bl sub_08078784 - pop {pc} - - thumb_func_start sub_0807E9F0 -sub_0807E9F0: @ 0x0807E9F0 - push {r4, lr} - adds r4, r1, #0 - bl sub_0801E00C - movs r2, #1 - ldr r0, _0807EA18 @ =gUnk_02022740 - ldrb r0, [r0] - cmp r0, #1 - beq _0807EA24 - cmp r0, #2 - bne _0807EA40 - ldr r0, _0807EA1C @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - ldr r0, _0807EA20 @ =gUnk_02034490 - strb r2, [r0] - str r2, [r4, #0x14] - b _0807EA28 - .align 2, 0 -_0807EA18: .4byte gUnk_02022740 -_0807EA1C: .4byte gPlayerState -_0807EA20: .4byte gUnk_02034490 -_0807EA24: - movs r0, #0 - str r0, [r4, #0x14] -_0807EA28: - cmp r2, #0 - beq _0807EA40 - bl sub_0807919C - ldr r0, _0807EA3C @ =gPlayerState - adds r0, #0x8b - movs r1, #1 - strb r1, [r0] - b _0807EA46 - .align 2, 0 -_0807EA3C: .4byte gPlayerState -_0807EA40: - ldr r1, _0807EA48 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EA46: - pop {r4, pc} - .align 2, 0 -_0807EA48: .4byte gUnk_02033280 - - thumb_func_start sub_0807EA4C -sub_0807EA4C: @ 0x0807EA4C - push {r4, lr} - adds r1, r0, #0 - adds r4, r1, #0 - adds r4, #0x39 - movs r0, #0 - ldrsb r0, [r4, r0] - cmp r0, #2 - bne _0807EA7C - adds r0, r1, #0 - movs r1, #0 - movs r2, #0 - movs r3, #0 - bl sub_0801DFB4 - movs r0, #0 - strb r0, [r4] - ldr r2, _0807EA78 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807EA82 - .align 2, 0 -_0807EA78: .4byte gUnk_02033280 -_0807EA7C: - ldr r1, _0807EA84 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EA82: - pop {r4, pc} - .align 2, 0 -_0807EA84: .4byte gUnk_02033280 - - thumb_func_start sub_0807EA88 -sub_0807EA88: @ 0x0807EA88 - push {lr} - ldr r1, [r1] - ldrh r1, [r1, #2] - bl sub_08078790 - pop {pc} - - thumb_func_start sub_0807EA94 -sub_0807EA94: @ 0x0807EA94 - push {lr} - ldr r0, _0807EAAC @ =gTextBox - ldrb r1, [r0] - movs r0, #0x7f - ands r0, r1 - cmp r0, #0 - beq _0807EAA8 - ldr r1, _0807EAB0 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EAA8: - pop {pc} - .align 2, 0 -_0807EAAC: .4byte gTextBox -_0807EAB0: .4byte gUnk_02033280 - - thumb_func_start sub_0807EAB4 -sub_0807EAB4: @ 0x0807EAB4 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl TextboxNoOverlapFollow - pop {pc} - - thumb_func_start sub_0807EAC0 -sub_0807EAC0: @ 0x0807EAC0 - push {lr} - adds r2, r0, #0 - ldr r0, [r1] - ldrh r0, [r0, #2] - adds r1, r2, #0 - bl TextboxNoOverlap - pop {pc} - - thumb_func_start sub_0807EAD0 -sub_0807EAD0: @ 0x0807EAD0 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl TextboxNoOverlapFollow - ldr r1, _0807EAEC @ =gTextBox - movs r0, #1 - strb r0, [r1, #6] - ldr r0, [r4] - ldrh r0, [r0, #4] - strb r0, [r1, #7] - pop {r4, pc} - .align 2, 0 -_0807EAEC: .4byte gTextBox - - thumb_func_start sub_0807EAF0 -sub_0807EAF0: @ 0x0807EAF0 - push {lr} - ldr r0, _0807EB0C @ =gUnk_02033280 - ldrb r0, [r0, #6] - ldr r2, [r1, #4] - cmp r0, r2 - bls _0807EB10 - lsls r0, r2, #1 - ldr r1, [r1] - adds r1, r1, r0 - ldrh r0, [r1, #2] - bl TextboxNoOverlapFollow - b _0807EB16 - .align 2, 0 -_0807EB0C: .4byte gUnk_02033280 -_0807EB10: - movs r0, #0 - bl TextboxNoOverlapFollow -_0807EB16: - pop {pc} - - thumb_func_start sub_0807EB18 -sub_0807EB18: @ 0x0807EB18 - push {lr} - adds r2, r0, #0 - ldr r0, [r1, #4] - adds r1, r2, #0 - bl TextboxNoOverlap - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807EB28 -sub_0807EB28: @ 0x0807EB28 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - movs r1, #0 - bl sub_08078AA8 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807EB38 -sub_0807EB38: @ 0x0807EB38 - ldr r0, _0807EB40 @ =gUnk_02000040 - ldrb r0, [r0, #1] - str r0, [r1, #4] - bx lr - .align 2, 0 -_0807EB40: .4byte gUnk_02000040 - - thumb_func_start sub_0807EB44 -sub_0807EB44: @ 0x0807EB44 - ldr r1, [r1] - ldrh r1, [r1, #2] - strb r1, [r0, #0x14] - bx lr - - thumb_func_start sub_0807EB4C -sub_0807EB4C: @ 0x0807EB4C - push {r4, lr} - adds r4, r0, #0 - ldr r2, [r1] - ldrh r1, [r2, #2] - ldr r3, _0807EB70 @ =gRoomControls - ldrh r0, [r3, #6] - adds r1, r1, r0 - ldrh r2, [r2, #4] - ldrh r0, [r3, #8] - adds r2, r2, r0 - adds r0, r4, #0 - bl sub_080045B4 - bl sub_0806F5B0 - strb r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_0807EB70: .4byte gRoomControls - - thumb_func_start sub_0807EB74 -sub_0807EB74: @ 0x0807EB74 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807EB88 @ =gPlayerEntity - bl GetFacingDirection - bl sub_0806F5B0 - strb r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_0807EB88: .4byte gPlayerEntity - - thumb_func_start sub_0807EB8C -sub_0807EB8C: @ 0x0807EB8C - push {r4, lr} - adds r1, r0, #0 - ldr r4, _0807EBA4 @ =gPlayerEntity - adds r0, r4, #0 - bl GetFacingDirection - bl sub_0806F5B0 - movs r1, #0xfe - ands r0, r1 - strb r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 -_0807EBA4: .4byte gPlayerEntity - - thumb_func_start sub_0807EBA8 -sub_0807EBA8: @ 0x0807EBA8 - ldr r1, [r1] - ldrh r1, [r1, #2] - strb r1, [r0, #0x15] - bx lr - - thumb_func_start sub_0807EBB0 -sub_0807EBB0: @ 0x0807EBB0 - ldr r1, [r1] - ldrh r1, [r1, #2] - strb r1, [r0, #0x15] - ldrb r1, [r0, #0x15] - lsrs r1, r1, #2 - strb r1, [r0, #0x14] - bx lr - .align 2, 0 - - thumb_func_start sub_0807EBC0 -sub_0807EBC0: @ 0x0807EBC0 - ldr r1, [r1] - ldrh r1, [r1, #2] - strh r1, [r0, #0x24] - bx lr - - thumb_func_start sub_0807EBC8 -sub_0807EBC8: @ 0x0807EBC8 - push {r4, lr} - adds r4, r0, #0 - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - str r0, [r4, #0x20] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807EBD8 -sub_0807EBD8: @ 0x0807EBD8 - push {r4, lr} - ldr r3, _0807EBF0 @ =gRoomControls - ldr r2, [r1] - ldrh r1, [r2, #2] - ldrh r4, [r3, #6] - adds r1, r1, r4 - strh r1, [r0, #0x2e] - ldrh r1, [r2, #4] - ldrh r3, [r3, #8] - adds r1, r1, r3 - strh r1, [r0, #0x32] - pop {r4, pc} - .align 2, 0 -_0807EBF0: .4byte gRoomControls - - thumb_func_start sub_0807EBF4 -sub_0807EBF4: @ 0x0807EBF4 - ldr r2, [r1] - ldrh r1, [r2, #2] - ldrh r3, [r0, #0x2e] - adds r1, r1, r3 - strh r1, [r0, #0x2e] - ldrh r1, [r2, #4] - ldrh r2, [r0, #0x32] - adds r1, r1, r2 - strh r1, [r0, #0x32] - bx lr - - thumb_func_start sub_0807EC08 -sub_0807EC08: @ 0x0807EC08 - push {lr} - adds r1, r0, #0 - ldr r0, _0807EC14 @ =gPlayerEntity - bl CopyPosition - pop {pc} - .align 2, 0 -_0807EC14: .4byte gPlayerEntity - - thumb_func_start nullsub_509 -nullsub_509: @ 0x0807EC18 - bx lr - .align 2, 0 - - thumb_func_start sub_0807EC1C -sub_0807EC1C: @ 0x0807EC1C - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807EC3A - movs r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - strh r0, [r2, #0x12] - ldr r0, [r2, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #8] -_0807EC3A: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807EC44 - pop {pc} - - thumb_func_start sub_0807EC44 -sub_0807EC44: @ 0x0807EC44 - push {r4, lr} - adds r4, r1, #0 - bl sub_0806F69C - ldrh r0, [r4, #0x12] - subs r0, #1 - strh r0, [r4, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - beq _0807EC5E - ldr r1, _0807EC60 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EC5E: - pop {r4, pc} - .align 2, 0 -_0807EC60: .4byte gUnk_02033280 - - thumb_func_start sub_0807EC64 -sub_0807EC64: @ 0x0807EC64 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807EC88 - movs r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - movs r1, #0 - strh r0, [r2, #0x12] - strb r1, [r3, #0x14] - strb r1, [r3, #0x15] - ldr r0, [r2, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #8] -_0807EC88: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807EC44 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807EC94 -sub_0807EC94: @ 0x0807EC94 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807ECB8 - movs r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - strh r0, [r2, #0x12] - movs r1, #2 - strb r1, [r3, #0x14] - movs r0, #8 - strb r0, [r3, #0x15] - ldr r0, [r2, #8] - orrs r0, r1 - str r0, [r2, #8] -_0807ECB8: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807EC44 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807ECC4 -sub_0807ECC4: @ 0x0807ECC4 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807ECEA - movs r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - strh r0, [r2, #0x12] - movs r0, #4 - strb r0, [r3, #0x14] - movs r0, #0x10 - strb r0, [r3, #0x15] - ldr r0, [r2, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #8] -_0807ECEA: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807EC44 - pop {pc} - - thumb_func_start sub_0807ECF4 -sub_0807ECF4: @ 0x0807ECF4 - push {lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807ED1A - movs r0, #1 - strb r0, [r2, #0x18] - ldr r0, [r2] - ldrh r0, [r0, #2] - strh r0, [r2, #0x12] - movs r0, #6 - strb r0, [r3, #0x14] - movs r0, #0x18 - strb r0, [r3, #0x15] - ldr r0, [r2, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r2, #8] -_0807ED1A: - adds r0, r3, #0 - adds r1, r2, #0 - bl sub_0807EC44 - pop {pc} - - thumb_func_start sub_0807ED24 -sub_0807ED24: @ 0x0807ED24 - push {r4, r5, r6, r7, lr} - adds r7, r0, #0 - adds r6, r1, #0 - ldrb r0, [r6, #0x18] - cmp r0, #0 - bne _0807ED90 - movs r0, #1 - strb r0, [r6, #0x18] - ldr r4, [r6] - ldrh r0, [r4, #6] - strh r0, [r6, #0x12] - ldrh r2, [r4, #2] - movs r1, #0x2e - ldrsh r0, [r7, r1] - ldr r5, _0807ED8C @ =gRoomControls - ldrh r1, [r5, #6] - subs r0, r0, r1 - subs r0, r2, r0 - lsls r0, r0, #0x10 - ldrh r1, [r6, #0x12] - bl __divsi3 - str r0, [r6, #0x1c] - ldrh r2, [r4, #4] - movs r3, #0x32 - ldrsh r0, [r7, r3] - ldrh r1, [r5, #8] - subs r0, r0, r1 - subs r0, r2, r0 - lsls r0, r0, #0x10 - ldrh r1, [r6, #0x12] - bl __divsi3 - str r0, [r6, #0x20] - ldrh r1, [r4, #2] - ldrh r0, [r5, #6] - adds r1, r1, r0 - ldrh r2, [r4, #4] - ldrh r0, [r5, #8] - adds r2, r2, r0 - adds r0, r7, #0 - bl sub_080045B4 - bl sub_0806F5B0 - strb r0, [r7, #0x14] - ldr r0, [r6, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r6, #8] - b _0807EDC8 - .align 2, 0 -_0807ED8C: .4byte gRoomControls -_0807ED90: - ldrh r0, [r6, #0x12] - subs r0, #1 - strh r0, [r6, #0x12] - lsls r0, r0, #0x10 - cmp r0, #0 - bne _0807EDB8 - ldr r2, [r6] - ldr r1, _0807EDB4 @ =gRoomControls - ldrh r0, [r1, #6] - ldrh r3, [r2, #2] - adds r0, r0, r3 - strh r0, [r7, #0x2e] - ldrh r0, [r1, #8] - ldrh r2, [r2, #4] - adds r0, r0, r2 - strh r0, [r7, #0x32] - b _0807EDCE - .align 2, 0 -_0807EDB4: .4byte gRoomControls -_0807EDB8: - ldr r0, [r7, #0x2c] - ldr r1, [r6, #0x1c] - adds r0, r0, r1 - str r0, [r7, #0x2c] - ldr r0, [r7, #0x30] - ldr r1, [r6, #0x20] - adds r0, r0, r1 - str r0, [r7, #0x30] -_0807EDC8: - ldr r1, _0807EDD0 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EDCE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807EDD0: .4byte gUnk_02033280 - - thumb_func_start sub_0807EDD4 -sub_0807EDD4: @ 0x0807EDD4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0807EDEA - movs r0, #1 - strb r0, [r4, #0x18] - adds r0, r5, #0 - bl sub_0807EE04 -_0807EDEA: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0807EE30 - ldr r1, [r4, #0x14] - cmp r1, #0 - bne _0807EDFC - ldr r0, _0807EE00 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807EDFC: - pop {r4, r5, pc} - .align 2, 0 -_0807EE00: .4byte gUnk_02033280 - - thumb_func_start sub_0807EE04 -sub_0807EE04: @ 0x0807EE04 - push {r4, r5, lr} - ldr r5, [r1] - ldrh r2, [r5, #2] - ldr r4, _0807EE28 @ =gRoomControls - ldrh r3, [r4, #6] - adds r2, r2, r3 - ldrh r3, [r5, #4] - ldrh r4, [r4, #8] - adds r3, r3, r4 - bl sub_0807DEDC - ldr r2, _0807EE2C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, r5, pc} - .align 2, 0 -_0807EE28: .4byte gRoomControls -_0807EE2C: .4byte gUnk_02033280 - - thumb_func_start sub_0807EE30 -sub_0807EE30: @ 0x0807EE30 - push {r4, r5, r6, r7, lr} - adds r6, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x19] - subs r0, #1 - strb r0, [r5, #0x19] - lsls r0, r0, #0x18 - cmp r0, #0 - bne _0807EE60 - movs r0, #8 - strb r0, [r5, #0x19] - movs r1, #0x1e - ldrsh r0, [r5, r1] - movs r2, #0x2e - ldrsh r1, [r6, r2] - subs r0, r0, r1 - movs r3, #0x22 - ldrsh r1, [r5, r3] - movs r3, #0x32 - ldrsh r2, [r6, r3] - subs r1, r1, r2 - bl sub_080045DA - strb r0, [r6, #0x15] -_0807EE60: - movs r0, #0x2e - ldrsh r4, [r6, r0] - movs r1, #0x1e - ldrsh r0, [r5, r1] - subs r4, r4, r0 - movs r2, #0x32 - ldrsh r1, [r6, r2] - movs r3, #0x22 - ldrsh r0, [r5, r3] - subs r7, r1, r0 - movs r0, #0x24 - ldrsh r1, [r6, r0] - ldrb r2, [r6, #0x15] - adds r0, r6, #0 - bl sub_0806F62C - movs r1, #0x2e - ldrsh r0, [r6, r1] - movs r2, #0x1e - ldrsh r1, [r5, r2] - subs r0, r0, r1 - muls r4, r0, r4 - movs r3, #0x32 - ldrsh r0, [r6, r3] - movs r2, #0x22 - ldrsh r1, [r5, r2] - subs r0, r0, r1 - muls r7, r0, r7 - cmp r4, #0 - bgt _0807EEAC - cmp r7, #0 - bgt _0807EEAC - ldrh r0, [r5, #0x1e] - strh r0, [r6, #0x2e] - ldrh r0, [r5, #0x22] - strh r0, [r6, #0x32] - movs r0, #1 - b _0807EEAE -_0807EEAC: - movs r0, #0 -_0807EEAE: - str r0, [r5, #0x14] - pop {r4, r5, r6, r7, pc} - .align 2, 0 - - thumb_func_start sub_0807EEB4 -sub_0807EEB4: @ 0x0807EEB4 - push {r4, r5, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0807EED6 - movs r0, #1 - strb r0, [r4, #0x18] - ldr r0, _0807EEEC @ =gPlayerEntity - movs r1, #0x2e - ldrsh r2, [r0, r1] - movs r1, #0x32 - ldrsh r3, [r0, r1] - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0807DEDC -_0807EED6: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0807EE30 - ldr r1, [r4, #0x14] - cmp r1, #0 - bne _0807EEE8 - ldr r0, _0807EEF0 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807EEE8: - pop {r4, r5, pc} - .align 2, 0 -_0807EEEC: .4byte gPlayerEntity -_0807EEF0: .4byte gUnk_02033280 - - thumb_func_start sub_0807EEF4 -sub_0807EEF4: @ 0x0807EEF4 - push {r4, r5, r6, lr} - adds r5, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0807EF22 - movs r0, #1 - strb r0, [r4, #0x18] - movs r0, #0x2e - ldrsh r2, [r5, r0] - ldr r1, [r4] - movs r3, #2 - ldrsh r0, [r1, r3] - adds r2, r2, r0 - movs r6, #0x32 - ldrsh r3, [r5, r6] - movs r6, #4 - ldrsh r0, [r1, r6] - adds r3, r3, r0 - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0807DEDC -_0807EF22: - adds r0, r5, #0 - adds r1, r4, #0 - bl sub_0807EE30 - ldr r1, [r4, #0x14] - cmp r1, #0 - bne _0807EF34 - ldr r0, _0807EF38 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807EF34: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807EF38: .4byte gUnk_02033280 - - thumb_func_start sub_0807EF3C -sub_0807EF3C: @ 0x0807EF3C - push {r4, lr} - adds r3, r0, #0 - adds r2, r1, #0 - ldrb r0, [r2, #0x18] - cmp r0, #0 - bne _0807EF66 - movs r0, #1 - strb r0, [r2, #0x18] - ldr r1, [r2] - movs r4, #2 - ldrsh r0, [r1, r4] - lsls r0, r0, #8 - str r0, [r3, #0x20] - ldrh r0, [r1, #4] - lsls r0, r0, #8 - strh r0, [r2, #0x1c] - ldrh r1, [r2, #0x1c] - adds r0, r3, #0 - bl sub_08003FC4 - b _0807EF72 -_0807EF66: - ldrh r1, [r2, #0x1c] - adds r0, r3, #0 - bl sub_08003FC4 - cmp r0, #0 - beq _0807EF78 -_0807EF72: - ldr r1, _0807EF7C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807EF78: - pop {r4, pc} - .align 2, 0 -_0807EF7C: .4byte gUnk_02033280 - - thumb_func_start sub_0807EF80 -sub_0807EF80: @ 0x0807EF80 - ldr r0, [r1] - movs r2, #1 - ldrh r0, [r0, #2] - lsls r2, r0 - ldr r0, [r1, #8] - orrs r0, r2 - str r0, [r1, #8] - bx lr - - thumb_func_start sub_0807EF90 -sub_0807EF90: @ 0x0807EF90 - ldr r0, [r1] - movs r2, #1 - ldrh r0, [r0, #2] - lsls r2, r0 - ldr r0, [r1, #8] - orrs r0, r2 - str r0, [r1, #8] - bx lr - - thumb_func_start sub_0807EFA0 -sub_0807EFA0: @ 0x0807EFA0 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl PlaySFX - pop {pc} - - thumb_func_start sub_0807EFAC -sub_0807EFAC: @ 0x0807EFAC - push {lr} - ldr r1, [r1] - ldrh r0, [r1, #2] - cmp r0, #0x63 - bls _0807EFCC - ldr r0, _0807EFC8 @ =gArea - movs r1, #0x86 - lsls r1, r1, #4 - adds r0, r0, r1 - ldr r0, [r0] - bl PlaySFX - b _0807EFD2 - .align 2, 0 -_0807EFC8: .4byte gArea -_0807EFCC: - ldrh r0, [r1, #2] - bl PlaySFX -_0807EFD2: - pop {pc} - - thumb_func_start sub_0807EFD4 -sub_0807EFD4: @ 0x0807EFD4 - push {lr} - ldr r0, [r1] - bl GetNextScriptCommandWordAfterCommandMetadata - bl PlaySFX - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807EFE4 -sub_0807EFE4: @ 0x0807EFE4 - push {lr} - ldr r0, _0807EFF0 @ =0x80100000 - bl PlaySFX - pop {pc} - .align 2, 0 -_0807EFF0: .4byte 0x80100000 - - thumb_func_start sub_0807EFF4 -sub_0807EFF4: @ 0x0807EFF4 - push {lr} - ldr r0, [r1] - movs r1, #2 - ldrsh r0, [r0, r1] - bl ModRupees - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F004 -sub_0807F004: @ 0x0807F004 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - bl ModHealth - pop {pc} - - thumb_func_start sub_0807F010 -sub_0807F010: @ 0x0807F010 - push {lr} - ldr r3, _0807F030 @ =gUnk_02002A40 - adds r2, r3, #0 - adds r2, #0xab - ldrb r0, [r2] - adds r1, r0, #0 - adds r1, #8 - cmp r1, #0xa0 - ble _0807F024 - movs r1, #0xa0 -_0807F024: - strb r1, [r2] - adds r0, r3, #0 - adds r0, #0xaa - strb r1, [r0] - pop {pc} - .align 2, 0 -_0807F030: .4byte gUnk_02002A40 - - thumb_func_start sub_0807F034 -sub_0807F034: @ 0x0807F034 - push {lr} - movs r3, #0 - ldr r2, [r1] - ldrh r0, [r2, #2] - cmp r0, #0x3f - bne _0807F042 - ldr r3, [r1, #4] -_0807F042: - ldrh r0, [r2, #2] - adds r1, r3, #0 - movs r2, #0 - bl sub_080A7C18 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F050 -sub_0807F050: @ 0x0807F050 - push {lr} - ldr r0, [r1] - ldrh r1, [r0, #2] - movs r0, #0x5c - movs r2, #0 - bl sub_080A7C18 - pop {pc} - - thumb_func_start sub_0807F060 -sub_0807F060: @ 0x0807F060 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4] - ldrh r0, [r0, #2] - bl GetInventoryValue - str r0, [r4, #4] - rsbs r1, r0, #0 - orrs r1, r0 - lsrs r1, r1, #0x1f - str r1, [r4, #0x14] - pop {r4, pc} - - thumb_func_start sub_0807F078 -sub_0807F078: @ 0x0807F078 - push {lr} - ldr r1, [r1] - ldrh r0, [r1, #2] - ldrh r1, [r1, #4] - bl sub_0807CAA0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F088 -sub_0807F088: @ 0x0807F088 - push {lr} - ldr r0, [r1] - ldrh r0, [r0, #2] - movs r1, #0 - movs r2, #3 - bl sub_080A7C18 - pop {pc} - - thumb_func_start sub_0807F098 -sub_0807F098: @ 0x0807F098 - ldr r1, _0807F0A0 @ =gRoomControls - str r0, [r1, #0x30] - bx lr - .align 2, 0 -_0807F0A0: .4byte gRoomControls - - thumb_func_start sub_0807F0A4 -sub_0807F0A4: @ 0x0807F0A4 - ldr r1, _0807F0AC @ =gRoomControls - ldr r0, _0807F0B0 @ =gPlayerEntity - str r0, [r1, #0x30] - bx lr - .align 2, 0 -_0807F0AC: .4byte gRoomControls -_0807F0B0: .4byte gPlayerEntity - - thumb_func_start sub_0807F0B4 -sub_0807F0B4: @ 0x0807F0B4 - ldr r2, _0807F0C4 @ =gRoomControls - ldr r0, [r1] - ldrb r1, [r0, #2] - movs r0, #7 - ands r0, r1 - strb r0, [r2, #0xe] - bx lr - .align 2, 0 -_0807F0C4: .4byte gRoomControls - - thumb_func_start sub_0807F0C8 -sub_0807F0C8: @ 0x0807F0C8 - push {lr} - ldr r1, [r1] - ldrh r0, [r1, #2] - ldrh r1, [r1, #4] - bl sub_08080964 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F0D8 -sub_0807F0D8: @ 0x0807F0D8 - ldr r0, _0807F0E8 @ =gUnk_03000FF0 - ldrh r2, [r0, #2] - rsbs r0, r2, #0 - orrs r0, r2 - lsrs r0, r0, #0x1f - str r0, [r1, #0x14] - bx lr - .align 2, 0 -_0807F0E8: .4byte gUnk_03000FF0 - - thumb_func_start sub_0807F0EC -sub_0807F0EC: @ 0x0807F0EC - push {r4, lr} - adds r4, r1, #0 - bl Random - ldr r1, [r4, #4] - bl __modsi3 - str r0, [r4, #4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807F100 -sub_0807F100: @ 0x0807F100 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl Random - movs r2, #6 - adds r1, r0, #0 - ands r1, r2 - strb r1, [r4, #0x14] - ldr r2, _0807F124 @ =gUnk_0811E750 - lsrs r0, r0, #8 - movs r1, #7 - ands r0, r1 - adds r0, r0, r2 - ldrb r0, [r0] - strb r0, [r5, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0807F124: .4byte gUnk_0811E750 - - thumb_func_start sub_0807F128 -sub_0807F128: @ 0x0807F128 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - bl Random - ldr r2, _0807F150 @ =gUnk_0811E758 - movs r3, #7 - adds r1, r0, #0 - ands r1, r3 - adds r1, r1, r2 - ldrb r1, [r1] - strb r1, [r4, #0x14] - ldr r1, _0807F154 @ =gUnk_0811E760 - lsrs r0, r0, #8 - ands r0, r3 - adds r0, r0, r1 - ldrb r0, [r0] - strb r0, [r5, #0x1a] - pop {r4, r5, pc} - .align 2, 0 -_0807F150: .4byte gUnk_0811E758 -_0807F154: .4byte gUnk_0811E760 - - thumb_func_start sub_0807F158 -sub_0807F158: @ 0x0807F158 - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #1 - strb r1, [r2] - bl UpdateSpriteForCollisionLayer - pop {pc} - - thumb_func_start sub_0807F168 -sub_0807F168: @ 0x0807F168 - push {lr} - ldr r0, _0807F17C @ =gPlayerEntity - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #1 - strb r1, [r2] - bl UpdateSpriteForCollisionLayer - pop {pc} - .align 2, 0 -_0807F17C: .4byte gPlayerEntity - - thumb_func_start sub_0807F180 -sub_0807F180: @ 0x0807F180 - push {lr} - adds r2, r0, #0 - adds r2, #0x38 - movs r1, #2 - strb r1, [r2] - bl UpdateSpriteForCollisionLayer - pop {pc} - - thumb_func_start sub_0807F190 -sub_0807F190: @ 0x0807F190 - push {lr} - movs r1, #0x80 - lsls r1, r1, #1 - movs r0, #4 - bl DoFade - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F1A0 -sub_0807F1A0: @ 0x0807F1A0 - push {r4, lr} - ldr r3, _0807F1BC @ =gPlayerEntity - movs r4, #0x2e - ldrsh r2, [r3, r4] - movs r4, #0x32 - ldrsh r3, [r3, r4] - bl sub_0807DEDC - ldr r2, _0807F1C0 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807F1BC: .4byte gPlayerEntity -_0807F1C0: .4byte gUnk_02033280 - - thumb_func_start sub_0807F1C4 -sub_0807F1C4: @ 0x0807F1C4 - push {lr} - ldr r2, _0807F1D8 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0807F1E0 - ldr r0, _0807F1DC @ =0x00000459 - b _0807F1E4 - .align 2, 0 -_0807F1D8: .4byte gPlayerState -_0807F1DC: .4byte 0x00000459 -_0807F1E0: - movs r0, #0xde - lsls r0, r0, #1 -_0807F1E4: - strh r0, [r2, #8] - pop {pc} - - thumb_func_start sub_0807F1E8 -sub_0807F1E8: @ 0x0807F1E8 - push {lr} - ldr r2, _0807F1FC @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0807F204 - ldr r0, _0807F200 @ =0x0000045A - b _0807F206 - .align 2, 0 -_0807F1FC: .4byte gPlayerState -_0807F200: .4byte 0x0000045A -_0807F204: - ldr r0, _0807F20C @ =0x000002BD -_0807F206: - strh r0, [r2, #8] - pop {pc} - .align 2, 0 -_0807F20C: .4byte 0x000002BD - - thumb_func_start sub_0807F210 -sub_0807F210: @ 0x0807F210 - push {lr} - ldr r2, _0807F224 @ =gPlayerState - ldr r0, [r2, #0x30] - movs r1, #8 - ands r0, r1 - cmp r0, #0 - beq _0807F22C - ldr r0, _0807F228 @ =0x0000041C - b _0807F22E - .align 2, 0 -_0807F224: .4byte gPlayerState -_0807F228: .4byte 0x0000041C -_0807F22C: - ldr r0, _0807F234 @ =0x0000080C -_0807F22E: - strh r0, [r2, #8] - pop {pc} - .align 2, 0 -_0807F234: .4byte 0x0000080C - - thumb_func_start sub_0807F238 -sub_0807F238: @ 0x0807F238 - ldr r2, _0807F240 @ =gPlayerState - ldr r0, [r1, #4] - strh r0, [r2, #8] - bx lr - .align 2, 0 -_0807F240: .4byte gPlayerState - - thumb_func_start sub_0807F244 -sub_0807F244: @ 0x0807F244 - push {r4, r5, lr} - ldr r0, [r1, #4] - ldr r4, _0807F298 @ =0x0000FFFF - lsrs r5, r0, #0x10 - ands r4, r0 - cmp r4, #1 - blo _0807F28C - cmp r4, #4 - bls _0807F25A - cmp r4, #6 - bne _0807F28C -_0807F25A: - movs r4, #1 - movs r0, #2 - bl GetInventoryValue - cmp r0, #0 - beq _0807F268 - movs r4, #2 -_0807F268: - movs r0, #3 - bl GetInventoryValue - cmp r0, #0 - beq _0807F274 - movs r4, #3 -_0807F274: - movs r0, #4 - bl GetInventoryValue - cmp r0, #0 - beq _0807F280 - movs r4, #4 -_0807F280: - movs r0, #6 - bl GetInventoryValue - cmp r0, #0 - beq _0807F28C - movs r4, #6 -_0807F28C: - adds r0, r4, #0 - adds r1, r5, #0 - bl ForceEquipItem - pop {r4, r5, pc} - .align 2, 0 -_0807F298: .4byte 0x0000FFFF - - thumb_func_start sub_0807F29C -sub_0807F29C: @ 0x0807F29C - push {lr} - ldr r0, [r1, #4] - bl sub_0805ED14 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F2A8 -sub_0807F2A8: @ 0x0807F2A8 - push {lr} - ldr r0, _0807F2C0 @ =gPlayerState - adds r0, #0x9c - ldr r0, [r0] - cmp r0, #0 - bne _0807F2C8 - ldr r2, _0807F2C4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807F2CE - .align 2, 0 -_0807F2C0: .4byte gPlayerState -_0807F2C4: .4byte gUnk_02033280 -_0807F2C8: - ldr r1, _0807F2D0 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807F2CE: - pop {pc} - .align 2, 0 -_0807F2D0: .4byte gUnk_02033280 - - thumb_func_start sub_0807F2D4 -sub_0807F2D4: @ 0x0807F2D4 - push {lr} - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0807F2F8 - ldr r2, _0807F2F4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807F2FC - .align 2, 0 -_0807F2F4: .4byte gUnk_02033280 -_0807F2F8: - ldr r0, _0807F300 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807F2FC: - pop {pc} - .align 2, 0 -_0807F300: .4byte gUnk_02033280 - - thumb_func_start sub_0807F304 -sub_0807F304: @ 0x0807F304 - push {lr} - ldr r0, _0807F324 @ =gPlayerEntity - adds r0, #0x5a - ldrb r1, [r0] - movs r0, #0x80 - ands r0, r1 - lsls r0, r0, #0x18 - lsrs r1, r0, #0x18 - cmp r1, #0 - beq _0807F32C - ldr r2, _0807F328 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807F330 - .align 2, 0 -_0807F324: .4byte gPlayerEntity -_0807F328: .4byte gUnk_02033280 -_0807F32C: - ldr r0, _0807F334 @ =gUnk_02033280 - strb r1, [r0, #6] -_0807F330: - pop {pc} - .align 2, 0 -_0807F334: .4byte gUnk_02033280 - - thumb_func_start sub_0807F338 -sub_0807F338: @ 0x0807F338 - movs r1, #0 - str r1, [r0, #0x48] - ldrb r2, [r0, #0x17] - movs r1, #0xfe - ands r1, r2 - strb r1, [r0, #0x17] - bx lr - .align 2, 0 - - thumb_func_start sub_0807F348 -sub_0807F348: @ 0x0807F348 - push {lr} - movs r1, #2 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F354 -sub_0807F354: @ 0x0807F354 - push {lr} - movs r1, #6 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F360 -sub_0807F360: @ 0x0807F360 - push {lr} - movs r1, #3 - bl sub_0805E3A0 - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F36C -sub_0807F36C: @ 0x0807F36C - push {r4, r5, lr} - adds r5, r0, #0 - movs r1, #0x41 - movs r2, #0 - bl CreateFx - adds r4, r0, #0 - cmp r4, #0 - beq _0807F3C2 - adds r2, r4, #0 - adds r2, #0x29 - ldrb r1, [r2] - movs r0, #8 - rsbs r0, r0, #0 - ands r0, r1 - movs r1, #1 - orrs r0, r1 - strb r0, [r2] - ldr r3, _0807F3C4 @ =0xFFF80000 - adds r0, r5, #0 - adds r1, r4, #0 - movs r2, #0 - bl PositionRelative - bl Random - movs r5, #1 - ands r0, r5 - cmp r0, #0 - beq _0807F3B0 - ldrb r0, [r4, #0x18] - movs r1, #0x40 - orrs r0, r1 - strb r0, [r4, #0x18] -_0807F3B0: - bl Random - ands r0, r5 - cmp r0, #0 - beq _0807F3C2 - ldrb r0, [r4, #0x18] - movs r1, #0x80 - orrs r0, r1 - strb r0, [r4, #0x18] -_0807F3C2: - pop {r4, r5, pc} - .align 2, 0 -_0807F3C4: .4byte 0xFFF80000 - - thumb_func_start sub_0807F3C8 -sub_0807F3C8: @ 0x0807F3C8 - push {lr} - bl sub_0807F36C - movs r0, #0xe5 - bl PlaySFX - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F3D8 -sub_0807F3D8: @ 0x0807F3D8 - push {r4, lr} - adds r4, r0, #0 - ldrb r0, [r4, #0x14] - lsrs r0, r0, #1 - ldr r1, [r1, #4] - adds r1, r1, r0 - adds r0, r4, #0 - bl InitAnimationForceUpdate - adds r0, r4, #0 - adds r0, #0x58 - ldrb r0, [r0] - adds r4, #0x80 - strh r0, [r4] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807F3F8 -sub_0807F3F8: @ 0x0807F3F8 - push {lr} - ldr r0, _0807F408 @ =gPlayerEntity - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleExclamationMark - pop {pc} - .align 2, 0 -_0807F408: .4byte gPlayerEntity - - thumb_func_start sub_0807F40C -sub_0807F40C: @ 0x0807F40C - push {lr} - ldr r0, _0807F41C @ =gPlayerEntity - movs r2, #0x18 - rsbs r2, r2, #0 - movs r1, #8 - bl CreateSpeechBubbleQuestionMark - pop {pc} - .align 2, 0 -_0807F41C: .4byte gPlayerEntity - - thumb_func_start sub_0807F420 -sub_0807F420: @ 0x0807F420 - push {lr} - ldr r2, [r1, #4] - ldrb r0, [r1, #4] - lsrs r2, r2, #8 - lsls r2, r2, #0x18 - lsrs r2, r2, #0x18 - adds r1, r2, #0 - bl MenuFadeIn - pop {pc} - - thumb_func_start sub_0807F434 -sub_0807F434: @ 0x0807F434 - push {lr} - adds r3, r0, #0 - adds r3, #0x39 - movs r2, #0 - ldrsb r2, [r3, r2] - cmp r2, #1 - beq _0807F44C - cmp r2, #2 - beq _0807F44C - movs r0, #0 - str r0, [r1, #4] - b _0807F452 -_0807F44C: - movs r0, #0 - strb r0, [r3] - str r2, [r1, #4] -_0807F452: - ldr r2, _0807F460 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807F460: .4byte gUnk_02033280 - - thumb_func_start sub_0807F464 -sub_0807F464: @ 0x0807F464 - push {r4, r5, r6, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _0807F4BC - adds r0, #1 - movs r3, #0 - strb r0, [r5, #0x18] - ldr r0, [r5, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #8] - ldr r2, [r5, #4] - ldr r1, _0807F4A8 @ =gRoomControls - ldrh r0, [r1, #6] - adds r0, r0, r2 - strh r0, [r5, #0x1e] - ldrh r0, [r4, #0x32] - strh r0, [r5, #0x22] - movs r6, #0x2e - ldrsh r0, [r4, r6] - ldrh r1, [r1, #6] - subs r0, r0, r1 - cmp r2, r0 - ble _0807F4AC - movs r0, #0x40 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - movs r0, #0x80 - ands r0, r1 - movs r1, #2 - b _0807F4B8 - .align 2, 0 -_0807F4A8: .4byte gRoomControls -_0807F4AC: - movs r0, #0xc0 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - movs r0, #0x80 - ands r0, r1 - movs r1, #6 -_0807F4B8: - orrs r0, r1 - strb r0, [r4, #0x14] -_0807F4BC: - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - movs r2, #0x1e - ldrsh r1, [r5, r2] - movs r6, #0x2e - ldrsh r0, [r4, r6] - subs r1, r1, r0 - ldrb r2, [r4, #0x15] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - eors r1, r0 - cmp r1, #0 - bge _0807F4EA - ldrh r0, [r5, #0x1e] - strh r0, [r4, #0x2e] - b _0807F4F0 -_0807F4EA: - ldr r1, _0807F4F4 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807F4F0: - pop {r4, r5, r6, pc} - .align 2, 0 -_0807F4F4: .4byte gUnk_02033280 - - thumb_func_start sub_0807F4F8 -sub_0807F4F8: @ 0x0807F4F8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - ldrb r0, [r5, #0x18] - cmp r0, #0 - bne _0807F548 - adds r0, #1 - strb r0, [r5, #0x18] - ldr r0, [r5, #8] - movs r1, #2 - orrs r0, r1 - str r0, [r5, #8] - ldr r2, [r5, #4] - ldrh r0, [r4, #0x2e] - strh r0, [r5, #0x1e] - ldr r1, _0807F538 @ =gRoomControls - ldrh r0, [r1, #8] - adds r0, r0, r2 - strh r0, [r5, #0x22] - movs r3, #0x32 - ldrsh r0, [r4, r3] - ldrh r1, [r1, #8] - subs r0, r0, r1 - cmp r2, r0 - ble _0807F53C - movs r0, #0x80 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - ands r0, r1 - movs r1, #4 - orrs r0, r1 - b _0807F546 - .align 2, 0 -_0807F538: .4byte gRoomControls -_0807F53C: - movs r0, #0 - strb r0, [r4, #0x15] - ldrb r1, [r4, #0x14] - movs r0, #0x80 - ands r0, r1 -_0807F546: - strb r0, [r4, #0x14] -_0807F548: - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - movs r2, #0x22 - ldrsh r1, [r5, r2] - movs r3, #0x32 - ldrsh r0, [r4, r3] - subs r1, r1, r0 - ldrb r2, [r4, #0x15] - movs r0, #0x80 - ands r0, r2 - lsls r0, r0, #0x18 - lsrs r0, r0, #0x18 - lsls r0, r0, #0x18 - eors r1, r0 - cmp r1, #0 - blt _0807F576 - ldrh r0, [r5, #0x22] - strh r0, [r4, #0x32] - b _0807F57C -_0807F576: - ldr r1, _0807F580 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807F57C: - pop {r4, r5, pc} - .align 2, 0 -_0807F580: .4byte gUnk_02033280 - - thumb_func_start sub_0807F584 -sub_0807F584: @ 0x0807F584 - ldr r0, _0807F590 @ =gPlayerEntity - ldrb r0, [r0, #0x14] - lsrs r0, r0, #1 - str r0, [r1, #4] - bx lr - .align 2, 0 -_0807F590: .4byte gPlayerEntity - - thumb_func_start sub_0807F594 -sub_0807F594: @ 0x0807F594 - push {lr} - ldr r0, _0807F5A8 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - cmp r0, #0 - beq _0807F5A6 - ldr r1, _0807F5AC @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807F5A6: - pop {pc} - .align 2, 0 -_0807F5A8: .4byte gPlayerState -_0807F5AC: .4byte gUnk_02033280 - - thumb_func_start sub_0807F5B0 -sub_0807F5B0: @ 0x0807F5B0 - ldr r0, _0807F5BC @ =gPlayerState - ldr r1, [r1, #4] - adds r0, #0x27 - strb r1, [r0] - bx lr - .align 2, 0 -_0807F5BC: .4byte gPlayerState - - thumb_func_start sub_0807F5C0 -sub_0807F5C0: @ 0x0807F5C0 - push {r4, lr} - ldr r4, _0807F620 @ =gRoomControls - ldr r1, [r4, #0x30] - cmp r1, #0 - beq _0807F62E - movs r2, #0x2e - ldrsh r0, [r1, r2] - adds r2, r0, #0 - subs r2, #0x78 - movs r3, #0x32 - ldrsh r0, [r1, r3] - adds r3, r0, #0 - subs r3, #0x50 - ldrh r1, [r4, #6] - cmp r2, r1 - bge _0807F5E2 - adds r2, r1, #0 -_0807F5E2: - ldrh r0, [r4, #0x1e] - adds r0, r1, r0 - subs r0, #0xf0 - cmp r2, r0 - ble _0807F5EE - adds r2, r0, #0 -_0807F5EE: - ldrh r1, [r4, #8] - cmp r3, r1 - bge _0807F5F6 - adds r3, r1, #0 -_0807F5F6: - ldrh r0, [r4, #0x20] - adds r0, r1, r0 - subs r0, #0xa0 - cmp r3, r0 - ble _0807F602 - adds r3, r0, #0 -_0807F602: - movs r1, #0xa - ldrsh r0, [r4, r1] - cmp r2, r0 - bne _0807F628 - movs r2, #0xc - ldrsh r0, [r4, r2] - cmp r3, r0 - bne _0807F628 - ldr r2, _0807F624 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - b _0807F62E - .align 2, 0 -_0807F620: .4byte gRoomControls -_0807F624: .4byte gUnk_02033280 -_0807F628: - ldr r1, _0807F630 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807F62E: - pop {r4, pc} - .align 2, 0 -_0807F630: .4byte gUnk_02033280 - - thumb_func_start sub_0807F634 -sub_0807F634: @ 0x0807F634 - push {lr} - ldr r3, [r1, #4] - ldrh r1, [r3] - ldrh r2, [r3, #2] - ldrh r3, [r3, #4] - bl sub_0801DFB4 - ldr r0, _0807F64C @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - pop {pc} - .align 2, 0 -_0807F64C: .4byte gPlayerState - - thumb_func_start sub_0807F650 -sub_0807F650: @ 0x0807F650 - push {r4, lr} - adds r4, r0, #0 - bl sub_08002632 - ldr r1, _0807F678 @ =gUnk_08001A7C - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldrh r1, [r0] - ldrh r2, [r0, #2] - ldrh r3, [r0, #4] - adds r0, r4, #0 - bl sub_0801DFB4 - ldr r0, _0807F67C @ =gPlayerState - adds r0, #0x8b - movs r1, #3 - strb r1, [r0] - pop {r4, pc} - .align 2, 0 -_0807F678: .4byte gUnk_08001A7C -_0807F67C: .4byte gPlayerState - - thumb_func_start sub_0807F680 -sub_0807F680: @ 0x0807F680 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, _0807F6A8 @ =gPlayerEntity - movs r1, #0x2e - ldrsh r0, [r0, r1] - ldr r1, _0807F6AC @ =gRoomControls - ldrh r1, [r1, #6] - subs r0, r0, r1 - ldrh r1, [r2, #4] - cmp r0, r1 - ble _0807F69A - movs r3, #1 -_0807F69A: - str r3, [r2, #0x14] - ldr r2, _0807F6B0 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807F6A8: .4byte gPlayerEntity -_0807F6AC: .4byte gRoomControls -_0807F6B0: .4byte gUnk_02033280 - - thumb_func_start sub_0807F6B4 -sub_0807F6B4: @ 0x0807F6B4 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r0, _0807F6DC @ =gPlayerEntity - movs r1, #0x32 - ldrsh r0, [r0, r1] - ldr r1, _0807F6E0 @ =gRoomControls - ldrh r1, [r1, #8] - subs r0, r0, r1 - ldrh r1, [r2, #4] - cmp r0, r1 - ble _0807F6CE - movs r3, #1 -_0807F6CE: - str r3, [r2, #0x14] - ldr r2, _0807F6E4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807F6DC: .4byte gPlayerEntity -_0807F6E0: .4byte gRoomControls -_0807F6E4: .4byte gUnk_02033280 - - thumb_func_start sub_0807F6E8 -sub_0807F6E8: @ 0x0807F6E8 - ldr r2, _0807F6F4 @ =gPlayerState - ldr r0, [r2, #0x30] - ldr r1, [r1, #4] - orrs r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_0807F6F4: .4byte gPlayerState - - thumb_func_start sub_0807F6F8 -sub_0807F6F8: @ 0x0807F6F8 - ldr r2, _0807F704 @ =gPlayerState - ldr r1, [r1, #4] - ldr r0, [r2, #0x30] - bics r0, r1 - str r0, [r2, #0x30] - bx lr - .align 2, 0 -_0807F704: .4byte gPlayerState - - thumb_func_start sub_0807F708 -sub_0807F708: @ 0x0807F708 - push {lr} - ldr r1, [r1, #4] - bl ShowNPCDialogue - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F714 -sub_0807F714: @ 0x0807F714 - push {lr} - adds r1, r0, #0 - ldr r2, _0807F734 @ =gUnk_08114F30 - ldrb r3, [r1, #0x19] - lsrs r0, r3, #6 - adds r0, r0, r2 - ldrb r2, [r0] - lsls r2, r2, #6 - movs r0, #0x3f - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x19] - adds r0, r1, #0 - bl ResolveEntityOnTop - pop {pc} - .align 2, 0 -_0807F734: .4byte gUnk_08114F30 - - thumb_func_start sub_0807F738 -sub_0807F738: @ 0x0807F738 - push {lr} - adds r1, r0, #0 - ldr r2, _0807F758 @ =gUnk_08114F34 - ldrb r3, [r1, #0x19] - lsrs r0, r3, #6 - adds r0, r0, r2 - ldrb r2, [r0] - lsls r2, r2, #6 - movs r0, #0x3f - ands r0, r3 - orrs r0, r2 - strb r0, [r1, #0x19] - adds r0, r1, #0 - bl sub_0806FAD8 - pop {pc} - .align 2, 0 -_0807F758: .4byte gUnk_08114F34 - - thumb_func_start sub_0807F75C -sub_0807F75C: @ 0x0807F75C - push {r4, lr} - ldr r2, [r1, #4] - ldr r3, _0807F774 @ =gPlayerEntity - ldr r1, _0807F778 @ =gRoomControls - asrs r0, r2, #0x10 - ldrh r4, [r1, #6] - adds r0, r0, r4 - strh r0, [r3, #0x2e] - ldrh r0, [r1, #8] - adds r0, r0, r2 - strh r0, [r3, #0x32] - pop {r4, pc} - .align 2, 0 -_0807F774: .4byte gPlayerEntity -_0807F778: .4byte gRoomControls - - thumb_func_start sub_0807F77C -sub_0807F77C: @ 0x0807F77C - push {lr} - ldr r0, [r1, #0x14] - cmp r0, #0 - beq _0807F786 - movs r0, #1 -_0807F786: - str r0, [r1, #4] - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F78C -sub_0807F78C: @ 0x0807F78C - push {r4, r5, r6, lr} - adds r6, r0, #0 - ldr r5, [r1, #4] - cmp r5, #0 - bne _0807F79A - ldr r0, _0807F7BC @ =gRoomVars - ldrb r5, [r0, #6] -_0807F79A: - adds r0, r5, #0 - bl GetSaleItemConfirmMessageID - adds r4, r0, #0 - adds r0, r5, #0 - bl sub_08053FE0 - adds r5, r0, #0 - adds r0, r4, #0 - adds r1, r6, #0 - bl TextboxNoOverlap - ldr r0, _0807F7C0 @ =gTextBox - lsls r5, r5, #0x10 - lsrs r5, r5, #0x10 - str r5, [r0, #0x10] - pop {r4, r5, r6, pc} - .align 2, 0 -_0807F7BC: .4byte gRoomVars -_0807F7C0: .4byte gTextBox - - thumb_func_start sub_0807F7C4 -sub_0807F7C4: @ 0x0807F7C4 - push {r4, lr} - adds r4, r1, #0 - ldr r0, [r4, #4] - cmp r0, #0 - bne _0807F7D2 - ldr r0, _0807F7F4 @ =gRoomVars - ldrb r0, [r0, #6] -_0807F7D2: - bl sub_08053FE0 - movs r2, #0 - ldr r1, _0807F7F8 @ =gUnk_02002A40 - adds r1, #0xc0 - ldrh r1, [r1] - cmp r0, r1 - bgt _0807F7E4 - movs r2, #1 -_0807F7E4: - str r2, [r4, #0x14] - ldr r2, _0807F7FC @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807F7F4: .4byte gRoomVars -_0807F7F8: .4byte gUnk_02002A40 -_0807F7FC: .4byte gUnk_02033280 - - thumb_func_start sub_0807F800 -sub_0807F800: @ 0x0807F800 - push {r4, lr} - ldr r4, [r1, #4] - cmp r4, #0 - bne _0807F80C - ldr r0, _0807F834 @ =gRoomVars - ldrb r4, [r0, #6] -_0807F80C: - adds r0, r4, #0 - bl sub_08053FE0 - rsbs r0, r0, #0 - bl ModRupees - adds r0, r4, #0 - movs r1, #0 - movs r2, #0 - bl sub_080A7C18 - ldr r1, _0807F834 @ =gRoomVars - movs r0, #0 - strb r0, [r1, #6] - ldr r2, _0807F838 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {r4, pc} - .align 2, 0 -_0807F834: .4byte gRoomVars -_0807F838: .4byte gUnk_02033280 - - thumb_func_start sub_0807F83C -sub_0807F83C: @ 0x0807F83C - push {lr} - bl sub_08079184 - pop {pc} - - thumb_func_start sub_0807F844 -sub_0807F844: @ 0x0807F844 - push {lr} - ldr r1, _0807F850 @ =gRoomControls - str r0, [r1, #0x30] - bl sub_080809D4 - pop {pc} - .align 2, 0 -_0807F850: .4byte gRoomControls - - thumb_func_start sub_0807F854 -sub_0807F854: @ 0x0807F854 - push {lr} - ldr r1, [r1, #4] - lsrs r2, r1, #0x10 - movs r0, #3 - ands r2, r0 - ldr r3, _0807F870 @ =0x0000FFFF - ands r3, r1 - cmp r2, #4 - bhi _0807F8B4 - lsls r0, r2, #2 - ldr r1, _0807F874 @ =_0807F878 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807F870: .4byte 0x0000FFFF -_0807F874: .4byte _0807F878 -_0807F878: @ jump table - .4byte _0807F88C @ case 0 - .4byte _0807F88C @ case 1 - .4byte _0807F898 @ case 2 - .4byte _0807F8A4 @ case 3 - .4byte _0807F8B0 @ case 4 -_0807F88C: - ldr r0, _0807F894 @ =gTextBox - str r3, [r0, #0x10] - b _0807F8B4 - .align 2, 0 -_0807F894: .4byte gTextBox -_0807F898: - ldr r0, _0807F8A0 @ =gTextBox - str r3, [r0, #0x14] - b _0807F8B4 - .align 2, 0 -_0807F8A0: .4byte gTextBox -_0807F8A4: - ldr r0, _0807F8AC @ =gTextBox - str r3, [r0, #0x18] - b _0807F8B4 - .align 2, 0 -_0807F8AC: .4byte gTextBox -_0807F8B0: - ldr r0, _0807F8B8 @ =gTextBox - str r3, [r0, #0x1c] -_0807F8B4: - pop {pc} - .align 2, 0 -_0807F8B8: .4byte gTextBox - - thumb_func_start sub_0807F8BC -sub_0807F8BC: @ 0x0807F8BC - push {r4, lr} - adds r4, r1, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0807F8CA - movs r0, #1 -_0807F8CA: - str r0, [r4, #0x14] - pop {r4, pc} - .align 2, 0 - - thumb_func_start sub_0807F8D0 -sub_0807F8D0: @ 0x0807F8D0 - push {lr} - ldr r1, [r1, #4] - bl sub_08003FC4 - ldr r2, _0807F8E4 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] - pop {pc} - .align 2, 0 -_0807F8E4: .4byte gUnk_02033280 - - thumb_func_start sub_0807F8E8 -sub_0807F8E8: @ 0x0807F8E8 - push {r4, r5, lr} - adds r4, r0, #0 - adds r5, r1, #0 - movs r1, #0xa6 - movs r2, #0 - movs r3, #0 - bl CreateObjectWithParent - adds r2, r0, #0 - cmp r2, #0 - beq _0807F912 - str r4, [r2, #0x50] - ldr r0, [r5, #4] - ldr r1, _0807F914 @ =0x000003FF - ands r0, r1 - movs r3, #0x80 - lsls r3, r3, #8 - adds r1, r3, #0 - adds r2, #0x86 - orrs r0, r1 - strh r0, [r2] -_0807F912: - pop {r4, r5, pc} - .align 2, 0 -_0807F914: .4byte 0x000003FF - - thumb_func_start sub_0807F918 -sub_0807F918: @ 0x0807F918 - push {lr} - ldr r0, [r1, #4] - bl PutItemOnSlot - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F924 -sub_0807F924: @ 0x0807F924 - push {lr} - bl sub_0807879C - pop {pc} - - thumb_func_start sub_0807F92C -sub_0807F92C: @ 0x0807F92C - push {lr} - bl sub_080787C0 - pop {pc} - - thumb_func_start sub_0807F934 -sub_0807F934: @ 0x0807F934 - push {lr} - bl sub_080787B4 - pop {pc} - - thumb_func_start sub_0807F93C -sub_0807F93C: @ 0x0807F93C - push {lr} - ldr r2, [r1, #4] - lsrs r1, r2, #8 - movs r3, #0xff - ands r1, r3 - ands r2, r3 - bl CreateSpeechBubbleSleep - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807F950 -sub_0807F950: @ 0x0807F950 - push {lr} - sub sp, #4 - movs r0, #2 - str r0, [sp] - movs r0, #6 - movs r1, #0x56 - movs r2, #6 - movs r3, #0 - bl FindEntityInListByForm - cmp r0, #0 - beq _0807F96C - bl DeleteEntity -_0807F96C: - add sp, #4 - pop {pc} - - thumb_func_start sub_0807F970 -sub_0807F970: @ 0x0807F970 - push {lr} - adds r2, r1, #0 - movs r3, #0 - ldr r1, _0807F988 @ =gUnk_02022780 - ldr r0, [r2, #4] - ldrh r1, [r1, #0x28] - cmp r0, r1 - bne _0807F982 - movs r3, #1 -_0807F982: - str r3, [r2, #0x14] - pop {pc} - .align 2, 0 -_0807F988: .4byte gUnk_02022780 - - thumb_func_start sub_0807F98C -sub_0807F98C: @ 0x0807F98C - ldr r1, [r1, #4] - str r1, [r0, #0x34] - bx lr - .align 2, 0 - - thumb_func_start sub_0807F994 -sub_0807F994: @ 0x0807F994 - ldr r2, [r1, #4] - asrs r1, r2, #0x10 - adds r3, r0, #0 - adds r3, #0x62 - strb r1, [r3] - adds r0, #0x63 - strb r2, [r0] - bx lr - - thumb_func_start sub_0807F9A4 -sub_0807F9A4: @ 0x0807F9A4 - push {lr} - ldr r0, _0807F9BC @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - subs r0, #5 - cmp r0, #0x17 - bhi _0807FA30 - lsls r0, r0, #2 - ldr r1, _0807F9C0 @ =_0807F9C4 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807F9BC: .4byte gPlayerState -_0807F9C0: .4byte _0807F9C4 -_0807F9C4: @ jump table - .4byte _0807FA24 @ case 0 - .4byte _0807FA30 @ case 1 - .4byte _0807FA24 @ case 2 - .4byte _0807FA24 @ case 3 - .4byte _0807FA30 @ case 4 - .4byte _0807FA24 @ case 5 - .4byte _0807FA24 @ case 6 - .4byte _0807FA24 @ case 7 - .4byte _0807FA24 @ case 8 - .4byte _0807FA24 @ case 9 - .4byte _0807FA24 @ case 10 - .4byte _0807FA24 @ case 11 - .4byte _0807FA24 @ case 12 - .4byte _0807FA24 @ case 13 - .4byte _0807FA24 @ case 14 - .4byte _0807FA24 @ case 15 - .4byte _0807FA24 @ case 16 - .4byte _0807FA24 @ case 17 - .4byte _0807FA24 @ case 18 - .4byte _0807FA24 @ case 19 - .4byte _0807FA30 @ case 20 - .4byte _0807FA30 @ case 21 - .4byte _0807FA24 @ case 22 - .4byte _0807FA24 @ case 23 -_0807FA24: - ldr r1, _0807FA2C @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _0807FA3A - .align 2, 0 -_0807FA2C: .4byte gUnk_02033280 -_0807FA30: - ldr r2, _0807FA3C @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] -_0807FA3A: - pop {pc} - .align 2, 0 -_0807FA3C: .4byte gUnk_02033280 - - thumb_func_start sub_0807FA40 -sub_0807FA40: @ 0x0807FA40 - push {lr} - ldr r0, _0807FA58 @ =gPlayerState - adds r0, #0xa8 - ldrb r0, [r0] - subs r0, #5 - cmp r0, #0x17 - bhi _0807FACC - lsls r0, r0, #2 - ldr r1, _0807FA5C @ =_0807FA60 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0807FA58: .4byte gPlayerState -_0807FA5C: .4byte _0807FA60 -_0807FA60: @ jump table - .4byte _0807FAC0 @ case 0 - .4byte _0807FACC @ case 1 - .4byte _0807FAC0 @ case 2 - .4byte _0807FAC0 @ case 3 - .4byte _0807FACC @ case 4 - .4byte _0807FAC0 @ case 5 - .4byte _0807FAC0 @ case 6 - .4byte _0807FAC0 @ case 7 - .4byte _0807FAC0 @ case 8 - .4byte _0807FAC0 @ case 9 - .4byte _0807FAC0 @ case 10 - .4byte _0807FAC0 @ case 11 - .4byte _0807FAC0 @ case 12 - .4byte _0807FAC0 @ case 13 - .4byte _0807FACC @ case 14 - .4byte _0807FAC0 @ case 15 - .4byte _0807FAC0 @ case 16 - .4byte _0807FAC0 @ case 17 - .4byte _0807FAC0 @ case 18 - .4byte _0807FAC0 @ case 19 - .4byte _0807FACC @ case 20 - .4byte _0807FACC @ case 21 - .4byte _0807FAC0 @ case 22 - .4byte _0807FAC0 @ case 23 -_0807FAC0: - ldr r1, _0807FAC8 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] - b _0807FAD6 - .align 2, 0 -_0807FAC8: .4byte gUnk_02033280 -_0807FACC: - ldr r2, _0807FAD8 @ =gUnk_02033280 - ldrb r1, [r2, #7] - movs r0, #1 - orrs r0, r1 - strb r0, [r2, #7] -_0807FAD6: - pop {pc} - .align 2, 0 -_0807FAD8: .4byte gUnk_02033280 - - thumb_func_start sub_0807FADC -sub_0807FADC: @ 0x0807FADC - push {r4, lr} - adds r2, r0, #0 - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #1 - beq _0807FB06 - cmp r0, #1 - bgt _0807FAF2 - cmp r0, #0 - beq _0807FAF8 - b _0807FB1C -_0807FAF2: - cmp r0, #2 - beq _0807FB16 - b _0807FB1C -_0807FAF8: - movs r0, #1 - strb r0, [r4, #0x18] - ldr r1, [r4, #4] - adds r0, r2, #0 - bl sub_0808C650 - b _0807FB1C -_0807FB06: - bl sub_0808C67C - cmp r0, #0 - beq _0807FB1C - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - b _0807FB1C -_0807FB16: - bl sub_0808C688 - b _0807FB22 -_0807FB1C: - ldr r1, _0807FB24 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807FB22: - pop {r4, pc} - .align 2, 0 -_0807FB24: .4byte gUnk_02033280 - - thumb_func_start sub_0807FB28 -sub_0807FB28: @ 0x0807FB28 - push {r4, lr} - adds r4, r1, #0 - ldrb r0, [r4, #0x18] - cmp r0, #0 - bne _0807FB3A - ldr r0, _0807FB54 @ =0x00007FFF - movs r1, #1 - bl sub_0801D7BC -_0807FB3A: - ldrb r0, [r4, #0x18] - adds r0, #1 - strb r0, [r4, #0x18] - ldrb r1, [r4, #0x18] - ldr r0, [r4, #4] - cmp r1, r0 - blo _0807FB58 - movs r0, #0 - movs r1, #0 - bl sub_0801D7BC - b _0807FB5E - .align 2, 0 -_0807FB54: .4byte 0x00007FFF -_0807FB58: - ldr r1, _0807FB60 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807FB5E: - pop {r4, pc} - .align 2, 0 -_0807FB60: .4byte gUnk_02033280 - - thumb_func_start sub_0807FB64 -sub_0807FB64: @ 0x0807FB64 - ldr r0, _0807FB70 @ =gPlayerEntity - ldr r1, [r1, #4] - adds r0, #0x3d - strb r1, [r0] - bx lr - .align 2, 0 -_0807FB70: .4byte gPlayerEntity - - thumb_func_start sub_0807FB74 -sub_0807FB74: @ 0x0807FB74 - ldr r0, _0807FB8C @ =gPlayerState - adds r0, #0x26 - movs r1, #0 - strb r1, [r0] - ldr r1, _0807FB90 @ =gPlayerEntity - adds r1, #0x3c - ldrb r2, [r1] - movs r0, #0xfb - ands r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_0807FB8C: .4byte gPlayerState -_0807FB90: .4byte gPlayerEntity - - thumb_func_start sub_0807FB94 -sub_0807FB94: @ 0x0807FB94 - push {lr} - movs r0, #4 - bl InitScreen - pop {pc} - .align 2, 0 - - thumb_func_start sub_0807FBA0 -sub_0807FBA0: @ 0x0807FBA0 - ldr r2, _0807FBB0 @ =gRoomControls - ldrh r1, [r2, #0xa] - adds r1, #0x78 - strh r1, [r0, #0x2e] - ldrh r1, [r2, #0xc] - adds r1, #0x50 - strh r1, [r0, #0x32] - bx lr - .align 2, 0 -_0807FBB0: .4byte gRoomControls - - thumb_func_start sub_0807FBB4 -sub_0807FBB4: @ 0x0807FBB4 - ldr r2, _0807FBC0 @ =gPlayerState - ldrb r1, [r2, #0x1a] - movs r0, #0x80 - orrs r0, r1 - strb r0, [r2, #0x1a] - bx lr - .align 2, 0 -_0807FBC0: .4byte gPlayerState - - thumb_func_start sub_0807FBC4 -sub_0807FBC4: @ 0x0807FBC4 - push {lr} - bl sub_0805E4A0 - pop {pc} - - thumb_func_start sub_0807FBCC -sub_0807FBCC: @ 0x0807FBCC - push {lr} - bl sub_0805E4CC - pop {pc} - - thumb_func_start sub_0807FBD4 -sub_0807FBD4: @ 0x0807FBD4 - push {r4, lr} - adds r4, r0, #0 - movs r0, #0x24 - ldrsh r1, [r4, r0] - ldrb r2, [r4, #0x15] - adds r0, r4, #0 - bl sub_0806F62C - adds r0, r4, #0 - bl sub_080040A8 - cmp r0, #0 - beq _0807FBF4 - ldr r1, _0807FBF8 @ =gUnk_02033280 - movs r0, #0 - strb r0, [r1, #6] -_0807FBF4: - pop {r4, pc} - .align 2, 0 -_0807FBF8: .4byte gUnk_02033280 - - thumb_func_start sub_0807FBFC -sub_0807FBFC: @ 0x0807FBFC - ldr r3, _0807FC20 @ =gUnk_02002A40 - adds r0, r3, #0 - adds r0, #0xb2 - movs r1, #0 - strb r1, [r0] - adds r0, #0x12 - movs r2, #0 - strh r1, [r0] - subs r0, #0x11 - strb r2, [r0] - adds r0, #0x13 - strh r1, [r0] - subs r0, #0xc - strb r2, [r0] - adds r0, #0xe - strh r1, [r0] - bx lr - .align 2, 0 -_0807FC20: .4byte gUnk_02002A40 - - thumb_func_start sub_0807FC24 -sub_0807FC24: @ 0x0807FC24 - push {lr} - ldr r0, _0807FC3C @ =gRoomControls - ldrb r0, [r0, #5] - movs r1, #0xd1 - cmp r0, #1 - bne _0807FC32 - movs r1, #0xcf -_0807FC32: - adds r0, r1, #0 - bl SetLocalFlag - pop {pc} - .align 2, 0 -_0807FC3C: .4byte gRoomControls - - thumb_func_start sub_0807FC40 -sub_0807FC40: @ 0x0807FC40 - push {lr} - ldr r0, _0807FC5C @ =gRoomControls - ldrb r2, [r0, #0xf] - movs r1, #0xfb - ands r1, r2 - strb r1, [r0, #0xf] - ldr r2, _0807FC60 @ =gUnk_0811E768 - ldrb r1, [r0, #2] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807FC5C: .4byte gRoomControls -_0807FC60: .4byte gUnk_0811E768 - - thumb_func_start sub_0807FC64 -sub_0807FC64: @ 0x0807FC64 - push {lr} - movs r2, #0 - movs r1, #1 - strb r1, [r0, #2] - strh r2, [r0] - movs r1, #4 - strb r1, [r0, #0xe] - bl sub_0807FC7C - bl sub_080805F8 - pop {pc} - - thumb_func_start sub_0807FC7C -sub_0807FC7C: @ 0x0807FC7C - push {r4, r5, r6, r7, lr} - adds r2, r0, #0 - ldr r0, [r2, #0x30] - cmp r0, #0 - bne _0807FC88 - b _0807FDA6 -_0807FC88: - movs r1, #0xa - ldrsh r4, [r2, r1] - movs r1, #0x2e - ldrsh r0, [r0, r1] - subs r0, #0x78 - subs r3, r4, r0 - cmp r3, #0 - beq _0807FD16 - ldrh r6, [r2, #0xa] - movs r7, #7 - ands r7, r6 - mov ip, r6 - cmp r3, #0 - ble _0807FCDC - ldrh r0, [r2, #6] - adds r5, r0, #0 - cmp r5, r4 - bge _0807FD16 - ldrb r0, [r2, #0xe] - cmp r0, r3 - bgt _0807FCBC - adds r3, r0, #0 - ldrb r1, [r2, #0xf] - movs r0, #4 - orrs r0, r1 - strb r0, [r2, #0xf] -_0807FCBC: - mov r1, ip - subs r0, r1, r3 - strh r0, [r2, #0xa] - subs r0, r7, r3 - cmp r0, #0 - bgt _0807FCCE - ldr r1, _0807FCD8 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807FCCE: - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r5, r0 - blt _0807FD16 - b _0807FD14 - .align 2, 0 -_0807FCD8: .4byte gUnk_02000070 -_0807FCDC: - ldrh r0, [r2, #6] - ldrh r1, [r2, #0x1e] - adds r0, r0, r1 - adds r5, r0, #0 - subs r5, #0xf0 - cmp r4, r5 - bge _0807FD16 - ldrb r0, [r2, #0xe] - rsbs r0, r0, #0 - cmp r0, r3 - blt _0807FCFC - adds r3, r0, #0 - ldrb r1, [r2, #0xf] - movs r0, #4 - orrs r0, r1 - strb r0, [r2, #0xf] -_0807FCFC: - subs r0, r6, r3 - strh r0, [r2, #0xa] - subs r0, r7, r3 - cmp r0, #7 - ble _0807FD0C - ldr r1, _0807FD68 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807FD0C: - movs r1, #0xa - ldrsh r0, [r2, r1] - cmp r0, r5 - blt _0807FD16 -_0807FD14: - strh r5, [r2, #0xa] -_0807FD16: - movs r0, #0xc - ldrsh r4, [r2, r0] - ldr r0, [r2, #0x30] - movs r1, #0x32 - ldrsh r0, [r0, r1] - subs r0, #0x50 - subs r3, r4, r0 - cmp r3, #0 - beq _0807FDA6 - ldrh r6, [r2, #0xc] - movs r7, #7 - ands r7, r6 - mov ip, r6 - cmp r3, #0 - ble _0807FD6C - ldrh r0, [r2, #8] - adds r5, r0, #0 - cmp r5, r4 - bge _0807FDA6 - ldrb r0, [r2, #0xe] - cmp r0, r3 - bgt _0807FD4C - adds r3, r0, #0 - ldrb r1, [r2, #0xf] - movs r0, #4 - orrs r0, r1 - strb r0, [r2, #0xf] -_0807FD4C: - mov r1, ip - subs r0, r1, r3 - strh r0, [r2, #0xc] - subs r0, r7, r3 - cmp r0, #0 - bgt _0807FD5E - ldr r1, _0807FD68 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807FD5E: - movs r1, #0xc - ldrsh r0, [r2, r1] - cmp r5, r0 - blt _0807FDA6 - b _0807FDA4 - .align 2, 0 -_0807FD68: .4byte gUnk_02000070 -_0807FD6C: - ldrh r0, [r2, #8] - ldrh r1, [r2, #0x20] - adds r0, r0, r1 - adds r5, r0, #0 - subs r5, #0xa0 - cmp r4, r5 - bge _0807FDA6 - ldrb r0, [r2, #0xe] - rsbs r0, r0, #0 - cmp r0, r3 - blt _0807FD8C - adds r3, r0, #0 - ldrb r1, [r2, #0xf] - movs r0, #4 - orrs r0, r1 - strb r0, [r2, #0xf] -_0807FD8C: - subs r0, r6, r3 - strh r0, [r2, #0xc] - subs r0, r7, r3 - cmp r0, #7 - ble _0807FD9C - ldr r1, _0807FDAC @ =gUnk_02000070 - movs r0, #1 - strb r0, [r1] -_0807FD9C: - movs r1, #0xc - ldrsh r0, [r2, r1] - cmp r0, r5 - blt _0807FDA6 -_0807FDA4: - strh r5, [r2, #0xc] -_0807FDA6: - bl sub_08080BC4 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_0807FDAC: .4byte gUnk_02000070 - - thumb_func_start sub_0807FDB0 -sub_0807FDB0: @ 0x0807FDB0 - push {lr} - ldr r2, _0807FDC4 @ =gUnk_0811E780 - ldrb r1, [r0, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807FDC4: .4byte gUnk_0811E780 - - thumb_func_start sub_0807FDC8 -sub_0807FDC8: @ 0x0807FDC8 - push {r4, r5, lr} - adds r5, r0, #0 - ldr r4, _0807FDE0 @ =gUnk_02000070 - movs r0, #1 - strb r0, [r4] - bl sub_08000108 - movs r1, #0 - movs r0, #1 - strb r0, [r5, #3] - strb r1, [r4] - pop {r4, r5, pc} - .align 2, 0 -_0807FDE0: .4byte gUnk_02000070 - - thumb_func_start sub_0807FDE4 -sub_0807FDE4: @ 0x0807FDE4 - movs r2, #0 - movs r1, #2 - strb r1, [r0, #3] - strh r2, [r0, #0x18] - ldr r0, _0807FDF4 @ =gUnk_02000070 - strb r1, [r0] - bx lr - .align 2, 0 -_0807FDF4: .4byte gUnk_02000070 - - thumb_func_start sub_0807FDF8 -sub_0807FDF8: @ 0x0807FDF8 - push {r4, lr} - adds r4, r0, #0 - ldr r1, _0807FE18 @ =gUnk_02000070 - movs r0, #2 - strb r0, [r1] - ldrh r0, [r4, #0x18] - adds r0, #1 - strh r0, [r4, #0x18] - ldrb r0, [r4, #0x10] - cmp r0, #1 - beq _0807FE44 - cmp r0, #1 - bgt _0807FE1C - cmp r0, #0 - beq _0807FE26 - b _0807FEB6 - .align 2, 0 -_0807FE18: .4byte gUnk_02000070 -_0807FE1C: - cmp r0, #2 - beq _0807FE68 - cmp r0, #3 - beq _0807FE94 - b _0807FEB6 -_0807FE26: - ldrh r0, [r4, #0xc] - subs r0, #4 - strh r0, [r4, #0xc] - ldr r1, [r4, #0x30] - ldr r0, _0807FE3C @ =gPlayerEntity - cmp r1, r0 - bne _0807FE80 - ldr r0, [r1, #0x30] - ldr r2, _0807FE40 @ =0xFFFFA000 - b _0807FE7C - .align 2, 0 -_0807FE3C: .4byte gPlayerEntity -_0807FE40: .4byte 0xFFFFA000 -_0807FE44: - ldrh r0, [r4, #0xa] - adds r0, #4 - strh r0, [r4, #0xa] - ldr r1, [r4, #0x30] - ldr r0, _0807FE64 @ =gPlayerEntity - cmp r1, r0 - bne _0807FE5C - ldr r0, [r1, #0x2c] - movs r2, #0x80 - lsls r2, r2, #7 - adds r0, r0, r2 - str r0, [r1, #0x2c] -_0807FE5C: - ldrh r0, [r4, #0x18] - cmp r0, #0x3c - bne _0807FEB6 - b _0807FE86 - .align 2, 0 -_0807FE64: .4byte gPlayerEntity -_0807FE68: - ldrh r0, [r4, #0xc] - adds r0, #4 - strh r0, [r4, #0xc] - ldr r1, [r4, #0x30] - ldr r0, _0807FE90 @ =gPlayerEntity - cmp r1, r0 - bne _0807FE80 - ldr r0, [r1, #0x30] - movs r2, #0xc0 - lsls r2, r2, #7 -_0807FE7C: - adds r0, r0, r2 - str r0, [r1, #0x30] -_0807FE80: - ldrh r0, [r4, #0x18] - cmp r0, #0x28 - bne _0807FEB6 -_0807FE86: - adds r0, r4, #0 - bl sub_0807FEC8 - b _0807FEB6 - .align 2, 0 -_0807FE90: .4byte gPlayerEntity -_0807FE94: - ldrh r0, [r4, #0xa] - subs r0, #4 - strh r0, [r4, #0xa] - ldr r1, [r4, #0x30] - ldr r0, _0807FEC0 @ =gPlayerEntity - cmp r1, r0 - bne _0807FEAA - ldr r0, [r1, #0x2c] - ldr r2, _0807FEC4 @ =0xFFFFC000 - adds r0, r0, r2 - str r0, [r1, #0x2c] -_0807FEAA: - ldrh r0, [r4, #0x18] - cmp r0, #0x3c - bne _0807FEB6 - adds r0, r4, #0 - bl sub_0807FEC8 -_0807FEB6: - movs r0, #0 - strh r0, [r4, #0x16] - bl sub_08080BC4 - pop {r4, pc} - .align 2, 0 -_0807FEC0: .4byte gPlayerEntity -_0807FEC4: .4byte 0xFFFFC000 - - thumb_func_start sub_0807FEC8 -sub_0807FEC8: @ 0x0807FEC8 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #0 - strb r0, [r5, #2] - subs r0, #1 - ldr r4, _0807FEEC @ =gUnk_03003FC0 - adds r1, r4, #0 - movs r2, #0x40 - bl _DmaFill32 - subs r4, #0x40 - ldr r1, [r5, #0x30] - ldrh r0, [r1, #0x2e] - strh r0, [r4, #0x16] - ldrh r0, [r1, #0x32] - strh r0, [r4, #0x18] - pop {r4, r5, pc} - .align 2, 0 -_0807FEEC: .4byte gUnk_03003FC0 - - thumb_func_start sub_0807FEF0 -sub_0807FEF0: @ 0x0807FEF0 - push {lr} - ldr r2, _0807FF04 @ =gUnk_0811E78C - ldrb r1, [r0, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807FF04: .4byte gUnk_0811E78C - - thumb_func_start sub_0807FF08 -sub_0807FF08: @ 0x0807FF08 - movs r2, #0 - movs r1, #1 - strb r1, [r0, #3] - strh r2, [r0, #0x18] - ldr r1, _0807FF18 @ =gUnk_02000070 - movs r0, #3 - strb r0, [r1] - bx lr - .align 2, 0 -_0807FF18: .4byte gUnk_02000070 - - thumb_func_start sub_0807FF1C -sub_0807FF1C: @ 0x0807FF1C - push {lr} - adds r2, r0, #0 - ldr r0, _0807FF4C @ =gScreenTransition - ldr r0, [r0] - movs r1, #1 - ands r0, r1 - cmp r0, #0 - bne _0807FF48 - ldr r1, _0807FF50 @ =gUnk_02000070 - movs r0, #3 - strb r0, [r1] - ldrh r0, [r2, #0x18] - adds r0, #1 - strh r0, [r2, #0x18] - lsls r0, r0, #0x10 - lsrs r0, r0, #0x10 - cmp r0, #0x13 - bls _0807FF48 - movs r0, #0 - strb r0, [r2, #2] - bl sub_0805E5B4 -_0807FF48: - pop {pc} - .align 2, 0 -_0807FF4C: .4byte gScreenTransition -_0807FF50: .4byte gUnk_02000070 - - thumb_func_start sub_0807FF54 -sub_0807FF54: @ 0x0807FF54 - push {lr} - ldr r2, _0807FF68 @ =gUnk_0811E794 - ldrb r1, [r0, #3] - lsls r1, r1, #2 - adds r1, r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {pc} - .align 2, 0 -_0807FF68: .4byte gUnk_0811E794 - - thumb_func_start sub_0807FF6C -sub_0807FF6C: @ 0x0807FF6C - push {r4, lr} - movs r1, #1 - strb r1, [r0, #3] - ldr r3, _0807FFC8 @ =gScreen - ldrh r1, [r3] - movs r2, #0x80 - lsls r2, r2, #7 - adds r0, r2, #0 - orrs r0, r1 - strh r0, [r3] - adds r2, r3, #0 - adds r2, #0x60 - ldrb r0, [r2] - movs r4, #0xb8 - lsls r4, r4, #5 - adds r1, r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r2, #2 - ldrh r1, [r2] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r1 - movs r1, #7 - movs r4, #0 - orrs r0, r1 - strh r0, [r2] - adds r0, r3, #0 - adds r0, #0x5a - movs r1, #0xf0 - strh r1, [r0] - adds r0, #4 - strh r1, [r0] - bl ResetPlayer - bl sub_080791D0 - ldr r0, _0807FFCC @ =gUnk_03004030 - ldrb r0, [r0, #8] - cmp r0, #0 - beq _0807FFD4 - ldr r1, _0807FFD0 @ =gPlayerEntity - movs r0, #4 - strb r0, [r1, #0x14] - b _0807FFD8 - .align 2, 0 -_0807FFC8: .4byte gScreen -_0807FFCC: .4byte gUnk_03004030 -_0807FFD0: .4byte gPlayerEntity -_0807FFD4: - ldr r0, _0807FFE0 @ =gPlayerEntity - strb r4, [r0, #0x14] -_0807FFD8: - bl sub_080809D4 - pop {r4, pc} - .align 2, 0 -_0807FFE0: .4byte gPlayerEntity - - thumb_func_start sub_0807FFE4 -sub_0807FFE4: @ 0x0807FFE4 - push {r4, r5, lr} - adds r5, r0, #0 - movs r0, #2 - strb r0, [r5, #3] - bl sub_080803D0 - adds r0, #6 - strh r0, [r5, #0x18] - ldr r4, _0808002C @ =gUnk_0200B640 - bl sub_08080278 - strh r0, [r4] - ldr r1, _08080030 @ =gUnk_08109194 - ldr r0, _08080034 @ =gUnk_03004030 - ldr r0, [r0] - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0] - bl sub_080197D4 - ldr r4, _08080038 @ =gMapDataTop - ldrh r1, [r5, #0x1e] - lsrs r1, r1, #4 - ldrh r2, [r5, #0x20] - lsrs r2, r2, #4 - adds r0, r4, #0 - bl sub_0807C8B0 - ldr r0, _0808003C @ =gMapDataTopSpecial - subs r4, #4 - adds r1, r4, #0 - bl sub_0801AB08 - pop {r4, r5, pc} - .align 2, 0 -_0808002C: .4byte gUnk_0200B640 -_08080030: .4byte gUnk_08109194 -_08080034: .4byte gUnk_03004030 -_08080038: .4byte gMapDataTop -_0808003C: .4byte gMapDataTopSpecial - - thumb_func_start sub_08080040 -sub_08080040: @ 0x08080040 - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r4, [r5, #0x18] - subs r4, #6 - strh r4, [r5, #0x18] - ldrh r0, [r5, #0x18] - lsls r0, r0, #1 - movs r1, #3 - bl __divsi3 - strh r0, [r5, #0x1a] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #0x2a - bls _080800C6 - ldr r3, [r5, #0x30] - movs r1, #0x2e - ldrsh r0, [r3, r1] - movs r2, #0xa - ldrsh r1, [r5, r2] - subs r2, r0, r1 - ldrh r1, [r5, #0x18] - subs r0, r2, r1 - adds r7, r0, #0 - adds r7, #8 - cmp r7, #0 - bge _08080078 - movs r7, #0 -_08080078: - adds r0, r2, r1 - adds r6, r0, #0 - subs r6, #8 - cmp r6, #0xf0 - ble _08080084 - movs r6, #0xf0 -_08080084: - movs r1, #0x32 - ldrsh r0, [r3, r1] - movs r2, #0xc - ldrsh r1, [r5, r2] - subs r2, r0, r1 - ldrh r1, [r5, #0x1a] - subs r0, r2, r1 - adds r4, r0, #0 - adds r4, #8 - cmp r4, #0 - bge _0808009C - movs r4, #0 -_0808009C: - adds r0, r2, r1 - adds r3, r0, #0 - subs r3, #8 - cmp r3, #0xa0 - ble _080800A8 - movs r3, #0xa0 -_080800A8: - ldr r2, _080800F0 @ =gScreen - movs r1, #0xff - ands r7, r1 - lsls r0, r7, #8 - ands r6, r1 - orrs r0, r6 - adds r6, r2, #0 - adds r6, #0x5a - strh r0, [r6] - ands r4, r1 - lsls r0, r4, #8 - ands r3, r1 - orrs r0, r3 - adds r2, #0x5e - strh r0, [r2] -_080800C6: - ldrh r0, [r5, #0x18] - cmp r0, #0 - bne _080800FC - movs r0, #3 - strb r0, [r5, #3] - bl sub_0805E9F4 - bl sub_0807C810 - ldr r1, _080800F4 @ =gUnk_08109194 - ldr r0, _080800F8 @ =gUnk_03004030 - ldr r0, [r0] - ldrb r0, [r0, #3] - lsls r0, r0, #2 - adds r0, r0, r1 - ldr r0, [r0] - ldr r0, [r0, #4] - bl sub_08080C80 - b _08080102 - .align 2, 0 -_080800F0: .4byte gScreen -_080800F4: .4byte gUnk_08109194 -_080800F8: .4byte gUnk_03004030 -_080800FC: - ldr r1, _08080104 @ =gUnk_02000070 - movs r0, #4 - strb r0, [r1] -_08080102: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08080104: .4byte gUnk_02000070 - - thumb_func_start sub_08080108 -sub_08080108: @ 0x08080108 - push {r4, r5, r6, lr} - movs r1, #4 - strb r1, [r0, #3] - ldr r5, _08080178 @ =gMapDataBottom - movs r0, #0xc0 - lsls r0, r0, #6 - adds r1, r5, r0 - movs r6, #0x80 - lsls r6, r6, #6 - adds r0, r5, #0 - adds r2, r6, #0 - bl _DmaCopy - ldr r4, _0808017C @ =gMapDataTop - movs r0, #0xc0 - lsls r0, r0, #6 - adds r1, r4, r0 - adds r0, r4, #0 - adds r2, r6, #0 - bl _DmaCopy - bl sub_08080368 - ldr r1, _08080180 @ =gUnk_02034480 - ldr r0, _08080184 @ =gUnk_0200B640 - ldrh r0, [r0] - strh r0, [r1] - ldr r0, _08080188 @ =gUnk_02022830 - ldr r1, _0808018C @ =gUnk_020246B0 - movs r2, #0xc0 - lsls r2, r2, #5 - bl _DmaCopy - subs r5, #4 - adds r0, r5, #0 - bl sub_08080B60 - subs r4, #4 - adds r0, r4, #0 - bl sub_08080B60 - bl sub_0807BBE4 - bl sub_0807BC84 - bl sub_0805E248 - ldr r0, _08080190 @ =gUnk_02019EE0 - adds r1, r5, #0 - bl sub_0801AB08 - ldr r0, _08080194 @ =gMapDataTopSpecial - adds r1, r4, #0 - bl sub_0801AB08 - pop {r4, r5, r6, pc} - .align 2, 0 -_08080178: .4byte gMapDataBottom -_0808017C: .4byte gMapDataTop -_08080180: .4byte gUnk_02034480 -_08080184: .4byte gUnk_0200B640 -_08080188: .4byte gUnk_02022830 -_0808018C: .4byte gUnk_020246B0 -_08080190: .4byte gUnk_02019EE0 -_08080194: .4byte gMapDataTopSpecial - - thumb_func_start sub_08080198 -sub_08080198: @ 0x08080198 - push {r4, lr} - movs r1, #5 - strb r1, [r0, #3] - movs r4, #0 - movs r1, #0xff - strh r1, [r0, #0x1c] - bl LoadRoom - bl sub_0804AFF4 - ldr r0, _080801B8 @ =gUnk_02000070 - strb r4, [r0] - bl sub_080805F8 - pop {r4, pc} - .align 2, 0 -_080801B8: .4byte gUnk_02000070 - - thumb_func_start sub_080801BC -sub_080801BC: @ 0x080801BC - push {r4, r5, r6, r7, lr} - adds r5, r0, #0 - ldrh r4, [r5, #0x18] - adds r4, #6 - strh r4, [r5, #0x18] - ldrh r0, [r5, #0x18] - lsls r0, r0, #1 - movs r1, #3 - bl __divsi3 - strh r0, [r5, #0x1a] - lsls r4, r4, #0x10 - lsrs r4, r4, #0x10 - cmp r4, #0x1e - bls _08080232 - ldr r2, [r5, #0x30] - movs r0, #0x2e - ldrsh r1, [r2, r0] - movs r3, #0xa - ldrsh r0, [r5, r3] - subs r0, r1, r0 - ldrh r1, [r5, #0x18] - subs r7, r0, r1 - cmp r7, #0 - bge _080801F0 - movs r7, #0 -_080801F0: - adds r6, r0, r1 - cmp r6, #0xf0 - ble _080801F8 - movs r6, #0xf0 -_080801F8: - movs r0, #0x32 - ldrsh r1, [r2, r0] - movs r2, #0xc - ldrsh r0, [r5, r2] - subs r0, r1, r0 - ldrh r1, [r5, #0x1a] - subs r4, r0, r1 - cmp r4, #0 - bge _0808020C - movs r4, #0 -_0808020C: - adds r3, r0, r1 - cmp r3, #0xa0 - ble _08080214 - movs r3, #0xa0 -_08080214: - ldr r2, _08080260 @ =gScreen - movs r1, #0xff - ands r7, r1 - lsls r0, r7, #8 - ands r6, r1 - orrs r0, r6 - adds r6, r2, #0 - adds r6, #0x5a - strh r0, [r6] - ands r4, r1 - lsls r0, r4, #8 - ands r3, r1 - orrs r0, r3 - adds r2, #0x5e - strh r0, [r2] -_08080232: - ldrh r0, [r5, #0x1c] - cmp r0, #0 - bne _08080268 - strb r0, [r5, #2] - strh r0, [r5] - bl sub_0805E5B4 - ldr r1, _08080260 @ =gScreen - ldrh r2, [r1] - ldr r0, _08080264 @ =0x0000BFFF - ands r0, r2 - strh r0, [r1] - adds r2, r1, #0 - adds r2, #0x60 - ldrb r0, [r2] - strh r0, [r2] - adds r1, #0x62 - ldrh r2, [r1] - movs r0, #0xff - lsls r0, r0, #8 - ands r0, r2 - strh r0, [r1] - b _08080272 - .align 2, 0 -_08080260: .4byte gScreen -_08080264: .4byte 0x0000BFFF -_08080268: - ldr r0, _08080274 @ =gUnk_02000070 - movs r1, #4 - strb r1, [r0] - movs r0, #0 - strh r0, [r5, #0x1c] -_08080272: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08080274: .4byte gUnk_02000070 - - thumb_func_start sub_08080278 -sub_08080278: @ 0x08080278 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #8 - ldr r0, _08080344 @ =gUnk_02022830 - mov ip, r0 - ldr r1, _08080348 @ =gRoomControls - ldrh r0, [r1, #0x1e] - lsrs r0, r0, #4 - str r0, [sp] - ldrh r0, [r1, #0x20] - lsrs r0, r0, #4 - lsls r0, r0, #6 - str r0, [sp, #4] - movs r5, #0 - mov sl, r5 - cmp r5, r0 - bhs _08080336 - mov sb, r5 -_080802A2: - movs r1, #0 - mov r8, r1 - ldr r0, [sp] - cmp r8, r0 - bhs _08080328 - ldr r4, _0808034C @ =gMapDataTop - add r4, sb - ldr r7, _08080350 @ =gUnk_0200E654 - add r7, sb - ldr r3, _08080354 @ =gMapDataBottom - add r3, sb - ldr r6, _08080358 @ =gUnk_02028EB4 - add r6, sb -_080802BC: - mov r2, sl - add r2, r8 - ldrh r0, [r6] - ldrh r1, [r3] - cmp r0, r1 - beq _080802EA - ldr r0, _0808035C @ =0x00003FFF - cmp r1, r0 - bhi _080802EA - adds r0, #1 - adds r1, r0, #0 - adds r0, r2, #0 - orrs r0, r1 - mov r1, ip - strh r0, [r1] - ldrh r0, [r3] - strh r0, [r1, #2] - movs r0, #4 - add ip, r0 - adds r5, #1 - ldr r0, _08080360 @ =0x000005FF - cmp r5, r0 - bhi _08080336 -_080802EA: - ldrh r0, [r7] - ldrh r1, [r4] - cmp r0, r1 - beq _08080316 - ldr r0, _0808035C @ =0x00003FFF - cmp r1, r0 - bhi _08080316 - movs r1, #0x80 - lsls r1, r1, #8 - adds r0, r1, #0 - orrs r2, r0 - mov r0, ip - strh r2, [r0] - ldrh r0, [r4] - mov r1, ip - strh r0, [r1, #2] - movs r0, #4 - add ip, r0 - adds r5, #1 - ldr r0, _08080364 @ =0x000007FF - cmp r5, r0 - bhi _08080336 -_08080316: - adds r4, #2 - adds r7, #2 - adds r3, #2 - adds r6, #2 - movs r1, #1 - add r8, r1 - ldr r0, [sp] - cmp r8, r0 - blo _080802BC -_08080328: - movs r1, #0x80 - add sb, r1 - movs r0, #0x40 - add sl, r0 - ldr r1, [sp, #4] - cmp sl, r1 - blo _080802A2 -_08080336: - adds r0, r5, #0 - add sp, #8 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_08080344: .4byte gUnk_02022830 -_08080348: .4byte gRoomControls -_0808034C: .4byte gMapDataTop -_08080350: .4byte gUnk_0200E654 -_08080354: .4byte gMapDataBottom -_08080358: .4byte gUnk_02028EB4 -_0808035C: .4byte 0x00003FFF -_08080360: .4byte 0x000005FF -_08080364: .4byte 0x000007FF - - thumb_func_start sub_08080368 -sub_08080368: @ 0x08080368 - push {r4, r5, r6, r7, lr} - ldr r0, _08080384 @ =gUnk_03004030 - ldr r1, _08080388 @ =gRoomControls - ldrb r0, [r0, #0xa] - ldrb r1, [r1, #4] - cmp r0, r1 - beq _08080390 - cmp r0, #0xff - beq _08080390 - ldr r1, _0808038C @ =gUnk_02034480 - movs r0, #0 - strh r0, [r1] - b _080803BE - .align 2, 0 -_08080384: .4byte gUnk_03004030 -_08080388: .4byte gRoomControls -_0808038C: .4byte gUnk_02034480 -_08080390: - ldr r5, _080803C0 @ =gUnk_020246B0 - ldr r0, _080803C4 @ =gUnk_02034480 - ldrh r0, [r0] - lsls r6, r0, #1 - movs r4, #0 - cmp r4, r6 - bhs _080803B8 - ldr r0, _080803C8 @ =0x00000FFF - adds r7, r0, #0 -_080803A2: - ldrh r0, [r5, #2] - ldrh r2, [r5] - adds r1, r7, #0 - ands r1, r2 - lsrs r2, r2, #0xe - bl sub_0807B9B8 - adds r5, #4 - adds r4, #2 - cmp r4, r6 - blo _080803A2 -_080803B8: - ldr r1, _080803CC @ =gUnk_02000070 - movs r0, #0 - strb r0, [r1] -_080803BE: - pop {r4, r5, r6, r7, pc} - .align 2, 0 -_080803C0: .4byte gUnk_020246B0 -_080803C4: .4byte gUnk_02034480 -_080803C8: .4byte 0x00000FFF -_080803CC: .4byte gUnk_02000070 - - thumb_func_start sub_080803D0 -sub_080803D0: @ 0x080803D0 - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - sub sp, #0x38 - ldr r1, _080804F0 @ =gRoomControls - movs r2, #0xa - ldrsh r0, [r1, r2] - ldrh r2, [r1, #6] - subs r0, r0, r2 - str r0, [sp, #0x18] - ldr r3, [r1, #0x30] - movs r4, #0x2e - ldrsh r0, [r3, r4] - subs r0, r0, r2 - str r0, [sp, #0x10] - movs r2, #0xc - ldrsh r0, [r1, r2] - ldrh r1, [r1, #8] - subs r0, r0, r1 - str r0, [sp, #0x1c] - movs r4, #0x32 - ldrsh r0, [r3, r4] - subs r0, r0, r1 - str r0, [sp, #0x14] - movs r0, #0x3c - str r0, [sp, #8] -_08080408: - movs r7, #0 - ldr r1, [sp, #8] - adds r1, #6 - str r1, [sp, #8] - adds r2, r1, #0 - muls r2, r1, r2 - mov sl, r2 - lsls r4, r1, #1 - adds r0, r4, #0 - movs r1, #3 - bl __divsi3 - str r0, [sp, #0xc] - adds r1, r0, #0 - muls r1, r0, r1 - mov sb, r1 - movs r2, #0 - str r2, [sp, #4] - rsbs r4, r4, #0 - adds r4, #1 - mov r0, sb - muls r0, r4, r0 - mov r4, sl - lsls r5, r4, #1 - adds r4, r0, r5 - ldr r0, [sp, #8] - mov r6, sb - muls r6, r0, r6 - adds r0, r6, #0 - mov r1, sl - bl __divsi3 - adds r2, r0, #0 - cmp r7, r2 - bgt _08080506 - ldr r1, [sp, #0x18] - adds r1, #0xf8 - str r1, [sp, #0x20] - mov r1, sl - adds r0, r5, r1 - lsls r3, r0, #1 - str r6, [sp, #0x2c] - ldr r0, [sp, #8] - lsls r1, r0, #2 - rsbs r1, r1, #0 - adds r1, #4 - mov r8, r1 - rsbs r0, r0, #0 - adds r0, #8 - ldr r1, [sp, #0x10] - adds r6, r0, r1 - ldr r0, [sp, #8] - adds r5, r0, r1 - mov r0, r8 - mov r1, sb - muls r1, r0, r1 - mov r8, r1 -_0808047A: - ldr r1, [sp, #0x1c] - adds r1, #0xa8 - mov ip, r1 - ldr r0, [sp, #0x14] - ldr r1, [sp, #4] - adds r0, r0, r1 - str r0, [sp, #0x34] - cmp ip, r0 - ble _080804A0 - ldr r0, [sp, #0x20] - cmp r0, r5 - ble _08080496 - movs r0, #1 - orrs r7, r0 -_08080496: - ldr r1, [sp, #0x18] - cmp r1, r6 - bge _080804A0 - movs r0, #2 - orrs r7, r0 -_080804A0: - ldr r0, [sp, #0x14] - ldr r1, [sp, #4] - subs r0, r0, r1 - mov ip, r0 - adds r0, #8 - ldr r1, [sp, #0x1c] - cmp r1, r0 - bge _080804C4 - ldr r0, [sp, #0x20] - cmp r0, r5 - ble _080804BA - movs r0, #4 - orrs r7, r0 -_080804BA: - ldr r1, [sp, #0x18] - cmp r1, r6 - bge _080804C4 - movs r0, #8 - orrs r7, r0 -_080804C4: - cmp r4, #0 - ble _080804F4 - mov r2, r8 - adds r0, r2, r3 - adds r4, r4, r0 - ldr r0, [sp, #0x2c] - mov r1, sb - subs r0, r0, r1 - str r0, [sp, #0x2c] - lsls r0, r1, #2 - add r8, r0 - adds r6, #1 - subs r5, #1 - ldr r0, [sp, #0x2c] - mov r1, sl - str r3, [sp, #0x30] - bl __divsi3 - adds r2, r0, #0 - ldr r3, [sp, #0x30] - b _080804F6 - .align 2, 0 -_080804F0: .4byte gRoomControls -_080804F4: - adds r4, r4, r3 -_080804F6: - mov r1, sl - lsls r0, r1, #2 - adds r3, r3, r0 - ldr r0, [sp, #4] - adds r0, #1 - str r0, [sp, #4] - cmp r0, r2 - ble _0808047A -_08080506: - movs r1, #0 - str r1, [sp] - ldr r2, [sp, #0xc] - str r2, [sp, #4] - mov r4, sb - lsls r6, r4, #1 - lsls r0, r2, #1 - rsbs r0, r0, #0 - adds r0, #1 - mov r1, sl - muls r1, r0, r1 - adds r0, r1, #0 - adds r4, r6, r0 - mov r5, sl - muls r5, r2, r5 - adds r0, r5, #0 - mov r1, sb - bl __divsi3 - adds r2, r0, #0 - ldr r0, [sp] - cmp r0, r2 - bgt _080805E4 - ldr r1, [sp, #0x18] - adds r1, #0xf8 - str r1, [sp, #0x24] - mov r1, sb - adds r0, r6, r1 - lsls r0, r0, #1 - mov r8, r0 - ldr r3, [sp, #0x10] - adds r3, #8 - ldr r6, [sp, #0x10] - str r5, [sp, #0x28] - ldr r1, [sp, #4] - lsls r0, r1, #2 - rsbs r0, r0, #0 - adds r0, #4 - mov r5, sl - muls r5, r0, r5 -_08080556: - ldr r0, [sp, #0x1c] - adds r0, #0xa8 - mov ip, r0 - ldr r1, [sp, #0x14] - ldr r0, [sp, #4] - adds r1, r1, r0 - str r1, [sp, #0x34] - cmp ip, r1 - ble _0808057C - ldr r1, [sp, #0x24] - cmp r1, r6 - ble _08080572 - movs r0, #0x10 - orrs r7, r0 -_08080572: - ldr r0, [sp, #0x18] - cmp r0, r3 - bge _0808057C - movs r0, #0x20 - orrs r7, r0 -_0808057C: - ldr r1, [sp, #0x14] - ldr r0, [sp, #4] - subs r1, r1, r0 - mov ip, r1 - mov r0, ip - adds r0, #8 - ldr r1, [sp, #0x1c] - cmp r1, r0 - bge _080805A2 - ldr r0, [sp, #0x24] - cmp r0, r6 - ble _08080598 - movs r0, #0x40 - orrs r7, r0 -_08080598: - ldr r1, [sp, #0x18] - cmp r1, r3 - bge _080805A2 - movs r0, #0x80 - orrs r7, r0 -_080805A2: - cmp r4, #0 - ble _080805CE - mov r2, r8 - adds r0, r2, r5 - adds r4, r4, r0 - ldr r0, [sp, #0x28] - mov r1, sl - subs r0, r0, r1 - str r0, [sp, #0x28] - lsls r0, r1, #2 - adds r5, r5, r0 - ldr r2, [sp, #4] - subs r2, #1 - str r2, [sp, #4] - ldr r0, [sp, #0x28] - mov r1, sb - str r3, [sp, #0x30] - bl __divsi3 - adds r2, r0, #0 - ldr r3, [sp, #0x30] - b _080805D0 -_080805CE: - add r4, r8 -_080805D0: - mov r1, sb - lsls r0, r1, #2 - add r8, r0 - subs r3, #1 - adds r6, #1 - ldr r0, [sp] - adds r0, #1 - str r0, [sp] - cmp r0, r2 - ble _08080556 -_080805E4: - cmp r7, #0 - beq _080805EA - b _08080408 -_080805EA: - ldr r0, [sp, #8] - add sp, #0x38 - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_080805F8 -sub_080805F8: @ 0x080805F8 - push {lr} - ldr r0, _08080610 @ =gRoomControls - ldrb r0, [r0, #4] - subs r0, #0xc - cmp r0, #0xd - bhi _0808065C - lsls r0, r0, #2 - ldr r1, _08080614 @ =_08080618 - adds r0, r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08080610: .4byte gRoomControls -_08080614: .4byte _08080618 -_08080618: @ jump table - .4byte _08080650 @ case 0 - .4byte _0808065C @ case 1 - .4byte _0808065C @ case 2 - .4byte _08080650 @ case 3 - .4byte _0808065C @ case 4 - .4byte _0808065C @ case 5 - .4byte _0808065C @ case 6 - .4byte _08080650 @ case 7 - .4byte _08080650 @ case 8 - .4byte _0808065C @ case 9 - .4byte _08080650 @ case 10 - .4byte _08080650 @ case 11 - .4byte _0808065C @ case 12 - .4byte _08080650 @ case 13 -_08080650: - ldr r1, _08080658 @ =gUnk_03004030 - movs r0, #1 - b _08080660 - .align 2, 0 -_08080658: .4byte gUnk_03004030 -_0808065C: - ldr r1, _08080664 @ =gUnk_03004030 - movs r0, #0 -_08080660: - strb r0, [r1, #8] - pop {pc} - .align 2, 0 -_08080664: .4byte gUnk_03004030 - - thumb_func_start sub_08080668 -sub_08080668: @ 0x08080668 - push {r4, r5, lr} - ldr r5, _080806A4 @ =gRoomControls - adds r0, r5, #0 - movs r1, #0x38 - bl _DmaZero - ldr r4, _080806A8 @ =gUnk_03004030 - adds r0, r4, #0 - movs r1, #0xc - bl _DmaZero - ldr r0, _080806AC @ =0x0000FFFF - strh r0, [r5, #0x22] - movs r0, #0xff - strb r0, [r4, #0xa] - ldr r1, _080806B0 @ =gUnk_02034480 - movs r0, #0 - strh r0, [r1] - ldr r0, _080806B4 @ =gUnk_02019EE0 - movs r4, #0x80 - lsls r4, r4, #8 - adds r1, r4, #0 - bl _DmaZero - ldr r0, _080806B8 @ =gMapDataTopSpecial - adds r1, r4, #0 - bl _DmaZero - pop {r4, r5, pc} - .align 2, 0 -_080806A4: .4byte gRoomControls -_080806A8: .4byte gUnk_03004030 -_080806AC: .4byte 0x0000FFFF -_080806B0: .4byte gUnk_02034480 -_080806B4: .4byte gUnk_02019EE0 -_080806B8: .4byte gMapDataTopSpecial - - thumb_func_start sub_080806BC -sub_080806BC: @ 0x080806BC - push {r4, r5, r6, r7, lr} - mov r7, sl - mov r6, sb - mov r5, r8 - push {r5, r6, r7} - mov sb, r0 - mov r8, r1 - adds r7, r2, #0 - adds r6, r3, #0 - ldr r0, _08080710 @ =gArea - ldr r1, _08080714 @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r5, [r0, #0x18] - ldrh r0, [r5] - ldr r1, _08080718 @ =0x0000FFFF - cmp r0, r1 - beq _08080728 - mov sl, r1 -_080806E2: - ldrh r2, [r5] - movs r0, #1 - lsls r0, r2 - ands r0, r6 - cmp r0, #0 - beq _08080720 - ldr r1, _0808071C @ =gUnk_0811E7AC - lsls r0, r2, #2 - adds r0, r0, r1 - ldr r4, [r0] - adds r0, r5, #0 - mov r1, sb - mov r2, r8 - adds r3, r7, #0 - bl _call_via_r4 - cmp r0, #0 - beq _08080720 - adds r0, r5, #0 - bl DoExitTransition - movs r0, #1 - b _0808072A - .align 2, 0 -_08080710: .4byte gArea -_08080714: .4byte 0x0000085C -_08080718: .4byte 0x0000FFFF -_0808071C: .4byte gUnk_0811E7AC -_08080720: - adds r5, #0x14 - ldrh r0, [r5] - cmp r0, sl - bne _080806E2 -_08080728: - movs r0, #0 -_0808072A: - pop {r3, r4, r5} - mov r8, r3 - mov sb, r4 - mov sl, r5 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08080734 -sub_08080734: @ 0x08080734 - push {r4, r5, r6, r7, lr} - mov r7, r8 - push {r7} - adds r6, r0, #0 - adds r5, r1, #0 - ldr r0, _08080778 @ =gArea - ldr r1, _0808077C @ =0x0000085C - adds r0, r0, r1 - ldr r0, [r0] - ldr r4, [r0, #0x18] - movs r0, #0xa - mov r8, r0 - ldrh r0, [r4] - ldr r1, _08080780 @ =0x0000FFFF - cmp r0, r1 - beq _0808078C - adds r7, r1, #0 -_08080756: - movs r0, #1 - ldrh r1, [r4] - lsls r0, r1 - mov r1, r8 - ands r0, r1 - cmp r0, #0 - beq _08080784 - adds r0, r4, #0 - adds r1, r6, #0 - adds r2, r5, #0 - movs r3, #0 - bl sub_08080808 - cmp r0, #0 - beq _08080784 - adds r0, r4, #0 - b _0808078E - .align 2, 0 -_08080778: .4byte gArea -_0808077C: .4byte 0x0000085C -_08080780: .4byte 0x0000FFFF -_08080784: - adds r4, #0x14 - ldrh r0, [r4] - cmp r0, r7 - bne _08080756 -_0808078C: - movs r0, #0 -_0808078E: - pop {r3} - mov r8, r3 - pop {r4, r5, r6, r7, pc} - - thumb_func_start sub_08080794 -sub_08080794: @ 0x08080794 - push {r4, lr} - adds r4, r0, #0 - cmp r3, #1 - beq _080807C0 - cmp r3, #1 - blo _080807AC - cmp r3, #2 - beq _080807D4 - cmp r3, #3 - beq _080807E8 -_080807A8: - movs r0, #0 - b _08080800 -_080807AC: - ldr r0, _080807BC @ =gRoomControls - ldrh r0, [r0, #0x1e] - lsrs r0, r0, #1 - movs r3, #1 - cmp r0, r1 - bhs _080807F6 - movs r3, #2 - b _080807F6 - .align 2, 0 -_080807BC: .4byte gRoomControls -_080807C0: - ldr r0, _080807D0 @ =gRoomControls - ldrh r0, [r0, #0x20] - lsrs r0, r0, #1 - movs r3, #4 - cmp r0, r2 - bhs _080807F6 - movs r3, #8 - b _080807F6 - .align 2, 0 -_080807D0: .4byte gRoomControls -_080807D4: - ldr r0, _080807E4 @ =gRoomControls - ldrh r0, [r0, #0x1e] - lsrs r0, r0, #1 - movs r3, #0x10 - cmp r0, r1 - bhs _080807F6 - movs r3, #0x20 - b _080807F6 - .align 2, 0 -_080807E4: .4byte gRoomControls -_080807E8: - ldr r0, _08080804 @ =gRoomControls - ldrh r0, [r0, #0x20] - lsrs r0, r0, #1 - movs r3, #0x40 - cmp r0, r2 - bhs _080807F6 - movs r3, #0x80 -_080807F6: - ldrb r0, [r4, #0xa] - ands r0, r3 - cmp r0, #0 - beq _080807A8 - movs r0, #1 -_08080800: - pop {r4, pc} - .align 2, 0 -_08080804: .4byte gRoomControls - - thumb_func_start sub_08080808 -sub_08080808: @ 0x08080808 - push {r4, r5, lr} - adds r3, r0, #0 - adds r5, r2, #0 - ldrb r0, [r3, #0xa] - lsls r0, r0, #1 - ldr r2, _08080838 @ =gUnk_0811E7BC - adds r4, r0, r2 - ldrb r0, [r4] - ldrh r2, [r3, #2] - subs r1, r1, r2 - adds r1, r1, r0 - lsls r0, r0, #1 - cmp r1, r0 - bhi _0808083C - ldrb r1, [r4, #1] - ldrh r0, [r3, #4] - subs r0, r5, r0 - adds r0, r0, r1 - lsls r1, r1, #1 - cmp r0, r1 - bhi _0808083C - movs r0, #1 - b _0808083E - .align 2, 0 -_08080838: .4byte gUnk_0811E7BC -_0808083C: - movs r0, #0 -_0808083E: - pop {r4, r5, pc} - - thumb_func_start DoExitTransition -DoExitTransition: @ 0x08080840 - push {r4, lr} - adds r4, r0, #0 - ldr r0, _0808085C @ =gScreenTransition - movs r1, #1 - strb r1, [r0, #8] - adds r2, r0, #0 - adds r2, #0xc - ldrh r1, [r4, #6] - ldr r0, _08080860 @ =0x000003FF - cmp r1, r0 - bhi _08080864 - strh r1, [r2, #4] - b _08080872 - .align 2, 0 -_0808085C: .4byte gScreenTransition -_08080860: .4byte 0x000003FF -_08080864: - ldr r0, _08080880 @ =gRoomControls - ldr r0, [r0, #0x30] - ldrh r1, [r0, #0x2e] - ldr r3, _08080884 @ =0xFFFF8000 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2, #4] -_08080872: - ldrh r1, [r4, #8] - ldr r0, _08080888 @ =0x000003FF - cmp r1, r0 - bhi _0808088C - strh r1, [r2, #6] - b _0808089A - .align 2, 0 -_08080880: .4byte gRoomControls -_08080884: .4byte 0xFFFF8000 -_08080888: .4byte 0x000003FF -_0808088C: - ldr r0, _080808CC @ =gRoomControls - ldr r0, [r0, #0x30] - ldrh r1, [r0, #0x32] - ldr r3, _080808D0 @ =0xFFFF8000 - adds r0, r3, #0 - orrs r0, r1 - strh r0, [r2, #6] -_0808089A: - ldrb r0, [r4, #0xb] - strb r0, [r2] - ldrb r0, [r4, #0xc] - strb r0, [r2, #1] - ldrb r0, [r4, #0xd] - strb r0, [r2, #8] - ldrb r0, [r4, #0xe] - strb r0, [r2, #3] - ldrb r0, [r4, #0xf] - strb r0, [r2, #2] - ldrh r0, [r4, #0x10] - cmp r0, #0 - beq _080808B8 - bl PlaySFX -_080808B8: - ldr r0, _080808D4 @ =gUnk_0811E7C4 - ldrh r1, [r4] - lsls r1, r1, #2 - adds r1, r1, r0 - ldrb r0, [r4, #0xa] - ldr r1, [r1] - bl _call_via_r1 - pop {r4, pc} - .align 2, 0 -_080808CC: .4byte gRoomControls -_080808D0: .4byte 0xFFFF8000 -_080808D4: .4byte gUnk_0811E7C4 diff --git a/asm/code_0807F0D8.s b/asm/code_0807F0D8.s new file mode 100644 index 00000000..4f9ed157 --- /dev/null +++ b/asm/code_0807F0D8.s @@ -0,0 +1,3251 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .syntax unified + + .text + + thumb_func_start sub_0807F0D8 +sub_0807F0D8: @ 0x0807F0D8 + ldr r0, _0807F0E8 @ =gUnk_03000FF0 + ldrh r2, [r0, #2] + rsbs r0, r2, #0 + orrs r0, r2 + lsrs r0, r0, #0x1f + str r0, [r1, #0x14] + bx lr + .align 2, 0 +_0807F0E8: .4byte gUnk_03000FF0 + + thumb_func_start sub_0807F0EC +sub_0807F0EC: @ 0x0807F0EC + push {r4, lr} + adds r4, r1, #0 + bl Random + ldr r1, [r4, #4] + bl __modsi3 + str r0, [r4, #4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F100 +sub_0807F100: @ 0x0807F100 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl Random + movs r2, #6 + adds r1, r0, #0 + ands r1, r2 + strb r1, [r4, #0x14] + ldr r2, _0807F124 @ =gUnk_0811E750 + lsrs r0, r0, #8 + movs r1, #7 + ands r0, r1 + adds r0, r0, r2 + ldrb r0, [r0] + strb r0, [r5, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0807F124: .4byte gUnk_0811E750 + + thumb_func_start sub_0807F128 +sub_0807F128: @ 0x0807F128 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + bl Random + ldr r2, _0807F150 @ =gUnk_0811E758 + movs r3, #7 + adds r1, r0, #0 + ands r1, r3 + adds r1, r1, r2 + ldrb r1, [r1] + strb r1, [r4, #0x14] + ldr r1, _0807F154 @ =gUnk_0811E760 + lsrs r0, r0, #8 + ands r0, r3 + adds r0, r0, r1 + ldrb r0, [r0] + strb r0, [r5, #0x1a] + pop {r4, r5, pc} + .align 2, 0 +_0807F150: .4byte gUnk_0811E758 +_0807F154: .4byte gUnk_0811E760 + + thumb_func_start sub_0807F158 +sub_0807F158: @ 0x0807F158 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + bl UpdateSpriteForCollisionLayer + pop {pc} + + thumb_func_start sub_0807F168 +sub_0807F168: @ 0x0807F168 + push {lr} + ldr r0, _0807F17C @ =gPlayerEntity + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #1 + strb r1, [r2] + bl UpdateSpriteForCollisionLayer + pop {pc} + .align 2, 0 +_0807F17C: .4byte gPlayerEntity + + thumb_func_start sub_0807F180 +sub_0807F180: @ 0x0807F180 + push {lr} + adds r2, r0, #0 + adds r2, #0x38 + movs r1, #2 + strb r1, [r2] + bl UpdateSpriteForCollisionLayer + pop {pc} + + thumb_func_start sub_0807F190 +sub_0807F190: @ 0x0807F190 + push {lr} + movs r1, #0x80 + lsls r1, r1, #1 + movs r0, #4 + bl DoFade + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F1A0 +sub_0807F1A0: @ 0x0807F1A0 + push {r4, lr} + ldr r3, _0807F1BC @ =gPlayerEntity + movs r4, #0x2e + ldrsh r2, [r3, r4] + movs r4, #0x32 + ldrsh r3, [r3, r4] + bl sub_0807DEDC + ldr r2, _0807F1C0 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F1BC: .4byte gPlayerEntity +_0807F1C0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F1C4 +sub_0807F1C4: @ 0x0807F1C4 + push {lr} + ldr r2, _0807F1D8 @ =gPlayerState + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F1E0 + ldr r0, _0807F1DC @ =0x00000459 + b _0807F1E4 + .align 2, 0 +_0807F1D8: .4byte gPlayerState +_0807F1DC: .4byte 0x00000459 +_0807F1E0: + movs r0, #0xde + lsls r0, r0, #1 +_0807F1E4: + strh r0, [r2, #8] + pop {pc} + + thumb_func_start sub_0807F1E8 +sub_0807F1E8: @ 0x0807F1E8 + push {lr} + ldr r2, _0807F1FC @ =gPlayerState + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F204 + ldr r0, _0807F200 @ =0x0000045A + b _0807F206 + .align 2, 0 +_0807F1FC: .4byte gPlayerState +_0807F200: .4byte 0x0000045A +_0807F204: + ldr r0, _0807F20C @ =0x000002BD +_0807F206: + strh r0, [r2, #8] + pop {pc} + .align 2, 0 +_0807F20C: .4byte 0x000002BD + + thumb_func_start sub_0807F210 +sub_0807F210: @ 0x0807F210 + push {lr} + ldr r2, _0807F224 @ =gPlayerState + ldr r0, [r2, #0x30] + movs r1, #8 + ands r0, r1 + cmp r0, #0 + beq _0807F22C + ldr r0, _0807F228 @ =0x0000041C + b _0807F22E + .align 2, 0 +_0807F224: .4byte gPlayerState +_0807F228: .4byte 0x0000041C +_0807F22C: + ldr r0, _0807F234 @ =0x0000080C +_0807F22E: + strh r0, [r2, #8] + pop {pc} + .align 2, 0 +_0807F234: .4byte 0x0000080C + + thumb_func_start sub_0807F238 +sub_0807F238: @ 0x0807F238 + ldr r2, _0807F240 @ =gPlayerState + ldr r0, [r1, #4] + strh r0, [r2, #8] + bx lr + .align 2, 0 +_0807F240: .4byte gPlayerState + + thumb_func_start sub_0807F244 +sub_0807F244: @ 0x0807F244 + push {r4, r5, lr} + ldr r0, [r1, #4] + ldr r4, _0807F298 @ =0x0000FFFF + lsrs r5, r0, #0x10 + ands r4, r0 + cmp r4, #1 + blo _0807F28C + cmp r4, #4 + bls _0807F25A + cmp r4, #6 + bne _0807F28C +_0807F25A: + movs r4, #1 + movs r0, #2 + bl GetInventoryValue + cmp r0, #0 + beq _0807F268 + movs r4, #2 +_0807F268: + movs r0, #3 + bl GetInventoryValue + cmp r0, #0 + beq _0807F274 + movs r4, #3 +_0807F274: + movs r0, #4 + bl GetInventoryValue + cmp r0, #0 + beq _0807F280 + movs r4, #4 +_0807F280: + movs r0, #6 + bl GetInventoryValue + cmp r0, #0 + beq _0807F28C + movs r4, #6 +_0807F28C: + adds r0, r4, #0 + adds r1, r5, #0 + bl ForceEquipItem + pop {r4, r5, pc} + .align 2, 0 +_0807F298: .4byte 0x0000FFFF + + thumb_func_start sub_0807F29C +sub_0807F29C: @ 0x0807F29C + push {lr} + ldr r0, [r1, #4] + bl sub_0805ED14 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F2A8 +sub_0807F2A8: @ 0x0807F2A8 + push {lr} + ldr r0, _0807F2C0 @ =gPlayerState + adds r0, #0x9c + ldr r0, [r0] + cmp r0, #0 + bne _0807F2C8 + ldr r2, _0807F2C4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F2CE + .align 2, 0 +_0807F2C0: .4byte gPlayerState +_0807F2C4: .4byte gUnk_02033280 +_0807F2C8: + ldr r1, _0807F2D0 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F2CE: + pop {pc} + .align 2, 0 +_0807F2D0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F2D4 +sub_0807F2D4: @ 0x0807F2D4 + push {lr} + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807F2F8 + ldr r2, _0807F2F4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F2FC + .align 2, 0 +_0807F2F4: .4byte gUnk_02033280 +_0807F2F8: + ldr r0, _0807F300 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807F2FC: + pop {pc} + .align 2, 0 +_0807F300: .4byte gUnk_02033280 + + thumb_func_start sub_0807F304 +sub_0807F304: @ 0x0807F304 + push {lr} + ldr r0, _0807F324 @ =gPlayerEntity + adds r0, #0x5a + ldrb r1, [r0] + movs r0, #0x80 + ands r0, r1 + lsls r0, r0, #0x18 + lsrs r1, r0, #0x18 + cmp r1, #0 + beq _0807F32C + ldr r2, _0807F328 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F330 + .align 2, 0 +_0807F324: .4byte gPlayerEntity +_0807F328: .4byte gUnk_02033280 +_0807F32C: + ldr r0, _0807F334 @ =gUnk_02033280 + strb r1, [r0, #6] +_0807F330: + pop {pc} + .align 2, 0 +_0807F334: .4byte gUnk_02033280 + + thumb_func_start sub_0807F338 +sub_0807F338: @ 0x0807F338 + movs r1, #0 + str r1, [r0, #0x48] + ldrb r2, [r0, #0x17] + movs r1, #0xfe + ands r1, r2 + strb r1, [r0, #0x17] + bx lr + .align 2, 0 + + thumb_func_start sub_0807F348 +sub_0807F348: @ 0x0807F348 + push {lr} + movs r1, #2 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F354 +sub_0807F354: @ 0x0807F354 + push {lr} + movs r1, #6 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F360 +sub_0807F360: @ 0x0807F360 + push {lr} + movs r1, #3 + bl sub_0805E3A0 + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F36C +sub_0807F36C: @ 0x0807F36C + push {r4, r5, lr} + adds r5, r0, #0 + movs r1, #0x41 + movs r2, #0 + bl CreateFx + adds r4, r0, #0 + cmp r4, #0 + beq _0807F3C2 + adds r2, r4, #0 + adds r2, #0x29 + ldrb r1, [r2] + movs r0, #8 + rsbs r0, r0, #0 + ands r0, r1 + movs r1, #1 + orrs r0, r1 + strb r0, [r2] + ldr r3, _0807F3C4 @ =0xFFF80000 + adds r0, r5, #0 + adds r1, r4, #0 + movs r2, #0 + bl PositionRelative + bl Random + movs r5, #1 + ands r0, r5 + cmp r0, #0 + beq _0807F3B0 + ldrb r0, [r4, #0x18] + movs r1, #0x40 + orrs r0, r1 + strb r0, [r4, #0x18] +_0807F3B0: + bl Random + ands r0, r5 + cmp r0, #0 + beq _0807F3C2 + ldrb r0, [r4, #0x18] + movs r1, #0x80 + orrs r0, r1 + strb r0, [r4, #0x18] +_0807F3C2: + pop {r4, r5, pc} + .align 2, 0 +_0807F3C4: .4byte 0xFFF80000 + + thumb_func_start sub_0807F3C8 +sub_0807F3C8: @ 0x0807F3C8 + push {lr} + bl sub_0807F36C + movs r0, #0xe5 + bl PlaySFX + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F3D8 +sub_0807F3D8: @ 0x0807F3D8 + push {r4, lr} + adds r4, r0, #0 + ldrb r0, [r4, #0x14] + lsrs r0, r0, #1 + ldr r1, [r1, #4] + adds r1, r1, r0 + adds r0, r4, #0 + bl InitAnimationForceUpdate + adds r0, r4, #0 + adds r0, #0x58 + ldrb r0, [r0] + adds r4, #0x80 + strh r0, [r4] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F3F8 +sub_0807F3F8: @ 0x0807F3F8 + push {lr} + ldr r0, _0807F408 @ =gPlayerEntity + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl CreateSpeechBubbleExclamationMark + pop {pc} + .align 2, 0 +_0807F408: .4byte gPlayerEntity + + thumb_func_start sub_0807F40C +sub_0807F40C: @ 0x0807F40C + push {lr} + ldr r0, _0807F41C @ =gPlayerEntity + movs r2, #0x18 + rsbs r2, r2, #0 + movs r1, #8 + bl CreateSpeechBubbleQuestionMark + pop {pc} + .align 2, 0 +_0807F41C: .4byte gPlayerEntity + + thumb_func_start sub_0807F420 +sub_0807F420: @ 0x0807F420 + push {lr} + ldr r2, [r1, #4] + ldrb r0, [r1, #4] + lsrs r2, r2, #8 + lsls r2, r2, #0x18 + lsrs r2, r2, #0x18 + adds r1, r2, #0 + bl MenuFadeIn + pop {pc} + + thumb_func_start sub_0807F434 +sub_0807F434: @ 0x0807F434 + push {lr} + adds r3, r0, #0 + adds r3, #0x39 + movs r2, #0 + ldrsb r2, [r3, r2] + cmp r2, #1 + beq _0807F44C + cmp r2, #2 + beq _0807F44C + movs r0, #0 + str r0, [r1, #4] + b _0807F452 +_0807F44C: + movs r0, #0 + strb r0, [r3] + str r2, [r1, #4] +_0807F452: + ldr r2, _0807F460 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F460: .4byte gUnk_02033280 + + thumb_func_start sub_0807F464 +sub_0807F464: @ 0x0807F464 + push {r4, r5, r6, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _0807F4BC + adds r0, #1 + movs r3, #0 + strb r0, [r5, #0x18] + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + ldr r2, [r5, #4] + ldr r1, _0807F4A8 @ =gRoomControls + ldrh r0, [r1, #6] + adds r0, r0, r2 + strh r0, [r5, #0x1e] + ldrh r0, [r4, #0x32] + strh r0, [r5, #0x22] + movs r6, #0x2e + ldrsh r0, [r4, r6] + ldrh r1, [r1, #6] + subs r0, r0, r1 + cmp r2, r0 + ble _0807F4AC + movs r0, #0x40 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 + movs r1, #2 + b _0807F4B8 + .align 2, 0 +_0807F4A8: .4byte gRoomControls +_0807F4AC: + movs r0, #0xc0 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 + movs r1, #6 +_0807F4B8: + orrs r0, r1 + strb r0, [r4, #0x14] +_0807F4BC: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r2, #0x1e + ldrsh r1, [r5, r2] + movs r6, #0x2e + ldrsh r0, [r4, r6] + subs r1, r1, r0 + ldrb r2, [r4, #0x15] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + eors r1, r0 + cmp r1, #0 + bge _0807F4EA + ldrh r0, [r5, #0x1e] + strh r0, [r4, #0x2e] + b _0807F4F0 +_0807F4EA: + ldr r1, _0807F4F4 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F4F0: + pop {r4, r5, r6, pc} + .align 2, 0 +_0807F4F4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F4F8 +sub_0807F4F8: @ 0x0807F4F8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + ldrb r0, [r5, #0x18] + cmp r0, #0 + bne _0807F548 + adds r0, #1 + strb r0, [r5, #0x18] + ldr r0, [r5, #8] + movs r1, #2 + orrs r0, r1 + str r0, [r5, #8] + ldr r2, [r5, #4] + ldrh r0, [r4, #0x2e] + strh r0, [r5, #0x1e] + ldr r1, _0807F538 @ =gRoomControls + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r5, #0x22] + movs r3, #0x32 + ldrsh r0, [r4, r3] + ldrh r1, [r1, #8] + subs r0, r0, r1 + cmp r2, r0 + ble _0807F53C + movs r0, #0x80 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + ands r0, r1 + movs r1, #4 + orrs r0, r1 + b _0807F546 + .align 2, 0 +_0807F538: .4byte gRoomControls +_0807F53C: + movs r0, #0 + strb r0, [r4, #0x15] + ldrb r1, [r4, #0x14] + movs r0, #0x80 + ands r0, r1 +_0807F546: + strb r0, [r4, #0x14] +_0807F548: + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + movs r2, #0x22 + ldrsh r1, [r5, r2] + movs r3, #0x32 + ldrsh r0, [r4, r3] + subs r1, r1, r0 + ldrb r2, [r4, #0x15] + movs r0, #0x80 + ands r0, r2 + lsls r0, r0, #0x18 + lsrs r0, r0, #0x18 + lsls r0, r0, #0x18 + eors r1, r0 + cmp r1, #0 + blt _0807F576 + ldrh r0, [r5, #0x22] + strh r0, [r4, #0x32] + b _0807F57C +_0807F576: + ldr r1, _0807F580 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F57C: + pop {r4, r5, pc} + .align 2, 0 +_0807F580: .4byte gUnk_02033280 + + thumb_func_start sub_0807F584 +sub_0807F584: @ 0x0807F584 + ldr r0, _0807F590 @ =gPlayerEntity + ldrb r0, [r0, #0x14] + lsrs r0, r0, #1 + str r0, [r1, #4] + bx lr + .align 2, 0 +_0807F590: .4byte gPlayerEntity + + thumb_func_start sub_0807F594 +sub_0807F594: @ 0x0807F594 + push {lr} + ldr r0, _0807F5A8 @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + cmp r0, #0 + beq _0807F5A6 + ldr r1, _0807F5AC @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F5A6: + pop {pc} + .align 2, 0 +_0807F5A8: .4byte gPlayerState +_0807F5AC: .4byte gUnk_02033280 + + thumb_func_start sub_0807F5B0 +sub_0807F5B0: @ 0x0807F5B0 + ldr r0, _0807F5BC @ =gPlayerState + ldr r1, [r1, #4] + adds r0, #0x27 + strb r1, [r0] + bx lr + .align 2, 0 +_0807F5BC: .4byte gPlayerState + + thumb_func_start sub_0807F5C0 +sub_0807F5C0: @ 0x0807F5C0 + push {r4, lr} + ldr r4, _0807F620 @ =gRoomControls + ldr r1, [r4, #0x30] + cmp r1, #0 + beq _0807F62E + movs r2, #0x2e + ldrsh r0, [r1, r2] + adds r2, r0, #0 + subs r2, #0x78 + movs r3, #0x32 + ldrsh r0, [r1, r3] + adds r3, r0, #0 + subs r3, #0x50 + ldrh r1, [r4, #6] + cmp r2, r1 + bge _0807F5E2 + adds r2, r1, #0 +_0807F5E2: + ldrh r0, [r4, #0x1e] + adds r0, r1, r0 + subs r0, #0xf0 + cmp r2, r0 + ble _0807F5EE + adds r2, r0, #0 +_0807F5EE: + ldrh r1, [r4, #8] + cmp r3, r1 + bge _0807F5F6 + adds r3, r1, #0 +_0807F5F6: + ldrh r0, [r4, #0x20] + adds r0, r1, r0 + subs r0, #0xa0 + cmp r3, r0 + ble _0807F602 + adds r3, r0, #0 +_0807F602: + movs r1, #0xa + ldrsh r0, [r4, r1] + cmp r2, r0 + bne _0807F628 + movs r2, #0xc + ldrsh r0, [r4, r2] + cmp r3, r0 + bne _0807F628 + ldr r2, _0807F624 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + b _0807F62E + .align 2, 0 +_0807F620: .4byte gRoomControls +_0807F624: .4byte gUnk_02033280 +_0807F628: + ldr r1, _0807F630 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807F62E: + pop {r4, pc} + .align 2, 0 +_0807F630: .4byte gUnk_02033280 + + thumb_func_start sub_0807F634 +sub_0807F634: @ 0x0807F634 + push {lr} + ldr r3, [r1, #4] + ldrh r1, [r3] + ldrh r2, [r3, #2] + ldrh r3, [r3, #4] + bl sub_0801DFB4 + ldr r0, _0807F64C @ =gPlayerState + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {pc} + .align 2, 0 +_0807F64C: .4byte gPlayerState + + thumb_func_start sub_0807F650 +sub_0807F650: @ 0x0807F650 + push {r4, lr} + adds r4, r0, #0 + bl sub_08002632 + ldr r1, _0807F678 @ =gUnk_08001A7C + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldrh r1, [r0] + ldrh r2, [r0, #2] + ldrh r3, [r0, #4] + adds r0, r4, #0 + bl sub_0801DFB4 + ldr r0, _0807F67C @ =gPlayerState + adds r0, #0x8b + movs r1, #3 + strb r1, [r0] + pop {r4, pc} + .align 2, 0 +_0807F678: .4byte gUnk_08001A7C +_0807F67C: .4byte gPlayerState + + thumb_func_start sub_0807F680 +sub_0807F680: @ 0x0807F680 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, _0807F6A8 @ =gPlayerEntity + movs r1, #0x2e + ldrsh r0, [r0, r1] + ldr r1, _0807F6AC @ =gRoomControls + ldrh r1, [r1, #6] + subs r0, r0, r1 + ldrh r1, [r2, #4] + cmp r0, r1 + ble _0807F69A + movs r3, #1 +_0807F69A: + str r3, [r2, #0x14] + ldr r2, _0807F6B0 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F6A8: .4byte gPlayerEntity +_0807F6AC: .4byte gRoomControls +_0807F6B0: .4byte gUnk_02033280 + + thumb_func_start sub_0807F6B4 +sub_0807F6B4: @ 0x0807F6B4 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r0, _0807F6DC @ =gPlayerEntity + movs r1, #0x32 + ldrsh r0, [r0, r1] + ldr r1, _0807F6E0 @ =gRoomControls + ldrh r1, [r1, #8] + subs r0, r0, r1 + ldrh r1, [r2, #4] + cmp r0, r1 + ble _0807F6CE + movs r3, #1 +_0807F6CE: + str r3, [r2, #0x14] + ldr r2, _0807F6E4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F6DC: .4byte gPlayerEntity +_0807F6E0: .4byte gRoomControls +_0807F6E4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F6E8 +sub_0807F6E8: @ 0x0807F6E8 + ldr r2, _0807F6F4 @ =gPlayerState + ldr r0, [r2, #0x30] + ldr r1, [r1, #4] + orrs r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807F6F4: .4byte gPlayerState + + thumb_func_start sub_0807F6F8 +sub_0807F6F8: @ 0x0807F6F8 + ldr r2, _0807F704 @ =gPlayerState + ldr r1, [r1, #4] + ldr r0, [r2, #0x30] + bics r0, r1 + str r0, [r2, #0x30] + bx lr + .align 2, 0 +_0807F704: .4byte gPlayerState + + thumb_func_start sub_0807F708 +sub_0807F708: @ 0x0807F708 + push {lr} + ldr r1, [r1, #4] + bl ShowNPCDialogue + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F714 +sub_0807F714: @ 0x0807F714 + push {lr} + adds r1, r0, #0 + ldr r2, _0807F734 @ =gUnk_08114F30 + ldrb r3, [r1, #0x19] + lsrs r0, r3, #6 + adds r0, r0, r2 + ldrb r2, [r0] + lsls r2, r2, #6 + movs r0, #0x3f + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x19] + adds r0, r1, #0 + bl ResolveEntityOnTop + pop {pc} + .align 2, 0 +_0807F734: .4byte gUnk_08114F30 + + thumb_func_start sub_0807F738 +sub_0807F738: @ 0x0807F738 + push {lr} + adds r1, r0, #0 + ldr r2, _0807F758 @ =gUnk_08114F34 + ldrb r3, [r1, #0x19] + lsrs r0, r3, #6 + adds r0, r0, r2 + ldrb r2, [r0] + lsls r2, r2, #6 + movs r0, #0x3f + ands r0, r3 + orrs r0, r2 + strb r0, [r1, #0x19] + adds r0, r1, #0 + bl sub_0806FAD8 + pop {pc} + .align 2, 0 +_0807F758: .4byte gUnk_08114F34 + + thumb_func_start sub_0807F75C +sub_0807F75C: @ 0x0807F75C + push {r4, lr} + ldr r2, [r1, #4] + ldr r3, _0807F774 @ =gPlayerEntity + ldr r1, _0807F778 @ =gRoomControls + asrs r0, r2, #0x10 + ldrh r4, [r1, #6] + adds r0, r0, r4 + strh r0, [r3, #0x2e] + ldrh r0, [r1, #8] + adds r0, r0, r2 + strh r0, [r3, #0x32] + pop {r4, pc} + .align 2, 0 +_0807F774: .4byte gPlayerEntity +_0807F778: .4byte gRoomControls + + thumb_func_start sub_0807F77C +sub_0807F77C: @ 0x0807F77C + push {lr} + ldr r0, [r1, #0x14] + cmp r0, #0 + beq _0807F786 + movs r0, #1 +_0807F786: + str r0, [r1, #4] + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F78C +sub_0807F78C: @ 0x0807F78C + push {r4, r5, r6, lr} + adds r6, r0, #0 + ldr r5, [r1, #4] + cmp r5, #0 + bne _0807F79A + ldr r0, _0807F7BC @ =gRoomVars + ldrb r5, [r0, #6] +_0807F79A: + adds r0, r5, #0 + bl GetSaleItemConfirmMessageID + adds r4, r0, #0 + adds r0, r5, #0 + bl sub_08053FE0 + adds r5, r0, #0 + adds r0, r4, #0 + adds r1, r6, #0 + bl TextboxNoOverlap + ldr r0, _0807F7C0 @ =gTextBox + lsls r5, r5, #0x10 + lsrs r5, r5, #0x10 + str r5, [r0, #0x10] + pop {r4, r5, r6, pc} + .align 2, 0 +_0807F7BC: .4byte gRoomVars +_0807F7C0: .4byte gTextBox + + thumb_func_start sub_0807F7C4 +sub_0807F7C4: @ 0x0807F7C4 + push {r4, lr} + adds r4, r1, #0 + ldr r0, [r4, #4] + cmp r0, #0 + bne _0807F7D2 + ldr r0, _0807F7F4 @ =gRoomVars + ldrb r0, [r0, #6] +_0807F7D2: + bl sub_08053FE0 + movs r2, #0 + ldr r1, _0807F7F8 @ =gUnk_02002A40 + adds r1, #0xc0 + ldrh r1, [r1] + cmp r0, r1 + bgt _0807F7E4 + movs r2, #1 +_0807F7E4: + str r2, [r4, #0x14] + ldr r2, _0807F7FC @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F7F4: .4byte gRoomVars +_0807F7F8: .4byte gUnk_02002A40 +_0807F7FC: .4byte gUnk_02033280 + + thumb_func_start sub_0807F800 +sub_0807F800: @ 0x0807F800 + push {r4, lr} + ldr r4, [r1, #4] + cmp r4, #0 + bne _0807F80C + ldr r0, _0807F834 @ =gRoomVars + ldrb r4, [r0, #6] +_0807F80C: + adds r0, r4, #0 + bl sub_08053FE0 + rsbs r0, r0, #0 + bl ModRupees + adds r0, r4, #0 + movs r1, #0 + movs r2, #0 + bl sub_080A7C18 + ldr r1, _0807F834 @ =gRoomVars + movs r0, #0 + strb r0, [r1, #6] + ldr r2, _0807F838 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {r4, pc} + .align 2, 0 +_0807F834: .4byte gRoomVars +_0807F838: .4byte gUnk_02033280 + + thumb_func_start sub_0807F83C +sub_0807F83C: @ 0x0807F83C + push {lr} + bl sub_08079184 + pop {pc} + + thumb_func_start sub_0807F844 +sub_0807F844: @ 0x0807F844 + push {lr} + ldr r1, _0807F850 @ =gRoomControls + str r0, [r1, #0x30] + bl sub_080809D4 + pop {pc} + .align 2, 0 +_0807F850: .4byte gRoomControls + + thumb_func_start sub_0807F854 +sub_0807F854: @ 0x0807F854 + push {lr} + ldr r1, [r1, #4] + lsrs r2, r1, #0x10 + movs r0, #3 + ands r2, r0 + ldr r3, _0807F870 @ =0x0000FFFF + ands r3, r1 + cmp r2, #4 + bhi _0807F8B4 + lsls r0, r2, #2 + ldr r1, _0807F874 @ =_0807F878 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F870: .4byte 0x0000FFFF +_0807F874: .4byte _0807F878 +_0807F878: @ jump table + .4byte _0807F88C @ case 0 + .4byte _0807F88C @ case 1 + .4byte _0807F898 @ case 2 + .4byte _0807F8A4 @ case 3 + .4byte _0807F8B0 @ case 4 +_0807F88C: + ldr r0, _0807F894 @ =gTextBox + str r3, [r0, #0x10] + b _0807F8B4 + .align 2, 0 +_0807F894: .4byte gTextBox +_0807F898: + ldr r0, _0807F8A0 @ =gTextBox + str r3, [r0, #0x14] + b _0807F8B4 + .align 2, 0 +_0807F8A0: .4byte gTextBox +_0807F8A4: + ldr r0, _0807F8AC @ =gTextBox + str r3, [r0, #0x18] + b _0807F8B4 + .align 2, 0 +_0807F8AC: .4byte gTextBox +_0807F8B0: + ldr r0, _0807F8B8 @ =gTextBox + str r3, [r0, #0x1c] +_0807F8B4: + pop {pc} + .align 2, 0 +_0807F8B8: .4byte gTextBox + + thumb_func_start sub_0807F8BC +sub_0807F8BC: @ 0x0807F8BC + push {r4, lr} + adds r4, r1, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0807F8CA + movs r0, #1 +_0807F8CA: + str r0, [r4, #0x14] + pop {r4, pc} + .align 2, 0 + + thumb_func_start sub_0807F8D0 +sub_0807F8D0: @ 0x0807F8D0 + push {lr} + ldr r1, [r1, #4] + bl sub_08003FC4 + ldr r2, _0807F8E4 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] + pop {pc} + .align 2, 0 +_0807F8E4: .4byte gUnk_02033280 + + thumb_func_start sub_0807F8E8 +sub_0807F8E8: @ 0x0807F8E8 + push {r4, r5, lr} + adds r4, r0, #0 + adds r5, r1, #0 + movs r1, #0xa6 + movs r2, #0 + movs r3, #0 + bl CreateObjectWithParent + adds r2, r0, #0 + cmp r2, #0 + beq _0807F912 + str r4, [r2, #0x50] + ldr r0, [r5, #4] + ldr r1, _0807F914 @ =0x000003FF + ands r0, r1 + movs r3, #0x80 + lsls r3, r3, #8 + adds r1, r3, #0 + adds r2, #0x86 + orrs r0, r1 + strh r0, [r2] +_0807F912: + pop {r4, r5, pc} + .align 2, 0 +_0807F914: .4byte 0x000003FF + + thumb_func_start sub_0807F918 +sub_0807F918: @ 0x0807F918 + push {lr} + ldr r0, [r1, #4] + bl PutItemOnSlot + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F924 +sub_0807F924: @ 0x0807F924 + push {lr} + bl sub_0807879C + pop {pc} + + thumb_func_start sub_0807F92C +sub_0807F92C: @ 0x0807F92C + push {lr} + bl sub_080787C0 + pop {pc} + + thumb_func_start sub_0807F934 +sub_0807F934: @ 0x0807F934 + push {lr} + bl sub_080787B4 + pop {pc} + + thumb_func_start sub_0807F93C +sub_0807F93C: @ 0x0807F93C + push {lr} + ldr r2, [r1, #4] + lsrs r1, r2, #8 + movs r3, #0xff + ands r1, r3 + ands r2, r3 + bl CreateSpeechBubbleSleep + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807F950 +sub_0807F950: @ 0x0807F950 + push {lr} + sub sp, #4 + movs r0, #2 + str r0, [sp] + movs r0, #6 + movs r1, #0x56 + movs r2, #6 + movs r3, #0 + bl FindEntityInListByForm + cmp r0, #0 + beq _0807F96C + bl DeleteEntity +_0807F96C: + add sp, #4 + pop {pc} + + thumb_func_start sub_0807F970 +sub_0807F970: @ 0x0807F970 + push {lr} + adds r2, r1, #0 + movs r3, #0 + ldr r1, _0807F988 @ =gUnk_02022780 + ldr r0, [r2, #4] + ldrh r1, [r1, #0x28] + cmp r0, r1 + bne _0807F982 + movs r3, #1 +_0807F982: + str r3, [r2, #0x14] + pop {pc} + .align 2, 0 +_0807F988: .4byte gUnk_02022780 + + thumb_func_start sub_0807F98C +sub_0807F98C: @ 0x0807F98C + ldr r1, [r1, #4] + str r1, [r0, #0x34] + bx lr + .align 2, 0 + + thumb_func_start sub_0807F994 +sub_0807F994: @ 0x0807F994 + ldr r2, [r1, #4] + asrs r1, r2, #0x10 + adds r3, r0, #0 + adds r3, #0x62 + strb r1, [r3] + adds r0, #0x63 + strb r2, [r0] + bx lr + + thumb_func_start sub_0807F9A4 +sub_0807F9A4: @ 0x0807F9A4 + push {lr} + ldr r0, _0807F9BC @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _0807FA30 + lsls r0, r0, #2 + ldr r1, _0807F9C0 @ =_0807F9C4 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807F9BC: .4byte gPlayerState +_0807F9C0: .4byte _0807F9C4 +_0807F9C4: @ jump table + .4byte _0807FA24 @ case 0 + .4byte _0807FA30 @ case 1 + .4byte _0807FA24 @ case 2 + .4byte _0807FA24 @ case 3 + .4byte _0807FA30 @ case 4 + .4byte _0807FA24 @ case 5 + .4byte _0807FA24 @ case 6 + .4byte _0807FA24 @ case 7 + .4byte _0807FA24 @ case 8 + .4byte _0807FA24 @ case 9 + .4byte _0807FA24 @ case 10 + .4byte _0807FA24 @ case 11 + .4byte _0807FA24 @ case 12 + .4byte _0807FA24 @ case 13 + .4byte _0807FA24 @ case 14 + .4byte _0807FA24 @ case 15 + .4byte _0807FA24 @ case 16 + .4byte _0807FA24 @ case 17 + .4byte _0807FA24 @ case 18 + .4byte _0807FA24 @ case 19 + .4byte _0807FA30 @ case 20 + .4byte _0807FA30 @ case 21 + .4byte _0807FA24 @ case 22 + .4byte _0807FA24 @ case 23 +_0807FA24: + ldr r1, _0807FA2C @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807FA3A + .align 2, 0 +_0807FA2C: .4byte gUnk_02033280 +_0807FA30: + ldr r2, _0807FA3C @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_0807FA3A: + pop {pc} + .align 2, 0 +_0807FA3C: .4byte gUnk_02033280 + + thumb_func_start sub_0807FA40 +sub_0807FA40: @ 0x0807FA40 + push {lr} + ldr r0, _0807FA58 @ =gPlayerState + adds r0, #0xa8 + ldrb r0, [r0] + subs r0, #5 + cmp r0, #0x17 + bhi _0807FACC + lsls r0, r0, #2 + ldr r1, _0807FA5C @ =_0807FA60 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_0807FA58: .4byte gPlayerState +_0807FA5C: .4byte _0807FA60 +_0807FA60: @ jump table + .4byte _0807FAC0 @ case 0 + .4byte _0807FACC @ case 1 + .4byte _0807FAC0 @ case 2 + .4byte _0807FAC0 @ case 3 + .4byte _0807FACC @ case 4 + .4byte _0807FAC0 @ case 5 + .4byte _0807FAC0 @ case 6 + .4byte _0807FAC0 @ case 7 + .4byte _0807FAC0 @ case 8 + .4byte _0807FAC0 @ case 9 + .4byte _0807FAC0 @ case 10 + .4byte _0807FAC0 @ case 11 + .4byte _0807FAC0 @ case 12 + .4byte _0807FAC0 @ case 13 + .4byte _0807FACC @ case 14 + .4byte _0807FAC0 @ case 15 + .4byte _0807FAC0 @ case 16 + .4byte _0807FAC0 @ case 17 + .4byte _0807FAC0 @ case 18 + .4byte _0807FAC0 @ case 19 + .4byte _0807FACC @ case 20 + .4byte _0807FACC @ case 21 + .4byte _0807FAC0 @ case 22 + .4byte _0807FAC0 @ case 23 +_0807FAC0: + ldr r1, _0807FAC8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] + b _0807FAD6 + .align 2, 0 +_0807FAC8: .4byte gUnk_02033280 +_0807FACC: + ldr r2, _0807FAD8 @ =gUnk_02033280 + ldrb r1, [r2, #7] + movs r0, #1 + orrs r0, r1 + strb r0, [r2, #7] +_0807FAD6: + pop {pc} + .align 2, 0 +_0807FAD8: .4byte gUnk_02033280 + + thumb_func_start sub_0807FADC +sub_0807FADC: @ 0x0807FADC + push {r4, lr} + adds r2, r0, #0 + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #1 + beq _0807FB06 + cmp r0, #1 + bgt _0807FAF2 + cmp r0, #0 + beq _0807FAF8 + b _0807FB1C +_0807FAF2: + cmp r0, #2 + beq _0807FB16 + b _0807FB1C +_0807FAF8: + movs r0, #1 + strb r0, [r4, #0x18] + ldr r1, [r4, #4] + adds r0, r2, #0 + bl sub_0808C650 + b _0807FB1C +_0807FB06: + bl sub_0808C67C + cmp r0, #0 + beq _0807FB1C + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + b _0807FB1C +_0807FB16: + bl sub_0808C688 + b _0807FB22 +_0807FB1C: + ldr r1, _0807FB24 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FB22: + pop {r4, pc} + .align 2, 0 +_0807FB24: .4byte gUnk_02033280 + + thumb_func_start sub_0807FB28 +sub_0807FB28: @ 0x0807FB28 + push {r4, lr} + adds r4, r1, #0 + ldrb r0, [r4, #0x18] + cmp r0, #0 + bne _0807FB3A + ldr r0, _0807FB54 @ =0x00007FFF + movs r1, #1 + bl sub_0801D7BC +_0807FB3A: + ldrb r0, [r4, #0x18] + adds r0, #1 + strb r0, [r4, #0x18] + ldrb r1, [r4, #0x18] + ldr r0, [r4, #4] + cmp r1, r0 + blo _0807FB58 + movs r0, #0 + movs r1, #0 + bl sub_0801D7BC + b _0807FB5E + .align 2, 0 +_0807FB54: .4byte 0x00007FFF +_0807FB58: + ldr r1, _0807FB60 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FB5E: + pop {r4, pc} + .align 2, 0 +_0807FB60: .4byte gUnk_02033280 + + thumb_func_start sub_0807FB64 +sub_0807FB64: @ 0x0807FB64 + ldr r0, _0807FB70 @ =gPlayerEntity + ldr r1, [r1, #4] + adds r0, #0x3d + strb r1, [r0] + bx lr + .align 2, 0 +_0807FB70: .4byte gPlayerEntity + + thumb_func_start sub_0807FB74 +sub_0807FB74: @ 0x0807FB74 + ldr r0, _0807FB8C @ =gPlayerState + adds r0, #0x26 + movs r1, #0 + strb r1, [r0] + ldr r1, _0807FB90 @ =gPlayerEntity + adds r1, #0x3c + ldrb r2, [r1] + movs r0, #0xfb + ands r0, r2 + strb r0, [r1] + bx lr + .align 2, 0 +_0807FB8C: .4byte gPlayerState +_0807FB90: .4byte gPlayerEntity + + thumb_func_start sub_0807FB94 +sub_0807FB94: @ 0x0807FB94 + push {lr} + movs r0, #4 + bl InitScreen + pop {pc} + .align 2, 0 + + thumb_func_start sub_0807FBA0 +sub_0807FBA0: @ 0x0807FBA0 + ldr r2, _0807FBB0 @ =gRoomControls + ldrh r1, [r2, #0xa] + adds r1, #0x78 + strh r1, [r0, #0x2e] + ldrh r1, [r2, #0xc] + adds r1, #0x50 + strh r1, [r0, #0x32] + bx lr + .align 2, 0 +_0807FBB0: .4byte gRoomControls + + thumb_func_start sub_0807FBB4 +sub_0807FBB4: @ 0x0807FBB4 + ldr r2, _0807FBC0 @ =gPlayerState + ldrb r1, [r2, #0x1a] + movs r0, #0x80 + orrs r0, r1 + strb r0, [r2, #0x1a] + bx lr + .align 2, 0 +_0807FBC0: .4byte gPlayerState + + thumb_func_start sub_0807FBC4 +sub_0807FBC4: @ 0x0807FBC4 + push {lr} + bl sub_0805E4A0 + pop {pc} + + thumb_func_start sub_0807FBCC +sub_0807FBCC: @ 0x0807FBCC + push {lr} + bl sub_0805E4CC + pop {pc} + + thumb_func_start sub_0807FBD4 +sub_0807FBD4: @ 0x0807FBD4 + push {r4, lr} + adds r4, r0, #0 + movs r0, #0x24 + ldrsh r1, [r4, r0] + ldrb r2, [r4, #0x15] + adds r0, r4, #0 + bl sub_0806F62C + adds r0, r4, #0 + bl sub_080040A8 + cmp r0, #0 + beq _0807FBF4 + ldr r1, _0807FBF8 @ =gUnk_02033280 + movs r0, #0 + strb r0, [r1, #6] +_0807FBF4: + pop {r4, pc} + .align 2, 0 +_0807FBF8: .4byte gUnk_02033280 + + thumb_func_start sub_0807FBFC +sub_0807FBFC: @ 0x0807FBFC + ldr r3, _0807FC20 @ =gUnk_02002A40 + adds r0, r3, #0 + adds r0, #0xb2 + movs r1, #0 + strb r1, [r0] + adds r0, #0x12 + movs r2, #0 + strh r1, [r0] + subs r0, #0x11 + strb r2, [r0] + adds r0, #0x13 + strh r1, [r0] + subs r0, #0xc + strb r2, [r0] + adds r0, #0xe + strh r1, [r0] + bx lr + .align 2, 0 +_0807FC20: .4byte gUnk_02002A40 + + thumb_func_start sub_0807FC24 +sub_0807FC24: @ 0x0807FC24 + push {lr} + ldr r0, _0807FC3C @ =gRoomControls + ldrb r0, [r0, #5] + movs r1, #0xd1 + cmp r0, #1 + bne _0807FC32 + movs r1, #0xcf +_0807FC32: + adds r0, r1, #0 + bl SetLocalFlag + pop {pc} + .align 2, 0 +_0807FC3C: .4byte gRoomControls + + thumb_func_start sub_0807FC40 +sub_0807FC40: @ 0x0807FC40 + push {lr} + ldr r0, _0807FC5C @ =gRoomControls + ldrb r2, [r0, #0xf] + movs r1, #0xfb + ands r1, r2 + strb r1, [r0, #0xf] + ldr r2, _0807FC60 @ =gUnk_0811E768 + ldrb r1, [r0, #2] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FC5C: .4byte gRoomControls +_0807FC60: .4byte gUnk_0811E768 + + thumb_func_start sub_0807FC64 +sub_0807FC64: @ 0x0807FC64 + push {lr} + movs r2, #0 + movs r1, #1 + strb r1, [r0, #2] + strh r2, [r0] + movs r1, #4 + strb r1, [r0, #0xe] + bl sub_0807FC7C + bl sub_080805F8 + pop {pc} + + thumb_func_start sub_0807FC7C +sub_0807FC7C: @ 0x0807FC7C + push {r4, r5, r6, r7, lr} + adds r2, r0, #0 + ldr r0, [r2, #0x30] + cmp r0, #0 + bne _0807FC88 + b _0807FDA6 +_0807FC88: + movs r1, #0xa + ldrsh r4, [r2, r1] + movs r1, #0x2e + ldrsh r0, [r0, r1] + subs r0, #0x78 + subs r3, r4, r0 + cmp r3, #0 + beq _0807FD16 + ldrh r6, [r2, #0xa] + movs r7, #7 + ands r7, r6 + mov ip, r6 + cmp r3, #0 + ble _0807FCDC + ldrh r0, [r2, #6] + adds r5, r0, #0 + cmp r5, r4 + bge _0807FD16 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bgt _0807FCBC + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FCBC: + mov r1, ip + subs r0, r1, r3 + strh r0, [r2, #0xa] + subs r0, r7, r3 + cmp r0, #0 + bgt _0807FCCE + ldr r1, _0807FCD8 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FCCE: + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r5, r0 + blt _0807FD16 + b _0807FD14 + .align 2, 0 +_0807FCD8: .4byte gUnk_02000070 +_0807FCDC: + ldrh r0, [r2, #6] + ldrh r1, [r2, #0x1e] + adds r0, r0, r1 + adds r5, r0, #0 + subs r5, #0xf0 + cmp r4, r5 + bge _0807FD16 + ldrb r0, [r2, #0xe] + rsbs r0, r0, #0 + cmp r0, r3 + blt _0807FCFC + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FCFC: + subs r0, r6, r3 + strh r0, [r2, #0xa] + subs r0, r7, r3 + cmp r0, #7 + ble _0807FD0C + ldr r1, _0807FD68 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD0C: + movs r1, #0xa + ldrsh r0, [r2, r1] + cmp r0, r5 + blt _0807FD16 +_0807FD14: + strh r5, [r2, #0xa] +_0807FD16: + movs r0, #0xc + ldrsh r4, [r2, r0] + ldr r0, [r2, #0x30] + movs r1, #0x32 + ldrsh r0, [r0, r1] + subs r0, #0x50 + subs r3, r4, r0 + cmp r3, #0 + beq _0807FDA6 + ldrh r6, [r2, #0xc] + movs r7, #7 + ands r7, r6 + mov ip, r6 + cmp r3, #0 + ble _0807FD6C + ldrh r0, [r2, #8] + adds r5, r0, #0 + cmp r5, r4 + bge _0807FDA6 + ldrb r0, [r2, #0xe] + cmp r0, r3 + bgt _0807FD4C + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FD4C: + mov r1, ip + subs r0, r1, r3 + strh r0, [r2, #0xc] + subs r0, r7, r3 + cmp r0, #0 + bgt _0807FD5E + ldr r1, _0807FD68 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD5E: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r5, r0 + blt _0807FDA6 + b _0807FDA4 + .align 2, 0 +_0807FD68: .4byte gUnk_02000070 +_0807FD6C: + ldrh r0, [r2, #8] + ldrh r1, [r2, #0x20] + adds r0, r0, r1 + adds r5, r0, #0 + subs r5, #0xa0 + cmp r4, r5 + bge _0807FDA6 + ldrb r0, [r2, #0xe] + rsbs r0, r0, #0 + cmp r0, r3 + blt _0807FD8C + adds r3, r0, #0 + ldrb r1, [r2, #0xf] + movs r0, #4 + orrs r0, r1 + strb r0, [r2, #0xf] +_0807FD8C: + subs r0, r6, r3 + strh r0, [r2, #0xc] + subs r0, r7, r3 + cmp r0, #7 + ble _0807FD9C + ldr r1, _0807FDAC @ =gUnk_02000070 + movs r0, #1 + strb r0, [r1] +_0807FD9C: + movs r1, #0xc + ldrsh r0, [r2, r1] + cmp r0, r5 + blt _0807FDA6 +_0807FDA4: + strh r5, [r2, #0xc] +_0807FDA6: + bl sub_08080BC4 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_0807FDAC: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDB0 +sub_0807FDB0: @ 0x0807FDB0 + push {lr} + ldr r2, _0807FDC4 @ =gUnk_0811E780 + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FDC4: .4byte gUnk_0811E780 + + thumb_func_start sub_0807FDC8 +sub_0807FDC8: @ 0x0807FDC8 + push {r4, r5, lr} + adds r5, r0, #0 + ldr r4, _0807FDE0 @ =gUnk_02000070 + movs r0, #1 + strb r0, [r4] + bl sub_08000108 + movs r1, #0 + movs r0, #1 + strb r0, [r5, #3] + strb r1, [r4] + pop {r4, r5, pc} + .align 2, 0 +_0807FDE0: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDE4 +sub_0807FDE4: @ 0x0807FDE4 + movs r2, #0 + movs r1, #2 + strb r1, [r0, #3] + strh r2, [r0, #0x18] + ldr r0, _0807FDF4 @ =gUnk_02000070 + strb r1, [r0] + bx lr + .align 2, 0 +_0807FDF4: .4byte gUnk_02000070 + + thumb_func_start sub_0807FDF8 +sub_0807FDF8: @ 0x0807FDF8 + push {r4, lr} + adds r4, r0, #0 + ldr r1, _0807FE18 @ =gUnk_02000070 + movs r0, #2 + strb r0, [r1] + ldrh r0, [r4, #0x18] + adds r0, #1 + strh r0, [r4, #0x18] + ldrb r0, [r4, #0x10] + cmp r0, #1 + beq _0807FE44 + cmp r0, #1 + bgt _0807FE1C + cmp r0, #0 + beq _0807FE26 + b _0807FEB6 + .align 2, 0 +_0807FE18: .4byte gUnk_02000070 +_0807FE1C: + cmp r0, #2 + beq _0807FE68 + cmp r0, #3 + beq _0807FE94 + b _0807FEB6 +_0807FE26: + ldrh r0, [r4, #0xc] + subs r0, #4 + strh r0, [r4, #0xc] + ldr r1, [r4, #0x30] + ldr r0, _0807FE3C @ =gPlayerEntity + cmp r1, r0 + bne _0807FE80 + ldr r0, [r1, #0x30] + ldr r2, _0807FE40 @ =0xFFFFA000 + b _0807FE7C + .align 2, 0 +_0807FE3C: .4byte gPlayerEntity +_0807FE40: .4byte 0xFFFFA000 +_0807FE44: + ldrh r0, [r4, #0xa] + adds r0, #4 + strh r0, [r4, #0xa] + ldr r1, [r4, #0x30] + ldr r0, _0807FE64 @ =gPlayerEntity + cmp r1, r0 + bne _0807FE5C + ldr r0, [r1, #0x2c] + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r0, r2 + str r0, [r1, #0x2c] +_0807FE5C: + ldrh r0, [r4, #0x18] + cmp r0, #0x3c + bne _0807FEB6 + b _0807FE86 + .align 2, 0 +_0807FE64: .4byte gPlayerEntity +_0807FE68: + ldrh r0, [r4, #0xc] + adds r0, #4 + strh r0, [r4, #0xc] + ldr r1, [r4, #0x30] + ldr r0, _0807FE90 @ =gPlayerEntity + cmp r1, r0 + bne _0807FE80 + ldr r0, [r1, #0x30] + movs r2, #0xc0 + lsls r2, r2, #7 +_0807FE7C: + adds r0, r0, r2 + str r0, [r1, #0x30] +_0807FE80: + ldrh r0, [r4, #0x18] + cmp r0, #0x28 + bne _0807FEB6 +_0807FE86: + adds r0, r4, #0 + bl sub_0807FEC8 + b _0807FEB6 + .align 2, 0 +_0807FE90: .4byte gPlayerEntity +_0807FE94: + ldrh r0, [r4, #0xa] + subs r0, #4 + strh r0, [r4, #0xa] + ldr r1, [r4, #0x30] + ldr r0, _0807FEC0 @ =gPlayerEntity + cmp r1, r0 + bne _0807FEAA + ldr r0, [r1, #0x2c] + ldr r2, _0807FEC4 @ =0xFFFFC000 + adds r0, r0, r2 + str r0, [r1, #0x2c] +_0807FEAA: + ldrh r0, [r4, #0x18] + cmp r0, #0x3c + bne _0807FEB6 + adds r0, r4, #0 + bl sub_0807FEC8 +_0807FEB6: + movs r0, #0 + strh r0, [r4, #0x16] + bl sub_08080BC4 + pop {r4, pc} + .align 2, 0 +_0807FEC0: .4byte gPlayerEntity +_0807FEC4: .4byte 0xFFFFC000 + + thumb_func_start sub_0807FEC8 +sub_0807FEC8: @ 0x0807FEC8 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #0 + strb r0, [r5, #2] + subs r0, #1 + ldr r4, _0807FEEC @ =gUnk_03003FC0 + adds r1, r4, #0 + movs r2, #0x40 + bl _DmaFill32 + subs r4, #0x40 + ldr r1, [r5, #0x30] + ldrh r0, [r1, #0x2e] + strh r0, [r4, #0x16] + ldrh r0, [r1, #0x32] + strh r0, [r4, #0x18] + pop {r4, r5, pc} + .align 2, 0 +_0807FEEC: .4byte gUnk_03003FC0 + + thumb_func_start sub_0807FEF0 +sub_0807FEF0: @ 0x0807FEF0 + push {lr} + ldr r2, _0807FF04 @ =gUnk_0811E78C + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FF04: .4byte gUnk_0811E78C + + thumb_func_start sub_0807FF08 +sub_0807FF08: @ 0x0807FF08 + movs r2, #0 + movs r1, #1 + strb r1, [r0, #3] + strh r2, [r0, #0x18] + ldr r1, _0807FF18 @ =gUnk_02000070 + movs r0, #3 + strb r0, [r1] + bx lr + .align 2, 0 +_0807FF18: .4byte gUnk_02000070 + + thumb_func_start sub_0807FF1C +sub_0807FF1C: @ 0x0807FF1C + push {lr} + adds r2, r0, #0 + ldr r0, _0807FF4C @ =gScreenTransition + ldr r0, [r0] + movs r1, #1 + ands r0, r1 + cmp r0, #0 + bne _0807FF48 + ldr r1, _0807FF50 @ =gUnk_02000070 + movs r0, #3 + strb r0, [r1] + ldrh r0, [r2, #0x18] + adds r0, #1 + strh r0, [r2, #0x18] + lsls r0, r0, #0x10 + lsrs r0, r0, #0x10 + cmp r0, #0x13 + bls _0807FF48 + movs r0, #0 + strb r0, [r2, #2] + bl sub_0805E5B4 +_0807FF48: + pop {pc} + .align 2, 0 +_0807FF4C: .4byte gScreenTransition +_0807FF50: .4byte gUnk_02000070 + + thumb_func_start sub_0807FF54 +sub_0807FF54: @ 0x0807FF54 + push {lr} + ldr r2, _0807FF68 @ =gUnk_0811E794 + ldrb r1, [r0, #3] + lsls r1, r1, #2 + adds r1, r1, r2 + ldr r1, [r1] + bl _call_via_r1 + pop {pc} + .align 2, 0 +_0807FF68: .4byte gUnk_0811E794 + + thumb_func_start sub_0807FF6C +sub_0807FF6C: @ 0x0807FF6C + push {r4, lr} + movs r1, #1 + strb r1, [r0, #3] + ldr r3, _0807FFC8 @ =gScreen + ldrh r1, [r3] + movs r2, #0x80 + lsls r2, r2, #7 + adds r0, r2, #0 + orrs r0, r1 + strh r0, [r3] + adds r2, r3, #0 + adds r2, #0x60 + ldrb r0, [r2] + movs r4, #0xb8 + lsls r4, r4, #5 + adds r1, r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r2, #2 + ldrh r1, [r2] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r1 + movs r1, #7 + movs r4, #0 + orrs r0, r1 + strh r0, [r2] + adds r0, r3, #0 + adds r0, #0x5a + movs r1, #0xf0 + strh r1, [r0] + adds r0, #4 + strh r1, [r0] + bl ResetPlayer + bl sub_080791D0 + ldr r0, _0807FFCC @ =gUnk_03004030 + ldrb r0, [r0, #8] + cmp r0, #0 + beq _0807FFD4 + ldr r1, _0807FFD0 @ =gPlayerEntity + movs r0, #4 + strb r0, [r1, #0x14] + b _0807FFD8 + .align 2, 0 +_0807FFC8: .4byte gScreen +_0807FFCC: .4byte gUnk_03004030 +_0807FFD0: .4byte gPlayerEntity +_0807FFD4: + ldr r0, _0807FFE0 @ =gPlayerEntity + strb r4, [r0, #0x14] +_0807FFD8: + bl sub_080809D4 + pop {r4, pc} + .align 2, 0 +_0807FFE0: .4byte gPlayerEntity + + thumb_func_start sub_0807FFE4 +sub_0807FFE4: @ 0x0807FFE4 + push {r4, r5, lr} + adds r5, r0, #0 + movs r0, #2 + strb r0, [r5, #3] + bl sub_080803D0 + adds r0, #6 + strh r0, [r5, #0x18] + ldr r4, _0808002C @ =gUnk_0200B640 + bl sub_08080278 + strh r0, [r4] + ldr r1, _08080030 @ =gUnk_08109194 + ldr r0, _08080034 @ =gUnk_03004030 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0] + bl sub_080197D4 + ldr r4, _08080038 @ =gMapDataTop + ldrh r1, [r5, #0x1e] + lsrs r1, r1, #4 + ldrh r2, [r5, #0x20] + lsrs r2, r2, #4 + adds r0, r4, #0 + bl sub_0807C8B0 + ldr r0, _0808003C @ =gMapDataTopSpecial + subs r4, #4 + adds r1, r4, #0 + bl sub_0801AB08 + pop {r4, r5, pc} + .align 2, 0 +_0808002C: .4byte gUnk_0200B640 +_08080030: .4byte gUnk_08109194 +_08080034: .4byte gUnk_03004030 +_08080038: .4byte gMapDataTop +_0808003C: .4byte gMapDataTopSpecial + + thumb_func_start sub_08080040 +sub_08080040: @ 0x08080040 + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0x18] + subs r4, #6 + strh r4, [r5, #0x18] + ldrh r0, [r5, #0x18] + lsls r0, r0, #1 + movs r1, #3 + bl __divsi3 + strh r0, [r5, #0x1a] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #0x2a + bls _080800C6 + ldr r3, [r5, #0x30] + movs r1, #0x2e + ldrsh r0, [r3, r1] + movs r2, #0xa + ldrsh r1, [r5, r2] + subs r2, r0, r1 + ldrh r1, [r5, #0x18] + subs r0, r2, r1 + adds r7, r0, #0 + adds r7, #8 + cmp r7, #0 + bge _08080078 + movs r7, #0 +_08080078: + adds r0, r2, r1 + adds r6, r0, #0 + subs r6, #8 + cmp r6, #0xf0 + ble _08080084 + movs r6, #0xf0 +_08080084: + movs r1, #0x32 + ldrsh r0, [r3, r1] + movs r2, #0xc + ldrsh r1, [r5, r2] + subs r2, r0, r1 + ldrh r1, [r5, #0x1a] + subs r0, r2, r1 + adds r4, r0, #0 + adds r4, #8 + cmp r4, #0 + bge _0808009C + movs r4, #0 +_0808009C: + adds r0, r2, r1 + adds r3, r0, #0 + subs r3, #8 + cmp r3, #0xa0 + ble _080800A8 + movs r3, #0xa0 +_080800A8: + ldr r2, _080800F0 @ =gScreen + movs r1, #0xff + ands r7, r1 + lsls r0, r7, #8 + ands r6, r1 + orrs r0, r6 + adds r6, r2, #0 + adds r6, #0x5a + strh r0, [r6] + ands r4, r1 + lsls r0, r4, #8 + ands r3, r1 + orrs r0, r3 + adds r2, #0x5e + strh r0, [r2] +_080800C6: + ldrh r0, [r5, #0x18] + cmp r0, #0 + bne _080800FC + movs r0, #3 + strb r0, [r5, #3] + bl sub_0805E9F4 + bl sub_0807C810 + ldr r1, _080800F4 @ =gUnk_08109194 + ldr r0, _080800F8 @ =gUnk_03004030 + ldr r0, [r0] + ldrb r0, [r0, #3] + lsls r0, r0, #2 + adds r0, r0, r1 + ldr r0, [r0] + ldr r0, [r0, #4] + bl sub_08080C80 + b _08080102 + .align 2, 0 +_080800F0: .4byte gScreen +_080800F4: .4byte gUnk_08109194 +_080800F8: .4byte gUnk_03004030 +_080800FC: + ldr r1, _08080104 @ =gUnk_02000070 + movs r0, #4 + strb r0, [r1] +_08080102: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080104: .4byte gUnk_02000070 + + thumb_func_start sub_08080108 +sub_08080108: @ 0x08080108 + push {r4, r5, r6, lr} + movs r1, #4 + strb r1, [r0, #3] + ldr r5, _08080178 @ =gMapDataBottom + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r5, r0 + movs r6, #0x80 + lsls r6, r6, #6 + adds r0, r5, #0 + adds r2, r6, #0 + bl _DmaCopy + ldr r4, _0808017C @ =gMapDataTop + movs r0, #0xc0 + lsls r0, r0, #6 + adds r1, r4, r0 + adds r0, r4, #0 + adds r2, r6, #0 + bl _DmaCopy + bl sub_08080368 + ldr r1, _08080180 @ =gUnk_02034480 + ldr r0, _08080184 @ =gUnk_0200B640 + ldrh r0, [r0] + strh r0, [r1] + ldr r0, _08080188 @ =gUnk_02022830 + ldr r1, _0808018C @ =gUnk_020246B0 + movs r2, #0xc0 + lsls r2, r2, #5 + bl _DmaCopy + subs r5, #4 + adds r0, r5, #0 + bl sub_08080B60 + subs r4, #4 + adds r0, r4, #0 + bl sub_08080B60 + bl sub_0807BBE4 + bl sub_0807BC84 + bl sub_0805E248 + ldr r0, _08080190 @ =gUnk_02019EE0 + adds r1, r5, #0 + bl sub_0801AB08 + ldr r0, _08080194 @ =gMapDataTopSpecial + adds r1, r4, #0 + bl sub_0801AB08 + pop {r4, r5, r6, pc} + .align 2, 0 +_08080178: .4byte gMapDataBottom +_0808017C: .4byte gMapDataTop +_08080180: .4byte gUnk_02034480 +_08080184: .4byte gUnk_0200B640 +_08080188: .4byte gUnk_02022830 +_0808018C: .4byte gUnk_020246B0 +_08080190: .4byte gUnk_02019EE0 +_08080194: .4byte gMapDataTopSpecial + + thumb_func_start sub_08080198 +sub_08080198: @ 0x08080198 + push {r4, lr} + movs r1, #5 + strb r1, [r0, #3] + movs r4, #0 + movs r1, #0xff + strh r1, [r0, #0x1c] + bl LoadRoom + bl sub_0804AFF4 + ldr r0, _080801B8 @ =gUnk_02000070 + strb r4, [r0] + bl sub_080805F8 + pop {r4, pc} + .align 2, 0 +_080801B8: .4byte gUnk_02000070 + + thumb_func_start sub_080801BC +sub_080801BC: @ 0x080801BC + push {r4, r5, r6, r7, lr} + adds r5, r0, #0 + ldrh r4, [r5, #0x18] + adds r4, #6 + strh r4, [r5, #0x18] + ldrh r0, [r5, #0x18] + lsls r0, r0, #1 + movs r1, #3 + bl __divsi3 + strh r0, [r5, #0x1a] + lsls r4, r4, #0x10 + lsrs r4, r4, #0x10 + cmp r4, #0x1e + bls _08080232 + ldr r2, [r5, #0x30] + movs r0, #0x2e + ldrsh r1, [r2, r0] + movs r3, #0xa + ldrsh r0, [r5, r3] + subs r0, r1, r0 + ldrh r1, [r5, #0x18] + subs r7, r0, r1 + cmp r7, #0 + bge _080801F0 + movs r7, #0 +_080801F0: + adds r6, r0, r1 + cmp r6, #0xf0 + ble _080801F8 + movs r6, #0xf0 +_080801F8: + movs r0, #0x32 + ldrsh r1, [r2, r0] + movs r2, #0xc + ldrsh r0, [r5, r2] + subs r0, r1, r0 + ldrh r1, [r5, #0x1a] + subs r4, r0, r1 + cmp r4, #0 + bge _0808020C + movs r4, #0 +_0808020C: + adds r3, r0, r1 + cmp r3, #0xa0 + ble _08080214 + movs r3, #0xa0 +_08080214: + ldr r2, _08080260 @ =gScreen + movs r1, #0xff + ands r7, r1 + lsls r0, r7, #8 + ands r6, r1 + orrs r0, r6 + adds r6, r2, #0 + adds r6, #0x5a + strh r0, [r6] + ands r4, r1 + lsls r0, r4, #8 + ands r3, r1 + orrs r0, r3 + adds r2, #0x5e + strh r0, [r2] +_08080232: + ldrh r0, [r5, #0x1c] + cmp r0, #0 + bne _08080268 + strb r0, [r5, #2] + strh r0, [r5] + bl sub_0805E5B4 + ldr r1, _08080260 @ =gScreen + ldrh r2, [r1] + ldr r0, _08080264 @ =0x0000BFFF + ands r0, r2 + strh r0, [r1] + adds r2, r1, #0 + adds r2, #0x60 + ldrb r0, [r2] + strh r0, [r2] + adds r1, #0x62 + ldrh r2, [r1] + movs r0, #0xff + lsls r0, r0, #8 + ands r0, r2 + strh r0, [r1] + b _08080272 + .align 2, 0 +_08080260: .4byte gScreen +_08080264: .4byte 0x0000BFFF +_08080268: + ldr r0, _08080274 @ =gUnk_02000070 + movs r1, #4 + strb r1, [r0] + movs r0, #0 + strh r0, [r5, #0x1c] +_08080272: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080274: .4byte gUnk_02000070 + + thumb_func_start sub_08080278 +sub_08080278: @ 0x08080278 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #8 + ldr r0, _08080344 @ =gUnk_02022830 + mov ip, r0 + ldr r1, _08080348 @ =gRoomControls + ldrh r0, [r1, #0x1e] + lsrs r0, r0, #4 + str r0, [sp] + ldrh r0, [r1, #0x20] + lsrs r0, r0, #4 + lsls r0, r0, #6 + str r0, [sp, #4] + movs r5, #0 + mov sl, r5 + cmp r5, r0 + bhs _08080336 + mov sb, r5 +_080802A2: + movs r1, #0 + mov r8, r1 + ldr r0, [sp] + cmp r8, r0 + bhs _08080328 + ldr r4, _0808034C @ =gMapDataTop + add r4, sb + ldr r7, _08080350 @ =gUnk_0200E654 + add r7, sb + ldr r3, _08080354 @ =gMapDataBottom + add r3, sb + ldr r6, _08080358 @ =gUnk_02028EB4 + add r6, sb +_080802BC: + mov r2, sl + add r2, r8 + ldrh r0, [r6] + ldrh r1, [r3] + cmp r0, r1 + beq _080802EA + ldr r0, _0808035C @ =0x00003FFF + cmp r1, r0 + bhi _080802EA + adds r0, #1 + adds r1, r0, #0 + adds r0, r2, #0 + orrs r0, r1 + mov r1, ip + strh r0, [r1] + ldrh r0, [r3] + strh r0, [r1, #2] + movs r0, #4 + add ip, r0 + adds r5, #1 + ldr r0, _08080360 @ =0x000005FF + cmp r5, r0 + bhi _08080336 +_080802EA: + ldrh r0, [r7] + ldrh r1, [r4] + cmp r0, r1 + beq _08080316 + ldr r0, _0808035C @ =0x00003FFF + cmp r1, r0 + bhi _08080316 + movs r1, #0x80 + lsls r1, r1, #8 + adds r0, r1, #0 + orrs r2, r0 + mov r0, ip + strh r2, [r0] + ldrh r0, [r4] + mov r1, ip + strh r0, [r1, #2] + movs r0, #4 + add ip, r0 + adds r5, #1 + ldr r0, _08080364 @ =0x000007FF + cmp r5, r0 + bhi _08080336 +_08080316: + adds r4, #2 + adds r7, #2 + adds r3, #2 + adds r6, #2 + movs r1, #1 + add r8, r1 + ldr r0, [sp] + cmp r8, r0 + blo _080802BC +_08080328: + movs r1, #0x80 + add sb, r1 + movs r0, #0x40 + add sl, r0 + ldr r1, [sp, #4] + cmp sl, r1 + blo _080802A2 +_08080336: + adds r0, r5, #0 + add sp, #8 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_08080344: .4byte gUnk_02022830 +_08080348: .4byte gRoomControls +_0808034C: .4byte gMapDataTop +_08080350: .4byte gUnk_0200E654 +_08080354: .4byte gMapDataBottom +_08080358: .4byte gUnk_02028EB4 +_0808035C: .4byte 0x00003FFF +_08080360: .4byte 0x000005FF +_08080364: .4byte 0x000007FF + + thumb_func_start sub_08080368 +sub_08080368: @ 0x08080368 + push {r4, r5, r6, r7, lr} + ldr r0, _08080384 @ =gUnk_03004030 + ldr r1, _08080388 @ =gRoomControls + ldrb r0, [r0, #0xa] + ldrb r1, [r1, #4] + cmp r0, r1 + beq _08080390 + cmp r0, #0xff + beq _08080390 + ldr r1, _0808038C @ =gUnk_02034480 + movs r0, #0 + strh r0, [r1] + b _080803BE + .align 2, 0 +_08080384: .4byte gUnk_03004030 +_08080388: .4byte gRoomControls +_0808038C: .4byte gUnk_02034480 +_08080390: + ldr r5, _080803C0 @ =gUnk_020246B0 + ldr r0, _080803C4 @ =gUnk_02034480 + ldrh r0, [r0] + lsls r6, r0, #1 + movs r4, #0 + cmp r4, r6 + bhs _080803B8 + ldr r0, _080803C8 @ =0x00000FFF + adds r7, r0, #0 +_080803A2: + ldrh r0, [r5, #2] + ldrh r2, [r5] + adds r1, r7, #0 + ands r1, r2 + lsrs r2, r2, #0xe + bl sub_0807B9B8 + adds r5, #4 + adds r4, #2 + cmp r4, r6 + blo _080803A2 +_080803B8: + ldr r1, _080803CC @ =gUnk_02000070 + movs r0, #0 + strb r0, [r1] +_080803BE: + pop {r4, r5, r6, r7, pc} + .align 2, 0 +_080803C0: .4byte gUnk_020246B0 +_080803C4: .4byte gUnk_02034480 +_080803C8: .4byte 0x00000FFF +_080803CC: .4byte gUnk_02000070 + + thumb_func_start sub_080803D0 +sub_080803D0: @ 0x080803D0 + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + sub sp, #0x38 + ldr r1, _080804F0 @ =gRoomControls + movs r2, #0xa + ldrsh r0, [r1, r2] + ldrh r2, [r1, #6] + subs r0, r0, r2 + str r0, [sp, #0x18] + ldr r3, [r1, #0x30] + movs r4, #0x2e + ldrsh r0, [r3, r4] + subs r0, r0, r2 + str r0, [sp, #0x10] + movs r2, #0xc + ldrsh r0, [r1, r2] + ldrh r1, [r1, #8] + subs r0, r0, r1 + str r0, [sp, #0x1c] + movs r4, #0x32 + ldrsh r0, [r3, r4] + subs r0, r0, r1 + str r0, [sp, #0x14] + movs r0, #0x3c + str r0, [sp, #8] +_08080408: + movs r7, #0 + ldr r1, [sp, #8] + adds r1, #6 + str r1, [sp, #8] + adds r2, r1, #0 + muls r2, r1, r2 + mov sl, r2 + lsls r4, r1, #1 + adds r0, r4, #0 + movs r1, #3 + bl __divsi3 + str r0, [sp, #0xc] + adds r1, r0, #0 + muls r1, r0, r1 + mov sb, r1 + movs r2, #0 + str r2, [sp, #4] + rsbs r4, r4, #0 + adds r4, #1 + mov r0, sb + muls r0, r4, r0 + mov r4, sl + lsls r5, r4, #1 + adds r4, r0, r5 + ldr r0, [sp, #8] + mov r6, sb + muls r6, r0, r6 + adds r0, r6, #0 + mov r1, sl + bl __divsi3 + adds r2, r0, #0 + cmp r7, r2 + bgt _08080506 + ldr r1, [sp, #0x18] + adds r1, #0xf8 + str r1, [sp, #0x20] + mov r1, sl + adds r0, r5, r1 + lsls r3, r0, #1 + str r6, [sp, #0x2c] + ldr r0, [sp, #8] + lsls r1, r0, #2 + rsbs r1, r1, #0 + adds r1, #4 + mov r8, r1 + rsbs r0, r0, #0 + adds r0, #8 + ldr r1, [sp, #0x10] + adds r6, r0, r1 + ldr r0, [sp, #8] + adds r5, r0, r1 + mov r0, r8 + mov r1, sb + muls r1, r0, r1 + mov r8, r1 +_0808047A: + ldr r1, [sp, #0x1c] + adds r1, #0xa8 + mov ip, r1 + ldr r0, [sp, #0x14] + ldr r1, [sp, #4] + adds r0, r0, r1 + str r0, [sp, #0x34] + cmp ip, r0 + ble _080804A0 + ldr r0, [sp, #0x20] + cmp r0, r5 + ble _08080496 + movs r0, #1 + orrs r7, r0 +_08080496: + ldr r1, [sp, #0x18] + cmp r1, r6 + bge _080804A0 + movs r0, #2 + orrs r7, r0 +_080804A0: + ldr r0, [sp, #0x14] + ldr r1, [sp, #4] + subs r0, r0, r1 + mov ip, r0 + adds r0, #8 + ldr r1, [sp, #0x1c] + cmp r1, r0 + bge _080804C4 + ldr r0, [sp, #0x20] + cmp r0, r5 + ble _080804BA + movs r0, #4 + orrs r7, r0 +_080804BA: + ldr r1, [sp, #0x18] + cmp r1, r6 + bge _080804C4 + movs r0, #8 + orrs r7, r0 +_080804C4: + cmp r4, #0 + ble _080804F4 + mov r2, r8 + adds r0, r2, r3 + adds r4, r4, r0 + ldr r0, [sp, #0x2c] + mov r1, sb + subs r0, r0, r1 + str r0, [sp, #0x2c] + lsls r0, r1, #2 + add r8, r0 + adds r6, #1 + subs r5, #1 + ldr r0, [sp, #0x2c] + mov r1, sl + str r3, [sp, #0x30] + bl __divsi3 + adds r2, r0, #0 + ldr r3, [sp, #0x30] + b _080804F6 + .align 2, 0 +_080804F0: .4byte gRoomControls +_080804F4: + adds r4, r4, r3 +_080804F6: + mov r1, sl + lsls r0, r1, #2 + adds r3, r3, r0 + ldr r0, [sp, #4] + adds r0, #1 + str r0, [sp, #4] + cmp r0, r2 + ble _0808047A +_08080506: + movs r1, #0 + str r1, [sp] + ldr r2, [sp, #0xc] + str r2, [sp, #4] + mov r4, sb + lsls r6, r4, #1 + lsls r0, r2, #1 + rsbs r0, r0, #0 + adds r0, #1 + mov r1, sl + muls r1, r0, r1 + adds r0, r1, #0 + adds r4, r6, r0 + mov r5, sl + muls r5, r2, r5 + adds r0, r5, #0 + mov r1, sb + bl __divsi3 + adds r2, r0, #0 + ldr r0, [sp] + cmp r0, r2 + bgt _080805E4 + ldr r1, [sp, #0x18] + adds r1, #0xf8 + str r1, [sp, #0x24] + mov r1, sb + adds r0, r6, r1 + lsls r0, r0, #1 + mov r8, r0 + ldr r3, [sp, #0x10] + adds r3, #8 + ldr r6, [sp, #0x10] + str r5, [sp, #0x28] + ldr r1, [sp, #4] + lsls r0, r1, #2 + rsbs r0, r0, #0 + adds r0, #4 + mov r5, sl + muls r5, r0, r5 +_08080556: + ldr r0, [sp, #0x1c] + adds r0, #0xa8 + mov ip, r0 + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + adds r1, r1, r0 + str r1, [sp, #0x34] + cmp ip, r1 + ble _0808057C + ldr r1, [sp, #0x24] + cmp r1, r6 + ble _08080572 + movs r0, #0x10 + orrs r7, r0 +_08080572: + ldr r0, [sp, #0x18] + cmp r0, r3 + bge _0808057C + movs r0, #0x20 + orrs r7, r0 +_0808057C: + ldr r1, [sp, #0x14] + ldr r0, [sp, #4] + subs r1, r1, r0 + mov ip, r1 + mov r0, ip + adds r0, #8 + ldr r1, [sp, #0x1c] + cmp r1, r0 + bge _080805A2 + ldr r0, [sp, #0x24] + cmp r0, r6 + ble _08080598 + movs r0, #0x40 + orrs r7, r0 +_08080598: + ldr r1, [sp, #0x18] + cmp r1, r3 + bge _080805A2 + movs r0, #0x80 + orrs r7, r0 +_080805A2: + cmp r4, #0 + ble _080805CE + mov r2, r8 + adds r0, r2, r5 + adds r4, r4, r0 + ldr r0, [sp, #0x28] + mov r1, sl + subs r0, r0, r1 + str r0, [sp, #0x28] + lsls r0, r1, #2 + adds r5, r5, r0 + ldr r2, [sp, #4] + subs r2, #1 + str r2, [sp, #4] + ldr r0, [sp, #0x28] + mov r1, sb + str r3, [sp, #0x30] + bl __divsi3 + adds r2, r0, #0 + ldr r3, [sp, #0x30] + b _080805D0 +_080805CE: + add r4, r8 +_080805D0: + mov r1, sb + lsls r0, r1, #2 + add r8, r0 + subs r3, #1 + adds r6, #1 + ldr r0, [sp] + adds r0, #1 + str r0, [sp] + cmp r0, r2 + ble _08080556 +_080805E4: + cmp r7, #0 + beq _080805EA + b _08080408 +_080805EA: + ldr r0, [sp, #8] + add sp, #0x38 + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_080805F8 +sub_080805F8: @ 0x080805F8 + push {lr} + ldr r0, _08080610 @ =gRoomControls + ldrb r0, [r0, #4] + subs r0, #0xc + cmp r0, #0xd + bhi _0808065C + lsls r0, r0, #2 + ldr r1, _08080614 @ =_08080618 + adds r0, r0, r1 + ldr r0, [r0] + mov pc, r0 + .align 2, 0 +_08080610: .4byte gRoomControls +_08080614: .4byte _08080618 +_08080618: @ jump table + .4byte _08080650 @ case 0 + .4byte _0808065C @ case 1 + .4byte _0808065C @ case 2 + .4byte _08080650 @ case 3 + .4byte _0808065C @ case 4 + .4byte _0808065C @ case 5 + .4byte _0808065C @ case 6 + .4byte _08080650 @ case 7 + .4byte _08080650 @ case 8 + .4byte _0808065C @ case 9 + .4byte _08080650 @ case 10 + .4byte _08080650 @ case 11 + .4byte _0808065C @ case 12 + .4byte _08080650 @ case 13 +_08080650: + ldr r1, _08080658 @ =gUnk_03004030 + movs r0, #1 + b _08080660 + .align 2, 0 +_08080658: .4byte gUnk_03004030 +_0808065C: + ldr r1, _08080664 @ =gUnk_03004030 + movs r0, #0 +_08080660: + strb r0, [r1, #8] + pop {pc} + .align 2, 0 +_08080664: .4byte gUnk_03004030 + + thumb_func_start sub_08080668 +sub_08080668: @ 0x08080668 + push {r4, r5, lr} + ldr r5, _080806A4 @ =gRoomControls + adds r0, r5, #0 + movs r1, #0x38 + bl _DmaZero + ldr r4, _080806A8 @ =gUnk_03004030 + adds r0, r4, #0 + movs r1, #0xc + bl _DmaZero + ldr r0, _080806AC @ =0x0000FFFF + strh r0, [r5, #0x22] + movs r0, #0xff + strb r0, [r4, #0xa] + ldr r1, _080806B0 @ =gUnk_02034480 + movs r0, #0 + strh r0, [r1] + ldr r0, _080806B4 @ =gUnk_02019EE0 + movs r4, #0x80 + lsls r4, r4, #8 + adds r1, r4, #0 + bl _DmaZero + ldr r0, _080806B8 @ =gMapDataTopSpecial + adds r1, r4, #0 + bl _DmaZero + pop {r4, r5, pc} + .align 2, 0 +_080806A4: .4byte gRoomControls +_080806A8: .4byte gUnk_03004030 +_080806AC: .4byte 0x0000FFFF +_080806B0: .4byte gUnk_02034480 +_080806B4: .4byte gUnk_02019EE0 +_080806B8: .4byte gMapDataTopSpecial + + thumb_func_start sub_080806BC +sub_080806BC: @ 0x080806BC + push {r4, r5, r6, r7, lr} + mov r7, sl + mov r6, sb + mov r5, r8 + push {r5, r6, r7} + mov sb, r0 + mov r8, r1 + adds r7, r2, #0 + adds r6, r3, #0 + ldr r0, _08080710 @ =gArea + ldr r1, _08080714 @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r5, [r0, #0x18] + ldrh r0, [r5] + ldr r1, _08080718 @ =0x0000FFFF + cmp r0, r1 + beq _08080728 + mov sl, r1 +_080806E2: + ldrh r2, [r5] + movs r0, #1 + lsls r0, r2 + ands r0, r6 + cmp r0, #0 + beq _08080720 + ldr r1, _0808071C @ =gUnk_0811E7AC + lsls r0, r2, #2 + adds r0, r0, r1 + ldr r4, [r0] + adds r0, r5, #0 + mov r1, sb + mov r2, r8 + adds r3, r7, #0 + bl _call_via_r4 + cmp r0, #0 + beq _08080720 + adds r0, r5, #0 + bl DoExitTransition + movs r0, #1 + b _0808072A + .align 2, 0 +_08080710: .4byte gArea +_08080714: .4byte 0x0000085C +_08080718: .4byte 0x0000FFFF +_0808071C: .4byte gUnk_0811E7AC +_08080720: + adds r5, #0x14 + ldrh r0, [r5] + cmp r0, sl + bne _080806E2 +_08080728: + movs r0, #0 +_0808072A: + pop {r3, r4, r5} + mov r8, r3 + mov sb, r4 + mov sl, r5 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080734 +sub_08080734: @ 0x08080734 + push {r4, r5, r6, r7, lr} + mov r7, r8 + push {r7} + adds r6, r0, #0 + adds r5, r1, #0 + ldr r0, _08080778 @ =gArea + ldr r1, _0808077C @ =0x0000085C + adds r0, r0, r1 + ldr r0, [r0] + ldr r4, [r0, #0x18] + movs r0, #0xa + mov r8, r0 + ldrh r0, [r4] + ldr r1, _08080780 @ =0x0000FFFF + cmp r0, r1 + beq _0808078C + adds r7, r1, #0 +_08080756: + movs r0, #1 + ldrh r1, [r4] + lsls r0, r1 + mov r1, r8 + ands r0, r1 + cmp r0, #0 + beq _08080784 + adds r0, r4, #0 + adds r1, r6, #0 + adds r2, r5, #0 + movs r3, #0 + bl sub_08080808 + cmp r0, #0 + beq _08080784 + adds r0, r4, #0 + b _0808078E + .align 2, 0 +_08080778: .4byte gArea +_0808077C: .4byte 0x0000085C +_08080780: .4byte 0x0000FFFF +_08080784: + adds r4, #0x14 + ldrh r0, [r4] + cmp r0, r7 + bne _08080756 +_0808078C: + movs r0, #0 +_0808078E: + pop {r3} + mov r8, r3 + pop {r4, r5, r6, r7, pc} + + thumb_func_start sub_08080794 +sub_08080794: @ 0x08080794 + push {r4, lr} + adds r4, r0, #0 + cmp r3, #1 + beq _080807C0 + cmp r3, #1 + blo _080807AC + cmp r3, #2 + beq _080807D4 + cmp r3, #3 + beq _080807E8 +_080807A8: + movs r0, #0 + b _08080800 +_080807AC: + ldr r0, _080807BC @ =gRoomControls + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #1 + movs r3, #1 + cmp r0, r1 + bhs _080807F6 + movs r3, #2 + b _080807F6 + .align 2, 0 +_080807BC: .4byte gRoomControls +_080807C0: + ldr r0, _080807D0 @ =gRoomControls + ldrh r0, [r0, #0x20] + lsrs r0, r0, #1 + movs r3, #4 + cmp r0, r2 + bhs _080807F6 + movs r3, #8 + b _080807F6 + .align 2, 0 +_080807D0: .4byte gRoomControls +_080807D4: + ldr r0, _080807E4 @ =gRoomControls + ldrh r0, [r0, #0x1e] + lsrs r0, r0, #1 + movs r3, #0x10 + cmp r0, r1 + bhs _080807F6 + movs r3, #0x20 + b _080807F6 + .align 2, 0 +_080807E4: .4byte gRoomControls +_080807E8: + ldr r0, _08080804 @ =gRoomControls + ldrh r0, [r0, #0x20] + lsrs r0, r0, #1 + movs r3, #0x40 + cmp r0, r2 + bhs _080807F6 + movs r3, #0x80 +_080807F6: + ldrb r0, [r4, #0xa] + ands r0, r3 + cmp r0, #0 + beq _080807A8 + movs r0, #1 +_08080800: + pop {r4, pc} + .align 2, 0 +_08080804: .4byte gRoomControls + + thumb_func_start sub_08080808 +sub_08080808: @ 0x08080808 + push {r4, r5, lr} + adds r3, r0, #0 + adds r5, r2, #0 + ldrb r0, [r3, #0xa] + lsls r0, r0, #1 + ldr r2, _08080838 @ =gUnk_0811E7BC + adds r4, r0, r2 + ldrb r0, [r4] + ldrh r2, [r3, #2] + subs r1, r1, r2 + adds r1, r1, r0 + lsls r0, r0, #1 + cmp r1, r0 + bhi _0808083C + ldrb r1, [r4, #1] + ldrh r0, [r3, #4] + subs r0, r5, r0 + adds r0, r0, r1 + lsls r1, r1, #1 + cmp r0, r1 + bhi _0808083C + movs r0, #1 + b _0808083E + .align 2, 0 +_08080838: .4byte gUnk_0811E7BC +_0808083C: + movs r0, #0 +_0808083E: + pop {r4, r5, pc} + + thumb_func_start DoExitTransition +DoExitTransition: @ 0x08080840 + push {r4, lr} + adds r4, r0, #0 + ldr r0, _0808085C @ =gScreenTransition + movs r1, #1 + strb r1, [r0, #8] + adds r2, r0, #0 + adds r2, #0xc + ldrh r1, [r4, #6] + ldr r0, _08080860 @ =0x000003FF + cmp r1, r0 + bhi _08080864 + strh r1, [r2, #4] + b _08080872 + .align 2, 0 +_0808085C: .4byte gScreenTransition +_08080860: .4byte 0x000003FF +_08080864: + ldr r0, _08080880 @ =gRoomControls + ldr r0, [r0, #0x30] + ldrh r1, [r0, #0x2e] + ldr r3, _08080884 @ =0xFFFF8000 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #4] +_08080872: + ldrh r1, [r4, #8] + ldr r0, _08080888 @ =0x000003FF + cmp r1, r0 + bhi _0808088C + strh r1, [r2, #6] + b _0808089A + .align 2, 0 +_08080880: .4byte gRoomControls +_08080884: .4byte 0xFFFF8000 +_08080888: .4byte 0x000003FF +_0808088C: + ldr r0, _080808CC @ =gRoomControls + ldr r0, [r0, #0x30] + ldrh r1, [r0, #0x32] + ldr r3, _080808D0 @ =0xFFFF8000 + adds r0, r3, #0 + orrs r0, r1 + strh r0, [r2, #6] +_0808089A: + ldrb r0, [r4, #0xb] + strb r0, [r2] + ldrb r0, [r4, #0xc] + strb r0, [r2, #1] + ldrb r0, [r4, #0xd] + strb r0, [r2, #8] + ldrb r0, [r4, #0xe] + strb r0, [r2, #3] + ldrb r0, [r4, #0xf] + strb r0, [r2, #2] + ldrh r0, [r4, #0x10] + cmp r0, #0 + beq _080808B8 + bl PlaySFX +_080808B8: + ldr r0, _080808D4 @ =gUnk_0811E7C4 + ldrh r1, [r4] + lsls r1, r1, #2 + adds r1, r1, r0 + ldrb r0, [r4, #0xa] + ldr r1, [r1] + bl _call_via_r1 + pop {r4, pc} + .align 2, 0 +_080808CC: .4byte gRoomControls +_080808D0: .4byte 0xFFFF8000 +_080808D4: .4byte gUnk_0811E7C4 diff --git a/data/data_0811E454.s b/data/data_0811E454.s index 19f42ded..520aaa25 100755 --- a/data/data_0811E454.s +++ b/data/data_0811E454.s @@ -36,957 +36,3 @@ gUnk_0811E510:: @ 0811E510 gUnk_0811E514:: @ 0811E514 .incbin "baserom.gba", 0x11E514, 0x0000010 - -gUnk_0811E524:: @ 0811E524 - .incbin "baserom.gba", 0x11E524, 0x000022C - -gUnk_0811E750:: @ 0811E750 - .incbin "baserom.gba", 0x11E750, 0x0000008 - -gUnk_0811E758:: @ 0811E758 - .incbin "baserom.gba", 0x11E758, 0x0000008 - -gUnk_0811E760:: @ 0811E760 - .incbin "baserom.gba", 0x11E760, 0x0000008 - -gUnk_0811E768:: @ 0811E768 - .incbin "baserom.gba", 0x11E768, 0x0000018 - -gUnk_0811E780:: @ 0811E780 - .incbin "baserom.gba", 0x11E780, 0x000000C - -gUnk_0811E78C:: @ 0811E78C - .incbin "baserom.gba", 0x11E78C, 0x0000008 - -gUnk_0811E794:: @ 0811E794 - .incbin "baserom.gba", 0x11E794, 0x0000018 - -gUnk_0811E7AC:: @ 0811E7AC - .incbin "baserom.gba", 0x11E7AC, 0x0000010 - -gUnk_0811E7BC:: @ 0811E7BC - .incbin "baserom.gba", 0x11E7BC, 0x0000008 - -gUnk_0811E7C4:: @ 0811E7C4 - .incbin "baserom.gba", 0x11E7C4, 0x0000010 - -gUnk_0811E7D4:: @ 0811E7D4 - .incbin "baserom.gba", 0x11E7D4, 0x0000014 - -gUnk_0811E7E8:: @ 0811E7E8 - .incbin "baserom.gba", 0x11E7E8, 0x000002C - -gUnk_0811E814:: @ 0811E814 - .incbin "baserom.gba", 0x11E814, 0x000002C - -gUnk_0811E840:: @ 0811E840 - .incbin "baserom.gba", 0x11E840, 0x000000C - -gUnk_0811E84C:: @ 0811E84C - .incbin "baserom.gba", 0x11E84C, 0x00000B0 - -gUnk_0811E8FC:: @ 0811E8FC - .incbin "baserom.gba", 0x11E8FC, 0x00000FA - -gUnk_0811E9F6:: @ 0811E9F6 - .incbin "baserom.gba", 0x11E9F6, 0x0000001 - -gUnk_0811E9F7:: @ 0811E9F7 - .incbin "baserom.gba", 0x11E9F7, 0x0000124 - -gUnk_0811EB1B:: @ 0811EB1B - .incbin "baserom.gba", 0x11EB1B, 0x00000DE - -gUnk_0811EBF9:: @ 0811EBF9 - .incbin "baserom.gba", 0x11EBF9, 0x0000003 - -gUnk_0811EBFC:: @ 0811EBFC - .incbin "baserom.gba", 0x11EBFC, 0x0000007 - -gUnk_0811EC03:: @ 0811EC03 - .incbin "baserom.gba", 0x11EC03, 0x0000005 - -gUnk_0811EC08:: @ 0811EC08 - .incbin "baserom.gba", 0x11EC08, 0x0000018 - -gUnk_0811EC20:: @ 0811EC20 - .incbin "baserom.gba", 0x11EC20, 0x0000004 - -gUnk_0811EC24:: @ 0811EC24 - .incbin "baserom.gba", 0x11EC24, 0x0000040 - -gUnk_0811EC64:: @ 0811EC64 - .incbin "baserom.gba", 0x11EC64, 0x0000070 - -gUnk_0811ECD4:: @ 0811ECD4 - .incbin "baserom.gba", 0x11ECD4, 0x0000079 - -gUnk_0811ED4D:: @ 0811ED4D - .incbin "baserom.gba", 0x11ED4D, 0x0000039 - -gUnk_0811ED86:: @ 0811ED86 - .incbin "baserom.gba", 0x11ED86, 0x0000031 - -gUnk_0811EDB7:: @ 0811EDB7 - .incbin "baserom.gba", 0x11EDB7, 0x0000034 - -gUnk_0811EDEB:: @ 0811EDEB - .incbin "baserom.gba", 0x11EDEB, 0x0000014 - -gUnk_0811EDFF:: @ 0811EDFF - .incbin "baserom.gba", 0x11EDFF, 0x0000011 - -gUnk_0811EE10:: @ 0811EE10 - .incbin "baserom.gba", 0x11EE10, 0x0000010 - -gUnk_0811EE20:: @ 0811EE20 - .incbin "baserom.gba", 0x11EE20, 0x0000008 - -gUnk_0811EE28:: @ 0811EE28 - .incbin "baserom.gba", 0x11EE28, 0x0000010 - -gUnk_0811EE38:: @ 0811EE38 - .incbin "baserom.gba", 0x11EE38, 0x0000018 - -gUnk_0811EE50:: @ 0811EE50 - .incbin "baserom.gba", 0x11EE50, 0x000000C - -gUnk_0811EE5C:: @ 0811EE5C - .incbin "baserom.gba", 0x11EE5C, 0x0000008 - -gUnk_0811EE64:: @ 0811EE64 - .incbin "baserom.gba", 0x11EE64, 0x0000029 - -gUnk_0811EE8D:: @ 0811EE8D - .incbin "baserom.gba", 0x11EE8D, 0x0000004 - -gUnk_0811EE91:: @ 0811EE91 - .incbin "baserom.gba", 0x11EE91, 0x0000029 - -gUnk_0811EEBA:: @ 0811EEBA - .incbin "baserom.gba", 0x11EEBA, 0x0000004 - -gUnk_0811EEBE:: @ 0811EEBE - .incbin "baserom.gba", 0x11EEBE, 0x0000005 - -gUnk_0811EEC3:: @ 0811EEC3 - .incbin "baserom.gba", 0x11EEC3, 0x0000004 - -gUnk_0811EEC7:: @ 0811EEC7 - .incbin "baserom.gba", 0x11EEC7, 0x0000029 - -gUnk_0811EEF0:: @ 0811EEF0 - .incbin "baserom.gba", 0x11EEF0, 0x0000004 - -gUnk_0811EEF4:: @ 0811EEF4 - .incbin "baserom.gba", 0x11EEF4, 0x0000009 - -gUnk_0811EEFD:: @ 0811EEFD - .incbin "baserom.gba", 0x11EEFD, 0x0000009 - -gUnk_0811EF06:: @ 0811EF06 - .incbin "baserom.gba", 0x11EF06, 0x0000009 - -gUnk_0811EF0F:: @ 0811EF0F - .incbin "baserom.gba", 0x11EF0F, 0x0000028 - -gUnk_0811EF37:: @ 0811EF37 - .incbin "baserom.gba", 0x11EF37, 0x0000018 - -gUnk_0811EF4F:: @ 0811EF4F - .incbin "baserom.gba", 0x11EF4F, 0x0000018 - -gUnk_0811EF67:: @ 0811EF67 - .incbin "baserom.gba", 0x11EF67, 0x0000018 - -gUnk_0811EF7F:: @ 0811EF7F - .incbin "baserom.gba", 0x11EF7F, 0x0000018 - -gUnk_0811EF97:: @ 0811EF97 - .incbin "baserom.gba", 0x11EF97, 0x0000009 - -gUnk_0811EFA0:: @ 0811EFA0 - .incbin "baserom.gba", 0x11EFA0, 0x0000009 - -gUnk_0811EFA9:: @ 0811EFA9 - .incbin "baserom.gba", 0x11EFA9, 0x0000009 - -gUnk_0811EFB2:: @ 0811EFB2 - .incbin "baserom.gba", 0x11EFB2, 0x0000009 - -gUnk_0811EFBB:: @ 0811EFBB - .incbin "baserom.gba", 0x11EFBB, 0x0000009 - -gUnk_0811EFC4:: @ 0811EFC4 - .incbin "baserom.gba", 0x11EFC4, 0x0000015 - -gUnk_0811EFD9:: @ 0811EFD9 - .incbin "baserom.gba", 0x11EFD9, 0x0000015 - -gUnk_0811EFEE:: @ 0811EFEE - .incbin "baserom.gba", 0x11EFEE, 0x000000E - -gUnk_0811EFFC:: @ 0811EFFC - .incbin "baserom.gba", 0x11EFFC, 0x0000007 - -gUnk_0811F003:: @ 0811F003 - .incbin "baserom.gba", 0x11F003, 0x0000015 - -gUnk_0811F018:: @ 0811F018 - .incbin "baserom.gba", 0x11F018, 0x0000078 - -gUnk_0811F090:: @ 0811F090 - .incbin "baserom.gba", 0x11F090, 0x0000018 - -gUnk_0811F0A8:: @ 0811F0A8 - .incbin "baserom.gba", 0x11F0A8, 0x000001C - -gUnk_0811F0C4:: @ 0811F0C4 - .incbin "baserom.gba", 0x11F0C4, 0x0000018 - -gUnk_0811F0DC:: @ 0811F0DC - .incbin "baserom.gba", 0x11F0DC, 0x0000005 - -gUnk_0811F0E1:: @ 0811F0E1 - .incbin "baserom.gba", 0x11F0E1, 0x0000005 - -gUnk_0811F0E6:: @ 0811F0E6 - .incbin "baserom.gba", 0x11F0E6, 0x0000005 - -gUnk_0811F0EB:: @ 0811F0EB - .incbin "baserom.gba", 0x11F0EB, 0x0000005 - -gUnk_0811F0F0:: @ 0811F0F0 - .incbin "baserom.gba", 0x11F0F0, 0x0000005 - -gUnk_0811F0F5:: @ 0811F0F5 - .incbin "baserom.gba", 0x11F0F5, 0x0000003 - -gUnk_0811F0F8:: @ 0811F0F8 - .incbin "baserom.gba", 0x11F0F8, 0x0000002 - -gUnk_0811F0FA:: @ 0811F0FA - .incbin "baserom.gba", 0x11F0FA, 0x0000005 - -gUnk_0811F0FF:: @ 0811F0FF - .incbin "baserom.gba", 0x11F0FF, 0x0000001 - -gUnk_0811F100:: @ 0811F100 - .incbin "baserom.gba", 0x11F100, 0x0000004 - -gUnk_0811F104:: @ 0811F104 - .incbin "baserom.gba", 0x11F104, 0x0000005 - -gUnk_0811F109:: @ 0811F109 - .incbin "baserom.gba", 0x11F109, 0x0000005 - -gUnk_0811F10E:: @ 0811F10E - .incbin "baserom.gba", 0x11F10E, 0x0000005 - -gUnk_0811F113:: @ 0811F113 - .incbin "baserom.gba", 0x11F113, 0x0000005 - -gUnk_0811F118:: @ 0811F118 - .incbin "baserom.gba", 0x11F118, 0x0000034 - -gUnk_0811F14C:: @ 0811F14C - .incbin "baserom.gba", 0x11F14C, 0x0000008 - -gUnk_0811F154:: @ 0811F154 - .incbin "baserom.gba", 0x11F154, 0x0000008 - -gUnk_0811F15C:: @ 0811F15C - .incbin "baserom.gba", 0x11F15C, 0x0000010 - -gUnk_0811F16C:: @ 0811F16C - .incbin "baserom.gba", 0x11F16C, 0x000000C - -gUnk_0811F178:: @ 0811F178 - .incbin "baserom.gba", 0x11F178, 0x0000014 - -gUnk_0811F18C:: @ 0811F18C - .incbin "baserom.gba", 0x11F18C, 0x0000004 - -gUnk_0811F190:: @ 0811F190 - .incbin "baserom.gba", 0x11F190, 0x000001D - -gUnk_0811F1AD:: @ 0811F1AD - .incbin "baserom.gba", 0x11F1AD, 0x000001D - -gUnk_0811F1CA:: @ 0811F1CA - .incbin "baserom.gba", 0x11F1CA, 0x000001D - -gUnk_0811F1E7:: @ 0811F1E7 - .incbin "baserom.gba", 0x11F1E7, 0x0000029 - -gUnk_0811F210:: @ 0811F210 - .incbin "baserom.gba", 0x11F210, 0x000001D - -gUnk_0811F22D:: @ 0811F22D - .incbin "baserom.gba", 0x11F22D, 0x000001D - -gUnk_0811F24A:: @ 0811F24A - .incbin "baserom.gba", 0x11F24A, 0x000001D - -gUnk_0811F267:: @ 0811F267 - .incbin "baserom.gba", 0x11F267, 0x0000029 - -gUnk_0811F290:: @ 0811F290 - .incbin "baserom.gba", 0x11F290, 0x000001D - -gUnk_0811F2AD:: @ 0811F2AD - .incbin "baserom.gba", 0x11F2AD, 0x000001D - -gUnk_0811F2CA:: @ 0811F2CA - .incbin "baserom.gba", 0x11F2CA, 0x000001D - -gUnk_0811F2E7:: @ 0811F2E7 - .incbin "baserom.gba", 0x11F2E7, 0x0000029 - -gUnk_0811F310:: @ 0811F310 - .incbin "baserom.gba", 0x11F310, 0x000000D - -gUnk_0811F31D:: @ 0811F31D - .incbin "baserom.gba", 0x11F31D, 0x000000D - -gUnk_0811F32A:: @ 0811F32A - .incbin "baserom.gba", 0x11F32A, 0x000000D - -gUnk_0811F337:: @ 0811F337 - .incbin "baserom.gba", 0x11F337, 0x0000029 - -gUnk_0811F360:: @ 0811F360 - .incbin "baserom.gba", 0x11F360, 0x000000D - -gUnk_0811F36D:: @ 0811F36D - .incbin "baserom.gba", 0x11F36D, 0x000000D - -gUnk_0811F37A:: @ 0811F37A - .incbin "baserom.gba", 0x11F37A, 0x000000D - -gUnk_0811F387:: @ 0811F387 - .incbin "baserom.gba", 0x11F387, 0x0000029 - -gUnk_0811F3B0:: @ 0811F3B0 - .incbin "baserom.gba", 0x11F3B0, 0x000000D - -gUnk_0811F3BD:: @ 0811F3BD - .incbin "baserom.gba", 0x11F3BD, 0x000000D - -gUnk_0811F3CA:: @ 0811F3CA - .incbin "baserom.gba", 0x11F3CA, 0x000000D - -gUnk_0811F3D7:: @ 0811F3D7 - .incbin "baserom.gba", 0x11F3D7, 0x0000029 - -gUnk_0811F400:: @ 0811F400 - .incbin "baserom.gba", 0x11F400, 0x0000005 - -gUnk_0811F405:: @ 0811F405 - .incbin "baserom.gba", 0x11F405, 0x0000011 - -gUnk_0811F416:: @ 0811F416 - .incbin "baserom.gba", 0x11F416, 0x0000029 - -gUnk_0811F43F:: @ 0811F43F - .incbin "baserom.gba", 0x11F43F, 0x0000029 - -gUnk_0811F468:: @ 0811F468 - .incbin "baserom.gba", 0x11F468, 0x0000051 - -gUnk_0811F4B9:: @ 0811F4B9 - .incbin "baserom.gba", 0x11F4B9, 0x0000019 - -gUnk_0811F4D2:: @ 0811F4D2 - .incbin "baserom.gba", 0x11F4D2, 0x0000005 - -gUnk_0811F4D7:: @ 0811F4D7 - .incbin "baserom.gba", 0x11F4D7, 0x0000074 - -gUnk_0811F54B:: @ 0811F54B - .incbin "baserom.gba", 0x11F54B, 0x0000015 - -gUnk_0811F560:: @ 0811F560 - .incbin "baserom.gba", 0x11F560, 0x0000015 - -gUnk_0811F575:: @ 0811F575 - .incbin "baserom.gba", 0x11F575, 0x0000015 - -gUnk_0811F58A:: @ 0811F58A - .incbin "baserom.gba", 0x11F58A, 0x0000006 - -gUnk_0811F590:: @ 0811F590 - .incbin "baserom.gba", 0x11F590, 0x0000065 - -gUnk_0811F5F5:: @ 0811F5F5 - .incbin "baserom.gba", 0x11F5F5, 0x0000010 - -gUnk_0811F605:: @ 0811F605 - .incbin "baserom.gba", 0x11F605, 0x000001F - -gUnk_0811F624:: @ 0811F624 - .incbin "baserom.gba", 0x11F624, 0x0000008 - -gUnk_0811F62C:: @ 0811F62C - .incbin "baserom.gba", 0x11F62C, 0x0000008 - -gUnk_0811F634:: @ 0811F634 - .incbin "baserom.gba", 0x11F634, 0x0000008 - -gUnk_0811F63C:: @ 0811F63C - .incbin "baserom.gba", 0x11F63C, 0x0000008 - -gUnk_0811F644:: @ 0811F644 - .incbin "baserom.gba", 0x11F644, 0x0000008 - -gUnk_0811F64C:: @ 0811F64C - .incbin "baserom.gba", 0x11F64C, 0x0000010 - -gUnk_0811F65C:: @ 0811F65C - .incbin "baserom.gba", 0x11F65C, 0x0000024 - -gUnk_0811F680:: @ 0811F680 - .incbin "baserom.gba", 0x11F680, 0x0000008 - -gUnk_0811F688:: @ 0811F688 - .incbin "baserom.gba", 0x11F688, 0x0000008 - -gUnk_0811F690:: @ 0811F690 - .incbin "baserom.gba", 0x11F690, 0x00000A0 - -gUnk_0811F730:: @ 0811F730 - .incbin "baserom.gba", 0x11F730, 0x0000010 - -gUnk_0811F740:: @ 0811F740 - .incbin "baserom.gba", 0x11F740, 0x0000004 - -gUnk_0811F744:: @ 0811F744 - .incbin "baserom.gba", 0x11F744, 0x0000010 - -gUnk_0811F754:: @ 0811F754 - .incbin "baserom.gba", 0x11F754, 0x000000C - -gUnk_0811F760:: @ 0811F760 - .incbin "baserom.gba", 0x11F760, 0x0000035 - -gUnk_0811F795:: @ 0811F795 - .incbin "baserom.gba", 0x11F795, 0x0000037 - -gUnk_0811F7CC:: @ 0811F7CC - .incbin "baserom.gba", 0x11F7CC, 0x000000C - -gUnk_0811F7D8:: @ 0811F7D8 - .incbin "baserom.gba", 0x11F7D8, 0x000000D - -gUnk_0811F7E5:: @ 0811F7E5 - .incbin "baserom.gba", 0x11F7E5, 0x0000003 - -gUnk_0811F7E8:: @ 0811F7E8 - .incbin "baserom.gba", 0x11F7E8, 0x0000020 - -gUnk_0811F808:: @ 0811F808 - .incbin "baserom.gba", 0x11F808, 0x0000010 - -gUnk_0811F818:: @ 0811F818 - .incbin "baserom.gba", 0x11F818, 0x0000020 - -gUnk_0811F838:: @ 0811F838 - .incbin "baserom.gba", 0x11F838, 0x0000008 - -gUnk_0811F840:: @ 0811F840 - .incbin "baserom.gba", 0x11F840, 0x0000010 - -gUnk_0811F850:: @ 0811F850 - .incbin "baserom.gba", 0x11F850, 0x0000004 - -gUnk_0811F854:: @ 0811F854 - .incbin "baserom.gba", 0x11F854, 0x0000012 - -gUnk_0811F866:: @ 0811F866 - .incbin "baserom.gba", 0x11F866, 0x000001A - -gUnk_0811F880:: @ 0811F880 - .incbin "baserom.gba", 0x11F880, 0x000000A - -gUnk_0811F88A:: @ 0811F88A - .incbin "baserom.gba", 0x11F88A, 0x000000E - -gUnk_0811F898:: @ 0811F898 - .incbin "baserom.gba", 0x11F898, 0x0000010 - -gUnk_0811F8A8:: @ 0811F8A8 - .incbin "baserom.gba", 0x11F8A8, 0x0000008 - -gUnk_0811F8B0:: @ 0811F8B0 - .incbin "baserom.gba", 0x11F8B0, 0x0000008 - -gUnk_0811F8B8:: @ 0811F8B8 - .incbin "baserom.gba", 0x11F8B8, 0x0000011 - -gUnk_0811F8C9:: @ 0811F8C9 - .incbin "baserom.gba", 0x11F8C9, 0x0000005 - -gUnk_0811F8CE:: @ 0811F8CE - .incbin "baserom.gba", 0x11F8CE, 0x0000005 - -gUnk_0811F8D3:: @ 0811F8D3 - .incbin "baserom.gba", 0x11F8D3, 0x0000015 - -gUnk_0811F8E8:: @ 0811F8E8 - .incbin "baserom.gba", 0x11F8E8, 0x0000008 - -gUnk_0811F8F0:: @ 0811F8F0 - .incbin "baserom.gba", 0x11F8F0, 0x0000008 - -gUnk_0811F8F8:: @ 0811F8F8 - .incbin "baserom.gba", 0x11F8F8, 0x0000010 - -gUnk_0811F908:: @ 0811F908 - .incbin "baserom.gba", 0x11F908, 0x0000010 - -gUnk_0811F918:: @ 0811F918 - .incbin "baserom.gba", 0x11F918, 0x000002D - -gUnk_0811F945:: @ 0811F945 - .incbin "baserom.gba", 0x11F945, 0x000000F - -gUnk_0811F954:: @ 0811F954 - .incbin "baserom.gba", 0x11F954, 0x000000C - -gUnk_0811F960:: @ 0811F960 - .incbin "baserom.gba", 0x11F960, 0x000009B - -gUnk_0811F9FB:: @ 0811F9FB - .incbin "baserom.gba", 0x11F9FB, 0x00000C5 - -gUnk_0811FAC0:: @ 0811FAC0 - .incbin "baserom.gba", 0x11FAC0, 0x0000008 - -gUnk_0811FAC8:: @ 0811FAC8 - .incbin "baserom.gba", 0x11FAC8, 0x0000004 - -gUnk_0811FACC:: @ 0811FACC - .incbin "baserom.gba", 0x11FACC, 0x0000004 - -gUnk_0811FAD0:: @ 0811FAD0 - .incbin "baserom.gba", 0x11FAD0, 0x0000038 - -gUnk_0811FB08:: @ 0811FB08 - .incbin "baserom.gba", 0x11FB08, 0x0000008 - -gUnk_0811FB10:: @ 0811FB10 - .incbin "baserom.gba", 0x11FB10, 0x0000015 - -gUnk_0811FB25:: @ 0811FB25 - .incbin "baserom.gba", 0x11FB25, 0x0000058 - -gUnk_0811FB7D:: @ 0811FB7D - .incbin "baserom.gba", 0x11FB7D, 0x0000044 - -gUnk_0811FBC1:: @ 0811FBC1 - .incbin "baserom.gba", 0x11FBC1, 0x0000020 - -gUnk_0811FBE1:: @ 0811FBE1 - .incbin "baserom.gba", 0x11FBE1, 0x000000C - -gUnk_0811FBED:: @ 0811FBED - .incbin "baserom.gba", 0x11FBED, 0x0000010 - -gUnk_0811FBFD:: @ 0811FBFD - .incbin "baserom.gba", 0x11FBFD, 0x0000014 - -gUnk_0811FC11:: @ 0811FC11 - .incbin "baserom.gba", 0x11FC11, 0x000001C - -gUnk_0811FC2D:: @ 0811FC2D - .incbin "baserom.gba", 0x11FC2D, 0x0000024 - -gUnk_0811FC51:: @ 0811FC51 - .incbin "baserom.gba", 0x11FC51, 0x0000021 - -gUnk_0811FC72:: @ 0811FC72 - .incbin "baserom.gba", 0x11FC72, 0x0000015 - -gUnk_0811FC87:: @ 0811FC87 - .incbin "baserom.gba", 0x11FC87, 0x0000024 - -gUnk_0811FCAB:: @ 0811FCAB - .incbin "baserom.gba", 0x11FCAB, 0x0000034 - -gUnk_0811FCDF:: @ 0811FCDF - .incbin "baserom.gba", 0x11FCDF, 0x0000044 - -gUnk_0811FD23:: @ 0811FD23 - .incbin "baserom.gba", 0x11FD23, 0x0000018 - -gUnk_0811FD3B:: @ 0811FD3B - .incbin "baserom.gba", 0x11FD3B, 0x000001C - -gUnk_0811FD57:: @ 0811FD57 - .incbin "baserom.gba", 0x11FD57, 0x000001C - -gUnk_0811FD73:: @ 0811FD73 - .incbin "baserom.gba", 0x11FD73, 0x000000C - -gUnk_0811FD7F:: @ 0811FD7F - .incbin "baserom.gba", 0x11FD7F, 0x0000010 - -gUnk_0811FD8F:: @ 0811FD8F - .incbin "baserom.gba", 0x11FD8F, 0x0000014 - -gUnk_0811FDA3:: @ 0811FDA3 - .incbin "baserom.gba", 0x11FDA3, 0x0000015 - -gUnk_0811FDB8:: @ 0811FDB8 - .incbin "baserom.gba", 0x11FDB8, 0x0000014 - -gUnk_0811FDCC:: @ 0811FDCC - .incbin "baserom.gba", 0x11FDCC, 0x0000008 - -gUnk_0811FDD4:: @ 0811FDD4 - .incbin "baserom.gba", 0x11FDD4, 0x0000018 - -gUnk_0811FDEC:: @ 0811FDEC - .incbin "baserom.gba", 0x11FDEC, 0x0000010 - -gUnk_0811FDFC:: @ 0811FDFC - .incbin "baserom.gba", 0x11FDFC, 0x0000019 - -gUnk_0811FE15:: @ 0811FE15 - .incbin "baserom.gba", 0x11FE15, 0x0000041 - -gUnk_0811FE56:: @ 0811FE56 - .incbin "baserom.gba", 0x11FE56, 0x0000008 - -gUnk_0811FE5E:: @ 0811FE5E - .incbin "baserom.gba", 0x11FE5E, 0x0000018 - -gUnk_0811FE76:: @ 0811FE76 - .incbin "baserom.gba", 0x11FE76, 0x0000018 - -gUnk_0811FE8E:: @ 0811FE8E - .incbin "baserom.gba", 0x11FE8E, 0x0000014 - -gUnk_0811FEA2:: @ 0811FEA2 - .incbin "baserom.gba", 0x11FEA2, 0x000000C - -gUnk_0811FEAE:: @ 0811FEAE - .incbin "baserom.gba", 0x11FEAE, 0x000000C - -gUnk_0811FEBA:: @ 0811FEBA - .incbin "baserom.gba", 0x11FEBA, 0x0000028 - -gUnk_0811FEE2:: @ 0811FEE2 - .incbin "baserom.gba", 0x11FEE2, 0x000000D - -gUnk_0811FEEF:: @ 0811FEEF - .incbin "baserom.gba", 0x11FEEF, 0x0000020 - -gUnk_0811FF0F:: @ 0811FF0F - .incbin "baserom.gba", 0x11FF0F, 0x0000020 - -gUnk_0811FF2F:: @ 0811FF2F - .incbin "baserom.gba", 0x11FF2F, 0x0000020 - -gUnk_0811FF4F:: @ 0811FF4F - .incbin "baserom.gba", 0x11FF4F, 0x0000020 - -gUnk_0811FF6F:: @ 0811FF6F - .incbin "baserom.gba", 0x11FF6F, 0x0000020 - -gUnk_0811FF8F:: @ 0811FF8F - .incbin "baserom.gba", 0x11FF8F, 0x0000018 - -gUnk_0811FFA7:: @ 0811FFA7 - .incbin "baserom.gba", 0x11FFA7, 0x0000020 - -gUnk_0811FFC7:: @ 0811FFC7 - .incbin "baserom.gba", 0x11FFC7, 0x0000018 - -gUnk_0811FFDF:: @ 0811FFDF - .incbin "baserom.gba", 0x11FFDF, 0x0000018 - -gUnk_0811FFF7:: @ 0811FFF7 - .incbin "baserom.gba", 0x11FFF7, 0x0000009 - -gUnk_08120000:: @ 08120000 - .incbin "baserom.gba", 0x120000, 0x0000004 - -gUnk_08120004:: @ 08120004 - .incbin "baserom.gba", 0x120004, 0x0000006 - -gUnk_0812000A:: @ 0812000A - .incbin "baserom.gba", 0x12000A, 0x0000004 - -gUnk_0812000E:: @ 0812000E - .incbin "baserom.gba", 0x12000E, 0x0000001 - -gUnk_0812000F:: @ 0812000F - .incbin "baserom.gba", 0x12000F, 0x0000001 - -gUnk_08120010:: @ 08120010 - .incbin "baserom.gba", 0x120010, 0x0000007 - -gUnk_08120017:: @ 08120017 - .incbin "baserom.gba", 0x120017, 0x0000011 - -gUnk_08120028:: @ 08120028 - .incbin "baserom.gba", 0x120028, 0x0000004 - -gUnk_0812002C:: @ 0812002C - .incbin "baserom.gba", 0x12002C, 0x000000F - -gUnk_0812003B:: @ 0812003B - .incbin "baserom.gba", 0x12003B, 0x0000017 - -gUnk_08120052:: @ 08120052 - .incbin "baserom.gba", 0x120052, 0x000000A - -gUnk_0812005C:: @ 0812005C - .incbin "baserom.gba", 0x12005C, 0x0000007 - -gUnk_08120063:: @ 08120063 - .incbin "baserom.gba", 0x120063, 0x000001C - -gUnk_0812007F:: @ 0812007F - .incbin "baserom.gba", 0x12007F, 0x0000009 - -gUnk_08120088:: @ 08120088 - .incbin "baserom.gba", 0x120088, 0x0000013 - -gUnk_0812009B:: @ 0812009B - .incbin "baserom.gba", 0x12009B, 0x0000014 - -gUnk_081200AF:: @ 081200AF - .incbin "baserom.gba", 0x1200AF, 0x000001B - -gUnk_081200CA:: @ 081200CA - .incbin "baserom.gba", 0x1200CA, 0x0000001 - -gUnk_081200CB:: @ 081200CB - .incbin "baserom.gba", 0x1200CB, 0x0000005 - -gUnk_081200D0:: @ 081200D0 - .incbin "baserom.gba", 0x1200D0, 0x0000012 - -gUnk_081200E2:: @ 081200E2 - .incbin "baserom.gba", 0x1200E2, 0x0000009 - -gUnk_081200EB:: @ 081200EB - .incbin "baserom.gba", 0x1200EB, 0x0000013 - -gUnk_081200FE:: @ 081200FE - .incbin "baserom.gba", 0x1200FE, 0x0000001 - -gUnk_081200FF:: @ 081200FF - .incbin "baserom.gba", 0x1200FF, 0x0000024 - -gUnk_08120123:: @ 08120123 - .incbin "baserom.gba", 0x120123, 0x0000024 - -gUnk_08120147:: @ 08120147 - .incbin "baserom.gba", 0x120147, 0x0000020 - -gUnk_08120167:: @ 08120167 - .incbin "baserom.gba", 0x120167, 0x0000018 - -gUnk_0812017F:: @ 0812017F - .incbin "baserom.gba", 0x12017F, 0x0000011 - -gUnk_08120190:: @ 08120190 - .incbin "baserom.gba", 0x120190, 0x0000007 - -gUnk_08120197:: @ 08120197 - .incbin "baserom.gba", 0x120197, 0x0000018 - -gUnk_081201AF:: @ 081201AF - .incbin "baserom.gba", 0x1201AF, 0x0000031 - -gUnk_081201E0:: @ 081201E0 - .incbin "baserom.gba", 0x1201E0, 0x000000D - -gUnk_081201ED:: @ 081201ED - .incbin "baserom.gba", 0x1201ED, 0x000000B - -gUnk_081201F8:: @ 081201F8 - .incbin "baserom.gba", 0x1201F8, 0x0000011 - -gUnk_08120209:: @ 08120209 - .incbin "baserom.gba", 0x120209, 0x0000038 - -gUnk_08120241:: @ 08120241 - .incbin "baserom.gba", 0x120241, 0x0000038 - -gUnk_08120279:: @ 08120279 - .incbin "baserom.gba", 0x120279, 0x0000007 - -gUnk_08120280:: @ 08120280 - .incbin "baserom.gba", 0x120280, 0x000002D - -gUnk_081202AD:: @ 081202AD - .incbin "baserom.gba", 0x1202AD, 0x0000011 - -gUnk_081202BE:: @ 081202BE - .incbin "baserom.gba", 0x1202BE, 0x0000025 - -gUnk_081202E3:: @ 081202E3 - .incbin "baserom.gba", 0x1202E3, 0x0000009 - -gUnk_081202EC:: @ 081202EC - .incbin "baserom.gba", 0x1202EC, 0x0000020 - -gUnk_0812030C:: @ 0812030C - .incbin "baserom.gba", 0x12030C, 0x0000014 - -gUnk_08120320:: @ 08120320 - .incbin "baserom.gba", 0x120320, 0x0000030 - -gUnk_08120350:: @ 08120350 - .incbin "baserom.gba", 0x120350, 0x000001C - -gUnk_0812036C:: @ 0812036C - .incbin "baserom.gba", 0x12036C, 0x0000020 - -gUnk_0812038C:: @ 0812038C - .incbin "baserom.gba", 0x12038C, 0x0000038 - -gUnk_081203C4:: @ 081203C4 - .incbin "baserom.gba", 0x1203C4, 0x0000026 - -gUnk_081203EA:: @ 081203EA - .incbin "baserom.gba", 0x1203EA, 0x0000012 - -gUnk_081203FC:: @ 081203FC - .incbin "baserom.gba", 0x1203FC, 0x0000005 - -gUnk_08120401:: @ 08120401 - .incbin "baserom.gba", 0x120401, 0x0000001 - -gUnk_08120402:: @ 08120402 - .incbin "baserom.gba", 0x120402, 0x0000011 - -gUnk_08120413:: @ 08120413 - .incbin "baserom.gba", 0x120413, 0x0000030 - -gUnk_08120443:: @ 08120443 - .incbin "baserom.gba", 0x120443, 0x0000001 - -gUnk_08120444:: @ 08120444 - .incbin "baserom.gba", 0x120444, 0x0000015 - -gUnk_08120459:: @ 08120459 - .incbin "baserom.gba", 0x120459, 0x000000A - -gUnk_08120463:: @ 08120463 - .incbin "baserom.gba", 0x120463, 0x000009B - -gUnk_081204FE:: @ 081204FE - .incbin "baserom.gba", 0x1204FE, 0x0000062 - -gUnk_08120560:: @ 08120560 - .incbin "baserom.gba", 0x120560, 0x000000C - -gUnk_0812056C:: @ 0812056C - .incbin "baserom.gba", 0x12056C, 0x0000008 - -gUnk_08120574:: @ 08120574 - .incbin "baserom.gba", 0x120574, 0x0000008 - -gUnk_0812057C:: @ 0812057C - .incbin "baserom.gba", 0x12057C, 0x000000C - -gUnk_08120588:: @ 08120588 - .incbin "baserom.gba", 0x120588, 0x0000014 - -gUnk_0812059C:: @ 0812059C - .incbin "baserom.gba", 0x12059C, 0x0000018 - -gUnk_081205B4:: @ 081205B4 - .incbin "baserom.gba", 0x1205B4, 0x0000008 - -gUnk_081205BC:: @ 081205BC - .incbin "baserom.gba", 0x1205BC, 0x0000014 - -gUnk_081205D0:: @ 081205D0 - .incbin "baserom.gba", 0x1205D0, 0x0000010 - -gUnk_081205E0:: @ 081205E0 - .incbin "baserom.gba", 0x1205E0, 0x0000004 - -gUnk_081205E4:: @ 081205E4 - .incbin "baserom.gba", 0x1205E4, 0x0000004 - -gUnk_081205E8:: @ 081205E8 - .incbin "baserom.gba", 0x1205E8, 0x0000004 - -gUnk_081205EC:: @ 081205EC - .incbin "baserom.gba", 0x1205EC, 0x0000004 - -gUnk_081205F0:: @ 081205F0 - .incbin "baserom.gba", 0x1205F0, 0x0000004 - -gUnk_081205F4:: @ 081205F4 - .incbin "baserom.gba", 0x1205F4, 0x0000009 - -gUnk_081205FD:: @ 081205FD - .incbin "baserom.gba", 0x1205FD, 0x000000B - -gUnk_08120608:: @ 08120608 - .incbin "baserom.gba", 0x120608, 0x0000018 - -gUnk_08120620:: @ 08120620 - .incbin "baserom.gba", 0x120620, 0x000000C - -gUnk_0812062C:: @ 0812062C - .incbin "baserom.gba", 0x12062C, 0x000000C - -gUnk_08120638:: @ 08120638 - .incbin "baserom.gba", 0x120638, 0x0000008 - -gUnk_08120640:: @ 08120640 - .incbin "baserom.gba", 0x120640, 0x0000008 - -gUnk_08120648:: @ 08120648 - .incbin "baserom.gba", 0x120648, 0x0000008 - -gUnk_08120650:: @ 08120650 - .incbin "baserom.gba", 0x120650, 0x0000008 - -gUnk_08120658:: @ 08120658 - .incbin "baserom.gba", 0x120658, 0x0000008 - -gUnk_08120660:: @ 08120660 - .incbin "baserom.gba", 0x120660, 0x0000008 - -gUnk_08120668:: @ 08120668 - .incbin "baserom.gba", 0x120668, 0x0000010 - -gUnk_08120678:: @ 08120678 - .incbin "baserom.gba", 0x120678, 0x000000A - -gUnk_08120682:: @ 08120682 - .incbin "baserom.gba", 0x120682, 0x0000004 - -gUnk_08120686:: @ 08120686 - .incbin "baserom.gba", 0x120686, 0x0000004 - -gUnk_0812068A:: @ 0812068A - .incbin "baserom.gba", 0x12068A, 0x0000004 - -gUnk_0812068E:: @ 0812068E - .incbin "baserom.gba", 0x12068E, 0x0000004 - -gUnk_08120692:: @ 08120692 - .incbin "baserom.gba", 0x120692, 0x0000006 - -gUnk_08120698:: @ 08120698 - .incbin "baserom.gba", 0x120698, 0x0000014 - -gUnk_081206AC:: @ 081206AC - .incbin "baserom.gba", 0x1206AC, 0x0000008 - -gUnk_081206B4:: @ 081206B4 - .incbin "baserom.gba", 0x1206B4, 0x0000010 - -gUnk_081206C4:: @ 081206C4 - .incbin "baserom.gba", 0x1206C4, 0x000000C diff --git a/data/data_0811E750.s b/data/data_0811E750.s new file mode 100644 index 00000000..dc4dea71 --- /dev/null +++ b/data/data_0811E750.s @@ -0,0 +1,956 @@ + .include "asm/macros.inc" + .include "constants/constants.inc" + + .section .rodata + .align 2 + +gUnk_0811E750:: @ 0811E750 + .incbin "baserom.gba", 0x11E750, 0x0000008 + +gUnk_0811E758:: @ 0811E758 + .incbin "baserom.gba", 0x11E758, 0x0000008 + +gUnk_0811E760:: @ 0811E760 + .incbin "baserom.gba", 0x11E760, 0x0000008 + +gUnk_0811E768:: @ 0811E768 + .incbin "baserom.gba", 0x11E768, 0x0000018 + +gUnk_0811E780:: @ 0811E780 + .incbin "baserom.gba", 0x11E780, 0x000000C + +gUnk_0811E78C:: @ 0811E78C + .incbin "baserom.gba", 0x11E78C, 0x0000008 + +gUnk_0811E794:: @ 0811E794 + .incbin "baserom.gba", 0x11E794, 0x0000018 + +gUnk_0811E7AC:: @ 0811E7AC + .incbin "baserom.gba", 0x11E7AC, 0x0000010 + +gUnk_0811E7BC:: @ 0811E7BC + .incbin "baserom.gba", 0x11E7BC, 0x0000008 + +gUnk_0811E7C4:: @ 0811E7C4 + .incbin "baserom.gba", 0x11E7C4, 0x0000010 + +gUnk_0811E7D4:: @ 0811E7D4 + .incbin "baserom.gba", 0x11E7D4, 0x0000014 + +gUnk_0811E7E8:: @ 0811E7E8 + .incbin "baserom.gba", 0x11E7E8, 0x000002C + +gUnk_0811E814:: @ 0811E814 + .incbin "baserom.gba", 0x11E814, 0x000002C + +gUnk_0811E840:: @ 0811E840 + .incbin "baserom.gba", 0x11E840, 0x000000C + +gUnk_0811E84C:: @ 0811E84C + .incbin "baserom.gba", 0x11E84C, 0x00000B0 + +gUnk_0811E8FC:: @ 0811E8FC + .incbin "baserom.gba", 0x11E8FC, 0x00000FA + +gUnk_0811E9F6:: @ 0811E9F6 + .incbin "baserom.gba", 0x11E9F6, 0x0000001 + +gUnk_0811E9F7:: @ 0811E9F7 + .incbin "baserom.gba", 0x11E9F7, 0x0000124 + +gUnk_0811EB1B:: @ 0811EB1B + .incbin "baserom.gba", 0x11EB1B, 0x00000DE + +gUnk_0811EBF9:: @ 0811EBF9 + .incbin "baserom.gba", 0x11EBF9, 0x0000003 + +gUnk_0811EBFC:: @ 0811EBFC + .incbin "baserom.gba", 0x11EBFC, 0x0000007 + +gUnk_0811EC03:: @ 0811EC03 + .incbin "baserom.gba", 0x11EC03, 0x0000005 + +gUnk_0811EC08:: @ 0811EC08 + .incbin "baserom.gba", 0x11EC08, 0x0000018 + +gUnk_0811EC20:: @ 0811EC20 + .incbin "baserom.gba", 0x11EC20, 0x0000004 + +gUnk_0811EC24:: @ 0811EC24 + .incbin "baserom.gba", 0x11EC24, 0x0000040 + +gUnk_0811EC64:: @ 0811EC64 + .incbin "baserom.gba", 0x11EC64, 0x0000070 + +gUnk_0811ECD4:: @ 0811ECD4 + .incbin "baserom.gba", 0x11ECD4, 0x0000079 + +gUnk_0811ED4D:: @ 0811ED4D + .incbin "baserom.gba", 0x11ED4D, 0x0000039 + +gUnk_0811ED86:: @ 0811ED86 + .incbin "baserom.gba", 0x11ED86, 0x0000031 + +gUnk_0811EDB7:: @ 0811EDB7 + .incbin "baserom.gba", 0x11EDB7, 0x0000034 + +gUnk_0811EDEB:: @ 0811EDEB + .incbin "baserom.gba", 0x11EDEB, 0x0000014 + +gUnk_0811EDFF:: @ 0811EDFF + .incbin "baserom.gba", 0x11EDFF, 0x0000011 + +gUnk_0811EE10:: @ 0811EE10 + .incbin "baserom.gba", 0x11EE10, 0x0000010 + +gUnk_0811EE20:: @ 0811EE20 + .incbin "baserom.gba", 0x11EE20, 0x0000008 + +gUnk_0811EE28:: @ 0811EE28 + .incbin "baserom.gba", 0x11EE28, 0x0000010 + +gUnk_0811EE38:: @ 0811EE38 + .incbin "baserom.gba", 0x11EE38, 0x0000018 + +gUnk_0811EE50:: @ 0811EE50 + .incbin "baserom.gba", 0x11EE50, 0x000000C + +gUnk_0811EE5C:: @ 0811EE5C + .incbin "baserom.gba", 0x11EE5C, 0x0000008 + +gUnk_0811EE64:: @ 0811EE64 + .incbin "baserom.gba", 0x11EE64, 0x0000029 + +gUnk_0811EE8D:: @ 0811EE8D + .incbin "baserom.gba", 0x11EE8D, 0x0000004 + +gUnk_0811EE91:: @ 0811EE91 + .incbin "baserom.gba", 0x11EE91, 0x0000029 + +gUnk_0811EEBA:: @ 0811EEBA + .incbin "baserom.gba", 0x11EEBA, 0x0000004 + +gUnk_0811EEBE:: @ 0811EEBE + .incbin "baserom.gba", 0x11EEBE, 0x0000005 + +gUnk_0811EEC3:: @ 0811EEC3 + .incbin "baserom.gba", 0x11EEC3, 0x0000004 + +gUnk_0811EEC7:: @ 0811EEC7 + .incbin "baserom.gba", 0x11EEC7, 0x0000029 + +gUnk_0811EEF0:: @ 0811EEF0 + .incbin "baserom.gba", 0x11EEF0, 0x0000004 + +gUnk_0811EEF4:: @ 0811EEF4 + .incbin "baserom.gba", 0x11EEF4, 0x0000009 + +gUnk_0811EEFD:: @ 0811EEFD + .incbin "baserom.gba", 0x11EEFD, 0x0000009 + +gUnk_0811EF06:: @ 0811EF06 + .incbin "baserom.gba", 0x11EF06, 0x0000009 + +gUnk_0811EF0F:: @ 0811EF0F + .incbin "baserom.gba", 0x11EF0F, 0x0000028 + +gUnk_0811EF37:: @ 0811EF37 + .incbin "baserom.gba", 0x11EF37, 0x0000018 + +gUnk_0811EF4F:: @ 0811EF4F + .incbin "baserom.gba", 0x11EF4F, 0x0000018 + +gUnk_0811EF67:: @ 0811EF67 + .incbin "baserom.gba", 0x11EF67, 0x0000018 + +gUnk_0811EF7F:: @ 0811EF7F + .incbin "baserom.gba", 0x11EF7F, 0x0000018 + +gUnk_0811EF97:: @ 0811EF97 + .incbin "baserom.gba", 0x11EF97, 0x0000009 + +gUnk_0811EFA0:: @ 0811EFA0 + .incbin "baserom.gba", 0x11EFA0, 0x0000009 + +gUnk_0811EFA9:: @ 0811EFA9 + .incbin "baserom.gba", 0x11EFA9, 0x0000009 + +gUnk_0811EFB2:: @ 0811EFB2 + .incbin "baserom.gba", 0x11EFB2, 0x0000009 + +gUnk_0811EFBB:: @ 0811EFBB + .incbin "baserom.gba", 0x11EFBB, 0x0000009 + +gUnk_0811EFC4:: @ 0811EFC4 + .incbin "baserom.gba", 0x11EFC4, 0x0000015 + +gUnk_0811EFD9:: @ 0811EFD9 + .incbin "baserom.gba", 0x11EFD9, 0x0000015 + +gUnk_0811EFEE:: @ 0811EFEE + .incbin "baserom.gba", 0x11EFEE, 0x000000E + +gUnk_0811EFFC:: @ 0811EFFC + .incbin "baserom.gba", 0x11EFFC, 0x0000007 + +gUnk_0811F003:: @ 0811F003 + .incbin "baserom.gba", 0x11F003, 0x0000015 + +gUnk_0811F018:: @ 0811F018 + .incbin "baserom.gba", 0x11F018, 0x0000078 + +gUnk_0811F090:: @ 0811F090 + .incbin "baserom.gba", 0x11F090, 0x0000018 + +gUnk_0811F0A8:: @ 0811F0A8 + .incbin "baserom.gba", 0x11F0A8, 0x000001C + +gUnk_0811F0C4:: @ 0811F0C4 + .incbin "baserom.gba", 0x11F0C4, 0x0000018 + +gUnk_0811F0DC:: @ 0811F0DC + .incbin "baserom.gba", 0x11F0DC, 0x0000005 + +gUnk_0811F0E1:: @ 0811F0E1 + .incbin "baserom.gba", 0x11F0E1, 0x0000005 + +gUnk_0811F0E6:: @ 0811F0E6 + .incbin "baserom.gba", 0x11F0E6, 0x0000005 + +gUnk_0811F0EB:: @ 0811F0EB + .incbin "baserom.gba", 0x11F0EB, 0x0000005 + +gUnk_0811F0F0:: @ 0811F0F0 + .incbin "baserom.gba", 0x11F0F0, 0x0000005 + +gUnk_0811F0F5:: @ 0811F0F5 + .incbin "baserom.gba", 0x11F0F5, 0x0000003 + +gUnk_0811F0F8:: @ 0811F0F8 + .incbin "baserom.gba", 0x11F0F8, 0x0000002 + +gUnk_0811F0FA:: @ 0811F0FA + .incbin "baserom.gba", 0x11F0FA, 0x0000005 + +gUnk_0811F0FF:: @ 0811F0FF + .incbin "baserom.gba", 0x11F0FF, 0x0000001 + +gUnk_0811F100:: @ 0811F100 + .incbin "baserom.gba", 0x11F100, 0x0000004 + +gUnk_0811F104:: @ 0811F104 + .incbin "baserom.gba", 0x11F104, 0x0000005 + +gUnk_0811F109:: @ 0811F109 + .incbin "baserom.gba", 0x11F109, 0x0000005 + +gUnk_0811F10E:: @ 0811F10E + .incbin "baserom.gba", 0x11F10E, 0x0000005 + +gUnk_0811F113:: @ 0811F113 + .incbin "baserom.gba", 0x11F113, 0x0000005 + +gUnk_0811F118:: @ 0811F118 + .incbin "baserom.gba", 0x11F118, 0x0000034 + +gUnk_0811F14C:: @ 0811F14C + .incbin "baserom.gba", 0x11F14C, 0x0000008 + +gUnk_0811F154:: @ 0811F154 + .incbin "baserom.gba", 0x11F154, 0x0000008 + +gUnk_0811F15C:: @ 0811F15C + .incbin "baserom.gba", 0x11F15C, 0x0000010 + +gUnk_0811F16C:: @ 0811F16C + .incbin "baserom.gba", 0x11F16C, 0x000000C + +gUnk_0811F178:: @ 0811F178 + .incbin "baserom.gba", 0x11F178, 0x0000014 + +gUnk_0811F18C:: @ 0811F18C + .incbin "baserom.gba", 0x11F18C, 0x0000004 + +gUnk_0811F190:: @ 0811F190 + .incbin "baserom.gba", 0x11F190, 0x000001D + +gUnk_0811F1AD:: @ 0811F1AD + .incbin "baserom.gba", 0x11F1AD, 0x000001D + +gUnk_0811F1CA:: @ 0811F1CA + .incbin "baserom.gba", 0x11F1CA, 0x000001D + +gUnk_0811F1E7:: @ 0811F1E7 + .incbin "baserom.gba", 0x11F1E7, 0x0000029 + +gUnk_0811F210:: @ 0811F210 + .incbin "baserom.gba", 0x11F210, 0x000001D + +gUnk_0811F22D:: @ 0811F22D + .incbin "baserom.gba", 0x11F22D, 0x000001D + +gUnk_0811F24A:: @ 0811F24A + .incbin "baserom.gba", 0x11F24A, 0x000001D + +gUnk_0811F267:: @ 0811F267 + .incbin "baserom.gba", 0x11F267, 0x0000029 + +gUnk_0811F290:: @ 0811F290 + .incbin "baserom.gba", 0x11F290, 0x000001D + +gUnk_0811F2AD:: @ 0811F2AD + .incbin "baserom.gba", 0x11F2AD, 0x000001D + +gUnk_0811F2CA:: @ 0811F2CA + .incbin "baserom.gba", 0x11F2CA, 0x000001D + +gUnk_0811F2E7:: @ 0811F2E7 + .incbin "baserom.gba", 0x11F2E7, 0x0000029 + +gUnk_0811F310:: @ 0811F310 + .incbin "baserom.gba", 0x11F310, 0x000000D + +gUnk_0811F31D:: @ 0811F31D + .incbin "baserom.gba", 0x11F31D, 0x000000D + +gUnk_0811F32A:: @ 0811F32A + .incbin "baserom.gba", 0x11F32A, 0x000000D + +gUnk_0811F337:: @ 0811F337 + .incbin "baserom.gba", 0x11F337, 0x0000029 + +gUnk_0811F360:: @ 0811F360 + .incbin "baserom.gba", 0x11F360, 0x000000D + +gUnk_0811F36D:: @ 0811F36D + .incbin "baserom.gba", 0x11F36D, 0x000000D + +gUnk_0811F37A:: @ 0811F37A + .incbin "baserom.gba", 0x11F37A, 0x000000D + +gUnk_0811F387:: @ 0811F387 + .incbin "baserom.gba", 0x11F387, 0x0000029 + +gUnk_0811F3B0:: @ 0811F3B0 + .incbin "baserom.gba", 0x11F3B0, 0x000000D + +gUnk_0811F3BD:: @ 0811F3BD + .incbin "baserom.gba", 0x11F3BD, 0x000000D + +gUnk_0811F3CA:: @ 0811F3CA + .incbin "baserom.gba", 0x11F3CA, 0x000000D + +gUnk_0811F3D7:: @ 0811F3D7 + .incbin "baserom.gba", 0x11F3D7, 0x0000029 + +gUnk_0811F400:: @ 0811F400 + .incbin "baserom.gba", 0x11F400, 0x0000005 + +gUnk_0811F405:: @ 0811F405 + .incbin "baserom.gba", 0x11F405, 0x0000011 + +gUnk_0811F416:: @ 0811F416 + .incbin "baserom.gba", 0x11F416, 0x0000029 + +gUnk_0811F43F:: @ 0811F43F + .incbin "baserom.gba", 0x11F43F, 0x0000029 + +gUnk_0811F468:: @ 0811F468 + .incbin "baserom.gba", 0x11F468, 0x0000051 + +gUnk_0811F4B9:: @ 0811F4B9 + .incbin "baserom.gba", 0x11F4B9, 0x0000019 + +gUnk_0811F4D2:: @ 0811F4D2 + .incbin "baserom.gba", 0x11F4D2, 0x0000005 + +gUnk_0811F4D7:: @ 0811F4D7 + .incbin "baserom.gba", 0x11F4D7, 0x0000074 + +gUnk_0811F54B:: @ 0811F54B + .incbin "baserom.gba", 0x11F54B, 0x0000015 + +gUnk_0811F560:: @ 0811F560 + .incbin "baserom.gba", 0x11F560, 0x0000015 + +gUnk_0811F575:: @ 0811F575 + .incbin "baserom.gba", 0x11F575, 0x0000015 + +gUnk_0811F58A:: @ 0811F58A + .incbin "baserom.gba", 0x11F58A, 0x0000006 + +gUnk_0811F590:: @ 0811F590 + .incbin "baserom.gba", 0x11F590, 0x0000065 + +gUnk_0811F5F5:: @ 0811F5F5 + .incbin "baserom.gba", 0x11F5F5, 0x0000010 + +gUnk_0811F605:: @ 0811F605 + .incbin "baserom.gba", 0x11F605, 0x000001F + +gUnk_0811F624:: @ 0811F624 + .incbin "baserom.gba", 0x11F624, 0x0000008 + +gUnk_0811F62C:: @ 0811F62C + .incbin "baserom.gba", 0x11F62C, 0x0000008 + +gUnk_0811F634:: @ 0811F634 + .incbin "baserom.gba", 0x11F634, 0x0000008 + +gUnk_0811F63C:: @ 0811F63C + .incbin "baserom.gba", 0x11F63C, 0x0000008 + +gUnk_0811F644:: @ 0811F644 + .incbin "baserom.gba", 0x11F644, 0x0000008 + +gUnk_0811F64C:: @ 0811F64C + .incbin "baserom.gba", 0x11F64C, 0x0000010 + +gUnk_0811F65C:: @ 0811F65C + .incbin "baserom.gba", 0x11F65C, 0x0000024 + +gUnk_0811F680:: @ 0811F680 + .incbin "baserom.gba", 0x11F680, 0x0000008 + +gUnk_0811F688:: @ 0811F688 + .incbin "baserom.gba", 0x11F688, 0x0000008 + +gUnk_0811F690:: @ 0811F690 + .incbin "baserom.gba", 0x11F690, 0x00000A0 + +gUnk_0811F730:: @ 0811F730 + .incbin "baserom.gba", 0x11F730, 0x0000010 + +gUnk_0811F740:: @ 0811F740 + .incbin "baserom.gba", 0x11F740, 0x0000004 + +gUnk_0811F744:: @ 0811F744 + .incbin "baserom.gba", 0x11F744, 0x0000010 + +gUnk_0811F754:: @ 0811F754 + .incbin "baserom.gba", 0x11F754, 0x000000C + +gUnk_0811F760:: @ 0811F760 + .incbin "baserom.gba", 0x11F760, 0x0000035 + +gUnk_0811F795:: @ 0811F795 + .incbin "baserom.gba", 0x11F795, 0x0000037 + +gUnk_0811F7CC:: @ 0811F7CC + .incbin "baserom.gba", 0x11F7CC, 0x000000C + +gUnk_0811F7D8:: @ 0811F7D8 + .incbin "baserom.gba", 0x11F7D8, 0x000000D + +gUnk_0811F7E5:: @ 0811F7E5 + .incbin "baserom.gba", 0x11F7E5, 0x0000003 + +gUnk_0811F7E8:: @ 0811F7E8 + .incbin "baserom.gba", 0x11F7E8, 0x0000020 + +gUnk_0811F808:: @ 0811F808 + .incbin "baserom.gba", 0x11F808, 0x0000010 + +gUnk_0811F818:: @ 0811F818 + .incbin "baserom.gba", 0x11F818, 0x0000020 + +gUnk_0811F838:: @ 0811F838 + .incbin "baserom.gba", 0x11F838, 0x0000008 + +gUnk_0811F840:: @ 0811F840 + .incbin "baserom.gba", 0x11F840, 0x0000010 + +gUnk_0811F850:: @ 0811F850 + .incbin "baserom.gba", 0x11F850, 0x0000004 + +gUnk_0811F854:: @ 0811F854 + .incbin "baserom.gba", 0x11F854, 0x0000012 + +gUnk_0811F866:: @ 0811F866 + .incbin "baserom.gba", 0x11F866, 0x000001A + +gUnk_0811F880:: @ 0811F880 + .incbin "baserom.gba", 0x11F880, 0x000000A + +gUnk_0811F88A:: @ 0811F88A + .incbin "baserom.gba", 0x11F88A, 0x000000E + +gUnk_0811F898:: @ 0811F898 + .incbin "baserom.gba", 0x11F898, 0x0000010 + +gUnk_0811F8A8:: @ 0811F8A8 + .incbin "baserom.gba", 0x11F8A8, 0x0000008 + +gUnk_0811F8B0:: @ 0811F8B0 + .incbin "baserom.gba", 0x11F8B0, 0x0000008 + +gUnk_0811F8B8:: @ 0811F8B8 + .incbin "baserom.gba", 0x11F8B8, 0x0000011 + +gUnk_0811F8C9:: @ 0811F8C9 + .incbin "baserom.gba", 0x11F8C9, 0x0000005 + +gUnk_0811F8CE:: @ 0811F8CE + .incbin "baserom.gba", 0x11F8CE, 0x0000005 + +gUnk_0811F8D3:: @ 0811F8D3 + .incbin "baserom.gba", 0x11F8D3, 0x0000015 + +gUnk_0811F8E8:: @ 0811F8E8 + .incbin "baserom.gba", 0x11F8E8, 0x0000008 + +gUnk_0811F8F0:: @ 0811F8F0 + .incbin "baserom.gba", 0x11F8F0, 0x0000008 + +gUnk_0811F8F8:: @ 0811F8F8 + .incbin "baserom.gba", 0x11F8F8, 0x0000010 + +gUnk_0811F908:: @ 0811F908 + .incbin "baserom.gba", 0x11F908, 0x0000010 + +gUnk_0811F918:: @ 0811F918 + .incbin "baserom.gba", 0x11F918, 0x000002D + +gUnk_0811F945:: @ 0811F945 + .incbin "baserom.gba", 0x11F945, 0x000000F + +gUnk_0811F954:: @ 0811F954 + .incbin "baserom.gba", 0x11F954, 0x000000C + +gUnk_0811F960:: @ 0811F960 + .incbin "baserom.gba", 0x11F960, 0x000009B + +gUnk_0811F9FB:: @ 0811F9FB + .incbin "baserom.gba", 0x11F9FB, 0x00000C5 + +gUnk_0811FAC0:: @ 0811FAC0 + .incbin "baserom.gba", 0x11FAC0, 0x0000008 + +gUnk_0811FAC8:: @ 0811FAC8 + .incbin "baserom.gba", 0x11FAC8, 0x0000004 + +gUnk_0811FACC:: @ 0811FACC + .incbin "baserom.gba", 0x11FACC, 0x0000004 + +gUnk_0811FAD0:: @ 0811FAD0 + .incbin "baserom.gba", 0x11FAD0, 0x0000038 + +gUnk_0811FB08:: @ 0811FB08 + .incbin "baserom.gba", 0x11FB08, 0x0000008 + +gUnk_0811FB10:: @ 0811FB10 + .incbin "baserom.gba", 0x11FB10, 0x0000015 + +gUnk_0811FB25:: @ 0811FB25 + .incbin "baserom.gba", 0x11FB25, 0x0000058 + +gUnk_0811FB7D:: @ 0811FB7D + .incbin "baserom.gba", 0x11FB7D, 0x0000044 + +gUnk_0811FBC1:: @ 0811FBC1 + .incbin "baserom.gba", 0x11FBC1, 0x0000020 + +gUnk_0811FBE1:: @ 0811FBE1 + .incbin "baserom.gba", 0x11FBE1, 0x000000C + +gUnk_0811FBED:: @ 0811FBED + .incbin "baserom.gba", 0x11FBED, 0x0000010 + +gUnk_0811FBFD:: @ 0811FBFD + .incbin "baserom.gba", 0x11FBFD, 0x0000014 + +gUnk_0811FC11:: @ 0811FC11 + .incbin "baserom.gba", 0x11FC11, 0x000001C + +gUnk_0811FC2D:: @ 0811FC2D + .incbin "baserom.gba", 0x11FC2D, 0x0000024 + +gUnk_0811FC51:: @ 0811FC51 + .incbin "baserom.gba", 0x11FC51, 0x0000021 + +gUnk_0811FC72:: @ 0811FC72 + .incbin "baserom.gba", 0x11FC72, 0x0000015 + +gUnk_0811FC87:: @ 0811FC87 + .incbin "baserom.gba", 0x11FC87, 0x0000024 + +gUnk_0811FCAB:: @ 0811FCAB + .incbin "baserom.gba", 0x11FCAB, 0x0000034 + +gUnk_0811FCDF:: @ 0811FCDF + .incbin "baserom.gba", 0x11FCDF, 0x0000044 + +gUnk_0811FD23:: @ 0811FD23 + .incbin "baserom.gba", 0x11FD23, 0x0000018 + +gUnk_0811FD3B:: @ 0811FD3B + .incbin "baserom.gba", 0x11FD3B, 0x000001C + +gUnk_0811FD57:: @ 0811FD57 + .incbin "baserom.gba", 0x11FD57, 0x000001C + +gUnk_0811FD73:: @ 0811FD73 + .incbin "baserom.gba", 0x11FD73, 0x000000C + +gUnk_0811FD7F:: @ 0811FD7F + .incbin "baserom.gba", 0x11FD7F, 0x0000010 + +gUnk_0811FD8F:: @ 0811FD8F + .incbin "baserom.gba", 0x11FD8F, 0x0000014 + +gUnk_0811FDA3:: @ 0811FDA3 + .incbin "baserom.gba", 0x11FDA3, 0x0000015 + +gUnk_0811FDB8:: @ 0811FDB8 + .incbin "baserom.gba", 0x11FDB8, 0x0000014 + +gUnk_0811FDCC:: @ 0811FDCC + .incbin "baserom.gba", 0x11FDCC, 0x0000008 + +gUnk_0811FDD4:: @ 0811FDD4 + .incbin "baserom.gba", 0x11FDD4, 0x0000018 + +gUnk_0811FDEC:: @ 0811FDEC + .incbin "baserom.gba", 0x11FDEC, 0x0000010 + +gUnk_0811FDFC:: @ 0811FDFC + .incbin "baserom.gba", 0x11FDFC, 0x0000019 + +gUnk_0811FE15:: @ 0811FE15 + .incbin "baserom.gba", 0x11FE15, 0x0000041 + +gUnk_0811FE56:: @ 0811FE56 + .incbin "baserom.gba", 0x11FE56, 0x0000008 + +gUnk_0811FE5E:: @ 0811FE5E + .incbin "baserom.gba", 0x11FE5E, 0x0000018 + +gUnk_0811FE76:: @ 0811FE76 + .incbin "baserom.gba", 0x11FE76, 0x0000018 + +gUnk_0811FE8E:: @ 0811FE8E + .incbin "baserom.gba", 0x11FE8E, 0x0000014 + +gUnk_0811FEA2:: @ 0811FEA2 + .incbin "baserom.gba", 0x11FEA2, 0x000000C + +gUnk_0811FEAE:: @ 0811FEAE + .incbin "baserom.gba", 0x11FEAE, 0x000000C + +gUnk_0811FEBA:: @ 0811FEBA + .incbin "baserom.gba", 0x11FEBA, 0x0000028 + +gUnk_0811FEE2:: @ 0811FEE2 + .incbin "baserom.gba", 0x11FEE2, 0x000000D + +gUnk_0811FEEF:: @ 0811FEEF + .incbin "baserom.gba", 0x11FEEF, 0x0000020 + +gUnk_0811FF0F:: @ 0811FF0F + .incbin "baserom.gba", 0x11FF0F, 0x0000020 + +gUnk_0811FF2F:: @ 0811FF2F + .incbin "baserom.gba", 0x11FF2F, 0x0000020 + +gUnk_0811FF4F:: @ 0811FF4F + .incbin "baserom.gba", 0x11FF4F, 0x0000020 + +gUnk_0811FF6F:: @ 0811FF6F + .incbin "baserom.gba", 0x11FF6F, 0x0000020 + +gUnk_0811FF8F:: @ 0811FF8F + .incbin "baserom.gba", 0x11FF8F, 0x0000018 + +gUnk_0811FFA7:: @ 0811FFA7 + .incbin "baserom.gba", 0x11FFA7, 0x0000020 + +gUnk_0811FFC7:: @ 0811FFC7 + .incbin "baserom.gba", 0x11FFC7, 0x0000018 + +gUnk_0811FFDF:: @ 0811FFDF + .incbin "baserom.gba", 0x11FFDF, 0x0000018 + +gUnk_0811FFF7:: @ 0811FFF7 + .incbin "baserom.gba", 0x11FFF7, 0x0000009 + +gUnk_08120000:: @ 08120000 + .incbin "baserom.gba", 0x120000, 0x0000004 + +gUnk_08120004:: @ 08120004 + .incbin "baserom.gba", 0x120004, 0x0000006 + +gUnk_0812000A:: @ 0812000A + .incbin "baserom.gba", 0x12000A, 0x0000004 + +gUnk_0812000E:: @ 0812000E + .incbin "baserom.gba", 0x12000E, 0x0000001 + +gUnk_0812000F:: @ 0812000F + .incbin "baserom.gba", 0x12000F, 0x0000001 + +gUnk_08120010:: @ 08120010 + .incbin "baserom.gba", 0x120010, 0x0000007 + +gUnk_08120017:: @ 08120017 + .incbin "baserom.gba", 0x120017, 0x0000011 + +gUnk_08120028:: @ 08120028 + .incbin "baserom.gba", 0x120028, 0x0000004 + +gUnk_0812002C:: @ 0812002C + .incbin "baserom.gba", 0x12002C, 0x000000F + +gUnk_0812003B:: @ 0812003B + .incbin "baserom.gba", 0x12003B, 0x0000017 + +gUnk_08120052:: @ 08120052 + .incbin "baserom.gba", 0x120052, 0x000000A + +gUnk_0812005C:: @ 0812005C + .incbin "baserom.gba", 0x12005C, 0x0000007 + +gUnk_08120063:: @ 08120063 + .incbin "baserom.gba", 0x120063, 0x000001C + +gUnk_0812007F:: @ 0812007F + .incbin "baserom.gba", 0x12007F, 0x0000009 + +gUnk_08120088:: @ 08120088 + .incbin "baserom.gba", 0x120088, 0x0000013 + +gUnk_0812009B:: @ 0812009B + .incbin "baserom.gba", 0x12009B, 0x0000014 + +gUnk_081200AF:: @ 081200AF + .incbin "baserom.gba", 0x1200AF, 0x000001B + +gUnk_081200CA:: @ 081200CA + .incbin "baserom.gba", 0x1200CA, 0x0000001 + +gUnk_081200CB:: @ 081200CB + .incbin "baserom.gba", 0x1200CB, 0x0000005 + +gUnk_081200D0:: @ 081200D0 + .incbin "baserom.gba", 0x1200D0, 0x0000012 + +gUnk_081200E2:: @ 081200E2 + .incbin "baserom.gba", 0x1200E2, 0x0000009 + +gUnk_081200EB:: @ 081200EB + .incbin "baserom.gba", 0x1200EB, 0x0000013 + +gUnk_081200FE:: @ 081200FE + .incbin "baserom.gba", 0x1200FE, 0x0000001 + +gUnk_081200FF:: @ 081200FF + .incbin "baserom.gba", 0x1200FF, 0x0000024 + +gUnk_08120123:: @ 08120123 + .incbin "baserom.gba", 0x120123, 0x0000024 + +gUnk_08120147:: @ 08120147 + .incbin "baserom.gba", 0x120147, 0x0000020 + +gUnk_08120167:: @ 08120167 + .incbin "baserom.gba", 0x120167, 0x0000018 + +gUnk_0812017F:: @ 0812017F + .incbin "baserom.gba", 0x12017F, 0x0000011 + +gUnk_08120190:: @ 08120190 + .incbin "baserom.gba", 0x120190, 0x0000007 + +gUnk_08120197:: @ 08120197 + .incbin "baserom.gba", 0x120197, 0x0000018 + +gUnk_081201AF:: @ 081201AF + .incbin "baserom.gba", 0x1201AF, 0x0000031 + +gUnk_081201E0:: @ 081201E0 + .incbin "baserom.gba", 0x1201E0, 0x000000D + +gUnk_081201ED:: @ 081201ED + .incbin "baserom.gba", 0x1201ED, 0x000000B + +gUnk_081201F8:: @ 081201F8 + .incbin "baserom.gba", 0x1201F8, 0x0000011 + +gUnk_08120209:: @ 08120209 + .incbin "baserom.gba", 0x120209, 0x0000038 + +gUnk_08120241:: @ 08120241 + .incbin "baserom.gba", 0x120241, 0x0000038 + +gUnk_08120279:: @ 08120279 + .incbin "baserom.gba", 0x120279, 0x0000007 + +gUnk_08120280:: @ 08120280 + .incbin "baserom.gba", 0x120280, 0x000002D + +gUnk_081202AD:: @ 081202AD + .incbin "baserom.gba", 0x1202AD, 0x0000011 + +gUnk_081202BE:: @ 081202BE + .incbin "baserom.gba", 0x1202BE, 0x0000025 + +gUnk_081202E3:: @ 081202E3 + .incbin "baserom.gba", 0x1202E3, 0x0000009 + +gUnk_081202EC:: @ 081202EC + .incbin "baserom.gba", 0x1202EC, 0x0000020 + +gUnk_0812030C:: @ 0812030C + .incbin "baserom.gba", 0x12030C, 0x0000014 + +gUnk_08120320:: @ 08120320 + .incbin "baserom.gba", 0x120320, 0x0000030 + +gUnk_08120350:: @ 08120350 + .incbin "baserom.gba", 0x120350, 0x000001C + +gUnk_0812036C:: @ 0812036C + .incbin "baserom.gba", 0x12036C, 0x0000020 + +gUnk_0812038C:: @ 0812038C + .incbin "baserom.gba", 0x12038C, 0x0000038 + +gUnk_081203C4:: @ 081203C4 + .incbin "baserom.gba", 0x1203C4, 0x0000026 + +gUnk_081203EA:: @ 081203EA + .incbin "baserom.gba", 0x1203EA, 0x0000012 + +gUnk_081203FC:: @ 081203FC + .incbin "baserom.gba", 0x1203FC, 0x0000005 + +gUnk_08120401:: @ 08120401 + .incbin "baserom.gba", 0x120401, 0x0000001 + +gUnk_08120402:: @ 08120402 + .incbin "baserom.gba", 0x120402, 0x0000011 + +gUnk_08120413:: @ 08120413 + .incbin "baserom.gba", 0x120413, 0x0000030 + +gUnk_08120443:: @ 08120443 + .incbin "baserom.gba", 0x120443, 0x0000001 + +gUnk_08120444:: @ 08120444 + .incbin "baserom.gba", 0x120444, 0x0000015 + +gUnk_08120459:: @ 08120459 + .incbin "baserom.gba", 0x120459, 0x000000A + +gUnk_08120463:: @ 08120463 + .incbin "baserom.gba", 0x120463, 0x000009B + +gUnk_081204FE:: @ 081204FE + .incbin "baserom.gba", 0x1204FE, 0x0000062 + +gUnk_08120560:: @ 08120560 + .incbin "baserom.gba", 0x120560, 0x000000C + +gUnk_0812056C:: @ 0812056C + .incbin "baserom.gba", 0x12056C, 0x0000008 + +gUnk_08120574:: @ 08120574 + .incbin "baserom.gba", 0x120574, 0x0000008 + +gUnk_0812057C:: @ 0812057C + .incbin "baserom.gba", 0x12057C, 0x000000C + +gUnk_08120588:: @ 08120588 + .incbin "baserom.gba", 0x120588, 0x0000014 + +gUnk_0812059C:: @ 0812059C + .incbin "baserom.gba", 0x12059C, 0x0000018 + +gUnk_081205B4:: @ 081205B4 + .incbin "baserom.gba", 0x1205B4, 0x0000008 + +gUnk_081205BC:: @ 081205BC + .incbin "baserom.gba", 0x1205BC, 0x0000014 + +gUnk_081205D0:: @ 081205D0 + .incbin "baserom.gba", 0x1205D0, 0x0000010 + +gUnk_081205E0:: @ 081205E0 + .incbin "baserom.gba", 0x1205E0, 0x0000004 + +gUnk_081205E4:: @ 081205E4 + .incbin "baserom.gba", 0x1205E4, 0x0000004 + +gUnk_081205E8:: @ 081205E8 + .incbin "baserom.gba", 0x1205E8, 0x0000004 + +gUnk_081205EC:: @ 081205EC + .incbin "baserom.gba", 0x1205EC, 0x0000004 + +gUnk_081205F0:: @ 081205F0 + .incbin "baserom.gba", 0x1205F0, 0x0000004 + +gUnk_081205F4:: @ 081205F4 + .incbin "baserom.gba", 0x1205F4, 0x0000009 + +gUnk_081205FD:: @ 081205FD + .incbin "baserom.gba", 0x1205FD, 0x000000B + +gUnk_08120608:: @ 08120608 + .incbin "baserom.gba", 0x120608, 0x0000018 + +gUnk_08120620:: @ 08120620 + .incbin "baserom.gba", 0x120620, 0x000000C + +gUnk_0812062C:: @ 0812062C + .incbin "baserom.gba", 0x12062C, 0x000000C + +gUnk_08120638:: @ 08120638 + .incbin "baserom.gba", 0x120638, 0x0000008 + +gUnk_08120640:: @ 08120640 + .incbin "baserom.gba", 0x120640, 0x0000008 + +gUnk_08120648:: @ 08120648 + .incbin "baserom.gba", 0x120648, 0x0000008 + +gUnk_08120650:: @ 08120650 + .incbin "baserom.gba", 0x120650, 0x0000008 + +gUnk_08120658:: @ 08120658 + .incbin "baserom.gba", 0x120658, 0x0000008 + +gUnk_08120660:: @ 08120660 + .incbin "baserom.gba", 0x120660, 0x0000008 + +gUnk_08120668:: @ 08120668 + .incbin "baserom.gba", 0x120668, 0x0000010 + +gUnk_08120678:: @ 08120678 + .incbin "baserom.gba", 0x120678, 0x000000A + +gUnk_08120682:: @ 08120682 + .incbin "baserom.gba", 0x120682, 0x0000004 + +gUnk_08120686:: @ 08120686 + .incbin "baserom.gba", 0x120686, 0x0000004 + +gUnk_0812068A:: @ 0812068A + .incbin "baserom.gba", 0x12068A, 0x0000004 + +gUnk_0812068E:: @ 0812068E + .incbin "baserom.gba", 0x12068E, 0x0000004 + +gUnk_08120692:: @ 08120692 + .incbin "baserom.gba", 0x120692, 0x0000006 + +gUnk_08120698:: @ 08120698 + .incbin "baserom.gba", 0x120698, 0x0000014 + +gUnk_081206AC:: @ 081206AC + .incbin "baserom.gba", 0x1206AC, 0x0000008 + +gUnk_081206B4:: @ 081206B4 + .incbin "baserom.gba", 0x1206B4, 0x0000010 + +gUnk_081206C4:: @ 081206C4 + .incbin "baserom.gba", 0x1206C4, 0x000000C diff --git a/include/functions.h b/include/functions.h index 6481124f..05df1fac 100644 --- a/include/functions.h +++ b/include/functions.h @@ -43,7 +43,7 @@ extern void UpdateAnimationVariableFrames(Entity*, u32); extern void CopyPositionAndSpriteOffset(Entity*, Entity*); extern u8* GetSpriteSubEntryOffsetDataPointer(u32, u32); extern u32 LoadFixedGFX(Entity*, u32); -extern void ExecuteScriptCommandSet(Entity*, void*); +extern void ExecuteScriptCommandSet(); extern void _DmaFill32(u32, void*, u32); extern Entity* CreateItemEntity(u32, u32, u32); @@ -102,7 +102,7 @@ extern u32 sub_08049FDC(Entity*, u32); extern u32 sub_080041A0(Entity*, Entity*, u32, u32); extern u32 sub_08049EE4(Entity*); extern Entity* sub_0804A98C(Entity*, u8, u8); -extern u32 sub_080544DC(u8); +extern u32 sub_080544DC(u32); extern void sub_08077E54(Entity*); extern void sub_080042BA(Entity*, u32); extern void _DmaZero(void*, u32); diff --git a/include/player.h b/include/player.h index 0520cd61..0e0c7356 100644 --- a/include/player.h +++ b/include/player.h @@ -51,7 +51,8 @@ typedef struct { /*0x36*/ s16 field_0x36; /*0x38*/ u8 field_0x38; /*0x39*/ u8 field_0x39; - /*0x3a*/ u16 field_0x3a; + /*0x3a*/ u8 field_0x3a; + /*0x3b*/ u8 field_0x3b; /*0x3c*/ u8 field_0x3c[2]; /*0x3e*/ u8 swordGoldParticle : 1; /* */ u8 swordBlueParticle : 1; @@ -90,8 +91,7 @@ typedef struct { u8 itemOnB; u8 filler2[10]; u16 rupees; - u8 field_0x1a; - u8 field_0x1b; + u16 field_0x1a; u8 field_0x1c; u8 field_0x1d; u8 field_0x1e; diff --git a/include/textbox.h b/include/textbox.h index fcfe0de3..8089e3bc 100644 --- a/include/textbox.h +++ b/include/textbox.h @@ -2,6 +2,7 @@ #define TEXTBOX_H #include "global.h" +#include "entity.h" typedef struct { u8 doTextBox; diff --git a/linker.ld b/linker.ld index a76b3805..032bb32d 100644 --- a/linker.ld +++ b/linker.ld @@ -674,6 +674,8 @@ SECTIONS { src/flags.o(.text); src/code_0807CC3C.o(.text); asm/code_0807CC3C.o(.text); + src/code_0807DF74.o(.text); + asm/code_0807F0D8.o(.text); src/code_0808091C.o(.text); asm/code_0808091C.o(.text); /* objects */ @@ -1011,6 +1013,8 @@ SECTIONS { data/data_0811BD44.o(.rodata); data/room_headers.o(.rodata); data/data_0811E454.o(.rodata); + src/code_0807DF74.o(.rodata); + data/data_0811E750.o(.rodata); src/object/greatFairy.o(.rodata); data/animations/greatFairy.o(.rodata); data/data_081208A0.o(.rodata); diff --git a/src/code_0807DF74.c b/src/code_0807DF74.c new file mode 100644 index 00000000..e098b76d --- /dev/null +++ b/src/code_0807DF74.c @@ -0,0 +1,1263 @@ +#include "global.h" +#include "flags.h" +#include "entity.h" +#include "area.h" +#include "structures.h" +#include "textbox.h" +#include "functions.h" + +typedef struct { + u16 * unk_00; + u32 unk_04; + u32 unk_08; + u8 unk_0C[0x4];//unused + u16 unk_10; + u16 unk_12; + u32 unk_14; + u8 unk_18; + u8 unk_19; + u8 unk_1A; + u8 unk_1B;//unused + union SplitWord unk_1C; + union SplitWord unk_20; +} unk_struct; + +void nullsub_507 (Entity*, unk_struct*); +void sub_0807E004(Entity*, unk_struct*); +void sub_0807E014(Entity*, unk_struct*); +void sub_0807E024(Entity*, unk_struct*); +void sub_0807E050(Entity*, unk_struct*); +void sub_0807E064(Entity*, unk_struct*); +void sub_0807E078(Entity*, unk_struct*); +void sub_0807E0A0(Entity*, unk_struct*); +void sub_0807E0B8(Entity*, unk_struct*); +void sub_0807E0CC(Entity*, unk_struct*); +void sub_0807E0E0(Entity*, unk_struct*); +void sub_0807E10C(Entity*, unk_struct*); +void sub_0807E124(Entity*, unk_struct*); +void sub_0807E148(Entity*, unk_struct*); +void sub_0807E158(Entity*, unk_struct*); +void sub_0807E188(Entity*, unk_struct*); +void sub_0807E1D8(Entity*, unk_struct*); +void sub_0807E200(Entity*, unk_struct*); +void sub_0807E220(Entity*, unk_struct*); +void sub_0807E240(Entity*, unk_struct*); +void sub_0807E260(Entity*, unk_struct*); +void sub_0807E280(Entity*, unk_struct*); +void sub_0807E2A8(Entity*, unk_struct*); +void sub_0807E2E4(Entity*, unk_struct*); +void sub_0807E30C(Entity*, unk_struct*); +void sub_0807E390(Entity*, unk_struct*); +void sub_0807E3BC(Entity*, unk_struct*); +void sub_0807E3E8(Entity*, unk_struct*); +void sub_0807E40C(Entity*, unk_struct*); +void sub_0807E42C(Entity*, unk_struct*); +void sub_0807E48C(Entity*, unk_struct*); +void sub_0807E4AC(Entity*, unk_struct*); +void sub_0807E4CC(Entity*, unk_struct*); +void sub_0807E4EC(Entity*, unk_struct*); +void sub_0807E514(Entity*, unk_struct*); +void sub_0807E538(Entity*, unk_struct*); +void sub_0807E564(Entity*, unk_struct*); +void sub_0807E584(Entity*, unk_struct*); +void sub_0807E5A0(Entity*, unk_struct*); +void sub_0807E5CC(Entity*, unk_struct*); +void sub_0807E5F8(Entity*, unk_struct*); +void sub_0807E610(Entity*, unk_struct*); +void sub_0807E628(Entity*, unk_struct*); +void sub_0807E634(Entity*, unk_struct*); +void sub_0807E644(Entity*, unk_struct*); +void sub_0807E650(Entity*, unk_struct*); +void sub_0807E65C(Entity*, unk_struct*); +void sub_0807E668(Entity*, unk_struct*); +void sub_0807E674(Entity*, unk_struct*); +void sub_0807E680(Entity*, unk_struct*); +void sub_0807E690(Entity*, unk_struct*); +void sub_0807E6AC(Entity*, unk_struct*); +void sub_0807E6DC(Entity*, unk_struct*); +void sub_0807E700(Entity*, unk_struct*); +void sub_0807E72C(Entity*, unk_struct*); +void sub_0807E75C(Entity*, unk_struct*); +void sub_0807E778(Entity*, unk_struct*); +void sub_0807E788(Entity*, unk_struct*); +void sub_0807E79C(Entity*, unk_struct*); +void nullsub_508 (Entity*, unk_struct*); +void sub_0807E7B0(Entity*, unk_struct*); +void sub_0807E7C4(Entity*, unk_struct*); +void sub_0807E7D8(Entity*, unk_struct*); +void sub_0807E7EC(Entity*, unk_struct*); +void sub_0807E800(Entity*, unk_struct*); +void sub_0807E80C(Entity*, unk_struct*); +void sub_0807E818(u32); +void sub_0807E858(Entity*, unk_struct*); +void sub_0807E864(Entity*, unk_struct*); +void sub_0807E878(Entity*, unk_struct*); +void sub_0807E888(Entity*, unk_struct*); +void sub_0807E898(Entity*, unk_struct*); +void sub_0807E8C4(Entity*, unk_struct*); +void sub_0807E8D4(Entity*, unk_struct*); +void sub_0807E8E4(Entity*, unk_struct*); +void sub_0807E908(Entity*, unk_struct*); +void sub_0807E914(Entity*, unk_struct*); +void sub_0807E924(Entity*, unk_struct*); +void sub_0807E930(Entity*, unk_struct*); +void sub_0807E944(Entity*, unk_struct*); +void sub_0807E974(Entity*, unk_struct*); +void sub_0807E9D4(Entity*, unk_struct*); +void sub_0807E9DC(Entity*, unk_struct*); +void sub_0807E9E4(Entity*, unk_struct*); +void sub_0807E9F0(Entity*, unk_struct*); +void sub_0807EA4C(Entity*, unk_struct*); +void sub_0807EA88(Entity*, unk_struct*); +void sub_0807EA94(Entity*, unk_struct*); +void sub_0807EAB4(Entity*, unk_struct*); +void sub_0807EAC0(Entity*, unk_struct*); +void sub_0807EAD0(Entity*, unk_struct*); +void sub_0807EAF0(Entity*, unk_struct*); +void sub_0807EB18(Entity*, unk_struct*); +void sub_0807EB28(Entity*, unk_struct*); +void sub_0807EB38(Entity*, unk_struct*); +void sub_0807EB44(Entity*, unk_struct*); +void sub_0807EB4C(Entity*, unk_struct*); +void sub_0807EB74(Entity*, unk_struct*); +void sub_0807EB8C(Entity*, unk_struct*); +void sub_0807EBA8(Entity*, unk_struct*); +void sub_0807EBB0(Entity*, unk_struct*); +void sub_0807EBC0(Entity*, unk_struct*); +void sub_0807EBC8(Entity*, unk_struct*); +void sub_0807EBD8(Entity*, unk_struct*); +void sub_0807EBF4(Entity*, unk_struct*); +void sub_0807EC08(Entity*, unk_struct*); +void nullsub_509 (Entity*, unk_struct*); +void sub_0807EC1C(Entity*, unk_struct*); +void sub_0807EC44(Entity*, unk_struct*); +void sub_0807EC64(Entity*, unk_struct*); +void sub_0807EC94(Entity*, unk_struct*); +void sub_0807ECC4(Entity*, unk_struct*); +void sub_0807ECF4(Entity*, unk_struct*); +void sub_0807ED24(Entity*, unk_struct*); +void sub_0807EDD4(Entity*, unk_struct*); +void sub_0807EE04(Entity*, unk_struct*); +void sub_0807EE30(Entity*, unk_struct*); +void sub_0807EEB4(Entity*, unk_struct*); +void sub_0807EEF4(Entity*, unk_struct*); +void sub_0807EF3C(Entity*, unk_struct*); +void sub_0807EF80(Entity*, unk_struct*); +void sub_0807EF90(Entity*, unk_struct*); +void sub_0807EFA0(Entity*, unk_struct*); +void sub_0807EFAC(Entity*, unk_struct*); +void sub_0807EFD4(Entity*, unk_struct*); +void sub_0807EFE4(Entity*, unk_struct*); +void sub_0807EFF4(Entity*, unk_struct*); +void sub_0807F004(Entity*, unk_struct*); +void sub_0807F010(Entity*, unk_struct*); +void sub_0807F034(Entity*, unk_struct*); +void sub_0807F050(Entity*, unk_struct*); +void sub_0807F060(Entity*, unk_struct*); +void sub_0807F078(Entity*, unk_struct*); +void sub_0807F088(Entity*, unk_struct*); +void sub_0807F098(Entity*, unk_struct*); +void sub_0807F0A4(Entity*, unk_struct*); +void sub_0807F0B4(Entity*, unk_struct*); +void sub_0807F0C8(Entity*, unk_struct*); + +void (* const gUnk_0811E524[])() = { + nullsub_507, + sub_0807E004, + sub_0807E014, + sub_0807E024, + sub_0807E050, + sub_0807E064, + sub_0807E078, + sub_0807E0A0, + sub_0807E0B8, + sub_0807E0CC, + sub_0807E0E0, + sub_0807E10C, + sub_0807E124, + sub_0807E148, + sub_0807E158, + sub_0807E188, + sub_0807E1D8, + sub_0807E4AC,//defined out of order + sub_0807E200, + sub_0807E220, + sub_0807E240, + sub_0807E260, + sub_0807E280, + sub_0807E2A8, + sub_0807E2E4, + sub_0807E30C, + sub_0807E390, + sub_0807E3BC, + sub_0807E3E8, + sub_0807E40C, + sub_0807E42C, + sub_0807E48C, + sub_0807E4CC, + sub_0807E4EC, + sub_0807E514, + sub_0807E538, + sub_0807E564, + sub_0807E584, + sub_0807E5A0, + sub_0807E5CC, + sub_0807E5F8, + sub_0807E610, + sub_0807E628, + sub_0807E634, + sub_0807E644, + sub_0807E650, + sub_0807E65C, + sub_0807E668, + sub_0807E674, + sub_0807E680, + sub_0807E690, + sub_0807E6AC, + sub_0807E6DC, + sub_0807E700, + sub_0807E72C, + sub_0807E75C, + sub_0807E778, + sub_0807E788, + sub_0807E79C, + nullsub_508, + sub_0807E7B0, + sub_0807E7C4, + sub_0807E7D8, + sub_0807E7EC, + sub_0807E800, + sub_0807E80C, + sub_0807E858, + sub_0807E864, + sub_0807E878, + sub_0807E888, + sub_0807E898, + sub_0807E8C4, + sub_0807E8D4, + sub_0807E8E4, + sub_0807E8E4,//duplicate + sub_0807E8E4,//duplicate + sub_0807E8E4,//duplicate + sub_0807E908, + sub_0807E914, + sub_0807E924, + sub_0807E930, + sub_0807E944, + sub_0807E974, + sub_0807E9D4, + sub_0807E9DC, + sub_0807E9E4, + sub_0807E9F0, + sub_0807EA4C, + sub_0807EA88, + sub_0807EA94, + sub_0807EAB4, + sub_0807EAC0, + sub_0807EAD0, + sub_0807EAF0, + sub_0807EB18, + sub_0807EB28, + sub_0807EB38, + sub_0807EB44, + sub_0807EB4C, + sub_0807EB74, + sub_0807EB8C, + sub_0807EBA8, + sub_0807EBB0, + sub_0807EBC0, + sub_0807EBC8, + sub_0807EBD8, + sub_0807EBF4, + sub_0807EC08, + nullsub_509, + sub_0807EC1C, + sub_0807EC64, + sub_0807EC94, + sub_0807ECC4, + sub_0807ECF4, + sub_0807ED24, + sub_0807EDD4, + sub_0807EE04, + sub_0807EE30, + sub_0807EEB4, + sub_0807EEF4, + sub_0807EF3C, + sub_0807EF80, + sub_0807EF90, + sub_0807EFA0, + sub_0807EFAC, + sub_0807EFD4, + sub_0807EFE4, + sub_0807EFF4, + sub_0807F004, + sub_0807F010, + sub_0807F034, + sub_0807F050, + sub_0807F060, + sub_0807F078, + sub_0807F088, + sub_0807F098, + sub_0807F0A4, + sub_0807F0B4, + sub_0807F0C8 +}; + +typedef struct { + u32 unk_00; + u16 unk_04; + u8 unk_06; + u8 unk_07; + u8 unk_08; +} struct_02033280; + +extern struct_02033280 gUnk_02033280; + +extern u8 gUnk_02022740[]; +extern u8 gUnk_02034490; + +typedef struct { + u8 unk_00; + u8 unk_01; + u8 unk_02[0xE]; +} struct_02000040; + +extern struct_02000040 gUnk_02000040; + +extern const u16 gUnk_08016984; + +extern u32 GetNextScriptCommandHalfword(u16*); +extern u32 GetNextScriptCommandWord(u16*); +extern u32 GetNextScriptCommandWordAfterCommandMetadata(u16*); +extern u32 GetNextScriptCommandHalfwordAfterCommandMetadata(u16*); + +void StartPlayerScript(u32); + +extern u32 sub_08052734(); //has Dungeon Map? +extern u32 sub_08052764(); //has Dungeon Compass? +extern u32 sub_0805279C(); //has Dungeon Big Key? +extern u32 sub_080527CC(); //num Dungeon small keys? + +extern void sub_0801E00C(); +extern void sub_0807919C(); +extern void sub_0801DFB4(Entity*, u32, u32, u32); +extern void sub_08078790(Entity*, u32); +extern void sub_08078AA8(u32, u32); +extern void sub_0807DEDC(Entity*, unk_struct*, u32, u32); +extern void sub_0807CAA0(u32, u32); +extern void sub_08080964(u32, u32); + +extern u32 sub_08053FE0(); +extern void sub_080500F4(u32); +extern void sub_08050110(u32, u32, u32, u32); +extern void sub_08050038(u32); +extern void sub_08078B48(void); +extern void sub_080788E0(Entity*); + +void sub_0807E818(u32); +void sub_0807EC44(Entity*, unk_struct*); +void sub_0807EE04(Entity*, unk_struct*); +void sub_0807EE30(Entity*, unk_struct*); + +extern u32 CheckPlayerInRegion(u32, u32, u32, u32); +extern u32 sub_0806F5B0(u32); + +void ExecuteScriptCommandSet(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_00) return; + if (unk2->unk_10) { + unk2->unk_10--; + } else { + struct_02033280 * tmp2 = &gUnk_02033280; + tmp2->unk_07 = 0; + do { + u32 cmd = GetNextScriptCommandHalfword(unk2->unk_00); + u16* tmp; + if (cmd == 0xFFFF) return; + tmp2->unk_06 = cmd >> 0xA; + tmp2->unk_04 = cmd & 0x3FF; + tmp = unk2->unk_00; + tmp2->unk_07 &= ~1; + gUnk_0811E524[tmp2->unk_04](unk1, unk2); + unk2->unk_00 += tmp2->unk_06; + if (tmp != unk2->unk_00) { + unk2->unk_18 = 0; + } + } while (tmp2->unk_07 & 3); + } +} + +void nullsub_507(Entity* unk1, unk_struct* unk2) {} + +void sub_0807E004(Entity* unk1, unk_struct* unk2) { + gUnk_02033280.unk_07 |= 2; +} + +void sub_0807E014(Entity* unk1, unk_struct* unk2) { + gUnk_02033280.unk_07 &= ~2; +} + +void sub_0807E024(Entity* unk1, unk_struct* unk2) { + s16 tmp; + unk2->unk_00++; + tmp = GetNextScriptCommandHalfword(unk2->unk_00); + unk2->unk_00 += (tmp / 2); + gUnk_02033280.unk_06 = 0; +} + +void sub_0807E050(Entity* unk1, unk_struct* unk2) { + if (unk2->unk_14) { + sub_0807E024(unk1, unk2); + } +} + +void sub_0807E064(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_14) { + sub_0807E024(unk1, unk2); + } +} + +void sub_0807E078(Entity* unk1, unk_struct* unk2) { + if (gUnk_02033280.unk_06 > unk2->unk_04) { + unk2->unk_00 += unk2->unk_04; + sub_0807E024(unk1, unk2); + } +} + +void sub_0807E0A0(Entity* unk1, unk_struct* unk2) { + unk2->unk_00 = (u16*) GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + gUnk_02033280.unk_06 = 0; +} + +void sub_0807E0B8(Entity* unk1, unk_struct* unk2) { + if (unk2->unk_14) { + sub_0807E0A0(unk1, unk2); + } +} + +void sub_0807E0CC(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_14) { + sub_0807E0A0(unk1, unk2); + } +} + +void sub_0807E0E0(Entity* unk1, unk_struct* unk2) { + if (gUnk_02033280.unk_06 > (unk2->unk_04 << 1) + 1) { + unk2->unk_00 += unk2->unk_04 << 1; + sub_0807E0A0(unk1, unk2); + } +} + +void sub_0807E10C(Entity* unk1, unk_struct* unk2) { + ((void (*)(Entity*, unk_struct*)) GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00))(unk1, unk2); +} + +void sub_0807E124(Entity* unk1, unk_struct* unk2) { + void (* tmp)(Entity*, unk_struct*) = (void (*)(Entity*, unk_struct*)) GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + unk2->unk_04 = GetNextScriptCommandWord(unk2->unk_00 + 3); + tmp(unk1, unk2); +} + +void sub_0807E148(Entity* unk1, unk_struct* unk2) { + LoadRoomEntityList(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +} + +void sub_0807E158(Entity* unk1, unk_struct* unk2) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + u32 tmp2 = 0; + u32 tmp3 = gUnk_02033280.unk_00; + if ((tmp3 & tmp) == tmp) tmp2 = 1; + unk2->unk_14 = tmp2; + gUnk_02033280.unk_00 = tmp3 & ~tmp; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E188(Entity* unk1, unk_struct* unk2) { + u32 tmp; + u32 tmp2 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); + switch (tmp2) { + case 0x53: + tmp = sub_08052734(); + break; + case 0x52: + tmp = sub_08052764(); + break; + case 0x51: + tmp = sub_0805279C(); + break; + case 0x50: + tmp = sub_080527CC(); + break; + default: + tmp = GetInventoryValue(tmp2); + } + unk2->unk_14 = tmp; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E1D8(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = GetInventoryValue(unk2->unk_00[1]) == 2; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E200(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = CheckLocalFlag(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E220(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = CheckLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E240(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = CheckGlobalFlag(GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00)); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E260(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = CheckRoomFlag(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E280(Entity* unk1, unk_struct* unk2) { + u32 x, y, width, height; + width = unk2->unk_00[3]; + height = width >> 8; + width &= 0xFF; + x = unk2->unk_00[1]; + y = unk2->unk_00[2]; + unk2->unk_14 = CheckPlayerInRegion(x,y,width, height); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E2A8(Entity* unk1, unk_struct* unk2) { + u32 x, y, width, height; + width = unk2->unk_00[1] & 0xFF; + height = unk2->unk_00[1] >> 8; + x = unk1->x.HALF.HI - gRoomControls.roomOriginX; + y = unk1->y.HALF.HI - gRoomControls.roomOriginY; + unk2->unk_14 = CheckPlayerInRegion(x,y,width, height); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E2E4(Entity* unk1, unk_struct* unk2) { + if (unk1->interactType) { + unk1->interactType = 0; + unk2->unk_14 = 1; + } else { + unk2->unk_14 = 0; + } + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E30C(Entity* unk1, unk_struct* unk2) { + if ((unk2->unk_1A & 0xF) == 0 + && (gPlayerState.flags.all & 0x80) == 0 + && sub_080041A0(unk1, &gPlayerEntity, 0x28, 0x28)) { + unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); + } + unk2->unk_1A++; + if (unk1->interactType) { + unk1->interactType = 0; + unk2->unk_14 = 1; + unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); + } else { + unk2->unk_14 = 0; + } + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E390(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = (unk2->unk_00[1] <= gUnk_02002A40.stats.rupees); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E3BC(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = (unk2->unk_00[1] <= gUnk_02002A40.stats.field_0x1a); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E3E8(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = !gUnk_02000040.unk_01; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E40C(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = CheckKinstoneFused(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E42C(Entity* unk1, unk_struct* unk2) { + u32 tmp, tmp2; + s32 tmp3; + tmp = unk2->unk_00[1]; + tmp2 = unk2->unk_00[2]; + if (!tmp) { + tmp = gRoomVars.itemForSaleIndex; + tmp2 = gRoomVars.field_0x7; + } + tmp3 = sub_08053FE0(tmp); + unk2->unk_14 = (tmp3 <= gUnk_02002A40.stats.rupees); + if (unk2->unk_14) { + ModRupees(-tmp3); + sub_080A7C18(tmp, tmp2, 0); + gRoomVars.itemForSaleIndex = 0; + gRoomVars.field_0x7 = 0; + } + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E48C(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = sub_080544DC(unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E4AC(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = !!gRoomVars.itemForSaleIndex; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E4CC(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = !!(unk2->unk_04 & unk2->unk_00[1]); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E4EC(Entity* unk1, unk_struct* unk2) { + u32 tmp = unk2->unk_00[1]; + unk2->unk_14 = tmp == (tmp & unk2->unk_04); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E514(Entity* unk1, unk_struct* unk2) { + u32 tmp = unk2->unk_00[1]; + unk2->unk_14 = tmp == unk2->unk_04; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E538(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = !!(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00) & gPlayerState.flags.all); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E564(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = (gPlayerState.flags.all >> 7) & 1; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E584(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = unk1->height.WORD != 0; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E5A0(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.action; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E5CC(Entity* unk1, unk_struct* unk2) { + unk2->unk_14 = unk2->unk_00[1] == gPlayerEntity.animationState; + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807E5F8(Entity* unk1, unk_struct* unk2) { + gUnk_02033280.unk_00 |= GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807E610(Entity* unk1, unk_struct* unk2) { + gUnk_02033280.unk_00 &= ~GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807E628(Entity* unk1, unk_struct* unk2) { + SetLocalFlag(unk2->unk_00[1]); +} + +void sub_0807E634(Entity* unk1, unk_struct* unk2) { + SetLocalFlagByOffset(unk2->unk_00[1], unk2->unk_00[2]); +} + +void sub_0807E644(Entity* unk1, unk_struct* unk2) { + ClearLocalFlag(unk2->unk_00[1]); +} + +void sub_0807E650(Entity* unk1, unk_struct* unk2) { + SetGlobalFlag(unk2->unk_00[1]); +} + +void sub_0807E65C(Entity* unk1, unk_struct* unk2) { + ClearGlobalFlag(unk2->unk_00[1]); +} + +void sub_0807E668(Entity* unk1, unk_struct* unk2) { + SetRoomFlag(unk2->unk_00[1]); +} + +void sub_0807E674(Entity* unk1, unk_struct* unk2) { + ClearRoomFlag(unk2->unk_00[1]); +} + +void sub_0807E680(Entity* unk1, unk_struct* unk2) { + unk2->unk_10 = GetNextScriptCommandHalfwordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807E690(Entity* unk1, unk_struct* unk2) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + if ((gUnk_02033280.unk_00 & tmp) != tmp) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807E6AC(Entity* unk1, unk_struct* unk2) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + if ((gUnk_02033280.unk_00 & tmp) != tmp) { + gUnk_02033280.unk_06 = 0; + } else { + gUnk_02033280.unk_00 &= ~tmp; + gUnk_02033280.unk_07 |= 1; + } +} + +void sub_0807E6DC(Entity* unk1, unk_struct* unk2) { + if (gPlayerEntity.action == 8) { + gUnk_02033280.unk_06 = 0; + } else { + unk2->unk_10 = 0x2D; + } +} + +void sub_0807E700(Entity* unk1, unk_struct* unk2) { + if (gPlayerEntity.action != 0x17) { + gUnk_02033280.unk_07 |= 1; + } else { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807E72C(Entity* unk1, unk_struct* unk2) { + if (gRoomControls.unk6 & 4) { + gUnk_02033280.unk_06 = 0; + } else { + gUnk_02033280.unk_07 |= 1; + } +} + +void sub_0807E75C(Entity* unk1, unk_struct* unk2) { + if (gFadeControl.active) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807E778(Entity* unk1, unk_struct* unk2) { + gUnk_02033280.unk_08 = unk2->unk_00[1]; +} + +void sub_0807E788(Entity* unk1, unk_struct* unk2) { + gFadeControl.field_0x4 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807E79C(Entity* unk1, unk_struct* unk2) { + sub_080500F4(gUnk_02033280.unk_08); +} + +void nullsub_508(Entity* unk1, unk_struct* unk2) {} + +void sub_0807E7B0(Entity* unk1, unk_struct* unk2) { + DoFade(4, gUnk_02033280.unk_08); +} + +void sub_0807E7C4(Entity* unk1, unk_struct* unk2) { + DoFade(5, gUnk_02033280.unk_08); +} + +void sub_0807E7D8(Entity* unk1, unk_struct* unk2) { + DoFade(6, gUnk_02033280.unk_08); +} + +void sub_0807E7EC(Entity* unk1, unk_struct* unk2) { + DoFade(7, gUnk_02033280.unk_08); +} + +void sub_0807E800(Entity* unk1, unk_struct* unk2) { + sub_0807E818(0x10); +} + +void sub_0807E80C(Entity* unk1, unk_struct* unk2) { + sub_0807E818(0x11); +} + +void sub_0807E818(u32 unk1) { + Entity* tmp = gRoomControls.cameraTarget; + u32 tmp2, tmp3; + if (tmp) { + tmp2 = tmp->x.HALF.HI - gRoomControls.roomScrollX; + tmp3 = tmp->y.HALF.HI - gRoomControls.roomScrollY; + } else { + tmp2 = 0x78; + tmp3 = 0x50; + } + sub_08050110(tmp2, tmp3, unk1, gUnk_02033280.unk_08); +} + +void sub_0807E858(Entity* unk1, unk_struct* unk2) { + sub_08050038(unk2->unk_00[1]); +} + +void sub_0807E864(Entity* unk1, unk_struct* unk2) { + gPlayerState.field_0x8b = 3; + sub_08078B48(); +} + +void sub_0807E878(Entity* unk1, unk_struct* unk2) { + gPlayerState.field_0x8b = 1; +} + +void sub_0807E888(Entity* unk1, unk_struct* unk2) { + gPlayerState.field_0x8b = 3; +} + +void sub_0807E898(Entity* unk1, unk_struct* unk2) { + u32 tmp = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); + gPlayerState.playerAction = tmp; + gPlayerState.field_0x38 = tmp >> 8; + gPlayerState.field_0x39 = tmp >> 0x10; + gPlayerState.field_0x3a = tmp >> 0x18; +} + +void sub_0807E8C4(Entity* unk1, unk_struct* unk2) { + StartPlayerScript(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +} + +void sub_0807E8D4(Entity* unk1, unk_struct* unk2) { + gPlayerState.field_0x8 = unk2->unk_00[1]; +} + +void sub_0807E8E4(Entity* unk1, unk_struct* unk2) { + u32 tmp = (gUnk_08016984 & 0x3FF); + u32 tmp2; + gPlayerEntity.animationState = tmp2 = (unk2->unk_00[0] - tmp) << 1; +} + +void sub_0807E908(Entity* unk1, unk_struct* unk2) { + unk1->action = unk2->unk_00[1]; + unk1->previousActionFlag = 0; +} + +void sub_0807E914(Entity* unk1, unk_struct* unk2) { + unk2->unk_04 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807E924(Entity* unk1, unk_struct* unk2) { + unk2->unk_04 = unk1->frames.all; + unk1->frames.all = 0; +} + +void sub_0807E930(Entity* unk1, unk_struct* unk2) { + unk1->field_0x80.HWORD = unk2->unk_00[1]; + InitAnimationForceUpdate(unk1, unk2->unk_00[1]); +} + +void sub_0807E944(Entity* unk1, unk_struct* unk2) { + if (unk1->interactType) { + unk1->interactType = 0; + gUnk_02033280.unk_07 |= 1; + } else { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807E974(Entity* unk1, unk_struct* unk2) { + switch (unk2->unk_18) { + default: + if (!--unk2->unk_19) return; + break; + case 0: + if (!unk1->interactType) break; + unk1->interactType = 0; + unk2->unk_18++; + TextboxNoOverlapFollow(unk2->unk_00[1]); + break; + case 1: + if (gTextBox.doTextBox & 0x7F) break; + unk2->unk_18 = 2; + unk2->unk_19 = 0xF; + break; + } + gUnk_02033280.unk_06 = 0; +} + +void sub_0807E9D4(Entity* unk1, unk_struct* unk2) { + sub_08078778(unk1); +} + +void sub_0807E9DC(Entity* unk1, unk_struct* unk2) { + sub_080788E0(unk1); +} + +void sub_0807E9E4(Entity* unk1, unk_struct* unk2) { + sub_08078784(unk1, unk2->unk_00[1]); +} + +void sub_0807E9F0(Entity* unk1, unk_struct* unk2) { + u32 tmp; + sub_0801E00C(); + tmp = 1; + switch (gUnk_02022740[0]) { + case 2: + gPlayerState.field_0x8b = 3; + gUnk_02034490 = tmp; + unk2->unk_14 = tmp; + break; + case 1: + unk2->unk_14 = 0; + break; + default: + goto lbl; + } + if (tmp) { + sub_0807919C(); + gPlayerState.field_0x8b = 1; + } else { + lbl: + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EA4C(Entity* unk1, unk_struct* unk2) { + if (unk1->interactType == 2) { + sub_0801DFB4(unk1, 0, 0, 0); + unk1->interactType = 0; + gUnk_02033280.unk_07 |= 1; + } else { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EA88(Entity* unk1, unk_struct* unk2) { + sub_08078790(unk1, unk2->unk_00[1]); +} + +void sub_0807EA94(Entity* unk1, unk_struct* unk2) { + if (gTextBox.doTextBox & 0x7F) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EAB4(Entity* unk1, unk_struct* unk2) { + TextboxNoOverlapFollow(unk2->unk_00[1]); +} + +void sub_0807EAC0(Entity* unk1, unk_struct* unk2) { + TextboxNoOverlap(unk2->unk_00[1], unk1); +} + +void sub_0807EAD0(Entity* unk1, unk_struct* unk2) { + TextboxNoOverlapFollow(unk2->unk_00[1]); + gTextBox.textWindowPosX = 1; + gTextBox.textWindowPosY = unk2->unk_00[2]; +} + +void sub_0807EAF0(Entity* unk1, unk_struct* unk2) { + if (gUnk_02033280.unk_06 > unk2->unk_04) { + u16 * tmp = unk2->unk_00 + unk2->unk_04; + TextboxNoOverlapFollow(tmp[1]); + } else { + TextboxNoOverlapFollow(0); + } +} + +void sub_0807EB18(Entity* unk1, unk_struct* unk2) { + TextboxNoOverlap(unk2->unk_04, unk1); +} + +void sub_0807EB28(Entity* unk1, unk_struct* unk2) { + sub_08078AA8(unk2->unk_00[1], 0); +} + +void sub_0807EB38(Entity* unk1, unk_struct* unk2) { + unk2->unk_04 = gUnk_02000040.unk_01; +} + +void sub_0807EB44(Entity* unk1, unk_struct* unk2) { + unk1->animationState = unk2->unk_00[1]; +} + +void sub_0807EB4C(Entity* unk1, unk_struct* unk2) { + unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY)); +} + +void sub_0807EB74(Entity* unk1, unk_struct* unk2) { + unk1->animationState = sub_0806F5B0(GetFacingDirection(unk1, &gPlayerEntity)); +} + +void sub_0807EB8C(Entity* unk1, unk_struct* unk2) { + gPlayerEntity.animationState = sub_0806F5B0(GetFacingDirection(&gPlayerEntity, unk1)) & ~1; +} + +void sub_0807EBA8(Entity* unk1, unk_struct* unk2) { + unk1->direction = unk2->unk_00[1]; +} + +void sub_0807EBB0(Entity* unk1, unk_struct* unk2) { + unk1->direction = unk2->unk_00[1]; + unk1->animationState = unk1->direction / 4; +} + +void sub_0807EBC0(Entity* unk1, unk_struct* unk2) { + unk1->nonPlanarMovement = unk2->unk_00[1]; +} + +void sub_0807EBC8(Entity* unk1, unk_struct* unk2) { + unk1->field_0x20 = GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00); +} + +void sub_0807EBD8(Entity* unk1, unk_struct* unk2) { + unk1->x.HALF.HI = gRoomControls.roomOriginX + unk2->unk_00[1]; + unk1->y.HALF.HI = gRoomControls.roomOriginY + unk2->unk_00[2]; +} + +void sub_0807EBF4(Entity* unk1, unk_struct* unk2) { + unk1->x.HALF.HI += unk2->unk_00[1]; + unk1->y.HALF.HI += unk2->unk_00[2]; +} + +void sub_0807EC08(Entity* unk1, unk_struct* unk2) { + CopyPosition(&gPlayerEntity, unk1); +} + +void nullsub_509(Entity* unk1, unk_struct* unk2) {} + +void sub_0807EC1C(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[1]; + unk2->unk_08 |= 2; + } + sub_0807EC44(unk1, unk2); +} + +void sub_0807EC44(Entity* unk1, unk_struct* unk2) { + sub_0806F69C(unk1); + if (--unk2->unk_12) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EC64(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[1]; + unk1->animationState = 0; + unk1->direction = 0; + unk2->unk_08 |= 2; + } + sub_0807EC44(unk1, unk2); +} + +void sub_0807EC94(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[1]; + unk1->animationState = 2; + unk1->direction = 8; + unk2->unk_08 |= 2; + } + sub_0807EC44(unk1, unk2); +} + +void sub_0807ECC4(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[1]; + unk1->animationState = 4; + unk1->direction = 0x10; + unk2->unk_08 |= 2; + } + sub_0807EC44(unk1, unk2); +} + +void sub_0807ECF4(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[1]; + unk1->animationState = 6; + unk1->direction = 0x18; + unk2->unk_08 |= 2; + } + sub_0807EC44(unk1, unk2); +} + +void sub_0807ED24(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + s32 tmp, tmp2, tmp3; + unk2->unk_18 = 1; + unk2->unk_12 = unk2->unk_00[3]; + tmp = unk2->unk_00[1]; + tmp2 = unk1->x.HALF.HI - gRoomControls.roomOriginX; + unk2->unk_1C.WORD = ((tmp - tmp2) << 0x10) / unk2->unk_12; + tmp = unk2->unk_00[2]; + tmp3 = unk1->y.HALF.HI - gRoomControls.roomOriginY; + unk2->unk_20.WORD = ((tmp - tmp3) << 0x10) / unk2->unk_12; + unk1->animationState = sub_0806F5B0(sub_080045B4(unk1, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY)); + unk2->unk_08 |= 2; + } else { + if (!--unk2->unk_12) { + unk1->x.HALF.HI = unk2->unk_00[1] + gRoomControls.roomOriginX; + unk1->y.HALF.HI = unk2->unk_00[2] + gRoomControls.roomOriginY; + return; + } + unk1->x.WORD += unk2->unk_1C.WORD; + unk1->y.WORD += unk2->unk_20.WORD; + } + gUnk_02033280.unk_06 = 0; +} + +void sub_0807EDD4(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + sub_0807EE04(unk1, unk2); + } + sub_0807EE30(unk1, unk2); + if (!unk2->unk_14) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EE04(Entity* unk1, unk_struct* unk2) { + sub_0807DEDC(unk1, unk2, unk2->unk_00[1] + gRoomControls.roomOriginX, unk2->unk_00[2] + gRoomControls.roomOriginY); + gUnk_02033280.unk_07 |= 1; +} + +void sub_0807EE30(Entity* unk1, unk_struct* unk2) { + s32 tmp, tmp2; + if (!--unk2->unk_19) { + unk2->unk_19 = 8; + unk1->direction = sub_080045DA(unk2->unk_1C.HALF.HI - unk1->x.HALF.HI, unk2->unk_20.HALF.HI - unk1->y.HALF.HI); + } + tmp = unk1->x.HALF.HI - unk2->unk_1C.HALF.HI; + tmp2 = unk1->y.HALF.HI - unk2->unk_20.HALF.HI; + sub_0806F62C(unk1, unk1->nonPlanarMovement, unk1->direction); + tmp *= unk1->x.HALF.HI - unk2->unk_1C.HALF.HI; + tmp2 *= unk1->y.HALF.HI - unk2->unk_20.HALF.HI; + if (tmp <= 0 && tmp2 <= 0) { + unk1->x.HALF.HI = unk2->unk_1C.HALF.HI; + unk1->y.HALF.HI = unk2->unk_20.HALF.HI; + unk2->unk_14 = 1; + } else { + unk2->unk_14 = 0; + } +} + +void sub_0807EEB4(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + sub_0807DEDC(unk1, unk2, gPlayerEntity.x.HALF.HI, gPlayerEntity.y.HALF.HI); + } + sub_0807EE30(unk1, unk2); + if (!unk2->unk_14) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EEF4(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + sub_0807DEDC(unk1, unk2, unk1->x.HALF.HI + ((s16)unk2->unk_00[1]), unk1->y.HALF.HI + ((s16)unk2->unk_00[2])); + } + sub_0807EE30(unk1, unk2); + if (!unk2->unk_14) { + gUnk_02033280.unk_06 = 0; + } +} + +void sub_0807EF3C(Entity* unk1, unk_struct* unk2) { + if (!unk2->unk_18) { + unk2->unk_18 = 1; + unk1->field_0x20 = ((s16) unk2->unk_00[1]) << 8; + unk2->unk_1C.HALF.LO = unk2->unk_00[2] << 8; + sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO); + } else { + if (!sub_08003FC4(unk1, (u16)unk2->unk_1C.HALF.LO)) return; + } + gUnk_02033280.unk_06 = 0; +} + +void sub_0807EF80(Entity* unk1, unk_struct* unk2) { + unk2->unk_08 |= 1 << unk2->unk_00[1]; +} + +void sub_0807EF90(Entity* unk1, unk_struct* unk2) { + unk2->unk_08 |= 1 << unk2->unk_00[1]; +} + +void sub_0807EFA0(Entity* unk1, unk_struct* unk2) { + PlaySFX(unk2->unk_00[1]); +} + +void sub_0807EFAC(Entity* unk1, unk_struct* unk2) { + if (unk2->unk_00[1] >= 100) { + PlaySFX(gArea.musicIndex); + } else { + PlaySFX(unk2->unk_00[1]); + } +} + +void sub_0807EFD4(Entity* unk1, unk_struct* unk2) { + PlaySFX(GetNextScriptCommandWordAfterCommandMetadata(unk2->unk_00)); +} + +void sub_0807EFE4(Entity* unk1, unk_struct* unk2) { + PlaySFX(0x80100000); +} + +void sub_0807EFF4(Entity* unk1, unk_struct* unk2) { + ModRupees((s16)unk2->unk_00[1]); +} + +void sub_0807F004(Entity* unk1, unk_struct* unk2) { + ModHealth(unk2->unk_00[1]); +} + +void sub_0807F010(Entity* unk1, unk_struct* unk2) { + gUnk_02002A40.stats.maxHealth = min(gUnk_02002A40.stats.maxHealth + 8, 0xA0); + gUnk_02002A40.stats.health = gUnk_02002A40.stats.maxHealth; +} + +void sub_0807F034(Entity* unk1, unk_struct* unk2) { + u32 tmp = 0; + if (unk2->unk_00[1] == 0x3F) { + tmp = unk2->unk_04; + } + sub_080A7C18(unk2->unk_00[1], tmp, 0); +} + +void sub_0807F050(Entity* unk1, unk_struct* unk2) { + sub_080A7C18(0x5C, unk2->unk_00[1], 0); +} + +void sub_0807F060(Entity* unk1, unk_struct* unk2) { + unk2->unk_04 = GetInventoryValue(unk2->unk_00[1]); + unk2->unk_14 = unk2->unk_04 != 0; +} + +void sub_0807F078(Entity* unk1, unk_struct* unk2) { + sub_0807CAA0(unk2->unk_00[1], unk2->unk_00[2]); +} + +void sub_0807F088(Entity* unk1, unk_struct* unk2) { + sub_080A7C18(unk2->unk_00[1], 0, 3); +} + +void sub_0807F098(Entity* unk1, unk_struct* unk2) { + gRoomControls.cameraTarget = unk1; +} + +void sub_0807F0A4(Entity* unk1, unk_struct* unk2) { + gRoomControls.cameraTarget = &gPlayerEntity; +} + +void sub_0807F0B4(Entity* unk1, unk_struct* unk2) { + gRoomControls.unk5 = unk2->unk_00[1] & 7; +} + +void sub_0807F0C8(Entity* unk1, unk_struct* unk2) { + sub_08080964(unk2->unk_00[1], unk2->unk_00[2]); +}