diff options
author | Seth Barberee <seth.barberee@gmail.com> | 2021-11-22 12:14:58 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-11-22 12:14:58 -0600 |
commit | fd8720b75c56ef3f641e6c5abf6c446929c824b9 (patch) | |
tree | 7b65558bd366be680c577e6a0aea7787db24dd3f | |
parent | 938a88551f6ddefb7f696b738696c8ce2d8e0e36 (diff) |
Label all entities in Boss Fight Cutscenes (#78)
* label all entities in cutscenes
* remove commented func.. wasn't matching anyway
* Skarmony -> Skarmory
43 files changed, 8159 insertions, 8955 deletions
diff --git a/asm/code_8012A18.s b/asm/code_8012A18.s index 350e33d..0a2d752 100644 --- a/asm/code_8012A18.s +++ b/asm/code_8012A18.s @@ -4440,7 +4440,7 @@ _08014DDC: ldr r4, _08014DF8 adds r0, r4, 0 movs r2, 0 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer b _08014F0E .align 2, 0 _08014DF8: .4byte gUnknown_202EB80 diff --git a/asm/code_801B3C0.s b/asm/code_801B3C0.s index 278f49f..173e4d6 100644 --- a/asm/code_801B3C0.s +++ b/asm/code_801B3C0.s @@ -5,649 +5,6 @@ .text - - thumb_func_start sub_801B60C -sub_801B60C: - push {r4-r7,lr} - adds r5, r0, 0 - adds r4, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r6, _0801B650 - movs r0, 0xAA - lsls r0, 1 - movs r1, 0x8 - bl MemoryAlloc - str r0, [r6] - adds r2, r0, 0 - adds r2, 0xC8 - movs r1, 0 - str r1, [r2] - str r5, [r0] - strb r4, [r0, 0x12] - ldr r0, [r6] - ldrb r0, [r0, 0x12] - bl IsThrowableItem - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _0801B654 - ldr r0, [r6] - strb r7, [r0, 0x11] - ldr r0, [r6] - strb r7, [r0, 0xC] - b _0801B65E - .align 2, 0 -_0801B650: .4byte gUnknown_203B234 -_0801B654: - ldr r0, [r6] - strb r1, [r0, 0x11] - ldr r1, [r6] - movs r0, 0x1 - strb r0, [r1, 0xC] -_0801B65E: - ldr r5, _0801B6A0 - ldr r0, [r5] - movs r1, 0 - movs r2, 0x1 - strb r2, [r0, 0x10] - ldr r0, [r5] - str r1, [r0, 0x14] - strb r1, [r0, 0x18] - ldr r0, [r5] - strb r2, [r0, 0x1C] - ldr r4, _0801B6A4 - bl GetPlayerPokemonStruct - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0x6 - bl sub_808D9AC - ldr r0, _0801B6A8 - ldr r2, [r5] - adds r1, r2, 0 - adds r1, 0x10 - adds r2, 0x14 - bl sub_8090E14 - movs r0, 0 - bl sub_801B748 - movs r0, 0x1 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0801B6A0: .4byte gUnknown_203B234 -_0801B6A4: .4byte gAvailablePokemonNames -_0801B6A8: .4byte gUnknown_202DE58 - thumb_func_end sub_801B60C - - thumb_func_start sub_801B6AC -sub_801B6AC: - push {lr} - ldr r0, _0801B6C4 - ldr r0, [r0] - ldr r0, [r0, 0x4] - subs r0, 0x6 - cmp r0, 0xA - bhi _0801B720 - lsls r0, 2 - ldr r1, _0801B6C8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B6C4: .4byte gUnknown_203B234 -_0801B6C8: .4byte _0801B6CC - .align 2, 0 -_0801B6CC: - .4byte _0801B6FC - .4byte _0801B702 - .4byte _0801B708 - .4byte _0801B708 - .4byte _0801B70E - .4byte _0801B714 - .4byte _0801B71A - .4byte _0801B720 - .4byte _0801B720 - .4byte _0801B720 - .4byte _0801B6F8 -_0801B6F8: - movs r0, 0x3 - b _0801B726 -_0801B6FC: - bl sub_801BC64 - b _0801B724 -_0801B702: - bl sub_801BC94 - b _0801B724 -_0801B708: - bl sub_801BCCC - b _0801B724 -_0801B70E: - bl sub_801BD80 - b _0801B724 -_0801B714: - bl sub_801BEAC - b _0801B724 -_0801B71A: - bl sub_801BE30 - b _0801B724 -_0801B720: - bl sub_801BEC8 -_0801B724: - movs r0, 0 -_0801B726: - pop {r1} - bx r1 - thumb_func_end sub_801B6AC - - thumb_func_start sub_801B72C -sub_801B72C: - push {r4,lr} - ldr r4, _0801B744 - ldr r0, [r4] - cmp r0, 0 - beq _0801B73E - bl MemoryFree - movs r0, 0 - str r0, [r4] -_0801B73E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801B744: .4byte gUnknown_203B234 - thumb_func_end sub_801B72C - - thumb_func_start sub_801B748 -sub_801B748: - push {lr} - ldr r1, _0801B75C - ldr r1, [r1] - str r0, [r1, 0x4] - bl sub_801B760 - bl sub_801B874 - pop {r0} - bx r0 - .align 2, 0 -_0801B75C: .4byte gUnknown_203B234 - thumb_func_end sub_801B748 - - thumb_func_start sub_801B760 -sub_801B760: - push {r4-r7,lr} - ldr r0, _0801B77C - ldr r1, [r0] - ldr r1, [r1, 0x4] - subs r1, 0x1 - adds r4, r0, 0 - cmp r1, 0xE - bls _0801B772 - b _0801B86A -_0801B772: - lsls r0, r1, 2 - ldr r1, _0801B780 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B77C: .4byte gUnknown_203B234 -_0801B780: .4byte _0801B784 - .align 2, 0 -_0801B784: - .4byte _0801B7C0 - .4byte _0801B86A - .4byte _0801B86A - .4byte _0801B86A - .4byte _0801B86A - .4byte _0801B7C0 - .4byte _0801B7C0 - .4byte _0801B7C0 - .4byte _0801B7C0 - .4byte _0801B800 - .4byte _0801B7C0 - .4byte _0801B840 - .4byte _0801B7C0 - .4byte _0801B7C0 - .4byte _0801B7C0 -_0801B7C0: - ldr r4, _0801B7F8 - ldr r0, [r4] - adds r0, 0xF4 - bl sub_8006518 - mov r12, r4 - ldr r4, _0801B7FC - movs r3, 0 - movs r2, 0x3 -_0801B7D2: - mov r0, r12 - ldr r1, [r0] - adds r1, r3 - adds r1, 0xF4 - adds r0, r4, 0 - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - adds r3, 0x18 - subs r2, 0x1 - cmp r2, 0 - bge _0801B7D2 - bl ResetUnusedInputStruct - ldr r0, _0801B7F8 - ldr r0, [r0] - b _0801B82E - .align 2, 0 -_0801B7F8: .4byte gUnknown_203B234 -_0801B7FC: .4byte gUnknown_80DBA58 -_0801B800: - ldr r0, [r4] - adds r0, 0xF4 - bl sub_8006518 - bl sub_801BB5C - ldr r2, [r4] - movs r0, 0x92 - lsls r0, 1 - adds r2, r0 - ldr r1, _0801B83C - ldm r1!, {r3,r5,r6} - stm r2!, {r3,r5,r6} - ldm r1!, {r3,r5,r7} - stm r2!, {r3,r5,r7} - ldr r1, [r4] - adds r0, r1, r0 - adds r1, 0xCC - bl sub_8012CAC - bl ResetUnusedInputStruct - ldr r0, [r4] -_0801B82E: - adds r0, 0xF4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C - b _0801B86A - .align 2, 0 -_0801B83C: .4byte gUnknown_80DBA70 -_0801B840: - ldr r0, [r4] - adds r0, 0xF4 - bl sub_8006518 - ldr r1, [r4] - movs r6, 0x86 - lsls r6, 1 - adds r1, r6 - ldr r0, _0801B870 - ldm r0!, {r2,r3,r7} - stm r1!, {r2,r3,r7} - ldm r0!, {r5-r7} - stm r1!, {r5-r7} - bl ResetUnusedInputStruct - ldr r0, [r4] - adds r0, 0xF4 - movs r1, 0x1 - movs r2, 0x1 - bl sub_800641C -_0801B86A: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0801B870: .4byte gUnknown_80DBA88 - thumb_func_end sub_801B760 - - thumb_func_start sub_801B874 -sub_801B874: - push {r4,lr} - sub sp, 0x14 - ldr r1, _0801B890 - ldr r0, [r1] - ldr r0, [r0, 0x4] - adds r4, r1, 0 - cmp r0, 0x10 - bls _0801B886 - b _0801BB0E -_0801B886: - lsls r0, 2 - ldr r1, _0801B894 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0801B890: .4byte gUnknown_203B234 -_0801B894: .4byte _0801B898 - .align 2, 0 -_0801B898: - .4byte _0801B8DC - .4byte _0801B9BC - .4byte _0801B9D8 - .4byte _0801B9E0 - .4byte _0801B9F0 - .4byte _0801B9F8 - .4byte _0801BA08 - .4byte _0801BA34 - .4byte _0801BA60 - .4byte _0801BA6E - .4byte _0801BA76 - .4byte _0801BA94 - .4byte _0801BA9E - .4byte _0801BAD0 - .4byte _0801BAE0 - .4byte _0801BAFC - .4byte _0801BB0E -_0801B8DC: - ldr r1, [r4] - ldrb r0, [r1, 0x12] - cmp r0, 0xEA - bne _0801B8FE - movs r0, 0x10 - str r0, [r1, 0x8] - movs r0, 0 - movs r1, 0x47 - movs r2, 0x1 - bl sub_8001784 - cmp r0, 0 - bne _0801B914 - movs r0, 0 - movs r1, 0x47 - movs r2, 0x1 - b _0801B92A -_0801B8FE: - cmp r0, 0xEB - bne _0801B938 - movs r0, 0x10 - str r0, [r1, 0x8] - movs r0, 0 - movs r1, 0x47 - movs r2, 0 - bl sub_8001784 - cmp r0, 0 - beq _0801B924 -_0801B914: - movs r0, 0xFA - lsls r0, 2 - bl AddToTeamMoney - movs r0, 0x4 - bl sub_801B748 - b _0801BB0E -_0801B924: - movs r0, 0 - movs r1, 0x47 - movs r2, 0 -_0801B92A: - movs r3, 0x1 - bl sub_800199C - movs r0, 0x3 - bl sub_801B748 - b _0801BB0E -_0801B938: - bl GetNumberOfFilledInventorySlots - cmp r0, 0x13 - ble _0801B986 - ldr r0, [r4] - ldrb r0, [r0, 0x12] - bl IsNotMoneyOrUsedTMItem - lsls r0, 24 - cmp r0, 0 - beq _0801B968 - ldr r0, _0801B970 - ldr r1, [r0] - ldr r2, [r4] - ldrb r0, [r2, 0x12] - lsls r0, 1 - adds r1, 0x50 - adds r3, r1, r0 - ldrh r1, [r3] - ldrb r0, [r2, 0xC] - adds r1, r0 - ldr r0, _0801B974 - cmp r1, r0 - ble _0801B978 -_0801B968: - ldr r1, [r4] - movs r0, 0x6 - b _0801B99C - .align 2, 0 -_0801B970: .4byte gTeamInventory_203B460 -_0801B974: .4byte 0x000003e7 -_0801B978: - strh r1, [r3] - movs r0, 0xCB - bl PlaySound - ldr r1, [r4] - movs r0, 0x5 - b _0801B99C -_0801B986: - ldr r0, [r4] - adds r0, 0x10 - bl AddItemToInventory - bl FillInventoryGaps - movs r0, 0xCB - bl PlaySound - ldr r1, [r4] - movs r0, 0x10 -_0801B99C: - str r0, [r1, 0x8] - ldr r0, _0801B9B0 - ldr r0, [r0] - ldr r0, [r0] - cmp r0, 0x1 - bne _0801B9B4 - movs r0, 0x2 - bl sub_801B748 - b _0801BB0E - .align 2, 0 -_0801B9B0: .4byte gUnknown_203B234 -_0801B9B4: - movs r0, 0x1 - bl sub_801B748 - b _0801BB0E -_0801B9BC: - movs r0, 0 - bl sub_808D544 - cmp r0, 0x1 - bgt _0801B9D0 - ldr r0, _0801B9CC - b _0801BAE8 - .align 2, 0 -_0801B9CC: .4byte gUnknown_80DBAA0 -_0801B9D0: - ldr r0, _0801B9D4 - b _0801BAE8 - .align 2, 0 -_0801B9D4: .4byte gUnknown_80DBAD0 -_0801B9D8: - ldr r0, _0801B9DC - b _0801BAE8 - .align 2, 0 -_0801B9DC: .4byte gUnknown_80DBB08 -_0801B9E0: - movs r0, 0xD4 - bl PlaySound - ldr r0, _0801B9EC - b _0801BAE8 - .align 2, 0 -_0801B9EC: .4byte gUnknown_80DBB38 -_0801B9F0: - ldr r0, _0801B9F4 - b _0801BAE8 - .align 2, 0 -_0801B9F4: .4byte gUnknown_80DBB9C -_0801B9F8: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0x8] - ldr r0, _0801BA04 - b _0801BAE8 - .align 2, 0 -_0801BA04: .4byte gUnknown_80DBC28 -_0801BA08: - bl sub_801BB20 - ldr r0, _0801BA2C - ldr r1, _0801BA30 - ldr r3, [r1] - adds r3, 0xCC - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r2, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x4 - bl sub_8014248 - b _0801BB0E - .align 2, 0 -_0801BA2C: .4byte gUnknown_80DBC60 -_0801BA30: .4byte gUnknown_203B234 -_0801BA34: - bl sub_801BC24 - ldr r0, _0801BA58 - ldr r1, _0801BA5C - ldr r3, [r1] - adds r3, 0xCC - movs r2, 0 - str r2, [sp] - movs r1, 0x4 - str r1, [sp, 0x4] - str r2, [sp, 0x8] - str r2, [sp, 0xC] - str r2, [sp, 0x10] - movs r1, 0 - movs r2, 0x3 - bl sub_8014248 - b _0801BB0E - .align 2, 0 -_0801BA58: .4byte gUnknown_80DBC98 -_0801BA5C: .4byte gUnknown_203B234 -_0801BA60: - movs r0, 0x1 - movs r1, 0x3 - movs r2, 0 - movs r3, 0xA - bl sub_801A5D8 - b _0801BB0E -_0801BA6E: - movs r0, 0x1 - bl sub_801A8D0 - b _0801BB0E -_0801BA76: - bl sub_801A9E0 - ldr r0, _0801BA90 - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0x28 - adds r1, r2, 0 - adds r1, 0xCC - adds r2, 0xC8 - ldr r2, [r2] - str r2, [sp] - movs r2, 0x2 - b _0801BAC0 - .align 2, 0 -_0801BA90: .4byte gUnknown_203B234 -_0801BA94: - ldr r0, [r4] - adds r0, 0x20 - bl sub_801B3C0 - b _0801BB0E -_0801BA9E: - bl sub_801A9E0 - ldr r4, _0801BACC - ldr r0, [r4] - adds r0, 0x28 - movs r1, 0 - bl sub_8012EA4 - bl sub_801BC24 - ldr r1, [r4] - adds r0, r1, 0 - adds r0, 0x78 - adds r1, 0xCC - movs r2, 0x3 - str r2, [sp] - movs r2, 0x1 -_0801BAC0: - str r2, [sp, 0x4] - movs r2, 0 - movs r3, 0 - bl sub_8012D60 - b _0801BB0E - .align 2, 0 -_0801BACC: .4byte gUnknown_203B234 -_0801BAD0: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0x8] - ldr r0, _0801BADC - b _0801BAE8 - .align 2, 0 -_0801BADC: .4byte gUnknown_80DBCC4 -_0801BAE0: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0x8] - ldr r0, _0801BAF4 -_0801BAE8: - ldr r3, _0801BAF8 - movs r1, 0 - movs r2, 0 - bl sub_80141B4 - b _0801BB0E - .align 2, 0 -_0801BAF4: .4byte gUnknown_80DBCE8 -_0801BAF8: .4byte 0x00000101 -_0801BAFC: - ldr r1, [r4] - movs r0, 0x10 - str r0, [r1, 0x8] - ldr r0, _0801BB18 - ldr r3, _0801BB1C - movs r1, 0 - movs r2, 0 - bl sub_80141B4 -_0801BB0E: - add sp, 0x14 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0801BB18: .4byte gUnknown_80DBD24 -_0801BB1C: .4byte 0x00000101 - thumb_func_end sub_801B874 - - thumb_func_start sub_801BB20 -sub_801BB20: - ldr r0, _0801BB50 - ldr r3, [r0] - movs r2, 0 - adds r1, r3, 0 - adds r1, 0xCC - ldr r0, _0801BB54 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x4 - str r0, [r1] - adds r1, 0x4 - ldr r0, _0801BB58 - str r0, [r1] - adds r1, 0x4 - movs r0, 0x5 - str r0, [r1] - adds r0, r3, 0 - adds r0, 0xDC - str r2, [r0] - adds r1, 0x8 - movs r0, 0x1 - negs r0, r0 - str r0, [r1] - bx lr - .align 2, 0 -_0801BB50: .4byte gUnknown_203B234 -_0801BB54: .4byte gKangaskhanTrashToolboxItem -_0801BB58: .4byte gKangaskhanTrashReceivedItem - thumb_func_end sub_801BB20 - thumb_func_start sub_801BB5C sub_801BB5C: push {r4-r7,lr} diff --git a/asm/code_801C620.s b/asm/code_801C620.s index 70524ed..2cbc4a8 100644 --- a/asm/code_801C620.s +++ b/asm/code_801C620.s @@ -1445,7 +1445,7 @@ _0801D400: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldr r2, [r6] str r4, [r2, 0x18] adds r0, r2, 0 diff --git a/asm/code_801EE10.s b/asm/code_801EE10.s index 2fbb943..4de5bb1 100644 --- a/asm/code_801EE10.s +++ b/asm/code_801EE10.s @@ -1730,7 +1730,7 @@ sub_801FB50: bl GetPlayerPokemonStruct adds r1, r0, 0 adds r0, r5, 0 - bl sub_808DA34 + bl PrintPokeNameToBuffer ldr r2, [r6] ldr r0, [r2] cmp r0, 0x1 @@ -3613,7 +3613,7 @@ _08020AB0: ldr r0, _08020AE8 ldr r1, [r4] ldr r1, [r1, 0x10] - bl sub_808DA34 + bl PrintPokeNameToBuffer movs r0, 0x11 bl sub_801FDA8 b _08020B32 @@ -3639,7 +3639,7 @@ _08020AEC: ldr r0, _08020B24 ldr r1, [r4] ldr r1, [r1, 0x10] - bl sub_808DA34 + bl PrintPokeNameToBuffer movs r0, 0x12 bl sub_801FDA8 b _08020B32 @@ -7265,12 +7265,12 @@ sub_80227B8: adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x7 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer adds r4, 0x50 adds r0, r4, 0 adds r1, r5, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer bl HasGummiItem lsls r0, 24 cmp r0, 0 diff --git a/asm/code_80428A0.s b/asm/code_80428A0.s index b776ebc..6fc7011 100644 --- a/asm/code_80428A0.s +++ b/asm/code_80428A0.s @@ -110,7 +110,7 @@ sub_8042B34: adds r6, r2, 0 movs r0, 0 mov r8, r0 - bl sub_8085480 + bl xxx_call_GetLeaderEntity mov r10, r0 ldr r7, _08042CB0 movs r0, 0xCC diff --git a/asm/code_80521D0.s b/asm/code_80521D0.s index c7987d1..0ff1da5 100644 --- a/asm/code_80521D0.s +++ b/asm/code_80521D0.s @@ -698,9 +698,9 @@ sub_8052910: push {r6,r7} sub sp, 0x14 adds r6, r0, 0 - bl sub_8085480 + bl xxx_call_GetLeaderEntity adds r4, r0, 0 - bl sub_808548C + bl GetPartnerEntity adds r5, r0, 0 movs r0, 0 mov r9, r0 diff --git a/asm/code_8057824.s b/asm/code_8057824.s index 132fcf2..c2cf874 100644 --- a/asm/code_8057824.s +++ b/asm/code_8057824.s @@ -32585,7 +32585,7 @@ _08067F4C: ldr r1, [r5] adds r0, r4, 0 movs r2, 0 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer adds r4, 0x50 ldr r0, [r5] movs r2, 0x8 @@ -34038,7 +34038,7 @@ _08068AB2: ldr r0, _08068AE8 adds r1, r6, 0 movs r2, 0 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068AF0 @@ -34105,7 +34105,7 @@ _08068B3E: ldr r0, _08068B78 adds r1, r6, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A beq _08068BB0 @@ -34126,7 +34126,7 @@ _08068B80: ldr r0, _08068B9C adds r1, r6, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldrb r0, [r6, 0x4] cmp r0, 0x4A bne _08068BA4 @@ -42736,6398 +42736,4 @@ _0806CD76: _0806CD8C: .4byte 0x000001a5 thumb_func_end sub_806CCB4 - thumb_func_start sub_806CD90 -sub_806CD90: - push {r4,r5,lr} - movs r5, 0 -_0806CD94: - ldr r0, _0806CDCC - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0806CDD0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806CDC0 - adds r0, r4, 0 - bl sub_806CEBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806CCB4 -_0806CDC0: - adds r5, 0x1 - cmp r5, 0x13 - ble _0806CD94 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806CDCC: .4byte gDungeonGlobalData -_0806CDD0: .4byte 0x000135cc - thumb_func_end sub_806CD90 - - thumb_func_start sub_806CDD4 -sub_806CDD4: - push {r4-r6,lr} - adds r4, r0, 0 - adds r6, r2, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl GetEntityType - cmp r0, 0x1 - bne _0806CDF4 - adds r0, r4, 0 - adds r0, 0x6A - strb r5, [r0] - cmp r6, 0x7 - bhi _0806CDF4 - adds r0, 0x2 - strb r6, [r0] -_0806CDF4: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806CDD4 - - thumb_func_start sub_806CDFC -sub_806CDFC: - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r2, 0 - lsls r1, 24 - lsrs r5, r1, 24 - adds r7, r5, 0 - bl GetEntityType - cmp r0, 0x1 - bne _0806CE2E - adds r0, r4, 0 - adds r0, 0x6B - ldrb r0, [r0] - cmp r0, r5 - bne _0806CE24 - adds r0, r4, 0 - adds r0, 0x6D - ldrb r0, [r0] - cmp r0, r6 - beq _0806CE2E -_0806CE24: - adds r0, r4, 0 - adds r1, r7, 0 - adds r2, r6, 0 - bl sub_806CDD4 -_0806CE2E: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806CDFC - - thumb_func_start sub_806CE34 -sub_806CE34: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl GetEntityType - cmp r0, 0x1 - bne _0806CE62 - adds r0, r4, 0 - bl sub_806CEBC - adds r1, r4, 0 - adds r1, 0x6A - strb r0, [r1] - cmp r5, 0x7 - bhi _0806CE62 - ldr r0, [r4, 0x70] - movs r1, 0x7 - ands r1, r5 - adds r0, 0x46 - strb r1, [r0] - adds r0, r4, 0 - adds r0, 0x6C - strb r1, [r0] -_0806CE62: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806CE34 - - thumb_func_start sub_806CE68 -sub_806CE68: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl GetEntityType - cmp r0, 0x1 - bne _0806CE8C - adds r0, r4, 0 - bl sub_806CEBC - adds r1, r4, 0 - adds r1, 0x6A - strb r0, [r1] - cmp r5, 0x7 - bhi _0806CE8C - adds r0, r4, 0 - adds r0, 0x6C - strb r5, [r0] -_0806CE8C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806CE68 - - thumb_func_start sub_806CE94 -sub_806CE94: - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl GetEntityType - cmp r0, 0x1 - bne _0806CEB4 - adds r1, r4, 0 - adds r1, 0x6A - movs r0, 0x6 - strb r0, [r1] - cmp r5, 0x7 - bhi _0806CEB4 - adds r0, r4, 0 - adds r0, 0x6C - strb r5, [r0] -_0806CEB4: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_806CE94 - - thumb_func_start sub_806CEBC -sub_806CEBC: - push {lr} - ldr r0, [r0, 0x70] - adds r1, r0, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0806CED2 - cmp r0, 0x5 - beq _0806CED2 - cmp r0, 0x3 - bne _0806CEE8 -_0806CED2: - movs r2, 0x4 - ldrsh r0, [r1, r2] - cmp r0, 0xB9 - bne _0806CEE4 - adds r0, r1, 0 - adds r0, 0xA9 - ldrb r0, [r0] - cmp r0, 0x7F - beq _0806CEF2 -_0806CEE4: - movs r0, 0x5 - b _0806CEF8 -_0806CEE8: - adds r0, r1, 0 - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0806CEF6 -_0806CEF2: - movs r0, 0x7 - b _0806CEF8 -_0806CEF6: - movs r0, 0xB -_0806CEF8: - pop {r1} - bx r1 - thumb_func_end sub_806CEBC - - thumb_func_start sub_806CEFC -sub_806CEFC: - push {r4,lr} - adds r4, r1, 0 - ldr r2, [r0, 0x70] - movs r3, 0x7 - ands r1, r3 - adds r2, 0x46 - strb r1, [r2] - movs r1, 0x7 - ands r1, r4 - bl sub_806CE68 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_806CEFC - - thumb_func_start sub_806CF18 -sub_806CF18: - push {r4-r6,lr} - adds r4, r0, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806CF4C - ldr r6, [r4, 0x70] - movs r5, 0 - b _0806CF2E -_0806CF2C: - adds r5, 0x1 -_0806CF2E: - cmp r5, 0x63 - bgt _0806CF4C - movs r0, 0x21 - bl sub_803E46C - movs r1, 0x4 - ldrsh r0, [r6, r1] - adds r1, r4, 0 - adds r1, 0x6B - ldrb r1, [r1] - bl sub_808DA44 - lsls r0, 24 - cmp r0, 0 - bne _0806CF2C -_0806CF4C: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806CF18 - - thumb_func_start sub_806CF54 -sub_806CF54: - ldr r0, [r0, 0x70] - movs r1, 0x81 - lsls r1, 2 - adds r0, r1 - ldrb r0, [r0] - bx lr - thumb_func_end sub_806CF54 - - thumb_func_start sub_806CF60 -sub_806CF60: - push {r4,r5,lr} - movs r5, 0 -_0806CF64: - ldr r0, _0806CF90 - ldr r0, [r0] - lsls r1, r5, 2 - ldr r2, _0806CF94 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806CF84 - adds r0, r4, 0 - bl sub_806CF98 -_0806CF84: - adds r5, 0x1 - cmp r5, 0x13 - ble _0806CF64 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0806CF90: .4byte gDungeonGlobalData -_0806CF94: .4byte 0x000135cc - thumb_func_end sub_806CF60 - - thumb_func_start sub_806CF98 -sub_806CF98: - push {r4-r7,lr} - adds r4, r0, 0 - bl sub_8045128 - ldrh r0, [r0] - movs r5, 0x3 - ands r5, r0 - adds r6, r5, 0 - ldr r7, [r4, 0x70] - movs r1, 0x4 - ldrsh r0, [r7, r1] - bl GetShadowSize - lsls r0, 24 - lsrs r4, r0, 24 - cmp r5, 0x3 - bne _0806CFBE - movs r0, 0x6 - b _0806CFF8 -_0806CFBE: - cmp r5, 0x1 - bne _0806CFCE - bl IsWaterTileset - lsls r0, 24 - cmp r0, 0 - beq _0806CFEE - b _0806CFE8 -_0806CFCE: - cmp r6, 0x2 - bne _0806CFEE - ldr r1, _0806D000 - ldr r0, _0806D004 - ldr r0, [r0] - ldr r2, _0806D008 - adds r0, r2 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0806CFEE -_0806CFE8: - ldr r0, _0806D00C - adds r0, r4, r0 - ldrb r4, [r0] -_0806CFEE: - movs r1, 0x81 - lsls r1, 2 - adds r0, r7, r1 - strb r4, [r0] - adds r0, r4, 0 -_0806CFF8: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806D000: .4byte gDungeonWaterType -_0806D004: .4byte gDungeonGlobalData -_0806D008: .4byte 0x00003a0e -_0806D00C: .4byte gUnknown_8106EEF - thumb_func_end sub_806CF98 - - thumb_func_start sub_806D010 -sub_806D010: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - adds r6, r0, 0 - adds r5, r1, 0 - mov r8, r2 - ldr r0, [sp, 0x40] - lsls r0, 16 - asrs r0, 16 - mov r10, r0 - movs r7, 0 - ldr r0, [sp, 0x3C] - str r0, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r2, [sp, 0x48] - str r2, [sp, 0x8] - adds r0, r6, 0 - adds r1, r5, 0 - mov r2, r8 - bl sub_806D528 - lsls r0, 24 - cmp r0, 0 - beq _0806D04A - b _0806D514 -_0806D04A: - mov r3, r8 - ldrb r0, [r3, 0xF] - cmp r0, 0 - beq _0806D054 - b _0806D514 -_0806D054: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D062 - b _0806D514 -_0806D062: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D070 - b _0806D514 -_0806D070: - adds r0, r6, 0 - bl GetEntityType - cmp r0, 0x1 - beq _0806D07C - b _0806D514 -_0806D07C: - adds r0, r5, 0 - bl GetEntityType - cmp r0, 0x1 - beq _0806D088 - b _0806D514 -_0806D088: - ldr r0, [sp, 0x44] - mov r9, r0 - adds r0, r5, 0 - bl CannotAct - lsls r0, 24 - cmp r0, 0 - bne _0806D0A2 - ldr r0, [r5, 0x70] - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0 - beq _0806D0A6 -_0806D0A2: - movs r1, 0 - mov r9, r1 -_0806D0A6: - mov r2, r9 - cmp r2, 0 - beq _0806D100 - movs r3, 0x4 - ldrsh r1, [r6, r3] - movs r2, 0x4 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0806D0BC - negs r1, r1 -_0806D0BC: - cmp r1, 0x1 - bgt _0806D100 - movs r3, 0x6 - ldrsh r1, [r6, r3] - movs r2, 0x6 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0806D0D0 - negs r1, r1 -_0806D0D0: - cmp r1, 0x1 - bgt _0806D100 - cmp r6, r5 - beq _0806D100 - mov r3, r8 - ldrb r0, [r3, 0xC] - bl sub_8092354 - lsls r0, 24 - cmp r0, 0 - beq _0806D100 - ldr r0, [r5, 0x70] - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0xD - bne _0806D100 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_8042730 - adds r0, r5, 0 - adds r1, r6, 0 - bl sub_807F43C -_0806D100: - ldr r0, [r5, 0x70] - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0xC - bne _0806D118 - ldr r0, _0806D3BC - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - movs r3, 0x1 - bl sub_8077084 -_0806D118: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D126 - b _0806D514 -_0806D126: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D134 - b _0806D514 -_0806D134: - mov r0, r9 - cmp r0, 0 - beq _0806D216 - cmp r6, r5 - beq _0806D216 - movs r2, 0x4 - ldrsh r1, [r6, r2] - movs r3, 0x4 - ldrsh r0, [r5, r3] - subs r1, r0 - cmp r1, 0 - bge _0806D14E - negs r1, r1 -_0806D14E: - cmp r1, 0x1 - bgt _0806D216 - movs r0, 0x6 - ldrsh r1, [r6, r0] - movs r2, 0x6 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0806D162 - negs r1, r1 -_0806D162: - cmp r1, 0x1 - bgt _0806D216 - mov r3, r8 - ldrb r0, [r3, 0xC] - bl sub_8092354 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [r5, 0x70] - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x4 - bne _0806D188 - cmp r4, 0 - beq _0806D188 - adds r0, r5, 0 - bl sub_8041B18 - adds r7, 0x4 -_0806D188: - ldr r0, [r5, 0x70] - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0xA - bne _0806D19E - cmp r4, 0 - beq _0806D19E - adds r0, r5, 0 - bl sub_8041B18 - adds r7, 0x1 -_0806D19E: - ldr r0, [r5, 0x70] - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x8 - bne _0806D1B4 - cmp r4, 0 - bne _0806D1B4 - adds r0, r5, 0 - bl sub_8041B90 - adds r7, 0x4 -_0806D1B4: - adds r0, r5, 0 - movs r1, 0x12 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D1C4 - adds r7, 0x2 -_0806D1C4: - cmp r7, 0 - beq _0806D216 - ldr r0, _0806D3C0 - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80522F4 - mov r1, r8 - ldr r0, [r1] - muls r0, r7 - cmp r0, 0 - bge _0806D1E0 - adds r0, 0x3 -_0806D1E0: - asrs r0, 2 - str r0, [sp, 0xC] - add r2, sp, 0xC - mov r3, r8 - ldrb r0, [r3, 0xC] - movs r1, 0 - strb r0, [r2, 0xC] - movs r0, 0x6 - str r0, [sp, 0x10] - movs r0, 0x2 - str r0, [sp, 0x14] - adds r0, r2, 0 - strb r1, [r0, 0xD] - strb r1, [r0, 0xE] - strb r1, [r0, 0xF] - ldr r0, [sp, 0x3C] - str r0, [sp] - mov r1, r10 - str r1, [sp, 0x4] - ldr r2, [sp, 0x48] - str r2, [sp, 0x8] - adds r0, r5, 0 - adds r1, r6, 0 - add r2, sp, 0xC - movs r3, 0 - bl sub_806D528 -_0806D216: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D224 - b _0806D514 -_0806D224: - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806D232 - b _0806D514 -_0806D232: - mov r3, r9 - cmp r3, 0 - bne _0806D23A - b _0806D48A -_0806D23A: - cmp r6, r5 - bne _0806D240 - b _0806D48A -_0806D240: - movs r0, 0x4 - ldrsh r1, [r6, r0] - movs r2, 0x4 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0806D250 - negs r1, r1 -_0806D250: - cmp r1, 0x1 - ble _0806D256 - b _0806D48A -_0806D256: - movs r3, 0x6 - ldrsh r1, [r6, r3] - movs r2, 0x6 - ldrsh r0, [r5, r2] - subs r1, r0 - cmp r1, 0 - bge _0806D266 - negs r1, r1 -_0806D266: - cmp r1, 0x1 - ble _0806D26C - b _0806D48A -_0806D26C: - mov r3, r8 - ldrb r0, [r3, 0xC] - bl sub_8092354 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r4, [r6, 0x70] - adds r0, r5, 0 - movs r1, 0x5 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D2C2 - adds r0, r6, 0 - movs r1, 0xA - bl HasType - lsls r0, 24 - cmp r0, 0 - bne _0806D2C2 - adds r0, r6, 0 - movs r1, 0x37 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806D2C2 - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3C4 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D2C2 - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x1 - orrs r0, r1 - strh r0, [r2] -_0806D2C2: - adds r0, r5, 0 - movs r1, 0xA - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D2EE - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3C8 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D2EE - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x2 - orrs r0, r1 - strh r0, [r2] -_0806D2EE: - adds r0, r5, 0 - movs r1, 0x17 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D328 - adds r0, r6, 0 - movs r1, 0x11 - bl HasType - lsls r0, 24 - cmp r0, 0 - beq _0806D328 - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3CC - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D328 - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x4 - orrs r0, r1 - strh r0, [r2] -_0806D328: - adds r0, r5, 0 - movs r1, 0x20 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D358 - cmp r7, 0 - beq _0806D358 - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3D0 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D358 - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x8 - orrs r0, r1 - strh r0, [r2] -_0806D358: - adds r0, r5, 0 - movs r1, 0x27 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D384 - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3D4 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D384 - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x20 - orrs r0, r1 - strh r0, [r2] -_0806D384: - adds r0, r5, 0 - movs r1, 0x3D - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D3FA - cmp r7, 0 - beq _0806D3FA - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D3D8 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D3FA - movs r0, 0x3 - bl DungeonRandomCapped - cmp r0, 0 - bgt _0806D3DC - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r0, 0x40 - b _0806D3F6 - .align 2, 0 -_0806D3BC: .4byte gUnknown_8106A4C -_0806D3C0: .4byte gUnknown_80FCFA4 -_0806D3C4: .4byte gUnknown_80F4E10 -_0806D3C8: .4byte gUnknown_80F4E12 -_0806D3CC: .4byte gUnknown_80F4E14 -_0806D3D0: .4byte gUnknown_80F4E16 -_0806D3D4: .4byte gUnknown_80F4E18 -_0806D3D8: .4byte gUnknown_80F4E1A -_0806D3DC: - cmp r0, 0x1 - bgt _0806D3EC - movs r0, 0xBC - lsls r0, 1 - adds r2, r4, r0 - ldrh r1, [r2] - movs r0, 0x10 - b _0806D3F6 -_0806D3EC: - movs r1, 0xBC - lsls r1, 1 - adds r2, r4, r1 - ldrh r1, [r2] - movs r0, 0x80 -_0806D3F6: - orrs r0, r1 - strh r0, [r2] -_0806D3FA: - adds r0, r5, 0 - movs r1, 0x3E - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D428 - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D4D4 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D428 - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - subs r3, 0x78 - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2] -_0806D428: - adds r0, r5, 0 - movs r1, 0x44 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D45A - cmp r7, 0 - beq _0806D45A - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D4D8 - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D45A - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - adds r3, 0x88 - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2] -_0806D45A: - adds r0, r5, 0 - movs r1, 0x1 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D48A - movs r0, 0x64 - bl DungeonRandomCapped - ldr r1, _0806D4DC - movs r2, 0 - ldrsh r1, [r1, r2] - cmp r0, r1 - bge _0806D48A - movs r3, 0xBC - lsls r3, 1 - adds r2, r4, r3 - ldrh r1, [r2] - movs r3, 0x80 - lsls r3, 3 - adds r0, r3, 0 - orrs r0, r1 - strh r0, [r2] -_0806D48A: - adds r0, r6, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806D514 - adds r0, r5, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806D514 - mov r0, r9 - cmp r0, 0 - beq _0806D514 - ldr r2, [r5, 0x70] - adds r6, r2, 0 - adds r3, r2, 0 - adds r3, 0xD0 - ldrb r0, [r3] - cmp r0, 0x2 - bne _0806D514 - ldr r0, _0806D4E0 - ldr r1, [r0] - adds r0, r2, 0 - adds r0, 0xD8 - ldrb r0, [r0] - lsls r0, 2 - ldr r2, _0806D4E4 - adds r1, r2 - adds r1, r0 - ldr r4, [r1] - cmp r4, 0 - bne _0806D4E8 - strb r4, [r3] - b _0806D514 - .align 2, 0 -_0806D4D4: .4byte gUnknown_80F4E1C -_0806D4D8: .4byte gUnknown_80F4E1E -_0806D4DC: .4byte gUnknown_80F4E20 -_0806D4E0: .4byte gDungeonGlobalData -_0806D4E4: .4byte 0x000135cc -_0806D4E8: - ldr r0, [r4, 0x70] - adds r0, 0x98 - adds r1, r6, 0 - adds r1, 0xD4 - ldr r2, [r0] - ldr r0, [r1] - cmp r2, r0 - beq _0806D4FE - movs r0, 0 - strb r0, [r3] - b _0806D514 -_0806D4FE: - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_8041D00 - mov r3, r8 - ldr r1, [r3] - ldr r3, _0806D524 - adds r0, r4, 0 - movs r2, 0xC - bl sub_806F324 -_0806D514: - 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 -_0806D524: .4byte 0x000001f9 - thumb_func_end sub_806D010 - - thumb_func_start sub_806D528 -sub_806D528: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x58 - mov r9, r0 - adds r7, r1, 0 - adds r5, r2, 0 - str r3, [sp, 0x4C] - ldr r0, [sp, 0x7C] - lsls r0, 16 - asrs r0, 16 - str r0, [sp, 0x50] - movs r0, 0 - str r0, [sp, 0x54] - mov r10, r0 - mov r8, r0 - mov r1, r10 - strb r1, [r5, 0xF] - adds r0, r7, 0 - bl GetEntityType - cmp r0, 0x1 - beq _0806D55C - b _0806D754 -_0806D55C: - ldr r6, [r7, 0x70] - mov r0, r9 - adds r1, r7, 0 - bl sub_807A96C - mov r0, r9 - adds r1, r7, 0 - bl SetShopkeeperAggression - mov r0, r9 - bl GetEntityType - cmp r0, 0x1 - bne _0806D592 - mov r2, r9 - ldr r0, [r2, 0x70] - adds r0, 0xDC - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806D592 - ldrb r0, [r5, 0xE] - cmp r0, 0 - bne _0806D592 - ldr r0, _0806D5C8 - movs r3, 0 - ldrsh r0, [r0, r3] - str r0, [r5] -_0806D592: - ldr r0, _0806D5CC - ldr r1, [sp, 0x50] - cmp r1, r0 - beq _0806D5DC - adds r0, r7, 0 - movs r1, 0xD - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D5DC - ldr r1, [r5] - ldr r0, _0806D5D0 - cmp r1, r0 - bne _0806D5DC - ldr r0, _0806D5D4 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0806D5D8 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 - b _0806D71E - .align 2, 0 -_0806D5C8: .4byte gUnknown_80F4F8C -_0806D5CC: .4byte 0x0000020e -_0806D5D0: .4byte 0x0000270f -_0806D5D4: .4byte gUnknown_202DFE8 -_0806D5D8: .4byte gUnknown_80FCA90 -_0806D5DC: - adds r0, r6, 0 - adds r0, 0xB0 - ldrb r4, [r0] - mov r10, r0 - cmp r4, 0x1 - bne _0806D618 - ldr r0, _0806D610 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0806D614 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 - mov r0, r9 - adds r1, r7, 0 - bl sub_8042238 - strb r4, [r5, 0xF] -_0806D608: - movs r0, 0 - bl _0806E0F0 - .align 2, 0 -_0806D610: .4byte gUnknown_202DFE8 -_0806D614: .4byte gUnknown_80F9600 -_0806D618: - adds r0, r6, 0 - adds r0, 0xA8 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0806D62A - cmp r0, 0x5 - beq _0806D62A - cmp r0, 0x3 - bne _0806D63A -_0806D62A: - adds r0, r6, 0 - adds r0, 0xA9 - ldrb r0, [r0] - cmp r0, 0x7F - bne _0806D63A - adds r0, r7, 0 - bl sub_807A9B0 -_0806D63A: - adds r0, r7, 0 - movs r1, 0x23 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D660 - ldrb r0, [r5, 0xC] - cmp r0, 0x5 - bne _0806D660 -_0806D64E: - ldr r2, [r5] - movs r0, 0 - str r0, [sp] - mov r0, r9 - adds r1, r7, 0 - movs r3, 0 - bl HealTargetHP - b _0806D754 -_0806D660: - adds r0, r7, 0 - movs r1, 0x24 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806D674 - ldrb r0, [r5, 0xC] - cmp r0, 0x3 - beq _0806D64E -_0806D674: - movs r2, 0xA9 - lsls r2, 1 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D6D0 - ldrb r0, [r5, 0xD] - cmp r0, 0 - beq _0806D692 - ldr r0, _0806D6A4 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D692: - ldr r0, [r5, 0x8] - cmp r0, 0x1 - beq _0806D6B0 - cmp r0, 0x1 - bcc _0806D6A8 - cmp r0, 0x3 - beq _0806D6C4 - b _0806D6D0 - .align 2, 0 -_0806D6A4: .4byte gUnknown_80F9614 -_0806D6A8: - ldr r0, _0806D6AC - b _0806D6B2 - .align 2, 0 -_0806D6AC: .4byte gUnknown_80F9630 -_0806D6B0: - ldr r0, _0806D6C0 -_0806D6B2: - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 - b _0806D6D0 - .align 2, 0 -_0806D6C0: .4byte gUnknown_80F9654 -_0806D6C4: - ldr r0, _0806D728 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D6D0: - ldr r4, _0806D72C - adds r0, r4, 0 - mov r1, r9 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r1, [r5] - cmp r1, 0 - bne _0806D760 - mov r0, r9 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0806D734 - adds r0, r7, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0806D734 - movs r3, 0xA9 - lsls r3, 1 - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D71E - ldr r0, _0806D730 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D71E: - mov r0, r9 - adds r1, r7, 0 - bl sub_8042238 - b _0806D754 - .align 2, 0 -_0806D728: .4byte gUnknown_80F9670 -_0806D72C: .4byte gAvailablePokemonNames -_0806D730: .4byte gUnknown_80F9688 -_0806D734: - movs r1, 0xA9 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D74C - ldr r0, _0806D75C - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D74C: - movs r0, 0x1E - movs r1, 0x18 - bl sub_803E708 -_0806D754: - movs r0, 0x1 - strb r0, [r5, 0xF] - b _0806D608 - .align 2, 0 -_0806D75C: .4byte gUnknown_80F9688 -_0806D760: - ldr r0, _0806D7B8 - cmp r1, r0 - bne _0806D7C4 - ldr r0, [sp, 0x80] - cmp r0, 0 - beq _0806D796 - adds r0, r7, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0806D796 - adds r0, r7, 0 - bl sub_8045128 - mov r8, r0 - movs r0, 0x14 - movs r1, 0x18 - bl sub_803E708 - mov r2, r8 - ldrh r1, [r2, 0x4] - movs r0, 0x4 - orrs r0, r1 - strh r0, [r2, 0x4] - bl sub_8049ED4 -_0806D796: - movs r3, 0xA9 - lsls r3, 1 - adds r0, r6, r3 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D7AE - ldr r0, _0806D7BC - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D7AE: - adds r1, r6, 0 - adds r1, 0xA0 - ldr r0, _0806D7C0 - str r0, [r1] - b _0806D84A - .align 2, 0 -_0806D7B8: .4byte 0x0000270f -_0806D7BC: .4byte gUnknown_80F96A8 -_0806D7C0: .4byte 0x000003e7 -_0806D7C4: - ldr r0, _0806D824 - str r1, [r0] - ldr r1, _0806D828 - ldr r0, [r5, 0x4] - lsls r0, 2 - adds r0, r1 - ldr r4, [r0] - adds r2, r6, 0 - adds r2, 0xA0 - ldr r0, [r2] - ldr r1, [r5] - adds r0, r1 - str r0, [r2] - ldr r1, _0806D82C - cmp r0, r1 - ble _0806D7E6 - str r1, [r2] -_0806D7E6: - adds r0, r7, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0806D830 - ldr r0, [r5, 0x4] - cmp r0, 0xE - beq _0806D808 - ldr r0, [r5] - negs r0, r0 - movs r3, 0x1 - negs r3, r3 - adds r1, r7, 0 - movs r2, 0x1 - bl sub_803ED30 -_0806D808: - movs r1, 0xA9 - lsls r1, 1 - adds r0, r6, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D84A - cmp r4, 0 - beq _0806D84A - mov r0, r9 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_80522F4 - b _0806D84A - .align 2, 0 -_0806D824: .4byte gUnknown_202DE30 -_0806D828: .4byte gUnknown_80F9764 -_0806D82C: .4byte 0x000003e7 -_0806D830: - movs r2, 0xA9 - lsls r2, 1 - adds r0, r6, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0806D84A - cmp r4, 0 - beq _0806D84A - mov r0, r9 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_80522F4 -_0806D84A: - ldr r0, [r5, 0x4] - cmp r0, 0xE - bne _0806D858 - movs r3, 0xE - ldrsh r0, [r6, r3] - cmp r0, 0x1 - bgt _0806D900 -_0806D858: - mov r0, r8 - cmp r0, 0 - bne _0806D900 - adds r0, r7, 0 - bl sub_8045888 - lsls r0, 24 - cmp r0, 0 - beq _0806D900 - mov r2, r9 - ldr r1, [r2, 0x4] - ldr r0, [r7, 0x4] - cmp r1, r0 - beq _0806D8E6 - mov r0, r9 - bl GetEntityType - cmp r0, 0x1 - bne _0806D8E6 - movs r4, 0 - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _0806D8B4 - ldr r0, _0806D8B0 - ldr r0, [r0] - ldrb r0, [r0, 0x2] - cmp r0, 0 - beq _0806D8B6 - adds r0, r7, 0 - bl sub_806A458 - lsls r0, 24 - cmp r0, 0 - bne _0806D8B6 - adds r0, r7, 0 - mov r1, r9 - bl CanSee - lsls r0, 24 - lsrs r0, 24 - negs r1, r0 - orrs r1, r0 - lsrs r4, r1, 31 - b _0806D8B6 - .align 2, 0 -_0806D8B0: .4byte gUnknown_203B46C -_0806D8B4: - movs r4, 0 -_0806D8B6: - adds r0, r6, 0 - adds r0, 0xE8 - ldrb r0, [r0] - subs r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806D8C8 - movs r4, 0 -_0806D8C8: - cmp r4, 0 - beq _0806D8E0 - ldr r4, [r7, 0x70] - adds r0, r7, 0x4 - mov r1, r9 - adds r1, 0x4 - bl CalculateFacingDir - movs r1, 0x7 - ands r0, r1 - adds r4, 0x46 - strb r0, [r4] -_0806D8E0: - adds r0, r7, 0 - bl TargetTileInFront -_0806D8E6: - ldr r0, [r7, 0x70] - adds r0, 0x46 - ldrb r2, [r0] - adds r0, r7, 0 - movs r1, 0x6 - bl sub_806CDD4 - adds r0, r7, 0 - adds r1, r5, 0 - bl sub_80420E8 - movs r3, 0x1 - str r3, [sp, 0x54] -_0806D900: - movs r0, 0xE - ldrsh r4, [r6, r0] - ldr r1, [r5] - cmp r4, r1 - ble _0806D910 - ldrh r0, [r6, 0xE] - subs r0, r1 - b _0806D912 -_0806D910: - movs r0, 0 -_0806D912: - strh r0, [r6, 0xE] - adds r0, r6, 0 - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x9 - bne _0806D93C - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - bne _0806D958 - movs r0, 0x1 - strh r0, [r6, 0xE] - ldr r0, _0806D938 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 - b _0806D958 - .align 2, 0 -_0806D938: .4byte gUnknown_8100548 -_0806D93C: - ldr r2, [sp, 0x4C] - cmp r2, 0x1 - bne _0806D958 - movs r3, 0xE - ldrsh r0, [r6, r3] - cmp r0, 0 - bne _0806D958 - strh r2, [r6, 0xE] - ldr r0, _0806D9C8 - ldr r2, [r0] - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 -_0806D958: - movs r1, 0xE - ldrsh r0, [r6, r1] - subs r4, r0 - cmp r4, 0 - bge _0806D964 - movs r4, 0 -_0806D964: - ldr r2, [sp, 0x54] - cmp r2, 0 - bne _0806D970 - mov r3, r8 - cmp r3, 0 - beq _0806D978 -_0806D970: - movs r0, 0xA - movs r1, 0x18 - bl sub_803E708 -_0806D978: - movs r1, 0xE - ldrsh r0, [r6, r1] - cmp r0, 0 - beq _0806D9D4 - ldr r2, [sp, 0x54] - cmp r2, 0 - beq _0806D98E - adds r0, r7, 0 - movs r1, 0x8 - bl sub_806CE68 -_0806D98E: - adds r0, r7, 0 - movs r1, 0x10 - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806D9B2 - cmp r4, 0 - ble _0806D9B2 - ldr r1, [r5] - ldr r0, _0806D9CC - cmp r1, r0 - beq _0806D9B2 - mov r0, r9 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_8071D4C -_0806D9B2: - mov r3, r8 - cmp r3, 0 - bne _0806D9BA - b _0806D608 -_0806D9BA: - ldrh r1, [r3, 0x4] - ldr r0, _0806D9D0 - ands r0, r1 - strh r0, [r3, 0x4] - bl sub_8049ED4 - b _0806D608 - .align 2, 0 -_0806D9C8: .4byte gUnknown_810056C -_0806D9CC: .4byte 0x0000270f -_0806D9D0: .4byte 0x0000fffb -_0806D9D4: - adds r0, r6, 0 - adds r0, 0xE4 - ldrb r0, [r0] - cmp r0, 0x2 - bne _0806D9E6 - mov r0, r9 - adds r1, r7, 0 - bl sub_807A7C8 -_0806D9E6: - mov r0, r8 - cmp r0, 0 - beq _0806DA18 - movs r0, 0x14 - movs r1, 0x18 - bl sub_803E708 - adds r1, r7, 0 - adds r1, 0x22 - movs r0, 0x2 - strb r0, [r1] - movs r0, 0xA - movs r1, 0x18 - bl sub_803E708 - mov r2, r8 - ldrh r1, [r2, 0x4] - ldr r0, _0806DA14 - ands r0, r1 - strh r0, [r2, 0x4] - bl sub_8049ED4 - b _0806DA2E - .align 2, 0 -_0806DA14: .4byte 0x0000fffb -_0806DA18: - ldr r3, [sp, 0x54] - cmp r3, 0 - beq _0806DA2E - adds r1, r7, 0 - adds r1, 0x22 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x1E - movs r1, 0x18 - bl sub_803E708 -_0806DA2E: - movs r0, 0x1 - mov r8, r0 - mov r0, r9 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806DA50 - mov r0, r9 - bl GetEntityType - cmp r0, 0x1 - bne _0806DA50 - cmp r9, r7 - beq _0806DA50 - movs r1, 0 - mov r8, r1 -_0806DA50: - movs r2, 0xA6 - lsls r2, 1 - adds r1, r6, r2 - movs r0, 0 - strb r0, [r1] - ldr r4, _0806DA88 - adds r0, r4, 0 - mov r1, r9 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, [r5, 0x4] - subs r0, 0x13 - cmp r0, 0x1 - bhi _0806DA9C - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _0806DA90 - ldr r0, _0806DA8C - ldr r2, [r0] - b _0806DAC2 - .align 2, 0 -_0806DA88: .4byte gAvailablePokemonNames -_0806DA8C: .4byte gUnknown_80F9E44 -_0806DA90: - ldr r0, _0806DA98 - ldr r1, [r0] - b _0806DB86 - .align 2, 0 -_0806DA98: .4byte gUnknown_80F9E44 -_0806DA9C: - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _0806DAD0 - adds r0, r6, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806DAB8 - ldr r0, _0806DAB4 - mov r3, r8 - lsls r1, r3, 2 - b _0806DB82 - .align 2, 0 -_0806DAB4: .4byte gUnknown_80F9DF0 -_0806DAB8: - ldr r0, _0806DACC - mov r2, r8 - lsls r1, r2, 2 - adds r1, r0 - ldr r2, [r1] -_0806DAC2: - mov r0, r9 - adds r1, r7, 0 - bl sub_80522F4 - b _0806DBA4 - .align 2, 0 -_0806DACC: .4byte gUnknown_80F9CC0 -_0806DAD0: - ldr r2, _0806DB04 - ldrb r1, [r6, 0xA] - movs r0, 0x64 - muls r0, r1 - ldr r3, _0806DB08 - adds r0, r3 - ldr r1, [r2] - adds r3, r1, r0 - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0806DB00 - adds r0, r6, 0 - adds r0, 0x40 - ldrb r1, [r0] - adds r2, r0, 0 - cmp r1, 0x41 - bne _0806DB18 - ldr r0, _0806DB0C - ldr r0, [r0] - ldr r1, _0806DB10 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0806DB18 -_0806DB00: - ldr r0, _0806DB14 - b _0806DB7E - .align 2, 0 -_0806DB04: .4byte gRecruitedPokemonRef -_0806DB08: .4byte 0x00008df8 -_0806DB0C: .4byte gDungeonGlobalData -_0806DB10: .4byte 0x0000065c -_0806DB14: .4byte gUnknown_80F9CEC -_0806DB18: - ldrb r0, [r2] - cmp r0, 0x4A - beq _0806DB22 - cmp r0, 0x47 - bne _0806DB26 -_0806DB22: - movs r0, 0x1 - b _0806DB28 -_0806DB26: - movs r0, 0 -_0806DB28: - cmp r0, 0 - beq _0806DB38 - ldr r0, _0806DB34 - mov r3, r8 - lsls r1, r3, 2 - b _0806DB82 - .align 2, 0 -_0806DB34: .4byte gUnknown_80F9DAC -_0806DB38: - adds r0, r6, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806DB4C - ldr r0, _0806DB48 - b _0806DB7E - .align 2, 0 -_0806DB48: .4byte gUnknown_80F9DF0 -_0806DB4C: - movs r1, 0xA - ldrsh r0, [r3, r1] - bl sub_806A58C - lsls r0, 24 - cmp r0, 0 - beq _0806DB94 - ldr r0, _0806DB70 - ldr r0, [r0] - ldr r2, _0806DB74 - adds r0, r2 - ldrb r0, [r0] - cmp r0, 0 - beq _0806DB7C - ldr r0, _0806DB78 - mov r3, r8 - lsls r1, r3, 2 - b _0806DB82 - .align 2, 0 -_0806DB70: .4byte gDungeonGlobalData -_0806DB74: .4byte 0x0000065d -_0806DB78: .4byte gUnknown_80F9D8C -_0806DB7C: - ldr r0, _0806DB90 -_0806DB7E: - mov r2, r8 - lsls r1, r2, 2 -_0806DB82: - adds r1, r0 - ldr r1, [r1] -_0806DB86: - mov r0, r9 - bl sub_805239C - b _0806DBA4 - .align 2, 0 -_0806DB90: .4byte gUnknown_80F9D84 -_0806DB94: - ldr r0, _0806DC4C - mov r3, r8 - lsls r1, r3, 2 - adds r1, r0 - ldr r1, [r1] - mov r0, r9 - bl sub_805239C -_0806DBA4: - mov r1, r10 - ldrb r0, [r1] - subs r0, 0x3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bhi _0806DBBC - adds r0, r6, 0 - adds r0, 0x9C - ldr r0, [r0] - bl sub_8076CB4 -_0806DBBC: - adds r1, r6, 0 - adds r1, 0x60 - ldrb r3, [r1] - movs r2, 0x1 - mov r8, r2 - mov r0, r8 - ands r0, r3 - adds r5, r1, 0 - cmp r0, 0 - beq _0806DC5C - movs r0, 0x8 - ands r0, r3 - cmp r0, 0 - bne _0806DC5C - movs r0, 0x2 - ands r0, r3 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _0806DC5C - ldrb r0, [r5, 0x2] - cmp r0, 0xD2 - bne _0806DC5C - adds r0, r7, 0 - bl sub_8042148 - adds r0, r7, 0 - adds r0, 0x22 - strb r4, [r0] - ldrh r0, [r6, 0x10] - movs r2, 0 - strh r0, [r6, 0xE] - movs r3, 0xAC - lsls r3, 1 - adds r0, r6, r3 - strb r2, [r0] - movs r1, 0xA6 - lsls r1, 1 - adds r0, r6, r1 - mov r3, r8 - strb r3, [r0] - movs r0, 0x9E - lsls r0, 1 - adds r1, r6, r0 - movs r3, 0xA0 - lsls r3, 1 - adds r0, r6, r3 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _0806DC36 - ldr r0, _0806DC50 - ldr r1, [r0] - ldr r3, _0806DC54 - adds r1, r3 - strb r2, [r1] - ldr r0, [r0] - ldr r1, _0806DC58 - adds r0, r1 - strb r2, [r0] -_0806DC36: - strb r2, [r5, 0x2] - strb r2, [r5, 0x1] - strb r2, [r5] - adds r0, r6, 0 - adds r0, 0xC8 - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806DC48 - b _0806DEC8 -_0806DC48: - b _0806DEE4 - .align 2, 0 -_0806DC4C: .4byte gUnknown_80F9D28 -_0806DC50: .4byte gDungeonGlobalData -_0806DC54: .4byte 0x00000679 -_0806DC58: .4byte 0x00000676 -_0806DC5C: - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0806DC64 - b _0806DDFC -_0806DC64: - mov r10, r5 - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _0806DC72 - b _0806DDFC -_0806DC72: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0806DC7C - b _0806DDFC -_0806DC7C: - ldrb r0, [r5, 0x2] - cmp r0, 0xD8 - beq _0806DC84 - b _0806DDFC -_0806DC84: - movs r4, 0 -_0806DC86: - ldr r0, _0806DD80 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0806DD84 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - mov r8, r0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806DCDE - cmp r8, r7 - beq _0806DCDE - adds r0, r7, 0 - mov r1, r8 - bl CanSee - lsls r0, 24 - cmp r0, 0 - beq _0806DCDE - mov r3, r8 - movs r0, 0x4 - ldrsh r1, [r3, r0] - movs r2, 0x4 - ldrsh r0, [r7, r2] - subs r1, r0 - cmp r1, 0 - bge _0806DCC4 - negs r1, r1 -_0806DCC4: - cmp r1, 0x1 - bgt _0806DCDE - mov r3, r8 - movs r0, 0x6 - ldrsh r1, [r3, r0] - movs r2, 0x6 - ldrsh r0, [r7, r2] - subs r1, r0 - cmp r1, 0 - bge _0806DCDA - negs r1, r1 -_0806DCDA: - cmp r1, 0x1 - ble _0806DCE4 -_0806DCDE: - adds r4, 0x1 - cmp r4, 0x3 - ble _0806DC86 -_0806DCE4: - cmp r4, 0x4 - bne _0806DCEA - b _0806DDFC -_0806DCEA: - adds r0, r7, 0 - bl sub_8042148 - mov r3, r8 - ldr r4, [r3, 0x4] - ldr r1, _0806DD88 - mov r0, r8 - adds r2, r7, 0 - bl sub_8068FE0 - lsls r1, r4, 16 - asrs r1, 16 - asrs r4, 16 - adds r0, r7, 0 - adds r2, r4, 0 - movs r3, 0x1 - bl sub_80694C0 - adds r0, r7, 0 - movs r1, 0 - bl sub_804535C - adds r1, r7, 0 - adds r1, 0x22 - movs r0, 0 - strb r0, [r1] - ldrh r0, [r6, 0x10] - movs r4, 0 - strh r0, [r6, 0xE] - adds r0, r7, 0 - bl sub_8042A24 - movs r1, 0xAC - lsls r1, 1 - adds r0, r6, r1 - strb r4, [r0] - movs r2, 0xA6 - lsls r2, 1 - adds r1, r6, r2 - movs r0, 0x1 - strb r0, [r1] - movs r3, 0x9E - lsls r3, 1 - adds r1, r6, r3 - subs r2, 0xC - adds r0, r6, r2 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _0806DD62 - ldr r0, _0806DD80 - ldr r1, [r0] - ldr r3, _0806DD8C - adds r1, r3 - strb r4, [r1] - ldr r0, [r0] - ldr r1, _0806DD90 - adds r0, r1 - strb r4, [r0] -_0806DD62: - mov r2, r10 - strb r4, [r2, 0x2] - strb r4, [r2, 0x1] - strb r4, [r2] - adds r0, r6, 0 - adds r0, 0xC8 - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806DD94 - mov r0, r9 - adds r1, r7, 0 - movs r2, 0x3 - bl sub_807A5D0 - b _0806DDA2 - .align 2, 0 -_0806DD80: .4byte gDungeonGlobalData -_0806DD84: .4byte 0x0001357c -_0806DD88: .4byte 0x00000221 -_0806DD8C: .4byte 0x00000679 -_0806DD90: .4byte 0x00000676 -_0806DD94: - cmp r0, 0x2 - bne _0806DDA2 - mov r0, r9 - adds r1, r7, 0 - movs r2, 0x2 - bl sub_807A5D0 -_0806DDA2: - adds r0, r7, 0 - bl sub_8078084 - adds r0, r6, 0 - movs r1, 0 - bl sub_806BFC0 - bl sub_800DBBC - adds r0, r7, 0 - bl sub_806A390 - adds r0, r7, 0 - bl sub_806CEBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl sub_806CCB4 - adds r0, r7, 0 - bl sub_80418D4 - ldr r4, _0806DDF0 - adds r0, r4, 0 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - adds r4, 0x50 - adds r0, r4, 0 - mov r1, r8 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0806DDF4 - b _0806DF2E - .align 2, 0 -_0806DDF0: .4byte gAvailablePokemonNames -_0806DDF4: .4byte gUnknown_80FD484 -_0806DDF8: - mov r4, r8 - b _0806DE64 -_0806DDFC: - adds r0, r7, 0 - movs r1, 0x16 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - bne _0806DE0C - b _0806DF48 -_0806DE0C: - movs r4, 0 - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806DE28 - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0806DE28 - ldrb r0, [r5, 0x2] - cmp r0, 0x3A - bne _0806DE28 - adds r4, r5, 0 -_0806DE28: - cmp r4, 0 - bne _0806DE68 - ldrb r0, [r6, 0x6] - cmp r0, 0 - bne _0806DE64 - movs r3, 0 - ldr r0, _0806DED4 - ldr r2, [r0] - mov r12, r2 - movs r0, 0x1 - mov r10, r0 -_0806DE3E: - lsls r0, r3, 2 - add r0, r12 - mov r8, r0 - ldrb r1, [r2] - mov r0, r10 - ands r0, r1 - cmp r0, 0 - beq _0806DE5C - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - bne _0806DE5C - ldrb r0, [r2, 0x2] - cmp r0, 0x3A - beq _0806DDF8 -_0806DE5C: - adds r2, 0x4 - adds r3, 0x1 - cmp r3, 0x13 - ble _0806DE3E -_0806DE64: - cmp r4, 0 - beq _0806DF48 -_0806DE68: - adds r0, r7, 0 - bl sub_8042148 - adds r0, r4, 0 - movs r1, 0x46 - movs r2, 0x2 - bl sub_8045C28 - adds r1, r7, 0 - adds r1, 0x22 - movs r0, 0 - strb r0, [r1] - ldrh r0, [r6, 0x10] - movs r2, 0 - strh r0, [r6, 0xE] - movs r1, 0xAC - lsls r1, 1 - adds r0, r6, r1 - strb r2, [r0] - movs r3, 0xA6 - lsls r3, 1 - adds r1, r6, r3 - movs r0, 0x1 - strb r0, [r1] - movs r0, 0x9E - lsls r0, 1 - adds r1, r6, r0 - subs r3, 0xC - adds r0, r6, r3 - ldr r0, [r0] - str r0, [r1] - ldrb r0, [r6, 0x7] - cmp r0, 0 - beq _0806DEBE - ldr r0, _0806DED8 - ldr r1, [r0] - ldr r3, _0806DEDC - adds r1, r3 - strb r2, [r1] - ldr r0, [r0] - ldr r1, _0806DEE0 - adds r0, r1 - strb r2, [r0] -_0806DEBE: - adds r0, r6, 0 - adds r0, 0xC8 - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806DEE4 -_0806DEC8: - mov r0, r9 - adds r1, r7, 0 - movs r2, 0x3 - bl sub_807A5D0 - b _0806DEF2 - .align 2, 0 -_0806DED4: .4byte gTeamInventory_203B460 -_0806DED8: .4byte gDungeonGlobalData -_0806DEDC: .4byte 0x00000679 -_0806DEE0: .4byte 0x00000676 -_0806DEE4: - cmp r0, 0x2 - bne _0806DEF2 - mov r0, r9 - adds r1, r7, 0 - movs r2, 0x2 - bl sub_807A5D0 -_0806DEF2: - adds r0, r7, 0 - bl sub_8078084 - adds r0, r6, 0 - movs r1, 0 - bl sub_806BFC0 - bl sub_800DBBC - adds r0, r7, 0 - bl sub_806A390 - adds r0, r7, 0 - bl sub_806CEBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r7, 0 - bl sub_806CCB4 - adds r0, r7, 0 - bl sub_80418D4 - ldr r0, _0806DF40 - adds r1, r7, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0806DF44 -_0806DF2E: - ldr r1, [r0] - mov r0, r9 - bl sub_805239C - adds r0, r7, 0 - bl sub_806F63C - bl _0806D608 - .align 2, 0 -_0806DF40: .4byte gUnknown_202DFE8 -_0806DF44: .4byte gUnknown_80FD46C -_0806DF48: - ldrb r4, [r6, 0x7] - cmp r4, 0 - bne _0806DF68 - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806DF68 - adds r1, r7, 0x4 - adds r0, r7, 0 - adds r2, r5, 0 - bl sub_80464C8 - strb r4, [r5, 0x2] - strb r4, [r5, 0x1] - strb r4, [r5] -_0806DF68: - adds r0, r6, 0 - adds r0, 0xF7 - ldrb r0, [r0] - cmp r0, 0 - beq _0806DF7E - ldr r0, _0806E02C - ldr r0, [r0] - ldr r2, _0806E030 - adds r0, r2 - ldr r1, _0806E034 - strh r1, [r0] -_0806DF7E: - movs r3, 0 - mov r10, r3 - mov r0, r9 - bl GetEntityType - cmp r0, 0x1 - bne _0806E066 - mov r0, r9 - ldr r4, [r0, 0x70] - movs r1, 0x2 - ldrsh r0, [r6, r1] - ldrb r1, [r6, 0x9] - bl CalculateEXPGain - adds r5, r0, 0 - adds r0, r6, 0 - adds r0, 0xFB - ldrb r0, [r0] - cmp r0, 0 - beq _0806DFAE - cmp r0, 0x2 - bne _0806DFB4 - lsls r0, r5, 1 - adds r5, r0, r5 -_0806DFAE: - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 -_0806DFB4: - cmp r5, 0 - bne _0806DFBA - movs r5, 0x1 -_0806DFBA: - ldrb r0, [r4, 0x7] - cmp r0, 0 - beq _0806DFC8 - movs r2, 0x2 - ldrsh r0, [r6, r2] - bl sub_80980B4 -_0806DFC8: - adds r0, r6, 0 - adds r0, 0xF4 - ldrb r0, [r0] - cmp r0, 0 - beq _0806DFDA - ldr r3, _0806E038 - adds r1, r4, r3 - movs r0, 0x1 - strb r0, [r1] -_0806DFDA: - ldr r0, [sp, 0x78] - cmp r0, 0x1 - bne _0806E066 - ldrb r0, [r4, 0x6] - cmp r0, 0 - bne _0806E040 - ldrb r0, [r6, 0x6] - cmp r0, 0 - beq _0806E066 - mov r0, r9 - mov r1, r9 - adds r2, r5, 0 - bl sub_8071D4C - movs r6, 0 -_0806DFF8: - ldr r0, _0806E02C - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0806E03C - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806E020 - cmp r4, r9 - beq _0806E020 - mov r0, r9 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_8071D4C -_0806E020: - adds r6, 0x1 - cmp r6, 0x3 - ble _0806DFF8 - movs r3, 0x1 - mov r10, r3 - b _0806E066 - .align 2, 0 -_0806E02C: .4byte gDungeonGlobalData -_0806E030: .4byte 0x0000066a -_0806E034: .4byte 0x000003e7 -_0806E038: .4byte 0x0000014b -_0806E03C: .4byte 0x0001357c -_0806E040: - ldr r5, _0806E0BC - ldr r0, [r5] - ldr r1, _0806E0C0 - adds r0, r1 - ldrb r0, [r0] - bl sub_809033C - lsls r0, 24 - cmp r0, 0 - beq _0806E066 - ldr r2, _0806E0C4 - adds r0, r4, r2 - add r3, sp, 0x78 - ldrb r3, [r3] - strb r3, [r0] - ldr r0, [r5] - add r1, sp, 0x78 - ldrb r1, [r1] - strb r1, [r0, 0xD] -_0806E066: - mov r0, r9 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806E08A - mov r0, r9 - bl GetEntityType - cmp r0, 0x1 - bne _0806E08A - mov r2, r9 - ldr r0, [r2, 0x70] - ldrb r0, [r0, 0x7] - cmp r0, 0 - bne _0806E08A - movs r3, 0 - mov r10, r3 -_0806E08A: - mov r0, r10 - cmp r0, 0 - beq _0806E0E4 - add r0, sp, 0x4 - adds r1, r7, 0 - bl sub_8069D4C - mov r0, r9 - adds r1, r7, 0 - bl sub_806F660 - lsls r0, 24 - cmp r0, 0 - beq _0806E0D8 - mov r0, r9 - adds r1, r7, 0 - add r2, sp, 0x4 - bl sub_806FA5C - lsls r0, 24 - cmp r0, 0 - bne _0806E0CC - ldr r1, _0806E0C8 - adds r0, r7, 0 - b _0806E0DC - .align 2, 0 -_0806E0BC: .4byte gDungeonGlobalData -_0806E0C0: .4byte 0x00000644 -_0806E0C4: .4byte 0x00000149 -_0806E0C8: .4byte 0x000001f5 -_0806E0CC: - ldr r1, _0806E0D4 - movs r0, 0x1 - strb r0, [r1] - b _0806E0EE - .align 2, 0 -_0806E0D4: .4byte gUnknown_202F221 -_0806E0D8: - adds r0, r7, 0 - ldr r1, [sp, 0x50] -_0806E0DC: - mov r2, r9 - bl sub_8068FE0 - b _0806E0EE -_0806E0E4: - adds r0, r7, 0 - ldr r1, [sp, 0x50] - mov r2, r9 - bl sub_8068FE0 -_0806E0EE: - movs r0, 0x1 -_0806E0F0: - add sp, 0x58 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806D528 - - thumb_func_start sub_806E100 -sub_806E100: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x28 - adds r6, r0, 0 - mov r8, r1 - str r2, [sp, 0x18] - lsls r3, 24 - lsrs r7, r3, 24 - movs r0, 0 - mov r9, r0 - movs r1, 0 - str r1, [sp, 0x20] - mov r2, r8 - ldr r2, [r2, 0x70] - str r2, [sp, 0x24] - ldr r3, [sp, 0x18] - ldr r3, [r3, 0x70] - mov r10, r3 - adds r0, r6, 0 - movs r1, 0x1 - bl sub_800A020 - mov r0, r9 - ldr r4, [sp, 0x48] - strb r0, [r4, 0xD] - strb r0, [r4, 0xE] - movs r1, 0 - str r1, [sp, 0x1C] - ldr r0, [sp, 0x18] - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806E14E - movs r0, 0x1 - b _0806E61A -_0806E14E: - cmp r7, 0x1 - beq _0806E156 - cmp r7, 0x7 - bne _0806E15A -_0806E156: - movs r2, 0x1 - str r2, [sp, 0x20] -_0806E15A: - ldr r0, [sp, 0x18] - movs r1, 0x35 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E170 - cmp r7, 0 - beq _0806E170 - movs r3, 0x1 - str r3, [sp, 0x1C] -_0806E170: - movs r0, 0x2 - ldr r4, [sp, 0x48] - str r0, [r4, 0x8] - movs r5, 0 - add r0, sp, 0x10 - mov r9, r0 - b _0806E1F2 -_0806E17E: - mov r1, r10 - adds r1, 0x5C - ldr r2, [sp, 0x20] - cmp r2, 0 - beq _0806E1B4 - adds r0, r1, r5 - ldrb r0, [r0] - cmp r0, 0xE - bne _0806E1B4 - mov r0, r10 - adds r0, 0xF5 - ldrb r0, [r0] - cmp r0, 0 - bne _0806E1B4 - movs r4, 0 - ldr r0, _0806E1AC - ldr r0, [r0] - ldr r3, _0806E1B0 - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] - b _0806E1CA - .align 2, 0 -_0806E1AC: .4byte gDungeonGlobalData -_0806E1B0: .4byte 0x00000179 -_0806E1B4: - ldr r2, _0806E4E4 - adds r0, r1, r5 - ldrb r1, [r0] - lsls r1, 1 - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 2 - adds r1, r0 - adds r1, r2 - movs r0, 0 - ldrsh r4, [r1, r0] -_0806E1CA: - cmp r4, 0x2 - beq _0806E1DC - lsls r0, r4, 2 - add r0, sp - ldr r2, [r0] - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E1DC: - lsls r0, r5, 2 - add r0, r9 - str r4, [r0] - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r1, 0x9E - lsls r1, 1 - adds r0, r1 - adds r0, r5 - strb r4, [r0] - adds r5, 0x1 -_0806E1F2: - cmp r5, 0x1 - bgt _0806E20E - mov r1, sp - ldr r0, _0806E4EC - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r0] - str r0, [r1] - adds r0, r6, 0 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - beq _0806E17E -_0806E20E: - ldr r2, _0806E4F0 - mov r1, r9 - ldr r0, [r1, 0x4] - lsls r0, 2 - ldr r1, [sp, 0x10] - lsls r1, 4 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - ldr r2, [sp, 0x48] - str r0, [r2, 0x8] - movs r3, 0x1 - mov r9, r3 - cmp r0, 0x3 - beq _0806E240 - movs r4, 0 - mov r9, r4 - ldr r0, [sp, 0x1C] - cmp r0, 0 - beq _0806E240 - ldr r0, _0806E4F4 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [r6] - str r1, [r6, 0x4] -_0806E240: - cmp r7, 0x2 - beq _0806E248 - cmp r7, 0x6 - bne _0806E26C -_0806E248: - ldr r0, [sp, 0x18] - movs r1, 0x2 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E26C - ldr r0, _0806E4E8 - ldr r0, [r0] - ldr r2, _0806E4F8 - adds r1, r0, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E4FC - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E26C: - cmp r7, 0x2 - bne _0806E2A0 - ldr r0, [sp, 0x18] - bl GetFlashFireStatus - lsls r0, 24 - cmp r0, 0 - beq _0806E2A0 - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r3, 0xB7 - lsls r3, 1 - adds r0, r3 - movs r4, 0 - movs r5, 0x1 - strb r5, [r0] - adds r0, r6, 0 - movs r1, 0 - bl sub_800A020 - ldr r0, [sp, 0x48] - str r4, [r0, 0x8] - strb r4, [r0, 0xD] - strb r5, [r0, 0xE] - movs r1, 0 - mov r9, r1 -_0806E2A0: - cmp r7, 0x9 - bne _0806E2D2 - ldr r0, [sp, 0x18] - movs r1, 0x37 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E2D2 - ldr r0, _0806E4E8 - ldr r0, [r0] - ldr r2, _0806E500 - adds r0, r2 - movs r4, 0 - movs r5, 0x1 - strb r5, [r0] - adds r0, r6, 0 - movs r1, 0 - bl sub_800A020 - ldr r3, [sp, 0x48] - str r4, [r3, 0x8] - strb r4, [r3, 0xD] - strb r5, [r3, 0xE] - mov r9, r4 -_0806E2D2: - cmp r7, 0x3 - bne _0806E340 - mov r0, r8 - movs r1, 0x10 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E340 - movs r4, 0 - ldr r0, [sp, 0x24] - movs r2, 0x10 - ldrsh r1, [r0, r2] - cmp r1, 0 - bge _0806E2F2 - adds r1, 0x3 -_0806E2F2: - asrs r1, 2 - ldr r3, [sp, 0x24] - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r1, r0 - blt _0806E300 - movs r4, 0x1 -_0806E300: - ldr r0, [sp, 0x24] - movs r1, 0x80 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r5, r0, 24 - cmp r4, 0 - beq _0806E32A - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r3, 0xB8 - lsls r3, 1 - adds r0, r3 - movs r1, 0x1 - strb r1, [r0] - ldr r2, _0806E504 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E32A: - cmp r5, 0 - beq _0806E340 - mov r0, r8 - bl sub_80428EC - ldr r0, _0806E508 - ldr r2, [r0] - mov r0, r8 - ldr r1, [sp, 0x18] - bl sub_80522F4 -_0806E340: - cmp r7, 0x4 - bne _0806E3AC - mov r0, r8 - movs r1, 0x1A - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E3AC - movs r4, 0 - ldr r0, [sp, 0x24] - movs r2, 0x10 - ldrsh r1, [r0, r2] - cmp r1, 0 - bge _0806E360 - adds r1, 0x3 -_0806E360: - asrs r1, 2 - ldr r3, [sp, 0x24] - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r1, r0 - blt _0806E36E - movs r4, 0x1 -_0806E36E: - ldr r0, [sp, 0x24] - movs r1, 0x2 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r5, r0, 24 - cmp r4, 0 - beq _0806E396 - ldr r0, _0806E4E8 - ldr r0, [r0] - ldr r3, _0806E50C - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E504 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E396: - cmp r5, 0 - beq _0806E3AC - mov r0, r8 - bl sub_80428D8 - ldr r0, _0806E510 - ldr r2, [r0] - mov r0, r8 - ldr r1, [sp, 0x18] - bl sub_80522F4 -_0806E3AC: - cmp r7, 0xC - bne _0806E41A - mov r0, r8 - movs r1, 0x43 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E41A - movs r4, 0 - ldr r0, [sp, 0x24] - movs r2, 0x10 - ldrsh r1, [r0, r2] - cmp r1, 0 - bge _0806E3CC - adds r1, 0x3 -_0806E3CC: - asrs r1, 2 - ldr r3, [sp, 0x24] - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r1, r0 - blt _0806E3DA - movs r4, 0x1 -_0806E3DA: - ldr r0, [sp, 0x24] - movs r1, 0x10 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r5, r0, 24 - cmp r4, 0 - beq _0806E404 - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r3, 0xB9 - lsls r3, 1 - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E504 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E404: - cmp r5, 0 - beq _0806E41A - mov r0, r8 - bl sub_8042978 - ldr r0, _0806E514 - ldr r2, [r0] - mov r0, r8 - ldr r1, [sp, 0x18] - bl sub_80522F4 -_0806E41A: - cmp r7, 0x2 - bne _0806E486 - mov r0, r8 - movs r1, 0x46 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E486 - movs r4, 0 - ldr r0, [sp, 0x24] - movs r2, 0x10 - ldrsh r1, [r0, r2] - cmp r1, 0 - bge _0806E43A - adds r1, 0x3 -_0806E43A: - asrs r1, 2 - ldr r3, [sp, 0x24] - movs r2, 0xE - ldrsh r0, [r3, r2] - cmp r1, r0 - blt _0806E448 - movs r4, 0x1 -_0806E448: - ldr r0, [sp, 0x24] - movs r1, 0x20 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r5, r0, 24 - cmp r4, 0 - beq _0806E470 - ldr r0, _0806E4E8 - ldr r0, [r0] - ldr r3, _0806E518 - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E504 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E470: - cmp r5, 0 - beq _0806E486 - mov r0, r8 - bl sub_804298C - ldr r0, _0806E51C - ldr r2, [r0] - mov r0, r8 - ldr r1, [sp, 0x18] - bl sub_80522F4 -_0806E486: - adds r0, r6, 0 - bl sub_800A2A0 - lsls r0, 24 - cmp r0, 0 - bne _0806E4B8 - mov r0, r8 - adds r1, r7, 0 - bl HasType - lsls r0, 24 - cmp r0, 0 - beq _0806E4B8 - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r4, 0xBA - lsls r4, 1 - adds r0, r4 - movs r1, 0x1 - strb r1, [r0] - ldr r2, _0806E520 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E4B8: - mov r0, r8 - bl GetWeather - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x1 - bne _0806E53E - cmp r7, 0x2 - bne _0806E524 - ldr r0, _0806E4E8 - ldr r0, [r0] - movs r1, 0xB6 - lsls r1, 1 - adds r0, r1 - strb r4, [r0] - ldr r2, _0806E520 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C - b _0806E53E - .align 2, 0 -_0806E4E4: .4byte gTypeEffectivenessChart -_0806E4E8: .4byte gDungeonGlobalData -_0806E4EC: .4byte gUnknown_8106F54 -_0806E4F0: .4byte gUnknown_80F54B4 -_0806E4F4: .4byte gUnknown_8106EFC -_0806E4F8: .4byte 0x0000016d -_0806E4FC: .4byte gUnknown_8106F1C -_0806E500: .4byte 0x0000016f -_0806E504: .4byte gUnknown_8106F0C -_0806E508: .4byte gUnknown_80FEDA8 -_0806E50C: .4byte 0x00000171 -_0806E510: .4byte gUnknown_80FED88 -_0806E514: .4byte gUnknown_80FEDC8 -_0806E518: .4byte 0x00000173 -_0806E51C: .4byte gUnknown_80FEDE8 -_0806E520: .4byte gUnknown_8106F14 -_0806E524: - cmp r7, 0x3 - bne _0806E53E - ldr r0, _0806E560 - ldr r0, [r0] - movs r2, 0xB6 - lsls r2, 1 - adds r0, r2 - strb r4, [r0] - ldr r2, _0806E564 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E53E: - cmp r4, 0x4 - bne _0806E586 - cmp r7, 0x2 - bne _0806E56C - ldr r0, _0806E560 - ldr r0, [r0] - ldr r3, _0806E568 - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E564 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C - b _0806E586 - .align 2, 0 -_0806E560: .4byte gDungeonGlobalData -_0806E564: .4byte gUnknown_8106F1C -_0806E568: .4byte 0x0000016b -_0806E56C: - cmp r7, 0x3 - bne _0806E586 - ldr r0, _0806E62C - ldr r0, [r0] - ldr r2, _0806E630 - adds r1, r0, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E634 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E586: - cmp r4, 0x3 - bne _0806E5A6 - cmp r7, 0x1 - beq _0806E5A6 - ldr r2, _0806E638 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C - ldr r0, _0806E62C - ldr r0, [r0] - movs r3, 0xB5 - lsls r3, 1 - adds r1, r0, r3 - movs r0, 0x1 - strb r0, [r1] -_0806E5A6: - ldr r0, _0806E62C - ldr r1, [r0] - ldr r2, _0806E63C - adds r0, r1, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0806E5B8 - cmp r4, 0x6 - bne _0806E5CE -_0806E5B8: - cmp r7, 0x5 - bne _0806E5CE - ldr r3, _0806E640 - adds r1, r3 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E644 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E5CE: - ldr r0, _0806E62C - ldr r1, [r0] - ldr r4, _0806E648 - adds r0, r1, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0806E5F4 - cmp r7, 0x2 - bne _0806E5F4 - movs r0, 0xBB - lsls r0, 1 - adds r1, r0 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E644 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E5F4: - cmp r7, 0x5 - bne _0806E618 - ldr r0, [sp, 0x24] - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0xB - bne _0806E618 - ldr r0, _0806E62C - ldr r0, [r0] - ldr r2, _0806E64C - adds r1, r0, r2 - movs r0, 0x1 - strb r0, [r1] - ldr r2, _0806E650 - adds r0, r6, 0 - adds r1, r6, 0 - bl sub_800A34C -_0806E618: - mov r0, r9 -_0806E61A: - add sp, 0x28 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806E62C: .4byte gDungeonGlobalData -_0806E630: .4byte 0x0000016b -_0806E634: .4byte gUnknown_8106F14 -_0806E638: .4byte gUnknown_8106F64 -_0806E63C: .4byte 0x0000e277 -_0806E640: .4byte 0x00000175 -_0806E644: .4byte gUnknown_8106F1C -_0806E648: .4byte 0x0000e278 -_0806E64C: .4byte 0x00000177 -_0806E650: .4byte gUnknown_8106F0C - thumb_func_end sub_806E100 - - thumb_func_start WeightWeakTypePicker -WeightWeakTypePicker: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x1C - mov r9, r0 - str r1, [sp, 0x14] - lsls r2, 24 - lsrs r4, r2, 24 - movs r5, 0x1 - movs r0, 0 - str r0, [sp, 0x10] - adds r0, r1, 0 - bl EntityExists - lsls r0, 24 - cmp r0, 0 - beq _0806E6DC - cmp r4, 0x1 - beq _0806E682 - cmp r4, 0x7 - bne _0806E686 -_0806E682: - movs r1, 0x1 - str r1, [sp, 0x10] -_0806E686: - mov r2, r9 - ldr r2, [r2, 0x70] - mov r8, r2 - ldr r3, [sp, 0x14] - ldr r3, [r3, 0x70] - mov r10, r3 - cmp r4, 0x2 - bne _0806E6A2 - ldr r0, [sp, 0x14] - bl GetFlashFireStatus - lsls r0, 24 - cmp r0, 0 - bne _0806E6C6 -_0806E6A2: - cmp r4, 0x5 - bne _0806E6B4 - ldr r0, [sp, 0x14] - movs r1, 0x23 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806E6C6 -_0806E6B4: - cmp r4, 0x3 - bne _0806E6CA - ldr r0, [sp, 0x14] - movs r1, 0x24 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E6CA -_0806E6C6: - movs r0, 0 - b _0806E894 -_0806E6CA: - cmp r4, 0x9 - bne _0806E6E0 - ldr r0, [sp, 0x14] - movs r1, 0x37 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E6E0 -_0806E6DC: - movs r0, 0x1 - b _0806E894 -_0806E6E0: - mov r6, r10 - adds r6, 0x5C - str r6, [sp, 0x18] - lsls r0, r4, 3 - adds r0, r4 - lsls r0, 2 - mov r12, r0 - adds r2, r6, 0 -_0806E6F0: - mov r0, sp - ldr r1, _0806E724 - ldm r1!, {r3,r6,r7} - stm r0!, {r3,r6,r7} - ldr r1, [r1] - str r1, [r0] - ldr r7, [sp, 0x10] - cmp r7, 0 - beq _0806E730 - ldrb r0, [r2] - cmp r0, 0xE - bne _0806E730 - mov r0, r10 - adds r0, 0xF5 - ldrb r0, [r0] - cmp r0, 0 - bne _0806E730 - movs r3, 0 - ldr r0, _0806E728 - ldr r0, [r0] - ldr r6, _0806E72C - adds r1, r0, r6 - movs r0, 0x1 - strb r0, [r1] - b _0806E73E - .align 2, 0 -_0806E724: .4byte gTypeEffectivenessMultipliers -_0806E728: .4byte gDungeonGlobalData -_0806E72C: .4byte 0x00000179 -_0806E730: - ldrb r0, [r2] - lsls r0, 1 - add r0, r12 - ldr r7, _0806E854 - adds r0, r7 - movs r1, 0 - ldrsh r3, [r0, r1] -_0806E73E: - cmp r5, 0 - beq _0806E75E - lsls r0, r3, 2 - add r0, sp - ldr r0, [r0] - muls r5, r0 - lsrs r0, r5, 31 - adds r0, r5, r0 - asrs r5, r0, 1 - cmp r5, 0 - beq _0806E84E - adds r2, 0x1 - ldr r0, [sp, 0x18] - adds r0, 0x1 - cmp r2, r0 - ble _0806E6F0 -_0806E75E: - cmp r4, 0x2 - beq _0806E766 - cmp r4, 0x6 - bne _0806E774 -_0806E766: - ldr r0, [sp, 0x14] - movs r1, 0x2 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806E84E -_0806E774: - cmp r4, 0x3 - bne _0806E7A0 - mov r0, r9 - movs r1, 0x10 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E7A0 - mov r2, r8 - movs r3, 0x10 - ldrsh r1, [r2, r3] - cmp r1, 0 - bge _0806E792 - adds r1, 0x3 -_0806E792: - asrs r1, 2 - mov r6, r8 - movs r7, 0xE - ldrsh r0, [r6, r7] - cmp r1, r0 - blt _0806E7A0 - lsls r5, 1 -_0806E7A0: - cmp r4, 0x4 - bne _0806E7CC - mov r0, r9 - movs r1, 0x1A - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E7CC - mov r0, r8 - movs r2, 0x10 - ldrsh r1, [r0, r2] - cmp r1, 0 - bge _0806E7BE - adds r1, 0x3 -_0806E7BE: - asrs r1, 2 - mov r3, r8 - movs r6, 0xE - ldrsh r0, [r3, r6] - cmp r1, r0 - blt _0806E7CC - lsls r5, 1 -_0806E7CC: - cmp r4, 0xC - bne _0806E7F8 - mov r0, r9 - movs r1, 0x43 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E7F8 - mov r7, r8 - movs r0, 0x10 - ldrsh r1, [r7, r0] - cmp r1, 0 - bge _0806E7EA - adds r1, 0x3 -_0806E7EA: - asrs r1, 2 - mov r2, r8 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _0806E7F8 - lsls r5, 1 -_0806E7F8: - cmp r4, 0x2 - bne _0806E824 - mov r0, r9 - movs r1, 0x46 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E824 - mov r6, r8 - movs r7, 0x10 - ldrsh r1, [r6, r7] - cmp r1, 0 - bge _0806E816 - adds r1, 0x3 -_0806E816: - asrs r1, 2 - mov r2, r8 - movs r3, 0xE - ldrsh r0, [r2, r3] - cmp r1, r0 - blt _0806E824 - lsls r5, 1 -_0806E824: - cmp r5, 0 - beq _0806E84E - mov r0, r9 - adds r1, r4, 0 - bl HasType - lsls r0, 24 - cmp r0, 0 - beq _0806E838 - lsls r5, 1 -_0806E838: - mov r0, r9 - bl GetWeather - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0806E85A - cmp r4, 0x2 - beq _0806E858 - cmp r4, 0x3 - bne _0806E85A -_0806E84E: - movs r0, 0x2 - b _0806E894 - .align 2, 0 -_0806E854: .4byte gTypeEffectivenessChart -_0806E858: - lsls r5, 1 -_0806E85A: - ldr r0, _0806E8A4 - ldr r1, [r0] - ldr r6, _0806E8A8 - adds r1, r6 - ldrb r1, [r1] - cmp r1, 0 - beq _0806E86C - cmp r4, 0x5 - beq _0806E84E -_0806E86C: - ldr r0, [r0] - ldr r7, _0806E8AC - adds r0, r7 - ldrb r0, [r0] - cmp r0, 0 - beq _0806E87C - cmp r4, 0x2 - beq _0806E84E -_0806E87C: - cmp r4, 0x5 - bne _0806E88C - mov r0, r8 - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0xB - bne _0806E88C - lsls r5, 1 -_0806E88C: - cmp r5, 0x2 - ble _0806E892 - movs r5, 0x3 -_0806E892: - adds r0, r5, 0x2 -_0806E894: - add sp, 0x1C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806E8A4: .4byte gDungeonGlobalData -_0806E8A8: .4byte 0x0000e277 -_0806E8AC: .4byte 0x0000e278 - thumb_func_end WeightWeakTypePicker - - thumb_func_start sub_806E8B0 -sub_806E8B0: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0xC - adds r6, r0, 0 - mov r9, r1 - adds r0, r2, 0 - str r3, [sp] - lsls r0, 24 - lsrs r0, 24 - movs r7, 0x1 - movs r1, 0x1 - mov r8, r1 - movs r2, 0x1 - str r2, [sp, 0x4] - str r1, [sp, 0x8] - bl sub_8092354 - movs r2, 0 - mov r10, r2 - lsls r0, 24 - cmp r0, 0 - bne _0806E8E6 - movs r0, 0x1 - mov r10, r0 -_0806E8E6: - adds r0, r6, 0 - movs r1, 0x11 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E92C - ldr r5, [r6, 0x70] - adds r0, r6, 0 - bl HasNegativeStatus - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x1 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r0, 24 - cmp r4, 0 - beq _0806E916 - movs r7, 0x2 -_0806E916: - cmp r0, 0 - beq _0806E92C - adds r0, r6, 0 - bl sub_80428B0 - ldr r0, _0806EADC - ldr r2, [r0] - adds r0, r6, 0 - mov r1, r9 - bl sub_80522F4 -_0806E92C: - adds r0, r6, 0 - movs r1, 0x22 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806E948 - adds r0, r6, 0 - movs r1, 0x4B - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E98E -_0806E948: - ldr r2, [r6, 0x70] - movs r4, 0 - ldr r0, [sp, 0x30] - cmp r0, 0x20 - bgt _0806E95A - mov r1, r10 - cmp r1, 0 - bne _0806E95A - movs r4, 0x1 -_0806E95A: - movs r1, 0x80 - lsls r1, 1 - adds r0, r2, 0 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r1, r0, 24 - cmp r4, 0 - beq _0806E978 - lsls r0, r7, 1 - adds r7, r0, r7 - mov r2, r8 - lsls r2, 1 - mov r8, r2 -_0806E978: - cmp r1, 0 - beq _0806E98E - adds r0, r6, 0 - bl sub_80428C4 - ldr r0, _0806EAE0 - ldr r2, [r0] - adds r0, r6, 0 - mov r1, r9 - bl sub_80522F4 -_0806E98E: - adds r0, r6, 0 - movs r1, 0x30 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E9AC - mov r0, r10 - cmp r0, 0 - bne _0806E9AC - lsls r0, r7, 1 - adds r7, r0, r7 - mov r1, r8 - lsls r1, 1 - mov r8, r1 -_0806E9AC: - ldr r0, [r6, 0x70] - ldrb r0, [r0, 0x6] - movs r4, 0x1 - cmp r0, 0 - beq _0806E9B8 - movs r4, 0 -_0806E9B8: - adds r0, r6, 0 - movs r1, 0x38 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806E9EA - mov r2, r10 - cmp r2, 0x1 - bne _0806E9EA - ldr r0, _0806EAE4 - ldr r0, [r0] - ldr r1, _0806EAE8 - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0806E9EA - lsls r0, r7, 4 - subs r7, r0, r7 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 1 - mov r8, r0 -_0806E9EA: - adds r0, r6, 0 - movs r1, 0x3F - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806EA1C - mov r0, r10 - cmp r0, 0x1 - bne _0806EA1C - ldr r0, _0806EAE4 - ldr r0, [r0] - ldr r1, _0806EAEC - adds r0, r1 - adds r0, r4 - ldrb r0, [r0] - cmp r0, 0 - beq _0806EA1C - lsls r0, r7, 4 - subs r7, r0, r7 - mov r2, r8 - lsls r0, r2, 2 - add r0, r8 - lsls r0, 1 - mov r8, r0 -_0806EA1C: - mov r0, r9 - movs r1, 0x6 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806EA38 - mov r0, r10 - cmp r0, 0 - bne _0806EA38 - lsls r7, 2 - mov r1, r8 - lsls r0, r1, 2 - add r8, r0 -_0806EA38: - mov r0, r9 - movs r1, 0x34 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806EA90 - mov r2, r10 - cmp r2, 0 - bne _0806EA90 - mov r0, r9 - ldr r5, [r0, 0x70] - bl HasNegativeStatus - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - movs r1, 0x8 - adds r2, r4, 0 - bl SetVisualFlags - lsls r0, 24 - lsrs r1, r0, 24 - cmp r4, 0 - beq _0806EA7A - ldr r2, [sp, 0x4] - lsls r0, r2, 1 - adds r2, r0, r2 - str r2, [sp, 0x4] - ldr r0, [sp, 0x8] - lsls r0, 1 - str r0, [sp, 0x8] -_0806EA7A: - cmp r1, 0 - beq _0806EA90 - mov r0, r9 - bl sub_8042940 - ldr r0, _0806EAF0 - ldr r2, [r0] - adds r0, r6, 0 - mov r1, r9 - bl sub_80522F4 -_0806EA90: - ldr r1, [sp] - ldr r0, [r1] - muls r0, r7 - str r0, [r1] - ldr r2, [sp, 0x2C] - ldr r0, [r2] - ldr r1, [sp, 0x4] - muls r0, r1 - str r0, [r2] - mov r2, r8 - cmp r2, 0x1 - beq _0806EAB6 - ldr r1, [sp] - ldr r0, [r1] - mov r1, r8 - bl __divsi3 - ldr r2, [sp] - str r0, [r2] -_0806EAB6: - ldr r0, [sp, 0x8] - cmp r0, 0x1 - beq _0806EACA - ldr r1, [sp, 0x2C] - ldr r0, [r1] - ldr r1, [sp, 0x8] - bl __divsi3 - ldr r2, [sp, 0x2C] - str r0, [r2] -_0806EACA: - add sp, 0xC - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806EADC: .4byte gUnknown_80FEE04 -_0806EAE0: .4byte gUnknown_80FEE2C -_0806EAE4: .4byte gDungeonGlobalData -_0806EAE8: .4byte 0x000037fa -_0806EAEC: .4byte 0x000037f8 -_0806EAF0: .4byte gUnknown_80FEE54 - thumb_func_end sub_806E8B0 - - thumb_func_start sub_806EAF4 -sub_806EAF4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8C - str r0, [sp, 0x70] - mov r9, r1 - adds r7, r3, 0 - ldr r0, [sp, 0xB8] - ldr r1, [sp, 0xBC] - lsls r2, 24 - lsrs r2, 24 - str r2, [sp, 0x74] - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 24 - lsrs r1, 24 - str r1, [sp, 0x78] - ldr r0, [sp, 0x70] - ldr r0, [r0, 0x70] - mov r10, r0 - mov r1, r9 - ldr r1, [r1, 0x70] - str r1, [sp, 0x7C] - adds r0, r2, 0 - bl sub_8092354 - movs r2, 0 - str r2, [sp, 0x80] - lsls r0, 24 - cmp r0, 0 - bne _0806EB3A - movs r3, 0x1 - str r3, [sp, 0x80] -_0806EB3A: - bl sub_806F500 - mov r6, r10 - ldrb r0, [r6, 0x7] - cmp r0, 0 - bne _0806EB72 - movs r0, 0x9E - lsls r0, 1 - add r0, r10 - ldr r0, [r0] - bl GetBellyRoundedUp - adds r1, r0, 0 - cmp r1, 0 - bne _0806EB72 - movs r0, 0x1 - ldr r2, [sp, 0xB0] - str r0, [r2] - str r1, [r2, 0x4] - movs r0, 0x2 - str r0, [r2, 0x8] - add r3, sp, 0x74 - ldrb r3, [r3] - strb r3, [r2, 0xC] - strb r1, [r2, 0xD] - strb r1, [r2, 0xE] - strb r1, [r2, 0xF] - b _0806F294 -_0806EB72: - ldr r0, _0806EBA4 - cmp r4, r0 - bne _0806EBA8 - mov r0, r9 - movs r1, 0x35 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806EBA8 - movs r0, 0x1 - ldr r6, [sp, 0xB0] - str r0, [r6] - movs r1, 0 - str r1, [r6, 0x4] - movs r0, 0x2 - str r0, [r6, 0x8] - add r0, sp, 0x74 - ldrb r0, [r0] - strb r0, [r6, 0xC] - strb r1, [r6, 0xD] - strb r1, [r6, 0xE] - strb r1, [r6, 0xF] - b _0806F294 - .align 2, 0 -_0806EBA4: .4byte 0x00000163 -_0806EBA8: - add r1, sp, 0x74 - ldrb r2, [r1] - ldr r1, [sp, 0xB0] - strb r2, [r1, 0xC] - ldr r1, _0806EDA4 - ldr r0, [r1] - movs r2, 0x9A - lsls r2, 1 - adds r0, r2 - add r3, sp, 0x74 - ldrb r3, [r3] - strb r3, [r0] - ldr r2, [r1] - movs r6, 0x9C - lsls r6, 1 - adds r0, r2, r6 - ldr r1, [sp, 0x80] - str r1, [r0] - lsls r1, 1 - mov r0, r10 - adds r0, 0x1C - adds r0, r1 - movs r3, 0 - ldrsh r4, [r0, r3] - mov r8, r1 - ldr r6, [sp, 0x78] - cmp r6, 0 - beq _0806EBF8 - ldr r0, [sp, 0x74] - cmp r0, 0x2 - bne _0806EBF8 - mov r1, r10 - movs r3, 0x28 - ldrsh r0, [r1, r3] - adds r4, r0 - ldrh r1, [r1, 0x28] - movs r6, 0xA2 - lsls r6, 1 - adds r0, r2, r6 - strh r1, [r0] -_0806EBF8: - mov r0, r10 - movs r2, 0x4 - ldrsh r1, [r0, r2] - ldr r0, _0806EDA8 - cmp r1, r0 - bne _0806EC06 - adds r4, 0x2 -_0806EC06: - movs r0, 0xD1 - lsls r0, 1 - cmp r1, r0 - bne _0806EC10 - subs r4, 0x2 -_0806EC10: - ldr r0, _0806EDAC - cmp r1, r0 - bne _0806EC18 - subs r4, 0x2 -_0806EC18: - cmp r4, 0 - bge _0806EC1E - movs r4, 0 -_0806EC1E: - cmp r4, 0x14 - ble _0806EC24 - movs r4, 0x14 -_0806EC24: - ldr r6, _0806EDA4 - ldr r0, [r6] - movs r3, 0x9F - lsls r3, 1 - adds r0, r3 - strb r4, [r0] - ldr r1, [r6] - mov r5, r10 - adds r5, 0x14 - ldr r0, [sp, 0x80] - adds r2, r5, r0 - ldrb r0, [r2] - adds r0, r7 - adds r3, 0x2 - adds r1, r3 - strh r0, [r1] - ldrb r0, [r2] - adds r0, r7 - lsls r0, 8 - ldr r2, _0806EDB0 - lsls r1, r4, 2 - adds r1, r2 - ldr r1, [r1] - bl sub_8009DA4 - adds r2, r0, 0 - ldr r0, [sp, 0x80] - lsls r4, r0, 2 - mov r0, r10 - adds r0, 0x2C - adds r0, r4 - ldr r1, [r0] - adds r0, r2, 0 - bl sub_8009DA4 - adds r2, r0, 0 - str r5, [sp, 0x88] - cmp r2, 0 - bge _0806EC74 - adds r0, 0xFF -_0806EC74: - asrs r0, 8 - str r0, [sp, 0x8] - ldr r0, [sp, 0x7C] - adds r0, 0x20 - add r0, r8 - movs r1, 0 - ldrsh r3, [r0, r1] - ldr r2, [sp, 0x80] - cmp r2, 0 - bne _0806ECA0 - ldr r0, [sp, 0x7C] - adds r0, 0xC0 - ldrb r0, [r0] - cmp r0, 0x6 - bne _0806ECA0 - ldr r0, [r6] - movs r6, 0xBD - lsls r6, 1 - adds r1, r0, r6 - movs r0, 0x1 - strb r0, [r1] - adds r3, 0x1 -_0806ECA0: - ldr r0, [sp, 0x7C] - movs r2, 0x4 - ldrsh r1, [r0, r2] - ldr r0, _0806EDA8 - cmp r1, r0 - bne _0806ECAE - subs r3, 0x2 -_0806ECAE: - movs r0, 0xD1 - lsls r0, 1 - cmp r1, r0 - bne _0806ECB8 - adds r3, 0x2 -_0806ECB8: - ldr r0, _0806EDAC - cmp r1, r0 - bne _0806ECC0 - subs r3, 0x2 -_0806ECC0: - cmp r3, 0 - bge _0806ECC6 - movs r3, 0 -_0806ECC6: - cmp r3, 0x14 - ble _0806ECCC - movs r3, 0x14 -_0806ECCC: - ldr r5, _0806EDA4 - ldr r0, [r5] - ldr r6, _0806EDB4 - adds r0, r6 - strb r3, [r0] - ldr r2, [r5] - ldr r0, [sp, 0x7C] - adds r0, 0x16 - ldr r1, [sp, 0x80] - adds r0, r1 - ldrb r1, [r0] - adds r6, 0x3 - adds r2, r6 - strh r1, [r2] - ldrb r0, [r0] - lsls r0, 8 - ldr r2, _0806EDB8 - lsls r1, r3, 2 - adds r1, r2 - ldr r1, [r1] - bl sub_8009DA4 - adds r2, r0, 0 - ldr r0, [sp, 0x7C] - adds r0, 0x34 - adds r0, r4 - ldr r1, [r0] - adds r0, r2, 0 - bl sub_8009DA4 - cmp r0, 0 - bge _0806ED0E - adds r0, 0xFF -_0806ED0E: - asrs r0, 8 - str r0, [sp, 0xC] - movs r0, 0x64 - bl DungeonRandomCapped - str r0, [sp, 0x84] - ldr r0, [sp, 0x80] - cmp r0, 0 - bne _0806EDC8 - ldr r0, [sp, 0x70] - movs r1, 0x13 - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806ED4A - ldr r2, _0806EDBC - movs r3, 0 - ldrsh r1, [r2, r3] - ldr r0, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x8] - ldr r1, [r5] - movs r6, 0xB0 - lsls r6, 1 - adds r1, r6 - ldrb r0, [r2] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] -_0806ED4A: - ldr r0, [sp, 0x70] - movs r1, 0x2B - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806ED74 - ldr r2, _0806EDC0 - movs r3, 0 - ldrsh r1, [r2, r3] - ldr r0, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x8] - ldr r1, [r5] - movs r6, 0xB0 - lsls r6, 1 - adds r1, r6 - ldrb r0, [r2] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] -_0806ED74: - ldr r3, [sp, 0x78] - cmp r3, 0 - beq _0806EE4A - mov r0, r9 - movs r1, 0x1E - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806EE4A - ldr r2, _0806EDC4 - movs r6, 0 - ldrsh r1, [r2, r6] - ldr r0, [sp, 0xC] - adds r0, r1 - str r0, [sp, 0xC] - ldr r0, [r5] - movs r3, 0xB1 - lsls r3, 1 - adds r1, r0, r3 - ldrb r0, [r2] - ldrb r6, [r1] - adds r0, r6 - b _0806EE48 - .align 2, 0 -_0806EDA4: .4byte gDungeonGlobalData -_0806EDA8: .4byte 0x000001a1 -_0806EDAC: .4byte 0x000001a3 -_0806EDB0: .4byte gUnknown_80F504C -_0806EDB4: .4byte 0x0000013f -_0806EDB8: .4byte gUnknown_80F50A0 -_0806EDBC: .4byte gUnknown_810AC60 -_0806EDC0: .4byte gUnknown_810AC68 -_0806EDC4: .4byte gUnknown_810AC64 -_0806EDC8: - ldr r0, [sp, 0x78] - cmp r0, 0 - beq _0806EDF6 - mov r0, r9 - movs r1, 0x22 - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806EDF6 - ldr r2, _0806EEF8 - movs r3, 0 - ldrsh r1, [r2, r3] - ldr r0, [sp, 0xC] - adds r0, r1 - str r0, [sp, 0xC] - ldr r0, [r5] - ldr r6, _0806EEFC - adds r1, r0, r6 - ldrb r0, [r2] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] -_0806EDF6: - ldr r0, [sp, 0x70] - movs r1, 0x21 - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806EE20 - ldr r2, _0806EF00 - movs r3, 0 - ldrsh r1, [r2, r3] - ldr r0, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x8] - ldr r0, _0806EF04 - ldr r0, [r0] - ldr r6, _0806EF08 - adds r1, r0, r6 - ldrb r0, [r2] - ldrb r2, [r1] - adds r0, r2 - strb r0, [r1] -_0806EE20: - ldr r0, [sp, 0x70] - movs r1, 0x2B - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806EE4A - ldr r2, _0806EF0C - movs r3, 0 - ldrsh r1, [r2, r3] - ldr r0, [sp, 0x8] - adds r0, r1 - str r0, [sp, 0x8] - ldr r0, _0806EF04 - ldr r0, [r0] - ldr r6, _0806EF08 - adds r1, r0, r6 - ldrb r0, [r2] - ldrb r2, [r1] - adds r0, r2 -_0806EE48: - strb r0, [r1] -_0806EE4A: - ldr r0, _0806EF04 - ldr r2, [r0] - movs r3, 0xA3 - lsls r3, 1 - adds r1, r2, r3 - add r0, sp, 0x8 - ldrh r0, [r0] - strh r0, [r1] - movs r6, 0xA4 - lsls r6, 1 - adds r1, r2, r6 - add r4, sp, 0xC - ldrh r0, [r4] - strh r0, [r1] - ldr r0, [sp, 0x8] - cmp r0, 0 - bge _0806EE70 - movs r0, 0 - str r0, [sp, 0x8] -_0806EE70: - ldr r1, _0806EF10 - ldr r0, [sp, 0x8] - cmp r0, r1 - ble _0806EE7C - ldr r0, _0806EF14 - str r0, [sp, 0x8] -_0806EE7C: - movs r3, 0xA8 - lsls r3, 1 - add r3, r10 - ldrh r2, [r3] - ldr r1, _0806EF18 - adds r0, r1, 0 - ands r0, r2 - strh r0, [r3] - movs r2, 0xA7 - lsls r2, 1 - add r2, r10 - ldrh r0, [r2] - ands r1, r0 - strh r1, [r2] - str r4, [sp] - ldr r0, [sp, 0x84] - str r0, [sp, 0x4] - ldr r0, [sp, 0x70] - mov r1, r9 - ldr r2, [sp, 0x74] - add r3, sp, 0x8 - bl sub_806E8B0 - add r5, sp, 0x10 - ldr r1, [sp, 0x8] - ldr r0, [sp, 0xC] - subs r1, r0 - adds r0, r5, 0 - bl sub_800A020 - add r4, sp, 0x18 - adds r0, r4, 0 - movs r1, 0x8 - bl sub_800A020 - adds r0, r5, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl sub_800A3F0 - mov r1, r10 - ldrb r6, [r1, 0x6] - mov r8, r5 - adds r7, r4, 0 - cmp r6, 0 - bne _0806EF20 - ldrb r1, [r1, 0x9] - adds r0, r7, 0 - bl sub_800A020 - str r6, [sp, 0x20] - ldr r0, _0806EF1C - add r2, sp, 0x20 - str r0, [r2, 0x4] - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_800A34C - mov r2, r10 - ldrb r0, [r2, 0x9] - lsls r0, 1 - b _0806EF60 - .align 2, 0 -_0806EEF8: .4byte gUnknown_810AC66 -_0806EEFC: .4byte 0x00000163 -_0806EF00: .4byte gUnknown_810AC62 -_0806EF04: .4byte gDungeonGlobalData -_0806EF08: .4byte 0x00000161 -_0806EF0C: .4byte gUnknown_810AC68 -_0806EF10: .4byte 0x000003e6 -_0806EF14: .4byte 0x000003e7 -_0806EF18: .4byte 0x0000feff -_0806EF1C: .4byte 0x0000aaaa -_0806EF20: - ldr r3, [sp, 0x88] - ldr r6, [sp, 0x80] - adds r0, r3, r6 - ldrb r0, [r0] - str r0, [sp, 0x28] - movs r0, 0x1 - str r0, [sp, 0x2C] - add r3, sp, 0x28 - add r0, sp, 0x2C - str r0, [sp] - ldr r0, [sp, 0x84] - str r0, [sp, 0x4] - ldr r0, [sp, 0x70] - mov r1, r9 - ldr r2, [sp, 0x74] - bl sub_806E8B0 - ldr r1, [sp, 0x28] - adds r0, r7, 0 - bl sub_800A020 - add r4, sp, 0x20 - adds r0, r4, 0 - movs r1, 0x3 - bl sub_800A020 - adds r0, r7, 0 - adds r1, r7, 0 - adds r2, r4, 0 - bl sub_800A3F0 - ldr r0, [sp, 0x28] -_0806EF60: - movs r1, 0x3 - bl __divsi3 - adds r6, r0, 0 - add r5, sp, 0x30 - adds r0, r5, 0 - mov r1, r8 - adds r2, r7, 0 - bl sub_800A6D0 - ldr r4, _0806F098 - ldr r0, [r4] - movs r1, 0xA5 - lsls r1, 1 - adds r0, r1 - movs r2, 0 - mov r8, r2 - strh r6, [r0] - adds r0, r5, 0 - bl sub_800A048 - ldr r1, [r4] - movs r3, 0xA6 - lsls r3, 1 - adds r1, r3 - strh r0, [r1] - ldr r0, [sp, 0x30] - ldr r1, [sp, 0x34] - str r0, [sp, 0x38] - str r1, [sp, 0x3C] - str r0, [sp, 0x48] - str r1, [sp, 0x4C] - add r6, sp, 0x38 - adds r0, r6, 0 - adds r1, r6, 0 - adds r2, r6, 0 - bl sub_800A34C - mov r0, r8 - str r0, [sp, 0x40] - ldr r0, _0806F09C - add r5, sp, 0x40 - str r0, [r5, 0x4] - adds r0, r6, 0 - adds r1, r6, 0 - adds r2, r5, 0 - bl sub_800A34C - adds r0, r5, 0 - movs r1, 0x2 - bl sub_800A020 - add r4, sp, 0x48 - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_800A34C - ldr r1, [sp, 0xC] - adds r0, r5, 0 - bl sub_800A020 - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_800A6F0 - adds r0, r5, 0 - movs r1, 0xA - bl sub_800A020 - adds r0, r4, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_800A6D0 - add r5, sp, 0x50 - adds r0, r5, 0 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_800A6D0 - ldr r4, _0806F0A0 - adds r0, r4, 0 - adds r1, r5, 0 - bl sub_800A2F0 - lsls r0, 24 - mov r8, r5 - cmp r0, 0 - beq _0806F01E - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [sp, 0x50] - str r1, [sp, 0x54] -_0806F01E: - ldr r4, _0806F0A4 - mov r0, r8 - adds r1, r4, 0 - bl sub_800A2F0 - lsls r0, 24 - cmp r0, 0 - beq _0806F036 - ldr r0, [r4] - ldr r1, [r4, 0x4] - str r0, [sp, 0x50] - str r1, [sp, 0x54] -_0806F036: - add r4, sp, 0x58 - ldr r1, [sp, 0xB0] - str r1, [sp] - adds r0, r4, 0 - ldr r1, [sp, 0x70] - mov r2, r9 - ldr r3, [sp, 0x74] - bl sub_806E100 - lsls r0, 24 - lsrs r5, r0, 24 - adds r7, r4, 0 - ldr r2, [sp, 0x74] - cmp r2, 0x2 - bne _0806F0BC - mov r0, r9 - bl GetFlashFireStatus - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - beq _0806F0BC - ldr r3, [sp, 0x7C] - movs r6, 0xA9 - lsls r6, 1 - adds r1, r3, r6 - ldrb r0, [r1] - cmp r0, 0 - bne _0806F0BC - ldr r0, [sp, 0x78] - cmp r0, 0 - beq _0806F118 - movs r0, 0x1 - strb r0, [r1] - ldr r0, _0806F0A8 - mov r1, r9 - movs r2, 0 - bl SetMessageArgument - cmp r4, 0x1 - bne _0806F0B0 - ldr r0, _0806F0AC - ldr r2, [r0] - ldr r0, [sp, 0x70] - mov r1, r9 - bl sub_80522F4 - b _0806F0BC - .align 2, 0 -_0806F098: .4byte gDungeonGlobalData -_0806F09C: .4byte 0x00000ccc -_0806F0A0: .4byte gUnknown_8106F24 -_0806F0A4: .4byte gUnknown_8106F04 -_0806F0A8: .4byte gUnknown_202DFE8 -_0806F0AC: .4byte gUnknown_80FAE00 -_0806F0B0: - ldr r0, _0806F15C - ldr r2, [r0] - ldr r0, [sp, 0x70] - mov r1, r9 - bl sub_80522F4 -_0806F0BC: - ldr r1, [sp, 0x78] - cmp r1, 0 - beq _0806F118 - ldr r2, [sp, 0x80] - cmp r2, 0 - bne _0806F0EE - ldr r0, [sp, 0x7C] - adds r0, 0xC4 - ldrb r4, [r0] - cmp r4, 0x1 - bne _0806F0EE - mov r0, r9 - bl sub_8041B74 - ldr r2, _0806F160 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_800A34C - ldr r0, _0806F164 - ldr r0, [r0] - movs r3, 0xB3 - lsls r3, 1 - adds r0, r3 - strb r4, [r0] -_0806F0EE: - ldr r6, [sp, 0x80] - cmp r6, 0x1 - bne _0806F118 - ldr r0, [sp, 0x7C] - adds r0, 0xC4 - ldrb r0, [r0] - cmp r0, 0x3 - bne _0806F118 - mov r0, r9 - bl sub_8041B5C - ldr r2, _0806F160 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_800A34C - ldr r0, _0806F164 - ldr r0, [r0] - ldr r1, _0806F168 - adds r0, r1 - strb r6, [r0] -_0806F118: - mov r0, r9 - movs r1, 0xC - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806F1F4 - mov r0, r9 - movs r1, 0x13 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - bne _0806F1F4 - mov r3, r10 - ldrb r0, [r3, 0x6] - ldr r4, [sp, 0xAC] - cmp r0, 0 - beq _0806F140 - movs r4, 0 -_0806F140: - mov r0, r10 - adds r0, 0xDC - ldrb r0, [r0] - cmp r0, 0x4 - bne _0806F170 - ldr r4, _0806F16C - ldr r0, _0806F164 - ldr r0, [r0] - movs r6, 0xB4 - lsls r6, 1 - adds r0, r6 - movs r1, 0x1 - strb r1, [r0] - b _0806F1DA - .align 2, 0 -_0806F15C: .4byte gUnknown_80FADD8 -_0806F160: .4byte gUnknown_8106F1C -_0806F164: .4byte gDungeonGlobalData -_0806F168: .4byte 0x00000167 -_0806F16C: .4byte 0x000003e7 -_0806F170: - ldr r0, [sp, 0x70] - movs r1, 0xC - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806F194 - ldr r0, _0806F2A4 - movs r1, 0 - ldrsh r0, [r0, r1] - adds r4, r0 - ldr r0, _0806F2A8 - ldr r0, [r0] - movs r2, 0xB2 - lsls r2, 1 - adds r0, r2 - movs r1, 0x1 - strb r1, [r0] -_0806F194: - mov r0, r9 - movs r1, 0xD - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806F1B6 - ldr r0, _0806F2A4 - movs r3, 0 - ldrsh r0, [r0, r3] - adds r4, r0 - ldr r0, _0806F2A8 - ldr r0, [r0] - ldr r6, _0806F2AC - adds r1, r0, r6 - movs r0, 0x1 - strb r0, [r1] -_0806F1B6: - cmp r5, 0 - beq _0806F1DA - ldr r0, [sp, 0x70] - movs r1, 0x1 - bl HasIQSkill - lsls r0, 24 - cmp r0, 0 - beq _0806F1DA - ldr r0, _0806F2B0 - movs r1, 0 - ldrsh r4, [r0, r1] - ldr r0, _0806F2A8 - ldr r0, [r0] - ldr r2, _0806F2B4 - adds r1, r0, r2 - movs r0, 0x1 - strb r0, [r1] -_0806F1DA: - movs r0, 0x64 - bl DungeonRandomCapped - cmp r0, r4 - bge _0806F1F4 - ldr r2, _0806F2B8 - adds r0, r7, 0 - adds r1, r7, 0 - bl sub_800A34C - movs r0, 0x1 - ldr r3, [sp, 0xB0] - strb r0, [r3, 0xD] -_0806F1F4: - mov r0, r8 - bl sub_800A048 - ldr r5, _0806F2A8 - ldr r1, [r5] - movs r6, 0xAA - lsls r6, 1 - adds r1, r6 - str r0, [r1] - mov r0, r8 - mov r1, r8 - adds r2, r7, 0 - bl sub_800A34C - ldr r0, [r5] - movs r1, 0xAE - lsls r1, 1 - adds r0, r1 - ldr r2, [sp, 0xB4] - str r2, [r0] - add r4, sp, 0x60 - adds r0, r4, 0 - adds r1, r2, 0 - bl sub_800A088 - mov r0, r8 - mov r1, r8 - adds r2, r4, 0 - bl sub_800A34C - mov r0, r8 - bl sub_800A048 - ldr r1, [r5] - movs r3, 0xA8 - lsls r3, 1 - adds r1, r3 - str r0, [r1] - movs r0, 0x80 - lsls r0, 7 - bl DungeonRandomCapped - movs r6, 0 - str r6, [sp, 0x58] - movs r1, 0xE0 - lsls r1, 8 - adds r0, r1 - str r0, [r7, 0x4] - mov r0, r8 - mov r1, r8 - adds r2, r7, 0 - bl sub_800A34C - add r4, sp, 0x68 - adds r0, r4, 0 - movs r1, 0x64 - bl sub_800A020 - adds r0, r7, 0 - adds r1, r4, 0 - adds r2, r7, 0 - bl sub_800A34C - adds r0, r7, 0 - bl sub_800A048 - ldr r1, [r5] - movs r2, 0xAC - lsls r2, 1 - adds r1, r2 - str r0, [r1] - mov r0, r8 - bl sub_800A048 - ldr r3, [sp, 0xB0] - str r0, [r3] - str r6, [r3, 0x4] - cmp r0, 0 - bne _0806F294 - strb r0, [r3, 0xD] -_0806F294: - add sp, 0x8C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F2A4: .4byte gUnknown_80F4DAE -_0806F2A8: .4byte gDungeonGlobalData -_0806F2AC: .4byte 0x00000165 -_0806F2B0: .4byte gUnknown_80F4DB0 -_0806F2B4: .4byte 0x00000169 -_0806F2B8: .4byte gUnknown_8106F14 - thumb_func_end sub_806EAF4 - - thumb_func_start sub_806F2BC -sub_806F2BC: - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x14 - adds r5, r0, 0 - mov r12, r1 - ldr r7, [sp, 0x2C] - lsls r2, 24 - lsrs r4, r2, 24 - adds r6, r3, 0 - cmp r6, 0 - bgt _0806F2D6 - movs r6, 0x1 -_0806F2D6: - ldr r0, _0806F320 - cmp r6, r0 - ble _0806F2DE - adds r6, r0, 0 -_0806F2DE: - movs r0, 0 - mov r8, r0 - strb r4, [r7, 0xC] - str r7, [sp] - add r0, sp, 0x4 - adds r1, r5, 0 - mov r2, r12 - adds r3, r4, 0 - bl sub_806E100 - add r4, sp, 0xC - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_800A020 - adds r0, r4, 0 - adds r1, r4, 0 - add r2, sp, 0x4 - bl sub_800A34C - adds r0, r4, 0 - bl sub_800A048 - str r0, [r7] - mov r0, r8 - str r0, [r7, 0x4] - add sp, 0x14 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F320: .4byte 0x000003e7 - thumb_func_end sub_806F2BC - - thumb_func_start sub_806F324 -sub_806F324: - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x94 - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, r3, 16 - asrs r4, 16 - add r0, sp, 0x10 - bl sub_80457DC - add r2, sp, 0x84 - str r5, [sp, 0x84] - movs r0, 0x2 - str r0, [r2, 0x8] - movs r0, 0 - strb r0, [r2, 0xC] - str r6, [r2, 0x4] - strb r0, [r2, 0xD] - strb r0, [r2, 0xE] - strb r0, [r2, 0xF] - str r0, [sp] - str r4, [sp, 0x4] - str r0, [sp, 0x8] - str r0, [sp, 0xC] - add r0, sp, 0x10 - mov r1, r8 - movs r3, 0 - bl sub_806D010 - add sp, 0x94 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_806F324 - - thumb_func_start sub_806F370 -sub_806F370: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x2C - mov r10, r0 - adds r7, r1, 0 - mov r9, r3 - ldr r0, [sp, 0x50] - ldr r1, [sp, 0x54] - ldr r3, [sp, 0x58] - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - asrs r1, 16 - mov r8, r1 - adds r5, r2, 0 - movs r0, 0x2 - str r0, [sp, 0x18] - str r3, [sp, 0x14] - add r0, sp, 0x10 - movs r1, 0 - strb r4, [r0, 0xC] - strb r1, [r0, 0xD] - strb r1, [r0, 0xE] - cmp r4, 0 - beq _0806F3FC - ldr r1, [r7, 0x70] - movs r2, 0 - lsls r0, r4, 3 - mov r3, sp - adds r3, 0x20 - str r3, [sp, 0x28] - ldr r6, _0806F408 - mov r12, r6 - adds r1, 0x5C - adds r0, r4 - lsls r3, r0, 2 - ldr r4, [sp, 0x28] -_0806F3C0: - adds r0, r1, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r3 - add r0, r12 - movs r6, 0 - ldrsh r0, [r0, r6] - stm r4!, {r0} - adds r2, 0x1 - cmp r2, 0x1 - ble _0806F3C0 - adds r0, r7, 0 - movs r1, 0x35 - bl HasAbility - lsls r0, 24 - cmp r0, 0 - beq _0806F3FC - ldr r2, _0806F40C - ldr r1, [sp, 0x28] - ldr r0, [r1, 0x4] - lsls r0, 2 - ldr r1, [sp, 0x20] - lsls r1, 4 - adds r0, r1 - adds r0, r2 - ldr r0, [r0] - cmp r0, 0x3 - beq _0806F3FC - movs r5, 0 -_0806F3FC: - str r5, [sp, 0x10] - cmp r5, 0 - bne _0806F410 - add r1, sp, 0x10 - movs r0, 0x1 - b _0806F414 - .align 2, 0 -_0806F408: .4byte gTypeEffectivenessChart -_0806F40C: .4byte gUnknown_80F54B4 -_0806F410: - add r1, sp, 0x10 - movs r0, 0 -_0806F414: - strb r0, [r1, 0xF] - mov r3, r9 - str r3, [sp] - mov r6, r8 - str r6, [sp, 0x4] - ldr r0, [sp, 0x5C] - str r0, [sp, 0x8] - ldr r0, [sp, 0x60] - str r0, [sp, 0xC] - mov r0, r10 - adds r1, r7, 0 - add r2, sp, 0x10 - movs r3, 0 - bl sub_806D010 - ldr r0, [sp, 0x4C] - cmp r0, 0 - beq _0806F440 - add r0, sp, 0x10 - ldrb r0, [r0, 0xF] - ldr r1, [sp, 0x4C] - strb r0, [r1] -_0806F440: - add sp, 0x2C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_806F370 - - thumb_func_start SetShopkeeperAggression -SetShopkeeperAggression: - push {r4-r6,lr} - adds r5, r0, 0 - ldr r4, [r1, 0x70] - adds r6, r4, 0 - ldrb r0, [r4, 0x8] - cmp r0, 0 - beq _0806F47A - adds r0, r5, 0 - bl GetEntityType - cmp r0, 0x1 - bne _0806F47A - ldr r0, [r5, 0x70] - ldrb r0, [r0, 0x6] - cmp r0, 0 - beq _0806F476 - movs r0, 0x2 - strb r0, [r4, 0x8] - b _0806F47A -_0806F476: - movs r0, 0x3 - strb r0, [r6, 0x8] -_0806F47A: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end SetShopkeeperAggression - - thumb_func_start sub_806F480 -sub_806F480: - push {lr} - lsls r1, 24 - lsrs r1, 24 - ldr r2, [r0, 0x70] - adds r3, r2, 0 - ldrb r0, [r2, 0x8] - cmp r0, 0 - beq _0806F49E - cmp r1, 0 - beq _0806F49A - movs r0, 0x2 - strb r0, [r2, 0x8] - b _0806F49E -_0806F49A: - movs r0, 0x3 - strb r0, [r3, 0x8] -_0806F49E: - pop {r0} - bx r0 - thumb_func_end sub_806F480 - - thumb_func_start sub_806F4A4 -sub_806F4A4: - push {r4-r6,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldr r5, [r0, 0x70] - movs r1, 0xE - bl HasType - lsls r0, 24 - cmp r0, 0 - beq _0806F4CE - cmp r4, 0x1 - beq _0806F4C0 - cmp r4, 0x7 - bne _0806F4CE -_0806F4C0: - adds r0, r5, 0 - adds r0, 0xF5 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F4CE -_0806F4CA: - movs r0, 0 - b _0806F4F6 -_0806F4CE: - movs r2, 0 - lsls r0, r4, 3 - ldr r6, _0806F4FC - adds r3, r5, 0 - adds r3, 0x5C - adds r0, r4 - lsls r1, r0, 2 -_0806F4DC: - adds r0, r3, r2 - ldrb r0, [r0] - lsls r0, 1 - adds r0, r1 - adds r0, r6 - movs r4, 0 - ldrsh r0, [r0, r4] - cmp r0, 0 - beq _0806F4CA - adds r2, 0x1 - cmp r2, 0x1 - ble _0806F4DC - movs r0, 0x1 -_0806F4F6: - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_0806F4FC: .4byte gTypeEffectivenessChart - thumb_func_end sub_806F4A4 - - thumb_func_start sub_806F500 -sub_806F500: - ldr r0, _0806F5F4 - ldr r0, [r0] - mov r12, r0 - movs r0, 0x9A - lsls r0, 1 - add r0, r12 - movs r1, 0 - strb r1, [r0] - str r1, [r0, 0x4] - strb r1, [r0, 0x8] - strb r1, [r0, 0x9] - movs r2, 0xA - strb r2, [r0, 0xA] - strb r2, [r0, 0xB] - movs r2, 0 - movs r3, 0x1 - strh r3, [r0, 0xC] - strh r3, [r0, 0xE] - strh r1, [r0, 0x10] - strh r1, [r0, 0x14] - strh r1, [r0, 0x12] - strh r1, [r0, 0x16] - strh r1, [r0, 0x18] - str r1, [r0, 0x1C] - str r1, [r0, 0x24] - str r1, [r0, 0x28] - movs r0, 0xB0 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F5F8 - add r0, r12 - strb r2, [r0] - movs r0, 0xB1 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F5FC - add r0, r12 - strb r2, [r0] - movs r0, 0xB2 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F600 - add r0, r12 - strb r2, [r0] - movs r0, 0xB3 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F604 - add r0, r12 - strb r2, [r0] - movs r0, 0xB4 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F608 - add r0, r12 - strb r2, [r0] - movs r0, 0xB5 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - movs r0, 0xB6 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F60C - add r0, r12 - strb r2, [r0] - ldr r0, _0806F610 - add r0, r12 - strb r2, [r0] - movs r0, 0xB7 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F614 - add r0, r12 - strb r2, [r0] - movs r0, 0xB8 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F618 - add r0, r12 - strb r2, [r0] - movs r0, 0xB9 - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F61C - add r0, r12 - strb r2, [r0] - movs r0, 0xBA - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F620 - add r0, r12 - strb r2, [r0] - movs r0, 0xBB - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F624 - add r0, r12 - strb r2, [r0] - movs r0, 0xBC - lsls r0, 1 - add r0, r12 - strb r2, [r0] - ldr r0, _0806F628 - add r0, r12 - strb r2, [r0] - movs r0, 0xBD - lsls r0, 1 - add r0, r12 - strb r2, [r0] - bx lr - .align 2, 0 -_0806F5F4: .4byte gDungeonGlobalData -_0806F5F8: .4byte 0x00000161 -_0806F5FC: .4byte 0x00000163 -_0806F600: .4byte 0x00000165 -_0806F604: .4byte 0x00000167 -_0806F608: .4byte 0x00000169 -_0806F60C: .4byte 0x0000016b -_0806F610: .4byte 0x0000016d -_0806F614: .4byte 0x0000016f -_0806F618: .4byte 0x00000171 -_0806F61C: .4byte 0x00000173 -_0806F620: .4byte 0x00000175 -_0806F624: .4byte 0x00000177 -_0806F628: .4byte 0x00000179 - thumb_func_end sub_806F500 - - thumb_func_start sub_806F62C -sub_806F62C: - ldr r1, _0806F638 - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bx lr - .align 2, 0 -_0806F638: .4byte gUnknown_8106F7C - thumb_func_end sub_806F62C - - thumb_func_start sub_806F63C -sub_806F63C: - push {lr} - ldr r1, _0806F658 - ldr r1, [r1] - ldr r2, _0806F65C - adds r1, r2 - ldr r1, [r1, 0x10] - cmp r1, r0 - bne _0806F652 - adds r0, r1, 0 - bl sub_803F508 -_0806F652: - pop {r0} - bx r0 - .align 2, 0 -_0806F658: .4byte gDungeonGlobalData -_0806F65C: .4byte 0x000181e8 - thumb_func_end sub_806F63C - - thumb_func_start sub_806F660 -sub_806F660: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - mov r8, r1 - ldr r0, [r6, 0x70] - mov r10, r0 - ldr r4, [r1, 0x70] - movs r1, 0x1 - negs r1, r1 - mov r9, r1 - movs r2, 0x4 - ldrsh r0, [r4, r2] - bl GetPokemonSize - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, _0806F6C0 - ldr r3, [r0] - ldr r1, _0806F6C4 - adds r0, r3, r1 - ldrh r2, [r0] - subs r0, r2, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _0806F702 - lsls r0, r2, 16 - asrs r1, r0, 16 - cmp r1, 0x9 - beq _0806F702 - cmp r1, 0xF - beq _0806F702 - adds r0, r2, 0 - subs r0, 0x2C - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x4 - bhi _0806F6CC - ldr r2, _0806F6C8 - adds r0, r3, r2 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F702 - b _0806F8FC - .align 2, 0 -_0806F6C0: .4byte gDungeonGlobalData -_0806F6C4: .4byte 0x00003a14 -_0806F6C8: .4byte 0x0000065c -_0806F6CC: - cmp r1, 0x31 - bne _0806F6F0 - ldr r1, _0806F6EC - adds r0, r3, r1 - ldrb r0, [r0] - cmp r0, 0 - bne _0806F6DC - b _0806F8FC -_0806F6DC: - movs r0, 0xCF - lsls r0, 1 - bl sub_8097900 - lsls r0, 24 - cmp r0, 0 - bne _0806F702 - b _0806F8FC - .align 2, 0 -_0806F6EC: .4byte 0x00000659 -_0806F6F0: - ldr r2, _0806F834 - adds r0, r3, r2 - ldrb r0, [r0] - bl GetRecruitable - lsls r0, 24 - cmp r0, 0 - bne _0806F702 - b _0806F8FC -_0806F702: - ldr r0, _0806F838 - ldr r0, [r0] - ldr r3, _0806F83C - adds r0, r3 - ldrb r0, [r0] - cmp r0, 0 - beq _0806F712 - b _0806F8FC -_0806F712: - ldrh r1, [r4, 0x2] - adds r0, r1, 0 - subs r0, 0x90 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x2 - bls _0806F766 - lsls r0, r1, 16 - asrs r1, r0, 16 - ldr r0, _0806F840 - cmp r1, r0 - beq _0806F766 - subs r0, 0x1 - cmp r1, r0 - beq _0806F766 - adds r0, 0x2 - cmp r1, r0 - beq _0806F766 - adds r0, 0x8A - cmp r1, r0 - beq _0806F766 - adds r0, 0x1 - cmp r1, r0 - beq _0806F766 - adds r0, 0x4 - cmp r1, r0 - beq _0806F766 - subs r0, 0x1 - cmp r1, r0 - beq _0806F766 - adds r0, 0x2 - cmp r1, r0 - beq _0806F766 - subs r0, 0x9 - cmp r1, r0 - beq _0806F766 - adds r0, 0x1 - cmp r1, r0 - beq _0806F766 - adds r0, 0x1 - cmp r1, r0 - bne _0806F776 -_0806F766: - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl HasRecruitedMon - lsls r0, 24 - cmp r0, 0 - beq _0806F776 - b _0806F8FC -_0806F776: - movs r2, 0x2 - ldrsh r0, [r4, r2] - bl sub_806F9BC - lsls r0, 24 - cmp r0, 0 - bne _0806F786 - b _0806F8FC -_0806F786: - movs r3, 0x4 - ldrsh r1, [r6, r3] - mov r2, r8 - movs r3, 0x4 - ldrsh r0, [r2, r3] - subs r1, r0 - cmp r1, 0 - bge _0806F798 - negs r1, r1 -_0806F798: - cmp r1, 0x1 - ble _0806F79E - b _0806F8FC -_0806F79E: - movs r0, 0x6 - ldrsh r1, [r6, r0] - mov r2, r8 - movs r3, 0x6 - ldrsh r0, [r2, r3] - subs r1, r0 - cmp r1, 0 - bge _0806F7B0 - negs r1, r1 -_0806F7B0: - cmp r1, 0x1 - ble _0806F7B6 - b _0806F8FC -_0806F7B6: - adds r0, r4, 0 - adds r0, 0x40 - ldrb r0, [r0] - cmp r0, 0x4A - bne _0806F7C2 - b _0806F8FC -_0806F7C2: - adds r0, r4, 0 - adds r0, 0xA4 - ldrb r0, [r0] - cmp r0, 0x1 - bne _0806F7CE - b _0806F8FC -_0806F7CE: - mov r0, r8 - adds r1, r6, 0 - bl CanSee - lsls r0, 24 - cmp r0, 0 - bne _0806F7DE - b _0806F8FC -_0806F7DE: - bl sub_806F910 - movs r0, 0xFA - lsls r0, 2 - bl DungeonRandomCapped - adds r7, r0, 0 - movs r1, 0x2 - ldrsh r0, [r4, r1] - bl GetBaseRecruit - lsls r0, 16 - asrs r4, r0, 16 - ldr r0, _0806F844 - cmp r4, r0 - bne _0806F800 - b _0806F8FC -_0806F800: - adds r0, r6, 0 - movs r1, 0x2E - bl HasItem - lsls r0, 24 - cmp r0, 0 - beq _0806F816 - ldr r0, _0806F848 - movs r2, 0 - ldrsh r0, [r0, r2] - adds r4, r0 -_0806F816: - ldr r0, _0806F84C - mov r3, r10 - ldrb r1, [r3, 0x9] - lsls r1, 1 - adds r1, r0 - movs r2, 0 - ldrsh r0, [r1, r2] - adds r4, r0 - cmp r7, r4 - bge _0806F8FC - movs r4, 0 - movs r0, 0x6 - subs r3, r0, r5 - ldr r7, _0806F850 - b _0806F856 - .align 2, 0 -_0806F834: .4byte 0x00000644 -_0806F838: .4byte gDungeonGlobalData -_0806F83C: .4byte 0x0000065d -_0806F840: .4byte 0x0000010d -_0806F844: .4byte 0xfffffc19 -_0806F848: .4byte gUnknown_80F5008 -_0806F84C: .4byte gUnknown_80F5700 -_0806F850: .4byte gUnknown_202EE70 -_0806F854: - adds r4, 0x1 -_0806F856: - cmp r4, r3 - bgt _0806F878 - movs r2, 0 - cmp r2, r5 - bge _0806F872 - adds r1, r4, r7 - b _0806F86C -_0806F864: - adds r1, 0x1 - adds r2, 0x1 - cmp r2, r5 - bge _0806F872 -_0806F86C: - ldrb r0, [r1] - cmp r0, 0 - beq _0806F864 -_0806F872: - cmp r2, r5 - bne _0806F854 - mov r9, r4 -_0806F878: - movs r0, 0x1 - negs r0, r0 - cmp r9, r0 - beq _0806F8F4 - movs r4, 0 - ldr r3, _0806F8BC - ldr r0, [r3] - ldr r2, _0806F8C0 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806F8B4 - adds r7, r3, 0 - adds r5, r2, 0 - movs r2, 0 - movs r3, 0x1 -_0806F89C: - adds r2, 0x64 - adds r4, 0x1 - cmp r4, 0x3 - bgt _0806F8B4 - ldr r0, [r7] - adds r0, r2, r0 - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0806F89C -_0806F8B4: - cmp r4, 0x4 - beq _0806F8F4 - movs r4, 0 - b _0806F8C6 - .align 2, 0 -_0806F8BC: .4byte gRecruitedPokemonRef -_0806F8C0: .4byte 0x00008df8 -_0806F8C4: - adds r4, 0x1 -_0806F8C6: - cmp r4, 0x3 - bgt _0806F8E2 - ldr r0, _0806F8EC - ldr r0, [r0] - lsls r1, r4, 2 - ldr r3, _0806F8F0 - adds r0, r3 - adds r0, r1 - ldr r0, [r0] - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806F8C4 -_0806F8E2: - cmp r4, 0x4 - beq _0806F8F4 - movs r0, 0x1 - b _0806F8FE - .align 2, 0 -_0806F8EC: .4byte gDungeonGlobalData -_0806F8F0: .4byte 0x0001357c -_0806F8F4: - adds r0, r6, 0 - mov r1, r8 - bl nullsub_96 -_0806F8FC: - movs r0, 0 -_0806F8FE: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806F660 - - thumb_func_start nullsub_96 -nullsub_96: - bx lr - thumb_func_end nullsub_96 - - thumb_func_start sub_806F910 -sub_806F910: - push {r4-r7,lr} - mov r7, r8 - push {r7} - movs r5, 0 - movs r6, 0 - movs r7, 0x40 -_0806F91C: - ldr r0, _0806F9AC - ldr r0, [r0] - lsls r1, r6, 2 - ldr r2, _0806F9B0 - adds r0, r2 - adds r0, r1 - ldr r4, [r0] - adds r0, r4, 0 - bl EntityExists - lsls r0, 24 - adds r1, r6, 0x1 - mov r8, r1 - cmp r0, 0 - beq _0806F98A - ldr r0, [r4, 0x70] - movs r2, 0x4 - ldrsh r0, [r0, r2] - bl GetPokemonSize - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r4, 0 - adds r0, 0x68 - strh r7, [r0] - ldr r0, [r4, 0x70] - ldr r2, _0806F9B4 - adds r0, r2 - strb r6, [r0] - ldr r0, [r4, 0x70] - adds r2, 0x1 - adds r0, r2 - strb r1, [r0] - cmp r1, 0 - beq _0806F978 - ldr r3, _0806F9B8 - movs r2, 0x1 -_0806F966: - cmp r5, 0x5 - bgt _0806F972 - adds r0, r5, r3 - strb r2, [r0] - adds r7, 0x10 - adds r5, 0x1 -_0806F972: - subs r1, 0x1 - cmp r1, 0 - bne _0806F966 -_0806F978: - adds r0, r4, 0 - bl sub_806CEBC - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl sub_806CCB4 -_0806F98A: - mov r6, r8 - cmp r6, 0x3 - ble _0806F91C - cmp r5, 0x5 - bgt _0806F9A2 - ldr r2, _0806F9B8 - movs r1, 0 -_0806F998: - adds r0, r5, r2 - strb r1, [r0] - adds r5, 0x1 - cmp r5, 0x5 - ble _0806F998 -_0806F9A2: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_0806F9AC: .4byte gDungeonGlobalData -_0806F9B0: .4byte 0x0001357c -_0806F9B4: .4byte 0x00000167 -_0806F9B8: .4byte gUnknown_202EE70 - thumb_func_end sub_806F910 - - thumb_func_start sub_806F9BC -sub_806F9BC: - push {r4,r5,lr} - sub sp, 0xC - lsls r0, 16 - asrs r4, r0, 16 - ldr r5, _0806FA40 - ldr r0, [r5] - movs r1, 0xCB - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0 - beq _0806FA3C - adds r0, r4, 0 - bl sub_808529C - lsls r0, 24 - cmp r0, 0 - beq _0806FA3C - cmp r4, 0x97 - bne _0806F9F2 - ldr r0, [r5] - movs r1, 0xCF - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _0806FA3C -_0806F9F2: - movs r0, 0xCC - lsls r0, 1 - cmp r4, r0 - beq _0806FA3C - ldr r0, _0806FA44 - cmp r4, r0 - beq _0806FA3C - ldr r0, _0806FA48 - cmp r4, r0 - beq _0806FA3C - movs r0, 0xD1 - lsls r0, 1 - cmp r4, r0 - beq _0806FA3C - ldr r0, _0806FA4C - cmp r4, r0 - beq _0806FA3C - adds r0, r4, 0 - bl GetUnk12 - lsls r0, 24 - cmp r0, 0 - bne _0806FA50 - adds r0, r4, 0 - bl GetFriendArea - lsls r0, 24 - lsrs r0, 24 - mov r1, sp - movs r2, 0 - movs r3, 0 - bl sub_8092638 - mov r0, sp - ldrb r0, [r0, 0x4] - cmp r0, 0 - bne _0806FA50 -_0806FA3C: - movs r0, 0 - b _0806FA52 - .align 2, 0 -_0806FA40: .4byte gDungeonGlobalData -_0806FA44: .4byte 0x00000199 -_0806FA48: .4byte 0x000001a1 -_0806FA4C: .4byte 0x000001a3 -_0806FA50: - movs r0, 0x1 -_0806FA52: - add sp, 0xC - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_806F9BC - - thumb_func_start sub_806FA5C -sub_806FA5C: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - mov r8, r0 - adds r5, r1, 0 - adds r6, r2, 0 - adds r0, r5, 0x4 - mov r1, r8 - adds r1, 0x4 - bl CalculateFacingDir - adds r4, r0, 0 - movs r0, 0 - mov r10, r0 - movs r1, 0 - ldrsh r0, [r6, r1] - bl GetFriendArea - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - adds r0, r5, 0 - adds r0, 0x22 - mov r2, r10 - strb r2, [r0] - mov r0, r8 - adds r1, r5, 0 - bl sub_807A0CC - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_806CE68 - ldr r0, _0806FAD4 - movs r3, 0 - ldrsh r1, [r6, r3] - bl CopyCyanSpeciesNametoBuffer - ldr r0, _0806FAD8 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0 - bne _0806FAE4 - movs r4, 0 - ldrsh r1, [r6, r4] - ldr r0, _0806FADC - cmp r1, r0 - beq _0806FB28 - ldr r0, _0806FAE0 - ldr r1, [r0] - mov r0, r8 - bl SendMessage - b _0806FB28 - .align 2, 0 -_0806FAD4: .4byte gAvailablePokemonNames -_0806FAD8: .4byte gUnknown_80F9FE8 -_0806FADC: .4byte 0x0000019d -_0806FAE0: .4byte gUnknown_80FA004 -_0806FAE4: - movs r7, 0 - ldr r3, _0806FB2C - ldr r0, [r3] - ldr r2, _0806FB30 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806FB1A - mov r12, r3 - adds r4, r2, 0 - movs r2, 0 - movs r3, 0x1 -_0806FB00: - adds r2, 0x64 - adds r7, 0x1 - cmp r7, 0x3 - bgt _0806FB1A - mov r1, r12 - ldr r0, [r1] - adds r0, r2, r0 - adds r0, r4 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0806FB00 -_0806FB1A: - cmp r7, 0x4 - bne _0806FB38 - ldr r0, _0806FB34 - ldr r1, [r0] - mov r0, r8 - bl SendMessage -_0806FB28: - movs r0, 0 - b _0806FCF0 - .align 2, 0 -_0806FB2C: .4byte gRecruitedPokemonRef -_0806FB30: .4byte 0x00008df8 -_0806FB34: .4byte gUnknown_80FA030 -_0806FB38: - mov r0, r9 - bl GetFriendAreaStatus - lsls r0, 24 - cmp r0, 0 - bne _0806FB4E - mov r0, r9 - bl UnlockFriendArea - movs r2, 0x1 - mov r10, r2 -_0806FB4E: - movs r1, 0xFA - lsls r1, 1 - adds r0, r5, 0 - mov r2, r8 - bl sub_8068FE0 - ldr r1, _0806FC40 - movs r0, 0x64 - muls r0, r7 - ldr r3, _0806FC44 - adds r0, r3 - ldr r1, [r1] - adds r5, r1, r0 - movs r4, 0 - movs r0, 0x3 - strh r0, [r5] - strb r4, [r5, 0x2] - ldrh r0, [r6, 0xE] - strb r0, [r5, 0x3] - movs r0, 0x1 - strh r0, [r5, 0x8] - adds r0, r5, 0 - adds r0, 0x4C - movs r1, 0 - bl SetDefaultIQSkills - ldr r0, [r6, 0x44] - str r0, [r5, 0x54] - adds r0, r5, 0 - adds r0, 0x50 - strb r4, [r0] - ldr r0, _0806FC48 - strh r0, [r5, 0xA] - strh r7, [r5, 0xC] - ldrh r0, [r6] - strh r0, [r5, 0xE] - ldr r0, _0806FC4C - ldr r0, [r0] - ldr r4, _0806FC50 - adds r0, r4 - ldr r0, [r0] - str r0, [r5, 0x4] - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x10] - ldrh r0, [r6, 0x8] - strh r0, [r5, 0x12] - ldr r0, [r6, 0x14] - str r0, [r5, 0x44] - ldr r0, [r6, 0x18] - str r0, [r5, 0x48] - movs r2, 0 - adds r7, r6, 0 - adds r7, 0x20 - adds r4, r6, 0 - adds r4, 0xA - adds r3, r6, 0 - adds r3, 0xC - adds r1, r5, 0 - adds r1, 0x14 -_0806FBC4: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, 0x2] - adds r1, 0x1 - adds r2, 0x1 - cmp r2, 0x1 - ble _0806FBC4 - ldr r0, [r6, 0x10] - str r0, [r5, 0x18] - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r7, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [r6, 0x1C] - str r0, [r5, 0x40] - adds r4, r5, 0 - adds r4, 0x58 - movs r1, 0 - ldrsh r0, [r6, r1] - bl GetMonSpecies - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0xA - bl BoundedCopyStringtoBuffer - bl sub_8097848 - movs r2, 0 - ldrsh r0, [r6, r2] - movs r3, 0x4 - ldrsh r1, [r6, r3] - movs r3, 0x6 - ldrsh r2, [r6, r3] - add r3, sp, 0xC - str r3, [sp] - movs r3, 0 - str r3, [sp, 0x4] - movs r3, 0x1 - str r3, [sp, 0x8] - adds r3, r5, 0 - bl sub_806B8CC - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0 - bne _0806FC58 - ldr r0, _0806FC54 - ldr r1, [r0] - mov r0, r8 - bl SendMessage - strh r7, [r5] - b _0806FCEE - .align 2, 0 -_0806FC40: .4byte gRecruitedPokemonRef -_0806FC44: .4byte 0x00008df8 -_0806FC48: .4byte 0x0000ffff -_0806FC4C: .4byte gDungeonGlobalData -_0806FC50: .4byte 0x00000644 -_0806FC54: .4byte gUnknown_80FA058 -_0806FC58: - bl sub_8083D88 - movs r0, 0xA0 - movs r1, 0x46 - bl sub_803E708 - ldr r0, _0806FC78 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _0806FC94 - b _0806FC88 - .align 2, 0 -_0806FC78: .4byte gUnknown_80FA090 -_0806FC7C: - ldr r0, _0806FD00 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_0806FC88: - adds r0, r4, 0 - bl sub_805FBE8 - lsls r0, 24 - cmp r0, 0 - beq _0806FC7C -_0806FC94: - ldr r4, _0806FD04 - adds r0, r4, 0 - adds r1, r5, 0 - movs r2, 0 - bl sub_808D9DC - ldr r0, _0806FD08 - ldr r1, [r0] - mov r0, r8 - bl SendMessage - mov r0, r10 - cmp r0, 0 - beq _0806FCD8 - bl sub_8085480 - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0 - bl SetMessageArgument - ldr r0, _0806FD0C - mov r1, r9 - bl sub_8092558 - movs r0, 0xCE - bl PlaySound - ldr r0, _0806FD10 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_0806FCD8: - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x97 - bne _0806FCEE - ldr r2, _0806FD14 - ldr r1, [r2] - movs r0, 0x1 - strb r0, [r1, 0x4] - ldr r1, [r2] - movs r0, 0x3 - strb r0, [r1, 0x11] -_0806FCEE: - movs r0, 0x1 -_0806FCF0: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0806FD00: .4byte gUnknown_80FA0C8 -_0806FD04: .4byte gAvailablePokemonNames -_0806FD08: .4byte gUnknown_80FA0F0 -_0806FD0C: .4byte gUnknown_202E628 -_0806FD10: .4byte gUnknown_80FA120 -_0806FD14: .4byte gDungeonGlobalData - thumb_func_end sub_806FA5C - - thumb_func_start sub_806FD18 -sub_806FD18: - push {r4-r7,lr} - ldr r4, [r0, 0x70] - movs r6, 0x1 - negs r6, r6 - movs r1, 0x4 - ldrsh r0, [r4, r1] - bl GetPokemonSize - lsls r0, 24 - lsrs r5, r0, 24 - movs r2, 0x2 - ldrsh r0, [r4, r2] - bl sub_806F9BC - lsls r0, 24 - cmp r0, 0 - beq _0806FDEC - bl sub_806F910 - movs r4, 0 - movs r0, 0x6 - subs r3, r0, r5 - ldr r7, _0806FD48 - b _0806FD4E - .align 2, 0 -_0806FD48: .4byte gUnknown_202EE70 -_0806FD4C: - adds r4, 0x1 -_0806FD4E: - cmp r4, r3 - bgt _0806FD70 - movs r2, 0 - cmp r2, r5 - bge _0806FD6A - adds r1, r4, r7 - b _0806FD64 -_0806FD5C: - adds r1, 0x1 - adds r2, 0x1 - cmp r2, r5 - bge _0806FD6A -_0806FD64: - ldrb r0, [r1] - cmp r0, 0 - beq _0806FD5C -_0806FD6A: - cmp r2, r5 - bne _0806FD4C - adds r6, r4, 0 -_0806FD70: - movs r0, 0x1 - negs r0, r0 - cmp r6, r0 - beq _0806FDEC - movs r4, 0 - ldr r3, _0806FDB4 - ldr r0, [r3] - ldr r2, _0806FDB8 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806FDAC - adds r6, r3, 0 - adds r5, r2, 0 - movs r2, 0 - movs r3, 0x1 -_0806FD94: - adds r2, 0x64 - adds r4, 0x1 - cmp r4, 0x3 - bgt _0806FDAC - ldr r0, [r6] - adds r0, r2, r0 - adds r0, r5 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0806FD94 -_0806FDAC: - cmp r4, 0x4 - beq _0806FDEC - movs r4, 0 - b _0806FDBE - .align 2, 0 -_0806FDB4: .4byte gRecruitedPokemonRef -_0806FDB8: .4byte 0x00008df8 -_0806FDBC: - adds r4, 0x1 -_0806FDBE: - cmp r4, 0x3 - bgt _0806FDDA - ldr r0, _0806FDE4 - ldr r0, [r0] - lsls r1, r4, 2 - ldr r2, _0806FDE8 - adds r0, r2 - adds r0, r1 - ldr r0, [r0] - bl EntityExists - lsls r0, 24 - cmp r0, 0 - bne _0806FDBC -_0806FDDA: - cmp r4, 0x4 - beq _0806FDEC - movs r0, 0x1 - b _0806FDEE - .align 2, 0 -_0806FDE4: .4byte gDungeonGlobalData -_0806FDE8: .4byte 0x0001357c -_0806FDEC: - movs r0, 0 -_0806FDEE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_806FD18 - - thumb_func_start sub_806FDF4 -sub_806FDF4: - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x60 - str r0, [sp, 0x58] - mov r10, r1 - str r2, [sp, 0x5C] - movs r0, 0 - mov r9, r0 - str r0, [r2] - add r0, sp, 0xC - bl sub_8069D4C - movs r6, 0 - ldr r3, _0806FE50 - ldr r0, [r3] - ldr r2, _0806FE54 - adds r0, r2 - ldrb r1, [r0] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0806FE46 - adds r5, r3, 0 - adds r4, r2, 0 - movs r2, 0 - movs r3, 0x1 -_0806FE2E: - adds r2, 0x64 - adds r6, 0x1 - cmp r6, 0x3 - bgt _0806FE46 - ldr r0, [r5] - adds r0, r2, r0 - adds r0, r4 - ldrb r1, [r0] - adds r0, r3, 0 - ands r0, r1 - cmp r0, 0 - bne _0806FE2E -_0806FE46: - cmp r6, 0x4 - bne _0806FE58 - movs r0, 0 - b _0806FFF8 - .align 2, 0 -_0806FE50: .4byte gRecruitedPokemonRef -_0806FE54: .4byte 0x00008df8 -_0806FE58: - add r0, sp, 0xC - movs r1, 0 - ldrsh r0, [r0, r1] - bl GetFriendArea - lsls r0, 24 - lsrs r7, r0, 24 - ldr r1, _0806FF74 - movs r0, 0x64 - muls r0, r6 - ldr r2, _0806FF78 - adds r0, r2 - ldr r1, [r1] - adds r5, r1, r0 - movs r4, 0 - movs r0, 0x3 - strh r0, [r5] - strb r4, [r5, 0x2] - add r0, sp, 0xC - ldrh r0, [r0, 0xE] - strb r0, [r5, 0x3] - movs r0, 0x1 - strh r0, [r5, 0x8] - adds r0, r5, 0 - adds r0, 0x4C - movs r1, 0 - bl SetDefaultIQSkills - ldr r0, [sp, 0x50] - str r0, [r5, 0x54] - adds r0, r5, 0 - adds r0, 0x50 - strb r4, [r0] - ldr r0, _0806FF7C - strh r0, [r5, 0xA] - strh r6, [r5, 0xC] - add r0, sp, 0xC - ldrh r0, [r0] - strh r0, [r5, 0xE] - ldr r0, _0806FF80 - ldr r0, [r0] - ldr r3, _0806FF84 - adds r0, r3 - ldr r0, [r0] - str r0, [r5, 0x4] - add r0, sp, 0xC - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x10] - add r0, sp, 0xC - ldrh r0, [r0, 0x8] - strh r0, [r5, 0x12] - ldr r0, [sp, 0x20] - str r0, [r5, 0x44] - ldr r0, [sp, 0x24] - str r0, [r5, 0x48] - movs r2, 0 - add r6, sp, 0x2C - add r4, sp, 0x54 - mov r8, r4 - mov r4, sp - adds r4, 0x16 - add r3, sp, 0x18 - adds r1, r5, 0 - adds r1, 0x14 -_0806FED8: - adds r0, r4, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r3, r2 - ldrb r0, [r0] - strb r0, [r1, 0x2] - adds r1, 0x1 - adds r2, 0x1 - cmp r2, 0x1 - ble _0806FED8 - ldr r0, [sp, 0x1C] - str r0, [r5, 0x18] - adds r1, r5, 0 - adds r1, 0x1C - adds r0, r6, 0 - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldm r0!, {r2-r4} - stm r1!, {r2-r4} - ldr r0, [sp, 0x28] - str r0, [r5, 0x40] - adds r4, r5, 0 - adds r4, 0x58 - add r0, sp, 0xC - movs r1, 0 - ldrsh r0, [r0, r1] - bl GetMonSpecies - adds r1, r0, 0 - adds r0, r4, 0 - movs r2, 0xA - bl BoundedCopyStringtoBuffer - adds r0, r7, 0 - bl GetFriendAreaStatus - lsls r0, 24 - cmp r0, 0 - bne _0806FF34 - adds r0, r7, 0 - bl UnlockFriendArea - movs r2, 0x1 - mov r9, r2 -_0806FF34: - bl sub_8097848 - movs r1, 0xFA - lsls r1, 1 - mov r0, r10 - ldr r2, [sp, 0x58] - bl sub_8068FE0 - add r0, sp, 0xC - movs r3, 0 - ldrsh r0, [r0, r3] - add r1, sp, 0xC - movs r2, 0x4 - ldrsh r1, [r1, r2] - add r2, sp, 0xC - movs r3, 0x6 - ldrsh r2, [r2, r3] - mov r3, r8 - str r3, [sp] - movs r3, 0 - str r3, [sp, 0x4] - str r3, [sp, 0x8] - adds r3, r5, 0 - bl sub_806B8CC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _0806FF88 - strh r0, [r5] - b _0806FFF6 - .align 2, 0 -_0806FF74: .4byte gRecruitedPokemonRef -_0806FF78: .4byte 0x00008df8 -_0806FF7C: .4byte 0x0000ffff -_0806FF80: .4byte gDungeonGlobalData -_0806FF84: .4byte 0x00000644 -_0806FF88: - ldr r0, _0806FF9C - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl sub_8052B8C - cmp r0, 0x1 - bne _0806FFB8 - b _0806FFAC - .align 2, 0 -_0806FF9C: .4byte gUnknown_80FA090 -_0806FFA0: - ldr r0, _08070008 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_0806FFAC: - adds r0, r4, 0 - bl sub_805FBE8 - lsls r0, 24 - cmp r0, 0 - beq _0806FFA0 -_0806FFB8: - mov r4, r9 - cmp r4, 0 - beq _0806FFE6 - bl sub_8085480 - adds r1, r0, 0 - ldr r0, _0807000C - movs r2, 0 - bl SetMessageArgument - ldr r0, _08070010 - adds r1, r7, 0 - bl sub_8092558 - movs r0, 0xCE - bl PlaySound - ldr r0, _08070014 - ldr r1, [r0] - movs r0, 0 - movs r2, 0x1 - bl PrintFieldMessage -_0806FFE6: - ldr r0, _08070018 - adds r1, r5, 0 - movs r2, 0 - bl sub_808D9DC - ldr r0, [sp, 0x54] - ldr r1, [sp, 0x5C] - str r0, [r1] -_0806FFF6: - movs r0, 0x1 -_0806FFF8: - add sp, 0x60 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_08070008: .4byte gUnknown_80FA0C8 -_0807000C: .4byte gAvailablePokemonNames -_08070010: .4byte gUnknown_202E628 -_08070014: .4byte gUnknown_80FA120 -_08070018: .4byte gUnknown_202E088 - thumb_func_end sub_806FDF4 - - .align 2,0 diff --git a/asm/code_806CD90.s b/asm/code_806CD90.s new file mode 100644 index 0000000..50f101b --- /dev/null +++ b/asm/code_806CD90.s @@ -0,0 +1,6234 @@ + .include "constants/gba_constants.inc" + .include "asm/macros.inc" + + .syntax unified + + .text + + thumb_func_start sub_806CEBC +sub_806CEBC: + push {lr} + ldr r0, [r0, 0x70] + adds r1, r0, 0 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0806CED2 + cmp r0, 0x5 + beq _0806CED2 + cmp r0, 0x3 + bne _0806CEE8 +_0806CED2: + movs r2, 0x4 + ldrsh r0, [r1, r2] + cmp r0, 0xB9 + bne _0806CEE4 + adds r0, r1, 0 + adds r0, 0xA9 + ldrb r0, [r0] + cmp r0, 0x7F + beq _0806CEF2 +_0806CEE4: + movs r0, 0x5 + b _0806CEF8 +_0806CEE8: + adds r0, r1, 0 + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0806CEF6 +_0806CEF2: + movs r0, 0x7 + b _0806CEF8 +_0806CEF6: + movs r0, 0xB +_0806CEF8: + pop {r1} + bx r1 + thumb_func_end sub_806CEBC + + thumb_func_start sub_806CEFC +sub_806CEFC: + push {r4,lr} + adds r4, r1, 0 + ldr r2, [r0, 0x70] + movs r3, 0x7 + ands r1, r3 + adds r2, 0x46 + strb r1, [r2] + movs r1, 0x7 + ands r1, r4 + bl sub_806CE68 + pop {r4} + pop {r0} + bx r0 + thumb_func_end sub_806CEFC + + thumb_func_start sub_806CF18 +sub_806CF18: + push {r4-r6,lr} + adds r4, r0, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806CF4C + ldr r6, [r4, 0x70] + movs r5, 0 + b _0806CF2E +_0806CF2C: + adds r5, 0x1 +_0806CF2E: + cmp r5, 0x63 + bgt _0806CF4C + movs r0, 0x21 + bl sub_803E46C + movs r1, 0x4 + ldrsh r0, [r6, r1] + adds r1, r4, 0 + adds r1, 0x6B + ldrb r1, [r1] + bl sub_808DA44 + lsls r0, 24 + cmp r0, 0 + bne _0806CF2C +_0806CF4C: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_806CF18 + + thumb_func_start sub_806CF54 +sub_806CF54: + ldr r0, [r0, 0x70] + movs r1, 0x81 + lsls r1, 2 + adds r0, r1 + ldrb r0, [r0] + bx lr + thumb_func_end sub_806CF54 + + thumb_func_start sub_806CF60 +sub_806CF60: + push {r4,r5,lr} + movs r5, 0 +_0806CF64: + ldr r0, _0806CF90 + ldr r0, [r0] + lsls r1, r5, 2 + ldr r2, _0806CF94 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806CF84 + adds r0, r4, 0 + bl sub_806CF98 +_0806CF84: + adds r5, 0x1 + cmp r5, 0x13 + ble _0806CF64 + pop {r4,r5} + pop {r0} + bx r0 + .align 2, 0 +_0806CF90: .4byte gDungeonGlobalData +_0806CF94: .4byte 0x000135cc + thumb_func_end sub_806CF60 + + thumb_func_start sub_806CF98 +sub_806CF98: + push {r4-r7,lr} + adds r4, r0, 0 + bl sub_8045128 + ldrh r0, [r0] + movs r5, 0x3 + ands r5, r0 + adds r6, r5, 0 + ldr r7, [r4, 0x70] + movs r1, 0x4 + ldrsh r0, [r7, r1] + bl GetShadowSize + lsls r0, 24 + lsrs r4, r0, 24 + cmp r5, 0x3 + bne _0806CFBE + movs r0, 0x6 + b _0806CFF8 +_0806CFBE: + cmp r5, 0x1 + bne _0806CFCE + bl IsWaterTileset + lsls r0, 24 + cmp r0, 0 + beq _0806CFEE + b _0806CFE8 +_0806CFCE: + cmp r6, 0x2 + bne _0806CFEE + ldr r1, _0806D000 + ldr r0, _0806D004 + ldr r0, [r0] + ldr r2, _0806D008 + adds r0, r2 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0806CFEE +_0806CFE8: + ldr r0, _0806D00C + adds r0, r4, r0 + ldrb r4, [r0] +_0806CFEE: + movs r1, 0x81 + lsls r1, 2 + adds r0, r7, r1 + strb r4, [r0] + adds r0, r4, 0 +_0806CFF8: + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0806D000: .4byte gDungeonWaterType +_0806D004: .4byte gDungeonGlobalData +_0806D008: .4byte 0x00003a0e +_0806D00C: .4byte gUnknown_8106EEF + thumb_func_end sub_806CF98 + + thumb_func_start sub_806D010 +sub_806D010: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + adds r6, r0, 0 + adds r5, r1, 0 + mov r8, r2 + ldr r0, [sp, 0x40] + lsls r0, 16 + asrs r0, 16 + mov r10, r0 + movs r7, 0 + ldr r0, [sp, 0x3C] + str r0, [sp] + mov r1, r10 + str r1, [sp, 0x4] + ldr r2, [sp, 0x48] + str r2, [sp, 0x8] + adds r0, r6, 0 + adds r1, r5, 0 + mov r2, r8 + bl sub_806D528 + lsls r0, 24 + cmp r0, 0 + beq _0806D04A + b _0806D514 +_0806D04A: + mov r3, r8 + ldrb r0, [r3, 0xF] + cmp r0, 0 + beq _0806D054 + b _0806D514 +_0806D054: + adds r0, r6, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D062 + b _0806D514 +_0806D062: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D070 + b _0806D514 +_0806D070: + adds r0, r6, 0 + bl GetEntityType + cmp r0, 0x1 + beq _0806D07C + b _0806D514 +_0806D07C: + adds r0, r5, 0 + bl GetEntityType + cmp r0, 0x1 + beq _0806D088 + b _0806D514 +_0806D088: + ldr r0, [sp, 0x44] + mov r9, r0 + adds r0, r5, 0 + bl CannotAct + lsls r0, 24 + cmp r0, 0 + bne _0806D0A2 + ldr r0, [r5, 0x70] + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0 + beq _0806D0A6 +_0806D0A2: + movs r1, 0 + mov r9, r1 +_0806D0A6: + mov r2, r9 + cmp r2, 0 + beq _0806D100 + movs r3, 0x4 + ldrsh r1, [r6, r3] + movs r2, 0x4 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0806D0BC + negs r1, r1 +_0806D0BC: + cmp r1, 0x1 + bgt _0806D100 + movs r3, 0x6 + ldrsh r1, [r6, r3] + movs r2, 0x6 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0806D0D0 + negs r1, r1 +_0806D0D0: + cmp r1, 0x1 + bgt _0806D100 + cmp r6, r5 + beq _0806D100 + mov r3, r8 + ldrb r0, [r3, 0xC] + bl sub_8092354 + lsls r0, 24 + cmp r0, 0 + beq _0806D100 + ldr r0, [r5, 0x70] + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0xD + bne _0806D100 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_8042730 + adds r0, r5, 0 + adds r1, r6, 0 + bl sub_807F43C +_0806D100: + ldr r0, [r5, 0x70] + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0xC + bne _0806D118 + ldr r0, _0806D3BC + ldr r2, [r0] + adds r0, r6, 0 + adds r1, r5, 0 + movs r3, 0x1 + bl sub_8077084 +_0806D118: + adds r0, r6, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D126 + b _0806D514 +_0806D126: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D134 + b _0806D514 +_0806D134: + mov r0, r9 + cmp r0, 0 + beq _0806D216 + cmp r6, r5 + beq _0806D216 + movs r2, 0x4 + ldrsh r1, [r6, r2] + movs r3, 0x4 + ldrsh r0, [r5, r3] + subs r1, r0 + cmp r1, 0 + bge _0806D14E + negs r1, r1 +_0806D14E: + cmp r1, 0x1 + bgt _0806D216 + movs r0, 0x6 + ldrsh r1, [r6, r0] + movs r2, 0x6 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0806D162 + negs r1, r1 +_0806D162: + cmp r1, 0x1 + bgt _0806D216 + mov r3, r8 + ldrb r0, [r3, 0xC] + bl sub_8092354 + lsls r0, 24 + lsrs r4, r0, 24 + ldr r0, [r5, 0x70] + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x4 + bne _0806D188 + cmp r4, 0 + beq _0806D188 + adds r0, r5, 0 + bl sub_8041B18 + adds r7, 0x4 +_0806D188: + ldr r0, [r5, 0x70] + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0xA + bne _0806D19E + cmp r4, 0 + beq _0806D19E + adds r0, r5, 0 + bl sub_8041B18 + adds r7, 0x1 +_0806D19E: + ldr r0, [r5, 0x70] + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x8 + bne _0806D1B4 + cmp r4, 0 + bne _0806D1B4 + adds r0, r5, 0 + bl sub_8041B90 + adds r7, 0x4 +_0806D1B4: + adds r0, r5, 0 + movs r1, 0x12 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D1C4 + adds r7, 0x2 +_0806D1C4: + cmp r7, 0 + beq _0806D216 + ldr r0, _0806D3C0 + ldr r2, [r0] + adds r0, r6, 0 + adds r1, r5, 0 + bl sub_80522F4 + mov r1, r8 + ldr r0, [r1] + muls r0, r7 + cmp r0, 0 + bge _0806D1E0 + adds r0, 0x3 +_0806D1E0: + asrs r0, 2 + str r0, [sp, 0xC] + add r2, sp, 0xC + mov r3, r8 + ldrb r0, [r3, 0xC] + movs r1, 0 + strb r0, [r2, 0xC] + movs r0, 0x6 + str r0, [sp, 0x10] + movs r0, 0x2 + str r0, [sp, 0x14] + adds r0, r2, 0 + strb r1, [r0, 0xD] + strb r1, [r0, 0xE] + strb r1, [r0, 0xF] + ldr r0, [sp, 0x3C] + str r0, [sp] + mov r1, r10 + str r1, [sp, 0x4] + ldr r2, [sp, 0x48] + str r2, [sp, 0x8] + adds r0, r5, 0 + adds r1, r6, 0 + add r2, sp, 0xC + movs r3, 0 + bl sub_806D528 +_0806D216: + adds r0, r6, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D224 + b _0806D514 +_0806D224: + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806D232 + b _0806D514 +_0806D232: + mov r3, r9 + cmp r3, 0 + bne _0806D23A + b _0806D48A +_0806D23A: + cmp r6, r5 + bne _0806D240 + b _0806D48A +_0806D240: + movs r0, 0x4 + ldrsh r1, [r6, r0] + movs r2, 0x4 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0806D250 + negs r1, r1 +_0806D250: + cmp r1, 0x1 + ble _0806D256 + b _0806D48A +_0806D256: + movs r3, 0x6 + ldrsh r1, [r6, r3] + movs r2, 0x6 + ldrsh r0, [r5, r2] + subs r1, r0 + cmp r1, 0 + bge _0806D266 + negs r1, r1 +_0806D266: + cmp r1, 0x1 + ble _0806D26C + b _0806D48A +_0806D26C: + mov r3, r8 + ldrb r0, [r3, 0xC] + bl sub_8092354 + lsls r0, 24 + lsrs r7, r0, 24 + ldr r4, [r6, 0x70] + adds r0, r5, 0 + movs r1, 0x5 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D2C2 + adds r0, r6, 0 + movs r1, 0xA + bl HasType + lsls r0, 24 + cmp r0, 0 + bne _0806D2C2 + adds r0, r6, 0 + movs r1, 0x37 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806D2C2 + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3C4 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D2C2 + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x1 + orrs r0, r1 + strh r0, [r2] +_0806D2C2: + adds r0, r5, 0 + movs r1, 0xA + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D2EE + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3C8 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D2EE + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x2 + orrs r0, r1 + strh r0, [r2] +_0806D2EE: + adds r0, r5, 0 + movs r1, 0x17 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D328 + adds r0, r6, 0 + movs r1, 0x11 + bl HasType + lsls r0, 24 + cmp r0, 0 + beq _0806D328 + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3CC + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D328 + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x4 + orrs r0, r1 + strh r0, [r2] +_0806D328: + adds r0, r5, 0 + movs r1, 0x20 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D358 + cmp r7, 0 + beq _0806D358 + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3D0 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D358 + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x8 + orrs r0, r1 + strh r0, [r2] +_0806D358: + adds r0, r5, 0 + movs r1, 0x27 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D384 + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3D4 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D384 + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x20 + orrs r0, r1 + strh r0, [r2] +_0806D384: + adds r0, r5, 0 + movs r1, 0x3D + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D3FA + cmp r7, 0 + beq _0806D3FA + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D3D8 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D3FA + movs r0, 0x3 + bl DungeonRandomCapped + cmp r0, 0 + bgt _0806D3DC + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r0, 0x40 + b _0806D3F6 + .align 2, 0 +_0806D3BC: .4byte gUnknown_8106A4C +_0806D3C0: .4byte gUnknown_80FCFA4 +_0806D3C4: .4byte gUnknown_80F4E10 +_0806D3C8: .4byte gUnknown_80F4E12 +_0806D3CC: .4byte gUnknown_80F4E14 +_0806D3D0: .4byte gUnknown_80F4E16 +_0806D3D4: .4byte gUnknown_80F4E18 +_0806D3D8: .4byte gUnknown_80F4E1A +_0806D3DC: + cmp r0, 0x1 + bgt _0806D3EC + movs r0, 0xBC + lsls r0, 1 + adds r2, r4, r0 + ldrh r1, [r2] + movs r0, 0x10 + b _0806D3F6 +_0806D3EC: + movs r1, 0xBC + lsls r1, 1 + adds r2, r4, r1 + ldrh r1, [r2] + movs r0, 0x80 +_0806D3F6: + orrs r0, r1 + strh r0, [r2] +_0806D3FA: + adds r0, r5, 0 + movs r1, 0x3E + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D428 + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D4D4 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D428 + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + subs r3, 0x78 + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2] +_0806D428: + adds r0, r5, 0 + movs r1, 0x44 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D45A + cmp r7, 0 + beq _0806D45A + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D4D8 + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D45A + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + adds r3, 0x88 + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2] +_0806D45A: + adds r0, r5, 0 + movs r1, 0x1 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D48A + movs r0, 0x64 + bl DungeonRandomCapped + ldr r1, _0806D4DC + movs r2, 0 + ldrsh r1, [r1, r2] + cmp r0, r1 + bge _0806D48A + movs r3, 0xBC + lsls r3, 1 + adds r2, r4, r3 + ldrh r1, [r2] + movs r3, 0x80 + lsls r3, 3 + adds r0, r3, 0 + orrs r0, r1 + strh r0, [r2] +_0806D48A: + adds r0, r6, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806D514 + adds r0, r5, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806D514 + mov r0, r9 + cmp r0, 0 + beq _0806D514 + ldr r2, [r5, 0x70] + adds r6, r2, 0 + adds r3, r2, 0 + adds r3, 0xD0 + ldrb r0, [r3] + cmp r0, 0x2 + bne _0806D514 + ldr r0, _0806D4E0 + ldr r1, [r0] + adds r0, r2, 0 + adds r0, 0xD8 + ldrb r0, [r0] + lsls r0, 2 + ldr r2, _0806D4E4 + adds r1, r2 + adds r1, r0 + ldr r4, [r1] + cmp r4, 0 + bne _0806D4E8 + strb r4, [r3] + b _0806D514 + .align 2, 0 +_0806D4D4: .4byte gUnknown_80F4E1C +_0806D4D8: .4byte gUnknown_80F4E1E +_0806D4DC: .4byte gUnknown_80F4E20 +_0806D4E0: .4byte gDungeonGlobalData +_0806D4E4: .4byte 0x000135cc +_0806D4E8: + ldr r0, [r4, 0x70] + adds r0, 0x98 + adds r1, r6, 0 + adds r1, 0xD4 + ldr r2, [r0] + ldr r0, [r1] + cmp r2, r0 + beq _0806D4FE + movs r0, 0 + strb r0, [r3] + b _0806D514 +_0806D4FE: + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_8041D00 + mov r3, r8 + ldr r1, [r3] + ldr r3, _0806D524 + adds r0, r4, 0 + movs r2, 0xC + bl sub_806F324 +_0806D514: + 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 +_0806D524: .4byte 0x000001f9 + thumb_func_end sub_806D010 + + thumb_func_start sub_806D528 +sub_806D528: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x58 + mov r9, r0 + adds r7, r1, 0 + adds r5, r2, 0 + str r3, [sp, 0x4C] + ldr r0, [sp, 0x7C] + lsls r0, 16 + asrs r0, 16 + str r0, [sp, 0x50] + movs r0, 0 + str r0, [sp, 0x54] + mov r10, r0 + mov r8, r0 + mov r1, r10 + strb r1, [r5, 0xF] + adds r0, r7, 0 + bl GetEntityType + cmp r0, 0x1 + beq _0806D55C + b _0806D754 +_0806D55C: + ldr r6, [r7, 0x70] + mov r0, r9 + adds r1, r7, 0 + bl sub_807A96C + mov r0, r9 + adds r1, r7, 0 + bl SetShopkeeperAggression + mov r0, r9 + bl GetEntityType + cmp r0, 0x1 + bne _0806D592 + mov r2, r9 + ldr r0, [r2, 0x70] + adds r0, 0xDC + ldrb r0, [r0] + cmp r0, 0x3 + bne _0806D592 + ldrb r0, [r5, 0xE] + cmp r0, 0 + bne _0806D592 + ldr r0, _0806D5C8 + movs r3, 0 + ldrsh r0, [r0, r3] + str r0, [r5] +_0806D592: + ldr r0, _0806D5CC + ldr r1, [sp, 0x50] + cmp r1, r0 + beq _0806D5DC + adds r0, r7, 0 + movs r1, 0xD + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D5DC + ldr r1, [r5] + ldr r0, _0806D5D0 + cmp r1, r0 + bne _0806D5DC + ldr r0, _0806D5D4 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0806D5D8 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 + b _0806D71E + .align 2, 0 +_0806D5C8: .4byte gUnknown_80F4F8C +_0806D5CC: .4byte 0x0000020e +_0806D5D0: .4byte 0x0000270f +_0806D5D4: .4byte gUnknown_202DFE8 +_0806D5D8: .4byte gUnknown_80FCA90 +_0806D5DC: + adds r0, r6, 0 + adds r0, 0xB0 + ldrb r4, [r0] + mov r10, r0 + cmp r4, 0x1 + bne _0806D618 + ldr r0, _0806D610 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0806D614 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 + mov r0, r9 + adds r1, r7, 0 + bl sub_8042238 + strb r4, [r5, 0xF] +_0806D608: + movs r0, 0 + bl _0806E0F0 + .align 2, 0 +_0806D610: .4byte gUnknown_202DFE8 +_0806D614: .4byte gUnknown_80F9600 +_0806D618: + adds r0, r6, 0 + adds r0, 0xA8 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0806D62A + cmp r0, 0x5 + beq _0806D62A + cmp r0, 0x3 + bne _0806D63A +_0806D62A: + adds r0, r6, 0 + adds r0, 0xA9 + ldrb r0, [r0] + cmp r0, 0x7F + bne _0806D63A + adds r0, r7, 0 + bl sub_807A9B0 +_0806D63A: + adds r0, r7, 0 + movs r1, 0x23 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D660 + ldrb r0, [r5, 0xC] + cmp r0, 0x5 + bne _0806D660 +_0806D64E: + ldr r2, [r5] + movs r0, 0 + str r0, [sp] + mov r0, r9 + adds r1, r7, 0 + movs r3, 0 + bl HealTargetHP + b _0806D754 +_0806D660: + adds r0, r7, 0 + movs r1, 0x24 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806D674 + ldrb r0, [r5, 0xC] + cmp r0, 0x3 + beq _0806D64E +_0806D674: + movs r2, 0xA9 + lsls r2, 1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D6D0 + ldrb r0, [r5, 0xD] + cmp r0, 0 + beq _0806D692 + ldr r0, _0806D6A4 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D692: + ldr r0, [r5, 0x8] + cmp r0, 0x1 + beq _0806D6B0 + cmp r0, 0x1 + bcc _0806D6A8 + cmp r0, 0x3 + beq _0806D6C4 + b _0806D6D0 + .align 2, 0 +_0806D6A4: .4byte gUnknown_80F9614 +_0806D6A8: + ldr r0, _0806D6AC + b _0806D6B2 + .align 2, 0 +_0806D6AC: .4byte gUnknown_80F9630 +_0806D6B0: + ldr r0, _0806D6C0 +_0806D6B2: + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 + b _0806D6D0 + .align 2, 0 +_0806D6C0: .4byte gUnknown_80F9654 +_0806D6C4: + ldr r0, _0806D728 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D6D0: + ldr r4, _0806D72C + adds r0, r4, 0 + mov r1, r9 + movs r2, 0 + bl SetMessageArgument + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r1, [r5] + cmp r1, 0 + bne _0806D760 + mov r0, r9 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0806D734 + adds r0, r7, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0806D734 + movs r3, 0xA9 + lsls r3, 1 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D71E + ldr r0, _0806D730 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D71E: + mov r0, r9 + adds r1, r7, 0 + bl sub_8042238 + b _0806D754 + .align 2, 0 +_0806D728: .4byte gUnknown_80F9670 +_0806D72C: .4byte gAvailablePokemonNames +_0806D730: .4byte gUnknown_80F9688 +_0806D734: + movs r1, 0xA9 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D74C + ldr r0, _0806D75C + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D74C: + movs r0, 0x1E + movs r1, 0x18 + bl sub_803E708 +_0806D754: + movs r0, 0x1 + strb r0, [r5, 0xF] + b _0806D608 + .align 2, 0 +_0806D75C: .4byte gUnknown_80F9688 +_0806D760: + ldr r0, _0806D7B8 + cmp r1, r0 + bne _0806D7C4 + ldr r0, [sp, 0x80] + cmp r0, 0 + beq _0806D796 + adds r0, r7, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0806D796 + adds r0, r7, 0 + bl sub_8045128 + mov r8, r0 + movs r0, 0x14 + movs r1, 0x18 + bl sub_803E708 + mov r2, r8 + ldrh r1, [r2, 0x4] + movs r0, 0x4 + orrs r0, r1 + strh r0, [r2, 0x4] + bl sub_8049ED4 +_0806D796: + movs r3, 0xA9 + lsls r3, 1 + adds r0, r6, r3 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D7AE + ldr r0, _0806D7BC + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D7AE: + adds r1, r6, 0 + adds r1, 0xA0 + ldr r0, _0806D7C0 + str r0, [r1] + b _0806D84A + .align 2, 0 +_0806D7B8: .4byte 0x0000270f +_0806D7BC: .4byte gUnknown_80F96A8 +_0806D7C0: .4byte 0x000003e7 +_0806D7C4: + ldr r0, _0806D824 + str r1, [r0] + ldr r1, _0806D828 + ldr r0, [r5, 0x4] + lsls r0, 2 + adds r0, r1 + ldr r4, [r0] + adds r2, r6, 0 + adds r2, 0xA0 + ldr r0, [r2] + ldr r1, [r5] + adds r0, r1 + str r0, [r2] + ldr r1, _0806D82C + cmp r0, r1 + ble _0806D7E6 + str r1, [r2] +_0806D7E6: + adds r0, r7, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0806D830 + ldr r0, [r5, 0x4] + cmp r0, 0xE + beq _0806D808 + ldr r0, [r5] + negs r0, r0 + movs r3, 0x1 + negs r3, r3 + adds r1, r7, 0 + movs r2, 0x1 + bl sub_803ED30 +_0806D808: + movs r1, 0xA9 + lsls r1, 1 + adds r0, r6, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D84A + cmp r4, 0 + beq _0806D84A + mov r0, r9 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_80522F4 + b _0806D84A + .align 2, 0 +_0806D824: .4byte gUnknown_202DE30 +_0806D828: .4byte gUnknown_80F9764 +_0806D82C: .4byte 0x000003e7 +_0806D830: + movs r2, 0xA9 + lsls r2, 1 + adds r0, r6, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0806D84A + cmp r4, 0 + beq _0806D84A + mov r0, r9 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_80522F4 +_0806D84A: + ldr r0, [r5, 0x4] + cmp r0, 0xE + bne _0806D858 + movs r3, 0xE + ldrsh r0, [r6, r3] + cmp r0, 0x1 + bgt _0806D900 +_0806D858: + mov r0, r8 + cmp r0, 0 + bne _0806D900 + adds r0, r7, 0 + bl sub_8045888 + lsls r0, 24 + cmp r0, 0 + beq _0806D900 + mov r2, r9 + ldr r1, [r2, 0x4] + ldr r0, [r7, 0x4] + cmp r1, r0 + beq _0806D8E6 + mov r0, r9 + bl GetEntityType + cmp r0, 0x1 + bne _0806D8E6 + movs r4, 0 + ldrb r0, [r6, 0x7] + cmp r0, 0 + beq _0806D8B4 + ldr r0, _0806D8B0 + ldr r0, [r0] + ldrb r0, [r0, 0x2] + cmp r0, 0 + beq _0806D8B6 + adds r0, r7, 0 + bl sub_806A458 + lsls r0, 24 + cmp r0, 0 + bne _0806D8B6 + adds r0, r7, 0 + mov r1, r9 + bl CanSee + lsls r0, 24 + lsrs r0, 24 + negs r1, r0 + orrs r1, r0 + lsrs r4, r1, 31 + b _0806D8B6 + .align 2, 0 +_0806D8B0: .4byte gUnknown_203B46C +_0806D8B4: + movs r4, 0 +_0806D8B6: + adds r0, r6, 0 + adds r0, 0xE8 + ldrb r0, [r0] + subs r0, 0x1 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0806D8C8 + movs r4, 0 +_0806D8C8: + cmp r4, 0 + beq _0806D8E0 + ldr r4, [r7, 0x70] + adds r0, r7, 0x4 + mov r1, r9 + adds r1, 0x4 + bl CalculateFacingDir + movs r1, 0x7 + ands r0, r1 + adds r4, 0x46 + strb r0, [r4] +_0806D8E0: + adds r0, r7, 0 + bl TargetTileInFront +_0806D8E6: + ldr r0, [r7, 0x70] + adds r0, 0x46 + ldrb r2, [r0] + adds r0, r7, 0 + movs r1, 0x6 + bl sub_806CDD4 + adds r0, r7, 0 + adds r1, r5, 0 + bl sub_80420E8 + movs r3, 0x1 + str r3, [sp, 0x54] +_0806D900: + movs r0, 0xE + ldrsh r4, [r6, r0] + ldr r1, [r5] + cmp r4, r1 + ble _0806D910 + ldrh r0, [r6, 0xE] + subs r0, r1 + b _0806D912 +_0806D910: + movs r0, 0 +_0806D912: + strh r0, [r6, 0xE] + adds r0, r6, 0 + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x9 + bne _0806D93C + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + bne _0806D958 + movs r0, 0x1 + strh r0, [r6, 0xE] + ldr r0, _0806D938 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 + b _0806D958 + .align 2, 0 +_0806D938: .4byte gUnknown_8100548 +_0806D93C: + ldr r2, [sp, 0x4C] + cmp r2, 0x1 + bne _0806D958 + movs r3, 0xE + ldrsh r0, [r6, r3] + cmp r0, 0 + bne _0806D958 + strh r2, [r6, 0xE] + ldr r0, _0806D9C8 + ldr r2, [r0] + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 +_0806D958: + movs r1, 0xE + ldrsh r0, [r6, r1] + subs r4, r0 + cmp r4, 0 + bge _0806D964 + movs r4, 0 +_0806D964: + ldr r2, [sp, 0x54] + cmp r2, 0 + bne _0806D970 + mov r3, r8 + cmp r3, 0 + beq _0806D978 +_0806D970: + movs r0, 0xA + movs r1, 0x18 + bl sub_803E708 +_0806D978: + movs r1, 0xE + ldrsh r0, [r6, r1] + cmp r0, 0 + beq _0806D9D4 + ldr r2, [sp, 0x54] + cmp r2, 0 + beq _0806D98E + adds r0, r7, 0 + movs r1, 0x8 + bl sub_806CE68 +_0806D98E: + adds r0, r7, 0 + movs r1, 0x10 + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806D9B2 + cmp r4, 0 + ble _0806D9B2 + ldr r1, [r5] + ldr r0, _0806D9CC + cmp r1, r0 + beq _0806D9B2 + mov r0, r9 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_8071D4C +_0806D9B2: + mov r3, r8 + cmp r3, 0 + bne _0806D9BA + b _0806D608 +_0806D9BA: + ldrh r1, [r3, 0x4] + ldr r0, _0806D9D0 + ands r0, r1 + strh r0, [r3, 0x4] + bl sub_8049ED4 + b _0806D608 + .align 2, 0 +_0806D9C8: .4byte gUnknown_810056C +_0806D9CC: .4byte 0x0000270f +_0806D9D0: .4byte 0x0000fffb +_0806D9D4: + adds r0, r6, 0 + adds r0, 0xE4 + ldrb r0, [r0] + cmp r0, 0x2 + bne _0806D9E6 + mov r0, r9 + adds r1, r7, 0 + bl sub_807A7C8 +_0806D9E6: + mov r0, r8 + cmp r0, 0 + beq _0806DA18 + movs r0, 0x14 + movs r1, 0x18 + bl sub_803E708 + adds r1, r7, 0 + adds r1, 0x22 + movs r0, 0x2 + strb r0, [r1] + movs r0, 0xA + movs r1, 0x18 + bl sub_803E708 + mov r2, r8 + ldrh r1, [r2, 0x4] + ldr r0, _0806DA14 + ands r0, r1 + strh r0, [r2, 0x4] + bl sub_8049ED4 + b _0806DA2E + .align 2, 0 +_0806DA14: .4byte 0x0000fffb +_0806DA18: + ldr r3, [sp, 0x54] + cmp r3, 0 + beq _0806DA2E + adds r1, r7, 0 + adds r1, 0x22 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x1E + movs r1, 0x18 + bl sub_803E708 +_0806DA2E: + movs r0, 0x1 + mov r8, r0 + mov r0, r9 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806DA50 + mov r0, r9 + bl GetEntityType + cmp r0, 0x1 + bne _0806DA50 + cmp r9, r7 + beq _0806DA50 + movs r1, 0 + mov r8, r1 +_0806DA50: + movs r2, 0xA6 + lsls r2, 1 + adds r1, r6, r2 + movs r0, 0 + strb r0, [r1] + ldr r4, _0806DA88 + adds r0, r4, 0 + mov r1, r9 + movs r2, 0 + bl SetMessageArgument + adds r4, 0x50 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, [r5, 0x4] + subs r0, 0x13 + cmp r0, 0x1 + bhi _0806DA9C + ldrb r0, [r6, 0x6] + cmp r0, 0 + beq _0806DA90 + ldr r0, _0806DA8C + ldr r2, [r0] + b _0806DAC2 + .align 2, 0 +_0806DA88: .4byte gAvailablePokemonNames +_0806DA8C: .4byte gUnknown_80F9E44 +_0806DA90: + ldr r0, _0806DA98 + ldr r1, [r0] + b _0806DB86 + .align 2, 0 +_0806DA98: .4byte gUnknown_80F9E44 +_0806DA9C: + ldrb r0, [r6, 0x6] + cmp r0, 0 + beq _0806DAD0 + adds r0, r6, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0806DAB8 + ldr r0, _0806DAB4 + mov r3, r8 + lsls r1, r3, 2 + b _0806DB82 + .align 2, 0 +_0806DAB4: .4byte gUnknown_80F9DF0 +_0806DAB8: + ldr r0, _0806DACC + mov r2, r8 + lsls r1, r2, 2 + adds r1, r0 + ldr r2, [r1] +_0806DAC2: + mov r0, r9 + adds r1, r7, 0 + bl sub_80522F4 + b _0806DBA4 + .align 2, 0 +_0806DACC: .4byte gUnknown_80F9CC0 +_0806DAD0: + ldr r2, _0806DB04 + ldrb r1, [r6, 0xA] + movs r0, 0x64 + muls r0, r1 + ldr r3, _0806DB08 + adds r0, r3 + ldr r1, [r2] + adds r3, r1, r0 + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0806DB00 + adds r0, r6, 0 + adds r0, 0x40 + ldrb r1, [r0] + adds r2, r0, 0 + cmp r1, 0x41 + bne _0806DB18 + ldr r0, _0806DB0C + ldr r0, [r0] + ldr r1, _0806DB10 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0806DB18 +_0806DB00: + ldr r0, _0806DB14 + b _0806DB7E + .align 2, 0 +_0806DB04: .4byte gRecruitedPokemonRef +_0806DB08: .4byte 0x00008df8 +_0806DB0C: .4byte gDungeonGlobalData +_0806DB10: .4byte 0x0000065c +_0806DB14: .4byte gUnknown_80F9CEC +_0806DB18: + ldrb r0, [r2] + cmp r0, 0x4A + beq _0806DB22 + cmp r0, 0x47 + bne _0806DB26 +_0806DB22: + movs r0, 0x1 + b _0806DB28 +_0806DB26: + movs r0, 0 +_0806DB28: + cmp r0, 0 + beq _0806DB38 + ldr r0, _0806DB34 + mov r3, r8 + lsls r1, r3, 2 + b _0806DB82 + .align 2, 0 +_0806DB34: .4byte gUnknown_80F9DAC +_0806DB38: + adds r0, r6, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0806DB4C + ldr r0, _0806DB48 + b _0806DB7E + .align 2, 0 +_0806DB48: .4byte gUnknown_80F9DF0 +_0806DB4C: + movs r1, 0xA + ldrsh r0, [r3, r1] + bl sub_806A58C + lsls r0, 24 + cmp r0, 0 + beq _0806DB94 + ldr r0, _0806DB70 + ldr r0, [r0] + ldr r2, _0806DB74 + adds r0, r2 + ldrb r0, [r0] + cmp r0, 0 + beq _0806DB7C + ldr r0, _0806DB78 + mov r3, r8 + lsls r1, r3, 2 + b _0806DB82 + .align 2, 0 +_0806DB70: .4byte gDungeonGlobalData +_0806DB74: .4byte 0x0000065d +_0806DB78: .4byte gUnknown_80F9D8C +_0806DB7C: + ldr r0, _0806DB90 +_0806DB7E: + mov r2, r8 + lsls r1, r2, 2 +_0806DB82: + adds r1, r0 + ldr r1, [r1] +_0806DB86: + mov r0, r9 + bl sub_805239C + b _0806DBA4 + .align 2, 0 +_0806DB90: .4byte gUnknown_80F9D84 +_0806DB94: + ldr r0, _0806DC4C + mov r3, r8 + lsls r1, r3, 2 + adds r1, r0 + ldr r1, [r1] + mov r0, r9 + bl sub_805239C +_0806DBA4: + mov r1, r10 + ldrb r0, [r1] + subs r0, 0x3 + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bhi _0806DBBC + adds r0, r6, 0 + adds r0, 0x9C + ldr r0, [r0] + bl sub_8076CB4 +_0806DBBC: + adds r1, r6, 0 + adds r1, 0x60 + ldrb r3, [r1] + movs r2, 0x1 + mov r8, r2 + mov r0, r8 + ands r0, r3 + adds r5, r1, 0 + cmp r0, 0 + beq _0806DC5C + movs r0, 0x8 + ands r0, r3 + cmp r0, 0 + bne _0806DC5C + movs r0, 0x2 + ands r0, r3 + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + bne _0806DC5C + ldrb r0, [r5, 0x2] + cmp r0, 0xD2 + bne _0806DC5C + adds r0, r7, 0 + bl sub_8042148 + adds r0, r7, 0 + adds r0, 0x22 + strb r4, [r0] + ldrh r0, [r6, 0x10] + movs r2, 0 + strh r0, [r6, 0xE] + movs r3, 0xAC + lsls r3, 1 + adds r0, r6, r3 + strb r2, [r0] + movs r1, 0xA6 + lsls r1, 1 + adds r0, r6, r1 + mov r3, r8 + strb r3, [r0] + movs r0, 0x9E + lsls r0, 1 + adds r1, r6, r0 + movs r3, 0xA0 + lsls r3, 1 + adds r0, r6, r3 + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r6, 0x7] + cmp r0, 0 + beq _0806DC36 + ldr r0, _0806DC50 + ldr r1, [r0] + ldr r3, _0806DC54 + adds r1, r3 + strb r2, [r1] + ldr r0, [r0] + ldr r1, _0806DC58 + adds r0, r1 + strb r2, [r0] +_0806DC36: + strb r2, [r5, 0x2] + strb r2, [r5, 0x1] + strb r2, [r5] + adds r0, r6, 0 + adds r0, 0xC8 + ldrb r0, [r0] + cmp r0, 0x3 + bne _0806DC48 + b _0806DEC8 +_0806DC48: + b _0806DEE4 + .align 2, 0 +_0806DC4C: .4byte gUnknown_80F9D28 +_0806DC50: .4byte gDungeonGlobalData +_0806DC54: .4byte 0x00000679 +_0806DC58: .4byte 0x00000676 +_0806DC5C: + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0806DC64 + b _0806DDFC +_0806DC64: + mov r10, r5 + ldrb r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + bne _0806DC72 + b _0806DDFC +_0806DC72: + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + beq _0806DC7C + b _0806DDFC +_0806DC7C: + ldrb r0, [r5, 0x2] + cmp r0, 0xD8 + beq _0806DC84 + b _0806DDFC +_0806DC84: + movs r4, 0 +_0806DC86: + ldr r0, _0806DD80 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _0806DD84 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + mov r8, r0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806DCDE + cmp r8, r7 + beq _0806DCDE + adds r0, r7, 0 + mov r1, r8 + bl CanSee + lsls r0, 24 + cmp r0, 0 + beq _0806DCDE + mov r3, r8 + movs r0, 0x4 + ldrsh r1, [r3, r0] + movs r2, 0x4 + ldrsh r0, [r7, r2] + subs r1, r0 + cmp r1, 0 + bge _0806DCC4 + negs r1, r1 +_0806DCC4: + cmp r1, 0x1 + bgt _0806DCDE + mov r3, r8 + movs r0, 0x6 + ldrsh r1, [r3, r0] + movs r2, 0x6 + ldrsh r0, [r7, r2] + subs r1, r0 + cmp r1, 0 + bge _0806DCDA + negs r1, r1 +_0806DCDA: + cmp r1, 0x1 + ble _0806DCE4 +_0806DCDE: + adds r4, 0x1 + cmp r4, 0x3 + ble _0806DC86 +_0806DCE4: + cmp r4, 0x4 + bne _0806DCEA + b _0806DDFC +_0806DCEA: + adds r0, r7, 0 + bl sub_8042148 + mov r3, r8 + ldr r4, [r3, 0x4] + ldr r1, _0806DD88 + mov r0, r8 + adds r2, r7, 0 + bl sub_8068FE0 + lsls r1, r4, 16 + asrs r1, 16 + asrs r4, 16 + adds r0, r7, 0 + adds r2, r4, 0 + movs r3, 0x1 + bl sub_80694C0 + adds r0, r7, 0 + movs r1, 0 + bl sub_804535C + adds r1, r7, 0 + adds r1, 0x22 + movs r0, 0 + strb r0, [r1] + ldrh r0, [r6, 0x10] + movs r4, 0 + strh r0, [r6, 0xE] + adds r0, r7, 0 + bl sub_8042A24 + movs r1, 0xAC + lsls r1, 1 + adds r0, r6, r1 + strb r4, [r0] + movs r2, 0xA6 + lsls r2, 1 + adds r1, r6, r2 + movs r0, 0x1 + strb r0, [r1] + movs r3, 0x9E + lsls r3, 1 + adds r1, r6, r3 + subs r2, 0xC + adds r0, r6, r2 + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r6, 0x7] + cmp r0, 0 + beq _0806DD62 + ldr r0, _0806DD80 + ldr r1, [r0] + ldr r3, _0806DD8C + adds r1, r3 + strb r4, [r1] + ldr r0, [r0] + ldr r1, _0806DD90 + adds r0, r1 + strb r4, [r0] +_0806DD62: + mov r2, r10 + strb r4, [r2, 0x2] + strb r4, [r2, 0x1] + strb r4, [r2] + adds r0, r6, 0 + adds r0, 0xC8 + ldrb r0, [r0] + cmp r0, 0x3 + bne _0806DD94 + mov r0, r9 + adds r1, r7, 0 + movs r2, 0x3 + bl sub_807A5D0 + b _0806DDA2 + .align 2, 0 +_0806DD80: .4byte gDungeonGlobalData +_0806DD84: .4byte 0x0001357c +_0806DD88: .4byte 0x00000221 +_0806DD8C: .4byte 0x00000679 +_0806DD90: .4byte 0x00000676 +_0806DD94: + cmp r0, 0x2 + bne _0806DDA2 + mov r0, r9 + adds r1, r7, 0 + movs r2, 0x2 + bl sub_807A5D0 +_0806DDA2: + adds r0, r7, 0 + bl sub_8078084 + adds r0, r6, 0 + movs r1, 0 + bl sub_806BFC0 + bl sub_800DBBC + adds r0, r7, 0 + bl sub_806A390 + adds r0, r7, 0 + bl sub_806CEBC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl sub_806CCB4 + adds r0, r7, 0 + bl sub_80418D4 + ldr r4, _0806DDF0 + adds r0, r4, 0 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + adds r4, 0x50 + adds r0, r4, 0 + mov r1, r8 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0806DDF4 + b _0806DF2E + .align 2, 0 +_0806DDF0: .4byte gAvailablePokemonNames +_0806DDF4: .4byte gUnknown_80FD484 +_0806DDF8: + mov r4, r8 + b _0806DE64 +_0806DDFC: + adds r0, r7, 0 + movs r1, 0x16 + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + bne _0806DE0C + b _0806DF48 +_0806DE0C: + movs r4, 0 + ldrb r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806DE28 + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0806DE28 + ldrb r0, [r5, 0x2] + cmp r0, 0x3A + bne _0806DE28 + adds r4, r5, 0 +_0806DE28: + cmp r4, 0 + bne _0806DE68 + ldrb r0, [r6, 0x6] + cmp r0, 0 + bne _0806DE64 + movs r3, 0 + ldr r0, _0806DED4 + ldr r2, [r0] + mov r12, r2 + movs r0, 0x1 + mov r10, r0 +_0806DE3E: + lsls r0, r3, 2 + add r0, r12 + mov r8, r0 + ldrb r1, [r2] + mov r0, r10 + ands r0, r1 + cmp r0, 0 + beq _0806DE5C + movs r0, 0x8 + ands r0, r1 + cmp r0, 0 + bne _0806DE5C + ldrb r0, [r2, 0x2] + cmp r0, 0x3A + beq _0806DDF8 +_0806DE5C: + adds r2, 0x4 + adds r3, 0x1 + cmp r3, 0x13 + ble _0806DE3E +_0806DE64: + cmp r4, 0 + beq _0806DF48 +_0806DE68: + adds r0, r7, 0 + bl sub_8042148 + adds r0, r4, 0 + movs r1, 0x46 + movs r2, 0x2 + bl sub_8045C28 + adds r1, r7, 0 + adds r1, 0x22 + movs r0, 0 + strb r0, [r1] + ldrh r0, [r6, 0x10] + movs r2, 0 + strh r0, [r6, 0xE] + movs r1, 0xAC + lsls r1, 1 + adds r0, r6, r1 + strb r2, [r0] + movs r3, 0xA6 + lsls r3, 1 + adds r1, r6, r3 + movs r0, 0x1 + strb r0, [r1] + movs r0, 0x9E + lsls r0, 1 + adds r1, r6, r0 + subs r3, 0xC + adds r0, r6, r3 + ldr r0, [r0] + str r0, [r1] + ldrb r0, [r6, 0x7] + cmp r0, 0 + beq _0806DEBE + ldr r0, _0806DED8 + ldr r1, [r0] + ldr r3, _0806DEDC + adds r1, r3 + strb r2, [r1] + ldr r0, [r0] + ldr r1, _0806DEE0 + adds r0, r1 + strb r2, [r0] +_0806DEBE: + adds r0, r6, 0 + adds r0, 0xC8 + ldrb r0, [r0] + cmp r0, 0x3 + bne _0806DEE4 +_0806DEC8: + mov r0, r9 + adds r1, r7, 0 + movs r2, 0x3 + bl sub_807A5D0 + b _0806DEF2 + .align 2, 0 +_0806DED4: .4byte gTeamInventory_203B460 +_0806DED8: .4byte gDungeonGlobalData +_0806DEDC: .4byte 0x00000679 +_0806DEE0: .4byte 0x00000676 +_0806DEE4: + cmp r0, 0x2 + bne _0806DEF2 + mov r0, r9 + adds r1, r7, 0 + movs r2, 0x2 + bl sub_807A5D0 +_0806DEF2: + adds r0, r7, 0 + bl sub_8078084 + adds r0, r6, 0 + movs r1, 0 + bl sub_806BFC0 + bl sub_800DBBC + adds r0, r7, 0 + bl sub_806A390 + adds r0, r7, 0 + bl sub_806CEBC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r7, 0 + bl sub_806CCB4 + adds r0, r7, 0 + bl sub_80418D4 + ldr r0, _0806DF40 + adds r1, r7, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0806DF44 +_0806DF2E: + ldr r1, [r0] + mov r0, r9 + bl sub_805239C + adds r0, r7, 0 + bl sub_806F63C + bl _0806D608 + .align 2, 0 +_0806DF40: .4byte gUnknown_202DFE8 +_0806DF44: .4byte gUnknown_80FD46C +_0806DF48: + ldrb r4, [r6, 0x7] + cmp r4, 0 + bne _0806DF68 + ldrb r1, [r5] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806DF68 + adds r1, r7, 0x4 + adds r0, r7, 0 + adds r2, r5, 0 + bl sub_80464C8 + strb r4, [r5, 0x2] + strb r4, [r5, 0x1] + strb r4, [r5] +_0806DF68: + adds r0, r6, 0 + adds r0, 0xF7 + ldrb r0, [r0] + cmp r0, 0 + beq _0806DF7E + ldr r0, _0806E02C + ldr r0, [r0] + ldr r2, _0806E030 + adds r0, r2 + ldr r1, _0806E034 + strh r1, [r0] +_0806DF7E: + movs r3, 0 + mov r10, r3 + mov r0, r9 + bl GetEntityType + cmp r0, 0x1 + bne _0806E066 + mov r0, r9 + ldr r4, [r0, 0x70] + movs r1, 0x2 + ldrsh r0, [r6, r1] + ldrb r1, [r6, 0x9] + bl CalculateEXPGain + adds r5, r0, 0 + adds r0, r6, 0 + adds r0, 0xFB + ldrb r0, [r0] + cmp r0, 0 + beq _0806DFAE + cmp r0, 0x2 + bne _0806DFB4 + lsls r0, r5, 1 + adds r5, r0, r5 +_0806DFAE: + lsrs r0, r5, 31 + adds r0, r5, r0 + asrs r5, r0, 1 +_0806DFB4: + cmp r5, 0 + bne _0806DFBA + movs r5, 0x1 +_0806DFBA: + ldrb r0, [r4, 0x7] + cmp r0, 0 + beq _0806DFC8 + movs r2, 0x2 + ldrsh r0, [r6, r2] + bl sub_80980B4 +_0806DFC8: + adds r0, r6, 0 + adds r0, 0xF4 + ldrb r0, [r0] + cmp r0, 0 + beq _0806DFDA + ldr r3, _0806E038 + adds r1, r4, r3 + movs r0, 0x1 + strb r0, [r1] +_0806DFDA: + ldr r0, [sp, 0x78] + cmp r0, 0x1 + bne _0806E066 + ldrb r0, [r4, 0x6] + cmp r0, 0 + bne _0806E040 + ldrb r0, [r6, 0x6] + cmp r0, 0 + beq _0806E066 + mov r0, r9 + mov r1, r9 + adds r2, r5, 0 + bl sub_8071D4C + movs r6, 0 +_0806DFF8: + ldr r0, _0806E02C + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0806E03C + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806E020 + cmp r4, r9 + beq _0806E020 + mov r0, r9 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_8071D4C +_0806E020: + adds r6, 0x1 + cmp r6, 0x3 + ble _0806DFF8 + movs r3, 0x1 + mov r10, r3 + b _0806E066 + .align 2, 0 +_0806E02C: .4byte gDungeonGlobalData +_0806E030: .4byte 0x0000066a +_0806E034: .4byte 0x000003e7 +_0806E038: .4byte 0x0000014b +_0806E03C: .4byte 0x0001357c +_0806E040: + ldr r5, _0806E0BC + ldr r0, [r5] + ldr r1, _0806E0C0 + adds r0, r1 + ldrb r0, [r0] + bl sub_809033C + lsls r0, 24 + cmp r0, 0 + beq _0806E066 + ldr r2, _0806E0C4 + adds r0, r4, r2 + add r3, sp, 0x78 + ldrb r3, [r3] + strb r3, [r0] + ldr r0, [r5] + add r1, sp, 0x78 + ldrb r1, [r1] + strb r1, [r0, 0xD] +_0806E066: + mov r0, r9 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806E08A + mov r0, r9 + bl GetEntityType + cmp r0, 0x1 + bne _0806E08A + mov r2, r9 + ldr r0, [r2, 0x70] + ldrb r0, [r0, 0x7] + cmp r0, 0 + bne _0806E08A + movs r3, 0 + mov r10, r3 +_0806E08A: + mov r0, r10 + cmp r0, 0 + beq _0806E0E4 + add r0, sp, 0x4 + adds r1, r7, 0 + bl sub_8069D4C + mov r0, r9 + adds r1, r7, 0 + bl sub_806F660 + lsls r0, 24 + cmp r0, 0 + beq _0806E0D8 + mov r0, r9 + adds r1, r7, 0 + add r2, sp, 0x4 + bl sub_806FA5C + lsls r0, 24 + cmp r0, 0 + bne _0806E0CC + ldr r1, _0806E0C8 + adds r0, r7, 0 + b _0806E0DC + .align 2, 0 +_0806E0BC: .4byte gDungeonGlobalData +_0806E0C0: .4byte 0x00000644 +_0806E0C4: .4byte 0x00000149 +_0806E0C8: .4byte 0x000001f5 +_0806E0CC: + ldr r1, _0806E0D4 + movs r0, 0x1 + strb r0, [r1] + b _0806E0EE + .align 2, 0 +_0806E0D4: .4byte gUnknown_202F221 +_0806E0D8: + adds r0, r7, 0 + ldr r1, [sp, 0x50] +_0806E0DC: + mov r2, r9 + bl sub_8068FE0 + b _0806E0EE +_0806E0E4: + adds r0, r7, 0 + ldr r1, [sp, 0x50] + mov r2, r9 + bl sub_8068FE0 +_0806E0EE: + movs r0, 0x1 +_0806E0F0: + add sp, 0x58 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_806D528 + + thumb_func_start sub_806E100 +sub_806E100: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x28 + adds r6, r0, 0 + mov r8, r1 + str r2, [sp, 0x18] + lsls r3, 24 + lsrs r7, r3, 24 + movs r0, 0 + mov r9, r0 + movs r1, 0 + str r1, [sp, 0x20] + mov r2, r8 + ldr r2, [r2, 0x70] + str r2, [sp, 0x24] + ldr r3, [sp, 0x18] + ldr r3, [r3, 0x70] + mov r10, r3 + adds r0, r6, 0 + movs r1, 0x1 + bl sub_800A020 + mov r0, r9 + ldr r4, [sp, 0x48] + strb r0, [r4, 0xD] + strb r0, [r4, 0xE] + movs r1, 0 + str r1, [sp, 0x1C] + ldr r0, [sp, 0x18] + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806E14E + movs r0, 0x1 + b _0806E61A +_0806E14E: + cmp r7, 0x1 + beq _0806E156 + cmp r7, 0x7 + bne _0806E15A +_0806E156: + movs r2, 0x1 + str r2, [sp, 0x20] +_0806E15A: + ldr r0, [sp, 0x18] + movs r1, 0x35 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E170 + cmp r7, 0 + beq _0806E170 + movs r3, 0x1 + str r3, [sp, 0x1C] +_0806E170: + movs r0, 0x2 + ldr r4, [sp, 0x48] + str r0, [r4, 0x8] + movs r5, 0 + add r0, sp, 0x10 + mov r9, r0 + b _0806E1F2 +_0806E17E: + mov r1, r10 + adds r1, 0x5C + ldr r2, [sp, 0x20] + cmp r2, 0 + beq _0806E1B4 + adds r0, r1, r5 + ldrb r0, [r0] + cmp r0, 0xE + bne _0806E1B4 + mov r0, r10 + adds r0, 0xF5 + ldrb r0, [r0] + cmp r0, 0 + bne _0806E1B4 + movs r4, 0 + ldr r0, _0806E1AC + ldr r0, [r0] + ldr r3, _0806E1B0 + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] + b _0806E1CA + .align 2, 0 +_0806E1AC: .4byte gDungeonGlobalData +_0806E1B0: .4byte 0x00000179 +_0806E1B4: + ldr r2, _0806E4E4 + adds r0, r1, r5 + ldrb r1, [r0] + lsls r1, 1 + lsls r0, r7, 3 + adds r0, r7 + lsls r0, 2 + adds r1, r0 + adds r1, r2 + movs r0, 0 + ldrsh r4, [r1, r0] +_0806E1CA: + cmp r4, 0x2 + beq _0806E1DC + lsls r0, r4, 2 + add r0, sp + ldr r2, [r0] + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E1DC: + lsls r0, r5, 2 + add r0, r9 + str r4, [r0] + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r1, 0x9E + lsls r1, 1 + adds r0, r1 + adds r0, r5 + strb r4, [r0] + adds r5, 0x1 +_0806E1F2: + cmp r5, 0x1 + bgt _0806E20E + mov r1, sp + ldr r0, _0806E4EC + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r0] + str r0, [r1] + adds r0, r6, 0 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + beq _0806E17E +_0806E20E: + ldr r2, _0806E4F0 + mov r1, r9 + ldr r0, [r1, 0x4] + lsls r0, 2 + ldr r1, [sp, 0x10] + lsls r1, 4 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] + ldr r2, [sp, 0x48] + str r0, [r2, 0x8] + movs r3, 0x1 + mov r9, r3 + cmp r0, 0x3 + beq _0806E240 + movs r4, 0 + mov r9, r4 + ldr r0, [sp, 0x1C] + cmp r0, 0 + beq _0806E240 + ldr r0, _0806E4F4 + ldr r1, [r0, 0x4] + ldr r0, [r0] + str r0, [r6] + str r1, [r6, 0x4] +_0806E240: + cmp r7, 0x2 + beq _0806E248 + cmp r7, 0x6 + bne _0806E26C +_0806E248: + ldr r0, [sp, 0x18] + movs r1, 0x2 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E26C + ldr r0, _0806E4E8 + ldr r0, [r0] + ldr r2, _0806E4F8 + adds r1, r0, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E4FC + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E26C: + cmp r7, 0x2 + bne _0806E2A0 + ldr r0, [sp, 0x18] + bl GetFlashFireStatus + lsls r0, 24 + cmp r0, 0 + beq _0806E2A0 + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r3, 0xB7 + lsls r3, 1 + adds r0, r3 + movs r4, 0 + movs r5, 0x1 + strb r5, [r0] + adds r0, r6, 0 + movs r1, 0 + bl sub_800A020 + ldr r0, [sp, 0x48] + str r4, [r0, 0x8] + strb r4, [r0, 0xD] + strb r5, [r0, 0xE] + movs r1, 0 + mov r9, r1 +_0806E2A0: + cmp r7, 0x9 + bne _0806E2D2 + ldr r0, [sp, 0x18] + movs r1, 0x37 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E2D2 + ldr r0, _0806E4E8 + ldr r0, [r0] + ldr r2, _0806E500 + adds r0, r2 + movs r4, 0 + movs r5, 0x1 + strb r5, [r0] + adds r0, r6, 0 + movs r1, 0 + bl sub_800A020 + ldr r3, [sp, 0x48] + str r4, [r3, 0x8] + strb r4, [r3, 0xD] + strb r5, [r3, 0xE] + mov r9, r4 +_0806E2D2: + cmp r7, 0x3 + bne _0806E340 + mov r0, r8 + movs r1, 0x10 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E340 + movs r4, 0 + ldr r0, [sp, 0x24] + movs r2, 0x10 + ldrsh r1, [r0, r2] + cmp r1, 0 + bge _0806E2F2 + adds r1, 0x3 +_0806E2F2: + asrs r1, 2 + ldr r3, [sp, 0x24] + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r1, r0 + blt _0806E300 + movs r4, 0x1 +_0806E300: + ldr r0, [sp, 0x24] + movs r1, 0x80 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r5, r0, 24 + cmp r4, 0 + beq _0806E32A + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r3, 0xB8 + lsls r3, 1 + adds r0, r3 + movs r1, 0x1 + strb r1, [r0] + ldr r2, _0806E504 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E32A: + cmp r5, 0 + beq _0806E340 + mov r0, r8 + bl sub_80428EC + ldr r0, _0806E508 + ldr r2, [r0] + mov r0, r8 + ldr r1, [sp, 0x18] + bl sub_80522F4 +_0806E340: + cmp r7, 0x4 + bne _0806E3AC + mov r0, r8 + movs r1, 0x1A + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E3AC + movs r4, 0 + ldr r0, [sp, 0x24] + movs r2, 0x10 + ldrsh r1, [r0, r2] + cmp r1, 0 + bge _0806E360 + adds r1, 0x3 +_0806E360: + asrs r1, 2 + ldr r3, [sp, 0x24] + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r1, r0 + blt _0806E36E + movs r4, 0x1 +_0806E36E: + ldr r0, [sp, 0x24] + movs r1, 0x2 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r5, r0, 24 + cmp r4, 0 + beq _0806E396 + ldr r0, _0806E4E8 + ldr r0, [r0] + ldr r3, _0806E50C + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E504 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E396: + cmp r5, 0 + beq _0806E3AC + mov r0, r8 + bl sub_80428D8 + ldr r0, _0806E510 + ldr r2, [r0] + mov r0, r8 + ldr r1, [sp, 0x18] + bl sub_80522F4 +_0806E3AC: + cmp r7, 0xC + bne _0806E41A + mov r0, r8 + movs r1, 0x43 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E41A + movs r4, 0 + ldr r0, [sp, 0x24] + movs r2, 0x10 + ldrsh r1, [r0, r2] + cmp r1, 0 + bge _0806E3CC + adds r1, 0x3 +_0806E3CC: + asrs r1, 2 + ldr r3, [sp, 0x24] + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r1, r0 + blt _0806E3DA + movs r4, 0x1 +_0806E3DA: + ldr r0, [sp, 0x24] + movs r1, 0x10 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r5, r0, 24 + cmp r4, 0 + beq _0806E404 + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r3, 0xB9 + lsls r3, 1 + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E504 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E404: + cmp r5, 0 + beq _0806E41A + mov r0, r8 + bl sub_8042978 + ldr r0, _0806E514 + ldr r2, [r0] + mov r0, r8 + ldr r1, [sp, 0x18] + bl sub_80522F4 +_0806E41A: + cmp r7, 0x2 + bne _0806E486 + mov r0, r8 + movs r1, 0x46 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E486 + movs r4, 0 + ldr r0, [sp, 0x24] + movs r2, 0x10 + ldrsh r1, [r0, r2] + cmp r1, 0 + bge _0806E43A + adds r1, 0x3 +_0806E43A: + asrs r1, 2 + ldr r3, [sp, 0x24] + movs r2, 0xE + ldrsh r0, [r3, r2] + cmp r1, r0 + blt _0806E448 + movs r4, 0x1 +_0806E448: + ldr r0, [sp, 0x24] + movs r1, 0x20 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r5, r0, 24 + cmp r4, 0 + beq _0806E470 + ldr r0, _0806E4E8 + ldr r0, [r0] + ldr r3, _0806E518 + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E504 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E470: + cmp r5, 0 + beq _0806E486 + mov r0, r8 + bl sub_804298C + ldr r0, _0806E51C + ldr r2, [r0] + mov r0, r8 + ldr r1, [sp, 0x18] + bl sub_80522F4 +_0806E486: + adds r0, r6, 0 + bl sub_800A2A0 + lsls r0, 24 + cmp r0, 0 + bne _0806E4B8 + mov r0, r8 + adds r1, r7, 0 + bl HasType + lsls r0, 24 + cmp r0, 0 + beq _0806E4B8 + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r4, 0xBA + lsls r4, 1 + adds r0, r4 + movs r1, 0x1 + strb r1, [r0] + ldr r2, _0806E520 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E4B8: + mov r0, r8 + bl GetWeather + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0x1 + bne _0806E53E + cmp r7, 0x2 + bne _0806E524 + ldr r0, _0806E4E8 + ldr r0, [r0] + movs r1, 0xB6 + lsls r1, 1 + adds r0, r1 + strb r4, [r0] + ldr r2, _0806E520 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C + b _0806E53E + .align 2, 0 +_0806E4E4: .4byte gTypeEffectivenessChart +_0806E4E8: .4byte gDungeonGlobalData +_0806E4EC: .4byte gUnknown_8106F54 +_0806E4F0: .4byte gUnknown_80F54B4 +_0806E4F4: .4byte gUnknown_8106EFC +_0806E4F8: .4byte 0x0000016d +_0806E4FC: .4byte gUnknown_8106F1C +_0806E500: .4byte 0x0000016f +_0806E504: .4byte gUnknown_8106F0C +_0806E508: .4byte gUnknown_80FEDA8 +_0806E50C: .4byte 0x00000171 +_0806E510: .4byte gUnknown_80FED88 +_0806E514: .4byte gUnknown_80FEDC8 +_0806E518: .4byte 0x00000173 +_0806E51C: .4byte gUnknown_80FEDE8 +_0806E520: .4byte gUnknown_8106F14 +_0806E524: + cmp r7, 0x3 + bne _0806E53E + ldr r0, _0806E560 + ldr r0, [r0] + movs r2, 0xB6 + lsls r2, 1 + adds r0, r2 + strb r4, [r0] + ldr r2, _0806E564 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E53E: + cmp r4, 0x4 + bne _0806E586 + cmp r7, 0x2 + bne _0806E56C + ldr r0, _0806E560 + ldr r0, [r0] + ldr r3, _0806E568 + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E564 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C + b _0806E586 + .align 2, 0 +_0806E560: .4byte gDungeonGlobalData +_0806E564: .4byte gUnknown_8106F1C +_0806E568: .4byte 0x0000016b +_0806E56C: + cmp r7, 0x3 + bne _0806E586 + ldr r0, _0806E62C + ldr r0, [r0] + ldr r2, _0806E630 + adds r1, r0, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E634 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E586: + cmp r4, 0x3 + bne _0806E5A6 + cmp r7, 0x1 + beq _0806E5A6 + ldr r2, _0806E638 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C + ldr r0, _0806E62C + ldr r0, [r0] + movs r3, 0xB5 + lsls r3, 1 + adds r1, r0, r3 + movs r0, 0x1 + strb r0, [r1] +_0806E5A6: + ldr r0, _0806E62C + ldr r1, [r0] + ldr r2, _0806E63C + adds r0, r1, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0806E5B8 + cmp r4, 0x6 + bne _0806E5CE +_0806E5B8: + cmp r7, 0x5 + bne _0806E5CE + ldr r3, _0806E640 + adds r1, r3 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E644 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E5CE: + ldr r0, _0806E62C + ldr r1, [r0] + ldr r4, _0806E648 + adds r0, r1, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0806E5F4 + cmp r7, 0x2 + bne _0806E5F4 + movs r0, 0xBB + lsls r0, 1 + adds r1, r0 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E644 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E5F4: + cmp r7, 0x5 + bne _0806E618 + ldr r0, [sp, 0x24] + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0xB + bne _0806E618 + ldr r0, _0806E62C + ldr r0, [r0] + ldr r2, _0806E64C + adds r1, r0, r2 + movs r0, 0x1 + strb r0, [r1] + ldr r2, _0806E650 + adds r0, r6, 0 + adds r1, r6, 0 + bl sub_800A34C +_0806E618: + mov r0, r9 +_0806E61A: + add sp, 0x28 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0806E62C: .4byte gDungeonGlobalData +_0806E630: .4byte 0x0000016b +_0806E634: .4byte gUnknown_8106F14 +_0806E638: .4byte gUnknown_8106F64 +_0806E63C: .4byte 0x0000e277 +_0806E640: .4byte 0x00000175 +_0806E644: .4byte gUnknown_8106F1C +_0806E648: .4byte 0x0000e278 +_0806E64C: .4byte 0x00000177 +_0806E650: .4byte gUnknown_8106F0C + thumb_func_end sub_806E100 + + thumb_func_start WeightWeakTypePicker +WeightWeakTypePicker: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x1C + mov r9, r0 + str r1, [sp, 0x14] + lsls r2, 24 + lsrs r4, r2, 24 + movs r5, 0x1 + movs r0, 0 + str r0, [sp, 0x10] + adds r0, r1, 0 + bl EntityExists + lsls r0, 24 + cmp r0, 0 + beq _0806E6DC + cmp r4, 0x1 + beq _0806E682 + cmp r4, 0x7 + bne _0806E686 +_0806E682: + movs r1, 0x1 + str r1, [sp, 0x10] +_0806E686: + mov r2, r9 + ldr r2, [r2, 0x70] + mov r8, r2 + ldr r3, [sp, 0x14] + ldr r3, [r3, 0x70] + mov r10, r3 + cmp r4, 0x2 + bne _0806E6A2 + ldr r0, [sp, 0x14] + bl GetFlashFireStatus + lsls r0, 24 + cmp r0, 0 + bne _0806E6C6 +_0806E6A2: + cmp r4, 0x5 + bne _0806E6B4 + ldr r0, [sp, 0x14] + movs r1, 0x23 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806E6C6 +_0806E6B4: + cmp r4, 0x3 + bne _0806E6CA + ldr r0, [sp, 0x14] + movs r1, 0x24 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E6CA +_0806E6C6: + movs r0, 0 + b _0806E894 +_0806E6CA: + cmp r4, 0x9 + bne _0806E6E0 + ldr r0, [sp, 0x14] + movs r1, 0x37 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E6E0 +_0806E6DC: + movs r0, 0x1 + b _0806E894 +_0806E6E0: + mov r6, r10 + adds r6, 0x5C + str r6, [sp, 0x18] + lsls r0, r4, 3 + adds r0, r4 + lsls r0, 2 + mov r12, r0 + adds r2, r6, 0 +_0806E6F0: + mov r0, sp + ldr r1, _0806E724 + ldm r1!, {r3,r6,r7} + stm r0!, {r3,r6,r7} + ldr r1, [r1] + str r1, [r0] + ldr r7, [sp, 0x10] + cmp r7, 0 + beq _0806E730 + ldrb r0, [r2] + cmp r0, 0xE + bne _0806E730 + mov r0, r10 + adds r0, 0xF5 + ldrb r0, [r0] + cmp r0, 0 + bne _0806E730 + movs r3, 0 + ldr r0, _0806E728 + ldr r0, [r0] + ldr r6, _0806E72C + adds r1, r0, r6 + movs r0, 0x1 + strb r0, [r1] + b _0806E73E + .align 2, 0 +_0806E724: .4byte gTypeEffectivenessMultipliers +_0806E728: .4byte gDungeonGlobalData +_0806E72C: .4byte 0x00000179 +_0806E730: + ldrb r0, [r2] + lsls r0, 1 + add r0, r12 + ldr r7, _0806E854 + adds r0, r7 + movs r1, 0 + ldrsh r3, [r0, r1] +_0806E73E: + cmp r5, 0 + beq _0806E75E + lsls r0, r3, 2 + add r0, sp + ldr r0, [r0] + muls r5, r0 + lsrs r0, r5, 31 + adds r0, r5, r0 + asrs r5, r0, 1 + cmp r5, 0 + beq _0806E84E + adds r2, 0x1 + ldr r0, [sp, 0x18] + adds r0, 0x1 + cmp r2, r0 + ble _0806E6F0 +_0806E75E: + cmp r4, 0x2 + beq _0806E766 + cmp r4, 0x6 + bne _0806E774 +_0806E766: + ldr r0, [sp, 0x14] + movs r1, 0x2 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806E84E +_0806E774: + cmp r4, 0x3 + bne _0806E7A0 + mov r0, r9 + movs r1, 0x10 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E7A0 + mov r2, r8 + movs r3, 0x10 + ldrsh r1, [r2, r3] + cmp r1, 0 + bge _0806E792 + adds r1, 0x3 +_0806E792: + asrs r1, 2 + mov r6, r8 + movs r7, 0xE + ldrsh r0, [r6, r7] + cmp r1, r0 + blt _0806E7A0 + lsls r5, 1 +_0806E7A0: + cmp r4, 0x4 + bne _0806E7CC + mov r0, r9 + movs r1, 0x1A + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E7CC + mov r0, r8 + movs r2, 0x10 + ldrsh r1, [r0, r2] + cmp r1, 0 + bge _0806E7BE + adds r1, 0x3 +_0806E7BE: + asrs r1, 2 + mov r3, r8 + movs r6, 0xE + ldrsh r0, [r3, r6] + cmp r1, r0 + blt _0806E7CC + lsls r5, 1 +_0806E7CC: + cmp r4, 0xC + bne _0806E7F8 + mov r0, r9 + movs r1, 0x43 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E7F8 + mov r7, r8 + movs r0, 0x10 + ldrsh r1, [r7, r0] + cmp r1, 0 + bge _0806E7EA + adds r1, 0x3 +_0806E7EA: + asrs r1, 2 + mov r2, r8 + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0806E7F8 + lsls r5, 1 +_0806E7F8: + cmp r4, 0x2 + bne _0806E824 + mov r0, r9 + movs r1, 0x46 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E824 + mov r6, r8 + movs r7, 0x10 + ldrsh r1, [r6, r7] + cmp r1, 0 + bge _0806E816 + adds r1, 0x3 +_0806E816: + asrs r1, 2 + mov r2, r8 + movs r3, 0xE + ldrsh r0, [r2, r3] + cmp r1, r0 + blt _0806E824 + lsls r5, 1 +_0806E824: + cmp r5, 0 + beq _0806E84E + mov r0, r9 + adds r1, r4, 0 + bl HasType + lsls r0, 24 + cmp r0, 0 + beq _0806E838 + lsls r5, 1 +_0806E838: + mov r0, r9 + bl GetWeather + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0x1 + bne _0806E85A + cmp r4, 0x2 + beq _0806E858 + cmp r4, 0x3 + bne _0806E85A +_0806E84E: + movs r0, 0x2 + b _0806E894 + .align 2, 0 +_0806E854: .4byte gTypeEffectivenessChart +_0806E858: + lsls r5, 1 +_0806E85A: + ldr r0, _0806E8A4 + ldr r1, [r0] + ldr r6, _0806E8A8 + adds r1, r6 + ldrb r1, [r1] + cmp r1, 0 + beq _0806E86C + cmp r4, 0x5 + beq _0806E84E +_0806E86C: + ldr r0, [r0] + ldr r7, _0806E8AC + adds r0, r7 + ldrb r0, [r0] + cmp r0, 0 + beq _0806E87C + cmp r4, 0x2 + beq _0806E84E +_0806E87C: + cmp r4, 0x5 + bne _0806E88C + mov r0, r8 + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0xB + bne _0806E88C + lsls r5, 1 +_0806E88C: + cmp r5, 0x2 + ble _0806E892 + movs r5, 0x3 +_0806E892: + adds r0, r5, 0x2 +_0806E894: + add sp, 0x1C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0806E8A4: .4byte gDungeonGlobalData +_0806E8A8: .4byte 0x0000e277 +_0806E8AC: .4byte 0x0000e278 + thumb_func_end WeightWeakTypePicker + + thumb_func_start sub_806E8B0 +sub_806E8B0: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0xC + adds r6, r0, 0 + mov r9, r1 + adds r0, r2, 0 + str r3, [sp] + lsls r0, 24 + lsrs r0, 24 + movs r7, 0x1 + movs r1, 0x1 + mov r8, r1 + movs r2, 0x1 + str r2, [sp, 0x4] + str r1, [sp, 0x8] + bl sub_8092354 + movs r2, 0 + mov r10, r2 + lsls r0, 24 + cmp r0, 0 + bne _0806E8E6 + movs r0, 0x1 + mov r10, r0 +_0806E8E6: + adds r0, r6, 0 + movs r1, 0x11 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E92C + ldr r5, [r6, 0x70] + adds r0, r6, 0 + bl HasNegativeStatus + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x1 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r0, 24 + cmp r4, 0 + beq _0806E916 + movs r7, 0x2 +_0806E916: + cmp r0, 0 + beq _0806E92C + adds r0, r6, 0 + bl sub_80428B0 + ldr r0, _0806EADC + ldr r2, [r0] + adds r0, r6, 0 + mov r1, r9 + bl sub_80522F4 +_0806E92C: + adds r0, r6, 0 + movs r1, 0x22 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806E948 + adds r0, r6, 0 + movs r1, 0x4B + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E98E +_0806E948: + ldr r2, [r6, 0x70] + movs r4, 0 + ldr r0, [sp, 0x30] + cmp r0, 0x20 + bgt _0806E95A + mov r1, r10 + cmp r1, 0 + bne _0806E95A + movs r4, 0x1 +_0806E95A: + movs r1, 0x80 + lsls r1, 1 + adds r0, r2, 0 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r1, r0, 24 + cmp r4, 0 + beq _0806E978 + lsls r0, r7, 1 + adds r7, r0, r7 + mov r2, r8 + lsls r2, 1 + mov r8, r2 +_0806E978: + cmp r1, 0 + beq _0806E98E + adds r0, r6, 0 + bl sub_80428C4 + ldr r0, _0806EAE0 + ldr r2, [r0] + adds r0, r6, 0 + mov r1, r9 + bl sub_80522F4 +_0806E98E: + adds r0, r6, 0 + movs r1, 0x30 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E9AC + mov r0, r10 + cmp r0, 0 + bne _0806E9AC + lsls r0, r7, 1 + adds r7, r0, r7 + mov r1, r8 + lsls r1, 1 + mov r8, r1 +_0806E9AC: + ldr r0, [r6, 0x70] + ldrb r0, [r0, 0x6] + movs r4, 0x1 + cmp r0, 0 + beq _0806E9B8 + movs r4, 0 +_0806E9B8: + adds r0, r6, 0 + movs r1, 0x38 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806E9EA + mov r2, r10 + cmp r2, 0x1 + bne _0806E9EA + ldr r0, _0806EAE4 + ldr r0, [r0] + ldr r1, _0806EAE8 + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0806E9EA + lsls r0, r7, 4 + subs r7, r0, r7 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 1 + mov r8, r0 +_0806E9EA: + adds r0, r6, 0 + movs r1, 0x3F + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806EA1C + mov r0, r10 + cmp r0, 0x1 + bne _0806EA1C + ldr r0, _0806EAE4 + ldr r0, [r0] + ldr r1, _0806EAEC + adds r0, r1 + adds r0, r4 + ldrb r0, [r0] + cmp r0, 0 + beq _0806EA1C + lsls r0, r7, 4 + subs r7, r0, r7 + mov r2, r8 + lsls r0, r2, 2 + add r0, r8 + lsls r0, 1 + mov r8, r0 +_0806EA1C: + mov r0, r9 + movs r1, 0x6 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806EA38 + mov r0, r10 + cmp r0, 0 + bne _0806EA38 + lsls r7, 2 + mov r1, r8 + lsls r0, r1, 2 + add r8, r0 +_0806EA38: + mov r0, r9 + movs r1, 0x34 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806EA90 + mov r2, r10 + cmp r2, 0 + bne _0806EA90 + mov r0, r9 + ldr r5, [r0, 0x70] + bl HasNegativeStatus + adds r4, r0, 0 + lsls r4, 24 + lsrs r4, 24 + adds r0, r5, 0 + movs r1, 0x8 + adds r2, r4, 0 + bl SetVisualFlags + lsls r0, 24 + lsrs r1, r0, 24 + cmp r4, 0 + beq _0806EA7A + ldr r2, [sp, 0x4] + lsls r0, r2, 1 + adds r2, r0, r2 + str r2, [sp, 0x4] + ldr r0, [sp, 0x8] + lsls r0, 1 + str r0, [sp, 0x8] +_0806EA7A: + cmp r1, 0 + beq _0806EA90 + mov r0, r9 + bl sub_8042940 + ldr r0, _0806EAF0 + ldr r2, [r0] + adds r0, r6, 0 + mov r1, r9 + bl sub_80522F4 +_0806EA90: + ldr r1, [sp] + ldr r0, [r1] + muls r0, r7 + str r0, [r1] + ldr r2, [sp, 0x2C] + ldr r0, [r2] + ldr r1, [sp, 0x4] + muls r0, r1 + str r0, [r2] + mov r2, r8 + cmp r2, 0x1 + beq _0806EAB6 + ldr r1, [sp] + ldr r0, [r1] + mov r1, r8 + bl __divsi3 + ldr r2, [sp] + str r0, [r2] +_0806EAB6: + ldr r0, [sp, 0x8] + cmp r0, 0x1 + beq _0806EACA + ldr r1, [sp, 0x2C] + ldr r0, [r1] + ldr r1, [sp, 0x8] + bl __divsi3 + ldr r2, [sp, 0x2C] + str r0, [r2] +_0806EACA: + add sp, 0xC + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806EADC: .4byte gUnknown_80FEE04 +_0806EAE0: .4byte gUnknown_80FEE2C +_0806EAE4: .4byte gDungeonGlobalData +_0806EAE8: .4byte 0x000037fa +_0806EAEC: .4byte 0x000037f8 +_0806EAF0: .4byte gUnknown_80FEE54 + thumb_func_end sub_806E8B0 + + thumb_func_start sub_806EAF4 +sub_806EAF4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x8C + str r0, [sp, 0x70] + mov r9, r1 + adds r7, r3, 0 + ldr r0, [sp, 0xB8] + ldr r1, [sp, 0xBC] + lsls r2, 24 + lsrs r2, 24 + str r2, [sp, 0x74] + lsls r0, 16 + lsrs r4, r0, 16 + lsls r1, 24 + lsrs r1, 24 + str r1, [sp, 0x78] + ldr r0, [sp, 0x70] + ldr r0, [r0, 0x70] + mov r10, r0 + mov r1, r9 + ldr r1, [r1, 0x70] + str r1, [sp, 0x7C] + adds r0, r2, 0 + bl sub_8092354 + movs r2, 0 + str r2, [sp, 0x80] + lsls r0, 24 + cmp r0, 0 + bne _0806EB3A + movs r3, 0x1 + str r3, [sp, 0x80] +_0806EB3A: + bl sub_806F500 + mov r6, r10 + ldrb r0, [r6, 0x7] + cmp r0, 0 + bne _0806EB72 + movs r0, 0x9E + lsls r0, 1 + add r0, r10 + ldr r0, [r0] + bl GetBellyRoundedUp + adds r1, r0, 0 + cmp r1, 0 + bne _0806EB72 + movs r0, 0x1 + ldr r2, [sp, 0xB0] + str r0, [r2] + str r1, [r2, 0x4] + movs r0, 0x2 + str r0, [r2, 0x8] + add r3, sp, 0x74 + ldrb r3, [r3] + strb r3, [r2, 0xC] + strb r1, [r2, 0xD] + strb r1, [r2, 0xE] + strb r1, [r2, 0xF] + b _0806F294 +_0806EB72: + ldr r0, _0806EBA4 + cmp r4, r0 + bne _0806EBA8 + mov r0, r9 + movs r1, 0x35 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806EBA8 + movs r0, 0x1 + ldr r6, [sp, 0xB0] + str r0, [r6] + movs r1, 0 + str r1, [r6, 0x4] + movs r0, 0x2 + str r0, [r6, 0x8] + add r0, sp, 0x74 + ldrb r0, [r0] + strb r0, [r6, 0xC] + strb r1, [r6, 0xD] + strb r1, [r6, 0xE] + strb r1, [r6, 0xF] + b _0806F294 + .align 2, 0 +_0806EBA4: .4byte 0x00000163 +_0806EBA8: + add r1, sp, 0x74 + ldrb r2, [r1] + ldr r1, [sp, 0xB0] + strb r2, [r1, 0xC] + ldr r1, _0806EDA4 + ldr r0, [r1] + movs r2, 0x9A + lsls r2, 1 + adds r0, r2 + add r3, sp, 0x74 + ldrb r3, [r3] + strb r3, [r0] + ldr r2, [r1] + movs r6, 0x9C + lsls r6, 1 + adds r0, r2, r6 + ldr r1, [sp, 0x80] + str r1, [r0] + lsls r1, 1 + mov r0, r10 + adds r0, 0x1C + adds r0, r1 + movs r3, 0 + ldrsh r4, [r0, r3] + mov r8, r1 + ldr r6, [sp, 0x78] + cmp r6, 0 + beq _0806EBF8 + ldr r0, [sp, 0x74] + cmp r0, 0x2 + bne _0806EBF8 + mov r1, r10 + movs r3, 0x28 + ldrsh r0, [r1, r3] + adds r4, r0 + ldrh r1, [r1, 0x28] + movs r6, 0xA2 + lsls r6, 1 + adds r0, r2, r6 + strh r1, [r0] +_0806EBF8: + mov r0, r10 + movs r2, 0x4 + ldrsh r1, [r0, r2] + ldr r0, _0806EDA8 + cmp r1, r0 + bne _0806EC06 + adds r4, 0x2 +_0806EC06: + movs r0, 0xD1 + lsls r0, 1 + cmp r1, r0 + bne _0806EC10 + subs r4, 0x2 +_0806EC10: + ldr r0, _0806EDAC + cmp r1, r0 + bne _0806EC18 + subs r4, 0x2 +_0806EC18: + cmp r4, 0 + bge _0806EC1E + movs r4, 0 +_0806EC1E: + cmp r4, 0x14 + ble _0806EC24 + movs r4, 0x14 +_0806EC24: + ldr r6, _0806EDA4 + ldr r0, [r6] + movs r3, 0x9F + lsls r3, 1 + adds r0, r3 + strb r4, [r0] + ldr r1, [r6] + mov r5, r10 + adds r5, 0x14 + ldr r0, [sp, 0x80] + adds r2, r5, r0 + ldrb r0, [r2] + adds r0, r7 + adds r3, 0x2 + adds r1, r3 + strh r0, [r1] + ldrb r0, [r2] + adds r0, r7 + lsls r0, 8 + ldr r2, _0806EDB0 + lsls r1, r4, 2 + adds r1, r2 + ldr r1, [r1] + bl sub_8009DA4 + adds r2, r0, 0 + ldr r0, [sp, 0x80] + lsls r4, r0, 2 + mov r0, r10 + adds r0, 0x2C + adds r0, r4 + ldr r1, [r0] + adds r0, r2, 0 + bl sub_8009DA4 + adds r2, r0, 0 + str r5, [sp, 0x88] + cmp r2, 0 + bge _0806EC74 + adds r0, 0xFF +_0806EC74: + asrs r0, 8 + str r0, [sp, 0x8] + ldr r0, [sp, 0x7C] + adds r0, 0x20 + add r0, r8 + movs r1, 0 + ldrsh r3, [r0, r1] + ldr r2, [sp, 0x80] + cmp r2, 0 + bne _0806ECA0 + ldr r0, [sp, 0x7C] + adds r0, 0xC0 + ldrb r0, [r0] + cmp r0, 0x6 + bne _0806ECA0 + ldr r0, [r6] + movs r6, 0xBD + lsls r6, 1 + adds r1, r0, r6 + movs r0, 0x1 + strb r0, [r1] + adds r3, 0x1 +_0806ECA0: + ldr r0, [sp, 0x7C] + movs r2, 0x4 + ldrsh r1, [r0, r2] + ldr r0, _0806EDA8 + cmp r1, r0 + bne _0806ECAE + subs r3, 0x2 +_0806ECAE: + movs r0, 0xD1 + lsls r0, 1 + cmp r1, r0 + bne _0806ECB8 + adds r3, 0x2 +_0806ECB8: + ldr r0, _0806EDAC + cmp r1, r0 + bne _0806ECC0 + subs r3, 0x2 +_0806ECC0: + cmp r3, 0 + bge _0806ECC6 + movs r3, 0 +_0806ECC6: + cmp r3, 0x14 + ble _0806ECCC + movs r3, 0x14 +_0806ECCC: + ldr r5, _0806EDA4 + ldr r0, [r5] + ldr r6, _0806EDB4 + adds r0, r6 + strb r3, [r0] + ldr r2, [r5] + ldr r0, [sp, 0x7C] + adds r0, 0x16 + ldr r1, [sp, 0x80] + adds r0, r1 + ldrb r1, [r0] + adds r6, 0x3 + adds r2, r6 + strh r1, [r2] + ldrb r0, [r0] + lsls r0, 8 + ldr r2, _0806EDB8 + lsls r1, r3, 2 + adds r1, r2 + ldr r1, [r1] + bl sub_8009DA4 + adds r2, r0, 0 + ldr r0, [sp, 0x7C] + adds r0, 0x34 + adds r0, r4 + ldr r1, [r0] + adds r0, r2, 0 + bl sub_8009DA4 + cmp r0, 0 + bge _0806ED0E + adds r0, 0xFF +_0806ED0E: + asrs r0, 8 + str r0, [sp, 0xC] + movs r0, 0x64 + bl DungeonRandomCapped + str r0, [sp, 0x84] + ldr r0, [sp, 0x80] + cmp r0, 0 + bne _0806EDC8 + ldr r0, [sp, 0x70] + movs r1, 0x13 + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806ED4A + ldr r2, _0806EDBC + movs r3, 0 + ldrsh r1, [r2, r3] + ldr r0, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x8] + ldr r1, [r5] + movs r6, 0xB0 + lsls r6, 1 + adds r1, r6 + ldrb r0, [r2] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] +_0806ED4A: + ldr r0, [sp, 0x70] + movs r1, 0x2B + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806ED74 + ldr r2, _0806EDC0 + movs r3, 0 + ldrsh r1, [r2, r3] + ldr r0, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x8] + ldr r1, [r5] + movs r6, 0xB0 + lsls r6, 1 + adds r1, r6 + ldrb r0, [r2] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] +_0806ED74: + ldr r3, [sp, 0x78] + cmp r3, 0 + beq _0806EE4A + mov r0, r9 + movs r1, 0x1E + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806EE4A + ldr r2, _0806EDC4 + movs r6, 0 + ldrsh r1, [r2, r6] + ldr r0, [sp, 0xC] + adds r0, r1 + str r0, [sp, 0xC] + ldr r0, [r5] + movs r3, 0xB1 + lsls r3, 1 + adds r1, r0, r3 + ldrb r0, [r2] + ldrb r6, [r1] + adds r0, r6 + b _0806EE48 + .align 2, 0 +_0806EDA4: .4byte gDungeonGlobalData +_0806EDA8: .4byte 0x000001a1 +_0806EDAC: .4byte 0x000001a3 +_0806EDB0: .4byte gUnknown_80F504C +_0806EDB4: .4byte 0x0000013f +_0806EDB8: .4byte gUnknown_80F50A0 +_0806EDBC: .4byte gUnknown_810AC60 +_0806EDC0: .4byte gUnknown_810AC68 +_0806EDC4: .4byte gUnknown_810AC64 +_0806EDC8: + ldr r0, [sp, 0x78] + cmp r0, 0 + beq _0806EDF6 + mov r0, r9 + movs r1, 0x22 + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806EDF6 + ldr r2, _0806EEF8 + movs r3, 0 + ldrsh r1, [r2, r3] + ldr r0, [sp, 0xC] + adds r0, r1 + str r0, [sp, 0xC] + ldr r0, [r5] + ldr r6, _0806EEFC + adds r1, r0, r6 + ldrb r0, [r2] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] +_0806EDF6: + ldr r0, [sp, 0x70] + movs r1, 0x21 + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806EE20 + ldr r2, _0806EF00 + movs r3, 0 + ldrsh r1, [r2, r3] + ldr r0, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x8] + ldr r0, _0806EF04 + ldr r0, [r0] + ldr r6, _0806EF08 + adds r1, r0, r6 + ldrb r0, [r2] + ldrb r2, [r1] + adds r0, r2 + strb r0, [r1] +_0806EE20: + ldr r0, [sp, 0x70] + movs r1, 0x2B + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806EE4A + ldr r2, _0806EF0C + movs r3, 0 + ldrsh r1, [r2, r3] + ldr r0, [sp, 0x8] + adds r0, r1 + str r0, [sp, 0x8] + ldr r0, _0806EF04 + ldr r0, [r0] + ldr r6, _0806EF08 + adds r1, r0, r6 + ldrb r0, [r2] + ldrb r2, [r1] + adds r0, r2 +_0806EE48: + strb r0, [r1] +_0806EE4A: + ldr r0, _0806EF04 + ldr r2, [r0] + movs r3, 0xA3 + lsls r3, 1 + adds r1, r2, r3 + add r0, sp, 0x8 + ldrh r0, [r0] + strh r0, [r1] + movs r6, 0xA4 + lsls r6, 1 + adds r1, r2, r6 + add r4, sp, 0xC + ldrh r0, [r4] + strh r0, [r1] + ldr r0, [sp, 0x8] + cmp r0, 0 + bge _0806EE70 + movs r0, 0 + str r0, [sp, 0x8] +_0806EE70: + ldr r1, _0806EF10 + ldr r0, [sp, 0x8] + cmp r0, r1 + ble _0806EE7C + ldr r0, _0806EF14 + str r0, [sp, 0x8] +_0806EE7C: + movs r3, 0xA8 + lsls r3, 1 + add r3, r10 + ldrh r2, [r3] + ldr r1, _0806EF18 + adds r0, r1, 0 + ands r0, r2 + strh r0, [r3] + movs r2, 0xA7 + lsls r2, 1 + add r2, r10 + ldrh r0, [r2] + ands r1, r0 + strh r1, [r2] + str r4, [sp] + ldr r0, [sp, 0x84] + str r0, [sp, 0x4] + ldr r0, [sp, 0x70] + mov r1, r9 + ldr r2, [sp, 0x74] + add r3, sp, 0x8 + bl sub_806E8B0 + add r5, sp, 0x10 + ldr r1, [sp, 0x8] + ldr r0, [sp, 0xC] + subs r1, r0 + adds r0, r5, 0 + bl sub_800A020 + add r4, sp, 0x18 + adds r0, r4, 0 + movs r1, 0x8 + bl sub_800A020 + adds r0, r5, 0 + adds r1, r5, 0 + adds r2, r4, 0 + bl sub_800A3F0 + mov r1, r10 + ldrb r6, [r1, 0x6] + mov r8, r5 + adds r7, r4, 0 + cmp r6, 0 + bne _0806EF20 + ldrb r1, [r1, 0x9] + adds r0, r7, 0 + bl sub_800A020 + str r6, [sp, 0x20] + ldr r0, _0806EF1C + add r2, sp, 0x20 + str r0, [r2, 0x4] + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_800A34C + mov r2, r10 + ldrb r0, [r2, 0x9] + lsls r0, 1 + b _0806EF60 + .align 2, 0 +_0806EEF8: .4byte gUnknown_810AC66 +_0806EEFC: .4byte 0x00000163 +_0806EF00: .4byte gUnknown_810AC62 +_0806EF04: .4byte gDungeonGlobalData +_0806EF08: .4byte 0x00000161 +_0806EF0C: .4byte gUnknown_810AC68 +_0806EF10: .4byte 0x000003e6 +_0806EF14: .4byte 0x000003e7 +_0806EF18: .4byte 0x0000feff +_0806EF1C: .4byte 0x0000aaaa +_0806EF20: + ldr r3, [sp, 0x88] + ldr r6, [sp, 0x80] + adds r0, r3, r6 + ldrb r0, [r0] + str r0, [sp, 0x28] + movs r0, 0x1 + str r0, [sp, 0x2C] + add r3, sp, 0x28 + add r0, sp, 0x2C + str r0, [sp] + ldr r0, [sp, 0x84] + str r0, [sp, 0x4] + ldr r0, [sp, 0x70] + mov r1, r9 + ldr r2, [sp, 0x74] + bl sub_806E8B0 + ldr r1, [sp, 0x28] + adds r0, r7, 0 + bl sub_800A020 + add r4, sp, 0x20 + adds r0, r4, 0 + movs r1, 0x3 + bl sub_800A020 + adds r0, r7, 0 + adds r1, r7, 0 + adds r2, r4, 0 + bl sub_800A3F0 + ldr r0, [sp, 0x28] +_0806EF60: + movs r1, 0x3 + bl __divsi3 + adds r6, r0, 0 + add r5, sp, 0x30 + adds r0, r5, 0 + mov r1, r8 + adds r2, r7, 0 + bl sub_800A6D0 + ldr r4, _0806F098 + ldr r0, [r4] + movs r1, 0xA5 + lsls r1, 1 + adds r0, r1 + movs r2, 0 + mov r8, r2 + strh r6, [r0] + adds r0, r5, 0 + bl sub_800A048 + ldr r1, [r4] + movs r3, 0xA6 + lsls r3, 1 + adds r1, r3 + strh r0, [r1] + ldr r0, [sp, 0x30] + ldr r1, [sp, 0x34] + str r0, [sp, 0x38] + str r1, [sp, 0x3C] + str r0, [sp, 0x48] + str r1, [sp, 0x4C] + add r6, sp, 0x38 + adds r0, r6, 0 + adds r1, r6, 0 + adds r2, r6, 0 + bl sub_800A34C + mov r0, r8 + str r0, [sp, 0x40] + ldr r0, _0806F09C + add r5, sp, 0x40 + str r0, [r5, 0x4] + adds r0, r6, 0 + adds r1, r6, 0 + adds r2, r5, 0 + bl sub_800A34C + adds r0, r5, 0 + movs r1, 0x2 + bl sub_800A020 + add r4, sp, 0x48 + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_800A34C + ldr r1, [sp, 0xC] + adds r0, r5, 0 + bl sub_800A020 + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_800A6F0 + adds r0, r5, 0 + movs r1, 0xA + bl sub_800A020 + adds r0, r4, 0 + adds r1, r4, 0 + adds r2, r5, 0 + bl sub_800A6D0 + add r5, sp, 0x50 + adds r0, r5, 0 + adds r1, r6, 0 + adds r2, r4, 0 + bl sub_800A6D0 + ldr r4, _0806F0A0 + adds r0, r4, 0 + adds r1, r5, 0 + bl sub_800A2F0 + lsls r0, 24 + mov r8, r5 + cmp r0, 0 + beq _0806F01E + ldr r0, [r4] + ldr r1, [r4, 0x4] + str r0, [sp, 0x50] + str r1, [sp, 0x54] +_0806F01E: + ldr r4, _0806F0A4 + mov r0, r8 + adds r1, r4, 0 + bl sub_800A2F0 + lsls r0, 24 + cmp r0, 0 + beq _0806F036 + ldr r0, [r4] + ldr r1, [r4, 0x4] + str r0, [sp, 0x50] + str r1, [sp, 0x54] +_0806F036: + add r4, sp, 0x58 + ldr r1, [sp, 0xB0] + str r1, [sp] + adds r0, r4, 0 + ldr r1, [sp, 0x70] + mov r2, r9 + ldr r3, [sp, 0x74] + bl sub_806E100 + lsls r0, 24 + lsrs r5, r0, 24 + adds r7, r4, 0 + ldr r2, [sp, 0x74] + cmp r2, 0x2 + bne _0806F0BC + mov r0, r9 + bl GetFlashFireStatus + lsls r0, 24 + lsrs r4, r0, 24 + cmp r4, 0 + beq _0806F0BC + ldr r3, [sp, 0x7C] + movs r6, 0xA9 + lsls r6, 1 + adds r1, r3, r6 + ldrb r0, [r1] + cmp r0, 0 + bne _0806F0BC + ldr r0, [sp, 0x78] + cmp r0, 0 + beq _0806F118 + movs r0, 0x1 + strb r0, [r1] + ldr r0, _0806F0A8 + mov r1, r9 + movs r2, 0 + bl SetMessageArgument + cmp r4, 0x1 + bne _0806F0B0 + ldr r0, _0806F0AC + ldr r2, [r0] + ldr r0, [sp, 0x70] + mov r1, r9 + bl sub_80522F4 + b _0806F0BC + .align 2, 0 +_0806F098: .4byte gDungeonGlobalData +_0806F09C: .4byte 0x00000ccc +_0806F0A0: .4byte gUnknown_8106F24 +_0806F0A4: .4byte gUnknown_8106F04 +_0806F0A8: .4byte gUnknown_202DFE8 +_0806F0AC: .4byte gUnknown_80FAE00 +_0806F0B0: + ldr r0, _0806F15C + ldr r2, [r0] + ldr r0, [sp, 0x70] + mov r1, r9 + bl sub_80522F4 +_0806F0BC: + ldr r1, [sp, 0x78] + cmp r1, 0 + beq _0806F118 + ldr r2, [sp, 0x80] + cmp r2, 0 + bne _0806F0EE + ldr r0, [sp, 0x7C] + adds r0, 0xC4 + ldrb r4, [r0] + cmp r4, 0x1 + bne _0806F0EE + mov r0, r9 + bl sub_8041B74 + ldr r2, _0806F160 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_800A34C + ldr r0, _0806F164 + ldr r0, [r0] + movs r3, 0xB3 + lsls r3, 1 + adds r0, r3 + strb r4, [r0] +_0806F0EE: + ldr r6, [sp, 0x80] + cmp r6, 0x1 + bne _0806F118 + ldr r0, [sp, 0x7C] + adds r0, 0xC4 + ldrb r0, [r0] + cmp r0, 0x3 + bne _0806F118 + mov r0, r9 + bl sub_8041B5C + ldr r2, _0806F160 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_800A34C + ldr r0, _0806F164 + ldr r0, [r0] + ldr r1, _0806F168 + adds r0, r1 + strb r6, [r0] +_0806F118: + mov r0, r9 + movs r1, 0xC + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806F1F4 + mov r0, r9 + movs r1, 0x13 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + bne _0806F1F4 + mov r3, r10 + ldrb r0, [r3, 0x6] + ldr r4, [sp, 0xAC] + cmp r0, 0 + beq _0806F140 + movs r4, 0 +_0806F140: + mov r0, r10 + adds r0, 0xDC + ldrb r0, [r0] + cmp r0, 0x4 + bne _0806F170 + ldr r4, _0806F16C + ldr r0, _0806F164 + ldr r0, [r0] + movs r6, 0xB4 + lsls r6, 1 + adds r0, r6 + movs r1, 0x1 + strb r1, [r0] + b _0806F1DA + .align 2, 0 +_0806F15C: .4byte gUnknown_80FADD8 +_0806F160: .4byte gUnknown_8106F1C +_0806F164: .4byte gDungeonGlobalData +_0806F168: .4byte 0x00000167 +_0806F16C: .4byte 0x000003e7 +_0806F170: + ldr r0, [sp, 0x70] + movs r1, 0xC + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806F194 + ldr r0, _0806F2A4 + movs r1, 0 + ldrsh r0, [r0, r1] + adds r4, r0 + ldr r0, _0806F2A8 + ldr r0, [r0] + movs r2, 0xB2 + lsls r2, 1 + adds r0, r2 + movs r1, 0x1 + strb r1, [r0] +_0806F194: + mov r0, r9 + movs r1, 0xD + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806F1B6 + ldr r0, _0806F2A4 + movs r3, 0 + ldrsh r0, [r0, r3] + adds r4, r0 + ldr r0, _0806F2A8 + ldr r0, [r0] + ldr r6, _0806F2AC + adds r1, r0, r6 + movs r0, 0x1 + strb r0, [r1] +_0806F1B6: + cmp r5, 0 + beq _0806F1DA + ldr r0, [sp, 0x70] + movs r1, 0x1 + bl HasIQSkill + lsls r0, 24 + cmp r0, 0 + beq _0806F1DA + ldr r0, _0806F2B0 + movs r1, 0 + ldrsh r4, [r0, r1] + ldr r0, _0806F2A8 + ldr r0, [r0] + ldr r2, _0806F2B4 + adds r1, r0, r2 + movs r0, 0x1 + strb r0, [r1] +_0806F1DA: + movs r0, 0x64 + bl DungeonRandomCapped + cmp r0, r4 + bge _0806F1F4 + ldr r2, _0806F2B8 + adds r0, r7, 0 + adds r1, r7, 0 + bl sub_800A34C + movs r0, 0x1 + ldr r3, [sp, 0xB0] + strb r0, [r3, 0xD] +_0806F1F4: + mov r0, r8 + bl sub_800A048 + ldr r5, _0806F2A8 + ldr r1, [r5] + movs r6, 0xAA + lsls r6, 1 + adds r1, r6 + str r0, [r1] + mov r0, r8 + mov r1, r8 + adds r2, r7, 0 + bl sub_800A34C + ldr r0, [r5] + movs r1, 0xAE + lsls r1, 1 + adds r0, r1 + ldr r2, [sp, 0xB4] + str r2, [r0] + add r4, sp, 0x60 + adds r0, r4, 0 + adds r1, r2, 0 + bl sub_800A088 + mov r0, r8 + mov r1, r8 + adds r2, r4, 0 + bl sub_800A34C + mov r0, r8 + bl sub_800A048 + ldr r1, [r5] + movs r3, 0xA8 + lsls r3, 1 + adds r1, r3 + str r0, [r1] + movs r0, 0x80 + lsls r0, 7 + bl DungeonRandomCapped + movs r6, 0 + str r6, [sp, 0x58] + movs r1, 0xE0 + lsls r1, 8 + adds r0, r1 + str r0, [r7, 0x4] + mov r0, r8 + mov r1, r8 + adds r2, r7, 0 + bl sub_800A34C + add r4, sp, 0x68 + adds r0, r4, 0 + movs r1, 0x64 + bl sub_800A020 + adds r0, r7, 0 + adds r1, r4, 0 + adds r2, r7, 0 + bl sub_800A34C + adds r0, r7, 0 + bl sub_800A048 + ldr r1, [r5] + movs r2, 0xAC + lsls r2, 1 + adds r1, r2 + str r0, [r1] + mov r0, r8 + bl sub_800A048 + ldr r3, [sp, 0xB0] + str r0, [r3] + str r6, [r3, 0x4] + cmp r0, 0 + bne _0806F294 + strb r0, [r3, 0xD] +_0806F294: + add sp, 0x8C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F2A4: .4byte gUnknown_80F4DAE +_0806F2A8: .4byte gDungeonGlobalData +_0806F2AC: .4byte 0x00000165 +_0806F2B0: .4byte gUnknown_80F4DB0 +_0806F2B4: .4byte 0x00000169 +_0806F2B8: .4byte gUnknown_8106F14 + thumb_func_end sub_806EAF4 + + thumb_func_start sub_806F2BC +sub_806F2BC: + push {r4-r7,lr} + mov r7, r8 + push {r7} + sub sp, 0x14 + adds r5, r0, 0 + mov r12, r1 + ldr r7, [sp, 0x2C] + lsls r2, 24 + lsrs r4, r2, 24 + adds r6, r3, 0 + cmp r6, 0 + bgt _0806F2D6 + movs r6, 0x1 +_0806F2D6: + ldr r0, _0806F320 + cmp r6, r0 + ble _0806F2DE + adds r6, r0, 0 +_0806F2DE: + movs r0, 0 + mov r8, r0 + strb r4, [r7, 0xC] + str r7, [sp] + add r0, sp, 0x4 + adds r1, r5, 0 + mov r2, r12 + adds r3, r4, 0 + bl sub_806E100 + add r4, sp, 0xC + adds r0, r4, 0 + adds r1, r6, 0 + bl sub_800A020 + adds r0, r4, 0 + adds r1, r4, 0 + add r2, sp, 0x4 + bl sub_800A34C + adds r0, r4, 0 + bl sub_800A048 + str r0, [r7] + mov r0, r8 + str r0, [r7, 0x4] + add sp, 0x14 + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F320: .4byte 0x000003e7 + thumb_func_end sub_806F2BC + + thumb_func_start sub_806F324 +sub_806F324: + push {r4-r6,lr} + mov r6, r8 + push {r6} + sub sp, 0x94 + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + lsls r4, r3, 16 + asrs r4, 16 + add r0, sp, 0x10 + bl sub_80457DC + add r2, sp, 0x84 + str r5, [sp, 0x84] + movs r0, 0x2 + str r0, [r2, 0x8] + movs r0, 0 + strb r0, [r2, 0xC] + str r6, [r2, 0x4] + strb r0, [r2, 0xD] + strb r0, [r2, 0xE] + strb r0, [r2, 0xF] + str r0, [sp] + str r4, [sp, 0x4] + str r0, [sp, 0x8] + str r0, [sp, 0xC] + add r0, sp, 0x10 + mov r1, r8 + movs r3, 0 + bl sub_806D010 + add sp, 0x94 + pop {r3} + mov r8, r3 + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end sub_806F324 + + thumb_func_start sub_806F370 +sub_806F370: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x2C + mov r10, r0 + adds r7, r1, 0 + mov r9, r3 + ldr r0, [sp, 0x50] + ldr r1, [sp, 0x54] + ldr r3, [sp, 0x58] + lsls r0, 24 + lsrs r4, r0, 24 + lsls r1, 16 + asrs r1, 16 + mov r8, r1 + adds r5, r2, 0 + movs r0, 0x2 + str r0, [sp, 0x18] + str r3, [sp, 0x14] + add r0, sp, 0x10 + movs r1, 0 + strb r4, [r0, 0xC] + strb r1, [r0, 0xD] + strb r1, [r0, 0xE] + cmp r4, 0 + beq _0806F3FC + ldr r1, [r7, 0x70] + movs r2, 0 + lsls r0, r4, 3 + mov r3, sp + adds r3, 0x20 + str r3, [sp, 0x28] + ldr r6, _0806F408 + mov r12, r6 + adds r1, 0x5C + adds r0, r4 + lsls r3, r0, 2 + ldr r4, [sp, 0x28] +_0806F3C0: + adds r0, r1, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r3 + add r0, r12 + movs r6, 0 + ldrsh r0, [r0, r6] + stm r4!, {r0} + adds r2, 0x1 + cmp r2, 0x1 + ble _0806F3C0 + adds r0, r7, 0 + movs r1, 0x35 + bl HasAbility + lsls r0, 24 + cmp r0, 0 + beq _0806F3FC + ldr r2, _0806F40C + ldr r1, [sp, 0x28] + ldr r0, [r1, 0x4] + lsls r0, 2 + ldr r1, [sp, 0x20] + lsls r1, 4 + adds r0, r1 + adds r0, r2 + ldr r0, [r0] + cmp r0, 0x3 + beq _0806F3FC + movs r5, 0 +_0806F3FC: + str r5, [sp, 0x10] + cmp r5, 0 + bne _0806F410 + add r1, sp, 0x10 + movs r0, 0x1 + b _0806F414 + .align 2, 0 +_0806F408: .4byte gTypeEffectivenessChart +_0806F40C: .4byte gUnknown_80F54B4 +_0806F410: + add r1, sp, 0x10 + movs r0, 0 +_0806F414: + strb r0, [r1, 0xF] + mov r3, r9 + str r3, [sp] + mov r6, r8 + str r6, [sp, 0x4] + ldr r0, [sp, 0x5C] + str r0, [sp, 0x8] + ldr r0, [sp, 0x60] + str r0, [sp, 0xC] + mov r0, r10 + adds r1, r7, 0 + add r2, sp, 0x10 + movs r3, 0 + bl sub_806D010 + ldr r0, [sp, 0x4C] + cmp r0, 0 + beq _0806F440 + add r0, sp, 0x10 + ldrb r0, [r0, 0xF] + ldr r1, [sp, 0x4C] + strb r0, [r1] +_0806F440: + add sp, 0x2C + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r0} + bx r0 + thumb_func_end sub_806F370 + + thumb_func_start SetShopkeeperAggression +SetShopkeeperAggression: + push {r4-r6,lr} + adds r5, r0, 0 + ldr r4, [r1, 0x70] + adds r6, r4, 0 + ldrb r0, [r4, 0x8] + cmp r0, 0 + beq _0806F47A + adds r0, r5, 0 + bl GetEntityType + cmp r0, 0x1 + bne _0806F47A + ldr r0, [r5, 0x70] + ldrb r0, [r0, 0x6] + cmp r0, 0 + beq _0806F476 + movs r0, 0x2 + strb r0, [r4, 0x8] + b _0806F47A +_0806F476: + movs r0, 0x3 + strb r0, [r6, 0x8] +_0806F47A: + pop {r4-r6} + pop {r0} + bx r0 + thumb_func_end SetShopkeeperAggression + + thumb_func_start sub_806F480 +sub_806F480: + push {lr} + lsls r1, 24 + lsrs r1, 24 + ldr r2, [r0, 0x70] + adds r3, r2, 0 + ldrb r0, [r2, 0x8] + cmp r0, 0 + beq _0806F49E + cmp r1, 0 + beq _0806F49A + movs r0, 0x2 + strb r0, [r2, 0x8] + b _0806F49E +_0806F49A: + movs r0, 0x3 + strb r0, [r3, 0x8] +_0806F49E: + pop {r0} + bx r0 + thumb_func_end sub_806F480 + + thumb_func_start sub_806F4A4 +sub_806F4A4: + push {r4-r6,lr} + lsls r1, 24 + lsrs r4, r1, 24 + ldr r5, [r0, 0x70] + movs r1, 0xE + bl HasType + lsls r0, 24 + cmp r0, 0 + beq _0806F4CE + cmp r4, 0x1 + beq _0806F4C0 + cmp r4, 0x7 + bne _0806F4CE +_0806F4C0: + adds r0, r5, 0 + adds r0, 0xF5 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F4CE +_0806F4CA: + movs r0, 0 + b _0806F4F6 +_0806F4CE: + movs r2, 0 + lsls r0, r4, 3 + ldr r6, _0806F4FC + adds r3, r5, 0 + adds r3, 0x5C + adds r0, r4 + lsls r1, r0, 2 +_0806F4DC: + adds r0, r3, r2 + ldrb r0, [r0] + lsls r0, 1 + adds r0, r1 + adds r0, r6 + movs r4, 0 + ldrsh r0, [r0, r4] + cmp r0, 0 + beq _0806F4CA + adds r2, 0x1 + cmp r2, 0x1 + ble _0806F4DC + movs r0, 0x1 +_0806F4F6: + pop {r4-r6} + pop {r1} + bx r1 + .align 2, 0 +_0806F4FC: .4byte gTypeEffectivenessChart + thumb_func_end sub_806F4A4 + + thumb_func_start sub_806F500 +sub_806F500: + ldr r0, _0806F5F4 + ldr r0, [r0] + mov r12, r0 + movs r0, 0x9A + lsls r0, 1 + add r0, r12 + movs r1, 0 + strb r1, [r0] + str r1, [r0, 0x4] + strb r1, [r0, 0x8] + strb r1, [r0, 0x9] + movs r2, 0xA + strb r2, [r0, 0xA] + strb r2, [r0, 0xB] + movs r2, 0 + movs r3, 0x1 + strh r3, [r0, 0xC] + strh r3, [r0, 0xE] + strh r1, [r0, 0x10] + strh r1, [r0, 0x14] + strh r1, [r0, 0x12] + strh r1, [r0, 0x16] + strh r1, [r0, 0x18] + str r1, [r0, 0x1C] + str r1, [r0, 0x24] + str r1, [r0, 0x28] + movs r0, 0xB0 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F5F8 + add r0, r12 + strb r2, [r0] + movs r0, 0xB1 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F5FC + add r0, r12 + strb r2, [r0] + movs r0, 0xB2 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F600 + add r0, r12 + strb r2, [r0] + movs r0, 0xB3 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F604 + add r0, r12 + strb r2, [r0] + movs r0, 0xB4 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F608 + add r0, r12 + strb r2, [r0] + movs r0, 0xB5 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + movs r0, 0xB6 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F60C + add r0, r12 + strb r2, [r0] + ldr r0, _0806F610 + add r0, r12 + strb r2, [r0] + movs r0, 0xB7 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F614 + add r0, r12 + strb r2, [r0] + movs r0, 0xB8 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F618 + add r0, r12 + strb r2, [r0] + movs r0, 0xB9 + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F61C + add r0, r12 + strb r2, [r0] + movs r0, 0xBA + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F620 + add r0, r12 + strb r2, [r0] + movs r0, 0xBB + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F624 + add r0, r12 + strb r2, [r0] + movs r0, 0xBC + lsls r0, 1 + add r0, r12 + strb r2, [r0] + ldr r0, _0806F628 + add r0, r12 + strb r2, [r0] + movs r0, 0xBD + lsls r0, 1 + add r0, r12 + strb r2, [r0] + bx lr + .align 2, 0 +_0806F5F4: .4byte gDungeonGlobalData +_0806F5F8: .4byte 0x00000161 +_0806F5FC: .4byte 0x00000163 +_0806F600: .4byte 0x00000165 +_0806F604: .4byte 0x00000167 +_0806F608: .4byte 0x00000169 +_0806F60C: .4byte 0x0000016b +_0806F610: .4byte 0x0000016d +_0806F614: .4byte 0x0000016f +_0806F618: .4byte 0x00000171 +_0806F61C: .4byte 0x00000173 +_0806F620: .4byte 0x00000175 +_0806F624: .4byte 0x00000177 +_0806F628: .4byte 0x00000179 + thumb_func_end sub_806F500 + + thumb_func_start sub_806F62C +sub_806F62C: + ldr r1, _0806F638 + lsls r0, 2 + adds r0, r1 + ldr r0, [r0] + bx lr + .align 2, 0 +_0806F638: .4byte gUnknown_8106F7C + thumb_func_end sub_806F62C + + thumb_func_start sub_806F63C +sub_806F63C: + push {lr} + ldr r1, _0806F658 + ldr r1, [r1] + ldr r2, _0806F65C + adds r1, r2 + ldr r1, [r1, 0x10] + cmp r1, r0 + bne _0806F652 + adds r0, r1, 0 + bl sub_803F508 +_0806F652: + pop {r0} + bx r0 + .align 2, 0 +_0806F658: .4byte gDungeonGlobalData +_0806F65C: .4byte 0x000181e8 + thumb_func_end sub_806F63C + + thumb_func_start sub_806F660 +sub_806F660: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + adds r6, r0, 0 + mov r8, r1 + ldr r0, [r6, 0x70] + mov r10, r0 + ldr r4, [r1, 0x70] + movs r1, 0x1 + negs r1, r1 + mov r9, r1 + movs r2, 0x4 + ldrsh r0, [r4, r2] + bl GetPokemonSize + lsls r0, 24 + lsrs r5, r0, 24 + ldr r0, _0806F6C0 + ldr r3, [r0] + ldr r1, _0806F6C4 + adds r0, r3, r1 + ldrh r2, [r0] + subs r0, r2, 0x4 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x1 + bls _0806F702 + lsls r0, r2, 16 + asrs r1, r0, 16 + cmp r1, 0x9 + beq _0806F702 + cmp r1, 0xF + beq _0806F702 + adds r0, r2, 0 + subs r0, 0x2C + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x4 + bhi _0806F6CC + ldr r2, _0806F6C8 + adds r0, r3, r2 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F702 + b _0806F8FC + .align 2, 0 +_0806F6C0: .4byte gDungeonGlobalData +_0806F6C4: .4byte 0x00003a14 +_0806F6C8: .4byte 0x0000065c +_0806F6CC: + cmp r1, 0x31 + bne _0806F6F0 + ldr r1, _0806F6EC + adds r0, r3, r1 + ldrb r0, [r0] + cmp r0, 0 + bne _0806F6DC + b _0806F8FC +_0806F6DC: + movs r0, 0xCF + lsls r0, 1 + bl sub_8097900 + lsls r0, 24 + cmp r0, 0 + bne _0806F702 + b _0806F8FC + .align 2, 0 +_0806F6EC: .4byte 0x00000659 +_0806F6F0: + ldr r2, _0806F834 + adds r0, r3, r2 + ldrb r0, [r0] + bl GetRecruitable + lsls r0, 24 + cmp r0, 0 + bne _0806F702 + b _0806F8FC +_0806F702: + ldr r0, _0806F838 + ldr r0, [r0] + ldr r3, _0806F83C + adds r0, r3 + ldrb r0, [r0] + cmp r0, 0 + beq _0806F712 + b _0806F8FC +_0806F712: + ldrh r1, [r4, 0x2] + adds r0, r1, 0 + subs r0, 0x90 + lsls r0, 16 + lsrs r0, 16 + cmp r0, 0x2 + bls _0806F766 + lsls r0, r1, 16 + asrs r1, r0, 16 + ldr r0, _0806F840 + cmp r1, r0 + beq _0806F766 + subs r0, 0x1 + cmp r1, r0 + beq _0806F766 + adds r0, 0x2 + cmp r1, r0 + beq _0806F766 + adds r0, 0x8A + cmp r1, r0 + beq _0806F766 + adds r0, 0x1 + cmp r1, r0 + beq _0806F766 + adds r0, 0x4 + cmp r1, r0 + beq _0806F766 + subs r0, 0x1 + cmp r1, r0 + beq _0806F766 + adds r0, 0x2 + cmp r1, r0 + beq _0806F766 + subs r0, 0x9 + cmp r1, r0 + beq _0806F766 + adds r0, 0x1 + cmp r1, r0 + beq _0806F766 + adds r0, 0x1 + cmp r1, r0 + bne _0806F776 +_0806F766: + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl HasRecruitedMon + lsls r0, 24 + cmp r0, 0 + beq _0806F776 + b _0806F8FC +_0806F776: + movs r2, 0x2 + ldrsh r0, [r4, r2] + bl sub_806F9BC + lsls r0, 24 + cmp r0, 0 + bne _0806F786 + b _0806F8FC +_0806F786: + movs r3, 0x4 + ldrsh r1, [r6, r3] + mov r2, r8 + movs r3, 0x4 + ldrsh r0, [r2, r3] + subs r1, r0 + cmp r1, 0 + bge _0806F798 + negs r1, r1 +_0806F798: + cmp r1, 0x1 + ble _0806F79E + b _0806F8FC +_0806F79E: + movs r0, 0x6 + ldrsh r1, [r6, r0] + mov r2, r8 + movs r3, 0x6 + ldrsh r0, [r2, r3] + subs r1, r0 + cmp r1, 0 + bge _0806F7B0 + negs r1, r1 +_0806F7B0: + cmp r1, 0x1 + ble _0806F7B6 + b _0806F8FC +_0806F7B6: + adds r0, r4, 0 + adds r0, 0x40 + ldrb r0, [r0] + cmp r0, 0x4A + bne _0806F7C2 + b _0806F8FC +_0806F7C2: + adds r0, r4, 0 + adds r0, 0xA4 + ldrb r0, [r0] + cmp r0, 0x1 + bne _0806F7CE + b _0806F8FC +_0806F7CE: + mov r0, r8 + adds r1, r6, 0 + bl CanSee + lsls r0, 24 + cmp r0, 0 + bne _0806F7DE + b _0806F8FC +_0806F7DE: + bl sub_806F910 + movs r0, 0xFA + lsls r0, 2 + bl DungeonRandomCapped + adds r7, r0, 0 + movs r1, 0x2 + ldrsh r0, [r4, r1] + bl GetBaseRecruit + lsls r0, 16 + asrs r4, r0, 16 + ldr r0, _0806F844 + cmp r4, r0 + bne _0806F800 + b _0806F8FC +_0806F800: + adds r0, r6, 0 + movs r1, 0x2E + bl HasItem + lsls r0, 24 + cmp r0, 0 + beq _0806F816 + ldr r0, _0806F848 + movs r2, 0 + ldrsh r0, [r0, r2] + adds r4, r0 +_0806F816: + ldr r0, _0806F84C + mov r3, r10 + ldrb r1, [r3, 0x9] + lsls r1, 1 + adds r1, r0 + movs r2, 0 + ldrsh r0, [r1, r2] + adds r4, r0 + cmp r7, r4 + bge _0806F8FC + movs r4, 0 + movs r0, 0x6 + subs r3, r0, r5 + ldr r7, _0806F850 + b _0806F856 + .align 2, 0 +_0806F834: .4byte 0x00000644 +_0806F838: .4byte gDungeonGlobalData +_0806F83C: .4byte 0x0000065d +_0806F840: .4byte 0x0000010d +_0806F844: .4byte 0xfffffc19 +_0806F848: .4byte gUnknown_80F5008 +_0806F84C: .4byte gUnknown_80F5700 +_0806F850: .4byte gUnknown_202EE70 +_0806F854: + adds r4, 0x1 +_0806F856: + cmp r4, r3 + bgt _0806F878 + movs r2, 0 + cmp r2, r5 + bge _0806F872 + adds r1, r4, r7 + b _0806F86C +_0806F864: + adds r1, 0x1 + adds r2, 0x1 + cmp r2, r5 + bge _0806F872 +_0806F86C: + ldrb r0, [r1] + cmp r0, 0 + beq _0806F864 +_0806F872: + cmp r2, r5 + bne _0806F854 + mov r9, r4 +_0806F878: + movs r0, 0x1 + negs r0, r0 + cmp r9, r0 + beq _0806F8F4 + movs r4, 0 + ldr r3, _0806F8BC + ldr r0, [r3] + ldr r2, _0806F8C0 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806F8B4 + adds r7, r3, 0 + adds r5, r2, 0 + movs r2, 0 + movs r3, 0x1 +_0806F89C: + adds r2, 0x64 + adds r4, 0x1 + cmp r4, 0x3 + bgt _0806F8B4 + ldr r0, [r7] + adds r0, r2, r0 + adds r0, r5 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0806F89C +_0806F8B4: + cmp r4, 0x4 + beq _0806F8F4 + movs r4, 0 + b _0806F8C6 + .align 2, 0 +_0806F8BC: .4byte gRecruitedPokemonRef +_0806F8C0: .4byte 0x00008df8 +_0806F8C4: + adds r4, 0x1 +_0806F8C6: + cmp r4, 0x3 + bgt _0806F8E2 + ldr r0, _0806F8EC + ldr r0, [r0] + lsls r1, r4, 2 + ldr r3, _0806F8F0 + adds r0, r3 + adds r0, r1 + ldr r0, [r0] + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806F8C4 +_0806F8E2: + cmp r4, 0x4 + beq _0806F8F4 + movs r0, 0x1 + b _0806F8FE + .align 2, 0 +_0806F8EC: .4byte gDungeonGlobalData +_0806F8F0: .4byte 0x0001357c +_0806F8F4: + adds r0, r6, 0 + mov r1, r8 + bl nullsub_96 +_0806F8FC: + movs r0, 0 +_0806F8FE: + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_806F660 + + thumb_func_start nullsub_96 +nullsub_96: + bx lr + thumb_func_end nullsub_96 + + thumb_func_start sub_806F910 +sub_806F910: + push {r4-r7,lr} + mov r7, r8 + push {r7} + movs r5, 0 + movs r6, 0 + movs r7, 0x40 +_0806F91C: + ldr r0, _0806F9AC + ldr r0, [r0] + lsls r1, r6, 2 + ldr r2, _0806F9B0 + adds r0, r2 + adds r0, r1 + ldr r4, [r0] + adds r0, r4, 0 + bl EntityExists + lsls r0, 24 + adds r1, r6, 0x1 + mov r8, r1 + cmp r0, 0 + beq _0806F98A + ldr r0, [r4, 0x70] + movs r2, 0x4 + ldrsh r0, [r0, r2] + bl GetPokemonSize + lsls r0, 24 + lsrs r1, r0, 24 + adds r0, r4, 0 + adds r0, 0x68 + strh r7, [r0] + ldr r0, [r4, 0x70] + ldr r2, _0806F9B4 + adds r0, r2 + strb r6, [r0] + ldr r0, [r4, 0x70] + adds r2, 0x1 + adds r0, r2 + strb r1, [r0] + cmp r1, 0 + beq _0806F978 + ldr r3, _0806F9B8 + movs r2, 0x1 +_0806F966: + cmp r5, 0x5 + bgt _0806F972 + adds r0, r5, r3 + strb r2, [r0] + adds r7, 0x10 + adds r5, 0x1 +_0806F972: + subs r1, 0x1 + cmp r1, 0 + bne _0806F966 +_0806F978: + adds r0, r4, 0 + bl sub_806CEBC + adds r1, r0, 0 + lsls r1, 24 + lsrs r1, 24 + adds r0, r4, 0 + bl sub_806CCB4 +_0806F98A: + mov r6, r8 + cmp r6, 0x3 + ble _0806F91C + cmp r5, 0x5 + bgt _0806F9A2 + ldr r2, _0806F9B8 + movs r1, 0 +_0806F998: + adds r0, r5, r2 + strb r1, [r0] + adds r5, 0x1 + cmp r5, 0x5 + ble _0806F998 +_0806F9A2: + pop {r3} + mov r8, r3 + pop {r4-r7} + pop {r0} + bx r0 + .align 2, 0 +_0806F9AC: .4byte gDungeonGlobalData +_0806F9B0: .4byte 0x0001357c +_0806F9B4: .4byte 0x00000167 +_0806F9B8: .4byte gUnknown_202EE70 + thumb_func_end sub_806F910 + + thumb_func_start sub_806F9BC +sub_806F9BC: + push {r4,r5,lr} + sub sp, 0xC + lsls r0, 16 + asrs r4, r0, 16 + ldr r5, _0806FA40 + ldr r0, [r5] + movs r1, 0xCB + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0 + beq _0806FA3C + adds r0, r4, 0 + bl sub_808529C + lsls r0, 24 + cmp r0, 0 + beq _0806FA3C + cmp r4, 0x97 + bne _0806F9F2 + ldr r0, [r5] + movs r1, 0xCF + lsls r1, 3 + adds r0, r1 + ldrb r0, [r0] + cmp r0, 0x1 + beq _0806FA3C +_0806F9F2: + movs r0, 0xCC + lsls r0, 1 + cmp r4, r0 + beq _0806FA3C + ldr r0, _0806FA44 + cmp r4, r0 + beq _0806FA3C + ldr r0, _0806FA48 + cmp r4, r0 + beq _0806FA3C + movs r0, 0xD1 + lsls r0, 1 + cmp r4, r0 + beq _0806FA3C + ldr r0, _0806FA4C + cmp r4, r0 + beq _0806FA3C + adds r0, r4, 0 + bl GetUnk12 + lsls r0, 24 + cmp r0, 0 + bne _0806FA50 + adds r0, r4, 0 + bl GetFriendArea + lsls r0, 24 + lsrs r0, 24 + mov r1, sp + movs r2, 0 + movs r3, 0 + bl sub_8092638 + mov r0, sp + ldrb r0, [r0, 0x4] + cmp r0, 0 + bne _0806FA50 +_0806FA3C: + movs r0, 0 + b _0806FA52 + .align 2, 0 +_0806FA40: .4byte gDungeonGlobalData +_0806FA44: .4byte 0x00000199 +_0806FA48: .4byte 0x000001a1 +_0806FA4C: .4byte 0x000001a3 +_0806FA50: + movs r0, 0x1 +_0806FA52: + add sp, 0xC + pop {r4,r5} + pop {r1} + bx r1 + thumb_func_end sub_806F9BC + + thumb_func_start sub_806FA5C +sub_806FA5C: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x10 + mov r8, r0 + adds r5, r1, 0 + adds r6, r2, 0 + adds r0, r5, 0x4 + mov r1, r8 + adds r1, 0x4 + bl CalculateFacingDir + adds r4, r0, 0 + movs r0, 0 + mov r10, r0 + movs r1, 0 + ldrsh r0, [r6, r1] + bl GetFriendArea + lsls r0, 24 + lsrs r0, 24 + mov r9, r0 + adds r0, r5, 0 + adds r0, 0x22 + mov r2, r10 + strb r2, [r0] + mov r0, r8 + adds r1, r5, 0 + bl sub_807A0CC + adds r0, r5, 0 + adds r1, r4, 0 + bl sub_806CE68 + ldr r0, _0806FAD4 + movs r3, 0 + ldrsh r1, [r6, r3] + bl CopyCyanSpeciesNametoBuffer + ldr r0, _0806FAD8 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0 + bne _0806FAE4 + movs r4, 0 + ldrsh r1, [r6, r4] + ldr r0, _0806FADC + cmp r1, r0 + beq _0806FB28 + ldr r0, _0806FAE0 + ldr r1, [r0] + mov r0, r8 + bl SendMessage + b _0806FB28 + .align 2, 0 +_0806FAD4: .4byte gAvailablePokemonNames +_0806FAD8: .4byte gUnknown_80F9FE8 +_0806FADC: .4byte 0x0000019d +_0806FAE0: .4byte gUnknown_80FA004 +_0806FAE4: + movs r7, 0 + ldr r3, _0806FB2C + ldr r0, [r3] + ldr r2, _0806FB30 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806FB1A + mov r12, r3 + adds r4, r2, 0 + movs r2, 0 + movs r3, 0x1 +_0806FB00: + adds r2, 0x64 + adds r7, 0x1 + cmp r7, 0x3 + bgt _0806FB1A + mov r1, r12 + ldr r0, [r1] + adds r0, r2, r0 + adds r0, r4 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0806FB00 +_0806FB1A: + cmp r7, 0x4 + bne _0806FB38 + ldr r0, _0806FB34 + ldr r1, [r0] + mov r0, r8 + bl SendMessage +_0806FB28: + movs r0, 0 + b _0806FCF0 + .align 2, 0 +_0806FB2C: .4byte gRecruitedPokemonRef +_0806FB30: .4byte 0x00008df8 +_0806FB34: .4byte gUnknown_80FA030 +_0806FB38: + mov r0, r9 + bl GetFriendAreaStatus + lsls r0, 24 + cmp r0, 0 + bne _0806FB4E + mov r0, r9 + bl UnlockFriendArea + movs r2, 0x1 + mov r10, r2 +_0806FB4E: + movs r1, 0xFA + lsls r1, 1 + adds r0, r5, 0 + mov r2, r8 + bl sub_8068FE0 + ldr r1, _0806FC40 + movs r0, 0x64 + muls r0, r7 + ldr r3, _0806FC44 + adds r0, r3 + ldr r1, [r1] + adds r5, r1, r0 + movs r4, 0 + movs r0, 0x3 + strh r0, [r5] + strb r4, [r5, 0x2] + ldrh r0, [r6, 0xE] + strb r0, [r5, 0x3] + movs r0, 0x1 + strh r0, [r5, 0x8] + adds r0, r5, 0 + adds r0, 0x4C + movs r1, 0 + bl SetDefaultIQSkills + ldr r0, [r6, 0x44] + str r0, [r5, 0x54] + adds r0, r5, 0 + adds r0, 0x50 + strb r4, [r0] + ldr r0, _0806FC48 + strh r0, [r5, 0xA] + strh r7, [r5, 0xC] + ldrh r0, [r6] + strh r0, [r5, 0xE] + ldr r0, _0806FC4C + ldr r0, [r0] + ldr r4, _0806FC50 + adds r0, r4 + ldr r0, [r0] + str r0, [r5, 0x4] + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x10] + ldrh r0, [r6, 0x8] + strh r0, [r5, 0x12] + ldr r0, [r6, 0x14] + str r0, [r5, 0x44] + ldr r0, [r6, 0x18] + str r0, [r5, 0x48] + movs r2, 0 + adds r7, r6, 0 + adds r7, 0x20 + adds r4, r6, 0 + adds r4, 0xA + adds r3, r6, 0 + adds r3, 0xC + adds r1, r5, 0 + adds r1, 0x14 +_0806FBC4: + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, 0x2] + adds r1, 0x1 + adds r2, 0x1 + cmp r2, 0x1 + ble _0806FBC4 + ldr r0, [r6, 0x10] + str r0, [r5, 0x18] + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r7, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [r6, 0x1C] + str r0, [r5, 0x40] + adds r4, r5, 0 + adds r4, 0x58 + movs r1, 0 + ldrsh r0, [r6, r1] + bl GetMonSpecies + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0xA + bl BoundedCopyStringtoBuffer + bl sub_8097848 + movs r2, 0 + ldrsh r0, [r6, r2] + movs r3, 0x4 + ldrsh r1, [r6, r3] + movs r3, 0x6 + ldrsh r2, [r6, r3] + add r3, sp, 0xC + str r3, [sp] + movs r3, 0 + str r3, [sp, 0x4] + movs r3, 0x1 + str r3, [sp, 0x8] + adds r3, r5, 0 + bl sub_806B8CC + lsls r0, 24 + lsrs r7, r0, 24 + cmp r7, 0 + bne _0806FC58 + ldr r0, _0806FC54 + ldr r1, [r0] + mov r0, r8 + bl SendMessage + strh r7, [r5] + b _0806FCEE + .align 2, 0 +_0806FC40: .4byte gRecruitedPokemonRef +_0806FC44: .4byte 0x00008df8 +_0806FC48: .4byte 0x0000ffff +_0806FC4C: .4byte gDungeonGlobalData +_0806FC50: .4byte 0x00000644 +_0806FC54: .4byte gUnknown_80FA058 +_0806FC58: + bl sub_8083D88 + movs r0, 0xA0 + movs r1, 0x46 + bl sub_803E708 + ldr r0, _0806FC78 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _0806FC94 + b _0806FC88 + .align 2, 0 +_0806FC78: .4byte gUnknown_80FA090 +_0806FC7C: + ldr r0, _0806FD00 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_0806FC88: + adds r0, r4, 0 + bl sub_805FBE8 + lsls r0, 24 + cmp r0, 0 + beq _0806FC7C +_0806FC94: + ldr r4, _0806FD04 + adds r0, r4, 0 + adds r1, r5, 0 + movs r2, 0 + bl sub_808D9DC + ldr r0, _0806FD08 + ldr r1, [r0] + mov r0, r8 + bl SendMessage + mov r0, r10 + cmp r0, 0 + beq _0806FCD8 + bl xxx_call_GetLeaderEntity + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0 + bl SetMessageArgument + ldr r0, _0806FD0C + mov r1, r9 + bl sub_8092558 + movs r0, 0xCE + bl PlaySound + ldr r0, _0806FD10 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_0806FCD8: + movs r1, 0 + ldrsh r0, [r6, r1] + cmp r0, 0x97 + bne _0806FCEE + ldr r2, _0806FD14 + ldr r1, [r2] + movs r0, 0x1 + strb r0, [r1, 0x4] + ldr r1, [r2] + movs r0, 0x3 + strb r0, [r1, 0x11] +_0806FCEE: + movs r0, 0x1 +_0806FCF0: + add sp, 0x10 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_0806FD00: .4byte gUnknown_80FA0C8 +_0806FD04: .4byte gAvailablePokemonNames +_0806FD08: .4byte gUnknown_80FA0F0 +_0806FD0C: .4byte gUnknown_202E628 +_0806FD10: .4byte gUnknown_80FA120 +_0806FD14: .4byte gDungeonGlobalData + thumb_func_end sub_806FA5C + + thumb_func_start sub_806FD18 +sub_806FD18: + push {r4-r7,lr} + ldr r4, [r0, 0x70] + movs r6, 0x1 + negs r6, r6 + movs r1, 0x4 + ldrsh r0, [r4, r1] + bl GetPokemonSize + lsls r0, 24 + lsrs r5, r0, 24 + movs r2, 0x2 + ldrsh r0, [r4, r2] + bl sub_806F9BC + lsls r0, 24 + cmp r0, 0 + beq _0806FDEC + bl sub_806F910 + movs r4, 0 + movs r0, 0x6 + subs r3, r0, r5 + ldr r7, _0806FD48 + b _0806FD4E + .align 2, 0 +_0806FD48: .4byte gUnknown_202EE70 +_0806FD4C: + adds r4, 0x1 +_0806FD4E: + cmp r4, r3 + bgt _0806FD70 + movs r2, 0 + cmp r2, r5 + bge _0806FD6A + adds r1, r4, r7 + b _0806FD64 +_0806FD5C: + adds r1, 0x1 + adds r2, 0x1 + cmp r2, r5 + bge _0806FD6A +_0806FD64: + ldrb r0, [r1] + cmp r0, 0 + beq _0806FD5C +_0806FD6A: + cmp r2, r5 + bne _0806FD4C + adds r6, r4, 0 +_0806FD70: + movs r0, 0x1 + negs r0, r0 + cmp r6, r0 + beq _0806FDEC + movs r4, 0 + ldr r3, _0806FDB4 + ldr r0, [r3] + ldr r2, _0806FDB8 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806FDAC + adds r6, r3, 0 + adds r5, r2, 0 + movs r2, 0 + movs r3, 0x1 +_0806FD94: + adds r2, 0x64 + adds r4, 0x1 + cmp r4, 0x3 + bgt _0806FDAC + ldr r0, [r6] + adds r0, r2, r0 + adds r0, r5 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0806FD94 +_0806FDAC: + cmp r4, 0x4 + beq _0806FDEC + movs r4, 0 + b _0806FDBE + .align 2, 0 +_0806FDB4: .4byte gRecruitedPokemonRef +_0806FDB8: .4byte 0x00008df8 +_0806FDBC: + adds r4, 0x1 +_0806FDBE: + cmp r4, 0x3 + bgt _0806FDDA + ldr r0, _0806FDE4 + ldr r0, [r0] + lsls r1, r4, 2 + ldr r2, _0806FDE8 + adds r0, r2 + adds r0, r1 + ldr r0, [r0] + bl EntityExists + lsls r0, 24 + cmp r0, 0 + bne _0806FDBC +_0806FDDA: + cmp r4, 0x4 + beq _0806FDEC + movs r0, 0x1 + b _0806FDEE + .align 2, 0 +_0806FDE4: .4byte gDungeonGlobalData +_0806FDE8: .4byte 0x0001357c +_0806FDEC: + movs r0, 0 +_0806FDEE: + pop {r4-r7} + pop {r1} + bx r1 + thumb_func_end sub_806FD18 + + thumb_func_start sub_806FDF4 +sub_806FDF4: + push {r4-r7,lr} + mov r7, r10 + mov r6, r9 + mov r5, r8 + push {r5-r7} + sub sp, 0x60 + str r0, [sp, 0x58] + mov r10, r1 + str r2, [sp, 0x5C] + movs r0, 0 + mov r9, r0 + str r0, [r2] + add r0, sp, 0xC + bl sub_8069D4C + movs r6, 0 + ldr r3, _0806FE50 + ldr r0, [r3] + ldr r2, _0806FE54 + adds r0, r2 + ldrb r1, [r0] + movs r0, 0x1 + ands r0, r1 + cmp r0, 0 + beq _0806FE46 + adds r5, r3, 0 + adds r4, r2, 0 + movs r2, 0 + movs r3, 0x1 +_0806FE2E: + adds r2, 0x64 + adds r6, 0x1 + cmp r6, 0x3 + bgt _0806FE46 + ldr r0, [r5] + adds r0, r2, r0 + adds r0, r4 + ldrb r1, [r0] + adds r0, r3, 0 + ands r0, r1 + cmp r0, 0 + bne _0806FE2E +_0806FE46: + cmp r6, 0x4 + bne _0806FE58 + movs r0, 0 + b _0806FFF8 + .align 2, 0 +_0806FE50: .4byte gRecruitedPokemonRef +_0806FE54: .4byte 0x00008df8 +_0806FE58: + add r0, sp, 0xC + movs r1, 0 + ldrsh r0, [r0, r1] + bl GetFriendArea + lsls r0, 24 + lsrs r7, r0, 24 + ldr r1, _0806FF74 + movs r0, 0x64 + muls r0, r6 + ldr r2, _0806FF78 + adds r0, r2 + ldr r1, [r1] + adds r5, r1, r0 + movs r4, 0 + movs r0, 0x3 + strh r0, [r5] + strb r4, [r5, 0x2] + add r0, sp, 0xC + ldrh r0, [r0, 0xE] + strb r0, [r5, 0x3] + movs r0, 0x1 + strh r0, [r5, 0x8] + adds r0, r5, 0 + adds r0, 0x4C + movs r1, 0 + bl SetDefaultIQSkills + ldr r0, [sp, 0x50] + str r0, [r5, 0x54] + adds r0, r5, 0 + adds r0, 0x50 + strb r4, [r0] + ldr r0, _0806FF7C + strh r0, [r5, 0xA] + strh r6, [r5, 0xC] + add r0, sp, 0xC + ldrh r0, [r0] + strh r0, [r5, 0xE] + ldr r0, _0806FF80 + ldr r0, [r0] + ldr r3, _0806FF84 + adds r0, r3 + ldr r0, [r0] + str r0, [r5, 0x4] + add r0, sp, 0xC + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x10] + add r0, sp, 0xC + ldrh r0, [r0, 0x8] + strh r0, [r5, 0x12] + ldr r0, [sp, 0x20] + str r0, [r5, 0x44] + ldr r0, [sp, 0x24] + str r0, [r5, 0x48] + movs r2, 0 + add r6, sp, 0x2C + add r4, sp, 0x54 + mov r8, r4 + mov r4, sp + adds r4, 0x16 + add r3, sp, 0x18 + adds r1, r5, 0 + adds r1, 0x14 +_0806FED8: + adds r0, r4, r2 + ldrb r0, [r0] + strb r0, [r1] + adds r0, r3, r2 + ldrb r0, [r0] + strb r0, [r1, 0x2] + adds r1, 0x1 + adds r2, 0x1 + cmp r2, 0x1 + ble _0806FED8 + ldr r0, [sp, 0x1C] + str r0, [r5, 0x18] + adds r1, r5, 0 + adds r1, 0x1C + adds r0, r6, 0 + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldm r0!, {r2-r4} + stm r1!, {r2-r4} + ldr r0, [sp, 0x28] + str r0, [r5, 0x40] + adds r4, r5, 0 + adds r4, 0x58 + add r0, sp, 0xC + movs r1, 0 + ldrsh r0, [r0, r1] + bl GetMonSpecies + adds r1, r0, 0 + adds r0, r4, 0 + movs r2, 0xA + bl BoundedCopyStringtoBuffer + adds r0, r7, 0 + bl GetFriendAreaStatus + lsls r0, 24 + cmp r0, 0 + bne _0806FF34 + adds r0, r7, 0 + bl UnlockFriendArea + movs r2, 0x1 + mov r9, r2 +_0806FF34: + bl sub_8097848 + movs r1, 0xFA + lsls r1, 1 + mov r0, r10 + ldr r2, [sp, 0x58] + bl sub_8068FE0 + add r0, sp, 0xC + movs r3, 0 + ldrsh r0, [r0, r3] + add r1, sp, 0xC + movs r2, 0x4 + ldrsh r1, [r1, r2] + add r2, sp, 0xC + movs r3, 0x6 + ldrsh r2, [r2, r3] + mov r3, r8 + str r3, [sp] + movs r3, 0 + str r3, [sp, 0x4] + str r3, [sp, 0x8] + adds r3, r5, 0 + bl sub_806B8CC + lsls r0, 24 + lsrs r0, 24 + cmp r0, 0 + bne _0806FF88 + strh r0, [r5] + b _0806FFF6 + .align 2, 0 +_0806FF74: .4byte gRecruitedPokemonRef +_0806FF78: .4byte 0x00008df8 +_0806FF7C: .4byte 0x0000ffff +_0806FF80: .4byte gDungeonGlobalData +_0806FF84: .4byte 0x00000644 +_0806FF88: + ldr r0, _0806FF9C + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl sub_8052B8C + cmp r0, 0x1 + bne _0806FFB8 + b _0806FFAC + .align 2, 0 +_0806FF9C: .4byte gUnknown_80FA090 +_0806FFA0: + ldr r0, _08070008 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_0806FFAC: + adds r0, r4, 0 + bl sub_805FBE8 + lsls r0, 24 + cmp r0, 0 + beq _0806FFA0 +_0806FFB8: + mov r4, r9 + cmp r4, 0 + beq _0806FFE6 + bl xxx_call_GetLeaderEntity + adds r1, r0, 0 + ldr r0, _0807000C + movs r2, 0 + bl SetMessageArgument + ldr r0, _08070010 + adds r1, r7, 0 + bl sub_8092558 + movs r0, 0xCE + bl PlaySound + ldr r0, _08070014 + ldr r1, [r0] + movs r0, 0 + movs r2, 0x1 + bl PrintFieldMessage +_0806FFE6: + ldr r0, _08070018 + adds r1, r5, 0 + movs r2, 0 + bl sub_808D9DC + ldr r0, [sp, 0x54] + ldr r1, [sp, 0x5C] + str r0, [r1] +_0806FFF6: + movs r0, 0x1 +_0806FFF8: + add sp, 0x60 + pop {r3-r5} + mov r8, r3 + mov r9, r4 + mov r10, r5 + pop {r4-r7} + pop {r1} + bx r1 + .align 2, 0 +_08070008: .4byte gUnknown_80FA0C8 +_0807000C: .4byte gAvailablePokemonNames +_08070010: .4byte gUnknown_202E628 +_08070014: .4byte gUnknown_80FA120 +_08070018: .4byte gUnknown_202E088 + thumb_func_end sub_806FDF4 + + .align 2,0 diff --git a/asm/code_8075BA4.s b/asm/code_8075BA4.s index 3981d7a..19928c2 100644 --- a/asm/code_8075BA4.s +++ b/asm/code_8075BA4.s @@ -29874,267 +29874,4 @@ _080848E4: .4byte gDungeonGlobalData _080848E8: .4byte 0x00000675 thumb_func_end sub_8084854 - thumb_func_start sub_80848EC -sub_80848EC: - movs r0, 0x1 - bx lr - thumb_func_end sub_80848EC - - thumb_func_start sub_80848F0 -sub_80848F0: - push {lr} - ldr r2, _08084918 - ldr r0, [r2] - ldr r1, _0808491C - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - ldr r0, [r2] - ldr r1, _08084920 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x3C - bls _0808490C - b _08084B5C -_0808490C: - lsls r0, 2 - ldr r1, _08084924 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_08084918: .4byte gDungeonGlobalData -_0808491C: .4byte 0x0001356c -_08084920: .4byte 0x00003a0d -_08084924: .4byte _08084928 - .align 2, 0 -_08084928: - .4byte _08084A1C - .4byte _08084A2C - .4byte _08084A2C - .4byte _08084A32 - .4byte _08084A38 - .4byte _08084A38 - .4byte _08084A3E - .4byte _08084A44 - .4byte _08084A44 - .4byte _08084A4A - .4byte _08084A50 - .4byte _08084A50 - .4byte _08084A56 - .4byte _08084A5C - .4byte _08084A62 - .4byte _08084A68 - .4byte _08084A6E - .4byte _08084A74 - .4byte _08084A7A - .4byte _08084A80 - .4byte _08084A86 - .4byte _08084A8C - .4byte _08084A92 - .4byte _08084A98 - .4byte _08084A98 - .4byte _08084A9E - .4byte _08084AA4 - .4byte _08084AA4 - .4byte _08084AAA - .4byte _08084AB0 - .4byte _08084AB0 - .4byte _08084AB6 - .4byte _08084ABC - .4byte _08084ABC - .4byte _08084AC2 - .4byte _08084AC8 - .4byte _08084ACE - .4byte _08084AD4 - .4byte _08084ADA - .4byte _08084AE0 - .4byte _08084AE6 - .4byte _08084AEC - .4byte _08084AF2 - .4byte _08084AF8 - .4byte _08084AFE - .4byte _08084B04 - .4byte _08084B0A - .4byte _08084B10 - .4byte _08084B16 - .4byte _08084B1C - .4byte _08084B22 - .4byte _08084B28 - .4byte _08084B2E - .4byte _08084B34 - .4byte _08084B3A - .4byte _08084B40 - .4byte _08084B46 - .4byte _08084B4C - .4byte _08084B52 - .4byte _08084B58 - .4byte _08084A1C -_08084A1C: - ldr r0, [r2] - ldr r1, _08084A28 - adds r0, r1 - movs r1, 0 - strb r1, [r0] - b _08084B5C - .align 2, 0 -_08084A28: .4byte 0x0001356c -_08084A2C: - bl sub_8086B14 - b _08084B5C -_08084A32: - bl sub_8086B94 - b _08084B5C -_08084A38: - bl sub_8086E9C - b _08084B5C -_08084A3E: - bl sub_8086F00 - b _08084B5C -_08084A44: - bl sub_8087230 - b _08084B5C -_08084A4A: - bl sub_808729C - b _08084B5C -_08084A50: - bl sub_80877E8 - b _08084B5C -_08084A56: - bl sub_8087848 - b _08084B5C -_08084A5C: - bl sub_8087F54 - b _08084B5C -_08084A62: - bl sub_8087FB4 - b _08084B5C -_08084A68: - bl sub_8087FF8 - b _08084B5C -_08084A6E: - bl sub_80885A0 - b _08084B5C -_08084A74: - bl sub_80885C4 - b _08084B5C -_08084A7A: - bl sub_808862C - b _08084B5C -_08084A80: - bl sub_80886C4 - b _08084B5C -_08084A86: - bl sub_808875C - b _08084B5C -_08084A8C: - bl sub_8088DC0 - b _08084B5C -_08084A92: - bl sub_8088E5C - b _08084B5C -_08084A98: - bl sub_80892C8 - b _08084B5C -_08084A9E: - bl sub_8089328 - b _08084B5C -_08084AA4: - bl sub_808970C - b _08084B5C -_08084AAA: - bl sub_808974C - b _08084B5C -_08084AB0: - bl sub_8089914 - b _08084B5C -_08084AB6: - bl sub_8089978 - b _08084B5C -_08084ABC: - bl sub_8089C44 - b _08084B5C -_08084AC2: - bl sub_8089C90 - b _08084B5C -_08084AC8: - bl sub_8089EFC - b _08084B5C -_08084ACE: - bl sub_8089F44 - b _08084B5C -_08084AD4: - bl sub_8089F8C - b _08084B5C -_08084ADA: - bl sub_808A264 - b _08084B5C -_08084AE0: - bl sub_808A2C0 - b _08084B5C -_08084AE6: - bl sub_808A308 - b _08084B5C -_08084AEC: - bl sub_808A608 - b _08084B5C -_08084AF2: - bl sub_808A668 - b _08084B5C -_08084AF8: - bl sub_808A9E4 - b _08084B5C -_08084AFE: - bl sub_808AA3C - b _08084B5C -_08084B04: - bl sub_808AA94 - b _08084B5C -_08084B0A: - bl sub_808ACC0 - b _08084B5C -_08084B10: - bl sub_808AD48 - b _08084B5C -_08084B16: - bl sub_808ADCC - b _08084B5C -_08084B1C: - bl sub_808B2F4 - b _08084B5C -_08084B22: - bl sub_808B35C - b _08084B5C -_08084B28: - bl sub_808BDEC - b _08084B5C -_08084B2E: - bl sub_808C10C - b _08084B5C -_08084B34: - bl sub_808C3A0 - b _08084B5C -_08084B3A: - bl sub_808C5C0 - b _08084B5C -_08084B40: - bl sub_808C938 - b _08084B5C -_08084B46: - bl sub_808C9C4 - b _08084B5C -_08084B4C: - bl sub_808CB5C - b _08084B5C -_08084B52: - bl sub_808CBB0 - b _08084B5C -_08084B58: - bl sub_808CD44 -_08084B5C: - bl sub_8097FF8 - pop {r0} - bx r0 - thumb_func_end sub_80848F0 - .align 2,0 diff --git a/asm/code_80848F0.s b/asm/code_80848F0.s index 3ef188c..8b1c811 100644 --- a/asm/code_80848F0.s +++ b/asm/code_80848F0.s @@ -269,16 +269,16 @@ _0808546E: _0808547C: .4byte gUnknown_80F4598 thumb_func_end sub_8085374 - thumb_func_start sub_8085480 -sub_8085480: + thumb_func_start xxx_call_GetLeaderEntity +xxx_call_GetLeaderEntity: push {lr} bl GetLeaderEntity pop {r1} bx r1 - thumb_func_end sub_8085480 + thumb_func_end xxx_call_GetLeaderEntity - thumb_func_start sub_808548C -sub_808548C: + thumb_func_start GetPartnerEntity +GetPartnerEntity: push {r4,r5,lr} movs r5, 0 _08085490: @@ -314,7 +314,7 @@ _080854CC: pop {r4,r5} pop {r1} bx r1 - thumb_func_end sub_808548C + thumb_func_end GetPartnerEntity thumb_func_start sub_80854D4 sub_80854D4: @@ -500,7 +500,7 @@ _08085618: ble _080855EC cmp r7, 0 bne _0808562E - bl sub_808548C + bl GetPartnerEntity cmp r0, 0 beq _0808562E bl _call_via_r6 @@ -889,8 +889,8 @@ _080858FE: bx r0 thumb_func_end sub_80858AC - thumb_func_start sub_8085918 -sub_8085918: + thumb_func_start SetFacingDirection +SetFacingDirection: push {r4,lr} ldr r3, [r0, 0x70] movs r4, 0x7 @@ -902,7 +902,7 @@ sub_8085918: pop {r4} pop {r0} bx r0 - thumb_func_end sub_8085918 + thumb_func_end SetFacingDirection thumb_func_start sub_8085930 sub_8085930: @@ -1045,4 +1045,4 @@ _08085A42: bx r0 thumb_func_end sub_80859F0 - .align 2, 0
\ No newline at end of file + .align 2, 0 diff --git a/asm/code_8085B0C.s b/asm/code_8085B0C.s index e79e550..0080472 100644 --- a/asm/code_8085B0C.s +++ b/asm/code_8085B0C.s @@ -22,7 +22,7 @@ sub_8085B0C: _08085B26: ldrb r1, [r4] adds r0, r5, 0 - bl sub_8085918 + bl SetFacingDirection movs r0, 0x6 movs r1, 0x46 bl sub_803E708 diff --git a/asm/code_8086A3C.s b/asm/code_8086A3C.s index 291053b..ae72ef7 100644 --- a/asm/code_8086A3C.s +++ b/asm/code_8086A3C.s @@ -5,350 +5,6 @@ .text - thumb_func_start SkarmoryPreFightDialogue -SkarmoryPreFightDialogue: - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x10 - bl sub_8085480 - mov r8, r0 - bl sub_808548C - mov r9, r0 - movs r0, 0x4 - bl sub_8085680 - adds r4, r0, 0 - movs r0, 0x3 - bl sub_8085680 - adds r6, r0, 0 - ldr r0, [r4, 0xC] - str r0, [sp] - ldr r0, [r4, 0x10] - movs r1, 0xC0 - lsls r1, 6 - adds r0, r1 - str r0, [sp, 0x4] - ldr r0, [r6, 0xC] - str r0, [sp, 0x8] - ldr r0, [r6, 0x10] - movs r2, 0x80 - lsls r2, 6 - adds r0, r2 - add r5, sp, 0x8 - str r0, [r5, 0x4] - bl sub_8086448 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - mov r0, r9 - bl sub_80862BC - movs r0, 0x20 - movs r1, 0x46 - bl sub_803E708 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086D84 - bl sub_8052910 - mov r0, sp - movs r1, 0x40 - bl sub_80858AC - movs r0, 0x40 - movs r1, 0x46 - bl sub_803E708 - adds r0, r5, 0 - movs r1, 0x30 - bl sub_80858AC - ldr r0, _08086D88 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, [r4, 0x70] - ldr r2, _08086D8C - adds r1, r0, r2 - movs r0, 0x1 - strb r0, [r1] - mov r0, sp - movs r1, 0x30 - bl sub_80858AC - ldr r0, _08086D90 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - adds r0, r5, 0 - movs r1, 0x20 - bl sub_80858AC - movs r0, 0x20 - movs r1, 0x46 - bl sub_803E708 - adds r0, r6, 0 - bl sub_8086E74 - ldr r0, _08086D94 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086D98 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086D9C - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086DA0 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - adds r0, r6, 0 - movs r1, 0xD - movs r2, 0 - bl sub_806CDD4 - ldr r0, _08086DA4 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - mov r0, r9 - movs r1, 0x4 - movs r2, 0x1 - movs r3, 0x2 - bl sub_80869E4 - mov r0, r8 - movs r1, 0x4 - movs r2, 0x2 - movs r3, 0x6 - bl sub_80869E4 - ldr r0, _08086DA8 - bl sub_8052910 - mov r0, r9 - movs r1, 0x4 - movs r2, 0x2 - movs r3, 0x4 - bl sub_80869E4 - mov r0, r8 - movs r1, 0x4 - movs r2, 0x1 - movs r3, 0x4 - bl sub_80869E4 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - movs r0, 0xB - bl sub_8083E88 - movs r0, 0xC - add r8, r0 - mov r0, r8 - movs r1, 0x10 - bl sub_80858AC - add sp, 0x10 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08086D84: .4byte gUnknown_8100768 -_08086D88: .4byte gUnknown_8100798 -_08086D8C: .4byte 0x0000015d -_08086D90: .4byte gUnknown_8100820 -_08086D94: .4byte gUnknown_8100844 -_08086D98: .4byte gUnknown_8100880 -_08086D9C: .4byte gUnknown_8100928 -_08086DA0: .4byte gUnknown_8100A04 -_08086DA4: .4byte gUnknown_8100B80 -_08086DA8: .4byte gUnknown_8100BC0 - thumb_func_end SkarmoryPreFightDialogue - - thumb_func_start SkarmoryReFightDialogue -SkarmoryReFightDialogue: - push {r4,r5,lr} - sub sp, 0x8 - bl sub_8085480 - adds r5, r0, 0 - movs r0, 0x3 - bl sub_8085680 - adds r4, r0, 0 - ldr r0, [r4, 0xC] - str r0, [sp] - ldr r0, [r4, 0x10] - movs r1, 0x80 - lsls r1, 6 - adds r0, r1 - str r0, [sp, 0x4] - bl sub_8086448 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - adds r0, r4, 0 - bl sub_8086E74 - mov r0, sp - movs r1, 0x10 - bl sub_80858AC - ldr r0, _08086E34 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086E38 - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - adds r0, r4, 0 - movs r1, 0xD - movs r2, 0 - bl sub_806CDD4 - ldr r0, _08086E3C - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - adds r5, 0xC - adds r0, r5, 0 - movs r1, 0x10 - bl sub_80858AC - movs r0, 0xB - bl sub_8083E88 - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086E34: .4byte gUnknown_8100C90 -_08086E38: .4byte gUnknown_8100CBC -_08086E3C: .4byte gUnknown_8100CDC - thumb_func_end SkarmoryReFightDialogue - - thumb_func_start sub_8086E40 -sub_8086E40: - push {lr} - bl sub_8085480 - bl SpriteLookAroundEffect - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086E6C - bl sub_8052910 - movs r0, 0xA - movs r1, 0x46 - bl sub_803E708 - ldr r0, _08086E70 - ldr r1, [r0] - movs r0, 0x1 - strb r0, [r1, 0x2] - pop {r0} - bx r0 - .align 2, 0 -_08086E6C: .4byte gUnknown_8100D3C -_08086E70: .4byte gDungeonGlobalData - thumb_func_end sub_8086E40 - - thumb_func_start sub_8086E74 -sub_8086E74: - push {r4,lr} - adds r4, r0, 0 - movs r1, 0xF - movs r2, 0 - bl sub_806CDD4 - adds r0, r4, 0 - bl sub_8086A54 - movs r0, 0xFC - lsls r0, 1 - bl PlaySoundEffect - movs r0, 0x44 - movs r1, 0x46 - bl sub_803E708 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8086E74 - - thumb_func_start sub_8086E9C -sub_8086E9C: - push {r4,r5,lr} - bl sub_8085480 - adds r5, r0, 0 - movs r0, 0x72 - bl sub_8083E88 - bl sub_8085374 - bl sub_80854D4 - movs r0, 0x4 - bl sub_8085930 - ldr r4, _08086EF8 - adds r0, r4, 0 - bl sub_80855E4 - adds r0, r4, 0 - bl sub_808563C - movs r1, 0x4 - ldrsh r0, [r5, r1] - movs r2, 0x6 - ldrsh r1, [r5, r2] - subs r1, 0x3 - bl sub_8085860 - ldr r4, _08086EFC - adds r0, r4, 0 - movs r1, 0xB - bl CopySpeciesNametoBuffer - adds r0, r4, 0 - adds r0, 0x50 - movs r1, 0x5E - bl CopySpeciesNametoBuffer - adds r4, 0xA0 - adds r0, r4, 0 - movs r1, 0xA - bl CopySpeciesNametoBuffer - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086EF8: .4byte sub_8086A3C -_08086EFC: .4byte gUnknown_202E038 - thumb_func_end sub_8086E9C - - thumb_func_start sub_8086F00 -sub_8086F00: - push {r4,lr} - bl sub_8085480 - adds r4, r0, 0 - bl sub_80854D4 - movs r0, 0x4 - bl sub_8085930 - ldr r0, _08086F4C - bl sub_80855E4 - movs r1, 0x4 - ldrsh r0, [r4, r1] - movs r2, 0x6 - ldrsh r1, [r4, r2] - subs r1, 0x3 - bl sub_8085860 - ldr r4, _08086F50 - adds r0, r4, 0 - movs r1, 0xB - bl CopySpeciesNametoBuffer - adds r0, r4, 0 - adds r0, 0x50 - movs r1, 0x5E - bl CopySpeciesNametoBuffer - adds r4, 0xA0 - adds r0, r4, 0 - movs r1, 0xA - bl CopySpeciesNametoBuffer - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086F4C: .4byte sub_8086A3C -_08086F50: .4byte gUnknown_202E038 - thumb_func_end sub_8086F00 - thumb_func_start sub_8086F54 sub_8086F54: push {r4-r6,lr} @@ -405,7 +61,7 @@ _08086FB4: .4byte 0x0001358c thumb_func_start TeamMeaniesPreFightDialogue TeamMeaniesPreFightDialogue: push {r4,lr} - bl sub_8085480 + bl xxx_call_GetLeaderEntity adds r4, r0, 0 bl sub_8086448 movs r0, 0xA @@ -469,9 +125,9 @@ _08087060: .4byte gUnknown_81010D0 thumb_func_start TeamMeaniesReFightDialogue TeamMeaniesReFightDialogue: push {r4,r5,lr} - bl sub_8085480 + bl xxx_call_GetLeaderEntity adds r4, r0, 0 - bl sub_808548C + bl GetPartnerEntity adds r5, r0, 0 bl sub_8086448 ldr r0, _08087118 @@ -665,7 +321,7 @@ _0808722C: .4byte 0x0000015f thumb_func_start sub_8087230 sub_8087230: push {r4-r6,lr} - bl sub_8085480 + bl xxx_call_GetLeaderEntity adds r6, r0, 0 movs r0, 0x8 bl sub_8085680 @@ -681,7 +337,7 @@ sub_8087230: bl sub_80855E4 adds r0, r5, 0 movs r1, 0 - bl sub_8085918 + bl SetFacingDirection adds r0, r5, 0 bl _call_via_r4 movs r1, 0x4 @@ -711,7 +367,7 @@ _08087298: .4byte gUnknown_202E038 sub_808729C: push {r4-r6,lr} sub sp, 0x4 - bl sub_8085480 + bl xxx_call_GetLeaderEntity adds r5, r0, 0 movs r0, 0x8 bl sub_8085680 @@ -747,7 +403,7 @@ _080872E0: bl sub_8072008 adds r0, r4, 0 movs r1, 0 - bl sub_8085918 + bl SetFacingDirection adds r0, r4, 0 bl _call_via_r6 _08087300: @@ -810,9 +466,9 @@ ZapdosPreFightDialogue: mov r5, r8 push {r5-r7} sub sp, 0x70 - bl sub_8085480 + bl xxx_call_GetLeaderEntity mov r9, r0 - bl sub_808548C + bl GetPartnerEntity adds r6, r0, 0 movs r0, 0x8 bl sub_8085680 diff --git a/asm/code_8095014.s b/asm/code_8095014.s index 4406103..bd88144 100644 --- a/asm/code_8095014.s +++ b/asm/code_8095014.s @@ -412,7 +412,7 @@ sub_809542C: bl GetPlayerPokemonStruct adds r1, r0, 0 mov r0, sp - bl sub_808DA34 + bl PrintPokeNameToBuffer ldr r0, [r4] adds r0, 0x14 mov r1, sp diff --git a/asm/friend_list_menu.s b/asm/friend_list_menu.s index c6a965a..391bd3f 100644 --- a/asm/friend_list_menu.s +++ b/asm/friend_list_menu.s @@ -364,13 +364,13 @@ _080255D2: ldr r1, [r0, 0x1C] adds r0, r4, 0 movs r2, 0x7 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x1C] adds r0, r4, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldr r2, [r5] adds r0, r2, 0 adds r0, 0x78 @@ -1911,13 +1911,13 @@ _0802625C: ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x7 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldr r2, [r5] adds r0, r2, 0 adds r0, 0x7C @@ -1945,13 +1945,13 @@ _080262A8: ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x7 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer adds r4, 0x50 ldr r0, [r5] ldr r1, [r0, 0x18] adds r0, r4, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldr r0, [r5] adds r0, 0x7C movs r1, 0x1 diff --git a/asm/jirachi_wish.s b/asm/jirachi_wish.s index 4d113bb..cc21bd0 100644 --- a/asm/jirachi_wish.s +++ b/asm/jirachi_wish.s @@ -449,7 +449,7 @@ _0808B98E: bl CalculateFacingDir adds r1, r0, 0 adds r0, r6, 0 - bl sub_8085918 + bl SetFacingDirection movs r0, 0xA movs r1, 0x46 bl sub_803E708 diff --git a/asm/mailbox.s b/asm/mailbox.s index d65e611..f164a29 100644 --- a/asm/mailbox.s +++ b/asm/mailbox.s @@ -268,293 +268,4 @@ _0802E4A8: bx r0 thumb_func_end CreateMailActionMenu - thumb_func_start sub_802E4B0 -sub_802E4B0: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802E4F0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E4DC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E4DC - ldr r0, [r4] - str r1, [r0, 0x64] -_0802E4DC: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E56E - lsls r0, 2 - ldr r1, _0802E4F4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E4F0: .4byte gUnknown_203B304 -_0802E4F4: .4byte _0802E4F8 - .align 2, 0 -_0802E4F8: - .4byte _0802E568 - .4byte _0802E518 - .4byte _0802E52A - .4byte _0802E53C - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E56E - .4byte _0802E560 -_0802E518: - bl HasNoMailinMailbox - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x4 - bl SetMailboxState - b _0802E56E -_0802E52A: - bl HasNoAcceptedJobs - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x8 - bl SetMailboxState - b _0802E56E -_0802E53C: - bl HasNoPKMNNews - lsls r0, 24 - cmp r0, 0 - bne _0802E54E - movs r0, 0x9 - bl SetMailboxState - b _0802E56E -_0802E54E: - ldr r0, _0802E55C - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802E56E - .align 2, 0 -_0802E55C: .4byte gUnknown_203B304 -_0802E560: - movs r0, 0x2 - bl SetMailboxState - b _0802E56E -_0802E568: - movs r0, 0x3 - bl SetMailboxState -_0802E56E: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E4B0 - - thumb_func_start sub_802E578 -sub_802E578: - push {r4,lr} - movs r0, 0x1 - bl sub_802BDEC - cmp r0, 0x4 - bhi _0802E606 - lsls r0, 2 - ldr r1, _0802E590 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E590: .4byte _0802E594 - .align 2, 0 -_0802E594: - .4byte _0802E606 - .4byte _0802E606 - .4byte _0802E5FC - .4byte _0802E5A8 - .4byte _0802E5C0 -_0802E5A8: - bl sub_802BE74 - ldr r1, _0802E5BC - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl SetMailboxState - b _0802E606 - .align 2, 0 -_0802E5BC: .4byte gUnknown_203B304 -_0802E5C0: - bl sub_802BE74 - ldr r4, _0802E5F0 - ldr r1, [r4] - strb r0, [r1, 0x8] - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - adds r2, r0, 0 - ldrb r0, [r2] - cmp r0, 0x1 - bne _0802E5F4 - ldr r1, [r4] - ldrb r0, [r2, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl SetMailboxState - b _0802E606 - .align 2, 0 -_0802E5F0: .4byte gUnknown_203B304 -_0802E5F4: - movs r0, 0x7 - bl SetMailboxState - b _0802E606 -_0802E5FC: - bl sub_802BEDC - movs r0, 0x1 - bl SetMailboxState -_0802E606: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E578 - - thumb_func_start sub_802E60C -sub_802E60C: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802BDEC - ldr r4, _0802E650 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802E63C - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802E63C - ldr r0, [r4] - str r1, [r0, 0x68] -_0802E63C: - ldr r0, [sp] - subs r0, 0x1 - cmp r0, 0x7 - bhi _0802E732 - lsls r0, 2 - ldr r1, _0802E654 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802E650: .4byte gUnknown_203B304 -_0802E654: .4byte _0802E658 - .align 2, 0 -_0802E658: - .4byte _0802E72C - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E732 - .4byte _0802E678 - .4byte _0802E6BC - .4byte _0802E704 - .4byte _0802E6B4 -_0802E678: - ldr r0, _0802E6AC - bl PlaySound - ldr r4, _0802E6B0 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl HasNoMailinMailbox - lsls r0, 24 - cmp r0, 0 - bne _0802E6E8 - b _0802E6FC - .align 2, 0 -_0802E6AC: .4byte 0x00000133 -_0802E6B0: .4byte gUnknown_203B304 -_0802E6B4: - movs r0, 0x7 - bl SetMailboxState - b _0802E732 -_0802E6BC: - ldr r0, _0802E6F4 - bl PlaySound - ldr r4, _0802E6F8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldrb r0, [r0, 0x5] - bl sub_8096DF8 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096040 - bl sub_8096078 - bl HasNoMailinMailbox - lsls r0, 24 - cmp r0, 0 - beq _0802E6FC -_0802E6E8: - bl sub_802BEDC - movs r0, 0x1 - bl SetMailboxState - b _0802E732 - .align 2, 0 -_0802E6F4: .4byte 0x00000133 -_0802E6F8: .4byte gUnknown_203B304 -_0802E6FC: - movs r0, 0x5 - bl SetMailboxState - b _0802E732 -_0802E704: - movs r0, 0 - bl PlayMenuSoundEffect - ldr r4, _0802E728 - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8095FE8 - ldr r1, [r4] - ldrb r0, [r0, 0x5] - strb r0, [r1, 0x9] - ldr r1, [r4] - movs r0, 0x5 - str r0, [r1, 0x4] - movs r0, 0xB - bl SetMailboxState - b _0802E732 - .align 2, 0 -_0802E728: .4byte gUnknown_203B304 -_0802E72C: - movs r0, 0x5 - bl SetMailboxState -_0802E732: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802E60C - .align 2,0 diff --git a/asm/makuhita_dojo.s b/asm/makuhita_dojo.s index 3ace9ed..ef01d6d 100644 --- a/asm/makuhita_dojo.s +++ b/asm/makuhita_dojo.s @@ -194,7 +194,7 @@ _0803010C: adds r1, r0, 0 adds r0, r4, 0 movs r2, 0x6 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldr r0, _0803013C ldr r1, [r0] movs r0, 0xB diff --git a/asm/pelipper_board.s b/asm/pelipper_board.s index 433698a..20119ed 100644 --- a/asm/pelipper_board.s +++ b/asm/pelipper_board.s @@ -207,242 +207,4 @@ _0802ECAC: .4byte gUnknown_80D4990 _0802ECB0: .4byte gUnknown_80D4970 thumb_func_end sub_802EC10 - thumb_func_start sub_802ECB4 -sub_802ECB4: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - ldr r4, _0802ECF0 - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802ECE0 - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802ECE0 - ldr r0, [r4] - str r1, [r0, 0x64] -_0802ECE0: - ldr r0, [sp] - cmp r0, 0x2 - beq _0802ECFE - cmp r0, 0x2 - bgt _0802ECF4 - cmp r0, 0x1 - beq _0802ED3C - b _0802ED42 - .align 2, 0 -_0802ECF0: .4byte gUnknown_203B308 -_0802ECF4: - cmp r0, 0x3 - beq _0802ED10 - cmp r0, 0x5 - beq _0802ED34 - b _0802ED42 -_0802ECFE: - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x4 - bl SetPelipperBoardState - b _0802ED42 -_0802ED10: - bl HasNoAcceptedJobs - lsls r0, 24 - cmp r0, 0 - bne _0802ED22 - movs r0, 0x8 - bl SetPelipperBoardState - b _0802ED42 -_0802ED22: - ldr r0, _0802ED30 - ldr r0, [r0] - adds r0, 0x6C - movs r1, 0x1 - bl sub_8012EA4 - b _0802ED42 - .align 2, 0 -_0802ED30: .4byte gUnknown_203B308 -_0802ED34: - movs r0, 0x2 - bl SetPelipperBoardState - b _0802ED42 -_0802ED3C: - movs r0, 0x3 - bl SetPelipperBoardState -_0802ED42: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802ECB4 - - thumb_func_start sub_802ED4C -sub_802ED4C: - push {lr} - movs r0, 0x1 - bl sub_802C1E4 - cmp r0, 0x4 - bhi _0802EDB6 - lsls r0, 2 - ldr r1, _0802ED64 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .align 2, 0 -_0802ED64: .4byte _0802ED68 - .align 2, 0 -_0802ED68: - .4byte _0802EDB6 - .4byte _0802EDB6 - .4byte _0802EDAC - .4byte _0802ED7C - .4byte _0802ED94 -_0802ED7C: - bl sub_802C26C - ldr r1, _0802ED90 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x6 - bl SetPelipperBoardState - b _0802EDB6 - .align 2, 0 -_0802ED90: .4byte gUnknown_203B308 -_0802ED94: - bl sub_802C26C - ldr r1, _0802EDA8 - ldr r1, [r1] - strb r0, [r1, 0x8] - movs r0, 0x7 - bl SetPelipperBoardState - b _0802EDB6 - .align 2, 0 -_0802EDA8: .4byte gUnknown_203B308 -_0802EDAC: - bl sub_802C2D4 - movs r0, 0x1 - bl SetPelipperBoardState -_0802EDB6: - pop {r0} - bx r0 - thumb_func_end sub_802ED4C - - thumb_func_start sub_802EDBC -sub_802EDBC: - push {r4,lr} - sub sp, 0x4 - movs r0, 0 - str r0, [sp] - bl sub_802C1E4 - ldr r4, _0802EDFC - ldr r0, [r4] - adds r0, 0x6C - bl sub_8012FD8 - lsls r0, 24 - cmp r0, 0 - bne _0802EDEC - ldr r0, [r4] - adds r0, 0x6C - mov r1, sp - bl sub_8013114 - ldr r1, [sp] - cmp r1, 0x1 - beq _0802EDEC - ldr r0, [r4] - str r1, [r0, 0x68] -_0802EDEC: - ldr r0, [sp] - cmp r0, 0x4 - beq _0802EE06 - cmp r0, 0x4 - bgt _0802EE00 - cmp r0, 0x1 - beq _0802EE90 - b _0802EE96 - .align 2, 0 -_0802EDFC: .4byte gUnknown_203B308 -_0802EE00: - cmp r0, 0x5 - beq _0802EE88 - b _0802EE96 -_0802EE06: - ldr r0, _0802EE28 - bl PlaySound - ldr r4, _0802EE2C - ldr r0, [r4] - ldrb r0, [r0, 0x8] - bl sub_8096574 - ldrb r1, [r0] - cmp r1, 0x3 - beq _0802EE3C - cmp r1, 0x3 - bgt _0802EE30 - cmp r1, 0x2 - beq _0802EE36 - b _0802EE5E - .align 2, 0 -_0802EE28: .4byte 0x00000133 -_0802EE2C: .4byte gUnknown_203B308 -_0802EE30: - cmp r1, 0x4 - beq _0802EE42 - b _0802EE5E -_0802EE36: - ldr r0, [r4] - movs r1, 0x1 - b _0802EE46 -_0802EE3C: - ldr r0, [r4] - movs r1, 0x2 - b _0802EE46 -_0802EE42: - ldr r0, [r4] - movs r1, 0x3 -_0802EE46: - str r1, [r0, 0x4] - ldrb r0, [r0, 0x8] - bl sub_80965B8 - bl sub_80965F4 - bl sub_802C2D4 - movs r0, 0x3 - bl SetPelipperBoardState - b _0802EE96 -_0802EE5E: - bl sub_8096A78 - bl sub_8096C80 - bl sub_8096D24 - bl sub_802C4A4 - lsls r0, 24 - cmp r0, 0 - beq _0802EE80 - bl sub_802C2D4 - movs r0, 0x1 - bl SetPelipperBoardState - b _0802EE96 -_0802EE80: - movs r0, 0x5 - bl SetPelipperBoardState - b _0802EE96 -_0802EE88: - movs r0, 0x7 - bl SetPelipperBoardState - b _0802EE96 -_0802EE90: - movs r0, 0x5 - bl SetPelipperBoardState -_0802EE96: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_802EDBC - .align 2,0 diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s index 41f99c6..fc29dfb 100644 --- a/asm/pokemon_3.s +++ b/asm/pokemon_3.s @@ -1352,7 +1352,7 @@ sub_808FF20: mov r8, r2 adds r0, r5, 0x2 movs r2, 0 - bl sub_808D9AC + bl PrintColoredPokeNameToBuffer ldrh r0, [r6, 0x8] strh r0, [r5] movs r1, 0x16 diff --git a/asm/wonder_mail_2.s b/asm/wonder_mail_2.s index 5d28cd2..d8428b8 100644 --- a/asm/wonder_mail_2.s +++ b/asm/wonder_mail_2.s @@ -446,7 +446,7 @@ _0802BFE8: bl GetPlayerPokemonStruct adds r1, r0, 0 mov r0, r9 - bl sub_808DA34 + bl PrintPokeNameToBuffer ldrb r0, [r5, 0x5] bl GetPokemonMailHeadline adds r1, r0, 0 diff --git a/include/dungeon_entity.h b/include/dungeon_entity.h index 341f3d6..7b56fd8 100644 --- a/include/dungeon_entity.h +++ b/include/dungeon_entity.h @@ -13,7 +13,7 @@ struct DungeonEntityData /* 0x0 */ u16 flags; /* 0x2 */ s16 entityID; // Pokémon species or item ID. // Everything from here on only applies to Pokémon. - /* 0x4 */ u16 transformSpecies; // Shows a different Pokémon when using Transform. + /* 0x4 */ s16 transformSpecies; // Shows a different Pokémon when using Transform. /* 0x6 */ bool8 isEnemy; /* 0x7 */ bool8 isLeader; /* 0x8 */ u8 shopkeeperMode; @@ -261,16 +261,19 @@ struct DungeonEntity // The sprite index to display, among the Pokémon's possible sprites. /* 0x48 */ u16 spriteIndexForEntity; /* 0x4A */ u16 spriteIndexForEntity2; + u8 unk4C[0x50 - 0x4C]; // Some kind of base sprite index depending on which way the Pokémon is facing. // and which animation is playing (e.g., idle, moving). // Compared to 0x48, 0x50 and 0x54 are much larger and could be global indexes among all sprites in the game. /* 0x50 */ u16 spriteBaseForDirection; u8 fill52[0x54 - 0x52]; /* 0x54 */ u16 spriteGlobalIndex; - u8 fill56[0x6C - 0x56]; + u8 fill56[0x6A - 0x56]; + /* 0x6A */ u8 unk6A; + /* 0x6A */ u8 unk6B; /* 0x6C */ u8 facingDir; /* 0x6D */ u8 facingDir2; // Duplicate of 0x6C? - u8 fill6D[0x70 - 0x6D]; + u8 fill6D[0x70 - 0x6E]; /* 0x70 */ struct DungeonEntityData *entityData; }; diff --git a/include/mailbox.h b/include/mailbox.h index 1cdfa8e..579aec4 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -9,7 +9,7 @@ struct unkStruct_203B304 { // size: 0xB6 << 1 u32 state; - u32 unk4; + u32 fallbackState; u8 unk8; u8 mailIndex; u8 fillA[0xC - 0xA]; diff --git a/include/pokemon.h b/include/pokemon.h index 9f78706..912df49 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -195,6 +195,10 @@ void InitializeRecruitedPokemon(void); void CopySpeciesNametoBuffer(u8 * buffer, s16 index); void CopyYellowSpeciesNametoBuffer(u8 *buffer, s16 index); void CopyCyanSpeciesNametoBuffer(u8 *buffer, s16 index); +void PrintColoredPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum); +void PeekPokemonItem(s16 index_, struct HeldItem* item); +void GivePokemonItem(s16 index_, struct HeldItem* item); +bool8 IsPokemonRenamed(struct PokemonStruct* pokemon); u8 *GetCategoryString(s16 index); u8 GetPokemonSize(s16 index); diff --git a/ld_script.txt b/ld_script.txt index ba72330..da30c0b 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -196,6 +196,8 @@ SECTIONS { asm/code_8057144.o(.text); src/code_8057824.o(.text); asm/code_8057824.o(.text); + src/code_806CD90.o(.text); + asm/code_806CD90.o(.text); asm/code_807001C.o(.text); src/dungeon_capabilities.o(.text); asm/code_8070BC0.o(.text); diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 03183ae..3f00c22 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -35,7 +35,7 @@ extern void sub_8094060(void *, struct PokemonMove *); extern void PlaySound(u32); extern void sub_80141B4(u32 *, u32, u32 ,u32); extern void sub_8014248(u32 *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32); -extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon); +extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon); extern s32 sub_80144A4(s32 *); extern u32 sub_801E8C0(void); extern void sub_801E93C(void); @@ -163,7 +163,7 @@ void sub_801B178(void) for(monIndex = 0; monIndex < gUnknown_203B22C->monsAbleToLearnMove; monIndex++) { bufferPtr = gAvailablePokemonNames + (0x50 * monIndex); - sub_808DA34(bufferPtr, &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->unk50[monIndex]]); + PrintPokeNameToBuffer(bufferPtr, &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->unk50[monIndex]]); gUnknown_203B22C->menuItems[monIndex].text = bufferPtr; gUnknown_203B22C->menuItems[monIndex].menuAction = monIndex + 4; } @@ -188,7 +188,7 @@ void sub_801B200(void) default: gUnknown_203B22C->chosenPokemon = gUnknown_203B22C->unk50[temp - 4]; gUnknown_203B22C->pokeStruct = &gRecruitedPokemonRef->pokemon[gUnknown_203B22C->chosenPokemon]; - sub_808DA34(gUnknown_202E218, gUnknown_203B22C->pokeStruct); + PrintPokeNameToBuffer(gUnknown_202E218, gUnknown_203B22C->pokeStruct); sub_809401C(gUnknown_203B22C->moves, gUnknown_203B22C->pokeStruct->moves); for(moveIndex = 0; moveIndex < MAX_MON_MOVES * 2; moveIndex++) { diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 19f2f7f..7dde248 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -1,8 +1,11 @@ #include "global.h" +#include "constants/colors.h" #include "text.h" #include "input.h" -#include "memory.h" #include "item.h" +#include "memory.h" +#include "menu.h" +#include "pokemon.h" #include "team_inventory.h" struct subStruct_203B240 @@ -30,9 +33,54 @@ struct unkStruct_203B230 }; extern struct unkStruct_203B230 *gUnknown_203B230; +struct unkStruct_203B234 +{ + // size: 0x154 + u32 unk0; + u32 state; + u32 unk8; + u8 unkC; + u8 fillD[0x10 - 0xD]; + struct ItemSlot unk10; + struct unkStruct_8090F58 unk14; + struct ItemSlot unk20; + u32 unk24; + u32 unk28; + u8 fill2C[0x78 - 0x2C]; + u32 unk78; + u8 fill7C[0xC8 - 0x7C]; + u32 unkC8; + struct MenuItem unkCC[5]; + struct UnkTextStruct2 unkF4[4]; +}; + +extern struct unkStruct_203B234 *gUnknown_203B234; + +extern u8 gUnknown_202DE58[]; extern u8 gAvailablePokemonNames[0x58]; extern u8 gUnknown_80DBA4C[]; +extern u8 gUnknown_80DBB9C[]; +extern u8 gUnknown_80DBD24[]; +extern u8 gUnknown_80DBCE8[]; +extern u8 gUnknown_80DBCC4[]; +extern u8 gUnknown_80DBC98[]; +extern u8 gUnknown_80DBC60[]; +extern u8 gUnknown_80DBC28[]; +extern u8 gUnknown_80DBB9C[]; +extern u8 gUnknown_80DBAA0[]; +extern u8 gUnknown_80DBAD0[]; +extern u8 gUnknown_80DBB08[]; +extern u8 gUnknown_80DBB38[]; +extern u8 gKangaskhanTrashToolboxItem[]; +extern u8 gKangaskhanTrashReceivedItem[]; +extern struct UnkTextStruct2 gUnknown_80DBA58; +extern struct UnkTextStruct2 gUnknown_80DBA88; +extern struct UnkTextStruct2 gUnknown_80DBA70; +extern void sub_801BB5C(void); +extern void sub_8012CAC(struct UnkTextStruct2 *, struct MenuItem *); +extern struct PokemonStruct *GetPlayerPokemonStruct(void); +extern void sub_801B748(u32); extern void sub_8008C54(u32); extern void sub_80073E0(u32); extern void sub_80073B8(u32); @@ -41,11 +89,32 @@ extern void PlayMenuSoundEffect(u32); extern void sub_8013F84(void); extern u32 sub_8012A64(u32 *, u32); extern s32 sub_80913E0(struct ItemSlot *, u32, struct subStruct_203B240 **); - +extern void sub_80141B4(u8 *, u32, u32 *, u32); +extern void sub_8012EA4(u32 *, u32); +extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32); +extern void sub_801BB20(void); +extern void sub_801A8D0(u32); +extern void sub_801A9E0(void); +extern void sub_801BC24(void); +extern void sub_801A5D8(u32, u32, u32, u32); +extern void sub_8014248(const char *, u32, u32, struct MenuItem *, u32, u32, u32, u32, u32); extern void sub_801317C(u32 *); extern void sub_80140B4(struct UnkTextStruct2 *); extern void sub_801B46C(u32); extern void ResetSprites(u32); +extern void sub_801BC64(void); +extern void sub_801BC94(void); +extern void sub_801BCCC(void); +extern void sub_801BD80(void); +extern void sub_801BEAC(void); +extern void sub_801BE30(void); +extern void sub_801BEC8(void); +extern void sub_801B760(void); +extern void sub_801B874(void); +extern u32 sub_8001784(u32, u32, u32); +extern void sub_800199C(u32, u32, u32, u32); +extern void PlaySound(u32); +extern s32 sub_808D544(u32); void sub_801B51C(); void sub_801B590(); @@ -181,3 +250,271 @@ void sub_801B590(void) break; } } + +u32 sub_801B60C(u32 r0, u8 itemIndex, u8 numItems) +{ + gUnknown_203B234 = MemoryAlloc(0x154, 8); + gUnknown_203B234->unkC8 = 0; + gUnknown_203B234->unk0 = r0; + gUnknown_203B234->unk10.itemIndex = itemIndex; + if(IsThrowableItem(gUnknown_203B234->unk10.itemIndex)) + { + gUnknown_203B234->unk10.numItems = numItems; + gUnknown_203B234->unkC = numItems; + } + else + { + gUnknown_203B234->unk10.numItems = 0; + gUnknown_203B234->unkC = 1; + } + gUnknown_203B234->unk10.itemFlags = ITEM_FLAG_EXISTS; + gUnknown_203B234->unk14.unk0 = 0; + gUnknown_203B234->unk14.unk4 = 0; + gUnknown_203B234->unk14.unk8 = 1; + PrintColoredPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct(), COLOR_YELLOW); + sub_8090E14(gUnknown_202DE58, &gUnknown_203B234->unk10, &gUnknown_203B234->unk14); + sub_801B748(0); + return 1; +} + +u32 sub_801B6AC(void) +{ + switch(gUnknown_203B234->state) + { + case 16: + return 3; + case 6: + sub_801BC64(); + break; + case 7: + sub_801BC94(); + break; + case 8: + case 9: + sub_801BCCC(); + break; + case 10: + sub_801BD80(); + break; + case 11: + sub_801BEAC(); + break; + case 12: + sub_801BE30(); + break; + case 13: + case 14: + case 15: + default: + sub_801BEC8(); + break; + + } + return 0; +} + +void sub_801B72C(void) +{ + if(gUnknown_203B234 != NULL) + { + MemoryFree(gUnknown_203B234); + gUnknown_203B234 = NULL; + } +} + +void sub_801B748(u32 newState) +{ + gUnknown_203B234->state = newState; + sub_801B760(); + sub_801B874(); +} + +void sub_801B760(void) +{ + s32 iVar4; + switch(gUnknown_203B234->state) + { + case 1: + case 6: + case 7: + case 8: + case 9: + case 11: + case 13: + case 14: + case 15: + sub_8006518(gUnknown_203B234->unkF4); + for(iVar4 = 0; iVar4 < 4; iVar4++) + { + gUnknown_203B234->unkF4[iVar4] = gUnknown_80DBA58; + } + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B234->unkF4, 1, 1); + break; + case 10: + sub_8006518(gUnknown_203B234->unkF4); + sub_801BB5C(); + gUnknown_203B234->unkF4[2] = gUnknown_80DBA70; + sub_8012CAC(&gUnknown_203B234->unkF4[2], gUnknown_203B234->unkCC); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B234->unkF4, 1, 1); + break; + case 12: + sub_8006518(gUnknown_203B234->unkF4); + gUnknown_203B234->unkF4[1] = gUnknown_80DBA88; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B234->unkF4, 1, 1); + break; + } +} + +void sub_801B874(void) +{ + + switch(gUnknown_203B234->state) + { + case 0: + if (gUnknown_203B234->unk10.itemIndex == ITEM_ID_WEAVILE_FIG) { + gUnknown_203B234->unk8 = 0x10; + if(sub_8001784(0,0x47,1) != 0) + { + AddToTeamMoney(1000); + sub_801B748(4); + } + else + { + sub_800199C(0, 0x47, 1, 1); + sub_801B748(3); + } + } + else if (gUnknown_203B234->unk10.itemIndex == ITEM_ID_MIME_JR_FIG) + { + gUnknown_203B234->unk8 = 0x10; + if(sub_8001784(0, 0x47, 0) != 0) + { + AddToTeamMoney(1000); + sub_801B748(4); + } + else + { + sub_800199C(0, 0x47, 0, 1); + sub_801B748(3); + } + } + else + { + if(GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) + { + if(IsNotMoneyOrUsedTMItem(gUnknown_203B234->unk10.itemIndex)) + { + if((gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.itemIndex] + gUnknown_203B234->unkC) > 0x3e7) + { + store: + gUnknown_203B234->unk8 = 6; + } + else + { + gTeamInventory_203B460->teamStorage[gUnknown_203B234->unk10.itemIndex] += gUnknown_203B234->unkC; + PlaySound(0xCB); + gUnknown_203B234->unk8 = 5; + } + } + else + { + goto store; + } + } + else + { + AddItemToInventory(&gUnknown_203B234->unk10); + FillInventoryGaps(); + PlaySound(0xCB); + gUnknown_203B234->unk8 = 0x10; + } + if(gUnknown_203B234->unk0 == 1) + sub_801B748(2); + else + sub_801B748(1); + } + break; + case 1: + if (sub_808D544(0) < 2) { + sub_80141B4(gUnknown_80DBAA0,0,0,0x101); + } + else { + sub_80141B4(gUnknown_80DBAD0,0,0,0x101); + } + break; + case 2: + sub_80141B4(gUnknown_80DBB08,0,0,0x101); + break; + case 3: + PlaySound(0xd4); + sub_80141B4(gUnknown_80DBB38,0,0,0x101); + break; + case 4: + sub_80141B4(gUnknown_80DBB9C,0,0,0x101); + break; + case 5: + gUnknown_203B234->unk8 = 0x10; + sub_80141B4(gUnknown_80DBC28,0,0,0x101); + break; + case 6: + sub_801BB20(); + sub_8014248(gUnknown_80DBC60,0,4,gUnknown_203B234->unkCC, + 0,4,0,0,0); + break; + case 7: + sub_801BC24(); + sub_8014248(gUnknown_80DBC98,0,3,gUnknown_203B234->unkCC,0,4,0,0,0); + break; + case 8: + sub_801A5D8(1,3,0,10); + break; + case 9: + sub_801A8D0(1); + break; + case 10: + sub_801A9E0(); + sub_8012D60(&gUnknown_203B234->unk28,gUnknown_203B234->unkCC,0,0,gUnknown_203B234->unkC8,2); + break; + case 0xb: + sub_801B3C0(&gUnknown_203B234->unk20); + break; + case 0xc: + sub_801A9E0(); + sub_8012EA4(&gUnknown_203B234->unk28,0); + sub_801BC24(); + sub_8012D60(&gUnknown_203B234->unk78,gUnknown_203B234->unkCC,0,0,3,1); + break; + case 0xd: + gUnknown_203B234->unk8 = 0x10; + sub_80141B4(gUnknown_80DBCC4,0,0,0x101); + break; + case 0xe: + gUnknown_203B234->unk8 = 0x10; + sub_80141B4(gUnknown_80DBCE8,0,0,0x101); + break; + case 0xf: + gUnknown_203B234->unk8 = 0x10; + sub_80141B4(gUnknown_80DBD24,0,0,0x101); + break; + case 0x10: + break; + } +} + +void sub_801BB20(void) +{ + struct unkStruct_203B234 *preload; + u8 *nullText; + + preload = gUnknown_203B234; + nullText = NULL; + preload->unkCC[0].text = gKangaskhanTrashToolboxItem; + preload->unkCC[0].menuAction = 4; + preload->unkCC[1].text = gKangaskhanTrashReceivedItem; + preload->unkCC[1].menuAction = 5; + preload->unkCC[2].text = nullText; + preload->unkCC[2].menuAction = -1; +} diff --git a/src/code_8041AD0.c b/src/code_8041AD0.c index f711b92..70b063c 100644 --- a/src/code_8041AD0.c +++ b/src/code_8041AD0.c @@ -1,6 +1,7 @@ #include "global.h" #include "dungeon_entity.h" #include "dungeon_global_data.h" +#include "constants/direction.h" struct unkStruct_80420E8 { @@ -147,7 +148,7 @@ void sub_8041BE8(struct DungeonEntity *r0) void sub_8041BF8(struct DungeonEntity *r0) { - sub_806CDD4(r0, 0xA, 8); + sub_806CDD4(r0, 0xA, NUM_DIRECTIONS); } void sub_8041C08(struct DungeonEntity *r0) diff --git a/src/code_80521D0_1.c b/src/code_80521D0_1.c index 04e70a9..a5cd497 100644 --- a/src/code_80521D0_1.c +++ b/src/code_80521D0_1.c @@ -6,7 +6,7 @@ #include "pokemon.h" #include "constants/direction.h" -extern struct DungeonEntity *sub_8085480(void); +extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); extern struct DungeonEntity *sub_8085680(u32); extern char gUnknown_202E038[0x50]; extern struct DungeonGlobalData *gDungeonGlobalData; @@ -90,8 +90,7 @@ extern void sub_806CE68(struct DungeonEntity *, u32); extern void sub_804539C(struct DungeonEntity *, u32, u32); extern void sub_803E46C(u32); extern void sub_8042B0C(struct DungeonEntity *); -extern void sub_8085918(struct DungeonEntity *, u32); -extern void sub_806CE68(struct DungeonEntity *r0, u32); +extern void SetFacingDirection(struct DungeonEntity *, u32); extern void sub_8052910(u32 *); extern void sub_803E708(u32, u32); extern u8 EntityExists(struct DungeonEntity *); @@ -185,7 +184,7 @@ void sub_808BC20(struct DungeonEntity * param_1) PlaySoundEffect(0x298); for(uVar1 = 0; uVar1 < 0x19; uVar1++){ - sub_8085918(param_1,uVar1 & 7); + SetFacingDirection(param_1,uVar1 & DIRECTION_MASK); sub_803E708(3,0x46); } param_1->entityData->unk15E = 1; @@ -278,24 +277,24 @@ u8 JirachiFriendAreaSearch(void) void sub_808BDEC(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LugiaEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x1b); + LeaderEntity = xxx_call_GetLeaderEntity(); + LugiaEntity = sub_8085680(0x1b); sub_8083F14(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); if (HasRecruitedMon(SPECIES_LUGIA)) { sub_8083E88(0x23); - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(LugiaEntity,0x21c,0); } else { gDungeonGlobalData->unk7 = 1; - sub_8085918(uVar3,0); + SetFacingDirection(LugiaEntity, DIRECTION_SOUTH); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_LUGIA); } @@ -309,11 +308,11 @@ void sub_808BE70(u8 param_1,u8 param_2) void LugiaPreFightDialogue(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LugiaEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x1b); + LeaderEntity = xxx_call_GetLeaderEntity(); + LugiaEntity = sub_8085680(0x1b); if (HasRecruitedMon(SPECIES_LUGIA)) { sub_8086448(); sub_80866C4(&gUnknown_8106068); @@ -330,21 +329,21 @@ void LugiaPreFightDialogue(void) sub_803E708(10,0x46); sub_8052910(&gUnknown_8105F74); PlaySoundEffect(0x1f8); - sub_80861D4(uVar3,0xd,0); + sub_80861D4(LugiaEntity,0xd,0); sub_803E708(0x2b,0x46); - sub_80861B8(uVar3,0,0); + sub_80861B8(LugiaEntity,0,0); sub_8052910(&gUnknown_8105FA0); sub_808BFA0(); sub_8052910(&gUnknown_8105FD8); sub_808C02C(); sub_8085C54(0xffffff06,0xffffff06,0xffffff06,1,0); sub_8083F14(); - sub_80861D4(uVar3,7,0); + sub_80861D4(LugiaEntity,7,0); sub_8052910(&gUnknown_8106024); sub_808BFA0(); - SetupBossFightHP(uVar3,800,0x20); + SetupBossFightHP(LugiaEntity,800,0x20); sub_8083E88(0x23); - sub_80858AC(&iVar2->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -415,25 +414,25 @@ void sub_808C0CC(void) void sub_808C10C(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * KyogreEntity; u32 uVar3; s32 iVar2; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x1c); + LeaderEntity = xxx_call_GetLeaderEntity(); + KyogreEntity = sub_8085680(0x1c); sub_8083F14(); sub_80854D4(); sub_8085930(4); if (HasRecruitedMon(SPECIES_KYOGRE)) { - sub_8068FE0(uVar2,0x21c,0); + sub_8068FE0(KyogreEntity,0x21c,0); } else { gDungeonGlobalData->unk7 = 1; - sub_8085918(uVar2,0); + SetFacingDirection(KyogreEntity, DIRECTION_SOUTH); } - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); uVar3 = sub_803F994(); iVar2 = sub_803F9B0(); sub_803F878(uVar3,iVar2 + -0x1000); @@ -452,15 +451,15 @@ void sub_808C1A4(u8 param_1,u8 param_2) void KyogrePreFightDialogue(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *KyogreEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x1c); + LeaderEntity = xxx_call_GetLeaderEntity(); + KyogreEntity = sub_8085680(0x1c); sub_8083F14(); if (HasRecruitedMon(SPECIES_KYOGRE)) { sub_8083EA8(0x23,0x3c); - SpriteLookAroundEffect(iVar2); + SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); sub_8052910(&gUnknown_81062A8); sub_803E708(10,0x46); @@ -492,9 +491,9 @@ void KyogrePreFightDialogue(void) // power! sub_8052910(&gUnknown_810627C); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,600,0xb); + SetupBossFightHP(KyogreEntity,600,0xb); sub_8083E88(0x23); - sub_80858AC(&iVar2->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -537,9 +536,9 @@ void sub_808C360(void) void sub_808C3A0(void) { - struct DungeonEntity * iVar2; + struct DungeonEntity * LeaderEntity; - iVar2 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8083F14(); sub_80854D4(); sub_8085930(4); @@ -551,7 +550,7 @@ void sub_808C3A0(void) gDungeonGlobalData->unk7 = 1; sub_808563C(sub_808C5A0); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_DEOXYS_NORMAL); } @@ -565,9 +564,9 @@ void sub_808C414(u8 param_1,u8 param_2) void DeoxysPreFightDialogue(void) { - struct DungeonEntity * iVar2; + struct DungeonEntity * LeaderEntity; - iVar2 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8086448(); if (HasRecruitedMon(SPECIES_DEOXYS_NORMAL)) { // There appears to be no one here. @@ -585,7 +584,7 @@ void DeoxysPreFightDialogue(void) sub_8052910(&gUnknown_8106390); sub_803E708(10,0x46); sub_808563C(sub_808C5AC); - sub_80858AC(&iVar2->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -629,29 +628,29 @@ void sub_808C590(struct DungeonEntity *r0) void sub_808C5A0(struct DungeonEntity *r0) { - sub_8085918(r0, 0); + SetFacingDirection(r0, DIRECTION_SOUTH); } void sub_808C5AC(struct DungeonEntity *r0) { - SetupBossFightHP(r0, 0x3b6, 0x20); + SetupBossFightHP(r0, 950, 0x20); } void sub_808C5C0(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * CelebiEntity; u32 uVar3; s32 iVar2; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x1e); + LeaderEntity = xxx_call_GetLeaderEntity(); + CelebiEntity = sub_8085680(0x1e); sub_8083E88(0x7f); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar2,0); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + SetFacingDirection(CelebiEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); uVar3 = sub_803F994(); iVar2 = sub_803F9B0(); sub_803F878(uVar3,iVar2 + 0xfffff000); @@ -666,26 +665,26 @@ void nullsub_100(u32 r0, u32 r1, u32 r2) #ifdef NONMATCHING void CelebiJoinDialogue(void) { - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; s32 state; s32 menuChoice; - struct DungeonEntity *local_1c; + struct DungeonEntity *CelebiEntity; - uVar2 = sub_8085480(); - local_1c = sub_8085680(0x1e); - if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(local_1c) == '\0')) + LeaderEntity = xxx_call_GetLeaderEntity(); + CelebiEntity = sub_8085680(0x1e); + if ((HasRecruitedMon(SPECIES_CELEBI)) || (sub_806FD18(CelebiEntity) == '\0')) { sub_8068FE0(local_1c,0x21c,0); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); // ......... sub_8052910(&gUnknown_810663C); } else { - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); - sub_80862BC(uVar2); + sub_80862BC(LeaderEntity); sub_803E708(10,0x46); // Oh? There's someone there. sub_8052910(&gUnknown_81063D0); @@ -697,12 +696,12 @@ void CelebiJoinDialogue(void) // The Time-Traveling Pokemon {ARG_POKEMON_2} (Celebi)! sub_8052910(&gUnknown_8106400); PlaySoundEffect(0x1c7); - sub_806CDD4(local_1c,10,0); + sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH); sub_803E708(0x14,0x46); - sub_806CE68(local_1c,0); + sub_806CE68(CelebiEntity, DIRECTION_SOUTH); sub_803E708(4,0x46); PlaySoundEffect(0x1c7); - sub_806CDD4(local_1c,10,0); + sub_806CDD4(CelebiEntity,10,DIRECTION_SOUTH); sub_8052910(&gUnknown_810643C); sub_803E708(10,0x46); state = 0; @@ -725,7 +724,7 @@ void CelebiJoinDialogue(void) } sub_8083E88(0x7f); PlaySoundEffect(0x1c7); - sub_80861D4(local_1c,0xd,0); + sub_80861D4(CelebiEntity,0xd,0); sub_803E708(0x37,0x46); PlaySoundEffect(0x1d5); sub_803E708(0x1a,0x46); @@ -733,12 +732,12 @@ void CelebiJoinDialogue(void) sub_803E708(0x1c,0x46); sub_8052910(&gUnknown_8106468); sub_803E708(10,0x46); - sub_806FDF4(uVar2,local_1c,&local_1c); + sub_806FDF4(LeaderEntity,CelebiEntity,&CelebiEntity); sub_8083E88(0x7f); sub_8052910(&gUnknown_810648C); sub_803E708(10,0x46); PlaySoundEffect(0x1c7); - sub_80861D4(local_1c,0xd,0); + sub_80861D4(CelebiEntity,0xd,0); sub_803E708(0x37,0x46); PlaySoundEffect(0x1d5); sub_803E708(0x1a,0x46); @@ -765,13 +764,13 @@ void CelebiJoinDialogue(void) { sub_803E708(10,0x46); sub_8052910(&gUnknown_8106500); - sub_80861F8(0x3e,local_1c,1); + sub_80861F8(0x3e,CelebiEntity,1); sub_803E708(0x18,0x46); - sub_80861F8(0x3e,local_1c,1); + sub_80861F8(0x3e,CelebiEntity,1); sub_803E708(0xe,0x46); sub_8052910(&gUnknown_8106534); sub_803E708(10,0x46); - sub_808C8E0(local_1c); + sub_808C8E0(CelebiEntity); sub_8052910(&gUnknown_8106560); sub_803E708(10,0x46); state = 2; @@ -793,7 +792,7 @@ void CelebiJoinDialogue(void) "\tmov r7, r8\n" "\tpush {r7}\n" "\tsub sp, 0x4\n" - "\tbl sub_8085480\n" + "\tbl xxx_call_GetLeaderEntity\n" "\tadds r7, r0, 0\n" "\tmovs r0, 0x1E\n" "\tbl sub_8085680\n" @@ -1075,7 +1074,7 @@ void sub_808C8E0(struct DungeonEntity *param_1) s32 iVar1; PlaySoundEffect(0x1a5); - sub_806CDD4(param_1, 0, 0); + sub_806CDD4(param_1, 0, DIRECTION_SOUTH); for(iVar1 = 0; iVar1 < 16; iVar1++){ param_1->entityData->unk174 = iVar1 * 256; sub_803E46C(0x46); @@ -1100,7 +1099,7 @@ void sub_808C948(struct DungeonEntity *param_1, u8 param_2) if (param_2 == 0x37) { flag = FALSE; - for(iVar3 = 0; iVar3 < 0x10; iVar3++){ + for(iVar3 = 0; iVar3 < DUNGEON_MAX_WILD_POKEMON; iVar3++){ iVar2 = gDungeonGlobalData->wildPokemon[iVar3]; if ((iVar2 != param_1) && (EntityExists(iVar2) != 0)) { flag = TRUE; @@ -1124,38 +1123,38 @@ void sub_808C998(void) void sub_808C9B0(struct DungeonEntity *param_1) { param_1->entityData->facingDir = DIRECTION_NORTH; - sub_806CE68(param_1, 4); + sub_806CE68(param_1, DIRECTION_NORTH); } void sub_808C9C4(void) { - struct DungeonEntity *temp; - struct DungeonEntity *temp_2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MedichamEntity; - temp = sub_8085480(); - temp_2 = sub_8085680(7); + LeaderEntity = xxx_call_GetLeaderEntity(); + MedichamEntity = sub_8085680(7); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(temp_2, 0); - sub_8085860(temp->posWorldX, temp->posWorldY - 3); + SetFacingDirection(MedichamEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MEDICHAM); } // Medicham Rescue Dialogue? void MedichamRescueDialogue(void) { - struct DungeonEntity *temp; + struct DungeonEntity *MedichamEntity; s32 counter; - temp = sub_8085680(7); - SpriteLookAroundEffect(temp); + MedichamEntity = sub_8085680(7); + SpriteLookAroundEffect(MedichamEntity); sub_803E708(0xA, 0x46); // Oh my I can't seem to find a way out... sub_8052910(&gUnknown_8106778); sub_803E708(0xA, 0x46); - sub_80869E4(temp, 4, 2, 4); + sub_80869E4(MedichamEntity, 4, 2, 4); sub_803E708(0xA, 0x46); // What am I to do...? sub_8052910(&gUnknown_81067BC); @@ -1163,18 +1162,18 @@ void MedichamRescueDialogue(void) sub_8086448(); sub_8086598(); sub_803E708(0x20, 0x46); - sub_80862BC(temp); + sub_80862BC(MedichamEntity); sub_803E708(0x20, 0x46); - sub_80869E4(temp, 4, 2, 0); + sub_80869E4(MedichamEntity, 4, 2, 0); sub_8052910(&gUnknown_81067E0); sub_803E708(0xA, 0x46); PlaySoundEffect(0x1c7); - sub_806CDD4(temp, 0xA, 0); + sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH); sub_803E708(0x14, 0x46); - sub_806CE68(temp, 0); + sub_806CE68(MedichamEntity, DIRECTION_SOUTH); sub_803E708(0x4, 0x46); PlaySoundEffect(0x1c7); - sub_806CDD4(temp, 0xA, 0); + sub_806CDD4(MedichamEntity, 0xA, DIRECTION_SOUTH); sub_803E708(0x14, 0x46); // Yes Yes // I am so lucky @@ -1182,32 +1181,32 @@ void MedichamRescueDialogue(void) // There appears to be no one here sub_8052910(&gUnknown_8106834); sub_803E708(0xA, 0x46); - sub_806CDD4(temp, 0, 0); + sub_806CDD4(MedichamEntity, 0, DIRECTION_SOUTH); for(counter = 0x17; counter >= 0; counter--) { - sub_804539C(temp, 0, 0x80 << 1); + sub_804539C(MedichamEntity, 0, 0x80 << 1); sub_803E46C(0x46); } - sub_806CE68(temp, 0); + sub_806CE68(MedichamEntity, DIRECTION_SOUTH); sub_803E708(0x20, 0x46); - sub_8042B0C(temp); - sub_8068FE0(temp, 0x21C, 0); + sub_8042B0C(MedichamEntity); + sub_8068FE0(MedichamEntity, 0x21C, 0); gDungeonGlobalData->unk4 = 1; gDungeonGlobalData->unk11 = 4; } void sub_808CB5C(void) { - struct DungeonEntity *temp; - struct DungeonEntity *temp_2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MedichamEntity; - temp = sub_8085480(); - temp_2 = sub_8085680(7); + LeaderEntity = xxx_call_GetLeaderEntity(); + MedichamEntity = sub_8085680(7); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); - sub_8068FE0(temp_2, 0x21C, 0); - sub_8085860(temp->posWorldX, temp->posWorldY); + sub_8068FE0(MedichamEntity, 0x21C, 0); + sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MEDICHAM); } @@ -1217,34 +1216,34 @@ void DummyFightDialogue(void) void sub_808CBB0(void) { - struct DungeonEntity *temp; - struct DungeonEntity *temp_2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *SmeargleEntity; - temp = sub_8085480(); - temp_2 = sub_8085680(0x1F); + LeaderEntity = xxx_call_GetLeaderEntity(); + SmeargleEntity = sub_8085680(0x1F); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(temp_2, 0); - sub_8085860(temp->posWorldX, temp->posWorldY - 3); + SetFacingDirection(SmeargleEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SMEARGLE); } // Smeargle Rescue dialogue scene void SmeargleRescueDialogue(void) { - struct DungeonEntity *temp; + struct DungeonEntity *SmeargleEntity; s32 counter; - temp = sub_8085680(0x1F); - SpriteLookAroundEffect(temp); + SmeargleEntity = sub_8085680(0x1F); + SpriteLookAroundEffect(SmeargleEntity); sub_803E708(0xA, 0x46); // Ohhh... // I've lost my bearings sub_8052910(&gUnknown_810688C); sub_803E708(0xA, 0x46); - sub_80869E4(temp, 4, 2, 4); + sub_80869E4(SmeargleEntity, 4, 2, 4); sub_803E708(0xA, 0x46); // I can't get out... // I'm hungry... @@ -1254,34 +1253,34 @@ void SmeargleRescueDialogue(void) sub_8086448(); sub_8086598(); sub_803E708(0x20, 0x46); - sub_80862BC(temp); + sub_80862BC(SmeargleEntity); sub_803E708(0x20, 0x46); - sub_80869E4(temp, 4, 2, 0); + sub_80869E4(SmeargleEntity, 4, 2, 0); // Oh! You are? sub_8052910(&gUnknown_8106918); sub_803E708(0xA, 0x46); PlaySoundEffect(0x1c7); - sub_806CDD4(temp, 0xA, 0); + sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH); sub_803E708(0x14, 0x46); - sub_806CE68(temp, 0); + sub_806CE68(SmeargleEntity, DIRECTION_SOUTH); sub_803E708(0x4, 0x46); PlaySoundEffect(0x1c7); - sub_806CDD4(temp, 0xA, 0); + sub_806CDD4(SmeargleEntity, 0xA, DIRECTION_SOUTH); sub_803E708(0x14, 0x46); // Did you maybe come to rescue me? // Am I glad to see you sub_8052910(&gUnknown_8106934); sub_803E708(0xA, 0x46); - sub_806CDD4(temp, 0, 0); + sub_806CDD4(SmeargleEntity, 0, DIRECTION_SOUTH); for(counter = 0x17; counter >= 0; counter--) { - sub_804539C(temp, 0, 0x80 << 1); + sub_804539C(SmeargleEntity, 0, 0x80 << 1); sub_803E46C(0x46); } - sub_806CE68(temp, 0); + sub_806CE68(SmeargleEntity, DIRECTION_SOUTH); sub_803E708(0x20, 0x46); - sub_8042B0C(temp); - sub_8068FE0(temp, 0x21C, 0); + sub_8042B0C(SmeargleEntity); + sub_8068FE0(SmeargleEntity, 0x21C, 0); gDungeonGlobalData->unk4 = 1; gDungeonGlobalData->unk11 = 4; @@ -1289,17 +1288,17 @@ void SmeargleRescueDialogue(void) void sub_808CD44(void) { - struct DungeonEntity *temp; - struct DungeonEntity *temp_2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *SmeargleEntity; - temp = sub_8085480(); - temp_2 = sub_8085680(0x1F); + LeaderEntity = xxx_call_GetLeaderEntity(); + SmeargleEntity = sub_8085680(0x1F); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8068FE0(temp_2, 0x21C, 0); - sub_8085860(temp->posWorldX, temp->posWorldY - 3); + sub_8068FE0(SmeargleEntity, 0x21C, 0); + sub_8085860(LeaderEntity->posWorldX, LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SMEARGLE); } diff --git a/src/code_8057824_1.c b/src/code_8057824_1.c index b29e46e..502e8ee 100644 --- a/src/code_8057824_1.c +++ b/src/code_8057824_1.c @@ -219,7 +219,7 @@ extern u32 gUnknown_81019E4; extern u32 gUnknown_8101A04; extern u32 gUnknown_8101A38; -extern struct DungeonEntity *sub_8085480(void); +extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); extern struct DungeonEntity *sub_8085680(u32); extern void sub_808BBA8(struct DungeonEntity * ); extern void sub_80855E4(void *); @@ -233,7 +233,7 @@ extern void sub_808BC20(struct DungeonEntity *); extern void sub_80862BC(struct DungeonEntity *); extern void sub_8086448(); -extern void SpriteLookAroundEffect(); +extern void SpriteLookAroundEffect(struct DungeonEntity *); extern u32 sub_80861F8(u32, struct DungeonEntity *, u32); extern void SetupBossFightHP(struct DungeonEntity *, u32, u32); extern void sub_80858AC(u32 *, u32); @@ -247,7 +247,7 @@ extern u8 HasRecruitedMon(u32); extern void sub_80854D4(); extern void sub_8085930(u32); extern void sub_8068FE0(struct DungeonEntity *, u32, u32); -extern void sub_8085918(struct DungeonEntity *, u32); +extern void SetFacingDirection(struct DungeonEntity *, u32); extern void sub_8049ED4(); extern void sub_8085860(s32 r0, u32 r1); extern void sub_806CE68(struct DungeonEntity *, u32); @@ -310,7 +310,7 @@ void sub_80891B0(); void sub_8089224(); void sub_80891D0(); void sub_808919C(); -void sub_8088D30(void); +void GroudonScreenFlash2(void); extern void sub_8083F14(); extern u8 EntityExists(struct DungeonEntity *); @@ -318,7 +318,7 @@ extern u8 sub_8086AE4(u32); extern void sub_8072008(struct DungeonEntity *, struct DungeonEntity *, s16, u32, u32); -extern struct DungeonEntity *sub_808548C(); +extern struct DungeonEntity *GetPartnerEntity(); extern void sub_80856E0(struct DungeonEntity *, u32); extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32); extern void sub_804539C(struct DungeonEntity *, u32, u32); @@ -336,8 +336,8 @@ extern u32 sub_803F994(); extern s32 sub_803F9B0(); extern void sub_803F878(u32,s32); -void sub_8088C08(struct DungeonEntity * param_1); -void sub_8088CA0(void); +void SceneGroudonMovement(struct DungeonEntity * param_1); +void GroudonScreenFlash(void); void ArticunoScreenFlash(void); void sub_8088484(struct DungeonEntity *param_1); void sub_8088574(void); @@ -368,11 +368,11 @@ extern u32 gUnknown_8101918; void ZapdosReFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *ZapdosEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(8); + LeaderEntity = xxx_call_GetLeaderEntity(); + ZapdosEntity = sub_8085680(8); sub_8086448(); sub_803E708(10,0x46); sub_8052910(&gUnknown_81017E4); @@ -380,24 +380,24 @@ void ZapdosReFightDialogue(void) PlaySoundEffect(0x1da); sub_8052910(&gUnknown_81015A0); sub_803E708(10,0x46); - sub_8087704(uVar2); + sub_8087704(ZapdosEntity); sub_803E708(10,0x46); sub_8052910(&gUnknown_8101898); sub_808775C(1); sub_8052910(&gUnknown_81018EC); sub_808775C(2); sub_8052910(&gUnknown_8101918); - SetupBossFightHP(uVar2,300,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(ZapdosEntity,300,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void ZapdosPostStoryPreFightDialogue(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * ZapdosEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(8); + LeaderEntity = xxx_call_GetLeaderEntity(); + ZapdosEntity = sub_8085680(8); sub_8086448(); if (sub_8086AE4(SPECIES_ZAPDOS)) { sub_80866C4(&gUnknown_8101A38); @@ -406,7 +406,7 @@ void ZapdosPostStoryPreFightDialogue(void) sub_808775C(1); PlaySoundEffect(0x1da); sub_8052910(&gUnknown_810193C); - sub_8087704(uVar3); + sub_8087704(ZapdosEntity); sub_8052910(&gUnknown_8101970); sub_808775C(1); sub_8052910(&gUnknown_8101994); @@ -415,8 +415,8 @@ void ZapdosPostStoryPreFightDialogue(void) sub_808775C(2); sub_8052910(&gUnknown_8101A04); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,300,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(ZapdosEntity,300,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -473,45 +473,45 @@ void sub_808775C(int param_1) void sub_80877E8(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * MoltresEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(9); + LeaderEntity = xxx_call_GetLeaderEntity(); + MoltresEntity = sub_8085680(9); sub_8083E88(0x26); sub_8085374(); sub_80854D4(); sub_8085930(6); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX + -3,iVar1->posWorldY + -2); + SetFacingDirection(MoltresEntity, DIRECTION_SOUTH); + sub_8086A3C(MoltresEntity); + sub_8085860(LeaderEntity->posWorldX + -3,LeaderEntity->posWorldY + -2); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_MOLTRES); } void sub_8087848(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MoltresEntity; u32 uVar4; s32 iVar3; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(9); + LeaderEntity = xxx_call_GetLeaderEntity(); + MoltresEntity = sub_8085680(9); sub_8083E88(0x26); sub_80854D4(); sub_8085930(6); sub_80855E4(sub_8086A3C); if (sub_8086AE4(SPECIES_MOLTRES)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(MoltresEntity,0x21c,0); } else { - sub_8072008(uVar3,uVar3,gUnknown_80F57CE,0,0); - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); + sub_8072008(MoltresEntity,MoltresEntity,gUnknown_80F57CE,0,0); + SetFacingDirection(MoltresEntity, DIRECTION_SOUTH); + sub_8086A3C(MoltresEntity); } - sub_8085860(iVar2->posWorldX - 5, iVar2->posWorldY); + sub_8085860(LeaderEntity->posWorldX - 5, LeaderEntity->posWorldY); uVar4 = sub_803F994(); iVar3 = sub_803F9B0(); sub_803F878(uVar4,iVar3 + -0x1000); @@ -530,21 +530,21 @@ void sub_80878F4(char param_1, s32 param_2) void MoltresPreFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity *MoltresEntity; - iVar1 = sub_8085480(); - uVar2 = sub_808548C(); - uVar3 = sub_8085680(9); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); + MoltresEntity = sub_8085680(9); sub_8087D80(0xc,5); sub_8086500(); sub_803E708(10,0x46); sub_8052910(&gUnknown_8101A9C); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,5); + sub_80869E4(PartnerEntity,4,1,5); sub_803E708(4,0x46); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); sub_8052910(&gUnknown_8101AD4); sub_803E708(10,0x46); @@ -552,11 +552,11 @@ void MoltresPreFightDialogue(void) sub_8087DE8(9,5); sub_8052910(&gUnknown_8101C30); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(iVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); sub_8052910(&gUnknown_8101CBC); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,2,6); + sub_80869E4(PartnerEntity,4,2,6); sub_8086690(); sub_8052910(&gUnknown_8101D8C); sub_803E708(10,0x46); @@ -571,7 +571,7 @@ void MoltresPreFightDialogue(void) sub_8052910(&gUnknown_8101E1C); sub_803E708(10,0x46); PlaySoundEffect(0x1cf); - sub_80856E0(uVar2,4); + sub_80856E0(PartnerEntity,4); sub_803E708(10,0x46); sub_8052910(&gUnknown_8101EAC); sub_803E708(10,0x46); @@ -585,7 +585,7 @@ void MoltresPreFightDialogue(void) sub_803E708(10,0x46); sub_8087D80(0xc,5); sub_8087DE8(9,5); - sub_8087D30(uVar3); + sub_8087D30(MoltresEntity); sub_808663C(); sub_8087EB0(); sub_8052910(&gUnknown_81020D4); @@ -593,40 +593,40 @@ void MoltresPreFightDialogue(void) sub_8087DE8(0xb,6); sub_8052910(&gUnknown_8102108); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,400,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(MoltresEntity,400,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void MoltresReFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity *MoltresEntity; - iVar1 = sub_8085480(); - uVar2 = sub_808548C(); - uVar3 = sub_8085680(9); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); + MoltresEntity = sub_8085680(9); sub_8087D80(10,5); sub_8086500(); sub_803E708(10,0x46); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); sub_8052910(&gUnknown_8102158); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(iVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); sub_8052910(&gUnknown_8102190); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,2,6); - sub_80869E4(iVar1,4,2,6); + sub_80869E4(PartnerEntity,4,2,6); + sub_80869E4(LeaderEntity,4,2,6); sub_8086690(); sub_8087F24(); sub_803E708(10,0x46); sub_8085930(5); sub_803E708(4,0x46); sub_8085930(4); - sub_8087D30(uVar3); + sub_8087D30(MoltresEntity); sub_808663C(); sub_8087EB0(); sub_8052910(&gUnknown_8102200); @@ -636,17 +636,17 @@ void MoltresReFightDialogue(void) sub_803E708(10,0x46); sub_8052910(&gUnknown_81022F8); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,400,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(MoltresEntity,400,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void MoltresPostStoryPreFightDialogue(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * MoltresEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(9); + LeaderEntity = xxx_call_GetLeaderEntity(); + MoltresEntity = sub_8085680(9); sub_8087D80(0xc,5); sub_808654C(); if (sub_8086AE4(SPECIES_MOLTRES)) { @@ -664,7 +664,7 @@ void MoltresPostStoryPreFightDialogue(void) sub_8085930(5); sub_803E708(4,0x46); sub_8085930(4); - sub_8087D30(uVar3); + sub_8087D30(MoltresEntity); sub_8052910(&gUnknown_8102398); sub_8087D80(0xc,5); sub_8087DE8(9,5); @@ -674,8 +674,8 @@ void MoltresPostStoryPreFightDialogue(void) sub_8087DE8(0xb,6); sub_8052910(&gUnknown_8102454); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,400,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(MoltresEntity,400,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -885,56 +885,56 @@ void sub_8087F24(void) void sub_8087F54(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *ArticunoEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xd); + LeaderEntity = xxx_call_GetLeaderEntity(); + ArticunoEntity = sub_8085680(0xd); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar3, 0); - sub_8086A3C(uVar3); - sub_8085860(iVar2->posWorldX,iVar2->posWorldY + -3); + SetFacingDirection(ArticunoEntity, DIRECTION_SOUTH); + sub_8086A3C(ArticunoEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO); } void sub_8087FB4(void) { - struct DungeonEntity *iVar2; + struct DungeonEntity *ArticunoEntity; - iVar2 = sub_8085680(0xd); + ArticunoEntity = sub_8085680(0xd); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); sub_8085930(4); - sub_8085918(iVar2, 0); - sub_806CDD4(iVar2, 0xF, 0); + SetFacingDirection(ArticunoEntity, DIRECTION_SOUTH); + sub_806CDD4(ArticunoEntity, 0xF, DIRECTION_SOUTH); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO); } void sub_8087FF8(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *ArticunoEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xd); + LeaderEntity = xxx_call_GetLeaderEntity(); + ArticunoEntity = sub_8085680(0xd); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); if (sub_8086AE4(SPECIES_ARTICUNO)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(ArticunoEntity,0x21c,0); } else { - sub_8072008(uVar3,uVar3,gUnknown_80F57D0,0,0); - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); + sub_8072008(ArticunoEntity,ArticunoEntity,gUnknown_80F57D0,0,0); + SetFacingDirection(ArticunoEntity, DIRECTION_SOUTH); + sub_8086A3C(ArticunoEntity); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY + -3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ARTICUNO); } @@ -950,49 +950,49 @@ void sub_8088088(char param_1, s32 param_2) void ArticunoPreFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity *ArticunoEntity; - iVar1 = sub_8085480(); - uVar2 = sub_808548C(); - uVar3 = sub_8085680(0xd); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); + ArticunoEntity = sub_8085680(0xd); sub_8086448(); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); sub_8052910(&gUnknown_8102478); sub_803E708(10,0x46); sub_8086598(); sub_8083F14(); sub_8052910(&gUnknown_81025B4); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(iVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); sub_8052910(&gUnknown_81025D4); sub_803E708(10,0x46); - sub_8085918(iVar1,6); + SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(4,0x46); - sub_8085918(iVar1,5); + SetFacingDirection(LeaderEntity, DIRECTION_NORTHWEST); sub_803E708(4,0x46); - sub_8085918(iVar1,6); + SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(4,0x46); - sub_8085918(iVar1,7); + SetFacingDirection(LeaderEntity, DIRECTION_SOUTHWEST); sub_803E708(4,0x46); - sub_8085918(iVar1,6); + SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(4,0x46); - sub_8085918(iVar1,5); + SetFacingDirection(LeaderEntity, DIRECTION_NORTHWEST); sub_803E708(4,0x46); - sub_8085918(iVar1,6); + SetFacingDirection(LeaderEntity, DIRECTION_WEST); sub_803E708(10,0x46); sub_8052910(&gUnknown_8102610); sub_803E708(10,0x46); sub_8052910(&gUnknown_81026C4); sub_803E708(10,0x46); - sub_80869E4(iVar1,4,1,4); - sub_80869E4(uVar2,4,2,4); + sub_80869E4(LeaderEntity,4,1,4); + sub_80869E4(PartnerEntity,4,2,4); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(iVar1); + SpriteLookAroundEffect(LeaderEntity); sub_8052910(&gUnknown_810270C); sub_803E708(10,0x46); sub_8052910(&gUnknown_810272C); @@ -1010,51 +1010,51 @@ void ArticunoPreFightDialogue(void) sub_8052910(&gUnknown_8102810); sub_803E708(10,0x46); PlaySoundEffect(0x1ea); - sub_8088484(uVar3); + sub_8088484(ArticunoEntity); sub_80865E8(); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102840); - sub_806CDD4(uVar3,0xf,0); + sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); ArticunoScreenFlash(); sub_8052910(&gUnknown_810286C); - sub_806CDD4(uVar3,0x10,0); + sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); sub_8052910(&gUnknown_81028B8); - sub_806CDD4(uVar3,0xf,0); + sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x10,0x46); - SetupBossFightHP(uVar3,0x1c2,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(ArticunoEntity,0x1c2,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void ArticunoReFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *ArticunoEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0xd); + LeaderEntity = xxx_call_GetLeaderEntity(); + ArticunoEntity = sub_8085680(0xd); gDungeonGlobalData->unkE265 = 7; sub_807EAA0(0,1); sub_803E708(10,0x46); sub_8052910(&gUnknown_81028D4); - sub_806CDD4(uVar2,0x10,0); + sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102918); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102948); - sub_806CDD4(uVar2,0xf,0); + sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x28,0x46); - SetupBossFightHP(uVar2,0x1c2,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(ArticunoEntity,0x1c2,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void ArticunoPostStoryPreFightDialogue(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *ArticunoEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xd); + LeaderEntity = xxx_call_GetLeaderEntity(); + ArticunoEntity = sub_8085680(0xd); sub_8086448(); if (sub_8086AE4(SPECIES_ARTICUNO)) { sub_80866C4(&gUnknown_8102A9C); @@ -1067,21 +1067,21 @@ void ArticunoPostStoryPreFightDialogue(void) PlaySoundEffect(0x1da); sub_8052910(&gUnknown_8102984); sub_803E708(10,0x46); - sub_8088484(uVar3); + sub_8088484(ArticunoEntity); ArticunoScreenFlash(); sub_8052910(&gUnknown_81029B4); - sub_806CDD4(uVar3,0xf,0); + sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102A18); - sub_806CDD4(uVar3,0x10,0); + sub_806CDD4(ArticunoEntity,0x10,DIRECTION_SOUTH); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102A24); ArticunoScreenFlash(); sub_8052910(&gUnknown_8102A74); - sub_806CDD4(uVar3,0xf,0); + sub_806CDD4(ArticunoEntity,0xf,DIRECTION_SOUTH); sub_803E708(0x28,0x46); - SetupBossFightHP(uVar3,0x1c2,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(ArticunoEntity,0x1c2,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -1147,16 +1147,16 @@ void sub_80885A0(void) void sub_80885C4(void) { - struct DungeonEntity * iVar1; + struct DungeonEntity * LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8083ED8(0x3c); sub_803E708(0x3c,0x46); sub_8083F14(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); } void sub_8088608(void) @@ -1175,49 +1175,49 @@ void sub_8088618(void) void sub_808862C(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * AlakazamEntity; + struct DungeonEntity * GroudonEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(10); - uVar3 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + AlakazamEntity = sub_8085680(10); + GroudonEntity = sub_8085680(0xe); sub_8083E88(0x72); sub_80867F4(); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,4); - sub_80861D4(uVar2,0xd,4); - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY -3); + SetFacingDirection(AlakazamEntity, DIRECTION_NORTH); + sub_80861D4(AlakazamEntity,0xd,4); + SetFacingDirection(GroudonEntity, DIRECTION_SOUTH); + sub_8086A3C(GroudonEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY -3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM); } void sub_80886C4(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * AlakazamEntity; + struct DungeonEntity * GroudonEntity; u32 uVar4; s32 iVar2; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(10); - uVar3 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + AlakazamEntity = sub_8085680(10); + GroudonEntity = sub_8085680(0xe); PlaySoundEffect(0x3e5); sub_80867F4(); sub_8085374(); sub_80854D4(); sub_8085930(4); - sub_8068FE0(uVar2,0x21c,0); - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + sub_8068FE0(AlakazamEntity,0x21c,0); + SetFacingDirection(GroudonEntity, DIRECTION_SOUTH); + sub_8086A3C(GroudonEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); uVar4 = sub_803F994(); iVar2 = sub_803F9B0(); sub_803F878(uVar4,iVar2 + -0x1000); @@ -1227,27 +1227,27 @@ void sub_80886C4(void) void sub_808875C(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; - struct DungeonEntity * uVar4; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * AlakazamEntity; + struct DungeonEntity * GroudonEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(10); - uVar4 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + AlakazamEntity = sub_8085680(10); + GroudonEntity = sub_8085680(0xe); sub_80867F4(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8068FE0(uVar3,0x21c,0); - if (sub_8086AE4(0x19b)) { - sub_8068FE0(uVar4,0x21c,0); + sub_8068FE0(AlakazamEntity,0x21c,0); + if (sub_8086AE4(SPECIES_GROUDON)) { + sub_8068FE0(GroudonEntity,0x21c,0); } else { - sub_8072008(uVar4,uVar4,gUnknown_80F57D2,0,0); - sub_8085918(uVar4,0); - sub_80861D4(uVar4,0xf,0); + sub_8072008(GroudonEntity,GroudonEntity,gUnknown_80F57D2,0,0); + SetFacingDirection(GroudonEntity, DIRECTION_SOUTH); + sub_80861D4(GroudonEntity,0xf,0); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM); } @@ -1267,15 +1267,15 @@ void sub_8088848(void) void GroudonPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; - struct DungeonEntity * uVar3; - struct DungeonEntity * uVar4; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * PartnerEntity; + struct DungeonEntity * AlakazamEntity; + struct DungeonEntity * GroudonEntity; - iVar1 = sub_8085480(); - uVar2 = sub_808548C(); - uVar3 = sub_8085680(10); - uVar4 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); + AlakazamEntity = sub_8085680(10); + GroudonEntity = sub_8085680(0xe); sub_8086448(); sub_8052910(&gUnknown_8102E70); sub_803E708(10,0x46); @@ -1294,21 +1294,21 @@ void GroudonPreFightDialogue(void) sub_803E708(0x3c,0x46); sub_8052910(&gUnknown_8102EF8); sub_803E708(10,0x46); - sub_8088CA0(); + GroudonScreenFlash(); sub_8052910(&gUnknown_8102F30); sub_803E708(10,0x46); sub_8052910(&gUnknown_8102F64); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); sub_8052910(&gUnknown_8102F84); sub_803E708(10,0x46); sub_808682C(); sub_803E708(0x3c,0x46); - sub_80861B8(uVar3,6,4); + sub_80861B8(AlakazamEntity,6,4); PlaySoundEffect(0x205); sub_8086738(); - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(AlakazamEntity,0x21c,0); sub_8052910(&gUnknown_8102FAC); sub_803E708(10,0x46); sub_8052910(&gUnknown_8102FC4); @@ -1317,7 +1317,7 @@ void GroudonPreFightDialogue(void) sub_8086764(); sub_803E708(0x28,0x46); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); sub_8052910(&gUnknown_8102FD8); sub_803E708(10,0x46); sub_8086838(1,1,1); @@ -1326,7 +1326,7 @@ void GroudonPreFightDialogue(void) sub_8052910(&gUnknown_8103054); sub_803E708(10,0x46); sub_8083F14(); - sub_8088D30(); + GroudonScreenFlash2(); sub_803E708(0x1e,0x46); sub_8052910(&gUnknown_81030D8); sub_803E708(10,0x46); @@ -1340,26 +1340,26 @@ void GroudonPreFightDialogue(void) sub_8085930(4); sub_8052910(&gUnknown_8103140); sub_803E708(10,0x46); - sub_8086A54(uVar4); + sub_8086A54(GroudonEntity); sub_8085930(4); sub_8086764(); - SetupBossFightHP(uVar4,500,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(GroudonEntity,500,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void GroudonReFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * GroudonEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + GroudonEntity = sub_8085680(0xe); sub_8086838(1,1,1); sub_808680C(); sub_803E708(0x3c,0x46); sub_8052910(&gUnknown_8103188); sub_803E708(10,0x46); - sub_8088CA0(); + GroudonScreenFlash(); sub_803E708(0x1e,0x46); sub_8052910(&gUnknown_8103228); sub_803E708(10,0x46); @@ -1372,20 +1372,20 @@ void GroudonReFightDialogue(void) sub_8086738(); sub_8052910(&gUnknown_8103340); sub_803E708(10,0x46); - sub_8086A54(uVar2); + sub_8086A54(GroudonEntity); sub_8085930(4); sub_8086764(); - SetupBossFightHP(uVar2,500,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(GroudonEntity,500,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void GroudonPostStoryPreFightDialogue(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * GroudonEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xe); + LeaderEntity = xxx_call_GetLeaderEntity(); + GroudonEntity = sub_8085680(0xe); sub_8086448(); if (sub_8086AE4(SPECIES_GROUDON)) { sub_80866C4(&gUnknown_8103488); @@ -1393,27 +1393,28 @@ void GroudonPostStoryPreFightDialogue(void) else{ sub_8052910(&gUnknown_81033A0); sub_803E708(10,0x46); - sub_8088C08(uVar3); - sub_8088C08(uVar3); + SceneGroudonMovement(GroudonEntity); + SceneGroudonMovement(GroudonEntity); sub_8052910(&gUnknown_81033AC); PlaySoundEffect(0x1f6); - sub_8088CA0(); + GroudonScreenFlash(); sub_8052910(&gUnknown_810343C); PlaySoundEffect(0x1f6); - sub_8088CA0(); + GroudonScreenFlash(); sub_8052910(&gUnknown_810347C); sub_803E708(10,0x46); - SetupBossFightHP(uVar3,500,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(GroudonEntity,500,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } -void sub_8088C08(struct DungeonEntity * param_1) +// Moves Groudon down in a walking fashion +void SceneGroudonMovement(struct DungeonEntity * param_1) { int iVar1; sub_8086848(0x18,0x10); - sub_806CDD4(param_1,0,0); + sub_806CDD4(param_1,0,DIRECTION_SOUTH); for(iVar1 = 0; iVar1 < 0x2C; iVar1++) { if ((iVar1 == 10) || (iVar1 == 0x20)) { @@ -1434,7 +1435,7 @@ void sub_8088C08(struct DungeonEntity * param_1) sub_803E708(0x22,0x46); } -void sub_8088CA0(void) +void GroudonScreenFlash(void) { s32 iVar1; @@ -1461,7 +1462,7 @@ void sub_8088CA0(void) sub_8085EB0(); } -void sub_8088D30(void) +void GroudonScreenFlash2(void) { s32 iVar1; @@ -1491,11 +1492,11 @@ void sub_8088D30(void) void sub_8088DC0(void) { - struct DungeonEntity * iVar1; + struct DungeonEntity * LeaderEntity; struct DungeonEntity * uVar2; struct DungeonEntity * uVar3; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); uVar2 = sub_8085680(0xb); uVar3 = sub_8085680(0xc); sub_80867F4(); @@ -1505,21 +1506,21 @@ void sub_8088DC0(void) sub_8085930(4); sub_80855E4(sub_8086A3C); sub_8086A3C(uVar2); - sub_806CDD4(uVar2,0xe,0); + sub_806CDD4(uVar2,0xe,DIRECTION_SOUTH); sub_8086A3C(uVar3); - sub_806CDD4(uVar3,0xe,0); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + sub_806CDD4(uVar3,0xe,DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM); } void sub_8088E5C(void) { - struct DungeonEntity * iVar1; + struct DungeonEntity * LeaderEntity; struct DungeonEntity * uVar2; struct DungeonEntity * uVar3; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); uVar2 = sub_8085680(0xb); uVar3 = sub_8085680(0xc); sub_80867F4(); @@ -1529,7 +1530,7 @@ void sub_8088E5C(void) sub_80855E4(sub_8086A3C); sub_8068FE0(uVar2,0x21c,0); sub_8068FE0(uVar3,0x21c,0); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_GROUDON); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_ALAKAZAM); } @@ -1542,26 +1543,26 @@ void sub_8088EE8(void) void MagmaCavernMidDialogue(void) { - struct DungeonEntity * uVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * PartnerEntity; struct DungeonEntity * iVar3; struct DungeonEntity * iVar4; u8 auStack36 [4]; s32 local_20[2]; - uVar1 = sub_8085480(); - uVar2 = sub_808548C(); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); iVar3 = sub_8085680(0xb); iVar4 = sub_8085680(0xc); - sub_8052D44(auStack36,uVar1,uVar2); + sub_8052D44(auStack36,LeaderEntity,PartnerEntity); sub_8086448(); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); // Let's see.. // I wonder where we are? sub_8052910(&gUnknown_8102B1C); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(uVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); // I know we've come pretty // far... // @@ -1592,9 +1593,9 @@ void MagmaCavernMidDialogue(void) sub_8052910(&gUnknown_8102BE4); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); PlaySoundEffect(0x1c7); - sub_80856E0(uVar2,4); + sub_80856E0(PartnerEntity,4); // Hey! {ARG_POKEMON_0}! // Over there! sub_8052910(&gUnknown_8102C30); @@ -1615,7 +1616,7 @@ void MagmaCavernMidDialogue(void) // Urrrrgh... sub_8052910(&gUnknown_8102C98); sub_803E708(10,0x46); - sub_80869E4(uVar1,4,2,5); + sub_80869E4(LeaderEntity,4,2,5); // What happened to you? // // What happened here? @@ -1628,14 +1629,14 @@ void MagmaCavernMidDialogue(void) sub_803E708(10,0x46); sub_8052910(&gUnknown_8102D34); sub_803E708(10,0x46); - sub_80869E4(uVar1,4,1,3); - sub_80869E4(uVar2,4,1,3); + sub_80869E4(LeaderEntity,4,1,3); + sub_80869E4(PartnerEntity,4,1,3); // Grrgh.. // We... It crushed us sub_8052910(&gUnknown_8102D4C); sub_803E708(10,0x46); PlaySoundEffect(0x1d5); - SpriteLookAroundEffect(uVar2); + SpriteLookAroundEffect(PartnerEntity); // That's right... // What happened to {ARG_POKEMON_3}? // Where is {ARG_POKEMON_3}? @@ -1649,8 +1650,8 @@ void MagmaCavernMidDialogue(void) // Still battling {ARG_POKEMON_2}... sub_8052910(&gUnknown_8102DFC); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(uVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); // {ARG_POKEMON_0}! // We've got to hurry! sub_8052910(&gUnknown_8102E2C); @@ -1663,14 +1664,14 @@ void MagmaCavernMidDialogue(void) void sub_8089168(void) { - struct DungeonEntity *iVar1; + struct DungeonEntity *LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8086448(); sub_803E708(10,0x46); - SpriteLookAroundEffect(iVar1); + SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,0x46); - sub_80858AC(&iVar1->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void sub_808919C(struct DungeonEntity *r0) @@ -1680,14 +1681,14 @@ void sub_808919C(struct DungeonEntity *r0) void sub_80891B0(struct DungeonEntity *r0) { - sub_806CDD4(r0, 0, 4); + sub_806CDD4(r0, 0, DIRECTION_NORTH); r0->entityData->unk15F = 1; } void sub_80891D0(struct DungeonEntity *r0) { - sub_806CDD4(r0, 7, 4); + sub_806CDD4(r0, 7, DIRECTION_NORTH); r0->entityData->unk15F = 0; } @@ -1761,41 +1762,41 @@ void sub_8089294(void) void sub_80892C8(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RayquazaEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0xf); + LeaderEntity = xxx_call_GetLeaderEntity(); + RayquazaEntity = sub_8085680(0xf); sub_8083E88(0x1a); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + SetFacingDirection(RayquazaEntity, DIRECTION_SOUTH); + sub_8086A3C(RayquazaEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_RAYQUAZA); } void sub_8089328(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RayquazaEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xf); + LeaderEntity = xxx_call_GetLeaderEntity(); + RayquazaEntity = sub_8085680(0xf); sub_8083E88(0x1a); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); if (sub_8086AE4(SPECIES_RAYQUAZA)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(RayquazaEntity,0x21c,0); } else { - sub_8072008(uVar3,uVar3,gUnknown_80F57CA,0,0); - sub_8086A3C(uVar3); + sub_8072008(RayquazaEntity,RayquazaEntity,gUnknown_80F57CA,0,0); + sub_8086A3C(RayquazaEntity); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_RAYQUAZA); } @@ -1809,25 +1810,25 @@ void sub_80893B4(char param_1, s32 param_2) void RayquazaPreFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity *RayquazaEntity; - iVar1 = sub_8085480(); - uVar2 = sub_808548C(); - uVar3 = sub_8085680(0xf); + LeaderEntity = xxx_call_GetLeaderEntity(); + PartnerEntity = GetPartnerEntity(); + RayquazaEntity = sub_8085680(0xf); sub_8086448(); sub_8052910(&gUnknown_8103500); RayquazaScreenFlash(); sub_8052910(&gUnknown_810352C); - sub_80856E0(uVar2,4); - SpriteLookAroundEffect(uVar2); + sub_80856E0(PartnerEntity,4); + SpriteLookAroundEffect(PartnerEntity); sub_803E708(10,0x46); - sub_80869E4(uVar2,4,1,2); - sub_80869E4(iVar1,4,2,6); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); sub_8052910(&gUnknown_8103578); - sub_80869E4(uVar2,4,2,4); - sub_80869E4(iVar1,4,1,4); + sub_80869E4(PartnerEntity,4,2,4); + sub_80869E4(LeaderEntity,4,1,4); sub_8052910(&gUnknown_81035D4); sub_803E708(10,0x46); sub_8052910(&gUnknown_8103618); @@ -1836,7 +1837,7 @@ void RayquazaPreFightDialogue(void) RayquazaScreenFlash(); PlaySoundEffect(0x1da); // Rayquaza Cry sub_8052910(&gUnknown_8103690); - sub_8089620(uVar3); + sub_8089620(RayquazaEntity); sub_8052910(&gUnknown_81036C8); RayquazaScreenFlash(); sub_8052910(&gUnknown_81037A0); @@ -1844,23 +1845,23 @@ void RayquazaPreFightDialogue(void) sub_8052910(&gUnknown_81037D4); RayquazaScreenFlash(); sub_8052910(&gUnknown_8103820); - SetupBossFightHP(uVar3,600,0x20); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(RayquazaEntity,600,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void RayquazaReFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *RayquazaEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0xf); + LeaderEntity = xxx_call_GetLeaderEntity(); + RayquazaEntity = sub_8085680(0xf); sub_8086448(); RayquazaScreenFlash(); PlaySoundEffect(0x1da); // Rayquaza Cry sub_8052910(&gUnknown_8103690); sub_803E708(10,0x46); - sub_8089620(uVar2); + sub_8089620(RayquazaEntity); sub_8052910(&gUnknown_8103844); RayquazaScreenFlash(); sub_8052910(&gUnknown_8103874); @@ -1868,17 +1869,17 @@ void RayquazaReFightDialogue(void) sub_8052910(&gUnknown_81038A8); RayquazaScreenFlash(); sub_8052910(&gUnknown_81038F8); - SetupBossFightHP(uVar2,600,0x20); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(RayquazaEntity,600,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void RayquazaPostStoryPreFightDialogue(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *RayquazaEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0xf); + LeaderEntity = xxx_call_GetLeaderEntity(); + RayquazaEntity = sub_8085680(0xf); sub_8086448(); if (sub_8086AE4(SPECIES_RAYQUAZA)) { sub_80866C4(&gUnknown_8103B58); @@ -1886,7 +1887,7 @@ void RayquazaPostStoryPreFightDialogue(void) else { PlaySoundEffect(0x1da); // Rayquaza Cry sub_8052910(&gUnknown_8103904); - sub_8089620(uVar3); + sub_8089620(RayquazaEntity); sub_8052910(&gUnknown_8103938); RayquazaScreenFlash(); sub_8052910(&gUnknown_8103AA4); @@ -1894,8 +1895,8 @@ void RayquazaPostStoryPreFightDialogue(void) sub_8052910(&gUnknown_8103AE4); RayquazaScreenFlash(); sub_8052910(&gUnknown_8103B30); - SetupBossFightHP(uVar3,600,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(RayquazaEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -1950,27 +1951,27 @@ void RayquazaScreenFlash(void) void sub_808970C(void) { - struct DungeonEntity *iVar1; + struct DungeonEntity *LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8083E88(0x7D); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); sub_808563C(sub_8089908); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3); } void sub_808974C(void) { - struct DungeonEntity *iVar1; + struct DungeonEntity *LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); sub_808563C(sub_80898F8); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -3); } void sub_8089788(struct DungeonEntity *param_1, u8 param_2, s32 param_3) @@ -1982,7 +1983,7 @@ void sub_8089788(struct DungeonEntity *param_1, u8 param_2, s32 param_3) unk1 = 0; if ((((param_3 * 0x1000000) + 0xe6000000U) >> 0x18) < 2) { - for(iVar3 = 0; iVar3 < 0x10; iVar3++) + for(iVar3 = 0; iVar3 < DUNGEON_MAX_WILD_POKEMON; iVar3++) { iVar2 = gDungeonGlobalData->wildPokemon[iVar3]; if ((EntityExists(iVar2) != '\0') && (iVar2 != param_1) && (iVar2->entityData->clientType == param_2)) { @@ -1999,9 +2000,9 @@ void sub_8089788(struct DungeonEntity *param_1, u8 param_2, s32 param_3) void sub_80897F0(void) { - struct DungeonEntity *iVar1; + struct DungeonEntity *LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8086448(); sub_803E708(10,0x46); sub_808563C(sub_80862BC); @@ -2029,16 +2030,16 @@ void sub_80897F0(void) // Get 'em! It's frenzy time! sub_8052910(&gUnknown_8103D50); sub_803E708(10,0x46); - sub_80858AC(&iVar1->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void sub_8089878(void) { - struct DungeonEntity *iVar1; + struct DungeonEntity *LeaderEntity; - iVar1 = sub_8085480(); + LeaderEntity = xxx_call_GetLeaderEntity(); sub_8086448(); sub_803E708(10,0x46); sub_808563C(sub_80862BC); @@ -2049,7 +2050,7 @@ void sub_8089878(void) sub_8052910(&gUnknown_8103DD8); sub_8052910(&gUnknown_8103E28); sub_803E708(10,0x46); - sub_80858AC(&iVar1->posPixelX,0x10); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void sub_80898E4(void) @@ -2065,48 +2066,48 @@ void sub_80898F8(struct DungeonEntity *r0) void sub_8089908(struct DungeonEntity *r0) { - sub_8085918(r0, 4); + SetFacingDirection(r0, DIRECTION_NORTH); } void sub_8089914(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MewtwoEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x11); + LeaderEntity = xxx_call_GetLeaderEntity(); + MewtwoEntity = sub_8085680(0x11); sub_8083F14(); gDungeonGlobalData->unk7 = 1; sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + SetFacingDirection(MewtwoEntity, DIRECTION_SOUTH); + sub_8086A3C(MewtwoEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_MEWTWO); } void sub_8089978(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MewtwoEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x11); + LeaderEntity = xxx_call_GetLeaderEntity(); + MewtwoEntity = sub_8085680(0x11); sub_8083F14(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); if(HasRecruitedMon(SPECIES_MEWTWO)){ sub_8083E88(0x23); - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(MewtwoEntity,0x21c,0); } else { gDungeonGlobalData->unk7 = 1; - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); + SetFacingDirection(MewtwoEntity, DIRECTION_SOUTH); + sub_8086A3C(MewtwoEntity); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_MEWTWO); } @@ -2120,18 +2121,18 @@ void sub_8089A00(char param_1, s32 param_2) void MewtwoPreFightDialogue(void) { - struct DungeonEntity *iVar1; - struct DungeonEntity *uVar2; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MewtwoEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x11); + LeaderEntity = xxx_call_GetLeaderEntity(); + MewtwoEntity = sub_8085680(0x11); sub_8086448(); sub_8052910(&gUnknown_8103EA4); sub_803E708(10,0x46); sub_8083E88(0x23); sub_8086794(); sub_803E708(0x1e,0x46); - sub_8089B64(uVar2); + sub_8089B64(MewtwoEntity); sub_803E708(0x3c,0x46); sub_8052910(&gUnknown_8103F0C); sub_8052910(&gUnknown_8103F4C); @@ -2141,17 +2142,17 @@ void MewtwoPreFightDialogue(void) MewtwoScreenFlash(); sub_8052910(&gUnknown_8104008); sub_803E708(10,0x46); - SetupBossFightHP(uVar2,900,0x20); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(MewtwoEntity,900,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void MewtwoPreFightDialogue1(void) { - struct DungeonEntity *iVar2; - struct DungeonEntity *uVar3; + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *MewtwoEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x11); + LeaderEntity = xxx_call_GetLeaderEntity(); + MewtwoEntity = sub_8085680(0x11); sub_8086448(); if(HasRecruitedMon(SPECIES_MEWTWO)) { sub_80866C4(&gUnknown_8104144); @@ -2160,15 +2161,15 @@ void MewtwoPreFightDialogue1(void) sub_8052910(&gUnknown_8104044); sub_8083E88(0x23); sub_8086794(); - sub_8089B64(uVar3); + sub_8089B64(MewtwoEntity); sub_803E708(0x3c,0x46); sub_8052910(&gUnknown_8104050); MewtwoScreenFlash(); sub_8052910(&gUnknown_81040CC); MewtwoScreenFlash(); sub_8052910(&gUnknown_8104114); - SetupBossFightHP(uVar3,900,0x20); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(MewtwoEntity,900,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -2222,37 +2223,37 @@ void MewtwoScreenFlash(void) void sub_8089C44(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * EnteiEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x12); + LeaderEntity = xxx_call_GetLeaderEntity(); + EnteiEntity = sub_8085680(0x12); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar3, 0); - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + SetFacingDirection(EnteiEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ENTEI); } void sub_8089C90(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * EnteiEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x12); + LeaderEntity = xxx_call_GetLeaderEntity(); + EnteiEntity = sub_8085680(0x12); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); if (HasRecruitedMon(SPECIES_ENTEI)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(EnteiEntity,0x21c,0); } else { - sub_8085918(uVar3,0); + SetFacingDirection(EnteiEntity, DIRECTION_SOUTH); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_ENTEI); } @@ -2268,11 +2269,11 @@ void sub_8089CFC(char param_1,int param_2) void EnteiPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * EnteiEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x12); + LeaderEntity = xxx_call_GetLeaderEntity(); + EnteiEntity = sub_8085680(0x12); EnteiScreenFlash(); sub_8052910(&gUnknown_8104150); EnteiScreenFlash(); @@ -2280,17 +2281,17 @@ void EnteiPreFightDialogue(void) EnteiScreenFlash(); sub_8052910(&gUnknown_81041F8); sub_803E708(10,70); - SetupBossFightHP(uVar2,600,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(EnteiEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void EnteiPreFightDialogue1(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * EnteiEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x12); + LeaderEntity = xxx_call_GetLeaderEntity(); + EnteiEntity = sub_8085680(0x12); EnteiScreenFlash(); sub_8052910(&gUnknown_8104240); EnteiScreenFlash(); @@ -2298,17 +2299,17 @@ void EnteiPreFightDialogue1(void) EnteiScreenFlash(); sub_8052910(&gUnknown_81042B8); sub_803E708(10,70); - SetupBossFightHP(uVar2,600,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(EnteiEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void EnteiPreFightDialogue2(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * EnteiEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x12); + LeaderEntity = xxx_call_GetLeaderEntity(); + EnteiEntity = sub_8085680(0x12); if (HasRecruitedMon(SPECIES_ENTEI)) { sub_80866C4(&gUnknown_81043DC); } @@ -2320,8 +2321,8 @@ void EnteiPreFightDialogue2(void) EnteiScreenFlash(); sub_8052910(&gUnknown_81043C0); sub_803E708(10,70); - SetupBossFightHP(uVar3,600,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(EnteiEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -2353,53 +2354,53 @@ void EnteiScreenFlash(void) void sub_8089EFC(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar3, 0); - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + SetFacingDirection(RaikouEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_RAIKOU); } void sub_8089F44(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar3, 0); - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + SetFacingDirection(RaikouEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_RAIKOU); } void sub_8089F8C(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); if (HasRecruitedMon(SPECIES_RAIKOU)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(RaikouEntity,0x21c,0); } else { - sub_8085918(uVar3,0); + SetFacingDirection(RaikouEntity, DIRECTION_SOUTH); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_RAIKOU); } @@ -2414,11 +2415,11 @@ void sub_8089FF0(char param_1,int param_2) void RaikouPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); sub_8052910(&gUnknown_8104450); RaikouScreenFlash(); sub_8052910(&gUnknown_81044B4); @@ -2433,17 +2434,17 @@ void RaikouPreFightDialogue(void) RaikouScreenFlash(); sub_8052910(&gUnknown_81045B0); sub_803E708(10,70); - SetupBossFightHP(uVar2,0x28a,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(RaikouEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void RaikouPreFightDialogue1(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); gDungeonGlobalData->unkE265 = 4; sub_807EAA0(0,1); RaikouScreenFlash(); @@ -2453,17 +2454,17 @@ void RaikouPreFightDialogue1(void) RaikouScreenFlash(); sub_8052910(&gUnknown_81046A0); sub_803E708(10,70); - SetupBossFightHP(uVar3,0x28a,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(RaikouEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void RaikouPreFightDialogue2(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * RaikouEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x13); + LeaderEntity = xxx_call_GetLeaderEntity(); + RaikouEntity = sub_8085680(0x13); if (HasRecruitedMon(SPECIES_RAIKOU)) { sub_80866C4(&gUnknown_8104778); } @@ -2476,8 +2477,8 @@ void RaikouPreFightDialogue2(void) RaikouScreenFlash(); sub_8052910(&gUnknown_810476C); sub_803E708(10,70); - SetupBossFightHP(uVar3,0x28a,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(RaikouEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -2509,53 +2510,53 @@ void RaikouScreenFlash(void) void sub_808A264(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + SetFacingDirection(SuicuneEntity, DIRECTION_SOUTH); + sub_8086A3C(SuicuneEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SUICUNE); } void sub_808A2C0(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar2,0); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + SetFacingDirection(SuicuneEntity, DIRECTION_SOUTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SUICUNE); } void sub_808A308(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); if (HasRecruitedMon(SPECIES_SUICUNE)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(SuicuneEntity,0x21c,0); } else { - sub_8085918(uVar3,0); + SetFacingDirection(SuicuneEntity, DIRECTION_SOUTH); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_SUICUNE); } @@ -2569,11 +2570,11 @@ void sub_808A36C(char param_1,int param_2) void SuicunePreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); sub_8086448(); sub_8052910(&gUnknown_8104784); sub_803E708(10,70); @@ -2583,7 +2584,7 @@ void SuicunePreFightDialogue(void) sub_803E708(0x3c,70); sub_8052910(&gUnknown_81047B0); sub_803E708(10,70); - sub_808A528(uVar2); + sub_808A528(SuicuneEntity); sub_8052910(&gUnknown_810484C); sub_8052910(&gUnknown_8104888); SuicuneScreenFlash(); @@ -2591,34 +2592,34 @@ void SuicunePreFightDialogue(void) SuicuneScreenFlash(); sub_8052910(&gUnknown_8104914); sub_803E708(10,70); - SetupBossFightHP(uVar2,0x28a,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(SuicuneEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void SuicunePreFightDialogue1(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); sub_8052910(&gUnknown_8104930); SuicuneScreenFlash(); sub_8052910(&gUnknown_8104980); SuicuneScreenFlash(); sub_8052910(&gUnknown_8104998); sub_803E708(10,70); - SetupBossFightHP(uVar2,0x28a,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(SuicuneEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void SuicunePreFightDialogue2(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SuicuneEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x14); + LeaderEntity = xxx_call_GetLeaderEntity(); + SuicuneEntity = sub_8085680(0x14); if (HasRecruitedMon(SPECIES_SUICUNE)) { sub_80866C4(&gUnknown_8104AC8); } @@ -2629,8 +2630,8 @@ void SuicunePreFightDialogue2(void) SuicuneScreenFlash(); sub_8052910(&gUnknown_8104A9C); sub_803E708(10,70); - SetupBossFightHP(uVar3,0x28a,0xb); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(SuicuneEntity,0x28a,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -2684,42 +2685,42 @@ void SuicuneScreenFlash(void) void sub_808A608(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * HoOhEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x15); + LeaderEntity = xxx_call_GetLeaderEntity(); + HoOhEntity = sub_8085680(0x15); sub_8083E88(0x1c); sub_80867F4(); sub_8086838(0,0,0); sub_80854D4(); sub_8085930(4); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -6); + SetFacingDirection(HoOhEntity, DIRECTION_SOUTH); + sub_8086A3C(HoOhEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -6); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_HO_OH); } void sub_808A668(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * HoOhEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x15); + LeaderEntity = xxx_call_GetLeaderEntity(); + HoOhEntity = sub_8085680(0x15); sub_8083E88(0x1c); sub_80867F4(); sub_8086838(0,0,0); sub_80854D4(); sub_8085930(4); if (HasRecruitedMon(SPECIES_HO_OH)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(HoOhEntity,0x21c,0); } else { - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); + SetFacingDirection(HoOhEntity, DIRECTION_SOUTH); + sub_8086A3C(HoOhEntity); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 6); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 6); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_HO_OH); } @@ -2739,14 +2740,14 @@ void sub_808A718(void) void HoOhPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * HoOhEntity; int local_14[2]; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x15); - local_14[0] = iVar1->posPixelX; - local_14[1] = iVar1->posPixelY + -0x1000; + LeaderEntity = xxx_call_GetLeaderEntity(); + HoOhEntity = sub_8085680(0x15); + local_14[0] = LeaderEntity->posPixelX; + local_14[1] = LeaderEntity->posPixelY + -0x1000; sub_80858AC(local_14,0x88); sub_803E708(0x40,70); sub_8052910(&gUnknown_8104AD4); @@ -2758,7 +2759,7 @@ void HoOhPreFightDialogue(void) sub_808680C(); PlaySoundEffect(0x1c5); sub_803E708(0xfa,70); - sub_808A904(uVar2); + sub_808A904(HoOhEntity); sub_8083E58(0x1c5); sub_808682C(); sub_80855E4(sub_8086910); @@ -2772,21 +2773,21 @@ void HoOhPreFightDialogue(void) HoOhScreenFlash(); sub_8052910(&gUnknown_8104CE0); sub_803E708(10,70); - SetupBossFightHP(uVar2,800,0x20); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(HoOhEntity,800,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void HoOhPreFightDialogue1(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * HoOhEntity; u32 local_14[2]; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x15); + LeaderEntity = xxx_call_GetLeaderEntity(); + HoOhEntity = sub_8085680(0x15); - local_14[0] = iVar2->posPixelX; - local_14[1] = iVar2->posPixelY + -0x1000; + local_14[0] = LeaderEntity->posPixelX; + local_14[1] = LeaderEntity->posPixelY + -0x1000; sub_80858AC(local_14,0x88); sub_803E708(0x40,70); if (HasRecruitedMon(SPECIES_HO_OH)) { @@ -2798,7 +2799,7 @@ void HoOhPreFightDialogue1(void) sub_80855E4(sub_80868F4); sub_808680C(); sub_803E708(10,70); - sub_808A904(uVar3); + sub_808A904(HoOhEntity); sub_808682C(); sub_80855E4(sub_8086910); sub_8085930(4); @@ -2808,8 +2809,8 @@ void HoOhPreFightDialogue1(void) HoOhScreenFlash(); sub_8052910(&gUnknown_8104E0C); sub_803E708(10,70); - SetupBossFightHP(uVar3,800,0x20); - sub_80858AC(&iVar2->posPixelX,0x10); + SetupBossFightHP(HoOhEntity,800,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } } @@ -2863,49 +2864,49 @@ void HoOhScreenFlash(void) void sub_808A9E4(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LatiosEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x16); + LeaderEntity = xxx_call_GetLeaderEntity(); + LatiosEntity = sub_8085680(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,4); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 4); + SetFacingDirection(LatiosEntity, DIRECTION_NORTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 4); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_LATIOS); } void sub_808AA3C(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LatiosEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x16); + LeaderEntity = xxx_call_GetLeaderEntity(); + LatiosEntity = sub_8085680(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,4); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + SetFacingDirection(LatiosEntity, DIRECTION_NORTH); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_LATIOS); } void sub_808AA94(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LatiosEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x16); + LeaderEntity = xxx_call_GetLeaderEntity(); + LatiosEntity = sub_8085680(0x16); sub_8083E88(0x72); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8068FE0(uVar2,0x21c,0); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + sub_8068FE0(LatiosEntity,0x21c,0); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_LATIOS); } @@ -2919,15 +2920,15 @@ void sub_808AAF0(char param_1, s32 param_2) void LatiosPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * iVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LatiosEntity; u32 local_18[3]; - iVar1 = sub_8085480(); - iVar2 = sub_8085680(0x16); + LeaderEntity = xxx_call_GetLeaderEntity(); + LatiosEntity = sub_8085680(0x16); - local_18[0] = iVar2->posPixelX; - local_18[1] = iVar2->posPixelY + (0x80 << 6); + local_18[0] = LatiosEntity->posPixelX; + local_18[1] = LatiosEntity->posPixelY + (0x80 << 6); local_18[2] = 0x7000fc; sub_8085EC8(0x1bd,0,0,&local_18[2],1); @@ -2935,7 +2936,7 @@ void LatiosPreFightDialogue(void) sub_8086448(); sub_80858AC(local_18,0x18); sub_803E708(2,70); - sub_80862BC(iVar2); + sub_80862BC(LatiosEntity); sub_803E708(0x20,70); sub_808692C(); sub_8052910(&gUnknown_8104E60); @@ -2944,17 +2945,17 @@ void LatiosPreFightDialogue(void) LatiosScreenFlash(); sub_8052910(&gUnknown_8104F30); sub_803E708(10,70); - SetupBossFightHP(iVar2,600,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(LatiosEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void LatiosReFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * LatiosEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x16); + LeaderEntity = xxx_call_GetLeaderEntity(); + LatiosEntity = sub_8085680(0x16); sub_8086448(); sub_808692C(); sub_8052910(&gUnknown_8104F64); @@ -2963,8 +2964,8 @@ void LatiosReFightDialogue(void) LatiosScreenFlash(); sub_8052910(&gUnknown_8104F30); sub_803E708(10,70); - SetupBossFightHP(uVar2,600,0xb); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(LatiosEntity,600,0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void sub_808AC3C(void) @@ -3094,13 +3095,13 @@ void sub_808ADCC(void) void sub_808AE54(char param_1,char param_2,u32 *param_3) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack24 [4]; struct ItemSlot auStack20; - uVar3 = sub_8085480(); - sub_8052D44(auStack24,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack24,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_2 == 0x2E) && (param_1 == 0x17)) { sub_808B1CC(0); if (sub_8098100(0x1d) == 0) { @@ -3117,13 +3118,13 @@ void sub_808AE54(char param_1,char param_2,u32 *param_3) void sub_808AEC8(char param_1,char param_2,u32 *param_3) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack24 [4]; struct ItemSlot auStack20; - uVar3 = sub_8085480(); - sub_8052D44(auStack24,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack24,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_2 == 0x2F) && (param_1 == 0x18)) { sub_808B1CC(0); if (sub_8098100(0x1d) == 0) { @@ -3139,13 +3140,13 @@ void sub_808AEC8(char param_1,char param_2,u32 *param_3) void sub_808AF3C(char param_1,char param_2,u32 *param_3) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack24 [4]; struct ItemSlot auStack20; - uVar3 = sub_8085480(); - sub_8052D44(auStack24,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack24,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_2 == 0x30) && (param_1 == 0x19)) { sub_808B1CC(0); if (sub_8098100(0x1d) == 0) { @@ -3161,11 +3162,11 @@ void sub_808AF3C(char param_1,char param_2,u32 *param_3) void sub_808AFB0(char param_1) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack12 [4]; - uVar3 = sub_8085480(); - sub_8052D44(auStack12,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack12,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_1 == 0x2E) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_ROCK_PART) != 0)) { sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0); @@ -3179,11 +3180,11 @@ void sub_808AFB0(char param_1) void sub_808B030(char param_1) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack12 [4]; - uVar3 = sub_8085480(); - sub_8052D44(auStack12,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack12,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_1 == 0x2F) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_ICE_PART) != 0)) { sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames,GetLeaderEntity(),0); @@ -3197,11 +3198,11 @@ void sub_808B030(char param_1) void sub_808B0B0(char param_1) { - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; u8 auStack12 [4]; - uVar3 = sub_8085480(); - sub_8052D44(auStack12,uVar3,0); + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8052D44(auStack12,LeaderEntity,0); if ((sub_8098100(0x22) == 0) && (param_1 == 0x30) && (sub_8098100(0x1d) == 0) && (sub_80860A8(ITEM_ID_STEEL_PART) != 0)) { sub_8097FD0(0x1d); SetMessageArgument(gAvailablePokemonNames, GetLeaderEntity(), 0); @@ -3364,7 +3365,7 @@ void sub_808B1CC(u8 r0) void sub_808B2B0(struct DungeonEntity *r0) { r0->entityData->facingDir = DIRECTION_NORTH; - sub_806CE68(r0, 4); + sub_806CE68(r0, DIRECTION_NORTH); } @@ -3387,45 +3388,45 @@ void sub_808B2E4(struct DungeonEntity *r0) void sub_808B2F4(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * JirachiEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x1a); + LeaderEntity = xxx_call_GetLeaderEntity(); + JirachiEntity = sub_8085680(0x1a); sub_8083E88(0x79); sub_808BCE4(); sub_8049ED4(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8085918(uVar2,0); - sub_8086A3C(uVar2); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY - 3); + SetFacingDirection(JirachiEntity, DIRECTION_SOUTH); + sub_8086A3C(JirachiEntity); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_JIRACHI); } void sub_808B35C(void) { - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * JirachiEntity; - iVar2 = sub_8085480(); - uVar3 = sub_8085680(0x1a); + LeaderEntity = xxx_call_GetLeaderEntity(); + JirachiEntity = sub_8085680(0x1a); sub_8083E88(0x79); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); if (HasRecruitedMon(SPECIES_JIRACHI)) { - sub_8068FE0(uVar3,0x21c,0); + sub_8068FE0(JirachiEntity,0x21c,0); } else { - sub_8085918(uVar3,0); - sub_8086A3C(uVar3); + SetFacingDirection(JirachiEntity, DIRECTION_SOUTH); + sub_8086A3C(JirachiEntity); sub_808BCE4(); sub_8049ED4(); } - sub_8085860(iVar2->posWorldX,iVar2->posWorldY - 3); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_JIRACHI); } @@ -3520,43 +3521,43 @@ void sub_808B3E4(u8 param_1, u8 param_2, u8 param_3) void JirachiPreFightDialogue(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * uVar2; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * JirachiEntity; - iVar1 = sub_8085480(); - uVar2 = sub_8085680(0x1a); + LeaderEntity = xxx_call_GetLeaderEntity(); + JirachiEntity = sub_8085680(0x1a); sub_8086448(); sub_803E708(0x40,70); sub_8052910(&gUnknown_8105438); sub_803E708(10,70); - SpriteLookAroundEffect(iVar1); + SpriteLookAroundEffect(LeaderEntity); sub_803E708(10,70); sub_8052910(&gUnknown_81054A0); - sub_80861F8(0x37,uVar2,1); + sub_80861F8(0x37,JirachiEntity,1); sub_80855E4(sub_80862BC); sub_803E708(0x3c,70); - sub_808BBB8(uVar2); + sub_808BBB8(JirachiEntity); sub_803E708(0x5a,70); sub_8052910(&gUnknown_81054E4); sub_803E708(10,70); sub_8052910(&gUnknown_810550C); sub_803E708(10,70); - SetupBossFightHP(uVar2,0x15e,0x20); - sub_80858AC(&iVar1->posPixelX,0x10); + SetupBossFightHP(JirachiEntity,0x15e,0x20); + sub_80858AC(&LeaderEntity->posPixelX,0x10); } void sub_808B50C(void) { - struct DungeonEntity * iVar1; + struct DungeonEntity * JirachiEntity; - iVar1 = sub_8085680(0x1a); + JirachiEntity = sub_8085680(0x1a); CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_JIRACHI); sub_80855E4(sub_808BBA8); - sub_808BBA8(iVar1); + sub_808BBA8(JirachiEntity); sub_8041888(0); - iVar1->entityData->unk15C = 1; - iVar1->entityData->unk15E = 0; - sub_80861B8(iVar1,0xe,0); + JirachiEntity->entityData->unk15C = 1; + JirachiEntity->entityData->unk15E = 0; + sub_80861B8(JirachiEntity,0xe,0); sub_8083ED8(0x1e); sub_803E708(0x1e,70); // Fwaaaahhhh @@ -3567,7 +3568,7 @@ void sub_808B50C(void) // I'm sleepy so I'm going back to sleep. sub_8052910(&gUnknown_8105558); sub_803E708(10,70); - sub_808BC20(iVar1); + sub_808BC20(JirachiEntity); sub_8052910(&gUnknown_81055F4); sub_803E708(10,70); gDungeonGlobalData->unk2 = 1; diff --git a/src/code_806CD90.c b/src/code_806CD90.c new file mode 100644 index 0000000..30ca41d --- /dev/null +++ b/src/code_806CD90.c @@ -0,0 +1,88 @@ +#include "global.h" +#include "dungeon_global_data.h" +#include "dungeon_entity.h" +#include "constants/direction.h" + +extern struct DungeonGlobalData *gDungeonGlobalData; + +extern u8 sub_806CEBC(struct DungeonEntity *); +extern bool8 EntityExists(struct DungeonEntity *); +extern void sub_806CCB4(struct DungeonEntity *, u8); +extern u32 GetEntityType(struct DungeonEntity *); + +void sub_806CD90(void) +{ + s32 iVar3; + struct DungeonEntity *iVar2; + for(iVar3 = 0; iVar3 < DUNGEON_MAX_POKEMON; iVar3++) + { + iVar2 = gDungeonGlobalData->allPokemon[iVar3]; + if(EntityExists(iVar2)) + sub_806CCB4(iVar2, sub_806CEBC(iVar2)); + } +} + +void sub_806CDD4(struct DungeonEntity *r0, u8 r1, u32 r2) +{ + if(GetEntityType(r0) == ENTITY_POKEMON) + { + r0->unk6A = r1; + if(r2 < NUM_DIRECTIONS) r0->facingDir = r2; + } +} + +void sub_806CDFC(struct DungeonEntity *r0, u8 r1, u32 r2) +{ + if(GetEntityType(r0) == ENTITY_POKEMON) + { + if(r0->unk6B == r1) + { + if(r0->facingDir2 == r2) + return; + else + goto change_dir; + } + else + { +change_dir: + sub_806CDD4(r0, r1, r2); + } + } +} + +void sub_806CE34(struct DungeonEntity *r0, u32 newDir) +{ + if(GetEntityType(r0) == ENTITY_POKEMON) + { + r0->unk6A = sub_806CEBC(r0); + if(newDir < NUM_DIRECTIONS) + { + r0->entityData->facingDir = newDir & DIRECTION_MASK; + r0->facingDir = newDir & DIRECTION_MASK; + } + } +} + +void sub_806CE68(struct DungeonEntity *r0, u32 newDir) +{ + if(GetEntityType(r0) == ENTITY_POKEMON) + { + r0->unk6A = sub_806CEBC(r0); + if(newDir < NUM_DIRECTIONS) + { + r0->facingDir = newDir; + } + } +} + +void sub_806CE94(struct DungeonEntity *r0, u32 newDir) +{ + if(GetEntityType(r0) == ENTITY_POKEMON) + { + r0->unk6A = 6; + if(newDir < NUM_DIRECTIONS) + { + r0->facingDir = newDir; + } + } +} diff --git a/src/code_80848F0.c b/src/code_80848F0.c index 365411a..14b8b3e 100644 --- a/src/code_80848F0.c +++ b/src/code_80848F0.c @@ -94,6 +94,236 @@ extern void sub_808AFB0(u8); extern void sub_808B030(u8); extern void sub_808B0B0(u8); +extern void sub_8086B14(void); +extern void sub_8086B94(void); +extern void sub_8086E9C(void); +extern void sub_8086F00(void); +extern void sub_8087230(void); +extern void sub_808729C(void); +extern void sub_80877E8(void); +extern void sub_8087848(void); +extern void sub_8087F54(void); +extern void sub_8087FB4(void); +extern void sub_8087FF8(void); +extern void sub_80885A0(void); +extern void sub_80885C4(void); +extern void sub_808862C(void); +extern void sub_80886C4(void); +extern void sub_808875C(void); +extern void sub_8088DC0(void); +extern void sub_8088E5C(void); +extern void sub_80892C8(void); +extern void sub_8089328(void); +extern void sub_808970C(void); +extern void sub_808974C(void); +extern void sub_8089914(void); +extern void sub_8089978(void); +extern void sub_8089C44(void); +extern void sub_8089C90(void); +extern void sub_8089EFC(void); +extern void sub_8089F44(void); +extern void sub_8089F8C(void); +extern void sub_808A264(void); +extern void sub_808A2C0(void); +extern void sub_808A308(void); +extern void sub_808A608(void); +extern void sub_808A668(void); +extern void sub_808A9E4(void); +extern void sub_808AA3C(void); +extern void sub_808AA94(void); +extern void sub_808ACC0(void); +extern void sub_808AD48(void); +extern void sub_808ADCC(void); +extern void sub_808B2F4(void); +extern void sub_808B35C(void); +extern void sub_808BDEC(void); +extern void sub_808C10C(void); +extern void sub_808C3A0(void); +extern void sub_808C5C0(void); +extern void sub_808C938(void); +extern void sub_808C9C4(void); +extern void sub_808CB5C(void); +extern void sub_808CBB0(void); +extern void sub_808CD44(void); +extern void sub_8097FF8(void); + +u32 sub_80848EC(void) +{ + return 1; +} + +void sub_80848F0(void) +{ + gDungeonGlobalData->unk1356C = 1; + switch(gDungeonGlobalData->unk3A0D) { + case 0: + case 0x3c: + gDungeonGlobalData->unk1356C = 0; + break; + case 1: + case 2: + sub_8086B14(); + break; + case 3: + sub_8086B94(); + break; + case 4: + case 5: + sub_8086E9C(); + break; + case 6: + sub_8086F00(); + break; + case 7: + case 8: + sub_8087230(); + break; + case 9: + sub_808729C(); + break; + case 10: + case 0xb: + sub_80877E8(); + break; + case 0xc: + sub_8087848(); + break; + case 0xd: + sub_8087F54(); + break; + case 0xe: + sub_8087FB4(); + break; + case 0xf: + sub_8087FF8(); + break; + case 0x10: + sub_80885A0(); + break; + case 0x11: + sub_80885C4(); + break; + case 0x12: + sub_808862C(); + break; + case 0x13: + sub_80886C4(); + break; + case 0x14: + sub_808875C(); + break; + case 0x15: + sub_8088DC0(); + break; + case 0x16: + sub_8088E5C(); + break; + case 0x17: + case 0x18: + sub_80892C8(); + break; + case 0x19: + sub_8089328(); + break; + case 0x1a: + case 0x1b: + sub_808970C(); + break; + case 0x1c: + sub_808974C(); + break; + case 0x1d: + case 0x1e: + sub_8089914(); + break; + case 0x1f: + sub_8089978(); + break; + case 0x20: + case 0x21: + sub_8089C44(); + break; + case 0x22: + sub_8089C90(); + break; + case 0x23: + sub_8089EFC(); + break; + case 0x24: + sub_8089F44(); + break; + case 0x25: + sub_8089F8C(); + break; + case 0x26: + sub_808A264(); + break; + case 0x27: + sub_808A2C0(); + break; + case 0x28: + sub_808A308(); + break; + case 0x29: + sub_808A608(); + break; + case 0x2a: + sub_808A668(); + break; + case 0x2b: + sub_808A9E4(); + break; + case 0x2c: + sub_808AA3C(); + break; + case 0x2d: + sub_808AA94(); + break; + case 0x2e: + sub_808ACC0(); + break; + case 0x2f: + sub_808AD48(); + break; + case 0x30: + sub_808ADCC(); + break; + case 0x31: + sub_808B2F4(); + break; + case 0x32: + sub_808B35C(); + break; + case 0x33: + sub_808BDEC(); + break; + case 0x34: + sub_808C10C(); + break; + case 0x35: + sub_808C3A0(); + break; + case 0x36: + sub_808C5C0(); + break; + case 0x37: + sub_808C938(); + break; + case 0x38: + sub_808C9C4(); + break; + case 0x39: + sub_808CB5C(); + break; + case 0x3a: + sub_808CBB0(); + break; + case 0x3b: + sub_808CD44(); + break; + } + sub_8097FF8(); +} void DisplayPreFightDialogue(void) { diff --git a/src/code_80869E4.c b/src/code_80869E4.c index f7ffdb6..b7526d0 100644 --- a/src/code_80869E4.c +++ b/src/code_80869E4.c @@ -25,7 +25,7 @@ extern void sub_803E46C(u32); extern void sub_803E9D0(void); extern void sub_8085C54(u32, u32, u32, u32, u32); extern void PlaySoundEffect(u32); -extern struct DungeonEntity *sub_8085480(void); +extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); void SpriteLookAroundEffect(struct DungeonEntity *r0); extern void sub_8052910(u32); void sub_8086494(); @@ -64,7 +64,7 @@ void sub_80862DC(struct DungeonEntity *r0) array[1] = r0->posPixelY + (0xE0 << 6); sub_804535C(r0, array); - sub_806CDD4(r0, 0, 4); + sub_806CDD4(r0, 0, DIRECTION_NORTH); sub_8086A54(r0); } @@ -75,7 +75,7 @@ void sub_8086310(struct DungeonEntity *r0) array[1] = r0->posPixelY + (0x90 << 8); sub_804535C(r0, array); - sub_806CE68(r0, 0); + sub_806CE68(r0, DIRECTION_SOUTH); sub_8086A3C(r0); r0->visible = 0; } @@ -87,7 +87,7 @@ void sub_8086348(struct DungeonEntity *r0) array[1] = r0->posPixelY + 0xffffe000; sub_804535C(r0, array); - sub_806CDD4(r0, 0, 6); + sub_806CDD4(r0, 0, DIRECTION_WEST); sub_8086A54(r0); } @@ -98,38 +98,38 @@ void sub_8086384(struct DungeonEntity *r0) array[1] = r0->posPixelY; sub_804535C(r0, array); - sub_806CDD4(r0, 0, 6); + sub_806CDD4(r0, 0, DIRECTION_WEST); sub_8086A54(r0); } void sub_80863B8(struct DungeonEntity *r0) { - sub_806CDD4(r0, 0, 4); + sub_806CDD4(r0, 0, DIRECTION_NORTH); } void sub_80863C8(struct DungeonEntity *r0) { - sub_806CDD4(r0, 0, 0); + sub_806CDD4(r0, 0, DIRECTION_SOUTH); } void sub_80863D8(struct DungeonEntity *r0) { - sub_806CDD4(r0, 0, 6); + sub_806CDD4(r0, 0, DIRECTION_WEST); } void sub_80863E8(struct DungeonEntity *r0) { - sub_806CDD4(r0, 6, 4); + sub_806CDD4(r0, 6, DIRECTION_NORTH); } void sub_80863F8(struct DungeonEntity *r0) { - sub_806CE68(r0, 4); + sub_806CE68(r0, DIRECTION_NORTH); } void sub_8086404(struct DungeonEntity *r0) { - sub_806CE68(r0, 6); + sub_806CE68(r0, DIRECTION_WEST); } void sub_8086410(struct DungeonEntity *r0) @@ -310,7 +310,7 @@ void sub_8086690(void) void sub_80866C4(u32 r0) { - SpriteLookAroundEffect(sub_8085480()); + SpriteLookAroundEffect(xxx_call_GetLeaderEntity()); sub_803E708(0xA, 0x46); sub_8052910(r0); sub_803E708(0xA, 0x46); diff --git a/src/code_8086A3C.c b/src/code_8086A3C.c index db438c0..d8dbe4c 100644 --- a/src/code_8086A3C.c +++ b/src/code_8086A3C.c @@ -5,7 +5,8 @@ extern struct DungeonGlobalData *gDungeonGlobalData; extern void LoadIQSkills(struct DungeonEntity *); -extern struct DungeonEntity *sub_8085480(void); +extern struct DungeonEntity *GetPartnerEntity(); +extern struct DungeonEntity *xxx_call_GetLeaderEntity(void); extern struct DungeonEntity *sub_8085680(u32); extern void SetDefaultIQSkills(u8 *param_1, u8 param_2); extern void sub_8097FF8(void); @@ -20,6 +21,40 @@ extern void sub_80855E4(void *); extern void sub_8085860(s32 r0, u32 r1); extern void sub_8068FE0(struct DungeonEntity *, u32, u32); extern void sub_8097FA8(u32); +extern void sub_80858AC(void *, u32); +extern void sub_8052910(u8 *); +extern void sub_806CDD4(struct DungeonEntity *, u32, u32); +extern void sub_80869E4(struct DungeonEntity *, u32, u32, u32); +extern void sub_8083E88(u32); +extern void sub_803E708(u32, u32); +extern void sub_8086448(void); +extern void sub_80862BC(struct DungeonEntity *); +extern void sub_8086E74(struct DungeonEntity *); +extern void SpriteLookAroundEffect(struct DungeonEntity *); +extern void sub_8086A54(struct DungeonEntity *); +extern void PlaySoundEffect(u32); +extern void sub_808563C(void *); + +// X / Y Coords?? +struct subStruct_Skarmory +{ + int x; + int y; +}; + +extern u8 gUnknown_8100768; +extern u8 gUnknown_8100798; +extern u8 gUnknown_8100820; +extern u8 gUnknown_8100844; +extern u8 gUnknown_8100880; +extern u8 gUnknown_8100928; +extern u8 gUnknown_8100A04; +extern u8 gUnknown_8100B80; +extern u8 gUnknown_8100BC0; +extern u8 gUnknown_8100C90; +extern u8 gUnknown_8100CBC; +extern u8 gUnknown_8100CDC; +extern u8 gUnknown_8100D3C; void sub_8086A3C(struct DungeonEntity *param_1) { @@ -79,40 +114,40 @@ u8 sub_8086AE4(s16 _index) void sub_8086B14(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; - iVar1 = sub_8085480(); - iVar2 = sub_8085680(4); - uVar3 = sub_8085680(3); + LeaderEntity = xxx_call_GetLeaderEntity(); + DiglettEntity = sub_8085680(4); + SkarmoryEntity = sub_8085680(3); sub_8083E88(0x72); sub_8085374(); sub_80854D4(); sub_8085930(4); sub_80855E4(sub_8086A3C); - sub_8086A3C(uVar3); - iVar2->entityData->unk15C = 1; - sub_8085860(iVar1->posWorldX,iVar1->posWorldY + -2); + sub_8086A3C(SkarmoryEntity); + DiglettEntity->entityData->unk15C = 1; + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY + -2); CopySpeciesNametoBuffer(gUnknown_202E038,SPECIES_DIGLETT); CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_SKARMORY); } void sub_8086B94(void) { - struct DungeonEntity * iVar1; - struct DungeonEntity * iVar2; - struct DungeonEntity * uVar3; + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; - iVar1 = sub_8085480(); - iVar2 = sub_8085680(4); - uVar3 = sub_8085680(3); + LeaderEntity = xxx_call_GetLeaderEntity(); + DiglettEntity = sub_8085680(4); + SkarmoryEntity = sub_8085680(3); - sub_8068FE0(uVar3,0x21c,0); - sub_8068FE0(iVar2,0x21c,0); + sub_8068FE0(SkarmoryEntity,0x21c,0); + sub_8068FE0(DiglettEntity,0x21c,0); sub_80854D4(); sub_8085930(4); - sub_8085860(iVar1->posWorldX,iVar1->posWorldY); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY); } void sub_8086BDC(char param_1, s32 param_2) @@ -122,3 +157,136 @@ void sub_8086BDC(char param_1, s32 param_2) gDungeonGlobalData->unk2 = 1; } } + +void SkarmoryPreFightDialogue(void) +{ + struct DungeonEntity *LeaderEntity; + struct DungeonEntity *PartnerEntity; + struct DungeonEntity * DiglettEntity; + struct DungeonEntity * SkarmoryEntity; + + struct subStruct_Skarmory local_1c; + struct subStruct_Skarmory local_20; + + LeaderEntity = xxx_call_GetLeaderEntity(); // Player + PartnerEntity = GetPartnerEntity(); // Partner + DiglettEntity = sub_8085680(4); // Diglett + SkarmoryEntity = sub_8085680(3); // Skarmory + + local_1c.x = DiglettEntity->posPixelX; + local_1c.y = DiglettEntity->posPixelY + 0x3000; + + local_20.x = SkarmoryEntity->posPixelX; + local_20.y = SkarmoryEntity->posPixelY + 0x2000; + + sub_8086448(); + sub_803E708(10,0x46); + sub_80862BC(PartnerEntity); + sub_803E708(0x20,0x46); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100768); + sub_80858AC(&local_1c,0x40); + sub_803E708(0x40,0x46); + sub_80858AC(&local_20,0x30); + sub_8052910(&gUnknown_8100798); + sub_803E708(10,0x46); + DiglettEntity->entityData->unk15D = 1; + sub_80858AC(&local_1c,0x30); + sub_8052910(&gUnknown_8100820); // Diglett: ...I...\nI'm scared. + sub_803E708(10,0x46); + sub_80858AC(&local_20,0x20); + sub_803E708(0x20,0x46); + sub_8086E74(SkarmoryEntity); + sub_8052910(&gUnknown_8100844); // Skarmory: You!\nWhat do you think you're doing here?! + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100880); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100928); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100A04); + sub_803E708(10,0x46); + sub_806CDD4(SkarmoryEntity,0xd,0); + sub_8052910(&gUnknown_8100B80); + sub_803E708(10,0x46); + sub_80869E4(PartnerEntity,4,1,2); + sub_80869E4(LeaderEntity,4,2,6); + sub_8052910(&gUnknown_8100BC0); + sub_80869E4(PartnerEntity,4,2,4); + sub_80869E4(LeaderEntity,4,1,4); + sub_803E708(10,0x46); + sub_8083E88(0xb); + sub_80858AC(&LeaderEntity->posPixelX,0x10); +} + +void SkarmoryReFightDialogue(void) +{ + struct DungeonEntity * LeaderEntity; + struct DungeonEntity * SkarmoryEntity; + struct subStruct_Skarmory local_14; + + LeaderEntity = xxx_call_GetLeaderEntity(); + SkarmoryEntity = sub_8085680(3); + local_14.x = SkarmoryEntity->posPixelX; + local_14.y = SkarmoryEntity->posPixelY + 0x2000; + sub_8086448(); + sub_803E708(10,0x46); + sub_8086E74(SkarmoryEntity); + sub_80858AC(&local_14,0x10); + sub_8052910(&gUnknown_8100C90); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100CBC); + sub_803E708(10,0x46); + sub_806CDD4(SkarmoryEntity,0xd,0); + sub_8052910(&gUnknown_8100CDC); + sub_803E708(10,0x46); + sub_80858AC(&LeaderEntity->posPixelX,0x10); + sub_8083E88(0xb); +} + +void sub_8086E40(void) +{ + SpriteLookAroundEffect(xxx_call_GetLeaderEntity()); + sub_803E708(10,0x46); + sub_8052910(&gUnknown_8100D3C); + sub_803E708(10,0x46); + gDungeonGlobalData->unk2 = 1; +} + +void sub_8086E74(struct DungeonEntity * param_1) +{ + sub_806CDD4(param_1,0xf,0); + sub_8086A54(param_1); + PlaySoundEffect(0x1f8); + sub_803E708(0x44,0x46); +} + +void sub_8086E9C(void) +{ + struct DungeonEntity * LeaderEntity; + + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_8083E88(0x72); + sub_8085374(); + sub_80854D4(); + sub_8085930(4); + sub_80855E4(sub_8086A3C); + sub_808563C(sub_8086A3C); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); + CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE); +} + +void sub_8086F00(void) +{ + struct DungeonEntity * LeaderEntity; + + LeaderEntity = xxx_call_GetLeaderEntity(); + sub_80854D4(); + sub_8085930(4); + sub_80855E4(sub_8086A3C); + sub_8085860(LeaderEntity->posWorldX,LeaderEntity->posWorldY - 3); + CopySpeciesNametoBuffer(gUnknown_202E038, SPECIES_METAPOD); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0x50, SPECIES_GENGAR); + CopySpeciesNametoBuffer(gUnknown_202E038 + 0xA0, SPECIES_CATERPIE); +} diff --git a/src/friend_area_action_menu_1.c b/src/friend_area_action_menu_1.c index 6c4d40f..1abd973 100644 --- a/src/friend_area_action_menu_1.c +++ b/src/friend_area_action_menu_1.c @@ -22,7 +22,6 @@ extern void PlaySound(u32); extern void nullsub_104(); extern void sub_801A928(); extern void sub_8099690(u32); -extern void GivePokemonItem(s16, struct HeldItem *); extern u32 sub_801A8AC(); extern u32 sub_801A6E8(u32); diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 9fbf686..7dbc441 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -37,7 +37,6 @@ extern u8 gPartyMenuItemPlaceholder[]; extern struct UnkTextStruct2 gUnknown_80DD370; extern u32 sub_8026F04(struct PokemonStruct *); -extern void GivePokemonItem(s16 index_, struct HeldItem* item); extern void sub_8026074(u32); extern void PlaySound(u32); bool8 sub_8026F38(struct PokemonStruct *r0); diff --git a/src/kangaskhan_storage_2.c b/src/kangaskhan_storage_2.c index 9c50251..16f71bb 100644 --- a/src/kangaskhan_storage_2.c +++ b/src/kangaskhan_storage_2.c @@ -204,7 +204,7 @@ void sub_8017D24(void) switch(menuAction) { case 3: - if (GetNumberOfFilledInventorySlots() > 0x13) + if (GetNumberOfFilledInventorySlots() >= INVENTORY_SIZE) { sub_801CBB8(); UpdateKangaskhanStorageState(6); diff --git a/src/luminous_cave.c b/src/luminous_cave.c index a50e92c..eef6acd 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/bg_music.h" +#include "constants/colors.h" #include "input.h" #include "item.h" #include "memory.h" @@ -75,7 +76,6 @@ extern u8 *gUnknown_80D4934[]; extern u8 gUnknown_80DCA24[]; extern u8 gUnknown_80DCA2C[]; -extern bool8 IsPokemonRenamed(struct PokemonStruct* pokemon); extern struct PokemonStruct *GetPlayerPokemonStruct(void); extern void UpdateLuminousCaveState(u32); @@ -116,7 +116,6 @@ extern void sub_8012D60(u32 *, struct MenuItem *, u32, u16 *, u32, u32); void sub_808F734(struct PokemonStruct *, s16); void BoundedCopyStringtoBuffer(u8 *buffer, u8 *string, s32 size); u32 sub_801602C(u32 r0, u8 *name); -void sub_808D9AC(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum); extern s32 sub_80144A4(s32 *); extern u32 sub_801A6E8(u32); extern s32 sub_801A8AC(void); @@ -377,7 +376,7 @@ void UpdateLuminousCaveDialogue(void) sub_80141B4(gLuminousCaveLetUsBegin,0,0,0x105); break; case LUMINOUS_CAVE_CHANGED_APPEARANCE: - sub_808D9AC(gPlayerName,gUnknown_203B2B0->pokeStruct,5); + PrintColoredPokeNameToBuffer(gPlayerName,gUnknown_203B2B0->pokeStruct, COLOR_CYAN); PlaySound(0x1ff); gUnknown_203B2B0->fallbackState = LUMINOUS_CAVE_EVOLVED; sub_80141B4(gLuminousCaveChangedAppearance,0,0,0x105); diff --git a/src/mailbox.c b/src/mailbox.c index 88eabdd..395701f 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -6,10 +6,10 @@ #include "mailbox.h" -extern void sub_802E4B0(void); +extern void HandleMailboxMenu(void); extern void nullsub_133(void); extern void sub_802E578(void); -extern void sub_802E60C(void); +extern void HandleMailActionMenu(void); extern void sub_802E73C(void); extern void sub_802E758(void); extern void sub_802E774(void); @@ -61,7 +61,7 @@ u32 sub_802DFD8(void) SetMailboxState(1); break; case 1: - sub_802E4B0(); + HandleMailboxMenu(); break; case 2: nullsub_133(); @@ -71,7 +71,7 @@ u32 sub_802DFD8(void) sub_802E578(); break; case 6: - sub_802E60C(); + HandleMailActionMenu(); break; case 7: sub_802E73C(); diff --git a/src/mailbox_1.c b/src/mailbox_1.c index 18bb8fc..41b7994 100644 --- a/src/mailbox_1.c +++ b/src/mailbox_1.c @@ -5,8 +5,11 @@ #include "input.h" #include "mailbox.h" +extern struct unkStruct_203B304 *gUnknown_203B304; + extern u8 gMailAccepted[]; extern u8 gUnknown_80E0324[]; + extern void xxx_call_draw_string(s32 x, u32 y, u8 *, u32 , u32); extern void sub_8012BC4(u32 x, u32 y, u32, u32, u32, u32); extern void sub_8008C54(u32); @@ -21,10 +24,160 @@ extern u32 sub_802C898(void); extern void sub_802C8F4(void); extern u32 sub_802DEE0(void); extern void sub_802DF24(void); +extern u8 *sub_8095FE8(u8); +extern u8 HasNoMailinMailbox(void); +extern u8 sub_8012FD8(u32 *); +extern void sub_8013114(u32 *, s32 *); +extern u32 sub_802BDEC(u32); +extern void sub_8096A78(void); +extern void sub_8096C80(void); +extern void sub_8096D24(void); +extern void sub_8096040(u8); +extern void sub_8096DF8(u8); +extern void sub_8096078(void); +extern void PlayMenuSoundEffect(u32); +extern void PlaySound(u32); +extern void sub_802BEDC(void); +extern u8 sub_802BE74(void); +extern u8 HasNoAcceptedJobs(void); +extern u8 HasNoPKMNNews(void); +extern void sub_8012EA4(u32 *, u32); -extern struct unkStruct_203B304 *gUnknown_203B304; +void HandleMailboxMenu(void) +{ + s32 menuAction = 0; + + if(!sub_8012FD8(&gUnknown_203B304->unk6C)) + { + sub_8013114(&gUnknown_203B304->unk6C, &menuAction); + if(menuAction != 1) gUnknown_203B304->unk64 = menuAction; + } + switch(menuAction) + { + case 2: + if(!HasNoMailinMailbox()) + SetMailboxState(4); + else + sub_8012EA4(&gUnknown_203B304->unk6C, 1); + break; + case 3: + if(!HasNoAcceptedJobs()) + SetMailboxState(8); + else + sub_8012EA4(&gUnknown_203B304->unk6C, 1); + break; + case 4: + if(!HasNoPKMNNews()) + SetMailboxState(9); + else + sub_8012EA4(&gUnknown_203B304->unk6C, 1); + break; + case 8: + SetMailboxState(2); + break; + case 1: + SetMailboxState(3); + break; + } +} + +void sub_802E578(void) +{ + u8 *return_var; + + switch(sub_802BDEC(1)) + { + + case 3: + gUnknown_203B304->unk8 = sub_802BE74(); + SetMailboxState(6); + break; + case 4: + gUnknown_203B304->unk8 = sub_802BE74(); + return_var = sub_8095FE8(gUnknown_203B304->unk8); + if(return_var[0] == 1) + { + gUnknown_203B304->mailIndex = return_var[5]; + gUnknown_203B304->fallbackState = 5; + SetMailboxState(0xB); + } + else + SetMailboxState(7); + break; + case 2: + sub_802BEDC(); + SetMailboxState(1); + break; + case 0: + case 1: + break; + } +} + +void HandleMailActionMenu(void) +{ + s32 menuAction = 0; + u8 *return_var; + sub_802BDEC(0); + if(!sub_8012FD8(&gUnknown_203B304->unk6C)) + { + sub_8013114(&gUnknown_203B304->unk6C, &menuAction); + if(menuAction != 1) gUnknown_203B304->unk68 = menuAction; + } + switch(menuAction) + { + case 2: + case 3: + case 4: + break; + case 5: + PlaySound(0x133); + sub_8095FE8(gUnknown_203B304->unk8); + sub_8096A78(); + sub_8096C80(); + sub_8096D24(); + sub_8096040(gUnknown_203B304->unk8); + sub_8096078(); + if(HasNoMailinMailbox()) + { + sub_802BEDC(); + SetMailboxState(1); + } + else + SetMailboxState(5); + break; + case 8: + SetMailboxState(7); + break; + case 6: + PlaySound(0x133); + return_var = sub_8095FE8(gUnknown_203B304->unk8); + sub_8096DF8(return_var[5]); + sub_8096040(gUnknown_203B304->unk8); + sub_8096078(); + if(HasNoMailinMailbox()) + { + sub_802BEDC(); + SetMailboxState(1); + } + else + SetMailboxState(5); + break; + case 7: + PlayMenuSoundEffect(0); + return_var = sub_8095FE8(gUnknown_203B304->unk8); + gUnknown_203B304->mailIndex = return_var[5]; + gUnknown_203B304->fallbackState = 5; + SetMailboxState(0xB); + break; + case 1: + SetMailboxState(5); + break; + } +} + void sub_802E73C(void) { switch(sub_802DEE0()) @@ -63,12 +216,12 @@ void sub_802E774(void) case 3: case 4: gUnknown_203B304->mailIndex = GetPokemonNewsIndex(); - gUnknown_203B304->unk4 = 0xA; + gUnknown_203B304->fallbackState = 0xA; SetMailboxState(0xB); break; case 2: sub_802B81C(); - SetMailboxState(0x1); + SetMailboxState(1); break; } } @@ -80,7 +233,7 @@ void sub_802E7D0(void) case 2: case 3: sub_802BACC(); - SetMailboxState(gUnknown_203B304->unk4); + SetMailboxState(gUnknown_203B304->fallbackState); case 0: case 1: break; diff --git a/src/pelipper_board_1.c b/src/pelipper_board_1.c index 1bccc5a..a8e9b50 100644 --- a/src/pelipper_board_1.c +++ b/src/pelipper_board_1.c @@ -1,5 +1,32 @@ #include "global.h" #include "mailbox.h" +#include "pokemon.h" +#include "item.h" +#include "memory.h" +#include "menu.h" +#include "text.h" +#include "team_inventory.h" + +struct unkStruct_203B308 +{ + // size: 0xB6 << 1 + u32 state; + u32 unk4; + u8 unk8; + u8 fill9[0xC - 9]; + u32 unkC; + u8 fill10[0x50 - 0x10]; + u8 unk50; + u8 fill51[0x64 - 0x51]; + u32 unk64; + u32 unk68; + u32 unk6C; + u8 fill70[0xBC - 0x70]; + struct MenuItem unkBC[8]; + u16 unkFC[8]; + struct UnkTextStruct2 unk10C[4]; +}; +extern struct unkStruct_203B308 *gUnknown_203B308; extern u8 gPelipperBoard_Accepted[]; extern u8 gUnknown_80E03B8[]; @@ -10,10 +37,141 @@ extern void sub_80073B8(u32); extern void sub_80073E0(u32); extern u32 sub_802C898(void); extern void sub_802C8F4(void); -extern void SetPelipperBoardState(u32); extern u32 sub_802DEE0(void); extern void sub_802DF24(void); +extern u8 *sub_8096574(u8); +extern u8 sub_802C4A4(void); +extern void sub_8096C80(void); +extern void sub_8096D24(void); +extern void sub_8096A78(u8 *); +extern void sub_80965B8(u8); +extern void sub_80965F4(void); +extern void sub_802C2D4(void); +extern u8 sub_8012FD8(u32 *); +extern void sub_8013114(u32 *, s32 *); +extern u32 sub_802C1E4(u32); +extern void PlaySound(u32); +extern void SetPelipperBoardState(u32); +extern u8 sub_802C26C(void); +extern u8 HasNoAcceptedJobs(void); +extern void sub_8012EA4(u32 *, u32); + +void sub_802ECB4(void) +{ + s32 menuAction = 0; + + if(!sub_8012FD8(&gUnknown_203B308->unk6C)) + { + sub_8013114(&gUnknown_203B308->unk6C, &menuAction); + if(menuAction != 1) gUnknown_203B308->unk64 = menuAction; + } + + switch(menuAction) + { + case 2: + if(!sub_802C4A4()) + SetPelipperBoardState(4); + else + sub_8012EA4(&gUnknown_203B308->unk6C, 1); + break; + case 3: + if(!HasNoAcceptedJobs()) + SetPelipperBoardState(8); + else + sub_8012EA4(&gUnknown_203B308->unk6C, 1); + break; + case 5: + SetPelipperBoardState(2); + break; + case 1: + SetPelipperBoardState(3); + break; + } +} + +void sub_802ED4C(void) +{ + switch(sub_802C1E4(1)) + { + case 3: + gUnknown_203B308->unk8 = sub_802C26C(); + SetPelipperBoardState(6); + break; + case 4: + gUnknown_203B308->unk8 = sub_802C26C(); + SetPelipperBoardState(7); + break; + case 2: + sub_802C2D4(); + SetPelipperBoardState(1); + break; + case 0: + case 1: + break; + } +} +void sub_802EDBC(void) +{ + u8 *return_var; + s32 menuAction = 0; + + sub_802C1E4(0); + if(!sub_8012FD8(&gUnknown_203B308->unk6C)) + { + sub_8013114(&gUnknown_203B308->unk6C, &menuAction); + if(menuAction != 1) gUnknown_203B308->unk68 = menuAction; + } + switch(menuAction) + { + case 4: + PlaySound(0x133); + return_var = sub_8096574(gUnknown_203B308->unk8); + switch(*return_var) + { + case 2: + gUnknown_203B308->unk4 = 1; + sub_80965B8(gUnknown_203B308->unk8); + sub_80965F4(); + sub_802C2D4(); + SetPelipperBoardState(3); + break; + case 3: + gUnknown_203B308->unk4 = 2; + sub_80965B8(gUnknown_203B308->unk8); + sub_80965F4(); + sub_802C2D4(); + SetPelipperBoardState(3); + break; + case 4: + gUnknown_203B308->unk4 = 3; + sub_80965B8(gUnknown_203B308->unk8); + sub_80965F4(); + sub_802C2D4(); + SetPelipperBoardState(3); + break; + default: + sub_8096A78(return_var); + sub_8096C80(); + sub_8096D24(); + if(sub_802C4A4()) + { + sub_802C2D4(); + SetPelipperBoardState(1); + } + else + SetPelipperBoardState(5); + break; + } + break; + case 5: + SetPelipperBoardState(7); + break; + case 1: + SetPelipperBoardState(5); + break; + } +} void sub_802EEA0(void) { diff --git a/src/pokemon_mid.c b/src/pokemon_mid.c index 9bd00d5..1721e1d 100644 --- a/src/pokemon_mid.c +++ b/src/pokemon_mid.c @@ -270,12 +270,12 @@ char * GetMonSpecies(s16 index) return gMonsterParameters[index].species; } -void sub_808D9AC(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum) +void PrintColoredPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon, s32 colorNum) { u8 nameBuffer [20]; sub_80922B4(nameBuffer, pokemon->name, POKEMON_NAME_LENGTH); - if (colorNum == 0) { + if (colorNum == COLOR_WHITE) { colorNum = COLOR_CYAN; } ExpandPlaceholdersBuffer(buffer,gUnknown_810763C,colorNum,nameBuffer); // #c%c%s{END_COLOR_TEXT_2} @@ -286,7 +286,7 @@ void sub_808D9DC(u8 *buffer, u8 *param_2, s32 colorNum) u8 nameBuffer [20]; sub_80922B4(nameBuffer, param_2 + 0x58, POKEMON_NAME_LENGTH); - if (colorNum == 0) { + if (colorNum == COLOR_WHITE) { colorNum = COLOR_YELLOW; } ExpandPlaceholdersBuffer(buffer,gUnknown_810763C,colorNum,nameBuffer); // #c%c%s{END_COLOR_TEXT_2} @@ -300,7 +300,7 @@ void sub_808DA0C(u8 *buffer, u8 *param_2) ExpandPlaceholdersBuffer(buffer,gUnknown_8107638,nameBuffer); // %s } -void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon) +void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon) { sub_80922B4(buffer, pokemon->name, POKEMON_NAME_LENGTH); } diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 34feee1..1ded0ec 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -86,7 +86,7 @@ extern void sub_8013984(u32 *); extern u8 HasNoPKMNNews(void); extern u8 CheckPKMNNewsSlot(u8 r0); extern struct PokemonStruct *sub_808D3BC(void); -extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon); +extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon); extern u16 gUnknown_203B2D0; extern u16 gUnknown_203B2D2; @@ -719,7 +719,7 @@ void sub_802BC08(void) void sub_802BC7C(void) { - sub_808DA34(gAvailablePokemonNames, sub_808D3BC()); + PrintPokeNameToBuffer(gAvailablePokemonNames, sub_808D3BC()); if(gUnknown_203B46C->playerGender == FEMALE) { strcpy(gAvailablePokemonNames + 0x50, gUnknown_80DFC4C); // She diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 9c54575..4d0efcb 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -135,7 +135,7 @@ extern u8 sub_8012FD8(u32 *r0); extern void sub_8013114(u32 *, s32 *); extern u32 sub_802DEE0(void); extern void sub_802DF24(void); -extern void sub_808DA34(u8 *buffer, struct PokemonStruct *pokemon); +extern void PrintPokeNameToBuffer(u8 *buffer, struct PokemonStruct *pokemon); extern struct PokemonStruct *GetPlayerPokemonStruct(void); extern void sub_802F6FC(void); extern void sub_802F718(void); @@ -368,7 +368,7 @@ u32 sub_802F204(struct unkStruct_802F204 *r0, u8 r1) // NOTE: dumb var to get correct ordering preload = gUnknown_203B310; strcpy(gUnknown_202E5D8, preload->unk10->clientName); - sub_808DA34(gAvailablePokemonNames, GetPlayerPokemonStruct()); + PrintPokeNameToBuffer(gAvailablePokemonNames, GetPlayerPokemonStruct()); gUnknown_203B310->faceFile = GetDialogueSpriteDataPtr(gUnknown_203B310->unk10->unk14); gUnknown_203B310->faceData = NULL; |