diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/berry_crush.s | 580 | ||||
-rw-r--r-- | asm/berry_crush_2.s | 3494 | ||||
-rw-r--r-- | asm/berry_crush_3.s | 3431 | ||||
-rw-r--r-- | asm/event_object_movement.s | 84 | ||||
-rw-r--r-- | asm/field_effect_helpers.s | 4308 | ||||
-rw-r--r-- | asm/field_player_avatar.s | 6 | ||||
-rw-r--r-- | asm/field_weather.s | 8 | ||||
-rw-r--r-- | asm/field_weather_effects.s | 2 | ||||
-rw-r--r-- | asm/overworld.s | 32 |
9 files changed, 66 insertions, 11879 deletions
diff --git a/asm/berry_crush.s b/asm/berry_crush.s deleted file mode 100644 index 728e87128..000000000 --- a/asm/berry_crush.s +++ /dev/null @@ -1,580 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814B6F0 -sub_814B6F0: @ 814B6F0 - ldr r0, _0814B6F8 @ =gUnknown_203F3DC - ldr r0, [r0] - bx lr - .align 2, 0 -_0814B6F8: .4byte gUnknown_203F3DC - thumb_func_end sub_814B6F0 - - thumb_func_start sub_814B6FC -sub_814B6FC: @ 814B6FC - push {r4,r5,lr} - adds r4, r0, 0 - ldr r5, _0814B70C @ =gUnknown_203F3DC - ldr r0, [r5] - cmp r0, 0 - bne _0814B710 - movs r0, 0x2 - b _0814B740 - .align 2, 0 -_0814B70C: .4byte gUnknown_203F3DC -_0814B710: - cmp r4, 0 - bne _0814B716 - ldr r4, [r0] -_0814B716: - ldrb r0, [r0, 0xA] - bl DestroyTask - ldr r0, [r5] - bl Free - movs r0, 0 - str r0, [r5] - adds r0, r4, 0 - bl SetMainCallback2 - ldr r0, _0814B748 @ =CB2_ReturnToField - cmp r4, r0 - bne _0814B73E - ldr r0, _0814B74C @ =0x0000012f - bl PlayNewMapMusic - ldr r0, _0814B750 @ =sub_8056534 - bl SetMainCallback1 -_0814B73E: - movs r0, 0 -_0814B740: - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0814B748: .4byte CB2_ReturnToField -_0814B74C: .4byte 0x0000012f -_0814B750: .4byte sub_8056534 - thumb_func_end sub_814B6FC - - thumb_func_start StartBerryCrush -StartBerryCrush: @ 814B754 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - adds r4, r0, 0 - movs r0, 0 - mov r8, r0 - ldr r0, _0814B784 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _0814B772 - ldr r0, _0814B788 @ =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _0814B790 -_0814B772: - adds r0, r4, 0 - bl SetMainCallback2 - ldr r0, _0814B78C @ =Rfu - mov r1, r8 - strh r1, [r0, 0x10] - strh r1, [r0, 0x12] - b _0814B7DC - .align 2, 0 -_0814B784: .4byte gReceivedRemoteLinkPlayers -_0814B788: .4byte gWirelessCommType -_0814B78C: .4byte Rfu -_0814B790: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - bl GetMultiplayerId - lsls r0, 24 - lsrs r7, r0, 24 - mov r0, r8 - cmp r0, 0x1 - bls _0814B7AC - cmp r7, r8 - bcc _0814B7C0 -_0814B7AC: - adds r0, r4, 0 - bl SetMainCallback2 - ldr r0, _0814B7BC @ =Rfu - movs r1, 0 - strh r1, [r0, 0x10] - strh r1, [r0, 0x12] - b _0814B7DC - .align 2, 0 -_0814B7BC: .4byte Rfu -_0814B7C0: - ldr r6, _0814B7E8 @ =gUnknown_203F3DC - ldr r0, _0814B7EC @ =0x000041c0 - bl AllocZeroed - adds r5, r0, 0 - str r5, [r6] - cmp r5, 0 - bne _0814B7F4 - adds r0, r4, 0 - bl SetMainCallback2 - ldr r0, _0814B7F0 @ =Rfu - strh r5, [r0, 0x10] - strh r5, [r0, 0x12] -_0814B7DC: - adds r0, 0xEE - ldrb r1, [r0] - movs r1, 0x1 - strb r1, [r0] - b _0814B84C - .align 2, 0 -_0814B7E8: .4byte gUnknown_203F3DC -_0814B7EC: .4byte 0x000041c0 -_0814B7F0: .4byte Rfu -_0814B7F4: - str r4, [r5] - movs r4, 0 - strb r7, [r5, 0x8] - ldr r0, [r6] - mov r1, r8 - strb r1, [r0, 0x9] - ldr r0, [r6] - bl sub_814BABC - ldr r1, [r6] - movs r2, 0x1 - movs r0, 0x1 - strh r0, [r1, 0x12] - strb r2, [r1, 0xE] - ldr r1, [r6] - movs r0, 0x6 - strb r0, [r1, 0xF] - ldr r0, [r6] - adds r0, 0x36 - movs r2, 0x1 - negs r2, r2 - movs r1, 0x10 - str r1, [sp] - str r4, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x1 - movs r3, 0 - bl sub_814D564 - ldr r2, [r6] - adds r2, 0x36 - movs r0, 0x4 - movs r1, 0x1 - bl sub_814BB4C - ldr r0, _0814B858 @ =sub_814BA80 - bl SetMainCallback2 - ldr r0, _0814B85C @ =sub_814BA98 - movs r1, 0x8 - bl CreateTask - ldr r1, [r6] - strb r0, [r1, 0xA] -_0814B84C: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814B858: .4byte sub_814BA80 -_0814B85C: .4byte sub_814BA98 - thumb_func_end StartBerryCrush - - thumb_func_start sub_814B860 -sub_814B860: @ 814B860 - push {r4,lr} - sub sp, 0xC - ldr r1, _0814B878 @ =gSpecialVar_ItemId - ldrh r0, [r1] - subs r0, 0x85 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2B - bls _0814B87C - movs r0, 0x85 - strh r0, [r1] - b _0814B884 - .align 2, 0 -_0814B878: .4byte gSpecialVar_ItemId -_0814B87C: - ldrh r0, [r1] - movs r1, 0x1 - bl RemoveBagItem -_0814B884: - ldr r4, _0814B8E0 @ =gUnknown_203F3DC - ldr r2, [r4] - ldrb r0, [r2, 0x8] - lsls r0, 5 - adds r0, r2, r0 - ldr r1, _0814B8E4 @ =gSpecialVar_ItemId - ldrh r1, [r1] - subs r1, 0x85 - adds r0, 0xA4 - movs r3, 0 - strh r1, [r0] - movs r0, 0x1 - strb r0, [r2, 0xE] - ldr r1, [r4] - movs r0, 0x9 - strb r0, [r1, 0xF] - ldr r0, [r4] - adds r0, 0x36 - movs r2, 0x1 - negs r2, r2 - movs r1, 0x10 - str r1, [sp] - str r3, [sp, 0x4] - str r3, [sp, 0x8] - movs r1, 0 - bl sub_814D564 - ldr r2, [r4] - adds r2, 0x36 - movs r0, 0x4 - movs r1, 0x1 - bl sub_814BB4C - ldr r0, _0814B8E8 @ =sub_814BA98 - movs r1, 0x8 - bl CreateTask - ldr r1, [r4] - strb r0, [r1, 0xA] - ldr r0, _0814B8EC @ =sub_814BA80 - bl SetMainCallback2 - add sp, 0xC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814B8E0: .4byte gUnknown_203F3DC -_0814B8E4: .4byte gSpecialVar_ItemId -_0814B8E8: .4byte sub_814BA98 -_0814B8EC: .4byte sub_814BA80 - thumb_func_end sub_814B860 - - thumb_func_start sub_814B8F0 -sub_814B8F0: @ 814B8F0 - push {lr} - ldr r0, _0814B90C @ =gUnknown_203F3DC - ldr r0, [r0] - ldrb r0, [r0, 0xA] - bl DestroyTask - ldr r1, _0814B910 @ =sub_814B860 - movs r0, 0x5 - movs r2, 0 - bl InitBerryPouch - pop {r0} - bx r0 - .align 2, 0 -_0814B90C: .4byte gUnknown_203F3DC -_0814B910: .4byte sub_814B860 - thumb_func_end sub_814B8F0 - - thumb_func_start sub_814B914 -sub_814B914: @ 814B914 - push {lr} - ldr r0, _0814B920 @ =sub_814BA6C - bl SetVBlankCallback - pop {r0} - bx r0 - .align 2, 0 -_0814B920: .4byte sub_814BA6C - thumb_func_end sub_814B914 - - thumb_func_start sub_814B924 -sub_814B924: @ 814B924 - push {lr} - movs r0, 0 - bl SetVBlankCallback - pop {r0} - bx r0 - thumb_func_end sub_814B924 - - thumb_func_start sub_814B930 -sub_814B930: @ 814B930 - push {r4,r5,lr} - ldr r4, _0814B974 @ =gUnknown_203F3DC - ldr r0, [r4] - adds r0, 0x6C - ldrh r2, [r0] - lsls r2, 8 - movs r1, 0xF0 - lsls r1, 6 - adds r0, r2, 0 - bl sub_80D8B68 - adds r2, r0, 0 - ldr r0, [r4] - adds r0, 0x72 - ldrh r3, [r0] - lsls r3, 8 - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_80D8B68 - adds r3, r0, 0 - ldr r0, _0814B978 @ =0x0000ffff - ands r3, r0 - ldr r2, [r4] - strh r3, [r2, 0x16] - ldrb r0, [r2, 0x9] - cmp r0, 0x3 - beq _0814B9B4 - cmp r0, 0x3 - bgt _0814B97C - cmp r0, 0x2 - beq _0814B986 - b _0814BA3C - .align 2, 0 -_0814B974: .4byte gUnknown_203F3DC -_0814B978: .4byte 0x0000ffff -_0814B97C: - cmp r0, 0x4 - beq _0814B9E4 - cmp r0, 0x5 - beq _0814BA14 - b _0814BA3C -_0814B986: - ldr r5, _0814B9B0 @ =gSaveBlock2Ptr - ldr r1, [r5] - movs r0, 0xAF - lsls r0, 4 - adds r1, r0 - lsls r0, r3, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bls _0814BA3C - adds r2, 0x25 - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, 0x16] - movs r2, 0xAF - lsls r2, 4 - b _0814BA38 - .align 2, 0 -_0814B9B0: .4byte gSaveBlock2Ptr -_0814B9B4: - ldr r5, _0814B9DC @ =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, _0814B9E0 @ =0x00000af2 - adds r1, r0 - lsls r0, r3, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bls _0814BA3C - adds r2, 0x25 - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, 0x16] - ldr r2, _0814B9E0 @ =0x00000af2 - b _0814BA38 - .align 2, 0 -_0814B9DC: .4byte gSaveBlock2Ptr -_0814B9E0: .4byte 0x00000af2 -_0814B9E4: - ldr r5, _0814BA0C @ =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, _0814BA10 @ =0x00000af4 - adds r1, r0 - lsls r0, r3, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bls _0814BA3C - adds r2, 0x25 - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, 0x16] - ldr r2, _0814BA10 @ =0x00000af4 - b _0814BA38 - .align 2, 0 -_0814BA0C: .4byte gSaveBlock2Ptr -_0814BA10: .4byte 0x00000af4 -_0814BA14: - ldr r5, _0814BA60 @ =gSaveBlock2Ptr - ldr r1, [r5] - ldr r0, _0814BA64 @ =0x00000af6 - adds r1, r0 - lsls r0, r3, 16 - lsrs r0, 16 - ldrh r1, [r1] - cmp r0, r1 - bls _0814BA3C - adds r2, 0x25 - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - ldr r1, [r4] - ldrh r1, [r1, 0x16] - ldr r2, _0814BA64 @ =0x00000af6 -_0814BA38: - adds r0, r2 - strh r1, [r0] -_0814BA3C: - ldr r4, _0814BA68 @ =gUnknown_203F3DC - ldr r1, [r4] - ldr r0, [r1, 0x68] - str r0, [r1, 0x1C] - bl GiveBerryPowder - lsls r0, 24 - cmp r0, 0 - bne _0814BA5A - ldr r0, [r4] - adds r0, 0x25 - ldrb r1, [r0] - movs r2, 0x1 - orrs r1, r2 - strb r1, [r0] -_0814BA5A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814BA60: .4byte gSaveBlock2Ptr -_0814BA64: .4byte 0x00000af6 -_0814BA68: .4byte gUnknown_203F3DC - thumb_func_end sub_814B930 - - thumb_func_start sub_814BA6C -sub_814BA6C: @ 814BA6C - push {lr} - bl TransferPlttBuffer - bl LoadOam - bl ProcessSpriteCopyRequests - pop {r0} - bx r0 - thumb_func_end sub_814BA6C - - thumb_func_start sub_814BA80 -sub_814BA80: @ 814BA80 - push {lr} - bl RunTasks - bl RunTextPrinters - bl AnimateSprites - bl BuildOamBuffer - pop {r0} - bx r0 - thumb_func_end sub_814BA80 - - thumb_func_start sub_814BA98 -sub_814BA98: @ 814BA98 - push {r4,lr} - ldr r4, _0814BAB8 @ =gUnknown_203F3DC - ldr r0, [r4] - ldr r2, [r0, 0x4] - cmp r2, 0 - beq _0814BAAC - adds r1, r0, 0 - adds r1, 0x36 - bl _call_via_r2 -_0814BAAC: - ldr r0, [r4] - bl sub_814D9CC - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0814BAB8: .4byte gUnknown_203F3DC - thumb_func_end sub_814BA98 - - thumb_func_start sub_814BABC -sub_814BABC: @ 814BABC - push {r4-r6,lr} - adds r6, r0, 0 - movs r5, 0 - b _0814BAE8 -_0814BAC4: - lsls r4, r5, 5 - adds r0, r4, 0 - adds r0, 0x98 - adds r0, r6, r0 - lsls r1, r5, 3 - subs r1, r5 - lsls r1, 2 - ldr r2, _0814BB2C @ =gLinkPlayers + 8 - adds r1, r2 - bl StringCopy - adds r4, r6, r4 - adds r4, 0x9F - movs r0, 0xFF - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0814BAE8: - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _0814BAC4 - cmp r5, 0x4 - bhi _0814BB14 -_0814BAF2: - lsls r4, r5, 5 - adds r0, r4, 0 - adds r0, 0x98 - adds r0, r6, r0 - movs r1, 0x1 - movs r2, 0x7 - bl memset - adds r4, r6, r4 - adds r4, 0x9F - movs r0, 0xFF - strb r0, [r4] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0814BAF2 -_0814BB14: - ldr r0, _0814BB30 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x14] - lsls r0, 29 - lsrs r0, 29 - cmp r0, 0x1 - beq _0814BB3E - cmp r0, 0x1 - bgt _0814BB34 - cmp r0, 0 - beq _0814BB3A - b _0814BB46 - .align 2, 0 -_0814BB2C: .4byte gLinkPlayers + 8 -_0814BB30: .4byte gSaveBlock2Ptr -_0814BB34: - cmp r0, 0x2 - beq _0814BB42 - b _0814BB46 -_0814BB3A: - movs r0, 0x8 - b _0814BB44 -_0814BB3E: - movs r0, 0x4 - b _0814BB44 -_0814BB42: - movs r0, 0x1 -_0814BB44: - strb r0, [r6, 0xB] -_0814BB46: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814BABC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/berry_crush_2.s b/asm/berry_crush_2.s deleted file mode 100644 index e5079a5a9..000000000 --- a/asm/berry_crush_2.s +++ /dev/null @@ -1,3494 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814BB4C -sub_814BB4C: @ 814BB4C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r2, 0 - lsls r0, 16 - lsrs r5, r0, 16 - lsls r1, 24 - lsrs r4, r1, 24 - mov r8, r4 - bl sub_814B6F0 - adds r6, r0, 0 - cmp r5, 0x19 - bls _0814BB6A - movs r5, 0 -_0814BB6A: - cmp r4, 0 - beq _0814BB74 - cmp r4, 0x1 - beq _0814BBA0 - b _0814BBAA -_0814BB74: - cmp r5, 0 - beq _0814BB88 - ldr r0, _0814BB9C @ =gUnknown_846E34C - lsls r1, r5, 2 - adds r1, r0 - ldr r2, [r1] - adds r0, r6, 0 - adds r1, r7, 0 - bl _call_via_r2 -_0814BB88: - ldrb r0, [r6, 0xE] - cmp r0, 0x19 - bls _0814BB92 - mov r0, r8 - strb r0, [r6, 0xE] -_0814BB92: - ldr r0, _0814BB9C @ =gUnknown_846E34C - ldrb r1, [r6, 0xE] - lsls r1, 2 - b _0814BBA4 - .align 2, 0 -_0814BB9C: .4byte gUnknown_846E34C -_0814BBA0: - ldr r0, _0814BBB4 @ =gUnknown_846E34C - lsls r1, r5, 2 -_0814BBA4: - adds r1, r0 - ldr r0, [r1] - str r0, [r6, 0x4] -_0814BBAA: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814BBB4: .4byte gUnknown_846E34C - thumb_func_end sub_814BB4C - - thumb_func_start sub_814BBB8 -sub_814BBB8: @ 814BBB8 - push {r4-r6,lr} - sub sp, 0x4 - adds r6, r0, 0 - ldrb r2, [r1] - ldrb r3, [r1, 0x1] - lsls r3, 8 - orrs r2, r3 - ldrb r3, [r1, 0x2] - lsls r3, 16 - orrs r2, r3 - ldrb r3, [r1, 0x3] - lsls r3, 24 - adds r0, r2, 0 - orrs r0, r3 - ldrb r2, [r1, 0x9] - strb r2, [r1] - ldrb r4, [r1, 0x8] - lsls r4, 8 - ldrb r2, [r1, 0x7] - orrs r4, r2 - ldr r5, _0814BC0C @ =gPaletteFade - ldrb r3, [r5, 0x8] - movs r2, 0x7F - ands r2, r3 - strb r2, [r5, 0x8] - movs r5, 0x4 - ldrsb r5, [r1, r5] - ldrb r2, [r1, 0x5] - ldrb r3, [r1, 0x6] - str r4, [sp] - adds r1, r5, 0 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - movs r0, 0x2 - strb r0, [r6, 0xE] - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0814BC0C: .4byte gPaletteFade - thumb_func_end sub_814BBB8 - - thumb_func_start sub_814BC10 -sub_814BC10: @ 814BC10 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _0814BC44 - cmp r0, 0x1 - bgt _0814BC26 - cmp r0, 0 - beq _0814BC30 - b _0814BC66 -_0814BC26: - cmp r0, 0x2 - beq _0814BC4A - cmp r0, 0x3 - beq _0814BC56 - b _0814BC66 -_0814BC30: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0814BC6C - ldrb r0, [r5] - cmp r0, 0 - bne _0814BC66 - movs r0, 0x3 - b _0814BC6A -_0814BC44: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814BC66 -_0814BC4A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _0814BC66 - b _0814BC6C -_0814BC56: - ldrb r0, [r4, 0xF] - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0 - strb r0, [r4, 0xC] - b _0814BC6E -_0814BC66: - ldrb r0, [r4, 0xC] - adds r0, 0x1 -_0814BC6A: - strb r0, [r4, 0xC] -_0814BC6C: - movs r0, 0 -_0814BC6E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814BC10 - - thumb_func_start sub_814BC74 -sub_814BC74: @ 814BC74 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x10 - adds r7, r0, 0 - adds r5, r1, 0 - ldrb r4, [r5, 0x3] - lsls r4, 8 - ldrb r0, [r5, 0x2] - orrs r4, r0 - ldrb r6, [r7, 0xC] - cmp r6, 0x1 - beq _0814BD20 - cmp r6, 0x1 - bgt _0814BC98 - cmp r6, 0 - beq _0814BCA2 - b _0814BD68 -_0814BC98: - cmp r6, 0x2 - beq _0814BD38 - cmp r6, 0x3 - beq _0814BD48 - b _0814BD68 -_0814BCA2: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldrb r1, [r5, 0x1] - movs r0, 0x2 - mov r8, r0 - ands r0, r1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0814BCF0 - ldr r4, _0814BCE8 @ =gStringVar4 - ldr r1, _0814BCEC @ =gUnknown_846E328 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r1, [r0] - adds r0, r4, 0 - bl StringExpandPlaceholders - ldrb r3, [r7, 0xB] - str r6, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - adds r2, r4, 0 - bl AddTextPrinterParameterized2 - b _0814BD12 - .align 2, 0 -_0814BCE8: .4byte gStringVar4 -_0814BCEC: .4byte gUnknown_846E328 -_0814BCF0: - ldr r1, _0814BD1C @ =gUnknown_846E328 - ldrb r0, [r5] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - ldrb r3, [r7, 0xB] - str r4, [sp] - mov r0, r8 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 -_0814BD12: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _0814BD68 - .align 2, 0 -_0814BD1C: .4byte gUnknown_846E328 -_0814BD20: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0814BD6E - cmp r4, 0 - bne _0814BD68 - ldrb r0, [r7, 0xC] - adds r0, 0x1 - strb r0, [r7, 0xC] - b _0814BD68 -_0814BD38: - ldr r0, _0814BD44 @ =gMain - ldrh r0, [r0, 0x2E] - ands r4, r0 - cmp r4, 0 - bne _0814BD68 - b _0814BD6E - .align 2, 0 -_0814BD44: .4byte gMain -_0814BD48: - ldrb r1, [r5, 0x1] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814BD5A - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame -_0814BD5A: - ldrb r0, [r7, 0xE] - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - ldrb r0, [r5, 0x4] - b _0814BD6C -_0814BD68: - ldrb r0, [r7, 0xC] - adds r0, 0x1 -_0814BD6C: - strb r0, [r7, 0xC] -_0814BD6E: - movs r0, 0 - add sp, 0x10 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814BC74 - - thumb_func_start sub_814BD7C -sub_814BD7C: @ 814BD7C - push {r4,lr} - adds r4, r0, 0 - bl sub_814D5C8 - cmp r0, 0 - beq _0814BD94 - ldrb r0, [r4, 0xE] - adds r2, r4, 0 - adds r2, 0x36 - movs r1, 0 - bl sub_814BB4C -_0814BD94: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814BD7C - - thumb_func_start sub_814BD9C -sub_814BD9C: @ 814BD9C - push {r4,lr} - adds r4, r0, 0 - bl sub_814D888 - cmp r0, 0 - beq _0814BDB4 - ldrb r0, [r4, 0xE] - adds r2, r4, 0 - adds r2, 0x36 - movs r1, 0 - bl sub_814BB4C -_0814BDB4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814BD9C - - thumb_func_start sub_814BDBC -sub_814BDBC: @ 814BDBC - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0 - beq _0814BDCC - cmp r0, 0x1 - beq _0814BDD2 - b _0814BDFC -_0814BDCC: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814BDFC -_0814BDD2: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814BE02 - ldr r0, _0814BDF8 @ =0x00000111 - bl PlayNewMapMusic - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0x3 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _0814BE02 - .align 2, 0 -_0814BDF8: .4byte 0x00000111 -_0814BDFC: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_0814BE02: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814BDBC - - thumb_func_start sub_814BE0C -sub_814BE0C: @ 814BE0C - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r5, r1, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0 - beq _0814BE22 - cmp r0, 0x1 - beq _0814BE48 - adds r0, 0x1 - b _0814BE58 -_0814BE22: - adds r0, r4, 0 - bl sub_814D4D8 - movs r0, 0x1 - str r0, [sp] - adds r0, r5, 0 - movs r1, 0 - movs r2, 0x1 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x7 - strb r0, [r4, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814BE5A -_0814BE48: - movs r0, 0x8 - strb r0, [r4, 0xE] - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0x2 -_0814BE58: - strb r0, [r4, 0xC] -_0814BE5A: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814BE0C - - thumb_func_start sub_814BE64 -sub_814BE64: @ 814BE64 - push {lr} - movs r1, 0 - str r1, [r0, 0x4] - ldr r0, _0814BE78 @ =sub_814B8F0 - bl SetMainCallback2 - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0814BE78: .4byte sub_814B8F0 - thumb_func_end sub_814BE64 - - thumb_func_start sub_814BE7C -sub_814BE7C: @ 814BE7C - push {r4-r7,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r2, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x5 - bls _0814BE8C - b _0814BFC0 -_0814BE8C: - lsls r0, 2 - ldr r1, _0814BE98 @ =_0814BE9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814BE98: .4byte _0814BE9C - .align 2, 0 -_0814BE9C: - .4byte _0814BEB4 - .4byte _0814BED4 - .4byte _0814BEDA - .4byte _0814BF0A - .4byte _0814BF1A - .4byte _0814BFA4 -_0814BEB4: - movs r0, 0x1 - str r0, [sp] - adds r0, r2, 0 - movs r1, 0x1 - movs r2, 0 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x9 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814BFC6 -_0814BED4: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814BFC0 -_0814BEDA: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814BFC6 - adds r4, r5, 0 - adds r4, 0x42 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xC - bl memset - ldrb r0, [r5, 0x8] - lsls r0, 5 - adds r0, r5, r0 - adds r0, 0xA4 - ldrh r0, [r0] - strh r0, [r4] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl SendBlock - b _0814BFC0 -_0814BF0A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814BFC6 - movs r0, 0 - strh r0, [r5, 0x10] - b _0814BFC0 -_0814BF1A: - bl GetBlockReceivedStatus - ldr r2, _0814BF98 @ =gUnknown_846E3C8 - ldrb r4, [r5, 0x9] - subs r1, r4, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0814BFC6 - movs r3, 0 - cmp r3, r4 - bcs _0814BF7E - ldr r7, _0814BF9C @ =gBlockRecvBuffer - movs r6, 0 - ldr r4, _0814BFA0 @ =gUnknown_83DFC9C -_0814BF3C: - lsls r0, r3, 5 - adds r0, r5, r0 - lsls r1, r3, 8 - adds r1, r7 - ldrh r1, [r1] - adds r2, r0, 0 - adds r2, 0xA4 - strh r1, [r2] - lsls r1, 16 - lsrs r1, 16 - cmp r1, 0xB0 - bls _0814BF56 - strh r6, [r2] -_0814BF56: - ldrh r1, [r2] - lsls r1, 2 - adds r1, r4 - ldrh r0, [r5, 0x18] - ldrb r1, [r1] - adds r0, r1 - strh r0, [r5, 0x18] - ldrh r0, [r2] - lsls r0, 2 - adds r0, r4 - ldrh r1, [r0, 0x2] - ldr r0, [r5, 0x1C] - adds r0, r1 - str r0, [r5, 0x1C] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - ldrb r0, [r5, 0x9] - cmp r3, r0 - bcc _0814BF3C -_0814BF7E: - movs r0, 0 - strh r0, [r5, 0x10] - bl ResetBlockReceivedFlags - movs r1, 0x18 - ldrsh r0, [r5, r1] - lsls r0, 8 - movs r1, 0x80 - lsls r1, 6 - bl sub_80D8B68 - str r0, [r5, 0x20] - b _0814BFC0 - .align 2, 0 -_0814BF98: .4byte gUnknown_846E3C8 -_0814BF9C: .4byte gBlockRecvBuffer -_0814BFA0: .4byte gUnknown_83DFC9C -_0814BFA4: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - movs r0, 0xA - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0x4 - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _0814BFC6 -_0814BFC0: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814BFC6: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814BE7C - - thumb_func_start sub_814BFD0 -sub_814BFD0: @ 814BFD0 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x6 - bls _0814BFDC - b _0814C108 -_0814BFDC: - lsls r0, 2 - ldr r1, _0814BFE8 @ =_0814BFEC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814BFE8: .4byte _0814BFEC - .align 2, 0 -_0814BFEC: - .4byte _0814C008 - .4byte _0814C01A - .4byte _0814C048 - .4byte _0814C080 - .4byte _0814C0B0 - .4byte _0814C0D2 - .4byte _0814C0E4 -_0814C008: - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - adds r0, r4, 0 - bl sub_814DA24 - bl LinkRfu_SetRfuFuncToSend6600 - b _0814C108 -_0814C01A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C10E - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - ldr r3, _0814C044 @ =0x00000139 - adds r1, r4, r3 - strb r0, [r1] - adds r2, 0x2 - adds r1, r4, r2 - strb r0, [r1] - adds r3, 0x2 - adds r1, r4, r3 - strb r0, [r1] - b _0814C108 - .align 2, 0 -_0814C044: .4byte 0x00000139 -_0814C048: - movs r0, 0x9C - lsls r0, 1 - adds r3, r4, r0 - ldrb r0, [r3] - lsls r0, 2 - movs r2, 0xB8 - lsls r2, 1 - adds r1, r4, r2 - adds r0, r1, r0 - ldr r2, [r0] - ldr r0, _0814C07C @ =sub_814DB84 - str r0, [r2, 0x1C] - ldrb r0, [r3] - lsls r0, 2 - adds r1, r0 - ldr r1, [r1] - adds r1, 0x2C - ldrb r2, [r1] - movs r0, 0x7F - ands r0, r2 - strb r0, [r1] - movs r0, 0x36 - bl PlaySE - b _0814C108 - .align 2, 0 -_0814C07C: .4byte sub_814DB84 -_0814C080: - movs r3, 0x9C - lsls r3, 1 - adds r2, r4, r3 - ldrb r0, [r2] - lsls r0, 2 - adds r3, 0x38 - adds r1, r4, r3 - adds r3, r1, r0 - ldr r0, [r3] - ldr r1, [r0, 0x1C] - ldr r0, _0814C0AC @ =sub_814DB84 - cmp r1, r0 - beq _0814C10E - movs r0, 0 - str r0, [r3] - ldrb r0, [r2] - adds r0, 0x1 - strb r0, [r2] - bl LinkRfu_SetRfuFuncToSend6600 - b _0814C108 - .align 2, 0 -_0814C0AC: .4byte sub_814DB84 -_0814C0B0: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C10E - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - ldrb r0, [r1] - ldrb r2, [r4, 0x9] - cmp r0, r2 - bcs _0814C0CC - movs r0, 0x2 - b _0814C10C -_0814C0CC: - movs r0, 0 - strb r0, [r1] - b _0814C108 -_0814C0D2: - movs r3, 0x9C - lsls r3, 1 - adds r1, r4, r3 - adds r0, r4, 0 - bl sub_814DC24 - bl LinkRfu_SetRfuFuncToSend6600 - b _0814C108 -_0814C0E4: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C10E - movs r0, 0x25 - bl PlaySE - movs r0, 0xB - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0x5 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _0814C10E -_0814C108: - ldrb r0, [r4, 0xC] - adds r0, 0x1 -_0814C10C: - strb r0, [r4, 0xC] -_0814C10E: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814BFD0 - - thumb_func_start sub_814C118 -sub_814C118: @ 814C118 - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r1, [r4, 0xC] - cmp r1, 0x1 - beq _0814C17C - cmp r1, 0x1 - bgt _0814C12C - cmp r1, 0 - beq _0814C136 - b _0814C23C -_0814C12C: - cmp r1, 0x2 - beq _0814C1FC - cmp r1, 0x3 - beq _0814C21E - b _0814C23C -_0814C136: - ldrh r0, [r4, 0x2A] - adds r0, 0x4 - strh r0, [r4, 0x2A] - lsls r0, 16 - cmp r0, 0 - bge _0814C144 - b _0814C242 -_0814C144: - strh r1, [r4, 0x2A] - ldr r0, _0814C174 @ =0x00000139 - adds r3, r4, r0 - movs r0, 0x4 - strb r0, [r3] - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - movs r0, 0 - strb r0, [r1] - ldr r2, _0814C178 @ =gUnknown_846E2F0 - ldrb r1, [r3] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r2 - ldrb r0, [r0] - movs r2, 0x9D - lsls r2, 1 - adds r1, r4, r2 - strb r0, [r1] - movs r0, 0xCF - bl PlaySE - b _0814C23C - .align 2, 0 -_0814C174: .4byte 0x00000139 -_0814C178: .4byte gUnknown_846E2F0 -_0814C17C: - ldr r7, _0814C1F4 @ =gUnknown_846E2F0 - movs r0, 0x9C - lsls r0, 1 - adds r6, r4, r0 - ldr r1, _0814C1F8 @ =0x00000139 - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - ldrb r2, [r6] - adds r0, r2 - adds r0, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - strh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - movs r1, 0x9D - lsls r1, 1 - adds r2, r4, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - bcc _0814C242 - ldrb r0, [r5] - cmp r0, 0 - beq _0814C23C - subs r0, 0x1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0 - strb r0, [r6] - b _0814C242 - .align 2, 0 -_0814C1F4: .4byte gUnknown_846E2F0 -_0814C1F8: .4byte 0x00000139 -_0814C1FC: - movs r0, 0 - strh r0, [r4, 0x2C] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - bl LinkRfu_SetRfuFuncToSend6600 - b _0814C23C -_0814C21E: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C242 - movs r0, 0xC - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0x6 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _0814C242 -_0814C23C: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_0814C242: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814C118 - - thumb_func_start sub_814C24C -sub_814C24C: @ 814C24C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _0814C26C - cmp r0, 0x1 - bgt _0814C262 - cmp r0, 0 - beq _0814C292 - b _0814C2EC -_0814C262: - cmp r0, 0x2 - beq _0814C28A - cmp r0, 0x3 - beq _0814C298 - b _0814C2EC -_0814C26C: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C2F2 - movs r1, 0x80 - lsls r1, 5 - movs r0, 0 - str r0, [sp] - adds r0, r1, 0 - movs r2, 0x78 - movs r3, 0x50 - bl StartMinigameCountdown - b _0814C2EC -_0814C28A: - bl IsMinigameCountdownRunning - cmp r0, 0 - bne _0814C2F2 -_0814C292: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814C2EC -_0814C298: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814C2F2 - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0 - strb r0, [r1] - ldr r2, _0814C2D4 @ =0x00000139 - adds r1, r4, r2 - strb r0, [r1] - adds r2, 0x1 - adds r1, r4, r2 - strb r0, [r1] - adds r2, 0x1 - adds r1, r4, r2 - strb r0, [r1] - strh r0, [r4, 0x10] - ldrb r0, [r4, 0x8] - cmp r0, 0 - bne _0814C2D8 - movs r0, 0xD - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814C2E2 - .align 2, 0 -_0814C2D4: .4byte 0x00000139 -_0814C2D8: - movs r0, 0xE - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C -_0814C2E2: - movs r1, 0 - movs r0, 0x7 - strh r0, [r4, 0x12] - strb r1, [r4, 0xC] - b _0814C2F2 -_0814C2EC: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_0814C2F2: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814C24C - - thumb_func_start sub_814C2FC -sub_814C2FC: @ 814C2FC - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r4, r0, 0 - movs r0, 0 - mov r8, r0 - movs r2, 0 - adds r7, r2, 0 - ldrb r1, [r4, 0x9] - cmp r7, r1 - bcs _0814C40A - movs r2, 0x5E - adds r2, r4 - mov r9, r2 - ldr r3, _0814C3C0 @ =gUnknown_846E2E0 - mov r10, r3 -_0814C320: - lsls r0, r7, 4 - ldr r1, _0814C3C4 @ =gRecvCmds - adds r2, r0, r1 - ldrh r1, [r2] - movs r0, 0xFF - lsls r0, 8 - ands r0, r1 - movs r3, 0xBC - lsls r3, 6 - cmp r0, r3 - bne _0814C3FE - ldrh r0, [r2, 0x2] - cmp r0, 0x2 - bne _0814C3FE - ldrb r1, [r2, 0x4] - movs r0, 0x4 - ands r0, r1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0814C3F6 - mov r0, r9 - ldrb r2, [r0] - lsrs r1, r2, 3 - mov r3, r10 - adds r0, r7, r3 - ldrb r0, [r0] - orrs r1, r0 - lsls r1, 3 - movs r0, 0x7 - ands r0, r2 - orrs r0, r1 - mov r1, r9 - strb r0, [r1] - lsls r2, r7, 5 - adds r3, r4, r2 - mov r12, r3 - mov r1, r12 - adds r1, 0xB5 - movs r0, 0x1 - strb r0, [r1] - subs r1, 0x7 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - subs r1, 0x8 - ldrh r0, [r4, 0x28] - ldrh r1, [r1] - subs r0, r1 - lsls r0, 16 - lsrs r3, r0, 16 - mov r5, r12 - adds r5, 0xAA - ldrh r1, [r5] - subs r0, r1, 0x1 - adds r6, r2, 0 - cmp r3, r0 - blt _0814C3C8 - adds r0, r1, 0x1 - cmp r3, r0 - bgt _0814C3C8 - mov r1, r12 - adds r1, 0xA8 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] - strh r3, [r5] - mov r0, r12 - adds r0, 0xAC - ldrh r1, [r1] - ldrh r2, [r0] - cmp r1, r2 - bls _0814C3D6 - strh r1, [r0] - b _0814C3D6 - .align 2, 0 -_0814C3C0: .4byte gUnknown_846E2E0 -_0814C3C4: .4byte gRecvCmds -_0814C3C8: - adds r0, r4, r6 - adds r2, r0, 0 - adds r2, 0xA8 - movs r1, 0 - strh r1, [r2] - adds r0, 0xAA - strh r3, [r0] -_0814C3D6: - adds r1, r4, r6 - ldrh r0, [r4, 0x28] - adds r3, r1, 0 - adds r3, 0xA6 - movs r2, 0 - strh r0, [r3] - adds r1, 0xB4 - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bls _0814C3FE - strb r2, [r1] - b _0814C3FE -_0814C3F6: - lsls r0, r7, 5 - adds r0, r4, r0 - adds r0, 0xB5 - strb r1, [r0] -_0814C3FE: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r3, [r4, 0x9] - cmp r7, r3 - bcc _0814C320 -_0814C40A: - mov r0, r8 - cmp r0, 0x1 - bls _0814C440 - movs r7, 0 - ldrb r1, [r4, 0x9] - cmp r7, r1 - bcs _0814C440 - movs r3, 0x2 -_0814C41A: - lsls r0, r7, 5 - adds r1, r4, r0 - adds r2, r1, 0 - adds r2, 0xB5 - ldrb r0, [r2] - cmp r0, 0 - beq _0814C434 - orrs r0, r3 - strb r0, [r2] - adds r1, 0xB0 - ldrh r0, [r1] - adds r0, 0x1 - strh r0, [r1] -_0814C434: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r2, [r4, 0x9] - cmp r7, r2 - bcc _0814C41A -_0814C440: - mov r3, r8 - cmp r3, 0 - beq _0814C4A8 - ldrh r0, [r4, 0x2E] - add r0, r8 - strh r0, [r4, 0x2E] - ldr r1, _0814C490 @ =gUnknown_846E2E8 - mov r0, r8 - subs r0, 0x1 - adds r0, r1 - ldrb r0, [r0] - add r0, r8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrh r0, [r4, 0x34] - add r0, r8 - strh r0, [r4, 0x34] - ldrh r0, [r4, 0x1A] - add r0, r8 - strh r0, [r4, 0x1A] - movs r1, 0x18 - ldrsh r0, [r4, r1] - movs r3, 0x1A - ldrsh r2, [r4, r3] - subs r0, r2 - cmp r0, 0 - ble _0814C494 - lsls r2, 8 - ldr r1, [r4, 0x20] - adds r0, r2, 0 - bl sub_80D8B68 - adds r2, r0, 0 - asrs r2, 8 - adds r0, r4, 0 - adds r0, 0x24 - strb r2, [r0] - b _0814C4A8 - .align 2, 0 -_0814C490: .4byte gUnknown_846E2E8 -_0814C494: - adds r1, r4, 0 - adds r1, 0x24 - movs r0, 0x20 - strb r0, [r1] - adds r2, r4, 0 - adds r2, 0x5E - ldrb r0, [r2] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r2] -_0814C4A8: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814C2FC - - thumb_func_start sub_814C4B8 -sub_814C4B8: @ 814C4B8 - push {r4-r6,lr} - adds r3, r0, 0 - movs r6, 0 - movs r1, 0 - adds r4, r1, 0 - ldrb r0, [r3, 0x9] - cmp r4, r0 - bcs _0814C510 - adds r5, r3, 0 - adds r5, 0x64 -_0814C4CC: - lsls r0, r4, 5 - adds r1, r3, r0 - adds r0, r1, 0 - adds r0, 0xB5 - ldrb r2, [r0] - cmp r2, 0 - beq _0814C504 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r1, 0 - adds r0, 0xB4 - ldrb r0, [r0] - adds r1, r0, 0x1 - movs r0, 0x2 - ands r0, r2 - cmp r0, 0 - beq _0814C4F4 - movs r0, 0x4 - orrs r1, r0 -_0814C4F4: - lsls r0, r4, 1 - adds r0, r4 - lsls r1, r0 - lsls r0, r1, 16 - lsrs r1, r0, 16 - ldrh r0, [r5] - orrs r1, r0 - strh r1, [r5] -_0814C504: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r1, [r3, 0x9] - cmp r4, r1 - bcc _0814C4CC -_0814C510: - adds r0, r3, 0 - adds r0, 0x24 - ldrb r1, [r0] - adds r0, 0x3C - strh r1, [r0] - cmp r6, 0 - bne _0814C534 - ldr r2, _0814C530 @ =0x0000013b - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0814C600 - movs r4, 0x9C - lsls r4, 1 - adds r1, r3, r4 - b _0814C572 - .align 2, 0 -_0814C530: .4byte 0x0000013b -_0814C534: - ldr r5, _0814C560 @ =0x0000013b - adds r2, r3, r5 - ldrb r0, [r2] - cmp r0, 0 - beq _0814C57A - ldr r0, _0814C564 @ =0x00000139 - adds r1, r3, r0 - ldrb r2, [r1] - cmp r6, r2 - beq _0814C56C - subs r0, r6, 0x1 - strb r0, [r1] - ldr r1, _0814C568 @ =gUnknown_846E314 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r4, 0x9D - lsls r4, 1 - adds r1, r3, r4 - strb r0, [r1] - b _0814C5A0 - .align 2, 0 -_0814C560: .4byte 0x0000013b -_0814C564: .4byte 0x00000139 -_0814C568: .4byte gUnknown_846E314 -_0814C56C: - movs r5, 0x9C - lsls r5, 1 - adds r1, r3, r5 -_0814C572: - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - b _0814C5A0 -_0814C57A: - movs r0, 0x9C - lsls r0, 1 - adds r1, r3, r0 - movs r0, 0 - strb r0, [r1] - subs r0, r6, 0x1 - ldr r4, _0814C5D0 @ =0x00000139 - adds r1, r3, r4 - strb r0, [r1] - ldr r1, _0814C5D4 @ =gUnknown_846E314 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - movs r5, 0x9D - lsls r5, 1 - adds r1, r3, r5 - strb r0, [r1] - movs r0, 0x1 - strb r0, [r2] -_0814C5A0: - ldr r0, _0814C5D8 @ =0x0000013b - adds r4, r3, r0 - ldrb r0, [r4] - cmp r0, 0 - beq _0814C600 - movs r2, 0x9C - lsls r2, 1 - adds r1, r3, r2 - movs r5, 0x9D - lsls r5, 1 - adds r2, r3, r5 - ldrb r0, [r1] - ldrb r5, [r2] - cmp r0, r5 - bcc _0814C5DC - movs r0, 0 - strb r0, [r1] - ldr r5, _0814C5D0 @ =0x00000139 - adds r1, r3, r5 - strb r0, [r1] - strb r0, [r2] - strb r0, [r4] - movs r1, 0 - b _0814C5F0 - .align 2, 0 -_0814C5D0: .4byte 0x00000139 -_0814C5D4: .4byte gUnknown_846E314 -_0814C5D8: .4byte 0x0000013b -_0814C5DC: - ldr r2, _0814C5F8 @ =gUnknown_846E314 - ldrb r1, [r1] - ldr r4, _0814C5FC @ =0x00000139 - adds r0, r3, r4 - ldrb r0, [r0] - lsls r0, 2 - adds r0, 0x1 - adds r1, r0 - adds r1, r2 - ldrb r1, [r1] -_0814C5F0: - adds r0, r3, 0 - adds r0, 0x5F - strb r1, [r0] - b _0814C608 - .align 2, 0 -_0814C5F8: .4byte gUnknown_846E314 -_0814C5FC: .4byte 0x00000139 -_0814C600: - adds r1, r3, 0 - adds r1, 0x5F - movs r0, 0 - strb r0, [r1] -_0814C608: - ldrh r1, [r3, 0x26] - adds r0, r3, 0 - adds r0, 0x62 - strh r1, [r0] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814C4B8 - - thumb_func_start sub_814C618 -sub_814C618: @ 814C618 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r5, r0, 0 - ldr r3, _0814C6AC @ =gMain - ldrh r1, [r3, 0x2E] - movs r4, 0x1 - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0814C63A - adds r2, r5, 0 - adds r2, 0x5E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0814C63A: - ldrh r1, [r3, 0x2C] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - beq _0814C65A - ldrb r0, [r5, 0x8] - lsls r0, 5 - adds r0, r5, r0 - adds r1, r0, 0 - adds r1, 0xB2 - ldrh r0, [r1] - ldrh r2, [r5, 0x28] - cmp r0, r2 - bcs _0814C65A - adds r0, 0x1 - strh r0, [r1] -_0814C65A: - ldrb r0, [r5, 0x8] - adds r7, r5, 0 - adds r7, 0x5E - cmp r0, 0 - beq _0814C670 - ldrb r1, [r7] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _0814C670 - b _0814C7AC -_0814C670: - adds r4, r5, 0 - adds r4, 0x5C - movs r0, 0x2 - strh r0, [r4] - ldrh r0, [r5, 0x28] - movs r1, 0x1E - bl __umodsi3 - lsls r0, 16 - mov r8, r4 - adds r6, r5, 0 - adds r6, 0x25 - cmp r0, 0 - bne _0814C6C8 - movs r0, 0x2E - ldrsh r2, [r5, r0] - ldr r1, _0814C6B0 @ =gUnknown_846E3C4 - ldrb r0, [r5, 0x9] - subs r0, 0x2 - adds r0, r1 - ldrb r0, [r0] - cmp r2, r0 - ble _0814C6B4 - ldrh r0, [r5, 0x30] - adds r0, 0x1 - strh r0, [r5, 0x30] - ldrb r0, [r6] - movs r1, 0x10 - orrs r0, r1 - b _0814C6BC - .align 2, 0 -_0814C6AC: .4byte gMain -_0814C6B0: .4byte gUnknown_846E3C4 -_0814C6B4: - ldrb r1, [r6] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 -_0814C6BC: - strb r0, [r6] - movs r0, 0 - strh r0, [r5, 0x2E] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] -_0814C6C8: - ldrh r0, [r5, 0x28] - movs r1, 0xF - bl __umodsi3 - lsls r0, 16 - cmp r0, 0 - bne _0814C73E - movs r0, 0x34 - ldrsh r2, [r5, r0] - ldr r3, _0814C6F4 @ =gUnknown_846E3B4 - ldrb r0, [r5, 0x9] - subs r0, 0x2 - lsls r1, r0, 2 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r2, r0 - bge _0814C6F8 - ldrb r1, [r6] - movs r0, 0x1F - ands r0, r1 - strb r0, [r6] - b _0814C738 - .align 2, 0 -_0814C6F4: .4byte gUnknown_846E3B4 -_0814C6F8: - adds r0, r3, 0x1 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0814C70C - ldrb r0, [r6] - movs r1, 0x1F - ands r1, r0 - movs r0, 0x20 - b _0814C734 -_0814C70C: - adds r0, r3, 0x2 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0814C71C - movs r0, 0x2 - strh r0, [r5, 0x34] - b _0814C738 -_0814C71C: - adds r0, r3, 0x3 - adds r0, r1, r0 - ldrb r0, [r0] - cmp r2, r0 - bge _0814C72C - movs r0, 0x3 - strh r0, [r5, 0x34] - b _0814C738 -_0814C72C: - ldrb r0, [r6] - movs r1, 0x1F - ands r1, r0 - movs r0, 0x80 -_0814C734: - orrs r1, r0 - strb r1, [r6] -_0814C738: - movs r0, 0 - strh r0, [r5, 0x34] - b _0814C76A -_0814C73E: - ldrh r0, [r5, 0x10] - adds r0, 0x1 - strh r0, [r5, 0x10] - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x3C - bls _0814C76A - cmp r0, 0x46 - bls _0814C75A - bl sub_80FBA44 - movs r0, 0 - strh r0, [r5, 0x10] - b _0814C76A -_0814C75A: - ldrb r0, [r7] - movs r4, 0xF8 - ands r4, r0 - cmp r4, 0 - bne _0814C76A - bl sub_80FBA44 - strh r4, [r5, 0x10] -_0814C76A: - ldrh r1, [r5, 0x28] - ldr r0, _0814C7B8 @ =0x00008c9f - cmp r1, r0 - bls _0814C77A - ldrb r0, [r7] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r7] -_0814C77A: - ldrb r1, [r6] - lsls r1, 27 - lsrs r1, 31 - lsls r1, 1 - ldrb r2, [r7] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r7] - ldrb r0, [r6] - lsrs r0, 5 - adds r2, r5, 0 - adds r2, 0x66 - strh r0, [r2] - adds r4, r5, 0 - adds r4, 0x42 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0xC - bl memcpy - adds r0, r4, 0 - bl RfuPrepareSend0x2f00 -_0814C7AC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814C7B8: .4byte 0x00008c9f - thumb_func_end sub_814C618 - - thumb_func_start sub_814C7BC -sub_814C7BC: @ 814C7BC - push {r4,r5,lr} - adds r5, r0, 0 - movs r4, 0 - ldr r3, _0814C808 @ =gRecvCmds - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcs _0814C7E0 - movs r1, 0 -_0814C7CC: - lsls r0, r4, 5 - adds r0, r5, r0 - adds r0, 0xB5 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcc _0814C7CC -_0814C7E0: - adds r2, r3, 0 - ldrh r0, [r2] - movs r1, 0xFF - lsls r1, 8 - ands r1, r0 - movs r0, 0xBC - lsls r0, 6 - cmp r1, r0 - bne _0814C7F8 - ldrh r0, [r2, 0x2] - cmp r0, 0x2 - beq _0814C80C -_0814C7F8: - adds r2, r5, 0 - adds r2, 0x25 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _0814C84A - .align 2, 0 -_0814C808: .4byte gRecvCmds -_0814C80C: - adds r4, r5, 0 - adds r4, 0x4E - adds r0, r4, 0 - adds r1, r3, 0 - movs r2, 0xE - bl memcpy - ldrh r0, [r4, 0x6] - strh r0, [r5, 0x2A] - movs r0, 0x5 - ldrsb r0, [r4, r0] - strh r0, [r5, 0x2C] - ldrh r0, [r4, 0x8] - strh r0, [r5, 0x28] - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_814DC5C - ldrb r1, [r4, 0x4] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814C84A - adds r0, r5, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r2, 0x8 - orrs r1, r2 - strb r1, [r0] -_0814C84A: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814C7BC - - thumb_func_start sub_814C850 -sub_814C850: @ 814C850 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x5C - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - adds r0, 0x4E - movs r1, 0 - movs r2, 0xE - bl memset - adds r0, r4, 0 - bl sub_814C7BC - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0814C8D8 - ldrh r1, [r4, 0x28] - ldr r0, _0814C8C0 @ =0x00008c9f - cmp r1, r0 - bls _0814C8C4 - adds r0, 0x1 - strh r0, [r4, 0x28] - movs r0, 0x10 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814C8CE - .align 2, 0 -_0814C8C0: .4byte 0x00008c9f -_0814C8C4: - movs r0, 0xF - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C -_0814C8CE: - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _0814C8F2 -_0814C8D8: - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - adds r0, r4, 0 - bl sub_814C2FC - adds r0, r4, 0 - bl sub_814C4B8 - adds r0, r4, 0 - bl sub_814C618 - movs r0, 0 -_0814C8F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814C850 - - thumb_func_start sub_814C8F8 -sub_814C8F8: @ 814C8F8 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x5C - movs r1, 0 - movs r2, 0xC - bl memset - adds r0, r4, 0 - adds r0, 0x4E - movs r1, 0 - movs r2, 0xE - bl memset - adds r0, r4, 0 - bl sub_814C7BC - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0814C980 - ldrh r1, [r4, 0x28] - ldr r0, _0814C968 @ =0x00008c9f - cmp r1, r0 - bls _0814C96C - adds r0, 0x1 - strh r0, [r4, 0x28] - movs r0, 0x10 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814C976 - .align 2, 0 -_0814C968: .4byte 0x00008c9f -_0814C96C: - movs r0, 0xF - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C -_0814C976: - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _0814C988 -_0814C980: - adds r0, r4, 0 - bl sub_814C618 - movs r0, 0 -_0814C988: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_814C8F8 - - thumb_func_start sub_814C990 -sub_814C990: @ 814C990 - push {r4-r7,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x5 - bls _0814C99C - b _0814CB12 -_0814C99C: - lsls r0, 2 - ldr r1, _0814C9A8 @ =_0814C9AC - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814C9A8: .4byte _0814C9AC - .align 2, 0 -_0814C9AC: - .4byte _0814C9C4 - .4byte _0814C9EC - .4byte _0814CA3C - .4byte _0814CABC - .4byte _0814CADA - .4byte _0814CAF4 -_0814C9C4: - movs r0, 0x8 - strh r0, [r4, 0x12] - movs r0, 0xCF - bl PlaySE - movs r0, 0x1 - negs r0, r0 - ldr r2, _0814C9E8 @ =0x000003ff - movs r1, 0x8 - bl BlendPalettes - movs r0, 0x9C - lsls r0, 1 - adds r1, r4, r0 - movs r0, 0x2 - strb r0, [r1] - b _0814CB12 - .align 2, 0 -_0814C9E8: .4byte 0x000003ff -_0814C9EC: - movs r1, 0x9C - lsls r1, 1 - adds r5, r4, r1 - ldrb r0, [r5] - subs r0, 0x1 - strb r0, [r5] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - beq _0814CA02 - b _0814CB18 -_0814CA02: - movs r0, 0x1 - negs r0, r0 - ldr r2, _0814CA30 @ =0x000003ff - movs r1, 0 - bl BlendPalettes - ldr r2, _0814CA34 @ =0x00000139 - adds r1, r4, r2 - movs r0, 0x4 - strb r0, [r1] - movs r0, 0 - strb r0, [r5] - ldr r2, _0814CA38 @ =gUnknown_846E2F0 - ldrb r1, [r1] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r2 - ldrb r0, [r0] - movs r2, 0x9D - lsls r2, 1 - adds r1, r4, r2 - strb r0, [r1] - b _0814CB12 - .align 2, 0 -_0814CA30: .4byte 0x000003ff -_0814CA34: .4byte 0x00000139 -_0814CA38: .4byte gUnknown_846E2F0 -_0814CA3C: - ldr r7, _0814CAB4 @ =gUnknown_846E2F0 - movs r0, 0x9C - lsls r0, 1 - adds r6, r4, r0 - ldr r1, _0814CAB8 @ =0x00000139 - adds r5, r4, r1 - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - ldrb r2, [r6] - adds r0, r2 - adds r0, r7 - movs r1, 0 - ldrsb r1, [r0, r1] - strh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1A - bl SetGpuReg - ldrh r1, [r4, 0x2C] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x1E - bl SetGpuReg - ldrb r0, [r6] - adds r0, 0x1 - strb r0, [r6] - movs r1, 0x9D - lsls r1, 1 - adds r2, r4, r1 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r2] - cmp r0, r1 - bcc _0814CB18 - ldrb r0, [r5] - cmp r0, 0 - beq _0814CB12 - subs r0, 0x1 - strb r0, [r5] - ldrb r1, [r5] - lsls r0, r1, 3 - subs r0, r1 - adds r0, r7 - ldrb r0, [r0] - strb r0, [r2] - movs r0, 0 - strb r0, [r6] - b _0814CB18 - .align 2, 0 -_0814CAB4: .4byte gUnknown_846E2F0 -_0814CAB8: .4byte 0x00000139 -_0814CABC: - movs r0, 0 - strh r0, [r4, 0x2C] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - b _0814CB12 -_0814CADA: - movs r2, 0x9C - lsls r2, 1 - adds r1, r4, r2 - adds r0, r4, 0 - bl sub_814DE50 - cmp r0, 0 - beq _0814CB18 - bl LinkRfu_SetRfuFuncToSend6600 - movs r0, 0 - strh r0, [r4, 0x10] - b _0814CB12 -_0814CAF4: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814CB18 - movs r0, 0x11 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0 - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _0814CB1A -_0814CB12: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_0814CB18: - movs r0, 0 -_0814CB1A: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814C990 - - thumb_func_start sub_814CB20 -sub_814CB20: @ 814CB20 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - beq _0814CB64 - cmp r0, 0x1 - bgt _0814CB38 - cmp r0, 0 - beq _0814CB42 - b _0814CBFC -_0814CB38: - cmp r0, 0x2 - beq _0814CB8A - cmp r0, 0x3 - beq _0814CBBC - b _0814CBFC -_0814CB42: - movs r0, 0x9 - strh r0, [r5, 0x12] - movs r0, 0x1A - bl PlaySE - movs r0, 0x1 - negs r0, r0 - movs r1, 0x8 - movs r2, 0x1F - bl BlendPalettes - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x4 - strb r0, [r1] - b _0814CBFC -_0814CB64: - movs r0, 0x9C - lsls r0, 1 - adds r4, r5, r0 - ldrb r0, [r4] - subs r0, 0x1 - strb r0, [r4] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _0814CC02 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - movs r2, 0x1F - bl BlendPalettes - movs r0, 0 - strb r0, [r4] - b _0814CBFC -_0814CB8A: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_814DE50 - cmp r0, 0 - beq _0814CC02 - bl LinkRfu_SetRfuFuncToSend6600 - movs r0, 0 - strh r0, [r5, 0x10] - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - b _0814CBFC -_0814CBBC: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814CC02 - ldr r0, _0814CBF8 @ =gStringVar1 - ldr r1, [r5, 0x1C] - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x7 - movs r2, 0x1 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0 - strh r4, [r5, 0x10] - b _0814CC00 - .align 2, 0 -_0814CBF8: .4byte gStringVar1 -_0814CBFC: - ldrb r0, [r5, 0xC] - adds r0, 0x1 -_0814CC00: - strb r0, [r5, 0xC] -_0814CC02: - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814CB20 - - thumb_func_start sub_814CC0C -sub_814CC0C: @ 814CC0C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r7, r0, 0 - ldrb r0, [r7, 0xC] - cmp r0, 0x7 - bls _0814CC22 - b _0814CF8E -_0814CC22: - lsls r0, 2 - ldr r1, _0814CC2C @ =_0814CC30 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814CC2C: .4byte _0814CC30 - .align 2, 0 -_0814CC30: - .4byte _0814CC50 - .4byte _0814CC8A - .4byte _0814CC98 - .4byte _0814CD00 - .4byte _0814CE80 - .4byte _0814CF30 - .4byte _0814CF3C - .4byte _0814CF70 -_0814CC50: - adds r4, r7, 0 - adds r4, 0x42 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x4 - bl memset - ldrb r0, [r7, 0x8] - lsls r0, 5 - adds r0, r7, r0 - adds r2, r0, 0 - adds r2, 0xB2 - ldrh r1, [r7, 0x28] - ldrh r0, [r2] - cmp r0, r1 - bls _0814CC72 - strh r1, [r2] -_0814CC72: - ldrb r0, [r7, 0x8] - lsls r0, 5 - adds r0, r7, r0 - adds r0, 0xB2 - ldrh r0, [r0] - strh r0, [r4] - movs r0, 0 - adds r1, r4, 0 - movs r2, 0x2 - bl SendBlock - b _0814CF8E -_0814CC8A: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - bne _0814CC96 - b _0814CF94 -_0814CC96: - b _0814CF64 -_0814CC98: - bl GetBlockReceivedStatus - ldr r2, _0814CCF4 @ =gUnknown_846E3C8 - ldrb r3, [r7, 0x9] - subs r1, r3, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - beq _0814CCB0 - b _0814CF94 -_0814CCB0: - movs r0, 0 - mov r8, r0 - adds r4, r7, 0 - adds r4, 0x42 - cmp r8, r3 - bcs _0814CCDE - ldr r2, _0814CCF8 @ =gBlockRecvBuffer -_0814CCBE: - mov r3, r8 - lsls r1, r3, 5 - adds r1, r7, r1 - lsls r0, r3, 8 - adds r0, r2 - ldrh r0, [r0] - adds r1, 0xB2 - strh r0, [r1] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r6, [r7, 0x9] - cmp r8, r6 - bcc _0814CCBE -_0814CCDE: - movs r0, 0 - strh r0, [r7, 0x10] - strh r0, [r4] - bl ResetBlockReceivedFlags - ldrb r0, [r7, 0x8] - cmp r0, 0 - bne _0814CCFC - movs r0, 0x3 - b _0814CF92 - .align 2, 0 -_0814CCF4: .4byte gUnknown_846E3C8 -_0814CCF8: .4byte gBlockRecvBuffer -_0814CCFC: - movs r0, 0x6 - b _0814CF92 -_0814CD00: - adds r0, r7, 0 - adds r0, 0x68 - movs r1, 0 - movs r2, 0x30 - bl memset - ldrh r1, [r7, 0x28] - adds r0, r7, 0 - adds r0, 0x6C - strh r1, [r0] - movs r0, 0x18 - ldrsh r4, [r7, r0] - ldrh r0, [r7, 0x28] - movs r1, 0x3C - bl __udivsi3 - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 16 - adds r0, r4, 0 - bl __divsi3 - adds r1, r7, 0 - adds r1, 0x6E - strh r0, [r1] - movs r1, 0x30 - ldrsh r0, [r7, r1] - lsls r0, 8 - movs r4, 0xC8 - lsls r4, 6 - adds r1, r4, 0 - bl sub_80D8AE0 - adds r2, r0, 0 - movs r3, 0x32 - ldrsh r1, [r7, r3] - lsls r1, 8 - bl sub_80D8B68 - adds r2, r0, r4 - asrs r2, 8 - movs r1, 0x7F - adds r0, r2, 0 - ands r0, r1 - adds r1, r7, 0 - adds r1, 0x70 - strh r0, [r1] - lsls r2, 8 - movs r1, 0xC8 - lsls r1, 7 - adds r0, r2, 0 - bl sub_80D8B68 - adds r2, r0, 0 - ldrb r1, [r7, 0x9] - ldr r0, [r7, 0x1C] - muls r0, r1 - lsls r4, r0, 8 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_80D8AE0 - adds r4, r0, 0 - asrs r0, r4, 8 - str r0, [r7, 0x68] - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - adds r1, r7, 0 - adds r1, 0x8F - strb r0, [r1] - movs r6, 0 - mov r8, r6 - mov r9, r1 - ldrb r0, [r7, 0x9] - cmp r8, r0 - bcc _0814CDA4 - b _0814CF8E -_0814CDA4: - adds r0, r7, 0 - adds r0, 0x88 - add r0, r8 - mov r1, r8 - strb r1, [r0] - adds r0, r7, 0 - adds r0, 0x90 - add r0, r8 - strb r1, [r0] - mov r3, r8 - lsls r2, r3, 1 - adds r1, r7, 0 - adds r1, 0x74 - adds r1, r2 - lsls r0, r3, 5 - adds r3, r7, r0 - adds r5, r3, 0 - adds r5, 0xAE - ldrh r0, [r5] - strh r0, [r1] - adds r1, r7, 0 - adds r1, 0x72 - ldrh r6, [r1] - adds r0, r6 - strh r0, [r1] - mov r1, r9 - ldrb r0, [r1] - adds r6, r2, 0 - cmp r0, 0x1 - beq _0814CE0E - cmp r0, 0x1 - bgt _0814CDEA - cmp r0, 0 - beq _0814CDF0 - b _0814CE64 -_0814CDEA: - cmp r0, 0x2 - beq _0814CE2C - b _0814CE64 -_0814CDF0: - ldrh r0, [r5] - cmp r0, 0 - beq _0814CE32 - adds r0, r3, 0 - adds r0, 0xAC - ldrh r2, [r0] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_80D8AE0 - adds r2, r0, 0 - ldrh r4, [r5] - b _0814CE5A -_0814CE0E: - ldrh r0, [r5] - cmp r0, 0 - beq _0814CE32 - adds r0, r3, 0 - adds r0, 0xB0 - ldrh r2, [r0] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_80D8AE0 - adds r2, r0, 0 - ldrh r4, [r5] - b _0814CE5A -_0814CE2C: - ldrh r0, [r5] - cmp r0, 0 - bne _0814CE36 -_0814CE32: - movs r4, 0 - b _0814CE64 -_0814CE36: - adds r1, r3, 0 - adds r1, 0xB2 - ldrh r0, [r1] - ldrh r2, [r7, 0x28] - cmp r0, r2 - bcc _0814CE48 - movs r4, 0xC8 - lsls r4, 7 - b _0814CE64 -_0814CE48: - ldrh r2, [r1] - lsls r2, 8 - adds r0, r2, 0 - movs r1, 0xC8 - lsls r1, 7 - bl sub_80D8AE0 - adds r2, r0, 0 - ldrh r4, [r7, 0x28] -_0814CE5A: - lsls r4, 8 - adds r1, r4, 0 - bl sub_80D8B68 - adds r4, r0, 0 -_0814CE64: - asrs r4, 4 - adds r0, r7, 0 - adds r0, 0x7E - adds r0, r6 - strh r4, [r0] - mov r0, r8 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r3, [r7, 0x9] - cmp r8, r3 - bcc _0814CDA4 - b _0814CF8E -_0814CE80: - movs r6, 0 - mov r8, r6 - ldrb r0, [r7, 0x9] - subs r0, 0x1 - adds r1, r7, 0 - adds r1, 0x68 - str r1, [sp, 0xC] - cmp r8, r0 - bge _0814CF24 -_0814CE92: - ldrb r0, [r7, 0x9] - subs r0, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - mov r2, r8 - adds r2, 0x1 - str r2, [sp, 0x8] - cmp r4, r8 - bls _0814CF14 - adds r3, r7, 0 - adds r3, 0x74 - str r3, [sp] - adds r6, r7, 0 - adds r6, 0x88 - str r6, [sp, 0x4] - movs r0, 0x90 - adds r0, r7 - mov r10, r0 - movs r1, 0x7E - adds r1, r7 - mov r9, r1 -_0814CEBC: - subs r2, r4, 0x1 - mov r12, r2 - lsls r6, r2, 1 - ldr r0, [sp] - adds r3, r0, r6 - lsls r5, r4, 1 - adds r1, r0, r5 - ldrh r2, [r3] - ldrh r0, [r1] - cmp r2, r0 - bcs _0814CEE6 - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - ldr r1, [sp, 0x4] - adds r2, r1, r4 - ldrb r3, [r2] - add r1, r12 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_0814CEE6: - mov r2, r9 - adds r3, r2, r6 - adds r1, r2, r5 - ldrh r2, [r3] - ldrh r6, [r1] - cmp r2, r6 - bcs _0814CF0A - ldrh r0, [r1] - strh r2, [r1] - strh r0, [r3] - mov r0, r10 - adds r2, r0, r4 - ldrb r3, [r2] - mov r1, r10 - add r1, r12 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] -_0814CF0A: - mov r1, r12 - lsls r0, r1, 24 - lsrs r4, r0, 24 - cmp r4, r8 - bhi _0814CEBC -_0814CF14: - ldr r2, [sp, 0x8] - lsls r0, r2, 24 - lsrs r0, 24 - mov r8, r0 - ldrb r0, [r7, 0x9] - subs r0, 0x1 - cmp r8, r0 - blt _0814CE92 -_0814CF24: - movs r0, 0 - ldr r1, [sp, 0xC] - movs r2, 0x30 - bl SendBlock - b _0814CF8E -_0814CF30: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814CF94 - b _0814CF64 -_0814CF3C: - bl GetBlockReceivedStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0814CF94 - adds r4, r7, 0 - adds r4, 0x68 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x30 - bl memset - ldr r1, _0814CF6C @ =gBlockRecvBuffer - adds r0, r4, 0 - movs r2, 0x30 - bl memcpy - bl ResetBlockReceivedFlags -_0814CF64: - movs r0, 0 - strh r0, [r7, 0x10] - b _0814CF8E - .align 2, 0 -_0814CF6C: .4byte gBlockRecvBuffer -_0814CF70: - bl sub_814B930 - movs r0, 0x12 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0 - movs r1, 0xB - strh r1, [r7, 0x12] - strb r0, [r7, 0xC] - adds r1, r7, 0 - adds r1, 0x24 - strb r0, [r1] - b _0814CF94 -_0814CF8E: - ldrb r0, [r7, 0xC] - adds r0, 0x1 -_0814CF92: - strb r0, [r7, 0xC] -_0814CF94: - movs r0, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814CC0C - - thumb_func_start sub_814CFA8 -sub_814CFA8: @ 814CFA8 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x4 - bhi _0814D084 - lsls r0, 2 - ldr r1, _0814CFC0 @ =_0814CFC4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814CFC0: .4byte _0814CFC4 - .align 2, 0 -_0814CFC4: - .4byte _0814CFD8 - .4byte _0814CFEA - .4byte _0814CFFC - .4byte _0814D02C - .4byte _0814D03C -_0814CFD8: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - adds r0, r5, 0 - bl sub_814E644 - cmp r0, 0 - bne _0814D084 - b _0814D08A -_0814CFEA: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x1E - strb r0, [r1] - b _0814D084 -_0814CFFC: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - ldrb r0, [r1] - cmp r0, 0 - beq _0814D00E - subs r0, 0x1 - strb r0, [r1] - b _0814D08A -_0814D00E: - ldr r0, _0814D028 @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814D08A - movs r0, 0x5 - bl PlaySE - adds r0, r5, 0 - bl sub_814E80C - b _0814D084 - .align 2, 0 -_0814D028: .4byte gMain -_0814D02C: - ldrh r0, [r5, 0x12] - cmp r0, 0xC - bhi _0814D084 - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _0814D08A -_0814D03C: - ldr r0, _0814D07C @ =gStringVar1 - ldr r1, [r5, 0x1C] - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - ldr r4, _0814D080 @ =gStringVar2 - bl GetBerryPowder - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x6 - bl ConvertIntToDecimalStringN - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x2 - movs r2, 0x3 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - strb r4, [r5, 0xC] - b _0814D08A - .align 2, 0 -_0814D07C: .4byte gStringVar1 -_0814D080: .4byte gStringVar2 -_0814D084: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D08A: - movs r0, 0 - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814CFA8 - - thumb_func_start sub_814D094 -sub_814D094: @ 814D094 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - adds r4, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x4 - bhi _0814D178 - lsls r0, 2 - ldr r1, _0814D0AC @ =_0814D0B0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814D0AC: .4byte _0814D0B0 - .align 2, 0 -_0814D0B0: - .4byte _0814D0C4 - .4byte _0814D100 - .4byte _0814D106 - .4byte _0814D150 - .4byte _0814D164 -_0814D0C4: - ldrh r1, [r5, 0x28] - ldr r0, _0814D0FC @ =0x00008c9f - cmp r1, r0 - bls _0814D0D6 - movs r1, 0x9C - lsls r1, 1 - adds r0, r5, r1 - bl sub_814EB04 -_0814D0D6: - movs r0, 0x1 - str r0, [sp] - adds r0, r4, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0 - bl sub_814D5A4 - movs r4, 0 - movs r0, 0x13 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - strb r4, [r5, 0xC] - b _0814D17E - .align 2, 0 -_0814D0FC: .4byte 0x00008c9f -_0814D100: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814D178 -_0814D106: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814D17E - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldr r2, _0814D148 @ =gText_SavingDontTurnOffThePower2 - movs r0, 0 - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - movs r3, 0 - bl AddTextPrinterParameterized2 - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - ldr r0, _0814D14C @ =sub_80DA634 - movs r1, 0 - bl CreateTask - b _0814D178 - .align 2, 0 -_0814D148: .4byte gText_SavingDontTurnOffThePower2 -_0814D14C: .4byte sub_80DA634 -_0814D150: - ldr r0, _0814D160 @ =sub_80DA634 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _0814D178 - b _0814D17E - .align 2, 0 -_0814D160: .4byte sub_80DA634 -_0814D164: - movs r0, 0x14 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r1, 0 - movs r0, 0xF - strh r0, [r5, 0x12] - strb r1, [r5, 0xC] - b _0814D17E -_0814D178: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D17E: - movs r0, 0 - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D094 - - thumb_func_start sub_814D188 -sub_814D188: @ 814D188 - push {r4-r6,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r6, r1, 0 - ldrb r0, [r5, 0xC] - cmp r0, 0x1 - beq _0814D1CA - cmp r0, 0x1 - bgt _0814D1A0 - cmp r0, 0 - beq _0814D1A6 - b _0814D230 -_0814D1A0: - cmp r0, 0x2 - beq _0814D1D0 - b _0814D230 -_0814D1A6: - movs r0, 0x1 - str r0, [sp] - adds r0, r6, 0 - movs r1, 0x4 - movs r2, 0 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x14 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0 - strb r0, [r5, 0xC] - b _0814D238 -_0814D1CA: - bl DisplayYesNoMenuDefaultYes - b _0814D230 -_0814D1D0: - bl Menu_ProcessInputNoWrapClearOnChoose - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r4, r0 - beq _0814D236 - adds r0, r5, 0 - adds r0, 0x42 - movs r1, 0 - movs r2, 0xC - bl memset - cmp r4, 0 - bne _0814D202 - bl CheckHasAtLeastOneBerry - lsls r0, 24 - cmp r0, 0 - beq _0814D1FE - strh r4, [r5, 0x14] - b _0814D206 -_0814D1FE: - movs r0, 0x3 - b _0814D204 -_0814D202: - movs r0, 0x1 -_0814D204: - strh r0, [r5, 0x14] -_0814D206: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - movs r4, 0 - str r4, [sp] - adds r0, r6, 0 - movs r1, 0x8 - movs r2, 0 - movs r3, 0 - bl sub_814D5A4 - movs r0, 0x15 - strb r0, [r5, 0xE] - movs r0, 0x3 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - strb r4, [r5, 0xC] - b _0814D236 -_0814D230: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D236: - movs r0, 0 -_0814D238: - add sp, 0x4 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814D188 - - thumb_func_start sub_814D240 -sub_814D240: @ 814D240 - push {r4-r7,lr} - adds r4, r0, 0 - movs r5, 0 - ldrb r0, [r4, 0xC] - cmp r0, 0x1 - beq _0814D266 - cmp r0, 0x1 - bgt _0814D256 - cmp r0, 0 - beq _0814D260 - b _0814D30C -_0814D256: - cmp r0, 0x2 - beq _0814D288 - cmp r0, 0x3 - beq _0814D296 - b _0814D30C -_0814D260: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814D30C -_0814D266: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814D312 - ldrh r0, [r4, 0x14] - adds r1, r4, 0 - adds r1, 0x42 - strh r0, [r1] - adds r0, r4, 0 - adds r0, 0x4E - strh r5, [r0] - movs r0, 0 - movs r2, 0x2 - bl SendBlock - b _0814D30C -_0814D288: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814D312 - strh r5, [r4, 0x10] - b _0814D30C -_0814D296: - bl GetBlockReceivedStatus - ldr r2, _0814D2E8 @ =gUnknown_846E3C8 - ldrb r3, [r4, 0x9] - subs r1, r3, 0x2 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - ldrb r1, [r1] - cmp r0, r1 - bne _0814D312 - adds r7, r4, 0 - adds r7, 0x42 - adds r6, r4, 0 - adds r6, 0x4E - cmp r5, r3 - bcs _0814D2D4 - adds r1, r6, 0 - ldr r2, _0814D2EC @ =gBlockRecvBuffer -_0814D2BC: - lsls r0, r5, 8 - adds r0, r2 - ldrh r0, [r0] - ldrh r3, [r1] - adds r0, r3 - strh r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r4, 0x9] - cmp r5, r0 - bcc _0814D2BC -_0814D2D4: - ldrh r0, [r6] - cmp r0, 0 - beq _0814D2F0 - movs r0, 0x17 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - b _0814D2FA - .align 2, 0 -_0814D2E8: .4byte gUnknown_846E3C8 -_0814D2EC: .4byte gBlockRecvBuffer -_0814D2F0: - movs r0, 0x16 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C -_0814D2FA: - bl ResetBlockReceivedFlags - movs r1, 0 - movs r0, 0 - strh r0, [r7] - strh r0, [r6] - strh r0, [r4, 0x10] - strb r1, [r4, 0xC] - b _0814D314 -_0814D30C: - ldrb r0, [r4, 0xC] - adds r0, 0x1 - strb r0, [r4, 0xC] -_0814D312: - movs r0, 0 -_0814D314: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814D240 - - thumb_func_start sub_814D31C -sub_814D31C: @ 814D31C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _0814D34A - cmp r4, 0x1 - bgt _0814D332 - cmp r4, 0 - beq _0814D33C - b _0814D394 -_0814D332: - cmp r4, 0x2 - beq _0814D356 - cmp r4, 0x3 - beq _0814D37A - b _0814D394 -_0814D33C: - movs r0, 0x1 - negs r0, r0 - str r4, [sp] - movs r1, 0x1 - movs r2, 0 - movs r3, 0x10 - b _0814D370 -_0814D34A: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _0814D394 - b _0814D39A -_0814D356: - movs r0, 0 - movs r1, 0x1 - bl ClearDialogWindowAndFrame - adds r0, r5, 0 - bl sub_814DA04 - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0x10 - movs r3, 0 -_0814D370: - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _0814D394 -_0814D37A: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - bne _0814D39A - movs r0, 0x7 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - movs r0, 0 - strh r4, [r5, 0x12] - b _0814D398 -_0814D394: - ldrb r0, [r5, 0xC] - adds r0, 0x1 -_0814D398: - strb r0, [r5, 0xC] -_0814D39A: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D31C - - thumb_func_start sub_814D3A4 -sub_814D3A4: @ 814D3A4 - push {r4,r5,lr} - sub sp, 0x10 - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _0814D41C - cmp r4, 0x1 - bgt _0814D3BA - cmp r4, 0 - beq _0814D3C0 - b _0814D456 -_0814D3BA: - cmp r4, 0x2 - beq _0814D434 - b _0814D456 -_0814D3C0: - movs r0, 0 - movs r1, 0 - bl DrawDialogueFrame - ldrh r1, [r5, 0x14] - cmp r1, 0x3 - bne _0814D3F0 - ldr r0, _0814D3EC @ =gUnknown_846E328 - ldr r2, [r0, 0x14] - ldrb r3, [r5, 0xB] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - str r1, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 - b _0814D40C - .align 2, 0 -_0814D3EC: .4byte gUnknown_846E328 -_0814D3F0: - ldr r0, _0814D418 @ =gUnknown_846E328 - ldr r2, [r0, 0x18] - ldrb r3, [r5, 0xB] - str r4, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x1 - str r0, [sp, 0x8] - movs r0, 0x3 - str r0, [sp, 0xC] - movs r0, 0 - movs r1, 0x2 - bl AddTextPrinterParameterized2 -_0814D40C: - movs r0, 0 - movs r1, 0x3 - bl CopyWindowToVram - b _0814D456 - .align 2, 0 -_0814D418: .4byte gUnknown_846E328 -_0814D41C: - movs r0, 0 - bl IsTextPrinterActive - lsls r0, 16 - cmp r0, 0 - bne _0814D45C - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x78 - strb r0, [r1] - b _0814D456 -_0814D434: - movs r0, 0x9C - lsls r0, 1 - adds r1, r5, r0 - ldrb r0, [r1] - adds r4, r0, 0 - cmp r4, 0 - beq _0814D448 - subs r0, 0x1 - strb r0, [r1] - b _0814D45C -_0814D448: - movs r0, 0x18 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - strb r4, [r5, 0xC] - b _0814D45C -_0814D456: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D45C: - movs r0, 0 - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D3A4 - - thumb_func_start sub_814D468 -sub_814D468: @ 814D468 - push {r4,r5,lr} - adds r5, r0, 0 - ldrb r4, [r5, 0xC] - cmp r4, 0x1 - beq _0814D488 - cmp r4, 0x1 - bgt _0814D47C - cmp r4, 0 - beq _0814D482 - b _0814D4B8 -_0814D47C: - cmp r4, 0x2 - beq _0814D498 - b _0814D4B8 -_0814D482: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814D4B8 -_0814D488: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814D4BE - bl Link_TryStartSend5FFF - b _0814D4B8 -_0814D498: - ldr r0, _0814D4B4 @ =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _0814D4BE - movs r0, 0x19 - strb r0, [r5, 0xE] - movs r0, 0x5 - movs r1, 0x1 - movs r2, 0 - bl sub_814BB4C - strb r4, [r5, 0xC] - b _0814D4BE - .align 2, 0 -_0814D4B4: .4byte gReceivedRemoteLinkPlayers -_0814D4B8: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D4BE: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D468 - - thumb_func_start sub_814D4C8 -sub_814D4C8: @ 814D4C8 - push {lr} - movs r0, 0 - bl sub_814B6FC - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_814D4C8 - - thumb_func_start sub_814D4D8 -sub_814D4D8: @ 814D4D8 - push {r4-r6,lr} - adds r4, r0, 0 - movs r5, 0 - movs r0, 0x33 - bl IncrementGameStat - strb r5, [r4, 0xD] - movs r1, 0 - strh r5, [r4, 0x10] - movs r0, 0x2 - strh r0, [r4, 0x12] - strh r5, [r4, 0x14] - str r5, [r4, 0x1C] - strh r5, [r4, 0x18] - strh r5, [r4, 0x1A] - str r5, [r4, 0x20] - adds r0, r4, 0 - adds r0, 0x24 - strb r1, [r0] - adds r1, r4, 0 - adds r1, 0x25 - movs r0, 0 - strb r0, [r1] - strh r5, [r4, 0x26] - strh r5, [r4, 0x28] - strh r5, [r4, 0x2E] - ldr r0, _0814D560 @ =0x0000ffff - strh r0, [r4, 0x32] - strh r5, [r4, 0x30] - strh r5, [r4, 0x34] - movs r6, 0 - movs r3, 0 -_0814D518: - lsls r0, r5, 5 - adds r2, r4, r0 - adds r1, r2, 0 - adds r1, 0xA4 - ldr r0, _0814D560 @ =0x0000ffff - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0xA6 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r1, 0x6 - movs r0, 0x1 - strh r0, [r1] - adds r0, r2, 0 - adds r0, 0xAC - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strh r3, [r0] - adds r0, 0x2 - strb r6, [r0] - adds r0, 0x1 - strb r6, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0814D518 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814D560: .4byte 0x0000ffff - thumb_func_end sub_814D4D8 - - thumb_func_start sub_814D564 -sub_814D564: @ 814D564 - push {r4-r6,lr} - sub sp, 0x8 - str r2, [sp, 0x4] - ldr r5, [sp, 0x18] - ldr r6, [sp, 0x1C] - ldr r4, [sp, 0x20] - mov r2, sp - strh r4, [r2] - add r4, sp, 0x4 - ldrb r2, [r4] - strb r2, [r0] - ldrb r2, [r4, 0x1] - strb r2, [r0, 0x1] - ldrb r2, [r4, 0x2] - strb r2, [r0, 0x2] - ldrb r2, [r4, 0x3] - strb r2, [r0, 0x3] - strb r3, [r0, 0x4] - strb r5, [r0, 0x5] - strb r6, [r0, 0x6] - mov r2, sp - ldrb r2, [r2] - strb r2, [r0, 0x7] - mov r2, sp - ldrb r2, [r2, 0x1] - strb r2, [r0, 0x8] - strb r1, [r0, 0x9] - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814D564 - - thumb_func_start sub_814D5A4 -sub_814D5A4: @ 814D5A4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, [sp, 0x10] - mov r4, sp - strh r3, [r4] - strb r1, [r0] - strb r2, [r0, 0x1] - mov r1, sp - ldrb r1, [r1] - strb r1, [r0, 0x2] - mov r1, sp - ldrb r1, [r1, 0x1] - strb r1, [r0, 0x3] - strb r5, [r0, 0x4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814D5A4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/berry_crush_3.s b/asm/berry_crush_3.s deleted file mode 100644 index dfed93396..000000000 --- a/asm/berry_crush_3.s +++ /dev/null @@ -1,3431 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_814D5C8 -sub_814D5C8: @ 814D5C8 - push {r4,r5,lr} - sub sp, 0xC - bl sub_814B6F0 - adds r5, r0, 0 - cmp r5, 0 - bne _0814D5DC - movs r0, 0x1 - negs r0, r0 - b _0814D880 -_0814D5DC: - ldrb r0, [r5, 0xC] - cmp r0, 0x9 - bls _0814D5E4 - b _0814D878 -_0814D5E4: - lsls r0, 2 - ldr r1, _0814D5F0 @ =_0814D5F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814D5F0: .4byte _0814D5F4 - .align 2, 0 -_0814D5F4: - .4byte _0814D61C - .4byte _0814D63A - .4byte _0814D660 - .4byte _0814D66E - .4byte _0814D6F4 - .4byte _0814D73A - .4byte _0814D768 - .4byte _0814D798 - .4byte _0814D7F4 - .4byte _0814D830 -_0814D61C: - movs r0, 0 - bl SetVBlankCallback - movs r0, 0 - bl SetHBlankCallback - movs r0, 0 - movs r1, 0 - bl SetGpuReg - bl ScanlineEffect_Stop - bl ResetTempTileDataBuffers - b _0814D878 -_0814D63A: - add r0, sp, 0x8 - movs r4, 0 - strh r4, [r0] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, _0814D658 @ =0x01000200 - bl CpuSet - ldr r0, _0814D65C @ =gReservedSpritePaletteCount - strb r4, [r0] - movs r0, 0x3 - bl DigitObjUtil_Init - b _0814D878 - .align 2, 0 -_0814D658: .4byte 0x01000200 -_0814D65C: .4byte gReservedSpritePaletteCount -_0814D660: - bl ResetPaletteFade - bl ResetSpriteData - bl FreeAllSpritePalettes - b _0814D878 -_0814D66E: - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, _0814D6F0 @ =gUnknown_846E3CC - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - movs r0, 0xE0 - lsls r0, 1 - adds r1, r5, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - movs r0, 0x87 - lsls r0, 6 - adds r1, r5, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - movs r0, 0xC7 - lsls r0, 6 - adds r1, r5, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r0, 0x52 - movs r1, 0 - bl SetGpuReg - b _0814D878 - .align 2, 0 -_0814D6F0: .4byte gUnknown_846E3CC -_0814D6F4: - movs r4, 0x20 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - movs r0, 0x40 - str r0, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - b _0814D878 -_0814D73A: - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - ldr r1, _0814D764 @ =gUnknown_8EAFFC0 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl DecompressAndCopyTileDataToVram - b _0814D878 - .align 2, 0 -_0814D764: .4byte gUnknown_8EAFFC0 -_0814D768: - bl FreeTempTileDataBuffersIfPossible - lsls r0, 24 - cmp r0, 0 - beq _0814D774 - b _0814D87E -_0814D774: - bl InitStandardTextBoxWindows - bl ResetBg0 - adds r0, r5, 0 - bl sub_814EB38 - adds r0, r5, 0 - bl sub_814EBB0 - ldr r0, _0814D794 @ =gPaletteFade - ldrb r1, [r0, 0x8] - movs r2, 0x80 - orrs r1, r2 - strb r1, [r0, 0x8] - b _0814D878 - .align 2, 0 -_0814D794: .4byte gPaletteFade -_0814D798: - ldr r0, _0814D7E4 @ =gUnknown_8EAFEA0 - movs r2, 0xC0 - lsls r2, 1 - movs r1, 0 - bl LoadPalette - ldr r1, _0814D7E8 @ =gUnknown_846ED90 - movs r0, 0x1 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, _0814D7EC @ =gUnknown_846EEC0 - movs r0, 0x2 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - ldr r1, _0814D7F0 @ =gUnknown_846F058 - movs r0, 0x3 - movs r2, 0 - movs r3, 0 - bl CopyToBgTilemapBuffer - adds r0, r5, 0 - bl sub_814EC80 - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0814D878 - .align 2, 0 -_0814D7E4: .4byte gUnknown_8EAFEA0 -_0814D7E8: .4byte gUnknown_846ED90 -_0814D7EC: .4byte gUnknown_846EEC0 -_0814D7F0: .4byte gUnknown_846F058 -_0814D7F4: - bl LoadWirelessStatusIndicatorSpriteGfx - movs r0, 0 - movs r1, 0 - bl CreateWirelessStatusIndicatorSprite - adds r0, r5, 0 - bl sub_814ECE0 - ldr r0, _0814D82C @ =gSpriteCoordOffsetY - ldrh r1, [r0] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x16 - bl SetGpuReg - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - b _0814D878 - .align 2, 0 -_0814D82C: .4byte gSpriteCoordOffsetY -_0814D830: - ldr r2, _0814D874 @ =gPaletteFade - ldrb r1, [r2, 0x8] - movs r0, 0x7F - ands r0, r1 - strb r0, [r2, 0x8] - movs r0, 0x1 - negs r0, r0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuRegBits - bl sub_814B914 - movs r0, 0 - strb r0, [r5, 0xC] - movs r0, 0x1 - b _0814D880 - .align 2, 0 -_0814D874: .4byte gPaletteFade -_0814D878: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D87E: - movs r0, 0 -_0814D880: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D5C8 - - thumb_func_start sub_814D888 -sub_814D888: @ 814D888 - push {r4,r5,lr} - sub sp, 0x8 - bl sub_814B6F0 - adds r5, r0, 0 - cmp r5, 0 - bne _0814D89C - movs r0, 0x1 - negs r0, r0 - b _0814D9C2 -_0814D89C: - ldrb r0, [r5, 0xC] - cmp r0, 0x7 - bls _0814D8A4 - b _0814D9BA -_0814D8A4: - lsls r0, 2 - ldr r1, _0814D8B0 @ =_0814D8B4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814D8B0: .4byte _0814D8B4 - .align 2, 0 -_0814D8B4: - .4byte _0814D8D4 - .4byte _0814D8DA - .4byte _0814D8E4 - .4byte _0814D8FA - .4byte _0814D906 - .4byte _0814D962 - .4byte _0814D9A2 - .4byte _0814D9B2 -_0814D8D4: - bl LinkRfu_SetRfuFuncToSend6600 - b _0814D9BA -_0814D8DA: - bl IsLinkTaskFinished - lsls r0, 24 - cmp r0, 0 - beq _0814D9C0 -_0814D8E4: - movs r0, 0x1 - negs r0, r0 - movs r1, 0 - str r1, [sp] - movs r2, 0 - movs r3, 0x10 - bl BeginNormalPaletteFade - bl UpdatePaletteFade - b _0814D9BA -_0814D8FA: - bl UpdatePaletteFade - lsls r0, 24 - cmp r0, 0 - beq _0814D9BA - b _0814D9C0 -_0814D906: - movs r4, 0x20 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - movs r0, 0 - bl CopyBgTilemapBufferToVram - movs r0, 0x1 - bl CopyBgTilemapBufferToVram - movs r0, 0x2 - bl CopyBgTilemapBufferToVram - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - b _0814D9BA -_0814D962: - bl FreeAllWindowBuffers - movs r0, 0 - bl HideBg - movs r0, 0 - bl UnsetBgTilemapBuffer - movs r0, 0x1 - bl HideBg - movs r0, 0x1 - bl UnsetBgTilemapBuffer - movs r0, 0x2 - bl HideBg - movs r0, 0x2 - bl UnsetBgTilemapBuffer - movs r0, 0x3 - bl HideBg - movs r0, 0x3 - bl UnsetBgTilemapBuffer - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl ClearGpuRegBits - b _0814D9BA -_0814D9A2: - bl DestroyWirelessStatusIndicatorSprite - adds r0, r5, 0 - bl sub_814EF10 - bl DigitObjUtil_Teardown - b _0814D9BA -_0814D9B2: - movs r0, 0 - strb r0, [r5, 0xC] - movs r0, 0x1 - b _0814D9C2 -_0814D9BA: - ldrb r0, [r5, 0xC] - adds r0, 0x1 - strb r0, [r5, 0xC] -_0814D9C0: - movs r0, 0 -_0814D9C2: - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_814D888 - - thumb_func_start sub_814D9CC -sub_814D9CC: @ 814D9CC - push {r4,lr} - adds r4, r0, 0 - ldr r0, _0814DA00 @ =gSpriteCoordOffsetY - ldrh r1, [r4, 0x2C] - ldrh r2, [r4, 0x2A] - adds r1, r2 - strh r1, [r0] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x16 - bl SetGpuReg - ldrh r0, [r4, 0x12] - cmp r0, 0x7 - bne _0814D9F8 - movs r1, 0x9C - lsls r1, 1 - adds r0, r4, r1 - ldrh r1, [r4, 0x28] - bl sub_814EAD4 -_0814D9F8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_0814DA00: .4byte gSpriteCoordOffsetY - thumb_func_end sub_814D9CC - - thumb_func_start sub_814DA04 -sub_814DA04: @ 814DA04 - movs r1, 0 - ldr r2, _0814DA18 @ =0x0000ff98 - strh r2, [r0, 0x2A] - strh r1, [r0, 0x2C] - ldr r0, _0814DA1C @ =gSpriteCoordOffsetX - strh r1, [r0] - ldr r0, _0814DA20 @ =gSpriteCoordOffsetY - strh r2, [r0] - bx lr - .align 2, 0 -_0814DA18: .4byte 0x0000ff98 -_0814DA1C: .4byte gSpriteCoordOffsetX -_0814DA20: .4byte gSpriteCoordOffsetY - thumb_func_end sub_814DA04 - - thumb_func_start sub_814DA24 -sub_814DA24: @ 814DA24 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - mov r10, r0 - str r1, [sp] - movs r0, 0 - mov r9, r0 - mov r1, r10 - ldrb r1, [r1, 0x9] - cmp r9, r1 - bcc _0814DA42 - b _0814DB60 -_0814DA42: - ldr r1, _0814DB70 @ =gUnknown_846F2EC - mov r2, r9 - lsls r0, r2, 1 - adds r0, r1 - ldrh r2, [r0] - mov r1, r9 - lsls r0, r1, 5 - add r0, r10 - adds r0, 0xA4 - ldrh r3, [r0] - adds r3, 0x85 - lsls r3, 16 - lsrs r3, 16 - ldr r0, _0814DB74 @ =gUnknown_846F470 - adds r1, r2, 0 - bl AddItemIconObjectWithCustomObjectTemplate - lsls r0, 24 - lsrs r0, 24 - mov r2, r9 - lsls r3, r2, 2 - ldr r1, [sp] - adds r1, 0x38 - adds r6, r1, r3 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _0814DB78 @ =gSprites - adds r1, r0 - str r1, [r6] - ldrb r0, [r1, 0x5] - movs r2, 0xC - orrs r0, r2 - strb r0, [r1, 0x5] - ldr r2, [r6] - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r6] - ldr r0, [sp] - adds r0, 0xC - adds r0, r3 - mov r8, r0 - ldr r0, [r0] - ldrh r0, [r0, 0x8] - adds r0, 0x78 - strh r0, [r1, 0x20] - ldr r1, [r6] - ldr r0, _0814DB7C @ =0x0000fff0 - strh r0, [r1, 0x22] - ldr r3, [r6] - adds r5, r3, 0 - adds r5, 0x2E - movs r0, 0x80 - lsls r0, 2 - strh r0, [r5, 0x2] - movs r0, 0x20 - strh r0, [r5, 0x4] - movs r0, 0x70 - strh r0, [r5, 0xE] - mov r2, r8 - ldr r1, [r2] - ldrh r0, [r1, 0xA] - ldrh r1, [r1, 0x8] - subs r0, r1 - lsls r0, 16 - asrs r1, r0, 16 - adds r0, r1, 0 - cmp r1, 0 - bge _0814DAD4 - adds r0, r1, 0x3 -_0814DAD4: - asrs r0, 2 - strh r0, [r5, 0xC] - lsls r0, r1, 23 - lsrs r7, r0, 16 - movs r2, 0x80 - lsls r2, 2 - adds r2, 0x20 - lsrs r2, 1 - movs r0, 0x7 - movs r1, 0xFE - lsls r1, 6 - str r3, [sp, 0x4] - bl sub_80D8B40 - adds r4, r0, 0 - ldr r0, [r6] - ldrh r0, [r0, 0x20] - lsls r0, 7 - ldr r3, [sp, 0x4] - strh r0, [r3, 0x2E] - lsls r1, r7, 16 - asrs r1, 16 - lsls r4, 16 - asrs r4, 16 - movs r0, 0x7 - adds r2, r4, 0 - bl sub_80D8B40 - strh r0, [r5, 0x6] - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x55 - bl sub_80D8ABC - adds r2, r0, 0 - movs r0, 0 - strh r0, [r5, 0x8] - lsls r2, 16 - asrs r2, 16 - movs r0, 0x7 - movs r1, 0xFE - lsls r1, 6 - bl sub_80D8B40 - strh r0, [r5, 0xA] - ldrh r0, [r5, 0xE] - ldr r2, _0814DB80 @ =0xffff8000 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r5, 0xE] - mov r1, r8 - ldr r0, [r1] - movs r2, 0x8 - ldrsh r0, [r0, r2] - cmp r0, 0 - bge _0814DB4C - ldr r0, [r6] - movs r1, 0x1 - bl StartSpriteAffineAnim -_0814DB4C: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - mov r0, r10 - ldrb r0, [r0, 0x9] - cmp r9, r0 - bcs _0814DB60 - b _0814DA42 -_0814DB60: - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814DB70: .4byte gUnknown_846F2EC -_0814DB74: .4byte gUnknown_846F470 -_0814DB78: .4byte gSprites -_0814DB7C: .4byte 0x0000fff0 -_0814DB80: .4byte 0xffff8000 - thumb_func_end sub_814DA24 - - thumb_func_start sub_814DB84 -sub_814DB84: @ 814DB84 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r5, 0x26] - adds r0, r2 - strh r0, [r5, 0x26] - movs r1, 0xE - ldrsh r0, [r4, r1] - movs r6, 0x80 - lsls r6, 8 - ands r0, r6 - cmp r0, 0 - beq _0814DBEA - ldrh r0, [r4, 0x6] - ldrh r2, [r5, 0x2E] - adds r0, r2 - strh r0, [r5, 0x2E] - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - movs r2, 0xC - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r5, 0x24] - movs r1, 0xE - ldrsh r0, [r4, r1] - ands r0, r6 - cmp r0, 0 - beq _0814DBEA - ldrh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - cmp r0, 0x7E - ble _0814DBEA - movs r0, 0 - strh r0, [r5, 0x24] - ldrh r1, [r4, 0xE] - ldr r0, _0814DC1C @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xE] -_0814DBEA: - ldrh r0, [r4] - lsls r0, 16 - asrs r0, 23 - strh r0, [r5, 0x20] - movs r2, 0x22 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - ldrh r2, [r4, 0xE] - ldr r0, _0814DC1C @ =0x00007fff - ands r0, r2 - cmp r1, r0 - blt _0814DC16 - ldr r0, _0814DC20 @ =SpriteCallbackDummy - str r0, [r5, 0x1C] - adds r0, r5, 0 - bl FreeSpriteOamMatrix - adds r0, r5, 0 - bl DestroySprite -_0814DC16: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814DC1C: .4byte 0x00007fff -_0814DC20: .4byte SpriteCallbackDummy - thumb_func_end sub_814DB84 - - thumb_func_start sub_814DC24 -sub_814DC24: @ 814DC24 - push {r4-r7,lr} - adds r6, r0, 0 - movs r5, 0 - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcs _0814DC50 - ldr r7, _0814DC58 @ =gUnknown_846F2EC -_0814DC32: - lsls r0, r5, 1 - adds r0, r7 - ldrh r4, [r0] - adds r0, r4, 0 - bl FreeSpritePaletteByTag - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _0814DC32 -_0814DC50: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814DC58: .4byte gUnknown_846F2EC - thumb_func_end sub_814DC24 - - thumb_func_start sub_814DC5C -sub_814DC5C: @ 814DC5C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - adds r6, r0, 0 - str r1, [sp] - movs r0, 0 - str r0, [sp, 0x4] - movs r1, 0x4E - adds r1, r6 - mov r10, r1 - mov r9, r0 - ldrb r2, [r6, 0x9] - cmp r0, r2 - bcs _0814DD2A - ldr r7, _0814DCC0 @ =gUnknown_846F2D0 -_0814DC80: - mov r3, r10 - ldrh r0, [r3, 0xA] - mov r4, r9 - lsls r1, r4, 1 - add r1, r9 - asrs r0, r1 - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - mov r8, r1 - cmp r1, 0 - beq _0814DD1A - ldr r0, [sp, 0x4] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814DCC4 - lsls r4, 2 - ldr r5, [sp] - adds r5, 0x24 - adds r0, r5, r4 - ldr r0, [r0] - movs r1, 0x1 - bl StartSpriteAnim - b _0814DCD6 - .align 2, 0 -_0814DCC0: .4byte gUnknown_846F2D0 -_0814DCC4: - mov r0, r9 - lsls r4, r0, 2 - ldr r5, [sp] - adds r5, 0x24 - adds r0, r5, r4 - ldr r0, [r0] - movs r1, 0 - bl StartSpriteAnim -_0814DCD6: - adds r3, r5, r4 - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r4, 0x5 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - subs r4, 0x3C - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - movs r0, 0x3 - mov r1, r8 - ands r1, r0 - mov r8, r1 - subs r1, 0x1 - lsls r1, 1 - adds r0, r1, r7 - ldrb r0, [r0] - lsls r0, 24 - asrs r0, 24 - strh r0, [r2, 0x24] - ldr r2, [r3] - ldr r3, _0814DD38 @ =gUnknown_846F2D0 + 1 - adds r1, r3 - movs r0, 0 - ldrsb r0, [r1, r0] - strh r0, [r2, 0x26] -_0814DD1A: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - ldrb r4, [r6, 0x9] - cmp r9, r4 - bcc _0814DC80 -_0814DD2A: - ldr r0, [sp, 0x4] - cmp r0, 0 - bne _0814DD3C - adds r2, r6, 0 - adds r2, 0x25 - ldrb r1, [r2] - b _0814DE18 - .align 2, 0 -_0814DD38: .4byte gUnknown_846F2D0 + 1 -_0814DD3C: - ldrh r0, [r6, 0x28] - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - mov r1, r8 - str r1, [sp, 0x8] - movs r2, 0 - mov r9, r2 - mov r3, r10 - ldrh r1, [r3, 0xC] - lsls r0, r1, 1 - adds r0, 0x3 - adds r6, 0x25 - str r6, [sp, 0xC] - adds r3, r1, 0 - cmp r9, r0 - bge _0814DE0C -_0814DD64: - mov r4, r9 - lsls r1, r4, 2 - ldr r0, [sp] - adds r0, 0x4C - adds r7, r0, r1 - ldr r2, [r7] - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814DDFA - ldr r0, _0814DDD0 @ =sub_814F0D8 - str r0, [r2, 0x1C] - lsls r1, r4, 1 - ldr r3, _0814DDD4 @ =gUnknown_846F2D6 - adds r0, r1, r3 - movs r4, 0 - ldrsb r4, [r0, r4] - adds r0, r4, 0 - adds r0, 0x78 - strh r0, [r2, 0x20] - ldr r2, [r7] - ldr r0, _0814DDD8 @ =gUnknown_846F2D6 + 1 - adds r1, r0 - movs r6, 0 - ldrsb r6, [r1, r6] - mov r1, r8 - lsls r0, r1, 2 - subs r0, 0x88 - subs r0, r6, r0 - strh r0, [r2, 0x22] - ldr r5, [r7] - ldr r2, [sp, 0x8] - lsls r1, r2, 2 - adds r0, r4, 0 - bl __divsi3 - adds r4, r0 - strh r4, [r5, 0x24] - ldr r0, [r7] - strh r6, [r0, 0x26] - mov r3, r10 - ldrb r1, [r3, 0x4] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0814DDDC - ldr r0, [r7] - movs r1, 0x1 - bl StartSpriteAnim - b _0814DDE4 - .align 2, 0 -_0814DDD0: .4byte sub_814F0D8 -_0814DDD4: .4byte gUnknown_846F2D6 -_0814DDD8: .4byte gUnknown_846F2D6 + 1 -_0814DDDC: - ldr r0, [r7] - movs r1, 0 - bl StartSpriteAnim -_0814DDE4: - mov r0, r8 - adds r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - mov r4, r10 - ldrh r3, [r4, 0xC] - cmp r0, 0x3 - bls _0814DDFA - movs r0, 0 - mov r8, r0 -_0814DDFA: - mov r0, r9 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsls r0, r3, 1 - adds r0, 0x3 - cmp r9, r0 - blt _0814DD64 -_0814DE0C: - ldr r2, [sp, 0xC] - ldrb r1, [r2] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0814DE22 -_0814DE18: - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _0814DE40 -_0814DE22: - ldr r3, [sp, 0x4] - cmp r3, 0x1 - bne _0814DE30 - movs r0, 0x47 - bl PlaySE - b _0814DE36 -_0814DE30: - movs r0, 0x46 - bl PlaySE -_0814DE36: - ldr r4, [sp, 0xC] - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] -_0814DE40: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814DC5C - - thumb_func_start sub_814DE50 -sub_814DE50: @ 814DE50 - push {r4-r7,lr} - adds r5, r0, 0 - adds r6, r1, 0 - movs r2, 0 - ldrb r0, [r5, 0x9] - cmp r2, r0 - bcs _0814DE82 - adds r4, r6, 0 - adds r4, 0x24 - movs r7, 0x4 - adds r3, r0, 0 -_0814DE66: - lsls r0, r2, 2 - adds r0, r4, r0 - ldr r0, [r0] - adds r0, 0x3E - ldrb r1, [r0] - adds r0, r7, 0 - ands r0, r1 - cmp r0, 0 - beq _0814DE9C - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r3 - bcc _0814DE66 -_0814DE82: - movs r2, 0 - adds r3, r6, 0 - adds r3, 0x4C - movs r4, 0x4 -_0814DE8A: - lsls r0, r2, 2 - adds r0, r3, r0 - ldr r0, [r0] - adds r0, 0x3E - ldrb r1, [r0] - adds r0, r4, 0 - ands r0, r1 - cmp r0, 0 - bne _0814DEA0 -_0814DE9C: - movs r0, 0 - b _0814DEB8 -_0814DEA0: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xA - bls _0814DE8A - movs r1, 0x2C - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _0814DEB6 - movs r0, 0 - strh r0, [r5, 0x2C] -_0814DEB6: - movs r0, 0x1 -_0814DEB8: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_814DE50 - - thumb_func_start sub_814DEC0 -sub_814DEC0: @ 814DEC0 - push {r4-r7,lr} - adds r6, r0, 0 - lsls r4, r1, 16 - lsrs r4, 16 - movs r7, 0 - movs r5, 0xE1 - lsls r5, 4 - adds r0, r4, 0 - adds r1, r5, 0 - bl __udivsi3 - strh r0, [r6, 0x4] - adds r0, r4, 0 - adds r1, r5, 0 - bl __umodsi3 - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3C - bl __udivsi3 - strh r0, [r6, 0x6] - adds r0, r4, 0 - movs r1, 0x3C - bl __umodsi3 - lsls r0, 24 - asrs r0, 16 - movs r1, 0x4 - bl sub_80D8AA0 - adds r2, r7, 0 - lsls r0, 16 - asrs r3, r0, 16 - movs r0, 0x7 - mov r12, r0 - ldr r5, _0814DF3C @ =gUnknown_846E450 - movs r4, 0x1 -_0814DF0C: - mov r0, r12 - subs r1, r0, r2 - adds r0, r3, 0 - asrs r0, r1 - ands r0, r4 - cmp r0, 0 - beq _0814DF22 - lsls r0, r2, 2 - adds r0, r5 - ldr r0, [r0] - adds r7, r0 -_0814DF22: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x7 - bls _0814DF0C - ldr r1, _0814DF40 @ =1000000 - adds r0, r7, 0 - bl __udivsi3 - strh r0, [r6, 0x8] - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814DF3C: .4byte gUnknown_846E450 -_0814DF40: .4byte 1000000 - thumb_func_end sub_814DEC0 - - thumb_func_start sub_814DF44 -sub_814DF44: @ 814DF44 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0xC - adds r6, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - mov r8, r3 - lsls r6, 24 - lsrs r6, 24 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - movs r2, 0x1 - negs r2, r2 - movs r0, 0x2 - mov r1, r8 - bl GetStringWidth - lsls r4, 2 - lsrs r0, 1 - subs r4, r0 - lsls r4, 24 - lsrs r4, 24 - lsls r0, r5, 1 - adds r0, r5 - ldr r1, _0814DFA0 @ =gUnknown_846E3DC - adds r0, r1 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0x4] - mov r0, r8 - str r0, [sp, 0x8] - adds r0, r6, 0 - movs r1, 0x2 - adds r2, r4, 0 - movs r3, 0 - bl AddTextPrinterParameterized3 - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814DFA0: .4byte gUnknown_846E3DC - thumb_func_end sub_814DF44 - - thumb_func_start sub_814DFA4 -sub_814DFA4: @ 814DFA4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x38 - str r0, [sp, 0xC] - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x10] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x14] - lsls r3, 24 - lsrs r3, 24 - str r3, [sp, 0x18] - movs r0, 0 - mov r8, r0 - movs r1, 0 - str r1, [sp, 0x1C] - movs r2, 0 - str r2, [sp, 0x20] - ldr r4, [sp, 0xC] - adds r4, 0x68 - str r4, [sp, 0x24] - ldr r0, [sp, 0xC] - ldrb r0, [r0, 0x9] - cmp r8, r0 - bcc _0814DFE0 - b _0814E30C -_0814DFE0: - ldr r1, [sp, 0x10] - lsls r1, 2 - str r1, [sp, 0x28] - movs r4, 0xDD - lsls r4, 1 - ldr r2, [sp, 0xC] - adds r4, r2, r4 - str r4, [sp, 0x2C] -_0814DFF0: - bl DynamicPlaceholderTextUtil_Reset - ldr r0, [sp, 0x10] - cmp r0, 0x1 - beq _0814E0E4 - cmp r0, 0x1 - bgt _0814E00A - cmp r0, 0 - beq _0814E01A - mov r1, r8 - lsls r1, 3 - mov r9, r1 - b _0814E0C8 -_0814E00A: - ldr r0, [sp, 0x10] - cmp r0, 0x2 - bne _0814E012 - b _0814E200 -_0814E012: - mov r1, r8 - lsls r1, 3 - mov r9, r1 - b _0814E0C8 -_0814E01A: - ldr r0, [sp, 0x24] - adds r0, 0x20 - add r0, r8 - ldrb r0, [r0] - str r0, [sp, 0x1C] - mov r0, r8 - lsls r3, r0, 1 - ldr r2, [sp, 0x24] - adds r2, 0xC - cmp r0, 0 - beq _0814E048 - adds r0, r2, r3 - mov r1, r8 - subs r1, 0x1 - lsls r1, 1 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0814E048 - mov r4, r8 - adds r1, r4, 0 - str r1, [sp, 0x20] -_0814E048: - ldr r1, [sp, 0x28] - ldr r4, [sp, 0x10] - adds r0, r1, r4 - lsls r0, 1 - adds r0, r3, r0 - adds r0, r2, r0 - ldrh r1, [r0] - ldr r0, _0814E0D8 @ =gStringVar1 - movs r2, 0x1 - movs r3, 0x4 - bl ConvertIntToDecimalStringN - ldr r0, _0814E0DC @ =gUnknown_846F4B8 - ldr r1, [sp, 0x28] - adds r0, r1, r0 - ldr r5, [r0] - movs r0, 0x2 - adds r1, r5, 0 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - ldr r2, [sp, 0x14] - subs r0, r2, r0 - subs r0, 0x4 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, [sp, 0x2C] - ldrb r0, [r4] - mov r1, r8 - lsls r6, r1, 3 - subs r4, r6, r1 - lsls r4, 1 - ldr r2, [sp, 0x18] - adds r4, r2, r4 - lsls r4, 24 - lsrs r4, 24 - ldr r1, _0814E0E0 @ =gUnknown_846E3DC - str r1, [sp] - movs r2, 0 - str r2, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - adds r2, r7, 0 - adds r3, r4, 0 - bl AddTextPrinterParameterized3 - ldr r1, [sp, 0x2C] - ldrb r0, [r1] - adds r2, r7, 0 - subs r2, 0x18 - lsls r2, 24 - lsrs r2, 24 - ldr r1, _0814E0E0 @ =gUnknown_846E3DC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _0814E0D8 @ =gStringVar1 - str r1, [sp, 0x8] - movs r1, 0x2 - adds r3, r4, 0 - bl AddTextPrinterParameterized3 - mov r9, r6 -_0814E0C8: - ldr r6, [sp, 0x20] - adds r6, 0xA2 - ldr r2, [sp, 0x1C] - lsls r5, r2, 5 - movs r4, 0x1 - add r4, r8 - mov r10, r4 - b _0814E27E - .align 2, 0 -_0814E0D8: .4byte gStringVar1 -_0814E0DC: .4byte gUnknown_846F4B8 -_0814E0E0: .4byte gUnknown_846E3DC -_0814E0E4: - ldr r0, [sp, 0x24] - add r0, r8 - adds r0, 0x28 - ldrb r0, [r0] - str r0, [sp, 0x1C] - mov r0, r8 - lsls r3, r0, 1 - ldr r2, [sp, 0x24] - adds r2, 0xC - cmp r0, 0 - beq _0814E116 - adds r0, r3, 0 - adds r0, 0xA - adds r0, r2, r0 - mov r4, r8 - lsls r1, r4, 1 - adds r1, 0x8 - adds r1, r2, r1 - ldrh r0, [r0] - ldrh r1, [r1] - cmp r0, r1 - beq _0814E116 - mov r1, r8 - adds r0, r1, 0 - str r0, [sp, 0x20] -_0814E116: - ldr r0, [sp, 0x28] - ldr r1, [sp, 0x10] - adds r4, r0, r1 - lsls r4, 1 - adds r4, r3, r4 - adds r4, r2, r4 - ldrh r1, [r4] - lsrs r1, 4 - ldr r0, _0814E1E4 @ =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - movs r3, 0 - ldrb r0, [r4] - movs r7, 0xF - ands r7, r0 - movs r2, 0 - ldr r4, [sp, 0x10] - lsls r4, 2 - str r4, [sp, 0x34] - mov r0, r8 - lsls r0, 3 - mov r9, r0 - ldr r1, [sp, 0x14] - subs r1, 0x4 - str r1, [sp, 0x30] - ldr r6, [sp, 0x20] - adds r6, 0xA2 - ldr r4, [sp, 0x1C] - lsls r5, r4, 5 - movs r0, 0x1 - add r0, r8 - mov r10, r0 - movs r1, 0x1 - mov r12, r1 - ldr r4, _0814E1E8 @ =gUnknown_846E450 -_0814E160: - movs r0, 0x3 - subs r1, r0, r2 - adds r0, r7, 0 - asrs r0, r1 - mov r1, r12 - ands r0, r1 - cmp r0, 0 - beq _0814E178 - lsls r0, r2, 2 - adds r0, r4 - ldr r0, [r0] - adds r3, r0 -_0814E178: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0814E160 - adds r0, r3, 0 - ldr r1, _0814E1EC @ =1000000 - bl __udivsi3 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r0, _0814E1F0 @ =gStringVar2 - adds r1, r7, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0814E1F4 @ =gUnknown_846F4B8 - ldr r2, [sp, 0x34] - adds r0, r2, r0 - ldr r1, [r0] - ldr r0, _0814E1F8 @ =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0x2 - ldr r1, _0814E1F8 @ =gStringVar4 - movs r2, 0 - bl GetStringWidth - adds r2, r0, 0 - ldr r4, [sp, 0x30] - subs r2, r4, r2 - lsls r2, 24 - lsrs r2, 24 - ldr r1, [sp, 0x2C] - ldrb r0, [r1] - mov r4, r9 - mov r1, r8 - subs r3, r4, r1 - lsls r3, 1 - ldr r4, [sp, 0x18] - adds r3, r4, r3 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _0814E1FC @ =gUnknown_846E3DC - str r1, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _0814E1F8 @ =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized3 - b _0814E27E - .align 2, 0 -_0814E1E4: .4byte gStringVar1 -_0814E1E8: .4byte gUnknown_846E450 -_0814E1EC: .4byte 1000000 -_0814E1F0: .4byte gStringVar2 -_0814E1F4: .4byte gUnknown_846F4B8 -_0814E1F8: .4byte gStringVar4 -_0814E1FC: .4byte gUnknown_846E3DC -_0814E200: - mov r2, r8 - str r2, [sp, 0x1C] - mov r0, r8 - adds r4, r0, 0 - str r4, [sp, 0x20] - lsls r5, r0, 5 - ldr r1, [sp, 0xC] - adds r0, r1, r5 - adds r0, 0xA4 - ldrb r2, [r0] - cmp r2, 0x2B - bls _0814E21A - movs r2, 0 -_0814E21A: - lsls r1, r2, 3 - subs r1, r2 - lsls r1, 2 - ldr r0, _0814E294 @ =gBerries - adds r1, r0 - ldr r0, _0814E298 @ =gStringVar1 - bl StringCopy - ldr r0, _0814E29C @ =gUnknown_846F4B8 - ldr r1, [r0, 0x8] - ldr r0, _0814E2A0 @ =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0x2 - ldr r1, _0814E2A0 @ =gStringVar4 - movs r2, 0x1 - negs r2, r2 - bl GetStringWidth - adds r2, r0, 0 - ldr r4, [sp, 0x14] - subs r2, r4, r2 - subs r2, 0x4 - lsls r2, 24 - lsrs r2, 24 - ldr r1, [sp, 0x2C] - ldrb r0, [r1] - mov r1, r8 - lsls r4, r1, 3 - subs r3, r4, r1 - lsls r3, 1 - ldr r1, [sp, 0x18] - adds r3, r1, r3 - lsls r3, 24 - lsrs r3, 24 - ldr r1, _0814E2A4 @ =gUnknown_846E3DC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - ldr r1, _0814E2A0 @ =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x2 - bl AddTextPrinterParameterized3 - mov r9, r4 - mov r6, r8 - adds r6, 0xA2 - movs r2, 0x1 - add r2, r8 - mov r10, r2 -_0814E27E: - ldr r0, [sp, 0x1C] - ldr r4, [sp, 0xC] - ldrb r4, [r4, 0x8] - cmp r0, r4 - bne _0814E2B0 - ldr r0, _0814E2A8 @ =gStringVar3 - ldr r1, _0814E2AC @ =gUnknown_841D020 - bl StringCopy - b _0814E2B8 - .align 2, 0 -_0814E294: .4byte gBerries -_0814E298: .4byte gStringVar1 -_0814E29C: .4byte gUnknown_846F4B8 -_0814E2A0: .4byte gStringVar4 -_0814E2A4: .4byte gUnknown_846E3DC -_0814E2A8: .4byte gStringVar3 -_0814E2AC: .4byte gUnknown_841D020 -_0814E2B0: - ldr r0, _0814E31C @ =gStringVar3 - ldr r1, _0814E320 @ =gUnknown_841D02C - bl StringCopy -_0814E2B8: - ldr r4, _0814E31C @ =gStringVar3 - strb r6, [r4] - adds r1, r5, 0 - adds r1, 0x98 - ldr r0, [sp, 0xC] - adds r1, r0, r1 - movs r0, 0 - bl DynamicPlaceholderTextUtil_SetPlaceholderPtr - ldr r0, _0814E324 @ =gStringVar4 - adds r1, r4, 0 - bl DynamicPlaceholderTextUtil_ExpandPlaceholders - ldr r1, [sp, 0x2C] - ldrb r0, [r1] - mov r2, r9 - mov r4, r8 - subs r3, r2, r4 - lsls r3, 1 - ldr r1, [sp, 0x18] - adds r3, r1, r3 - lsls r3, 24 - lsrs r3, 24 - ldr r2, _0814E328 @ =gUnknown_846E3DC - str r2, [sp] - movs r4, 0 - str r4, [sp, 0x4] - ldr r1, _0814E324 @ =gStringVar4 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x4 - bl AddTextPrinterParameterized3 - mov r2, r10 - lsls r0, r2, 24 - lsrs r0, 24 - mov r8, r0 - ldr r4, [sp, 0xC] - ldrb r4, [r4, 0x9] - cmp r8, r4 - bcs _0814E30C - b _0814DFF0 -_0814E30C: - add sp, 0x38 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814E31C: .4byte gStringVar3 -_0814E320: .4byte gUnknown_841D02C -_0814E324: .4byte gStringVar4 -_0814E328: .4byte gUnknown_846E3DC - thumb_func_end sub_814DFA4 - - thumb_func_start sub_814E32C -sub_814E32C: @ 814E32C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r8, r0 - movs r0, 0 - mov r10, r0 - movs r6, 0 - movs r1, 0 - str r1, [sp, 0xC] - mov r2, r8 - adds r2, 0x68 - str r2, [sp, 0x10] - movs r4, 0xDD - lsls r4, 1 - add r4, r8 - mov r9, r4 - ldrb r0, [r4] - movs r1, 0x4 - bl GetWindowAttribute - lsls r0, 27 - movs r1, 0xD6 - lsls r1, 24 - adds r0, r1 - lsrs r7, r0, 24 - movs r0, 0x9C - lsls r0, 1 - add r0, r8 - ldr r2, [sp, 0x10] - ldrh r1, [r2, 0x4] - bl sub_814DEC0 - ldrb r0, [r4] - ldr r4, _0814E560 @ =gUnknown_846E3DC - str r4, [sp] - str r6, [sp, 0x4] - ldr r1, _0814E564 @ =gUnknown_841D050 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, _0814E568 @ =gUnknown_841D088 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r1, 0xBE - subs r0, r1, r0 - lsls r0, 24 - lsrs r6, r0, 24 - mov r2, r9 - ldrb r0, [r2] - ldr r1, _0814E560 @ =gUnknown_846E3DC - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - adds r0, r6, 0 - subs r0, 0x20 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x9F - lsls r0, 1 - add r0, r8 - movs r4, 0 - ldrsh r1, [r0, r4] - ldr r0, _0814E56C @ =gStringVar1 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r0, _0814E570 @ =gStringVar2 - movs r1, 0xA0 - lsls r1, 1 - add r1, r8 - movs r2, 0 - ldrsh r1, [r1, r2] - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r5, _0814E574 @ =gStringVar4 - ldr r1, _0814E578 @ =gUnknown_841D080 - adds r0, r5, 0 - bl StringExpandPlaceholders - mov r4, r9 - ldrb r0, [r4] - ldr r1, _0814E560 @ =gUnknown_846E3DC - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, _0814E57C @ =gUnknown_841D078 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - subs r1, r6, 0x3 - subs r1, r0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r1, r9 - ldrb r0, [r1] - ldr r2, _0814E560 @ =gUnknown_846E3DC - str r2, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - adds r0, r6, 0 - subs r0, 0x9 - lsls r0, 24 - lsrs r6, r0, 24 - movs r0, 0x9E - lsls r0, 1 - add r0, r8 - movs r2, 0 - ldrsh r1, [r0, r2] - ldr r0, _0814E56C @ =gStringVar1 - movs r2, 0x2 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r1, _0814E580 @ =gUnknown_841D074 - adds r0, r5, 0 - bl StringExpandPlaceholders - mov r4, r9 - ldrb r0, [r4] - ldr r1, _0814E560 @ =gUnknown_846E3DC - str r1, [sp] - mov r2, r10 - str r2, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - adds r0, r7, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r4] - ldr r4, _0814E560 @ =gUnknown_846E3DC - str r4, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r1, _0814E584 @ =gUnknown_841D058 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r4, _0814E588 @ =gUnknown_841D098 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r2, 0xBE - subs r0, r2, r0 - lsls r0, 24 - str r0, [sp, 0x18] - lsrs r6, r0, 24 - mov r1, r9 - ldrb r0, [r1] - ldr r2, _0814E560 @ =gUnknown_846E3DC - str r2, [sp] - mov r1, r10 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x3 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - mov r4, r8 - ldrb r2, [r4, 0x16] - ldrh r0, [r4, 0x16] - mov r12, r0 - movs r1, 0x7 - mov r9, r1 - movs r5, 0x1 - ldr r3, _0814E58C @ =gUnknown_846E450 -_0814E4CC: - mov r4, r9 - mov r0, r10 - subs r1, r4, r0 - adds r0, r2, 0 - asrs r0, r1 - ands r0, r5 - cmp r0, 0 - beq _0814E4EA - mov r1, r10 - lsls r0, r1, 2 - adds r0, r3 - ldr r0, [r0] - ldr r4, [sp, 0xC] - adds r4, r0 - str r4, [sp, 0xC] -_0814E4EA: - mov r0, r10 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - cmp r0, 0x7 - bls _0814E4CC - ldr r0, _0814E56C @ =gStringVar1 - mov r2, r12 - lsrs r1, r2, 8 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0814E570 @ =gStringVar2 - ldr r1, _0814E590 @ =1000000 - ldr r0, [sp, 0xC] - bl __udivsi3 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - ldr r4, _0814E574 @ =gStringVar4 - ldr r1, _0814E594 @ =gUnknown_841D090 - adds r0, r4, 0 - bl StringExpandPlaceholders - adds r0, r6, 0 - subs r0, 0x26 - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r0, 0x25 - ldrb r1, [r0] - movs r0, 0x2 - ands r0, r1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - beq _0814E59C - movs r0, 0xDD - lsls r0, 1 - add r0, r8 - ldrb r0, [r0] - ldr r1, _0814E598 @ =gUnknown_846E3EB - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - b _0814E5B6 - .align 2, 0 -_0814E560: .4byte gUnknown_846E3DC -_0814E564: .4byte gUnknown_841D050 -_0814E568: .4byte gUnknown_841D088 -_0814E56C: .4byte gStringVar1 -_0814E570: .4byte gStringVar2 -_0814E574: .4byte gStringVar4 -_0814E578: .4byte gUnknown_841D080 -_0814E57C: .4byte gUnknown_841D078 -_0814E580: .4byte gUnknown_841D074 -_0814E584: .4byte gUnknown_841D058 -_0814E588: .4byte gUnknown_841D098 -_0814E58C: .4byte gUnknown_846E450 -_0814E590: .4byte 1000000 -_0814E594: .4byte gUnknown_841D090 -_0814E598: .4byte gUnknown_846E3EB -_0814E59C: - movs r0, 0xDD - lsls r0, 1 - add r0, r8 - ldrb r0, [r0] - ldr r1, _0814E630 @ =gUnknown_846E3DC - str r1, [sp] - str r2, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 -_0814E5B6: - adds r0, r7, 0 - adds r0, 0xE - lsls r0, 24 - lsrs r7, r0, 24 - movs r4, 0xDD - lsls r4, 1 - add r8, r4 - mov r1, r8 - ldrb r0, [r1] - ldr r2, _0814E630 @ =gUnknown_846E3DC - mov r9, r2 - str r2, [sp] - movs r5, 0 - str r5, [sp, 0x4] - ldr r1, _0814E634 @ =gUnknown_841D068 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x2 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - ldr r0, _0814E638 @ =gStringVar1 - ldr r4, [sp, 0x10] - ldrh r1, [r4, 0x8] - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - ldr r4, _0814E63C @ =gStringVar4 - ldr r1, _0814E640 @ =gUnknown_841D0A4 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - movs r1, 0xBE - subs r1, r0 - lsls r1, 24 - lsrs r6, r1, 24 - mov r1, r8 - ldrb r0, [r1] - mov r2, r9 - str r2, [sp] - str r5, [sp, 0x4] - str r4, [sp, 0x8] - movs r1, 0x2 - adds r2, r6, 0 - adds r3, r7, 0 - bl AddTextPrinterParameterized3 - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814E630: .4byte gUnknown_846E3DC -_0814E634: .4byte gUnknown_841D068 -_0814E638: .4byte gStringVar1 -_0814E63C: .4byte gStringVar4 -_0814E640: .4byte gUnknown_841D0A4 - thumb_func_end sub_814E32C - - thumb_func_start sub_814E644 -sub_814E644: @ 814E644 - push {r4-r6,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r6, r1, 0 - adds r0, r6, 0 - adds r0, 0x80 - ldrb r0, [r0] - cmp r0, 0x5 - bls _0814E658 - b _0814E7F8 -_0814E658: - lsls r0, 2 - ldr r1, _0814E664 @ =_0814E668 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0814E664: .4byte _0814E668 - .align 2, 0 -_0814E668: - .4byte _0814E680 - .4byte _0814E6CC - .4byte _0814E6E0 - .4byte _0814E704 - .4byte _0814E7D8 - .4byte _0814E7E0 -_0814E680: - ldrb r0, [r4, 0x9] - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r6, 0 - bl sub_814EB04 - ldrh r0, [r4, 0x12] - lsls r0, 3 - ldr r2, _0814E6A8 @ =gUnknown_846E3CC + 4 - mov r1, sp - adds r0, r2 - ldm r0!, {r2,r3} - stm r1!, {r2,r3} - ldrh r0, [r4, 0x12] - cmp r0, 0xD - bne _0814E6B0 - ldr r0, _0814E6AC @ =gUnknown_846E448 - adds r0, 0x4 - b _0814E6B2 - .align 2, 0 -_0814E6A8: .4byte gUnknown_846E3CC + 4 -_0814E6AC: .4byte gUnknown_846E448 -_0814E6B0: - ldr r0, _0814E6C8 @ =gUnknown_846E448 -_0814E6B2: - adds r0, r5, r0 - ldrb r1, [r0] - mov r0, sp - strb r1, [r0, 0x4] - mov r0, sp - bl AddWindow - adds r1, r6, 0 - adds r1, 0x82 - strb r0, [r1] - b _0814E7F8 - .align 2, 0 -_0814E6C8: .4byte gUnknown_846E448 -_0814E6CC: - adds r4, r6, 0 - adds r4, 0x82 - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - b _0814E7F8 -_0814E6E0: - adds r5, r6, 0 - adds r5, 0x82 - ldrb r0, [r5] - ldr r4, _0814E700 @ =0x0000021d - adds r1, r4, 0 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - ldrb r0, [r5] - movs r1, 0 - adds r2, r4, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - b _0814E7F8 - .align 2, 0 -_0814E700: .4byte 0x0000021d -_0814E704: - ldrb r0, [r4, 0x9] - subs r0, 0x2 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4, 0x12] - cmp r0, 0xC - beq _0814E764 - cmp r0, 0xC - bgt _0814E71C - cmp r0, 0xB - beq _0814E722 - b _0814E7F8 -_0814E71C: - cmp r0, 0xD - beq _0814E7B4 - b _0814E7F8 -_0814E722: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r3, _0814E75C @ =gUnknown_841D0A8 - movs r1, 0x16 - movs r2, 0x3 - bl sub_814DF44 - ldr r0, _0814E760 @ =gUnknown_846E448 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, 3 - ldrb r1, [r4, 0x9] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0 - movs r2, 0xB0 - bl sub_814DFA4 - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0x5 - b _0814E800 - .align 2, 0 -_0814E75C: .4byte gUnknown_841D0A8 -_0814E760: .4byte gUnknown_846E448 -_0814E764: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r2, _0814E7AC @ =gUnknown_846F4B8 - adds r1, r4, 0 - adds r1, 0x8F - ldrb r1, [r1] - adds r1, 0x3 - lsls r1, 2 - adds r1, r2 - ldr r3, [r1] - movs r1, 0x16 - movs r2, 0x4 - bl sub_814DF44 - ldr r0, _0814E7B0 @ =gUnknown_846E448 - adds r0, r5, r0 - ldrb r3, [r0] - lsls r3, 3 - ldrb r1, [r4, 0x9] - lsls r0, r1, 3 - subs r0, r1 - lsls r0, 1 - subs r3, r0 - lsls r3, 24 - lsrs r3, 24 - adds r0, r4, 0 - movs r1, 0x1 - movs r2, 0xB0 - bl sub_814DFA4 - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0x5 - b _0814E800 - .align 2, 0 -_0814E7AC: .4byte gUnknown_846F4B8 -_0814E7B0: .4byte gUnknown_846E448 -_0814E7B4: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - ldr r3, _0814E7D4 @ =gUnknown_841D0C0 - movs r1, 0x18 - movs r2, 0x3 - bl sub_814DF44 - adds r0, r4, 0 - movs r1, 0x2 - movs r2, 0xC0 - movs r3, 0x10 - bl sub_814DFA4 - b _0814E7F8 - .align 2, 0 -_0814E7D4: .4byte gUnknown_841D0C0 -_0814E7D8: - adds r0, r4, 0 - bl sub_814E32C - b _0814E7F8 -_0814E7E0: - adds r0, r6, 0 - adds r0, 0x82 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r1, r6, 0 - adds r1, 0x80 - movs r0, 0 - strb r0, [r1] - movs r0, 0x1 - b _0814E804 -_0814E7F8: - adds r1, r6, 0 - adds r1, 0x80 - ldrb r0, [r1] - adds r0, 0x1 -_0814E800: - strb r0, [r1] - movs r0, 0 -_0814E804: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_814E644 - - thumb_func_start sub_814E80C -sub_814E80C: @ 814E80C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0xDD - lsls r0, 1 - adds r5, r4, r0 - ldrb r0, [r5] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r5] - bl RemoveWindow - adds r0, r4, 0 - bl sub_814EBB0 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_814E80C - - thumb_func_start sub_814E830 -sub_814E830: @ 814E830 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x14 - lsls r0, 24 - lsrs r4, r0, 24 - movs r0, 0 - mov r9, r0 - mov r10, r0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, _0814E864 @ =gTasks+0x8 - adds r7, r0, r1 - movs r1, 0 - ldrsh r0, [r7, r1] - cmp r0, 0x1 - beq _0814E8B0 - cmp r0, 0x1 - bgt _0814E868 - cmp r0, 0 - beq _0814E876 - b _0814EA66 - .align 2, 0 -_0814E864: .4byte gTasks+0x8 -_0814E868: - cmp r0, 0x2 - bne _0814E86E - b _0814EA2C -_0814E86E: - cmp r0, 0x3 - bne _0814E874 - b _0814EA40 -_0814E874: - b _0814EA66 -_0814E876: - ldr r0, _0814E8A8 @ =gUnknown_846E3F0 - bl AddWindow - strh r0, [r7, 0x2] - lsls r0, 24 - lsrs r0, 24 - bl PutWindowTilemap - ldrb r0, [r7, 0x2] - movs r1, 0 - bl FillWindowPixelBuffer - ldrb r0, [r7, 0x2] - ldr r4, _0814E8AC @ =0x0000021d - adds r1, r4, 0 - movs r2, 0xD0 - bl TextWindow_SetStdFrame0_WithPal - ldrb r0, [r7, 0x2] - movs r1, 0 - adds r2, r4, 0 - movs r3, 0xD - bl DrawStdFrameWithCustomTileAndPalette - b _0814EA66 - .align 2, 0 -_0814E8A8: .4byte gUnknown_846E3F0 -_0814E8AC: .4byte 0x0000021d -_0814E8B0: - ldr r5, _0814E9FC @ =gUnknown_841D118 - movs r0, 0x1 - negs r0, r0 - mov r8, r0 - movs r0, 0x2 - adds r1, r5, 0 - mov r2, r8 - bl GetStringWidth - lsrs r0, 1 - movs r4, 0x60 - subs r0, r4, r0 - lsls r0, 24 - lsrs r2, r0, 24 - ldrb r0, [r7, 0x2] - ldr r6, _0814EA00 @ =gUnknown_846E3E5 - str r6, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x2 - bl AddTextPrinterParameterized3 - ldr r5, _0814EA04 @ =gUnknown_841D124 - movs r0, 0x2 - adds r1, r5, 0 - mov r2, r8 - bl GetStringWidth - lsrs r0, 1 - subs r4, r0 - lsls r4, 24 - lsrs r2, r4, 24 - ldrb r0, [r7, 0x2] - str r6, [sp] - mov r1, r9 - str r1, [sp, 0x4] - str r5, [sp, 0x8] - movs r1, 0x2 - movs r3, 0x12 - bl AddTextPrinterParameterized3 - movs r0, 0x2A - str r0, [sp, 0xC] - ldr r1, _0814EA08 @ =gStringVar4 - mov r8, r1 -_0814E90E: - mov r1, r9 - adds r1, 0x2 - ldr r0, _0814EA0C @ =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - mov r0, r8 - ldr r1, _0814EA10 @ =gUnknown_841D13C - bl StringExpandPlaceholders - ldrb r0, [r7, 0x2] - ldr r1, _0814EA14 @ =gUnknown_846E3DC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x2 - movs r2, 0x4 - ldr r3, [sp, 0xC] - bl AddTextPrinterParameterized3 - movs r3, 0 - mov r0, r9 - lsls r4, r0, 1 - ldr r1, [sp, 0xC] - adds r1, 0xE - str r1, [sp, 0x10] - movs r0, 0x1 - add r9, r0 - adds r0, r4, r7 - ldrh r0, [r0, 0x4] - movs r2, 0xFF - ands r2, r0 - movs r6, 0x1 - ldr r5, _0814EA18 @ =gUnknown_846E450 -_0814E958: - movs r0, 0x7 - subs r1, r0, r3 - adds r0, r2, 0 - asrs r0, r1 - ands r0, r6 - cmp r0, 0 - beq _0814E96E - lsls r0, r3, 2 - adds r0, r5 - ldr r0, [r0] - add r10, r0 -_0814E96E: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x7 - bls _0814E958 - adds r0, r4, r7 - ldrh r1, [r0, 0x4] - lsrs r1, 8 - ldr r0, _0814EA0C @ =gStringVar1 - movs r2, 0x1 - movs r3, 0x3 - bl ConvertIntToDecimalStringN - mov r0, r10 - ldr r1, _0814EA1C @ =1000000 - bl __udivsi3 - adds r1, r0, 0 - ldr r0, _0814EA20 @ =gStringVar2 - movs r2, 0x2 - movs r3, 0x2 - bl ConvertIntToDecimalStringN - mov r0, r8 - ldr r1, _0814EA24 @ =gUnknown_841D090 - bl StringExpandPlaceholders - movs r1, 0 - strb r1, [r0] - adds r0, 0x1 - ldr r1, _0814EA28 @ =gUnknown_841D098 - bl StringCopy - movs r0, 0x3 - mov r1, r8 - movs r2, 0 - bl GetStringWidth - movs r1, 0xC0 - subs r1, r0 - lsls r1, 24 - lsrs r2, r1, 24 - ldrb r0, [r7, 0x2] - ldr r1, _0814EA14 @ =gUnknown_846E3DC - str r1, [sp] - movs r1, 0 - str r1, [sp, 0x4] - mov r1, r8 - str r1, [sp, 0x8] - movs r1, 0x3 - ldr r3, [sp, 0xC] - bl AddTextPrinterParameterized3 - ldr r1, [sp, 0x10] - lsls r0, r1, 24 - lsrs r0, 24 - str r0, [sp, 0xC] - movs r0, 0 - mov r10, r0 - mov r1, r9 - lsls r0, r1, 24 - lsrs r0, 24 - mov r9, r0 - cmp r0, 0x3 - bls _0814E90E - ldrb r0, [r7, 0x2] - movs r1, 0x3 - bl CopyWindowToVram - b _0814EA66 - .align 2, 0 -_0814E9FC: .4byte gUnknown_841D118 -_0814EA00: .4byte gUnknown_846E3E5 -_0814EA04: .4byte gUnknown_841D124 -_0814EA08: .4byte gStringVar4 -_0814EA0C: .4byte gStringVar1 -_0814EA10: .4byte gUnknown_841D13C -_0814EA14: .4byte gUnknown_846E3DC -_0814EA18: .4byte gUnknown_846E450 -_0814EA1C: .4byte 1000000 -_0814EA20: .4byte gStringVar2 -_0814EA24: .4byte gUnknown_841D090 -_0814EA28: .4byte gUnknown_841D098 -_0814EA2C: - ldr r0, _0814EA3C @ =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _0814EA66 - b _0814EA6C - .align 2, 0 -_0814EA3C: .4byte gMain -_0814EA40: - ldrb r0, [r7, 0x2] - movs r1, 0x1 - bl ClearStdWindowAndFrameToTransparent - ldrb r0, [r7, 0x2] - bl ClearWindowTilemap - ldrb r0, [r7, 0x2] - bl RemoveWindow - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts - bl ScriptContext2_Disable - mov r0, r9 - b _0814EA6A -_0814EA66: - ldrh r0, [r7] - adds r0, 0x1 -_0814EA6A: - strh r0, [r7] -_0814EA6C: - add sp, 0x14 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_814E830 - - thumb_func_start ShowBerryCrushRankings -ShowBerryCrushRankings: @ 814EA7C - push {lr} - bl ScriptContext2_Enable - ldr r0, _0814EAC4 @ =sub_814E830 - movs r1, 0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _0814EAC8 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _0814EACC @ =gSaveBlock2Ptr - ldr r2, [r0] - movs r3, 0xAF - lsls r3, 4 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0xC] - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0xE] - adds r3, 0x2 - adds r0, r2, r3 - ldrh r0, [r0] - strh r0, [r1, 0x10] - ldr r0, _0814EAD0 @ =0x00000af6 - adds r2, r0 - ldrh r0, [r2] - strh r0, [r1, 0x12] - pop {r0} - bx r0 - .align 2, 0 -_0814EAC4: .4byte sub_814E830 -_0814EAC8: .4byte gTasks -_0814EACC: .4byte gSaveBlock2Ptr -_0814EAD0: .4byte 0x00000af6 - thumb_func_end ShowBerryCrushRankings - - thumb_func_start sub_814EAD4 -sub_814EAD4: @ 814EAD4 - push {r4,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r1, 16 - bl sub_814DEC0 - movs r0, 0x4 - ldrsh r1, [r4, r0] - movs r0, 0 - bl DigitObjUtil_PrintNumOn - movs r0, 0x6 - ldrsh r1, [r4, r0] - movs r0, 0x1 - bl DigitObjUtil_PrintNumOn - movs r0, 0x8 - ldrsh r1, [r4, r0] - movs r0, 0x2 - bl DigitObjUtil_PrintNumOn - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_814EAD4 - - thumb_func_start sub_814EB04 -sub_814EB04: @ 814EB04 - push {lr} - ldr r2, [r0, 0x78] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2] - ldr r1, [r0, 0x7C] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r3 - strb r0, [r1] - movs r0, 0x2 - movs r1, 0x1 - bl DigitObjUtil_HideOrShow - movs r0, 0x1 - movs r1, 0x1 - bl DigitObjUtil_HideOrShow - movs r0, 0 - movs r1, 0x1 - bl DigitObjUtil_HideOrShow - pop {r0} - bx r0 - thumb_func_end sub_814EB04 - - thumb_func_start sub_814EB38 -sub_814EB38: @ 814EB38 - push {r4-r7,lr} - adds r5, r0, 0 - movs r6, 0 - ldrb r0, [r5, 0x9] - cmp r6, r0 - bcs _0814EB98 - ldr r7, _0814EBA0 @ =gUnknown_846F280 -_0814EB46: - lsls r0, r6, 2 - movs r1, 0xA2 - lsls r1, 1 - adds r2, r5, r1 - adds r2, r0 - ldrb r1, [r5, 0x9] - subs r1, 0x2 - lsls r0, r1, 2 - adds r0, r1 - adds r0, r6, r0 - adds r0, r7 - ldrb r1, [r0] - lsls r0, r1, 1 - adds r0, r1 - lsls r0, 2 - ldr r1, _0814EBA4 @ =gUnknown_846F294 - adds r0, r1 - str r0, [r2] - ldrb r0, [r0] - lsls r0, 3 - ldr r1, _0814EBA8 @ =gUnknown_846E3F8 - adds r0, r1 - bl AddWindow - ldr r1, _0814EBAC @ =0x000001bb - adds r4, r5, r1 - adds r4, r6 - strb r0, [r4] - ldrb r0, [r4] - bl PutWindowTilemap - ldrb r0, [r4] - movs r1, 0 - bl FillWindowPixelBuffer - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - ldrb r0, [r5, 0x9] - cmp r6, r0 - bcc _0814EB46 -_0814EB98: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814EBA0: .4byte gUnknown_846F280 -_0814EBA4: .4byte gUnknown_846F294 -_0814EBA8: .4byte gUnknown_846E3F8 -_0814EBAC: .4byte 0x000001bb - thumb_func_end sub_814EB38 - - thumb_func_start sub_814EBB0 -sub_814EBB0: @ 814EBB0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r6, r0, 0 - movs r7, 0 - ldrb r0, [r6, 0x9] - cmp r7, r0 - bcs _0814EC66 - movs r1, 0 - mov r8, r1 -_0814EBC6: - ldr r1, _0814EC10 @ =0x000001bb - adds r0, r6, r1 - adds r5, r0, r7 - ldrb r0, [r5] - bl PutWindowTilemap - ldrb r0, [r6, 0x8] - cmp r7, r0 - bne _0814EC18 - lsls r4, r7, 5 - adds r4, 0x98 - adds r4, r6, r4 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - lsrs r0, 1 - movs r2, 0x24 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _0814EC14 @ =gUnknown_846E3DF - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized4 - b _0814EC4C - .align 2, 0 -_0814EC10: .4byte 0x000001bb -_0814EC14: .4byte gUnknown_846E3DF -_0814EC18: - lsls r4, r7, 5 - adds r4, 0x98 - adds r4, r6, r4 - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0 - bl GetStringWidth - lsrs r0, 1 - movs r2, 0x24 - subs r2, r0 - lsls r2, 24 - lsrs r2, 24 - ldrb r0, [r5] - mov r1, r8 - str r1, [sp] - str r1, [sp, 0x4] - ldr r1, _0814EC78 @ =gUnknown_846E3E2 - str r1, [sp, 0x8] - mov r1, r8 - str r1, [sp, 0xC] - str r4, [sp, 0x10] - movs r1, 0x2 - movs r3, 0x1 - bl AddTextPrinterParameterized4 -_0814EC4C: - ldr r1, _0814EC7C @ =0x000001bb - adds r0, r6, r1 - adds r0, r7 - ldrb r0, [r0] - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrb r0, [r6, 0x9] - cmp r7, r0 - bcc _0814EBC6 -_0814EC66: - movs r0, 0 - bl CopyBgTilemapBufferToVram - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814EC78: .4byte gUnknown_846E3E2 -_0814EC7C: .4byte 0x000001bb - thumb_func_end sub_814EBB0 - - thumb_func_start sub_814EC80 -sub_814EC80: @ 814EC80 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r5, 0 - ldr r0, _0814EC94 @ =gUnknown_8EB0ADC - ldr r4, _0814EC98 @ =gDecompressionBuffer - adds r1, r4, 0 - bl LZ77UnCompWram - b _0814ECCA - .align 2, 0 -_0814EC94: .4byte gUnknown_8EB0ADC -_0814EC98: .4byte gDecompressionBuffer -_0814EC9C: - lsls r1, r5, 2 - movs r2, 0xA2 - lsls r2, 1 - adds r0, r6, r2 - adds r0, r1 - ldr r3, [r0] - ldrb r0, [r3] - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r4, r1 - ldrb r2, [r3, 0x1] - ldrb r3, [r3, 0x2] - movs r0, 0xA - str r0, [sp] - movs r0, 0x2 - str r0, [sp, 0x4] - movs r0, 0x3 - bl CopyToBgTilemapBufferRect - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 -_0814ECCA: - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _0814EC9C - movs r0, 0x3 - bl CopyBgTilemapBufferToVram - add sp, 0x8 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814EC80 - - thumb_func_start sub_814ECE0 -sub_814ECE0: @ 814ECE0 - push {r4-r7,lr} - adds r6, r0, 0 - movs r5, 0 - ldr r0, _0814EEE0 @ =0x0000ff98 - strh r0, [r6, 0x2A] - strh r5, [r6, 0x2C] - ldr r1, _0814EEE4 @ =gSpriteCoordOffsetX - strh r5, [r1] - ldr r1, _0814EEE8 @ =gSpriteCoordOffsetY - strh r0, [r1] - ldr r4, _0814EEEC @ =gUnknown_846F2F8 -_0814ECF6: - lsls r0, r5, 3 - adds r0, r4 - bl LoadCompressedSpriteSheet - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3 - bls _0814ECF6 - ldr r0, _0814EEF0 @ =gUnknown_846F320 - bl LoadSpritePalettes - ldr r0, _0814EEF4 @ =gUnknown_846F410 - movs r1, 0x78 - movs r2, 0x58 - movs r3, 0x5 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xAC - lsls r0, 1 - adds r3, r6, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, _0814EEF8 @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0x2C - ldrb r0, [r1] - movs r2, 0x40 - orrs r0, r2 - strb r0, [r1] - movs r5, 0 - ldrb r1, [r6, 0x9] - cmp r5, r1 - bcs _0814EDD2 - movs r7, 0x4 -_0814ED5A: - lsls r4, r5, 2 - movs r3, 0xA2 - lsls r3, 1 - adds r0, r6, r3 - adds r0, r4 - ldr r0, [r0] - ldrh r1, [r0, 0x4] - adds r1, 0x78 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r0, 0x6] - adds r2, 0x20 - lsls r2, 16 - asrs r2, 16 - ldr r0, _0814EEFC @ =gUnknown_846F428 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - movs r0, 0xAE - lsls r0, 1 - adds r3, r6, r0 - adds r3, r4 - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r0, _0814EEF8 @ =gSprites - adds r1, r0 - str r1, [r3] - ldrb r0, [r1, 0x5] - movs r4, 0xD - negs r4, r4 - adds r2, r4, 0 - ands r0, r2 - orrs r0, r7 - strb r0, [r1, 0x5] - ldr r1, [r3] - adds r1, 0x3E - ldrb r0, [r1] - orrs r0, r7 - strb r0, [r1] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrb r0, [r6, 0x9] - cmp r5, r0 - bcc _0814ED5A -_0814EDD2: - movs r5, 0 - ldr r4, _0814EF00 @ =gUnknown_846F2D6 - adds r7, r4, 0x1 -_0814EDD8: - lsls r2, r5, 1 - adds r0, r2, r4 - movs r1, 0 - ldrsb r1, [r0, r1] - adds r1, 0x78 - adds r2, r7 - ldrb r2, [r2] - lsls r2, 24 - asrs r2, 24 - adds r2, 0x88 - ldr r0, _0814EF04 @ =gUnknown_846F440 - movs r3, 0x6 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r5, 2 - movs r1, 0xC2 - lsls r1, 1 - adds r3, r6, r1 - adds r3, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, _0814EEF8 @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r2, 0xC - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r3] - strh r5, [r0, 0x2E] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0xA - bls _0814EDD8 - movs r5, 0 -_0814EE3E: - lsls r1, r5, 1 - adds r1, r5 - lsls r1, 19 - movs r3, 0xB0 - lsls r3, 16 - adds r1, r3 - asrs r1, 16 - ldr r0, _0814EF08 @ =gUnknown_846F458 - movs r2, 0x8 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r5, 2 - movs r4, 0xD8 - lsls r4, 1 - adds r3, r6, r4 - adds r3, r0 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - ldr r1, _0814EEF8 @ =gSprites - adds r0, r1 - str r0, [r3] - ldrb r1, [r0, 0x5] - movs r4, 0xD - negs r4, r4 - adds r2, r4, 0 - ands r1, r2 - strb r1, [r0, 0x5] - ldr r2, [r3] - adds r2, 0x3E - ldrb r0, [r2] - adds r4, 0x8 - adds r1, r4, 0 - ands r0, r1 - strb r0, [r2] - ldr r2, [r3] - adds r2, 0x2C - ldrb r0, [r2] - movs r3, 0x41 - negs r3, r3 - adds r1, r3, 0 - ands r0, r1 - strb r0, [r2] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x1 - bls _0814EE3E - ldr r4, _0814EF0C @ =gUnknown_846F488 - movs r0, 0 - movs r1, 0 - adds r2, r4, 0 - bl DigitObjUtil_CreatePrinter - adds r2, r4, 0 - adds r2, 0x10 - movs r0, 0x1 - movs r1, 0 - bl DigitObjUtil_CreatePrinter - adds r4, 0x20 - movs r0, 0x2 - movs r1, 0 - adds r2, r4, 0 - bl DigitObjUtil_CreatePrinter - ldrh r0, [r6, 0x12] - cmp r0, 0x1 - bne _0814EED8 - movs r4, 0x9C - lsls r4, 1 - adds r0, r6, r4 - bl sub_814EB04 -_0814EED8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814EEE0: .4byte 0x0000ff98 -_0814EEE4: .4byte gSpriteCoordOffsetX -_0814EEE8: .4byte gSpriteCoordOffsetY -_0814EEEC: .4byte gUnknown_846F2F8 -_0814EEF0: .4byte gUnknown_846F320 -_0814EEF4: .4byte gUnknown_846F410 -_0814EEF8: .4byte gSprites -_0814EEFC: .4byte gUnknown_846F428 -_0814EF00: .4byte gUnknown_846F2D6 -_0814EF04: .4byte gUnknown_846F440 -_0814EF08: .4byte gUnknown_846F458 -_0814EF0C: .4byte gUnknown_846F488 - thumb_func_end sub_814ECE0 - - thumb_func_start sub_814EF10 -sub_814EF10: @ 814EF10 - push {r4-r6,lr} - adds r5, r0, 0 - movs r4, 0 - movs r0, 0x4 - bl FreeSpriteTilesByTag - movs r0, 0x3 - bl FreeSpriteTilesByTag - movs r0, 0x2 - bl FreeSpriteTilesByTag - movs r0, 0x1 - bl FreeSpriteTilesByTag - movs r0, 0x4 - bl FreeSpritePaletteByTag - movs r0, 0x2 - bl FreeSpritePaletteByTag - movs r0, 0x1 - bl FreeSpritePaletteByTag - movs r0, 0xD8 - lsls r0, 1 - adds r6, r5, r0 -_0814EF46: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bls _0814EF46 - movs r0, 0x2 - bl DigitObjUtil_DeletePrinter - movs r0, 0x1 - bl DigitObjUtil_DeletePrinter - movs r0, 0 - bl DigitObjUtil_DeletePrinter - movs r4, 0 - movs r1, 0xC2 - lsls r1, 1 - adds r6, r5, r1 -_0814EF74: - lsls r0, r4, 2 - adds r0, r6, r0 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0xA - bls _0814EF74 - movs r4, 0 - ldrb r2, [r5, 0x9] - cmp r4, r2 - bcs _0814EFAC -_0814EF90: - lsls r1, r4, 2 - movs r2, 0xAE - lsls r2, 1 - adds r0, r5, r2 - adds r0, r1 - ldr r0, [r0] - bl DestroySprite - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrb r0, [r5, 0x9] - cmp r4, r0 - bcc _0814EF90 -_0814EFAC: - movs r1, 0xAC - lsls r1, 1 - adds r0, r5, r1 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0814EFC8 - adds r0, r2, 0 - bl DestroySprite -_0814EFC8: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_814EF10 - - thumb_func_start sub_814EFD0 -sub_814EFD0: @ 814EFD0 - push {lr} - adds r3, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0814EFF6 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] -_0814EFF6: - pop {r0} - bx r0 - thumb_func_end sub_814EFD0 - - thumb_func_start sub_814EFFC -sub_814EFFC: @ 814EFFC - push {r4,r5,lr} - adds r3, r0, 0 - movs r1, 0 - ldr r5, _0814F040 @ =SpriteCallbackDummy - adds r2, r3, 0 - adds r2, 0x2E - movs r4, 0 -_0814F00A: - lsls r0, r1, 1 - adds r0, r2, r0 - strh r4, [r0] - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x7 - bls _0814F00A - movs r0, 0 - strh r0, [r3, 0x24] - strh r0, [r3, 0x26] - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - str r5, [r3, 0x1C] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0814F040: .4byte SpriteCallbackDummy - thumb_func_end sub_814EFFC - - thumb_func_start sub_814F044 -sub_814F044: @ 814F044 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r5, 0 - adds r4, 0x2E - ldrh r0, [r4, 0x4] - ldrh r1, [r4, 0x2] - adds r0, r1 - strh r0, [r4, 0x2] - lsls r0, 16 - asrs r0, 24 - ldrh r2, [r5, 0x26] - adds r0, r2 - strh r0, [r5, 0x26] - movs r1, 0xE - ldrsh r0, [r4, r1] - movs r6, 0x80 - lsls r6, 8 - ands r0, r6 - cmp r0, 0 - beq _0814F0AA - ldrh r0, [r4, 0x6] - ldrh r2, [r5, 0x2E] - adds r0, r2 - strh r0, [r5, 0x2E] - ldrh r0, [r4, 0xA] - ldrh r1, [r4, 0x8] - adds r0, r1 - strh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - movs r2, 0xC - ldrsh r1, [r4, r2] - bl Sin - strh r0, [r5, 0x24] - movs r1, 0xE - ldrsh r0, [r4, r1] - ands r0, r6 - cmp r0, 0 - beq _0814F0AA - ldrh r0, [r4, 0x8] - lsls r0, 16 - asrs r0, 23 - cmp r0, 0x7E - ble _0814F0AA - movs r0, 0 - strh r0, [r5, 0x24] - ldrh r1, [r4, 0xE] - ldr r0, _0814F0D0 @ =0x00007fff - ands r0, r1 - strh r0, [r4, 0xE] -_0814F0AA: - ldrh r0, [r4] - lsls r0, 16 - asrs r0, 23 - strh r0, [r5, 0x20] - movs r2, 0x22 - ldrsh r1, [r5, r2] - movs r2, 0x26 - ldrsh r0, [r5, r2] - adds r1, r0 - ldrh r2, [r4, 0xE] - ldr r0, _0814F0D0 @ =0x00007fff - ands r0, r2 - cmp r1, r0 - ble _0814F0CA - ldr r0, _0814F0D4 @ =sub_814EFFC - str r0, [r5, 0x1C] -_0814F0CA: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0814F0D0: .4byte 0x00007fff -_0814F0D4: .4byte sub_814EFFC - thumb_func_end sub_814F044 - - thumb_func_start sub_814F0D8 -sub_814F0D8: @ 814F0D8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r7, r6, 0 - adds r7, 0x2E - movs r0, 0 - mov r8, r0 - movs r2, 0xA0 - lsls r2, 2 - strh r2, [r7, 0x2] - movs r0, 0x20 - strh r0, [r7, 0x4] - movs r1, 0xA8 - strh r1, [r7, 0xE] - movs r0, 0x24 - ldrsh r4, [r6, r0] - lsls r4, 23 - lsrs r4, 16 - ldrh r0, [r6, 0x22] - subs r1, r0 - lsls r1, 23 - asrs r1, 16 - adds r2, 0x20 - asrs r2, 1 - movs r0, 0x7 - bl sub_80D8B40 - adds r5, r0, 0 - ldrh r0, [r6, 0x20] - lsls r0, 7 - strh r0, [r6, 0x2E] - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - movs r0, 0x7 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_80D8B40 - strh r0, [r7, 0x6] - movs r0, 0x7 - adds r1, r5, 0 - movs r2, 0x55 - bl sub_80D8ABC - adds r2, r0, 0 - mov r1, r8 - strh r1, [r7, 0x8] - movs r1, 0xFE - lsls r1, 6 - lsls r2, 16 - asrs r2, 16 - movs r0, 0x7 - bl sub_80D8B40 - strh r0, [r7, 0xA] - movs r2, 0x24 - ldrsh r0, [r6, r2] - cmp r0, 0 - bge _0814F156 - adds r0, 0x3 -_0814F156: - asrs r0, 2 - strh r0, [r7, 0xC] - ldrh r0, [r7, 0xE] - ldr r2, _0814F194 @ =0xffff8000 - adds r1, r2, 0 - orrs r0, r1 - strh r0, [r7, 0xE] - mov r0, r8 - strh r0, [r6, 0x26] - strh r0, [r6, 0x24] - ldr r0, _0814F198 @ =sub_814F044 - str r0, [r6, 0x1C] - adds r2, r6, 0 - adds r2, 0x2C - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - adds r2, 0x12 - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0814F194: .4byte 0xffff8000 -_0814F198: .4byte sub_814F044 - thumb_func_end sub_814F0D8 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/event_object_movement.s b/asm/event_object_movement.s index cf5b8c54d..e9ddd9ebc 100644 --- a/asm/event_object_movement.s +++ b/asm/event_object_movement.s @@ -1084,7 +1084,7 @@ _0805E5CA: ldrh r0, [r6, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__no_record + bl LoadPlayerObjectReflectionPalette b _0805E606 .align 2, 0 _0805E5F4: .4byte gObjectEvents @@ -1094,7 +1094,7 @@ _0805E5F8: ldrh r0, [r6, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette _0805E606: ldrb r0, [r5, 0x6] cmp r0, 0x4C @@ -1728,7 +1728,7 @@ sprite_new: @ 805E9F8 ldrh r0, [r4, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette _0805EAE4: ldr r1, [sp, 0x1C] cmp r1, 0 @@ -1852,7 +1852,7 @@ sub_805EB44: @ 805EB44 ldrh r0, [r7, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette _0805EBE6: ldr r1, [sp, 0x18] cmp r1, 0 @@ -2239,7 +2239,7 @@ _0805EE70: ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__no_record + bl LoadPlayerObjectReflectionPalette _0805EECA: ldrb r0, [r5, 0xC] lsls r1, r0, 28 @@ -2248,7 +2248,7 @@ _0805EECA: bls _0805EEDC ldrh r0, [r5, 0x2] lsrs r1, 28 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette _0805EEDC: mov r0, sp strh r4, [r0, 0x2] @@ -2315,7 +2315,7 @@ _0805EEDC: mov r0, r8 adds r1, r7, 0 bl SetPlayerAvatarObjectEventIdAndObjectId - bl sub_80DB0C4 + bl CreateWarpArrowSprite strb r0, [r6, 0x1B] _0805EF6A: ldr r1, [sp, 0x20] @@ -2470,7 +2470,7 @@ ObjectEventSetGraphicsId: @ 805F060 ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 - bl pal_patch_for_npc + bl PatchObjectPalette _0805F09E: ldrb r1, [r5, 0xC] mov r0, r8 @@ -2480,7 +2480,7 @@ _0805F09E: ldrh r0, [r5, 0x2] lsls r1, 28 lsrs r1, 28 - bl npc_load_two_palettes__and_record + bl LoadSpecialObjectReflectionPalette _0805F0B2: ldr r0, [r4, 0xC] ldrh r0, [r0, 0x4] @@ -2583,7 +2583,7 @@ _0805F152: adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 - bl sub_8063B1C + bl SetSpritePosToMapCoords ldrh r0, [r5, 0x8] lsls r0, 16 asrs r0, 17 @@ -3107,8 +3107,8 @@ _0805F530: bx r1 thumb_func_end sub_805F510 - thumb_func_start pal_patch_for_npc -pal_patch_for_npc: @ 805F538 + thumb_func_start PatchObjectPalette +PatchObjectPalette: @ 805F538 push {r4,lr} adds r4, r1, 0 lsls r0, 16 @@ -3135,7 +3135,7 @@ pal_patch_for_npc: @ 805F538 bx r0 .align 2, 0 _0805F570: .4byte gObjectEventSpritePalettes - thumb_func_end pal_patch_for_npc + thumb_func_end PatchObjectPalette thumb_func_start pal_patch_for_npc_range pal_patch_for_npc_range: @ 805F574 @@ -3150,7 +3150,7 @@ pal_patch_for_npc_range: @ 805F574 _0805F584: ldrh r0, [r5] adds r1, r4, 0 - bl pal_patch_for_npc + bl PatchObjectPalette adds r5, 0x2 adds r0, r4, 0x1 lsls r0, 24 @@ -3205,8 +3205,8 @@ _0805F5E2: bx r1 thumb_func_end FindObjectEventPaletteIndexByTag - thumb_func_start npc_load_two_palettes__no_record -npc_load_two_palettes__no_record: @ 805F5E8 + thumb_func_start LoadPlayerObjectReflectionPalette +LoadPlayerObjectReflectionPalette: @ 805F5E8 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -3214,14 +3214,14 @@ npc_load_two_palettes__no_record: @ 805F5E8 lsrs r5, r1, 24 adds r0, r4, 0 adds r1, r5, 0 - bl pal_patch_for_npc + bl PatchObjectPalette movs r3, 0 ldr r1, _0805F630 @ =gUnknown_83A5208 ldrh r0, [r1] ldr r2, _0805F634 @ =0x000011ff cmp r0, r2 beq _0805F650 - ldr r0, _0805F638 @ =gUnknown_835B934 + ldr r0, _0805F638 @ =gReflectionEffectPaletteMap adds r5, r0 adds r6, r2, 0 _0805F60C: @@ -3239,12 +3239,12 @@ _0805F60C: adds r0, r1 ldrh r0, [r0] ldrb r1, [r5] - bl pal_patch_for_npc + bl PatchObjectPalette b _0805F650 .align 2, 0 _0805F630: .4byte gUnknown_83A5208 _0805F634: .4byte 0x000011ff -_0805F638: .4byte gUnknown_835B934 +_0805F638: .4byte gReflectionEffectPaletteMap _0805F63C: .4byte gUnknown_2037098 _0805F640: adds r0, r3, 0x1 @@ -3259,10 +3259,10 @@ _0805F650: pop {r4-r6} pop {r0} bx r0 - thumb_func_end npc_load_two_palettes__no_record + thumb_func_end LoadPlayerObjectReflectionPalette - thumb_func_start npc_load_two_palettes__and_record -npc_load_two_palettes__and_record: @ 805F658 + thumb_func_start LoadSpecialObjectReflectionPalette +LoadSpecialObjectReflectionPalette: @ 805F658 push {r4-r6,lr} lsls r0, 16 lsrs r4, r0, 16 @@ -3272,14 +3272,14 @@ npc_load_two_palettes__and_record: @ 805F658 strh r4, [r0] adds r0, r4, 0 adds r1, r5, 0 - bl pal_patch_for_npc + bl PatchObjectPalette movs r3, 0 ldr r1, _0805F6A8 @ =gUnknown_83A5278 ldrh r0, [r1] ldr r2, _0805F6AC @ =0x000011ff cmp r0, r2 beq _0805F6C8 - ldr r0, _0805F6B0 @ =gUnknown_835B934 + ldr r0, _0805F6B0 @ =gReflectionEffectPaletteMap adds r5, r0 adds r6, r2, 0 _0805F680: @@ -3297,13 +3297,13 @@ _0805F680: adds r0, r1 ldrh r0, [r0] ldrb r1, [r5] - bl pal_patch_for_npc + bl PatchObjectPalette b _0805F6C8 .align 2, 0 _0805F6A4: .4byte gUnknown_203709A _0805F6A8: .4byte gUnknown_83A5278 _0805F6AC: .4byte 0x000011ff -_0805F6B0: .4byte gUnknown_835B934 +_0805F6B0: .4byte gReflectionEffectPaletteMap _0805F6B4: .4byte gUnknown_2037098 _0805F6B8: adds r0, r3, 0x1 @@ -3318,18 +3318,18 @@ _0805F6C8: pop {r4-r6} pop {r0} bx r0 - thumb_func_end npc_load_two_palettes__and_record + thumb_func_end LoadSpecialObjectReflectionPalette thumb_func_start sub_805F6D0 sub_805F6D0: @ 805F6D0 lsls r0, 24 lsrs r0, 24 - ldr r1, _0805F6DC @ =gUnknown_835B934 + ldr r1, _0805F6DC @ =gReflectionEffectPaletteMap adds r0, r1 ldrb r0, [r0] bx lr .align 2, 0 -_0805F6DC: .4byte gUnknown_835B934 +_0805F6DC: .4byte gReflectionEffectPaletteMap thumb_func_end sub_805F6D0 thumb_func_start unref_sub_808EAC4 @@ -3413,7 +3413,7 @@ sub_805F724: @ 805F724 adds r2, 0x20 adds r3, r7, 0 adds r3, 0x22 - bl sub_8063B1C + bl SetSpritePosToMapCoords mov r1, r8 ldrh r0, [r1, 0x8] lsls r0, 16 @@ -3979,8 +3979,8 @@ _0805FB5E: bx r1 thumb_func_end CopySprite - thumb_func_start obj_unfreeze -obj_unfreeze: @ 805FB6C + thumb_func_start CreateCopySpriteAt +CreateCopySpriteAt: @ 805FB6C push {r4-r7,lr} mov r7, r8 push {r7} @@ -4038,7 +4038,7 @@ _0805FBD2: pop {r4-r7} pop {r1} bx r1 - thumb_func_end obj_unfreeze + thumb_func_end CreateCopySpriteAt thumb_func_start ObjectEventSetDirection ObjectEventSetDirection: @ 805FBDC @@ -4524,8 +4524,8 @@ _0805FF2A: _0805FF30: .4byte gUnknown_83A5330 thumb_func_end npc_paltag_set_load - thumb_func_start npc_paltag_by_palslot -npc_paltag_by_palslot: @ 805FF34 + thumb_func_start GetObjectPaletteTag +GetObjectPaletteTag: @ 805FF34 push {r4-r6,lr} lsls r0, 24 lsrs r2, r0, 24 @@ -4591,7 +4591,7 @@ _0805FFA2: _0805FFA8: .4byte gUnknown_83A5278 _0805FFAC: .4byte 0x000011ff _0805FFB0: .4byte gUnknown_203709A - thumb_func_end npc_paltag_by_palslot + thumb_func_end GetObjectPaletteTag thumb_func_start sub_805FFB4 sub_805FFB4: @ 805FFB4 @@ -12912,8 +12912,8 @@ _08063B14: .4byte gTotalCameraPixelOffsetX _08063B18: .4byte gTotalCameraPixelOffsetY thumb_func_end sub_8063AD4 - thumb_func_start sub_8063B1C -sub_8063B1C: @ 8063B1C + thumb_func_start SetSpritePosToMapCoords +SetSpritePosToMapCoords: @ 8063B1C push {r4-r7,lr} adds r7, r2, 0 mov r12, r3 @@ -12997,7 +12997,7 @@ _08063BB4: .4byte gUnknown_3005050 _08063BB8: .4byte gTotalCameraPixelOffsetY _08063BBC: .4byte 0xfff00000 _08063BC0: .4byte gSaveBlock1Ptr - thumb_func_end sub_8063B1C + thumb_func_end SetSpritePosToMapCoords thumb_func_start sub_8063BC4 sub_8063BC4: @ 8063BC4 @@ -13019,7 +13019,7 @@ sub_8063BC4: @ 8063BC4 ldrsh r1, [r2, r3] adds r2, r6, 0 mov r3, r8 - bl sub_8063B1C + bl SetSpritePosToMapCoords lsls r4, 16 asrs r4, 16 ldrh r0, [r6] @@ -23568,7 +23568,7 @@ GroundEffect_JumpOnTallGrass: @ 80685FC movs r7, 0x12 ldrsh r4, [r5, r7] str r4, [sp] - bl sub_80DB564 + bl FindTallGrassFieldEffectSpriteId lsls r0, 24 lsrs r0, 24 cmp r0, 0x40 diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s deleted file mode 100644 index 564cc519f..000000000 --- a/asm/field_effect_helpers.s +++ /dev/null @@ -1,4308 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpReflection -SetUpReflection: @ 80DAD7C - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x22 - ldrsh r2, [r4, r0] - adds r0, r4, 0 - movs r3, 0x98 - bl obj_unfreeze - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DAE2C @ =gSprites - adds r7, r1, r0 - ldr r0, _080DAE30 @ =sub_80DAF50 - str r0, [r7, 0x1C] - ldrb r1, [r7, 0x5] - movs r0, 0xC - orrs r1, r0 - strb r1, [r7, 0x5] - ldr r2, _080DAE34 @ =gUnknown_835B934 - lsrs r0, r1, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - movs r1, 0x3F - adds r1, r7 - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x40 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldr r0, _080DAE38 @ =gDummySpriteAnimTable - str r0, [r7, 0x8] - adds r0, r7, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _080DAE3C @ =gDummySpriteAffineAnimTable - str r0, [r7, 0x10] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x8 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - adds r2, r7, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x2E] - strh r0, [r7, 0x2E] - ldrb r0, [r6, 0x8] - strh r0, [r7, 0x30] - strh r5, [r7, 0x3C] - adds r0, r6, 0 - adds r1, r7, 0 - bl npc_pal_op - cmp r5, 0 - bne _080DAE22 - ldrb r0, [r7, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r7, 0x1] -_080DAE22: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DAE2C: .4byte gSprites -_080DAE30: .4byte sub_80DAF50 -_080DAE34: .4byte gUnknown_835B934 -_080DAE38: .4byte gDummySpriteAnimTable -_080DAE3C: .4byte gDummySpriteAffineAnimTable - thumb_func_end SetUpReflection - - thumb_func_start sub_80DAE40 -sub_80DAE40: @ 80DAE40 - push {lr} - ldrb r0, [r0, 0x5] - bl GetObjectEventGraphicsInfo - ldrh r0, [r0, 0xA] - subs r0, 0x2 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_80DAE40 - - thumb_func_start npc_pal_op -npc_pal_op: @ 80DAE54 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _080DAEAC @ =gUnknown_83FECCC - mov r0, sp - movs r2, 0x6 - bl memcpy - movs r0, 0 - strh r0, [r4, 0x32] - ldrb r0, [r5, 0x5] - bl GetObjectEventGraphicsInfo - ldrb r1, [r0, 0xC] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080DAEB0 - ldrb r0, [r5, 0x1F] - bl MetatileBehavior_GetBridgeType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _080DAE96 - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_GetBridgeType - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _080DAEB0 -_080DAE96: - subs r0, 0x1 - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - adds r0, r5, 0 - bl npc_pal_op_A - b _080DAEBA - .align 2, 0 -_080DAEAC: .4byte gUnknown_83FECCC -_080DAEB0: - ldrb r1, [r4, 0x5] - lsrs r1, 4 - adds r0, r5, 0 - bl npc_pal_op_B -_080DAEBA: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end npc_pal_op - - thumb_func_start npc_pal_op_B -npc_pal_op_B: @ 80DAEC4 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrb r0, [r0, 0x5] - bl GetObjectEventGraphicsInfo - adds r2, r0, 0 - ldrh r1, [r2, 0x4] - ldr r0, _080DAEF0 @ =0x000011ff - cmp r1, r0 - beq _080DAF18 - ldrb r0, [r2, 0xC] - movs r1, 0xF - ands r1, r0 - cmp r1, 0 - bne _080DAEF4 - ldrh r0, [r2, 0x2] - adds r1, r4, 0 - bl npc_load_two_palettes__no_record - b _080DAF12 - .align 2, 0 -_080DAEF0: .4byte 0x000011ff -_080DAEF4: - cmp r1, 0xA - bne _080DAF02 - ldrh r0, [r2, 0x2] - adds r1, r4, 0 - bl npc_load_two_palettes__and_record - b _080DAF12 -_080DAF02: - adds r0, r4, 0 - bl npc_paltag_by_palslot - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl pal_patch_for_npc -_080DAF12: - adds r0, r4, 0 - bl sub_807AA8C -_080DAF18: - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_pal_op_B - - thumb_func_start npc_pal_op_A -npc_pal_op_A: @ 80DAF20 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrb r0, [r0, 0x5] - bl GetObjectEventGraphicsInfo - adds r2, r0, 0 - ldrh r1, [r2, 0x4] - ldr r0, _080DAF4C @ =0x000011ff - cmp r1, r0 - beq _080DAF44 - adds r0, r1, 0 - adds r1, r4, 0 - bl pal_patch_for_npc - adds r0, r4, 0 - bl sub_807AA8C -_080DAF44: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DAF4C: .4byte 0x000011ff - thumb_func_end npc_pal_op_A - - thumb_func_start sub_80DAF50 -sub_80DAF50: @ 80DAF50 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DAF98 @ =gObjectEvents - adds r7, r0, r1 - ldrb r1, [r7, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DAF9C @ =gSprites - adds r5, r0, r1 - ldr r0, [r7] - ldr r1, _080DAFA0 @ =0x00020001 - ands r0, r1 - cmp r0, r1 - bne _080DAF88 - ldrb r1, [r7, 0x8] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _080DAFA4 -_080DAF88: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _080DB0AE - .align 2, 0 -_080DAF98: .4byte gObjectEvents -_080DAF9C: .4byte gSprites -_080DAFA0: .4byte 0x00020001 -_080DAFA4: - ldr r1, _080DB0BC @ =gUnknown_835B934 - ldrb r0, [r5, 0x5] - lsrs r0, 4 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrb r1, [r5, 0x1] - lsrs r1, 6 - lsls r1, 6 - ldrb r2, [r4, 0x1] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r5, 0x3] - lsrs r0, 6 - lsls r0, 6 - ldrb r2, [r4, 0x3] - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - movs r2, 0x10 - orrs r0, r2 - lsls r0, 1 - subs r2, 0x4F - mov r9, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldrh r2, [r4, 0x4] - ldr r0, _080DB0C0 @ =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, [r5, 0x18] - str r0, [r4, 0x18] - adds r0, r5, 0 - adds r0, 0x42 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 26 - adds r2, r4, 0 - adds r2, 0x42 - ands r3, r0 - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - movs r0, 0x3E - adds r0, r5 - mov r8, r0 - ldrb r0, [r0] - adds r6, r4, 0 - adds r6, 0x3E - movs r1, 0x4 - ands r1, r0 - ldrb r2, [r6] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrh r0, [r5, 0x20] - strh r0, [r4, 0x20] - adds r0, r7, 0 - bl sub_80DAE40 - ldrh r1, [r5, 0x22] - adds r0, r1 - ldrh r1, [r4, 0x32] - adds r1, r0 - strh r1, [r4, 0x22] - adds r0, r5, 0 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x28 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x29 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x29 - strb r0, [r1] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] - mov r2, r8 - ldrb r0, [r2] - movs r1, 0x2 - ands r1, r0 - ldrb r2, [r6] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080DB0AE - ldrb r0, [r4, 0x3] - mov r2, r9 - ands r2, r0 - strb r2, [r4, 0x3] - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080DB0AE - movs r1, 0x2 - adds r0, r2, 0 - orrs r0, r1 - strb r0, [r4, 0x3] -_080DB0AE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB0BC: .4byte gUnknown_835B934 -_080DB0C0: .4byte 0xfffffc00 - thumb_func_end sub_80DAF50 - - thumb_func_start sub_80DB0C4 -sub_80DB0C4: @ 80DB0C4 - push {r4,lr} - ldr r0, _080DB10C @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x20] - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r0, 0x40 - beq _080DB102 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DB110 @ =gSprites - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - orrs r0, r3 - strb r0, [r1] -_080DB102: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DB10C: .4byte gFieldEffectObjectTemplatePointers -_080DB110: .4byte gSprites - thumb_func_end sub_80DB0C4 - - thumb_func_start objid_set_invisible -objid_set_invisible: @ 80DB114 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB130 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bx lr - .align 2, 0 -_080DB130: .4byte gSprites - thumb_func_end objid_set_invisible - - thumb_func_start sub_80DB134 -sub_80DB134: @ 80DB134 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, _080DB1D8 @ =gSprites - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080DB17E - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - bne _080DB17E - movs r0, 0x30 - ldrsh r1, [r2, r0] - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - beq _080DB1CA -_080DB17E: - lsls r0, r7, 16 - asrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - mov r4, sp - adds r4, 0x2 - mov r2, sp - adds r3, r4, 0 - bl sub_8063B1C - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, _080DB1D8 @ =gSprites - adds r2, r0, r1 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x8 - strh r0, [r2, 0x20] - ldrh r0, [r4] - adds r0, 0x8 - strh r0, [r2, 0x22] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - strh r7, [r2, 0x2E] - strh r6, [r2, 0x30] - mov r1, r8 - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim -_080DB1CA: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB1D8: .4byte gSprites - thumb_func_end sub_80DB134 - - thumb_func_start oei_shadow -oei_shadow: @ 80DB1DC - push {r4,r5,lr} - ldr r5, _080DB268 @ =gFieldEffectArguments - ldrb r0, [r5] - ldrb r1, [r5, 0x4] - ldrb r2, [r5, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080DB26C @ =gObjectEvents - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x5] - bl GetObjectEventGraphicsInfo - adds r4, r0, 0 - ldr r2, _080DB270 @ =gFieldEffectObjectTemplatePointers - ldr r1, _080DB274 @ =gUnknown_83FECD2 - ldrb r0, [r4, 0xC] - lsls r0, 26 - lsrs r0, 30 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - movs r3, 0x94 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DB260 - ldr r0, _080DB278 @ =gSprites - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r5] - strh r0, [r2, 0x2E] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r5, 0x8] - strh r0, [r2, 0x32] - ldrh r1, [r4, 0xA] - lsls r1, 16 - asrs r1, 17 - ldr r3, _080DB27C @ =gUnknown_83FECD6 - ldrb r0, [r4, 0xC] - lsls r0, 26 - lsrs r0, 30 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x34] -_080DB260: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DB268: .4byte gFieldEffectArguments -_080DB26C: .4byte gObjectEvents -_080DB270: .4byte gFieldEffectObjectTemplatePointers -_080DB274: .4byte gUnknown_83FECD2 -_080DB278: .4byte gSprites -_080DB27C: .4byte gUnknown_83FECD6 - thumb_func_end oei_shadow - - thumb_func_start oamc_shadow -oamc_shadow: @ 80DB280 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r5, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080DB2AE - adds r0, r5, 0 - movs r1, 0x3 - bl FieldEffectStop - b _080DB334 -_080DB2AE: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB33C @ =gObjectEvents - adds r4, r0, r1 - ldrb r0, [r4, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DB340 @ =gSprites - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, 0x5] - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x34] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, [r4] - ldr r1, _080DB344 @ =0x00400001 - ands r0, r1 - cmp r0, r1 - bne _080DB32C - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsTallGrass - lsls r0, 24 - cmp r0, 0 - bne _080DB32C - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _080DB32C - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsSurfable - lsls r0, 24 - cmp r0, 0 - bne _080DB32C - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsReflective - lsls r0, 24 - cmp r0, 0 - bne _080DB32C - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsReflective - lsls r0, 24 - cmp r0, 0 - beq _080DB334 -_080DB32C: - adds r0, r5, 0 - movs r1, 0x3 - bl FieldEffectStop -_080DB334: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DB33C: .4byte gObjectEvents -_080DB340: .4byte gSprites -_080DB344: .4byte 0x00400001 - thumb_func_end oamc_shadow - - thumb_func_start oei_grass_normal -oei_grass_normal: @ 80DB348 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080DB3E0 @ =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DB3E4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x10] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DB3D4 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB3E8 @ =gSprites - adds r3, r0, r1 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x3 - ldrb r1, [r5, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r5, 0x8] - strh r0, [r3, 0x2E] - ldr r0, [r5] - strh r0, [r3, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r3, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r3, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r3, 0x36] - ldr r0, [r5, 0x18] - strh r0, [r3, 0x38] - ldr r0, [r5, 0x1C] - cmp r0, 0 - beq _080DB3D4 - adds r0, r3, 0 - movs r1, 0x4 - bl SeekSpriteAnim -_080DB3D4: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DB3E0: .4byte gFieldEffectArguments -_080DB3E4: .4byte gFieldEffectObjectTemplatePointers -_080DB3E8: .4byte gSprites - thumb_func_end oei_grass_normal - - thumb_func_start unc_grass_normal -unc_grass_normal: @ 80DB3EC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, _080DB498 @ =gCamera - ldrb r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DB438 - ldr r0, _080DB49C @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _080DB41E - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r0, r7 - beq _080DB438 -_080DB41E: - ldr r1, [r3, 0x4] - ldrh r0, [r5, 0x30] - subs r0, r1 - strh r0, [r5, 0x30] - ldr r1, [r3, 0x8] - ldrh r0, [r5, 0x32] - subs r0, r1 - strh r0, [r5, 0x32] - ldrb r1, [r2, 0x5] - lsls r1, 8 - ldrb r0, [r2, 0x4] - orrs r0, r1 - strh r0, [r5, 0x38] -_080DB438: - ldrh r0, [r5, 0x34] - lsrs r1, r0, 8 - mov r8, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r5, 0x36] - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r1, r4, 0 - adds r2, r7, 0 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DB48C - adds r0, r6, 0 - bl MetatileBehavior_IsTallGrass_2 - lsls r0, 24 - cmp r0, 0 - beq _080DB48C - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080DB4A0 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DB4A0 -_080DB48C: - adds r0, r5, 0 - movs r1, 0x4 - bl FieldEffectStop - b _080DB4E4 - .align 2, 0 -_080DB498: .4byte gCamera -_080DB49C: .4byte gSaveBlock1Ptr -_080DB4A0: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB4F0 @ =gObjectEvents - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, [r5, 0x30] - cmp r0, r1 - beq _080DB4C0 - ldr r0, [r2, 0x14] - cmp r0, r1 - beq _080DB4C0 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_080DB4C0: - movs r6, 0 - adds r0, r5, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - bne _080DB4CE - movs r6, 0x4 -_080DB4CE: - adds r0, r5, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_80DCD48 -_080DB4E4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB4F0: .4byte gObjectEvents - thumb_func_end unc_grass_normal - - thumb_func_start FldEff_JumpTallGrass -FldEff_JumpTallGrass: @ 80DB4F4 - push {r4,lr} - ldr r4, _080DB558 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_8063BC4 - ldr r0, _080DB55C @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x28] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DB550 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DB560 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xC - strh r0, [r2, 0x30] -_080DB550: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DB558: .4byte gFieldEffectArguments -_080DB55C: .4byte gFieldEffectObjectTemplatePointers -_080DB560: .4byte gSprites - thumb_func_end FldEff_JumpTallGrass - - thumb_func_start sub_80DB564 -sub_80DB564: @ 80DB564 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r5, 0 - ldr r0, _080DB5D4 @ =gSprites - mov r8, r0 - lsls r3, 16 - asrs r3, 16 - lsls r4, 16 - asrs r4, 16 -_080DB588: - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - mov r1, r8 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _080DB5DC - ldr r1, [r2, 0x1C] - ldr r0, _080DB5D8 @ =unc_grass_normal - cmp r1, r0 - bne _080DB5DC - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r3, r0 - bne _080DB5DC - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r4, r0 - bne _080DB5DC - ldrh r1, [r2, 0x34] - lsls r0, r1, 16 - asrs r0, 24 - cmp r12, r0 - bne _080DB5DC - movs r0, 0xFF - ands r0, r1 - cmp r7, r0 - bne _080DB5DC - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r6, r0 - bne _080DB5DC - adds r0, r5, 0 - b _080DB5E8 - .align 2, 0 -_080DB5D4: .4byte gSprites -_080DB5D8: .4byte unc_grass_normal -_080DB5DC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3F - bls _080DB588 - movs r0, 0x40 -_080DB5E8: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80DB564 - - thumb_func_start FldEff_LongGrass -FldEff_LongGrass: @ 80DB5F4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080DB690 @ =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DB694 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x3C] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DB684 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB698 @ =gSprites - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, 0x8] - bl ZCoordToPriority - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldr r0, [r5] - strh r0, [r4, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r4, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r4, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r4, 0x36] - ldr r0, [r5, 0x18] - strh r0, [r4, 0x38] - ldr r0, [r5, 0x1C] - cmp r0, 0 - beq _080DB684 - adds r0, r4, 0 - movs r1, 0x6 - bl SeekSpriteAnim -_080DB684: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DB690: .4byte gFieldEffectArguments -_080DB694: .4byte gFieldEffectObjectTemplatePointers -_080DB698: .4byte gSprites - thumb_func_end FldEff_LongGrass - - thumb_func_start unc_grass_tall -unc_grass_tall: @ 80DB69C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - lsrs r7, r0, 8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, _080DB748 @ =gCamera - ldrb r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080DB6E8 - ldr r0, _080DB74C @ =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, r7 - bne _080DB6CE - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r0, r6 - beq _080DB6E8 -_080DB6CE: - ldr r1, [r3, 0x4] - ldrh r0, [r5, 0x30] - subs r0, r1 - strh r0, [r5, 0x30] - ldr r1, [r3, 0x8] - ldrh r0, [r5, 0x32] - subs r0, r1 - strh r0, [r5, 0x32] - ldrb r1, [r2, 0x5] - lsls r1, 8 - ldrb r0, [r2, 0x4] - orrs r0, r1 - strh r0, [r5, 0x38] -_080DB6E8: - ldrh r0, [r5, 0x34] - lsrs r1, r0, 8 - mov r8, r1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r5, 0x36] - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DB73C - adds r0, r4, 0 - bl MetatileBehavior_IsLongGrass - lsls r0, 24 - cmp r0, 0 - beq _080DB73C - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _080DB750 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DB750 -_080DB73C: - adds r0, r5, 0 - movs r1, 0x11 - bl FieldEffectStop - b _080DB786 - .align 2, 0 -_080DB748: .4byte gCamera -_080DB74C: .4byte gSaveBlock1Ptr -_080DB750: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB794 @ =gObjectEvents - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, [r5, 0x30] - cmp r0, r1 - beq _080DB770 - ldr r0, [r2, 0x14] - cmp r0, r1 - beq _080DB770 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_080DB770: - adds r0, r5, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl sub_80DCD48 -_080DB786: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB794: .4byte gObjectEvents - thumb_func_end unc_grass_tall - - thumb_func_start FldEff_JumpLongGrass -FldEff_JumpLongGrass: @ 80DB798 - push {r4,lr} - ldr r4, _080DB7FC @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DB800 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x40] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DB7F4 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DB804 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0x12 - strh r0, [r2, 0x30] -_080DB7F4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DB7FC: .4byte gFieldEffectArguments -_080DB800: .4byte gFieldEffectObjectTemplatePointers -_080DB804: .4byte gSprites - thumb_func_end FldEff_JumpLongGrass - - thumb_func_start FldEff_ShortGrass -FldEff_ShortGrass: @ 80DB808 - push {r4-r6,lr} - ldr r6, _080DB89C @ =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DB8A0 @ =gObjectEvents - adds r5, r1, r0 - ldr r0, _080DB8A4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x78] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DB894 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r4, _080DB8A8 @ =gSprites - adds r2, r4 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r6] - strh r0, [r2, 0x2E] - ldr r0, [r6, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r6, 0x8] - strh r0, [r2, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r2, 0x34] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x36] -_080DB894: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DB89C: .4byte gFieldEffectArguments -_080DB8A0: .4byte gObjectEvents -_080DB8A4: .4byte gFieldEffectObjectTemplatePointers -_080DB8A8: .4byte gSprites - thumb_func_end FldEff_ShortGrass - - thumb_func_start sub_80DB8AC -sub_80DB8AC: @ 80DB8AC - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DB8EA - ldr r5, _080DB8F4 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - lsls r0, 29 - cmp r0, 0 - blt _080DB8F8 -_080DB8EA: - adds r0, r4, 0 - movs r1, 0x29 - bl FieldEffectStop - b _080DB98E - .align 2, 0 -_080DB8F4: .4byte gObjectEvents -_080DB8F8: - ldrb r0, [r1, 0x5] - bl GetObjectEventGraphicsInfo - mov r8, r0 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DB99C @ =gSprites - adds r6, r0, r1 - ldrh r5, [r6, 0x22] - ldrh r7, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DB934 - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _080DB94E -_080DB934: - strh r7, [r4, 0x34] - strh r5, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DB94E - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_080DB94E: - strh r7, [r4, 0x20] - strh r5, [r4, 0x22] - mov r1, r8 - ldrh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 17 - subs r0, 0x8 - strh r0, [r4, 0x26] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r0, [r6, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r6, 0 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - adds r0, r4, 0 - bl UpdateObjectEventSpriteVisibility -_080DB98E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080DB99C: .4byte gSprites - thumb_func_end sub_80DB8AC - - thumb_func_start FldEff_SandFootprints -FldEff_SandFootprints: @ 80DB9A0 - push {r4,lr} - ldr r4, _080DBA08 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DBA0C @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x2C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _080DB9FE - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DBA10 @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xD - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_080DB9FE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DBA08: .4byte gFieldEffectArguments -_080DBA0C: .4byte gFieldEffectObjectTemplatePointers -_080DBA10: .4byte gSprites - thumb_func_end FldEff_SandFootprints - - thumb_func_start FldEff_DeepSandFootprints -FldEff_DeepSandFootprints: @ 80DBA14 - push {r4,r5,lr} - ldr r4, _080DBA7C @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DBA80 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x5C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - cmp r1, 0x40 - beq _080DBA74 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DBA84 @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x18 - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_080DBA74: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DBA7C: .4byte gFieldEffectArguments -_080DBA80: .4byte gFieldEffectObjectTemplatePointers -_080DBA84: .4byte gSprites - thumb_func_end FldEff_DeepSandFootprints - - thumb_func_start FldEff_BikeTireTracks -FldEff_BikeTireTracks: @ 80DBA88 - push {r4,r5,lr} - ldr r4, _080DBAF0 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DBAF4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x6C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - cmp r1, 0x40 - beq _080DBAE8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DBAF8 @ =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x23 - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_080DBAE8: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DBAF0: .4byte gFieldEffectArguments -_080DBAF4: .4byte gFieldEffectObjectTemplatePointers -_080DBAF8: .4byte gSprites - thumb_func_end FldEff_BikeTireTracks - - thumb_func_start sub_80DBAFC -sub_80DBAFC: @ 80DBAFC - push {lr} - ldr r2, _080DBB14 @ =gUnknown_83FECE0 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080DBB14: .4byte gUnknown_83FECE0 - thumb_func_end sub_80DBAFC - - thumb_func_start sub_80DBB18 -sub_80DBB18: @ 80DBB18 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _080DBB2E - movs r0, 0x1 - strh r0, [r1, 0x2E] -_080DBB2E: - adds r0, r1, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - pop {r0} - bx r0 - thumb_func_end sub_80DBB18 - - thumb_func_start sub_80DBB3C -sub_80DBB3C: @ 80DBB3C - push {r4,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - ldrb r1, [r3] - lsls r1, 29 - lsrs r1, 31 - adds r0, r4, 0 - bl UpdateObjectEventSpriteVisibility - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x38 - ble _080DBB80 - ldrh r1, [r4, 0x3C] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldEffectStop -_080DBB80: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DBB3C - - thumb_func_start FldEff_Splash -FldEff_Splash: @ 80DBB88 - push {r4-r6,lr} - ldr r6, _080DBC1C @ =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DBC20 @ =gObjectEvents - adds r5, r1, r0 - ldr r0, _080DBC24 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x34] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _080DBC12 - ldrb r0, [r5, 0x5] - bl GetObjectEventGraphicsInfo - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - ldr r4, _080DBC28 @ =gSprites - adds r3, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - ldrb r2, [r5, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r4, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r2 - strb r1, [r3, 0x5] - ldr r1, [r6] - strh r1, [r3, 0x2E] - ldr r1, [r6, 0x4] - strh r1, [r3, 0x30] - ldr r1, [r6, 0x8] - strh r1, [r3, 0x32] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - subs r0, 0x4 - strh r0, [r3, 0x26] - movs r0, 0x3F - bl PlaySE -_080DBC12: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DBC1C: .4byte gFieldEffectArguments -_080DBC20: .4byte gObjectEvents -_080DBC24: .4byte gFieldEffectObjectTemplatePointers -_080DBC28: .4byte gSprites - thumb_func_end FldEff_Splash - - thumb_func_start sub_80DBC2C -sub_80DBC2C: @ 80DBC2C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _080DBC5C - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080DBC66 -_080DBC5C: - adds r0, r4, 0 - movs r1, 0xF - bl FieldEffectStop - b _080DBCA6 -_080DBC66: - ldr r3, _080DBCB0 @ =gSprites - ldr r2, _080DBCB4 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x20] - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility -_080DBCA6: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DBCB0: .4byte gSprites -_080DBCB4: .4byte gObjectEvents - thumb_func_end sub_80DBC2C - - thumb_func_start FldEff_JumpSmallSplash -FldEff_JumpSmallSplash: @ 80DBCB8 - push {r4,lr} - ldr r4, _080DBD1C @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_8063BC4 - ldr r0, _080DBD20 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x38] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DBD14 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DBD24 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0x10 - strh r0, [r2, 0x30] -_080DBD14: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DBD1C: .4byte gFieldEffectArguments -_080DBD20: .4byte gFieldEffectObjectTemplatePointers -_080DBD24: .4byte gSprites - thumb_func_end FldEff_JumpSmallSplash - - thumb_func_start oei_water_drop_tall -oei_water_drop_tall: @ 80DBD28 - push {r4,lr} - ldr r4, _080DBD8C @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DBD90 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x30] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DBD84 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DBD94 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xE - strh r0, [r2, 0x30] -_080DBD84: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DBD8C: .4byte gFieldEffectArguments -_080DBD90: .4byte gFieldEffectObjectTemplatePointers -_080DBD94: .4byte gSprites - thumb_func_end oei_water_drop_tall - - thumb_func_start FldEff_FeetInFlowingWater -FldEff_FeetInFlowingWater: @ 80DBD98 - push {r4-r7,lr} - ldr r7, _080DBE38 @ =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DBE3C @ =gObjectEvents - adds r6, r1, r0 - ldr r0, _080DBE40 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x34] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _080DBE2E - ldrb r0, [r6, 0x5] - bl GetObjectEventGraphicsInfo - adds r4, r0, 0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r3, _080DBE44 @ =gSprites - adds r0, r3 - ldr r1, _080DBE48 @ =sub_80DBE50 - str r1, [r0, 0x1C] - adds r5, r0, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r5] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r7] - strh r1, [r0, 0x2E] - ldr r1, [r7, 0x4] - strh r1, [r0, 0x30] - ldr r1, [r7, 0x8] - strh r1, [r0, 0x32] - ldr r1, _080DBE4C @ =0x0000ffff - strh r1, [r0, 0x34] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x36] - ldrh r1, [r4, 0xA] - lsls r1, 16 - asrs r1, 17 - subs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0x1 - bl StartSpriteAnim -_080DBE2E: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080DBE38: .4byte gFieldEffectArguments -_080DBE3C: .4byte gObjectEvents -_080DBE40: .4byte gFieldEffectObjectTemplatePointers -_080DBE44: .4byte gSprites -_080DBE48: .4byte sub_80DBE50 -_080DBE4C: .4byte 0x0000ffff - thumb_func_end FldEff_FeetInFlowingWater - - thumb_func_start sub_80DBE50 -sub_80DBE50: @ 80DBE50 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DBE8A - ldr r2, _080DBE94 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - ldrb r0, [r5, 0x2] - lsls r0, 28 - cmp r0, 0 - blt _080DBE98 -_080DBE8A: - adds r0, r4, 0 - movs r1, 0x22 - bl FieldEffectStop - b _080DBEE2 - .align 2, 0 -_080DBE94: .4byte gObjectEvents -_080DBE98: - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DBEEC @ =gSprites - adds r0, r1 - ldrh r1, [r0, 0x20] - strh r1, [r4, 0x20] - ldrh r1, [r0, 0x22] - strh r1, [r4, 0x22] - adds r0, 0x43 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - ldr r1, [r5, 0x10] - ldr r0, [r4, 0x34] - cmp r1, r0 - beq _080DBEE2 - ldrh r0, [r5, 0x10] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x12] - strh r0, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _080DBEE2 - movs r0, 0x3F - bl PlaySE -_080DBEE2: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DBEEC: .4byte gSprites - thumb_func_end sub_80DBE50 - - thumb_func_start oei_ripples -oei_ripples: @ 80DBEF0 - push {r4,lr} - ldr r0, _080DBF44 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x14] - ldr r4, _080DBF48 @ =gFieldEffectArguments - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DBF3C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DBF4C @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x5 - strh r0, [r2, 0x2E] -_080DBF3C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DBF44: .4byte gFieldEffectObjectTemplatePointers -_080DBF48: .4byte gFieldEffectArguments -_080DBF4C: .4byte gSprites - thumb_func_end oei_ripples - - thumb_func_start FldEff_HotSpringsWater -FldEff_HotSpringsWater: @ 80DBF50 - push {r4-r6,lr} - ldr r6, _080DBFE4 @ =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DBFE8 @ =gObjectEvents - adds r5, r1, r0 - ldr r0, _080DBFEC @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x7C] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DBFDC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r4, _080DBFF0 @ =gSprites - adds r2, r4 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r6] - strh r0, [r2, 0x2E] - ldr r0, [r6, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r6, 0x8] - strh r0, [r2, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r2, 0x34] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x36] -_080DBFDC: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080DBFE4: .4byte gFieldEffectArguments -_080DBFE8: .4byte gObjectEvents -_080DBFEC: .4byte gFieldEffectObjectTemplatePointers -_080DBFF0: .4byte gSprites - thumb_func_end FldEff_HotSpringsWater - - thumb_func_start sub_80DBFF4 -sub_80DBFF4: @ 80DBFF4 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DC02E - ldr r5, _080DC038 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - lsls r0, 26 - cmp r0, 0 - blt _080DC03C -_080DC02E: - adds r0, r4, 0 - movs r1, 0x2A - bl FieldEffectStop - b _080DC080 - .align 2, 0 -_080DC038: .4byte gObjectEvents -_080DC03C: - ldrb r0, [r1, 0x5] - bl GetObjectEventGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, _080DC088 @ =gSprites - adds r1, r2 - ldrh r2, [r1, 0x20] - strh r2, [r4, 0x20] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - ldrh r2, [r1, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r4, 0x22] - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility -_080DC080: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC088: .4byte gSprites - thumb_func_end sub_80DBFF4 - - thumb_func_start FldEff_Unknown19 -FldEff_Unknown19: @ 80DC08C - push {r4,lr} - ldr r4, _080DC0EC @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC0F0 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x44] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC0E4 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC0F4 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x13 - strh r0, [r2, 0x2E] -_080DC0E4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC0EC: .4byte gFieldEffectArguments -_080DC0F0: .4byte gFieldEffectObjectTemplatePointers -_080DC0F4: .4byte gSprites - thumb_func_end FldEff_Unknown19 - - thumb_func_start FldEff_Unknown20 -FldEff_Unknown20: @ 80DC0F8 - push {r4,lr} - ldr r4, _080DC158 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC15C @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x48] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC150 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC160 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x14 - strh r0, [r2, 0x2E] -_080DC150: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC158: .4byte gFieldEffectArguments -_080DC15C: .4byte gFieldEffectObjectTemplatePointers -_080DC160: .4byte gSprites - thumb_func_end FldEff_Unknown20 - - thumb_func_start FldEff_Unknown21 -FldEff_Unknown21: @ 80DC164 - push {r4,lr} - ldr r4, _080DC1C4 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC1C8 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x4C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC1BC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC1CC @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x15 - strh r0, [r2, 0x2E] -_080DC1BC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC1C4: .4byte gFieldEffectArguments -_080DC1C8: .4byte gFieldEffectObjectTemplatePointers -_080DC1CC: .4byte gSprites - thumb_func_end FldEff_Unknown21 - - thumb_func_start FldEff_Unknown22 -FldEff_Unknown22: @ 80DC1D0 - push {r4,lr} - ldr r4, _080DC230 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC234 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x50] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC228 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC238 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x16 - strh r0, [r2, 0x2E] -_080DC228: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC230: .4byte gFieldEffectArguments -_080DC234: .4byte gFieldEffectObjectTemplatePointers -_080DC238: .4byte gSprites - thumb_func_end FldEff_Unknown22 - - thumb_func_start StartAshFieldEffect -StartAshFieldEffect: @ 80DC23C - push {r4,lr} - lsls r2, 16 - lsrs r2, 16 - ldr r4, _080DC26C @ =gFieldEffectArguments - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - lsls r1, 16 - asrs r1, 16 - str r1, [r4, 0x4] - movs r0, 0x52 - str r0, [r4, 0x8] - movs r0, 0x1 - str r0, [r4, 0xC] - str r2, [r4, 0x10] - lsls r3, 16 - asrs r3, 16 - str r3, [r4, 0x14] - movs r0, 0x7 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DC26C: .4byte gFieldEffectArguments - thumb_func_end StartAshFieldEffect - - thumb_func_start FldEff_Ash -FldEff_Ash: @ 80DC270 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, _080DC2F0 @ =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC2F4 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x18] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - ldrb r3, [r5, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC2E6 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC2F8 @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r5, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r5] - strh r0, [r2, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r2, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r2, 0x36] -_080DC2E6: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DC2F0: .4byte gFieldEffectArguments -_080DC2F4: .4byte gFieldEffectObjectTemplatePointers -_080DC2F8: .4byte gSprites - thumb_func_end FldEff_Ash - - thumb_func_start sub_80DC2FC -sub_80DC2FC: @ 80DC2FC - push {lr} - ldr r2, _080DC314 @ =gUnknown_83FECE8 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080DC314: .4byte gUnknown_83FECE8 - thumb_func_end sub_80DC2FC - - thumb_func_start sub_80DC318 -sub_80DC318: @ 80DC318 - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x36] - subs r0, 0x1 - strh r0, [r3, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _080DC342 - movs r0, 0x1 - strh r0, [r3, 0x2E] -_080DC342: - pop {r0} - bx r0 - thumb_func_end sub_80DC318 - - thumb_func_start sub_80DC348 -sub_80DC348: @ 80DC348 - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x34] - bl MapGridSetMetatileIdAt - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldr r2, _080DC3A0 @ =gObjectEvents - ldr r0, _080DC3A4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x2 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DC3A0: .4byte gObjectEvents -_080DC3A4: .4byte gPlayerAvatar - thumb_func_end sub_80DC348 - - thumb_func_start sub_80DC3A8 -sub_80DC3A8: @ 80DC3A8 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DC3C8 - adds r0, r4, 0 - movs r1, 0x7 - bl FieldEffectStop -_080DC3C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DC3A8 - - thumb_func_start FldEff_SurfBlob -FldEff_SurfBlob: @ 80DC3D0 - push {r4,r5,lr} - ldr r4, _080DC43C @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DC440 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x1C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x96 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r0, 0x40 - beq _080DC42C - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DC444 @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r4, 0x8] - movs r2, 0 - strh r0, [r1, 0x32] - strh r2, [r1, 0x34] - ldr r0, _080DC448 @ =0x0000ffff - strh r0, [r1, 0x3A] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x3C] -_080DC42C: - movs r0, 0x8 - bl FieldEffectActiveListRemove - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_080DC43C: .4byte gFieldEffectArguments -_080DC440: .4byte gFieldEffectObjectTemplatePointers -_080DC444: .4byte gSprites -_080DC448: .4byte 0x0000ffff - thumb_func_end FldEff_SurfBlob - - thumb_func_start sub_80DC44C -sub_80DC44C: @ 80DC44C - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080DC474 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r2, 0x2E] - movs r3, 0x10 - negs r3, r3 - ands r3, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 24 - orrs r0, r3 - strh r0, [r2, 0x2E] - bx lr - .align 2, 0 -_080DC474: .4byte gSprites - thumb_func_end sub_80DC44C - - thumb_func_start sub_80DC478 -sub_80DC478: @ 80DC478 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, _080DC4A0 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r2, 0x2E] - movs r3, 0xF1 - negs r3, r3 - ands r3, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 20 - orrs r3, r0 - strh r3, [r2, 0x2E] - bx lr - .align 2, 0 -_080DC4A0: .4byte gSprites - thumb_func_end sub_80DC478 - - thumb_func_start sub_80DC4A4 -sub_80DC4A4: @ 80DC4A4 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r4, _080DC4D0 @ =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r4 - ldrh r0, [r3, 0x2E] - ldr r4, _080DC4D4 @ =0xfffff0ff - ands r4, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 16 - orrs r4, r0 - strh r4, [r3, 0x2E] - strh r2, [r3, 0x30] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DC4D0: .4byte gSprites -_080DC4D4: .4byte 0xfffff0ff - thumb_func_end sub_80DC4A4 - - thumb_func_start sub_80DC4D8 -sub_80DC4D8: @ 80DC4D8 - ldrh r1, [r0, 0x2E] - movs r0, 0xF - ands r0, r1 - bx lr - thumb_func_end sub_80DC4D8 - - thumb_func_start sub_80DC4E0 -sub_80DC4E0: @ 80DC4E0 - ldrh r1, [r0, 0x2E] - movs r0, 0xF0 - ands r0, r1 - lsrs r0, 4 - bx lr - thumb_func_end sub_80DC4E0 - - thumb_func_start sub_80DC4EC -sub_80DC4EC: @ 80DC4EC - ldrh r1, [r0, 0x2E] - movs r0, 0xF0 - lsls r0, 4 - ands r0, r1 - lsrs r0, 8 - bx lr - thumb_func_end sub_80DC4EC - - thumb_func_start sub_80DC4F8 -sub_80DC4F8: @ 80DC4F8 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080DC548 @ =gObjectEvents - adds r4, r0 - ldrb r0, [r4, 0x4] - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - ldr r0, _080DC54C @ =gSprites - adds r5, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80DC550 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80DC588 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_80DC61C - ldrb r0, [r5, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC548: .4byte gObjectEvents -_080DC54C: .4byte gSprites - thumb_func_end sub_80DC4F8 - - thumb_func_start sub_80DC550 -sub_80DC550: @ 80DC550 - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, _080DC584 @ =gUnknown_83FECF4 - mov r0, sp - movs r2, 0x5 - bl memcpy - adds r0, r4, 0 - bl sub_80DC4E0 - lsls r0, 24 - cmp r0, 0 - bne _080DC57C - ldrb r0, [r5, 0x18] - lsrs r0, 4 - add r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent -_080DC57C: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DC584: .4byte gUnknown_83FECF4 - thumb_func_end sub_80DC550 - - thumb_func_start sub_80DC588 -sub_80DC588: @ 80DC588 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r1, 0 - ldrh r2, [r0, 0x10] - mov r1, sp - strh r2, [r1] - ldrh r1, [r0, 0x12] - mov r0, sp - adds r0, 0x2 - strh r1, [r0] - movs r2, 0x26 - ldrsh r3, [r4, r2] - mov r8, r0 - cmp r3, 0 - bne _080DC610 - mov r0, sp - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0x3A - ldrsh r0, [r4, r5] - cmp r2, r0 - bne _080DC5C4 - lsls r0, r1, 16 - asrs r0, 16 - movs r5, 0x3C - ldrsh r1, [r4, r5] - cmp r0, r1 - beq _080DC610 -_080DC5C4: - strh r3, [r4, 0x38] - strh r2, [r4, 0x3A] - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - strh r0, [r4, 0x3C] - movs r5, 0x1 - mov r7, r8 - mov r6, sp -_080DC5D6: - adds r0, r5, 0 - mov r1, sp - adds r2, r7, 0 - bl MoveCoords - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0 - ldrsh r1, [r7, r2] - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _080DC5FC - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _080DC610 -_080DC5FC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4, 0x3A] - strh r0, [r6] - ldrh r0, [r4, 0x3C] - mov r1, r8 - strh r0, [r1] - cmp r5, 0x4 - bls _080DC5D6 -_080DC610: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DC588 - - thumb_func_start sub_80DC61C -sub_80DC61C: @ 80DC61C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r4, r2, 0 - ldr r1, _080DC680 @ =gUnknown_83FECFA - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - bl sub_80DC4D8 - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - cmp r2, 0 - beq _080DC6A6 - ldrh r1, [r4, 0x36] - adds r1, 0x1 - strh r1, [r4, 0x36] - movs r3, 0x38 - ldrsh r0, [r4, r3] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _080DC65C - ldrh r0, [r4, 0x34] - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] -_080DC65C: - ldrh r1, [r4, 0x36] - movs r0, 0x1F - ands r0, r1 - cmp r0, 0 - bne _080DC66C - ldrh r0, [r4, 0x34] - negs r0, r0 - strh r0, [r4, 0x34] -_080DC66C: - cmp r2, 0x2 - beq _080DC6A6 - adds r0, r4, 0 - bl sub_80DC4EC - lsls r0, 24 - cmp r0, 0 - bne _080DC684 - ldrh r0, [r4, 0x26] - b _080DC68A - .align 2, 0 -_080DC680: .4byte gUnknown_83FECFA -_080DC684: - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x30] - adds r0, r3 -_080DC68A: - strh r0, [r5, 0x26] - adds r0, r4, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - beq _080DC69C - ldrh r0, [r5, 0x26] - adds r0, 0x1 - strh r0, [r5, 0x26] -_080DC69C: - ldrh r0, [r5, 0x20] - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_080DC6A6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80DC61C - - thumb_func_start sub_80DC6B0 -sub_80DC6B0: @ 80DC6B0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _080DC6F4 @ =gDummySpriteTemplate - movs r1, 0 - movs r2, 0 - movs r3, 0xFF - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _080DC6F8 @ =gSprites - adds r2, r1 - ldr r1, _080DC6FC @ =sub_80DC700 - str r1, [r2, 0x1C] - movs r1, 0x3E - adds r1, r2 - mov r12, r1 - ldrb r1, [r1] - movs r3, 0x4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - strh r4, [r2, 0x2E] - movs r1, 0x1 - strh r1, [r2, 0x30] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC6F4: .4byte gDummySpriteTemplate -_080DC6F8: .4byte gSprites -_080DC6FC: .4byte sub_80DC700 - thumb_func_end sub_80DC6B0 - - thumb_func_start sub_80DC700 -sub_80DC700: @ 80DC700 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DC73C @ =gSprites - adds r3, r0, r1 - ldrh r1, [r2, 0x32] - adds r0, r1, 0x1 - strh r0, [r2, 0x32] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080DC728 - ldrh r0, [r2, 0x30] - ldrh r1, [r3, 0x26] - adds r0, r1 - strh r0, [r3, 0x26] -_080DC728: - ldrh r1, [r2, 0x32] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _080DC738 - ldrh r0, [r2, 0x30] - negs r0, r0 - strh r0, [r2, 0x30] -_080DC738: - pop {r0} - bx r0 - .align 2, 0 -_080DC73C: .4byte gSprites - thumb_func_end sub_80DC700 - - thumb_func_start FldEff_Dust -FldEff_Dust: @ 80DC740 - push {r4,lr} - ldr r4, _080DC7A4 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_8063BC4 - ldr r0, _080DC7A8 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x24] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC79C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DC7AC @ =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xA - strh r0, [r2, 0x30] -_080DC79C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC7A4: .4byte gFieldEffectArguments -_080DC7A8: .4byte gFieldEffectObjectTemplatePointers -_080DC7AC: .4byte gSprites - thumb_func_end FldEff_Dust - - thumb_func_start FldEff_SandPile -FldEff_SandPile: @ 80DC7B0 - push {r4-r7,lr} - ldr r7, _080DC85C @ =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - bl GetObjectEventIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DC860 @ =gObjectEvents - adds r6, r1, r0 - ldr r0, _080DC864 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x74] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _080DC854 - ldrb r0, [r6, 0x5] - bl GetObjectEventGraphicsInfo - adds r5, r0, 0 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r4, _080DC868 @ =gSprites - adds r0, r4 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r7] - strh r1, [r0, 0x2E] - ldr r1, [r7, 0x4] - strh r1, [r0, 0x30] - ldr r1, [r7, 0x8] - strh r1, [r0, 0x32] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x34] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x36] - ldrh r1, [r5, 0xA] - lsls r1, 16 - asrs r1, 17 - subs r1, 0x2 - strh r1, [r0, 0x26] - movs r1, 0x2 - bl SeekSpriteAnim -_080DC854: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080DC85C: .4byte gFieldEffectArguments -_080DC860: .4byte gObjectEvents -_080DC864: .4byte gFieldEffectObjectTemplatePointers -_080DC868: .4byte gSprites - thumb_func_end FldEff_SandPile - - thumb_func_start sub_80DC86C -sub_80DC86C: @ 80DC86C - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080DC8A6 - ldr r2, _080DC8B0 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1, 0x2] - lsls r0, 27 - cmp r0, 0 - blt _080DC8B4 -_080DC8A6: - adds r0, r4, 0 - movs r1, 0x27 - bl FieldEffectStop - b _080DC926 - .align 2, 0 -_080DC8B0: .4byte gObjectEvents -_080DC8B4: - ldr r2, _080DC930 @ =gSprites - ldrb r1, [r1, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r5, [r0, 0x22] - ldrh r6, [r0, 0x20] - movs r2, 0x20 - ldrsh r1, [r0, r2] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _080DC8DC - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _080DC8F6 -_080DC8DC: - strh r6, [r4, 0x34] - strh r5, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DC8F6 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_080DC8F6: - strh r6, [r4, 0x20] - strh r5, [r4, 0x22] - ldr r3, _080DC930 @ =gSprites - ldr r2, _080DC934 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility -_080DC926: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080DC930: .4byte gSprites -_080DC934: .4byte gObjectEvents - thumb_func_end sub_80DC86C - - thumb_func_start FldEff_Bubbles -FldEff_Bubbles: @ 80DC938 - push {r4,lr} - ldr r4, _080DC990 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0 - bl sub_8063BC4 - ldr r0, _080DC994 @ =gFieldEffectObjectTemplatePointers - adds r0, 0x88 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DC988 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080DC998 @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] -_080DC988: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DC990: .4byte gFieldEffectArguments -_080DC994: .4byte gFieldEffectObjectTemplatePointers -_080DC998: .4byte gSprites - thumb_func_end FldEff_Bubbles - - thumb_func_start sub_80DC99C -sub_80DC99C: @ 80DC99C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, r0 - strh r1, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - ldrh r1, [r4, 0x3E] - ldr r0, _080DC9D8 @ =0x00001004 - ands r0, r1 - cmp r0, 0 - beq _080DC9D0 - adds r0, r4, 0 - movs r1, 0x35 - bl FieldEffectStop -_080DC9D0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080DC9D8: .4byte 0x00001004 - thumb_func_end sub_80DC99C - - thumb_func_start FldEff_BerryTreeGrowthSparkle -FldEff_BerryTreeGrowthSparkle: @ 80DC9DC - movs r0, 0 - bx lr - thumb_func_end FldEff_BerryTreeGrowthSparkle - - thumb_func_start ShowTreeDisguiseFieldEffect -ShowTreeDisguiseFieldEffect: @ 80DC9E0 - push {lr} - movs r0, 0x1C - movs r1, 0x18 - movs r2, 0x4 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowTreeDisguiseFieldEffect - - thumb_func_start ShowMountainDisguiseFieldEffect -ShowMountainDisguiseFieldEffect: @ 80DC9F0 - push {lr} - movs r0, 0x1D - movs r1, 0x19 - movs r2, 0x3 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowMountainDisguiseFieldEffect - - thumb_func_start ShowSandDisguiseFieldEffect -ShowSandDisguiseFieldEffect: @ 80DCA00 - push {lr} - movs r0, 0x24 - movs r1, 0x1C - movs r2, 0x2 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowSandDisguiseFieldEffect - - thumb_func_start ShowDisguiseFieldEffect -ShowDisguiseFieldEffect: @ 80DCA10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r5, _080DCA44 @ =gFieldEffectArguments - ldrb r0, [r5] - ldrb r1, [r5, 0x4] - ldrb r2, [r5, 0x8] - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080DCA48 - adds r0, r4, 0 - bl FieldEffectActiveListRemove - movs r0, 0x40 - b _080DCAB4 - .align 2, 0 -_080DCA44: .4byte gFieldEffectArguments -_080DCA48: - ldr r1, _080DCAC0 @ =gFieldEffectObjectTemplatePointers - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - mov r1, sp - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _080DCAB0 - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080DCAC4 @ =gSprites - adds r2, r0 - movs r0, 0x3E - adds r0, r2 - mov r12, r0 - ldrb r3, [r0] - lsls r1, r3, 30 - lsrs r1, 31 - adds r1, 0x1 - movs r0, 0x1 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - lsls r3, r7, 4 - ldrb r1, [r2, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x30] - ldr r0, [r5] - strh r0, [r2, 0x32] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x34] - ldr r0, [r5, 0x8] - strh r0, [r2, 0x36] -_080DCAB0: - mov r0, sp - ldrb r0, [r0] -_080DCAB4: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080DCAC0: .4byte gFieldEffectObjectTemplatePointers -_080DCAC4: .4byte gSprites - thumb_func_end ShowDisguiseFieldEffect - - thumb_func_start sub_80DCAC8 -sub_80DCAC8: @ 80DCAC8 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x34] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r5, 0x36] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _080DCAF8 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldEffectStop -_080DCAF8: - ldr r4, _080DCBB0 @ =gObjectEvents - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - bl GetObjectEventGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - ldr r1, _080DCBB4 @ =gSprites - adds r2, r1 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r1, [r1] - movs r3, 0x3E - adds r3, r5 - mov r12, r3 - movs r3, 0x4 - ands r3, r1 - mov r1, r12 - ldrb r4, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - ldrh r1, [r2, 0x20] - strh r1, [r5, 0x20] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - ldrh r1, [r2, 0x22] - adds r0, r1 - subs r0, 0x10 - strh r0, [r5, 0x22] - adds r2, 0x43 - ldrb r0, [r2] - subs r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _080DCB78 - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_080DCB78: - movs r3, 0x2E - ldrsh r0, [r5, r3] - ldrh r2, [r5, 0x2E] - cmp r0, 0x2 - bne _080DCB94 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DCB94 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_080DCB94: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _080DCBA8 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldEffectStop -_080DCBA8: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080DCBB0: .4byte gObjectEvents -_080DCBB4: .4byte gSprites - thumb_func_end sub_80DCAC8 - - thumb_func_start sub_80DCBB8 -sub_80DCBB8: @ 80DCBB8 - push {lr} - adds r1, r0, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x1 - bne _080DCBD6 - ldr r2, _080DCBDC @ =gSprites - ldrb r1, [r1, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] -_080DCBD6: - pop {r0} - bx r0 - .align 2, 0 -_080DCBDC: .4byte gSprites - thumb_func_end sub_80DCBB8 - - thumb_func_start sub_80DCBE0 -sub_80DCBE0: @ 80DCBE0 - push {lr} - adds r2, r0, 0 - adds r2, 0x21 - ldrb r1, [r2] - cmp r1, 0x2 - beq _080DCC16 - cmp r1, 0 - beq _080DCC16 - ldrb r1, [r0, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DCC08 @ =gSprites - adds r1, r0, r1 - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _080DCC0C - movs r0, 0 - b _080DCC18 - .align 2, 0 -_080DCC08: .4byte gSprites -_080DCC0C: - movs r0, 0x2 - strb r0, [r2] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_080DCC16: - movs r0, 0x1 -_080DCC18: - pop {r1} - bx r1 - thumb_func_end sub_80DCBE0 - - thumb_func_start FldEff_Sparkle -FldEff_Sparkle: @ 80DCC1C - push {r4,lr} - ldr r4, _080DCC84 @ =gFieldEffectArguments - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - ldr r0, [r4, 0x4] - adds r0, 0x7 - str r0, [r4, 0x4] - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080DCC88 @ =gFieldEffectObjectTemplatePointers - adds r0, 0x8C - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080DCC7C - ldr r0, _080DCC8C @ =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r0, 0x3 - ldrb r2, [r4, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] -_080DCC7C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080DCC84: .4byte gFieldEffectArguments -_080DCC88: .4byte gFieldEffectObjectTemplatePointers -_080DCC8C: .4byte gSprites - thumb_func_end FldEff_Sparkle - - thumb_func_start sub_80DCC90 -sub_80DCC90: @ 80DCC90 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _080DCCC4 - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DCCBC - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_080DCCBC: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _080DCCDA -_080DCCC4: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x22 - ble _080DCCDA - adds r0, r2, 0 - movs r1, 0x36 - bl FieldEffectStop -_080DCCDA: - pop {r0} - bx r0 - thumb_func_end sub_80DCC90 - - thumb_func_start sub_80DCCE0 -sub_80DCCE0: @ 80DCCE0 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DCCFE - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldEffectStop - b _080DCD14 -_080DCCFE: - adds r0, r4, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0 - bl SetObjectSubpriorityByZCoord -_080DCD14: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80DCCE0 - - thumb_func_start sub_80DCD1C -sub_80DCD1C: @ 80DCD1C - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080DCD3A - ldrh r1, [r2, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl FieldEffectStop - b _080DCD42 -_080DCD3A: - adds r0, r2, 0 - movs r1, 0 - bl UpdateObjectEventSpriteVisibility -_080DCD42: - pop {r0} - bx r0 - thumb_func_end sub_80DCD1C - - thumb_func_start sub_80DCD48 -sub_80DCD48: @ 80DCD48 - push {r4-r7,lr} - adds r6, r0, 0 - adds r0, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, 0 - bl SetObjectSubpriorityByZCoord - movs r7, 0 -_080DCD5E: - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 2 - ldr r1, _080DCDF8 @ =gObjectEvents - adds r4, r0, r1 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _080DCE00 - ldrb r0, [r4, 0x5] - bl GetObjectEventGraphicsInfo - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080DCDFC @ =gSprites - adds r5, r0, r1 - adds r0, r6, 0 - adds r0, 0x28 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r6, 0x20] - adds r1, r0, r2 - subs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x20 - ldrsh r2, [r5, r0] - cmp r1, r2 - bge _080DCE00 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r2 - ble _080DCE00 - adds r0, r5, 0 - adds r0, 0x29 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r2, [r5, 0x22] - adds r2, r3 - ldrh r4, [r5, 0x22] - adds r0, r6, 0 - adds r0, 0x29 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrh r0, [r6, 0x22] - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - adds r3, r0, r3 - lsls r2, 16 - asrs r2, 16 - lsls r3, 16 - asrs r3, 16 - cmp r2, r3 - blt _080DCDD8 - cmp r2, r0 - bge _080DCE00 -_080DCDD8: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - ble _080DCE00 - adds r2, r6, 0 - adds r2, 0x43 - adds r0, r5, 0 - adds r0, 0x43 - ldrb r1, [r0] - ldrb r0, [r2] - cmp r0, r1 - bhi _080DCE00 - adds r0, r1, 0x2 - strb r0, [r2] - b _080DCE0A - .align 2, 0 -_080DCDF8: .4byte gObjectEvents -_080DCDFC: .4byte gSprites -_080DCE00: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _080DCD5E -_080DCE0A: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_80DCD48 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 24b2474f1..79ac729b8 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -3158,7 +3158,7 @@ InitPlayerAvatar: @ 805CA3C movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x2] - bl sub_80DB0C4 + bl CreateWarpArrowSprite strb r0, [r4, 0x1B] adds r0, r4, 0 mov r1, r9 @@ -3403,7 +3403,7 @@ _0805CC62: movs r1, 0 ldrsh r3, [r7, r1] adds r1, r6, 0 - bl sub_80DB134 + bl ShowWarpArrowSprite b _0805CCC2 .align 2, 0 _0805CCA4: .4byte gUnknown_835B890 @@ -3419,7 +3419,7 @@ _0805CCA8: cmp r1, 0x3 ble _0805CC62 ldrb r0, [r5, 0x1B] - bl objid_set_invisible + bl SetSpriteInvisible _0805CCC2: add sp, 0x4 pop {r3,r4} diff --git a/asm/field_weather.s b/asm/field_weather.s index 2c7ef2128..c5204def2 100644 --- a/asm/field_weather.s +++ b/asm/field_weather.s @@ -1906,8 +1906,8 @@ _0807AA84: .4byte gUnknown_2037F34 _0807AA88: .4byte 0x000006c6 thumb_func_end IsWeatherNotFadingIn - thumb_func_start sub_807AA8C -sub_807AA8C: @ 807AA8C + thumb_func_start UpdateSpritePaletteWithWeather +UpdateSpritePaletteWithWeather: @ 807AA8C push {r4-r6,lr} lsls r0, 24 lsrs r0, 8 @@ -2017,7 +2017,7 @@ _0807AB68: bx r0 .align 2, 0 _0807AB70: .4byte 0x000073fc - thumb_func_end sub_807AA8C + thumb_func_end UpdateSpritePaletteWithWeather thumb_func_start sub_807AB74 sub_807AB74: @ 807AB74 @@ -2078,7 +2078,7 @@ sub_807ABC0: @ 807ABC0 movs r2, 0x20 bl LoadPalette ldrb r0, [r4] - bl sub_807AA8C + bl UpdateSpritePaletteWithWeather pop {r4} pop {r0} bx r0 diff --git a/asm/field_weather_effects.s b/asm/field_weather_effects.s index 81e97f211..decfe4078 100644 --- a/asm/field_weather_effects.s +++ b/asm/field_weather_effects.s @@ -252,7 +252,7 @@ _0807B456: adds r2, 0x20 adds r3, r4, 0 adds r3, 0x22 - bl sub_8063B1C + bl SetSpritePosToMapCoords adds r4, 0x3E ldrb r0, [r4] movs r1, 0x2 diff --git a/asm/overworld.s b/asm/overworld.s index eb341d760..571d305b4 100644 --- a/asm/overworld.s +++ b/asm/overworld.s @@ -3347,8 +3347,8 @@ _08056522: _08056530: .4byte gUnknown_3005E90 thumb_func_end sub_80564C8 - thumb_func_start sub_8056534 -sub_8056534: @ 8056534 + thumb_func_start CB1_Overworld +CB1_Overworld: @ 8056534 push {r4,lr} ldr r4, _0805655C @ =gMain ldr r1, [r4, 0x4] @@ -3379,7 +3379,7 @@ _08056570: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8056534 + thumb_func_end CB1_Overworld thumb_func_start sub_8056578 sub_8056578: @ 8056578 @@ -3507,7 +3507,7 @@ CB2_NewGame: @ 8056644 ldr r0, _08056698 @ =gMain + 0x438 bl do_load_map_stuff_loop bl SetFieldVBlankCallback - ldr r0, _0805669C @ =sub_8056534 + ldr r0, _0805669C @ =CB1_Overworld bl SetMainCallback1 ldr r0, _080566A0 @ =sub_80565B4 bl SetMainCallback2 @@ -3518,7 +3518,7 @@ _0805668C: .4byte gFieldCallback _08056690: .4byte sub_807DF7C _08056694: .4byte gFieldCallback2 _08056698: .4byte gMain + 0x438 -_0805669C: .4byte sub_8056534 +_0805669C: .4byte CB1_Overworld _080566A0: .4byte sub_80565B4 thumb_func_end CB2_NewGame @@ -3555,7 +3555,7 @@ CB2_WhiteOut: @ 80566A4 bl do_load_map_stuff_loop bl sub_8112364 bl SetFieldVBlankCallback - ldr r0, _08056714 @ =sub_8056534 + ldr r0, _08056714 @ =CB1_Overworld bl SetMainCallback1 ldr r0, _08056718 @ =sub_80565B4 bl SetMainCallback2 @@ -3567,7 +3567,7 @@ _08056702: _08056708: .4byte gMain _0805670C: .4byte gFieldCallback _08056710: .4byte sub_807F5F0 -_08056714: .4byte sub_8056534 +_08056714: .4byte CB1_Overworld _08056718: .4byte sub_80565B4 thumb_func_end CB2_WhiteOut @@ -3608,7 +3608,7 @@ sub_805674C: @ 805674C _08056768: .4byte gMain + 0x438 _0805676C: bl SetFieldVBlankCallback - ldr r0, _08056780 @ =sub_8056534 + ldr r0, _08056780 @ =CB1_Overworld bl SetMainCallback1 ldr r0, _08056784 @ =sub_80565B4 bl SetMainCallback2 @@ -3616,7 +3616,7 @@ _0805677C: pop {r0} bx r0 .align 2, 0 -_08056780: .4byte sub_8056534 +_08056780: .4byte CB1_Overworld _08056784: .4byte sub_80565B4 thumb_func_end sub_805674C @@ -3870,7 +3870,7 @@ _0805699C: ldr r0, _080569B0 @ =gFieldCallback ldr r1, _080569B4 @ =sub_8056918 str r1, [r0] - ldr r0, _080569B8 @ =sub_8056534 + ldr r0, _080569B8 @ =CB1_Overworld bl SetMainCallback1 bl CB2_ReturnToField _080569AC: @@ -3879,7 +3879,7 @@ _080569AC: .align 2, 0 _080569B0: .4byte gFieldCallback _080569B4: .4byte sub_8056918 -_080569B8: .4byte sub_8056534 +_080569B8: .4byte CB1_Overworld thumb_func_end CB2_ContinueSavedGame thumb_func_start FieldClearVBlankHBlankCallbacks @@ -4963,7 +4963,7 @@ sub_80572D8: @ 80572D8 ldr r0, _080572F4 @ =gMain + 0x438 bl sub_8057300 bl SetFieldVBlankCallback - ldr r0, _080572F8 @ =sub_8056534 + ldr r0, _080572F8 @ =CB1_Overworld bl SetMainCallback1 ldr r0, _080572FC @ =sub_80565B4 bl SetMainCallback2 @@ -4971,7 +4971,7 @@ sub_80572D8: @ 80572D8 bx r0 .align 2, 0 _080572F4: .4byte gMain + 0x438 -_080572F8: .4byte sub_8056534 +_080572F8: .4byte CB1_Overworld _080572FC: .4byte sub_80565B4 thumb_func_end sub_80572D8 @@ -5148,14 +5148,14 @@ _08057484: .4byte gUnknown_2036E28 _08057488: .4byte gUnknown_2031DE0 _0805748C: .4byte CB2_LoadMap _08057490: - ldr r0, _080574A0 @ =sub_8056534 + ldr r0, _080574A0 @ =CB1_Overworld bl SetMainCallback1 bl CB2_ReturnToField _0805749A: pop {r0} bx r0 .align 2, 0 -_080574A0: .4byte sub_8056534 +_080574A0: .4byte CB1_Overworld thumb_func_end sub_8057430 thumb_func_start Overworld_CreditsMainCB @@ -7273,7 +7273,7 @@ InitLinkPlayerObjectEventPos: @ 8058448 adds r2, 0xC adds r3, r4, 0 adds r3, 0xE - bl sub_8063B1C + bl SetSpritePosToMapCoords ldrh r0, [r4, 0xC] adds r0, 0x8 strh r0, [r4, 0xC] |