diff options
Diffstat (limited to 'asm')
-rw-r--r-- | asm/battle_frontier_2.s | 3782 | ||||
-rw-r--r-- | asm/battle_tower.s | 30 | ||||
-rw-r--r-- | asm/cable_club.s | 2842 | ||||
-rw-r--r-- | asm/field_control_avatar.s | 2512 | ||||
-rw-r--r-- | asm/field_effect_helpers.s | 4603 | ||||
-rw-r--r-- | asm/field_player_avatar.s | 6 | ||||
-rw-r--r-- | asm/party_menu.s | 2 | ||||
-rw-r--r-- | asm/script_pokemon_util_80F87D8.s | 6 | ||||
-rw-r--r-- | asm/shop.s | 1434 | ||||
-rw-r--r-- | asm/trainer_card.s | 12 |
10 files changed, 51 insertions, 15178 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s index 4df690e59..3f6591927 100644 --- a/asm/battle_frontier_2.s +++ b/asm/battle_frontier_2.s @@ -5,3778 +5,6 @@ .text - thumb_func_start sub_819F99C -sub_819F99C: @ 819F99C - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - adds r1, r0 - adds r1, 0xDE - ldrb r1, [r1] - movs r6, 0 - adds r7, r2, 0 - ldr r0, =gStringVar1 - mov r8, r0 - cmp r1, 0 - beq _0819F9DC -_0819F9C2: - adds r0, r1, 0 - movs r1, 0xA - bl __udivsi3 - lsls r0, 24 - lsrs r1, r0, 24 - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - cmp r1, 0 - beq _0819F9DC - cmp r6, 0x3 - bls _0819F9C2 -_0819F9DC: - lsls r4, r5, 4 - adds r4, r5 - lsls r4, 2 - ldr r1, [r7] - adds r1, r4, r1 - movs r0, 0x8A - lsls r0, 1 - adds r1, r0 - mov r0, r8 - bl StringCopy7 - ldr r0, [r7] - adds r0, r4 - ldr r1, =0x0000011b - adds r0, r1 - ldrb r1, [r0] - mov r0, r8 - bl ConvertInternationalString - ldr r0, =gStringVar2 - ldr r1, [r7] - adds r1, r4 - adds r1, 0xDE - ldrb r1, [r1] - movs r2, 0x1 - adds r3, r6, 0 - bl ConvertIntToDecimalStringN - ldr r1, =gUnknown_08611330 - ldr r0, [r7] - adds r0, r4 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 25 - adds r0, r1 - ldr r1, [r0] - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819F99C - - thumb_func_start sub_819FA50 -sub_819FA50: @ 819FA50 - push {lr} - bl EnableBothScriptContexts - pop {r0} - bx r0 - thumb_func_end sub_819FA50 - - thumb_func_start sub_819FA5C -sub_819FA5C: @ 819FA5C - push {r4,r5,lr} - adds r3, r0, 0 - movs r2, 0 - adds r4, r3, 0 - adds r4, 0x28 - ldr r0, =0x0000ffff - adds r5, r0, 0 -_0819FA6A: - lsls r0, r2, 1 - adds r0, r4, r0 - ldrh r1, [r0] - orrs r1, r5 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819FA6A - adds r1, r3, 0 - adds r1, 0x38 - movs r0, 0xFF - strb r0, [r1] - ldrb r1, [r3] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r3] - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FA5C - - thumb_func_start sub_819FAA0 -sub_819FAA0: @ 819FAA0 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x19 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r0, 0 - mov r12, r0 - adds r5, r3, 0 - mov r8, r0 - ldr r1, =0x0000ffff - mov r10, r1 -_0819FAC6: - movs r2, 0 - mov r3, r12 - lsls r7, r3, 4 - movs r4, 0x1 - add r4, r12 - mov r9, r4 - adds r0, r7, r3 - lsls r3, r0, 2 -_0819FAD6: - ldr r1, [r5] - lsls r0, r2, 1 - adds r0, r3 - movs r4, 0x82 - lsls r4, 1 - adds r1, r4 - adds r1, r0 - ldrh r0, [r1] - mov r4, r10 - orrs r0, r4 - strh r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x5 - bls _0819FAD6 - ldr r2, [r5] - mov r0, r12 - adds r3, r7, r0 - lsls r3, 2 - adds r2, r3 - adds r2, 0xDC - ldrb r1, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r1 - movs r1, 0x10 - orrs r0, r1 - strb r0, [r2] - ldr r0, [r5] - adds r0, r3 - movs r1, 0x8A - lsls r1, 1 - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xDC - ldrb r2, [r1] - movs r0, 0x61 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xDE - mov r4, r8 - strb r4, [r0] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xDD - strb r4, [r0] - movs r2, 0 - ldr r6, =gSaveBlock2Ptr - movs r4, 0x88 - lsls r4, 1 -_0819FB48: - ldr r0, [r6] - adds r1, r2, r3 - adds r0, r4 - adds r0, r1 - mov r1, r8 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _0819FB48 - ldr r0, [r5] - mov r3, r12 - adds r2, r7, r3 - lsls r2, 2 - adds r0, r2 - ldr r4, =gGameLanguage - ldrb r1, [r4] - ldr r3, =0x0000011b - adds r0, r3 - strb r1, [r0] - ldr r0, [r5] - movs r4, 0x8E - lsls r4, 1 - adds r0, r4 - adds r0, r2 - mov r1, r8 - str r1, [r0] - mov r3, r9 - lsls r0, r3, 24 - lsrs r0, 24 - mov r12, r0 - cmp r0, 0x3 - bls _0819FAC6 - bl sub_81A087C - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FAA0 - - thumb_func_start sub_819FBB0 -sub_819FBB0: @ 819FBB0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - movs r1, 0x3 - ands r1, r0 - negs r0, r1 - orrs r0, r1 - lsrs r0, 31 - bx lr - .pool - thumb_func_end sub_819FBB0 - - thumb_func_start sub_819FBC8 -sub_819FBC8: @ 819FBC8 - push {r4,r5,lr} - ldr r2, =gSaveBlock2Ptr - ldr r0, [r2] - adds r0, 0xDE - ldrb r0, [r0] - cmp r0, 0 - bne _0819FC10 - adds r4, r2, 0 - ldr r5, =gUnknown_08611548 -_0819FBDA: - bl Random - ldr r2, [r4] - lsls r0, 16 - movs r1, 0xE0 - lsls r1, 11 - ands r1, r0 - lsrs r1, 16 - adds r1, r5 - ldrb r0, [r1] - adds r2, 0xB0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xB0 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - ldrb r1, [r1] - lsrs r0, 27 - cmp r1, r0 - beq _0819FBDA - b _0819FC38 - .pool -_0819FC10: - adds r4, r2, 0 -_0819FC12: - bl Random - ldr r2, [r4] - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xF - ands r0, r1 - adds r2, 0xB0 - strb r0, [r2] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xB0 - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - ldrb r1, [r1] - lsrs r0, 27 - cmp r1, r0 - beq _0819FC12 -_0819FC38: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_819FBC8 - - thumb_func_start sub_819FC40 -sub_819FC40: @ 819FC40 - lsls r0, 24 - lsrs r0, 24 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - adds r2, 0xB1 - movs r1, 0x3 - ands r0, r1 - ldrb r3, [r2] - subs r1, 0x7 - ands r1, r3 - orrs r1, r0 - strb r1, [r2] - bx lr - .pool - thumb_func_end sub_819FC40 - - thumb_func_start sub_819FC60 -sub_819FC60: @ 819FC60 - push {r4-r7,lr} - sub sp, 0xC - movs r5, 0 -_0819FC66: - mov r1, sp - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FC66 - movs r5, 0 -_0819FC78: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r7, sp - adds r2, r7, r4 - ldrb r3, [r2] - adds r1, r7, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x31 - bls _0819FC78 - movs r5, 0 - ldr r6, =gSaveBlock2Ptr - movs r4, 0xF -_0819FCBC: - ldr r3, [r6] - adds r3, 0xB4 - adds r3, r5 - lsls r2, r5, 1 - mov r1, sp - adds r0, r1, r2 - ldrb r0, [r0] - adds r1, r4, 0 - ands r1, r0 - lsls r1, 4 - adds r2, 0x1 - mov r7, sp - adds r0, r7, r2 - ldrb r2, [r0] - adds r0, r4, 0 - ands r0, r2 - orrs r1, r0 - strb r1, [r3] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819FCBC - add sp, 0xC - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FC60 - - thumb_func_start sub_819FCF8 -sub_819FCF8: @ 819FCF8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - cmp r0, 0x2 - bne _0819FD4C - ldr r6, =gUnknown_030062EC -_0819FD06: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r5, r0, 24 - movs r3, 0 - movs r2, 0 - ldr r1, [r6] - lsls r0, r5, 2 - adds r0, r5 - lsls r4, r0, 1 - adds r1, 0x2 -_0819FD26: - lsls r0, r2, 1 - adds r0, r4 - adds r0, r1, r0 - ldrh r0, [r0] - cmp r0, 0 - beq _0819FD38 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 -_0819FD38: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x4 - bls _0819FD26 - cmp r3, 0x3 - bhi _0819FD06 - b _0819FD5A - .pool -_0819FD4C: - cmp r0, 0x1 - bne _0819FD5A - ldrb r0, [r2] - adds r1, r0 - ldrb r5, [r1] - adds r0, 0x1 - strb r0, [r2] -_0819FD5A: - adds r0, r5, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_819FCF8 - - thumb_func_start sub_819FD64 -sub_819FD64: @ 819FD64 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x20 - movs r5, 0 - mov r0, sp - adds r0, 0xC - str r0, [sp, 0x14] - mov r1, sp - adds r1, 0x10 - str r1, [sp, 0x18] - adds r1, r0, 0 -_0819FD80: - adds r0, r1, r5 - strb r5, [r0] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _0819FD80 - movs r5, 0 - ldr r6, [sp, 0x14] -_0819FD92: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3 - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FD92 - movs r5, 0 - ldr r2, =gUnknown_086114D3 -_0819FDD0: - mov r4, sp - adds r1, r4, r5 - adds r0, r5, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x9 - bls _0819FDD0 - movs r5, 0 -_0819FDE6: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0xA - bl __umodsi3 - lsls r0, 24 - lsrs r0, 24 - mov r6, sp - adds r2, r6, r4 - ldrb r3, [r2] - adds r1, r6, r0 - ldrb r0, [r1] - strb r0, [r2] - strb r3, [r1] - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x31 - bls _0819FDE6 - ldr r4, =gUnknown_030062EC - movs r0, 0x30 - bl AllocZeroed - str r0, [r4] - movs r1, 0 - strb r1, [r0] - movs r5, 0 - movs r2, 0x4 -_0819FE34: - movs r3, 0 -_0819FE36: - ldr r0, [r4] - lsls r1, r3, 2 - adds r1, r3 - adds r1, r5, r1 - adds r0, 0x20 - adds r0, r1 - strb r2, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x2 - bls _0819FE36 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x4 - bls _0819FE34 - movs r0, 0 - ldr r7, [sp, 0x18] - strb r0, [r7] - movs r5, 0 -_0819FE60: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - lsls r4, r5, 2 - adds r3, r4 - mov r1, sp - adds r6, r1, r5 - ldrb r0, [r6] - adds r3, 0xB8 - movs r2, 0x3 - ands r2, r0 - ldrb r0, [r3] - movs r7, 0x4 - negs r7, r7 - adds r1, r7, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldrb r0, [r6] - adds r5, 0x1 - str r5, [sp, 0x1C] - mov r8, r4 - cmp r0, 0x3 - beq _0819FF62 - ldrb r0, [r6] - ldr r1, [sp, 0x14] - ldr r2, [sp, 0x18] - bl sub_819FCF8 - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - add r3, r8 - adds r3, 0xB8 - movs r2, 0x3 - ands r2, r0 - lsls r2, 2 - ldrb r0, [r3] - movs r4, 0xD - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r2 - strb r0, [r3] - ldr r7, =gSaveBlock2Ptr - ldr r0, [r7] - add r0, r8 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r7, r0, 30 - ldrb r0, [r6] - cmp r0, 0x2 - bne _0819FF62 - lsls r0, r7, 2 - adds r0, r7 - mov r10, r0 - ldr r0, =gUnknown_030062EC - mov r9, r0 -_0819FED2: - bl Random - lsls r0, 16 - lsrs r4, r0, 16 - movs r1, 0x3 - ands r4, r1 - movs r3, 0 - mov r6, r9 - ldr r2, [r6] - ldrb r0, [r2] - adds r1, r0, 0x1 - lsls r5, r7, 2 - cmp r3, r1 - bge _0819FF12 - adds r2, 0x20 - mov r6, r10 - adds r0, r2, r6 - ldrb r0, [r0] - cmp r0, r4 - beq _0819FF12 - adds r6, r1, 0 - adds r1, r5, r7 -_0819FEFE: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r6 - bge _0819FF12 - adds r0, r3, r1 - adds r0, r2, r0 - ldrb r0, [r0] - cmp r0, r4 - bne _0819FEFE -_0819FF12: - mov r1, r9 - ldr r0, [r1] - ldrb r0, [r0] - adds r0, 0x1 - ldr r1, =gUnknown_030062EC - cmp r3, r0 - bne _0819FED2 - ldr r0, [r1] - orrs r5, r7 - ldrb r2, [r0] - adds r1, r5, r2 - adds r0, 0x20 - adds r0, r1 - strb r4, [r0] - ldr r6, =gSaveBlock2Ptr - ldr r2, [r6] - add r2, r8 - adds r2, 0xB8 - movs r7, 0x3 - ands r4, r7 - lsls r3, r4, 4 - ldrb r0, [r2] - movs r4, 0x31 - negs r4, r4 - adds r1, r4, 0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - ldr r0, [r6] - add r0, r8 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r0, 30 - bl sub_819FF98 - ldr r1, [r6] - add r1, r8 - adds r1, 0xBA - strh r0, [r1] -_0819FF62: - ldr r6, [sp, 0x1C] - lsls r0, r6, 24 - lsrs r5, r0, 24 - cmp r5, 0x8 - bhi _0819FF6E - b _0819FE60 -_0819FF6E: - ldr r4, =gUnknown_030062EC - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - add sp, 0x20 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_819FD64 - - thumb_func_start sub_819FF98 -sub_819FF98: @ 819FF98 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x10 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0 - str r0, [sp, 0xC] - movs r7, 0 - ldr r1, [sp] - cmp r1, 0x2 - bhi _0819FFE0 - ldr r2, =gSaveBlock2Ptr - ldr r1, [r2] - adds r0, r1, 0 - adds r0, 0xB4 - ldr r3, [sp] - adds r0, r3 - ldrb r4, [r0] - adds r1, 0xB2 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r3 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r4, r0 - movs r0, 0xF - ands r4, r0 - b _0819FFE4 - .pool -_0819FFE0: - movs r4, 0 - ldr r2, =gSaveBlock2Ptr -_0819FFE4: - ldr r3, =gUnknown_08610970 - lsls r1, r4, 1 - ldr r4, [r2] - adds r0, r4, 0 - adds r0, 0xB0 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r1, [r1] - str r1, [sp, 0x8] - ldr r1, =gLevelUpLearnsets - ldr r2, [sp, 0x8] - lsls r0, r2, 2 - adds r0, r1 - ldr r6, [r0] - movs r3, 0 - adds r4, 0xB1 - ldrb r1, [r4] - movs r0, 0x3 - ands r0, r1 - movs r5, 0x3C - cmp r0, 0x1 - bne _081A001A - movs r5, 0x32 -_081A001A: - ldrh r1, [r6] - ldr r4, =0x0000ffff - cmp r1, r4 - beq _081A004C - movs r2, 0xFE - lsls r2, 8 - adds r0, r2, 0 - ands r0, r1 - lsls r1, r5, 9 - cmp r0, r1 - bgt _081A004C - adds r5, r2, 0 - adds r2, r1, 0 -_081A0034: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - lsls r0, r3, 1 - adds r0, r6 - ldrh r1, [r0] - cmp r1, r4 - beq _081A004C - adds r0, r5, 0 - ands r0, r1 - cmp r0, r2 - ble _081A0034 -_081A004C: - adds r5, r3, 0 - movs r3, 0 - str r3, [sp, 0x4] -_081A0052: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _081A0068 - ldr r0, [sp, 0xC] - cmp r0, 0x1 - bne _081A00E0 -_081A0068: - ldr r1, =0x000001ff - mov r8, r1 -_081A006C: - bl Random - lsls r0, 16 - lsrs r0, 16 - movs r1, 0x3A - bl __umodsi3 - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, [sp, 0x8] - adds r1, r4, 0 - bl CanSpeciesLearnTMHM - adds r2, r0, 0 - cmp r2, 0 - beq _081A006C - ldr r2, =0x00000121 - adds r0, r4, r2 - bl ItemIdToBattleMoveId - lsls r0, 16 - lsrs r7, r0, 16 - movs r2, 0x1 - cmp r5, 0x4 - bhi _081A00BC - movs r3, 0 - b _081A00C6 - .pool -_081A00BC: - subs r0, r5, 0x4 - b _081A00C2 -_081A00C0: - adds r0, r3, 0x1 -_081A00C2: - lsls r0, 24 - lsrs r3, r0, 24 -_081A00C6: - cmp r3, r5 - bcs _081A00DA - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - mov r1, r8 - ands r0, r1 - cmp r0, r7 - bne _081A00C0 - movs r2, 0 -_081A00DA: - cmp r2, 0x1 - bne _081A006C - b _081A0146 -_081A00E0: - cmp r5, 0x4 - bhi _081A00EA - movs r2, 0x1 - str r2, [sp, 0xC] - b _081A0168 -_081A00EA: - subs r4, r5, 0x4 - ldr r3, =0x000001ff - mov r10, r3 - mov r8, r3 - lsls r0, r4, 24 - mov r9, r0 -_081A00F6: - bl Random - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl __modsi3 - lsls r0, 24 - lsrs r0, 23 - adds r0, r6 - ldrh r0, [r0] - mov r7, r8 - ands r7, r0 - movs r2, 0x1 - mov r1, r9 - lsrs r3, r1, 24 - cmp r3, r5 - bcs _081A0142 - lsls r0, r3, 1 - adds r0, r6 - ldrh r1, [r0] - mov r0, r8 - b _081A013A - .pool -_081A0128: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r5 - bcs _081A0142 - lsls r0, r3, 1 - adds r0, r6 - ldrh r0, [r0] - mov r1, r10 -_081A013A: - ands r0, r1 - cmp r0, r7 - bne _081A0128 - movs r2, 0 -_081A0142: - cmp r2, 0x1 - bne _081A00F6 -_081A0146: - ldr r0, [sp] - adds r1, r7, 0 - bl sub_81A0194 - lsls r0, 24 - cmp r0, 0 - beq _081A0168 - ldr r0, =gUnknown_08611370 - adds r0, r7, r0 - ldrb r0, [r0] - cmp r0, 0 - bne _081A0170 - ldr r0, [sp, 0x4] - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp, 0x4] -_081A0168: - ldr r2, [sp, 0x4] - cmp r2, 0x4 - bhi _081A0170 - b _081A0052 -_081A0170: - ldr r0, =gUnknown_030062EC - ldr r1, [r0] - ldrb r0, [r1] - adds r0, 0x1 - strb r0, [r1] - adds r0, r7, 0 - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_819FF98 - - thumb_func_start sub_81A0194 -sub_81A0194: @ 81A0194 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r1, 16 - lsrs r5, r1, 16 - movs r3, 0 - ldr r0, =gUnknown_030062EC - mov r12, r0 - ldr r2, [r0] - lsls r1, r4, 2 - adds r0, r1, r4 - lsls r6, r0, 1 - adds r2, 0x2 - adds r7, r1, 0 -_081A01B0: - lsls r0, r3, 1 - adds r0, r6 - adds r0, r2, r0 - ldrh r0, [r0] - cmp r0, r5 - bne _081A01C4 - movs r0, 0 - b _081A01E2 - .pool -_081A01C4: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x4 - bls _081A01B0 - mov r2, r12 - ldr r1, [r2] - adds r0, r7, r4 - ldrb r2, [r1] - adds r0, r2 - lsls r0, 1 - adds r1, 0x2 - adds r1, r0 - strh r5, [r1] - movs r0, 0x1 -_081A01E2: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81A0194 - - thumb_func_start sub_81A01E8 -sub_81A01E8: @ 81A01E8 - push {r4-r7,lr} - mov r12, r1 - lsls r0, 16 - lsrs r2, r0, 16 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - movs r4, 0x3C - cmp r0, 0x1 - bne _081A0204 - movs r4, 0x32 -_081A0204: - ldr r1, =gLevelUpLearnsets - lsls r0, r2, 2 - adds r0, r1 - ldr r6, [r0] - movs r5, 0 - ldrh r1, [r6] - ldr r3, =0x0000ffff - cmp r1, r3 - beq _081A0240 - movs r2, 0xFE - lsls r2, 8 - adds r0, r2, 0 - ands r0, r1 - lsls r1, r4, 9 - cmp r0, r1 - bgt _081A0240 - adds r4, r2, 0 - adds r2, r1, 0 -_081A0228: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 1 - adds r0, r6 - ldrh r1, [r0] - cmp r1, r3 - beq _081A0240 - adds r0, r4, 0 - ands r0, r1 - cmp r0, r2 - ble _081A0228 -_081A0240: - adds r4, r5, 0 - cmp r4, 0x4 - bls _081A0248 - movs r4, 0x4 -_081A0248: - movs r2, 0 - cmp r2, r4 - bcs _081A026C - ldr r7, =0x000001ff -_081A0250: - lsls r3, r2, 1 - add r3, r12 - adds r2, 0x1 - subs r0, r5, r2 - lsls r0, 1 - adds r0, r6 - ldrh r1, [r0] - adds r0, r7, 0 - ands r0, r1 - strh r0, [r3] - lsls r2, 24 - lsrs r2, 24 - cmp r2, r4 - bcc _081A0250 -_081A026C: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A01E8 - - thumb_func_start sub_81A0284 -sub_81A0284: @ 81A0284 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x8 - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r5, r2, 24 - ldr r1, =gSaveBlock2Ptr - ldr r2, [r1] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - adds r7, r1, 0 - cmp r0, 0x2 - bhi _081A02B8 - movs r0, 0 - b _081A037C - .pool -_081A02B8: - movs r4, 0 - movs r3, 0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r1, =gUnknown_08610970 - mov r12, r1 - lsls r6, 1 - lsls r5, 1 - mov r9, r5 - cmp r0, 0 - beq _081A02F4 - adds r2, r7, 0 -_081A02D4: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x8 - bhi _081A02F4 - ldr r0, [r2] - lsls r1, r3, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A02D4 -_081A02F4: - ldr r0, [r7] - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r6, r0 - mov r1, r12 - adds r1, 0x34 - adds r0, r1 - ldrh r0, [r0] - mov r1, sp - bl sub_81A01E8 - movs r3, 0 - cmp r3, r4 - bcs _081A0376 - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r3, r0 - bge _081A0376 - adds r6, r7, 0 - adds r5, r1, 0 -_081A032A: - lsls r0, r3, 2 - adds r2, r5, r0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x2 - bne _081A035C - lsls r0, r1, 28 - lsrs r0, 30 - cmp r0, r8 - bne _081A035C - lsrs r0, r1, 6 - cmp r0, 0 - beq _081A035C - lsls r0, r1, 26 - lsrs r0, 30 - lsls r0, 1 - mov r7, sp - adds r1, r7, r0 - adds r0, r2, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1] -_081A035C: - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, r4 - bcs _081A0376 - ldr r0, [r6] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r3, r0 - blt _081A032A -_081A0376: - mov r0, sp - add r0, r9 - ldrh r0, [r0] -_081A037C: - add sp, 0x8 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81A0284 - - thumb_func_start sub_81A0390 -sub_81A0390: @ 81A0390 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0xC - lsls r0, 24 - lsrs r0, 24 - mov r8, r0 - movs r5, 0 - ldr r7, =gSaveBlock2Ptr - adds r6, r7, 0 - movs r4, 0 -_081A03A6: - ldr r0, [r6] - lsls r2, r5, 1 - adds r2, r5 - lsls r2, 2 - adds r0, r2 - adds r1, r0, 0 - adds r1, 0xE0 - strh r4, [r1] - adds r0, 0xEA - strh r4, [r0] - movs r3, 0 -_081A03BC: - ldr r0, [r6] - lsls r1, r3, 1 - adds r1, r2 - adds r0, 0xE2 - adds r0, r1 - strh r4, [r0] - adds r0, r3, 0x1 - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x3 - bls _081A03BC - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A03A6 - ldr r0, [r7] - adds r0, 0xB1 - ldrb r0, [r0] - lsrs r3, r0, 6 - movs r5, 0 -_081A03E6: - lsls r0, r3, 2 - mov r1, sp - adds r2, r1, r0 - lsls r0, r5, 1 - adds r0, r5 - lsls r0, 2 - adds r0, 0xE0 - ldr r1, [r7] - adds r1, r0 - str r1, [r2] - adds r0, r3, 0x1 - movs r1, 0x3 - bl __modsi3 - lsls r0, 24 - lsrs r3, r0, 24 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A03E6 - movs r5, 0 - ldr r7, =gSaveBlock2Ptr - ldr r6, =gUnknown_08610970+0x34 -_081A0416: - ldr r0, [r7] - mov r12, r0 - adds r0, 0xB4 - adds r0, r5 - ldrb r2, [r0] - mov r0, r12 - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r5 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - lsls r0, r5, 2 - mov r1, sp - adds r3, r1, r0 - ldr r4, [r3] - lsls r2, 1 - mov r0, r12 - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r2, r0 - adds r2, r6 - ldrh r0, [r2] - strh r0, [r4] - ldr r1, [r3] - ldrh r0, [r1] - adds r1, 0x2 - bl sub_81A01E8 - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x2 - bls _081A0416 - movs r5, 0 - cmp r5, r8 - bcs _081A04D6 - ldr r7, =gSaveBlock2Ptr -_081A0470: - ldr r1, [r7] - lsls r0, r5, 2 - adds r4, r1, r0 - adds r0, r4, 0 - adds r0, 0xB8 - ldrb r2, [r0] - lsls r0, r2, 30 - lsrs r1, r0, 30 - lsls r0, r2, 28 - lsrs r3, r0, 30 - adds r6, r3, 0 - cmp r1, 0x1 - bne _081A04A8 - lsrs r0, r2, 6 - cmp r0, 0 - beq _081A04CC - lsls r0, r3, 2 - add r0, sp - ldr r1, [r0] - adds r0, r4, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1, 0xA] - b _081A04CC - .pool -_081A04A8: - cmp r1, 0x2 - bne _081A04CC - lsls r0, r2, 24 - lsrs r0, 30 - cmp r0, 0 - beq _081A04CC - lsls r2, 26 - lsrs r2, 30 - lsls r0, r6, 2 - add r0, sp - ldr r1, [r0] - lsls r2, 1 - adds r1, 0x2 - adds r1, r2 - adds r0, r4, 0 - adds r0, 0xBA - ldrh r0, [r0] - strh r0, [r1] -_081A04CC: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, r8 - bcc _081A0470 -_081A04D6: - add sp, 0xC - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A0390 - - thumb_func_start sub_81A04E4 -sub_81A04E4: @ 81A04E4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x18 - lsls r0, 24 - lsrs r0, 24 - movs r7, 0x2 - cmp r0, 0x6 - bls _081A04FC - b _081A064C -_081A04FC: - lsls r0, 2 - ldr r1, =_081A050C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A050C: - .4byte _081A0528 - .4byte _081A0540 - .4byte _081A05B4 - .4byte _081A05F4 - .4byte _081A061C - .4byte _081A064C - .4byte _081A0634 -_081A0528: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gText_Lv50 - str r0, [sp, 0xC] - ldr r0, =gText_OpenLevel - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A0540: - movs r7, 0x3 - movs r1, 0x12 - mov r10, r1 - movs r6, 0x6 - movs r4, 0 - ldr r0, =gSpeciesNames - mov r9, r0 - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - movs r1, 0xB2 - adds r1, r3 - mov r12, r1 - adds r5, r3, 0 - adds r5, 0xB0 - ldr r0, =gUnknown_08610970+0x34 - mov r8, r0 -_081A0560: - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r4 - ldrb r2, [r0] - mov r1, r12 - ldrb r0, [r1] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r4 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - lsls r2, 1 - ldrb r1, [r5] - movs r0, 0x58 - muls r0, r1 - adds r2, r0 - add r2, r8 - ldrh r1, [r2] - lsls r0, r4, 2 - mov r2, sp - adds r2, r0 - adds r2, 0xC - movs r0, 0xB - muls r0, r1 - add r0, r9 - str r0, [r2] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A0560 - b _081A0652 - .pool -_081A05B4: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - cmp r0, 0x2 - bls _081A05CC - b _081A06FA -_081A05CC: - ldr r0, =gUnknown_030062F0 - ldr r3, [r0] - ldrh r0, [r3, 0x2] - movs r2, 0xB - muls r0, r2 - ldr r1, =gSpeciesNames - adds r0, r1 - str r0, [sp, 0x10] - ldrh r0, [r3] - muls r0, r2 - adds r0, r1 - str r0, [sp, 0xC] - b _081A0652 - .pool -_081A05F4: - movs r1, 0x11 - mov r10, r1 - movs r6, 0x8 - ldr r0, =gUnknown_030062F0 - ldr r3, [r0] - ldrh r0, [r3, 0x4] - movs r2, 0xD - muls r0, r2 - ldr r1, =gMoveNames - adds r0, r1 - str r0, [sp, 0xC] - ldrh r0, [r3, 0x6] - muls r0, r2 - adds r0, r1 - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A061C: - movs r0, 0x12 - mov r10, r0 - movs r6, 0x8 - ldr r0, =gText_Give - str r0, [sp, 0xC] - ldr r0, =gText_NoNeed - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A0634: - movs r1, 0x14 - mov r10, r1 - movs r6, 0x8 - ldr r0, =gText_Yes - str r0, [sp, 0xC] - ldr r0, =gText_No - str r0, [sp, 0x10] - b _081A0652 - .pool -_081A064C: - movs r0, 0 - mov r10, r0 - movs r6, 0 -_081A0652: - movs r5, 0 - movs r4, 0 - lsls r1, r7, 25 - mov r8, r1 - cmp r4, r7 - bcs _081A067E -_081A065E: - lsls r0, r4, 2 - add r0, sp - adds r0, 0xC - ldr r1, [r0] - movs r0, 0x1 - movs r2, 0 - bl GetStringWidth - cmp r0, r5 - ble _081A0674 - adds r5, r0, 0 -_081A0674: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _081A065E -_081A067E: - adds r0, r5, 0 - bl convert_pixel_width_to_tile_width - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - adds r1, r4, 0 - bl sub_80E2D5C - lsls r0, 24 - lsrs r0, 24 - mov r10, r0 - mov r0, r8 - lsrs r3, r0, 24 - mov r0, r10 - adds r1, r6, 0 - adds r2, r4, 0 - bl sub_81A0784 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - movs r1, 0 - bl SetStandardWindowBorderStyle - movs r4, 0 - cmp r4, r7 - bcs _081A06E6 -_081A06B8: - lsls r0, r4, 2 - add r0, sp - adds r0, 0xC - ldr r2, [r0] - lsls r0, r4, 4 - adds r0, 0x1 - lsls r0, 24 - lsrs r0, 24 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r5, 0 - movs r1, 0x1 - movs r3, 0x8 - bl AddTextPrinterParameterized - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r7 - bcc _081A06B8 -_081A06E6: - adds r0, r5, 0 - adds r1, r7, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - movs r0, 0x1 - adds r1, r7, 0 - adds r2, r5, 0 - bl sub_81A0804 -_081A06FA: - add sp, 0x18 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A04E4 - - thumb_func_start sub_81A070C -sub_81A070C: @ 81A070C - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081A0730 - bl Menu_ProcessInputNoWrapAround - b _081A0734 - .pool -_081A0730: - bl ProcessMenuInput -_081A0734: - lsls r0, 24 - lsrs r0, 24 - lsls r0, 24 - asrs r1, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _081A0778 - adds r0, 0x1 - cmp r1, r0 - bne _081A0764 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _081A0778 - movs r0, 0x5 - bl PlaySE - ldr r1, =gSpecialVar_Result - movs r0, 0x7F - strh r0, [r1] - b _081A0768 - .pool -_081A0764: - ldr r0, =gSpecialVar_Result - strh r1, [r0] -_081A0768: - ldrb r0, [r4, 0xC] - bl sub_81A07E8 - adds r0, r5, 0 - bl DestroyTask - bl EnableBothScriptContexts -_081A0778: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A070C - - thumb_func_start sub_81A0784 -sub_81A0784: @ 81A0784 - push {r4,r5,lr} - sub sp, 0x20 - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsls r5, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x80 - lsls r0, 17 - adds r4, r0 - lsrs r4, 24 - adds r5, r0 - lsrs r5, 24 - str r2, [sp] - str r3, [sp, 0x4] - movs r0, 0xF - str r0, [sp, 0x8] - movs r0, 0x64 - str r0, [sp, 0xC] - add r0, sp, 0x10 - movs r1, 0 - adds r2, r4, 0 - adds r3, r5, 0 - bl CreateWindowTemplate - ldr r0, [sp, 0x10] - ldr r1, [sp, 0x14] - str r0, [sp, 0x18] - str r1, [sp, 0x1C] - add r0, sp, 0x18 - bl AddWindow - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl PutWindowTilemap - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - adds r0, r4, 0 - add sp, 0x20 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_81A0784 - - thumb_func_start sub_81A07E8 -sub_81A07E8: @ 81A07E8 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0x1 - bl sub_8198070 - adds r0, r4, 0 - bl RemoveWindow - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A07E8 - - thumb_func_start sub_81A0804 -sub_81A0804: @ 81A0804 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r5, 24 - lsrs r5, 24 - lsls r2, 24 - lsrs r6, r2, 24 - ldr r0, =sub_81A070C - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r1, r0, r1 - strh r4, [r1, 0x10] - cmp r5, 0x3 - bls _081A0840 - movs r0, 0x1 - b _081A0842 - .pool -_081A0840: - movs r0, 0 -_081A0842: - strh r0, [r1, 0x12] - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - strh r6, [r0, 0x14] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0804 - - thumb_func_start sub_81A085C -sub_81A085C: @ 81A085C - push {lr} - ldr r1, =gUnknown_086114E0 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - lsls r0, 2 - adds r0, r1 - ldr r0, [r0] - bl _call_via_r0 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A085C - - thumb_func_start sub_81A087C -sub_81A087C: @ 81A087C - push {r4-r7,lr} - bl sub_819FBC8 - ldr r3, =gSaveBlock2Ptr - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x4 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x3D - negs r0, r0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB1 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r1, [r3] - adds r1, 0xB2 - ldrb r2, [r1] - movs r0, 0x8 - negs r0, r0 - ands r0, r2 - strb r0, [r1] - movs r4, 0 - movs r1, 0 -_081A08BE: - ldr r0, [r3] - adds r0, 0xB4 - adds r0, r4 - strb r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x2 - bls _081A08BE - movs r4, 0 - ldr r5, =gSaveBlock2Ptr - movs r0, 0x4 - negs r0, r0 - mov r12, r0 - movs r7, 0xD - negs r7, r7 - movs r6, 0x31 - negs r6, r6 -_081A08E2: - ldr r1, [r5] - lsls r3, r4, 2 - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - mov r0, r12 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - adds r0, r7, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - adds r0, r6, 0 - ands r0, r2 - strb r0, [r1] - ldr r1, [r5] - adds r1, r3 - adds r1, 0xB8 - ldrb r2, [r1] - movs r0, 0x3F - ands r0, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, r3 - adds r0, 0xBA - movs r1, 0 - strh r1, [r0] - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x8 - bls _081A08E2 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A087C - - thumb_func_start sub_81A093C -sub_81A093C: @ 81A093C - push {lr} - bl sub_819FBB0 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _081A0954 - ldr r0, =gSpecialVar_Result - strh r1, [r0] - b _081A095A - .pool -_081A0954: - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - strh r0, [r1] -_081A095A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A093C - - thumb_func_start sub_81A0964 -sub_81A0964: @ 81A0964 - push {lr} - ldr r0, =gSpecialVar_0x8005 - ldrb r0, [r0] - bl sub_819FC40 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0964 - - thumb_func_start sub_81A0978 -sub_81A0978: @ 81A0978 - push {lr} - bl sub_819FBC8 - pop {r0} - bx r0 - thumb_func_end sub_81A0978 - - thumb_func_start sub_81A0984 -sub_81A0984: @ 81A0984 - push {lr} - bl sub_819FD64 - pop {r0} - bx r0 - thumb_func_end sub_81A0984 - - thumb_func_start sub_81A0990 -sub_81A0990: @ 81A0990 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xB1 - ldrb r3, [r2] - lsls r1, r3, 26 - lsrs r1, 28 - adds r1, 0x1 - movs r0, 0xF - ands r1, r0 - lsls r1, 2 - movs r0, 0x3D - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_81A0990 - - thumb_func_start sub_81A09B4 -sub_81A09B4: @ 81A09B4 - ldr r1, =gSpecialVar_Result - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A09B4 - - thumb_func_start sub_81A09D0 -sub_81A09D0: @ 81A09D0 - push {lr} - ldr r3, =gSaveBlock2Ptr - ldr r0, [r3] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r1, r0, 0x3 - cmp r1, 0 - bge _081A09F4 - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - b _081A0A1C - .pool -_081A09F4: - ldr r2, =gSpecialVar_Result - cmp r1, 0x8 - ble _081A09FE - movs r0, 0x1 - strh r0, [r2] -_081A09FE: - ldr r0, [r3] - lsls r1, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A0A18 - movs r0, 0x1 - b _081A0A1A - .pool -_081A0A18: - movs r0, 0 -_081A0A1A: - strh r0, [r2] -_081A0A1C: - pop {r0} - bx r0 - thumb_func_end sub_81A09D0 - - thumb_func_start sub_81A0A20 -sub_81A0A20: @ 81A0A20 - push {lr} - ldr r0, =gSpecialVar_0x8005 - ldrb r0, [r0] - bl sub_81A04E4 - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0A20 - - thumb_func_start sub_81A0A34 -sub_81A0A34: @ 81A0A34 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl RunTextPrintersAndIsPrinter0Active - lsls r0, 16 - cmp r0, 0 - bne _081A0A68 - adds r0, r4, 0 - bl DestroyTask - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0A64 - ldr r0, =EnableBothScriptContexts - bl sub_81A172C - b _081A0A68 - .pool -_081A0A64: - bl EnableBothScriptContexts -_081A0A68: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_81A0A34 - - thumb_func_start sub_81A0A70 -sub_81A0A70: @ 81A0A70 - push {lr} - ldr r1, =gSpecialVar_0x8006 - ldrh r0, [r1] - cmp r0, 0x6 - bne _081A0A94 - ldr r1, =gUnknown_08610FF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0A94: - cmp r0, 0x7 - bne _081A0AB0 - ldr r1, =gUnknown_08610FF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0AB0: - cmp r0, 0x8 - bne _081A0ACC - ldr r1, =gUnknown_086111B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0ACC: - cmp r0, 0x9 - bne _081A0AE8 - ldr r1, =gUnknown_086111B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0AE8: - cmp r0, 0x4 - bne _081A0B04 - ldr r1, =gUnknown_08611230 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0B04: - cmp r0, 0x5 - bne _081A0B20 - ldr r1, =gUnknown_08611230 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0B20: - cmp r0, 0xA - bne _081A0B40 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - b _081A0BD6 - .pool -_081A0B40: - cmp r0, 0xB - bne _081A0B5C - ldr r1, =gUnknown_086112B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - b _081A0C66 - .pool -_081A0B5C: - cmp r0, 0xC - bne _081A0B7C - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0xC - b _081A0BD6 - .pool -_081A0B7C: - cmp r0, 0xD - bne _081A0B9C - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x4 - b _081A0BD6 - .pool -_081A0B9C: - ldrh r0, [r1] - cmp r0, 0x10 - bne _081A0BC0 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x10 - b _081A0BD6 - .pool -_081A0BC0: - cmp r0, 0xE - bne _081A0BE4 - ldr r2, =gUnknown_08611070 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 2 - adds r2, 0x8 -_081A0BD6: - adds r0, r2 - ldr r1, [r0] - b _081A0C7A - .pool -_081A0BE4: - cmp r0, 0xF - bne _081A0C00 - ldr r1, =gUnknown_086112B0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 3 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0C00: - cmp r0, 0 - bne _081A0C1C - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - b _081A0C66 - .pool -_081A0C1C: - cmp r0, 0x1 - bne _081A0C38 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0x4 - b _081A0C66 - .pool -_081A0C38: - cmp r0, 0x2 - bne _081A0C54 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0x8 - b _081A0C66 - .pool -_081A0C54: - cmp r0, 0x3 - bne _081A0C74 - ldr r1, =gUnknown_08610EF0 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - lsls r0, 4 - adds r1, 0xC -_081A0C66: - adds r0, r1 - ldr r1, [r0] - b _081A0C7A - .pool -_081A0C74: - bl EnableBothScriptContexts - b _081A0C8E -_081A0C7A: - ldr r0, =gStringVar4 - bl StringExpandPlaceholders - movs r0, 0x1 - bl AddTextPrinterForMessage - ldr r0, =sub_81A0A34 - movs r1, 0x1 - bl CreateTask -_081A0C8E: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0A70 - - thumb_func_start sub_81A0C9C -sub_81A0C9C: @ 81A0C9C - push {lr} - bl ScriptContext2_Enable - bl FreezeEventObjects - bl sub_808B864 - bl sub_808BCF4 - movs r0, 0 - movs r1, 0x1 - bl NewMenuHelpers_DrawDialogueFrame - bl sub_81A0A70 - pop {r0} - bx r0 - thumb_func_end sub_81A0C9C - - thumb_func_start sub_81A0CC0 -sub_81A0CC0: @ 81A0CC0 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bhi _081A0CE4 - ldr r1, =gSpecialVar_Result - movs r0, 0x2 - b _081A0D34 - .pool -_081A0CE4: - lsrs r0, r1, 28 - cmp r0, 0xB - bhi _081A0D30 - lsrs r0, r1, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r2, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - beq _081A0D18 - cmp r0, 0x2 - bgt _081A0D08 - cmp r0, 0x1 - beq _081A0D0E - b _081A0D30 -_081A0D08: - cmp r0, 0x3 - beq _081A0D24 - b _081A0D30 -_081A0D0E: - ldr r1, =gSpecialVar_Result - movs r0, 0x4 - b _081A0D34 - .pool -_081A0D18: - ldr r1, =gSpecialVar_Result - movs r0, 0x3 - b _081A0D34 - .pool -_081A0D24: - ldr r1, =gSpecialVar_Result - movs r0, 0x1 - b _081A0D34 - .pool -_081A0D30: - ldr r1, =gSpecialVar_Result - movs r0, 0x5 -_081A0D34: - strh r0, [r1] - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0CC0 - - thumb_func_start sub_81A0D40 -sub_81A0D40: @ 81A0D40 - push {r4,lr} - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0D6E - ldr r4, =gSpecialVar_0x8006 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - adds r2, 0xB2 - ldrb r3, [r2] - lsls r0, r3, 29 - lsrs r0, 29 - movs r1, 0x1 - ldrb r4, [r4] - lsls r1, r4 - orrs r1, r0 - movs r0, 0x7 - ands r1, r0 - movs r0, 0x8 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] -_081A0D6E: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0D40 - - thumb_func_start sub_81A0D80 -sub_81A0D80: @ 81A0D80 - push {lr} - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bls _081A0DCE - subs r0, 0x3 - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0 - beq _081A0DC0 - lsls r2, 2 - adds r2, r3, r2 - adds r2, 0xB8 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - b _081A0DCE - .pool -_081A0DC0: - lsls r0, r2, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] -_081A0DCE: - pop {r0} - bx r0 - thumb_func_end sub_81A0D80 - - thumb_func_start sub_81A0DD4 -sub_81A0DD4: @ 81A0DD4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - movs r6, 0 - movs r2, 0 - ldr r1, =gSaveBlock2Ptr - ldr r0, [r1] - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r3, =gUnknown_030062F0 - mov r9, r3 - cmp r0, 0 - beq _081A0E14 - adds r3, r1, 0 -_081A0DF4: - adds r0, r6, 0x1 - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A0E14 - ldr r0, [r3] - lsls r1, r2, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A0DF4 -_081A0E14: - mov r4, r9 - movs r0, 0x8 - bl AllocZeroed - adds r7, r0, 0 - str r7, [r4] - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x2 - bne _081A0E88 - ldr r0, =gSaveBlock2Ptr - ldr r5, [r0] - adds r6, r5, 0 - adds r6, 0xB1 - ldrb r0, [r6] - lsls r1, r0, 26 - lsrs r0, r1, 28 - cmp r0, 0x2 - bls _081A0E3C - b _081A0FCE -_081A0E3C: - adds r2, r5, 0 - adds r2, 0xB4 - adds r0, r2, r0 - ldrb r0, [r0] - lsrs r4, r0, 4 - ldr r3, =gUnknown_08610970 - lsls r1, r4, 1 - adds r5, 0xB0 - ldrb r0, [r5] - movs r4, 0x58 - muls r0, r4 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r0, [r1] - strh r0, [r7, 0x2] - ldrb r0, [r6] - lsls r0, 26 - lsrs r0, 28 - adds r2, r0 - ldrb r1, [r2] - movs r0, 0xF - ands r0, r1 - lsls r0, 1 - ldrb r1, [r5] - muls r1, r4 - adds r0, r1 - adds r0, r3 - b _081A0FCA - .pool -_081A0E88: - cmp r0, 0x3 - bne _081A0F54 - ldr r0, =gSaveBlock2Ptr - mov r8, r0 - ldr r5, [r0] - movs r1, 0xB1 - adds r1, r5 - mov r12, r1 - ldrb r0, [r1] - lsls r2, r0, 26 - lsrs r0, r2, 28 - cmp r0, 0x2 - bhi _081A0EA4 - b _081A0FCE -_081A0EA4: - adds r1, r0, 0 - adds r0, r6, 0x3 - cmp r1, r0 - blt _081A0EAE - b _081A0FCE -_081A0EAE: - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x2 - beq _081A0EC4 - b _081A0FCE -_081A0EC4: - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r6, r0, 30 - adds r0, r5, 0 - adds r0, 0xB2 - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 29 - asrs r1, r6 - movs r0, 0x1 - ands r1, r0 - adds r0, r5, 0 - adds r0, 0xB4 - adds r0, r6 - ldrb r4, [r0] - lsls r1, 2 - asrs r4, r1 - movs r0, 0xF - ands r4, r0 - ldr r2, =gUnknown_08610970 - lsls r1, r4, 1 - adds r0, r5, 0 - adds r0, 0xB0 - ldrb r3, [r0] - movs r0, 0x58 - muls r0, r3 - adds r1, r0 - adds r2, 0x34 - adds r1, r2 - ldrh r0, [r1] - strh r0, [r7] - mov r3, r12 - ldrb r0, [r3] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r5, r0 - adds r0, 0xB8 - ldrb r2, [r0] - lsls r2, 26 - lsrs r2, 30 - adds r0, r6, 0 - adds r1, r4, 0 - bl sub_81A0284 - mov r1, r9 - ldr r2, [r1] - strh r0, [r2, 0x4] - mov r3, r8 - ldr r1, [r3] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - adds r1, 0xBA - ldrh r0, [r1] - strh r0, [r2, 0x6] - b _081A0FCE - .pool -_081A0F54: - cmp r0, 0x4 - bne _081A0FCE - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r2, r0, 26 - lsrs r0, r2, 28 - cmp r0, 0x2 - bls _081A0FCE - adds r1, r0, 0 - adds r0, r6, 0x3 - cmp r1, r0 - bge _081A0FCE - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _081A0FCE - adds r0, r1, 0 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 28 - lsrs r6, r0, 30 - adds r0, r3, 0 - adds r0, 0xB2 - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 29 - asrs r1, r6 - movs r0, 0x1 - ands r1, r0 - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r6 - ldrb r0, [r0] - lsls r1, 2 - asrs r0, r1 - movs r1, 0xF - ands r0, r1 - ldr r2, =gUnknown_08610970 - lsls r0, 1 - adds r1, r3, 0 - adds r1, 0xB0 - ldrb r3, [r1] - movs r1, 0x58 - muls r1, r3 - adds r0, r1 - adds r2, 0x34 - adds r0, r2 -_081A0FCA: - ldrh r0, [r0] - strh r0, [r7] -_081A0FCE: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0DD4 - - thumb_func_start sub_81A0FE4 -sub_81A0FE4: @ 81A0FE4 - push {r4,lr} - ldr r4, =gUnknown_030062F0 - ldr r0, [r4] - bl Free - movs r0, 0 - str r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0FE4 - - thumb_func_start sub_81A0FFC -sub_81A0FFC: @ 81A0FFC - push {r4-r6,lr} - sub sp, 0x10 - ldr r0, =gSpecialVar_0x8005 - ldrh r0, [r0] - cmp r0, 0x1 - beq _081A1028 - cmp r0, 0x1 - bgt _081A1018 - cmp r0, 0 - beq _081A101E - b _081A11E6 - .pool -_081A1018: - cmp r0, 0x2 - beq _081A1030 - b _081A11E6 -_081A101E: - ldr r5, =gStringVar1 - b _081A1032 - .pool -_081A1028: - ldr r5, =gStringVar2 - b _081A1032 - .pool -_081A1030: - ldr r5, =gStringVar3 -_081A1032: - ldr r0, =gSpecialVar_0x8006 - ldrh r0, [r0] - cmp r0, 0x9 - bls _081A103C - b _081A11E6 -_081A103C: - lsls r0, 2 - ldr r1, =_081A1054 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A1054: - .4byte _081A107C - .4byte _081A1094 - .4byte _081A10AC - .4byte _081A10C4 - .4byte _081A10DC - .4byte _081A10F4 - .4byte _081A1118 - .4byte _081A1164 - .4byte _081A1140 - .4byte _081A1184 -_081A107C: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A1094: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x2] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A10AC: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - b _081A1174 - .pool -_081A10C4: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x4] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - b _081A1174 - .pool -_081A10DC: - ldr r0, =gUnknown_030062F0 - ldr r0, [r0] - ldrh r1, [r0, 0x6] - movs r0, 0xD - muls r1, r0 - ldr r0, =gMoveNames - adds r1, r0 - b _081A1174 - .pool -_081A10F4: - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - adds r1, 0xBA - ldrh r0, [r1] - bl ItemId_GetName - adds r1, r0, 0 - b _081A1174 - .pool -_081A1118: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r0, [r0] - movs r1, 0x2 - bl sub_81A1650 - adds r1, r0, 0 - mov r0, sp - movs r2, 0x2 - bl TVShowConvertInternationalString - adds r0, r5, 0 - mov r1, sp - bl StringCopy - b _081A11E6 - .pool -_081A1140: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0x1 - bne _081A115C - ldr r1, =gText_Lv50 - b _081A1174 - .pool -_081A115C: - ldr r1, =gText_OpenLevel - b _081A1174 - .pool -_081A1164: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - movs r1, 0x82 - lsls r1, 1 - adds r0, r1 - bl ConvertBattleFrontierTrainerSpeechToString - ldr r1, =gStringVar4 -_081A1174: - adds r0, r5, 0 - bl StringCopy - b _081A11E6 - .pool -_081A1184: - ldr r0, =gSaveBlock2Ptr - ldr r3, [r0] - adds r1, r3, 0 - adds r1, 0xB1 - ldrb r1, [r1] - lsls r4, r1, 24 - lsrs r1, r4, 30 - adds r6, r0, 0 - cmp r1, 0x2 - bhi _081A11C0 - adds r0, r3, 0 - adds r0, 0xB4 - adds r0, r1 - ldrb r2, [r0] - adds r0, r3, 0 - adds r0, 0xB2 - ldrb r0, [r0] - lsls r0, 29 - lsrs r0, 29 - asrs r0, r1 - movs r1, 0x1 - ands r0, r1 - lsls r0, 2 - asrs r2, r0 - movs r0, 0xF - ands r2, r0 - b _081A11C2 - .pool -_081A11C0: - movs r2, 0 -_081A11C2: - ldr r3, =gUnknown_08610970 - lsls r1, r2, 1 - ldr r0, [r6] - adds r0, 0xB0 - ldrb r2, [r0] - movs r0, 0x58 - muls r0, r2 - adds r1, r0 - adds r3, 0x34 - adds r1, r3 - ldrh r1, [r1] - movs r0, 0xB - muls r1, r0 - ldr r0, =gSpeciesNames - adds r1, r0 - adds r0, r5, 0 - bl StringCopy -_081A11E6: - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A0FFC - - thumb_func_start sub_81A11F8 -sub_81A11F8: @ 81A11F8 - ldr r0, =gSaveBlock2Ptr - ldr r2, [r0] - ldr r0, =gSpecialVar_0x8005 - ldrb r1, [r0] - adds r2, 0xB1 - lsls r1, 6 - ldrb r3, [r2] - movs r0, 0x3F - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - bx lr - .pool - thumb_func_end sub_81A11F8 - - thumb_func_start sub_81A1218 -sub_81A1218: @ 81A1218 - push {lr} - bl sub_81AAC28 - pop {r0} - bx r0 - thumb_func_end sub_81A1218 - - thumb_func_start sub_81A1224 -sub_81A1224: @ 81A1224 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - ldr r1, =gSaveBlock2Ptr - ldr r3, [r1] - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - adds r7, r1, 0 - cmp r0, 0x2 - bhi _081A1242 - b _081A1362 -_081A1242: - movs r5, 0 - movs r2, 0 - adds r0, r3, 0 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - ldr r1, =gSpecialVar_0x8005 - mov r12, r1 - ldr r1, =gSpecialVar_Result - mov r8, r1 - cmp r0, 0 - beq _081A127C - adds r3, r7, 0 -_081A125C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A127C - ldr r0, [r3] - lsls r1, r2, 2 - adds r0, r1 - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A125C -_081A127C: - movs r4, 0 - cmp r4, r5 - bcs _081A1322 - ldr r0, [r7] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r4, r0 - bge _081A1322 - adds r6, r7, 0 - mov r9, r4 -_081A1296: - ldr r3, [r6] - lsls r0, r4, 2 - adds r2, r3, r0 - adds r0, r2, 0 - adds r0, 0xB8 - ldrb r1, [r0] - lsls r0, r1, 30 - lsrs r0, 30 - cmp r0, 0x1 - bne _081A1308 - lsrs r0, r1, 6 - cmp r0, 0 - beq _081A1308 - adds r0, r2, 0 - adds r0, 0xBA - ldrh r0, [r0] - mov r2, r12 - ldrh r2, [r2] - cmp r0, r2 - bne _081A1308 - adds r0, r3, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r0, r3, r0 - adds r0, 0xB8 - ldrb r2, [r0] - movs r1, 0x3F - ands r1, r2 - strb r1, [r0] - ldr r1, [r6] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - mov r2, r12 - ldrh r0, [r2] - adds r1, 0xBA - strh r0, [r1] - mov r1, r9 - mov r0, r8 - strh r1, [r0] - b _081A1362 - .pool -_081A1308: - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, r5 - bcs _081A1322 - ldr r0, [r6] - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - cmp r4, r0 - blt _081A1296 -_081A1322: - ldr r2, [r7] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r2, r0 - adds r2, 0xB8 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldr r1, [r7] - adds r0, r1, 0 - adds r0, 0xB1 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 28 - subs r0, 0x3 - lsls r0, 2 - adds r1, r0 - mov r2, r12 - ldrh r0, [r2] - adds r1, 0xBA - strh r0, [r1] - movs r0, 0x1 - mov r1, r8 - strh r0, [r1] -_081A1362: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81A1224 - - thumb_func_start sub_81A1370 -sub_81A1370: @ 81A1370 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - movs r2, 0x8A - lsls r2, 1 - adds r1, r2 - ldrb r1, [r1] - adds r4, r0, 0 - cmp r1, 0xFF - beq _081A1422 - movs r5, 0 -_081A138E: - ldr r1, [r4] - adds r2, r5, 0x1 - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r3, r1, r0 - movs r5, 0x8A - lsls r5, 1 - adds r0, r3, r5 - ldrb r0, [r0] - cmp r0, 0xFF - bne _081A13B8 - adds r0, r3, 0 - adds r0, 0xDC - adds r1, 0xDC - movs r2, 0x44 - bl memcpy - b _081A1422 - .pool -_081A13B8: - adds r5, r2, 0 - cmp r5, 0x2 - ble _081A138E - ldr r0, =0x0000ffff - mov r10, r0 - movs r2, 0x1 - negs r2, r2 - mov r9, r2 - movs r5, 0x1 - ldr r7, =gSaveBlock2Ptr - movs r0, 0x90 - lsls r0, 1 - mov r8, r0 - movs r6, 0x44 -_081A13D4: - ldr r0, [r7] - add r0, r8 - adds r0, 0x34 - bl ReadUnalignedWord - adds r4, r0, 0 - ldr r0, [r7] - adds r0, 0xA - bl ReadUnalignedWord - cmp r4, r0 - bne _081A13FC - ldr r0, [r7] - adds r0, r6 - adds r0, 0xDE - ldrb r0, [r0] - cmp r0, r10 - bge _081A13FC - mov r10, r0 - mov r9, r5 -_081A13FC: - movs r2, 0x44 - add r8, r2 - adds r6, 0x44 - adds r5, 0x1 - cmp r5, 0x3 - ble _081A13D4 - mov r5, r9 - cmp r5, 0 - ble _081A1422 - ldr r0, =gSaveBlock2Ptr - ldr r1, [r0] - lsls r0, r5, 4 - add r0, r9 - lsls r0, 2 - adds r0, r1, r0 - adds r0, 0xDC - adds r1, 0xDC - bl memcpy -_081A1422: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1370 - - thumb_func_start sub_81A1438 -sub_81A1438: @ 81A1438 - push {r4,r5,lr} - ldr r4, =gSaveBlock2Ptr - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xB0 - ldrb r0, [r0] - adds r2, 0xDC - movs r1, 0x1F - ands r1, r0 - ldrb r3, [r2] - movs r0, 0x20 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - ldr r2, [r4] - adds r0, r2, 0 - adds r0, 0xB1 - ldrb r1, [r0] - lsls r1, 30 - adds r2, 0xDC - lsrs r1, 25 - ldrb r3, [r2] - movs r0, 0x61 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2] - movs r2, 0 - ldr r0, [r4] - b _081A148C - .pool -_081A147C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x8 - bhi _081A1496 - ldr r0, [r4] - lsls r1, r2, 2 - adds r0, r1 -_081A148C: - adds r0, 0xB8 - ldrb r0, [r0] - lsls r0, 30 - cmp r0, 0 - bne _081A147C -_081A1496: - ldr r4, =gSaveBlock2Ptr - ldr r0, [r4] - adds r0, 0xDD - strb r2, [r0] - ldr r0, [r4] - adds r1, r0, 0 - adds r1, 0xDE - ldrb r0, [r1] - cmp r0, 0xFE - bhi _081A14AE - adds r0, 0x1 - strb r0, [r1] -_081A14AE: - ldr r0, [r4] - adds r0, 0xDD - ldrb r0, [r0] - bl sub_81A0390 - movs r2, 0 - adds r3, r4, 0 - movs r4, 0x88 - lsls r4, 1 - adds r5, r3, 0 -_081A14C2: - ldr r0, [r3] - adds r1, r0, r4 - adds r1, r2 - adds r0, 0xA - adds r0, r2 - ldrb r0, [r0] - strb r0, [r1] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3 - bls _081A14C2 - ldr r1, [r5] - movs r2, 0x8A - lsls r2, 1 - adds r0, r1, r2 - bl StringCopy - ldr r1, [r5] - ldr r0, =gGameLanguage - ldrb r0, [r0] - ldr r2, =0x0000011b - adds r1, r2 - strb r0, [r1] - ldr r0, [r5] - adds r0, 0xDC - bl sub_8165AE8 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A1438 - - thumb_func_start sub_81A150C -sub_81A150C: @ 81A150C - push {lr} - ldr r2, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xDC - ldrb r0, [r0] - lsls r0, 27 - lsrs r0, 27 - movs r1, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x32 - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081A1542 -_081A1530: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bhi _081A1542 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1530 -_081A1542: - cmp r1, 0x1E - beq _081A1568 - ldr r0, =gUnknown_085DCF0E - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet - b _081A1594 - .pool -_081A1568: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _081A1584 -_081A1572: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bhi _081A1584 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1572 -_081A1584: - cmp r1, 0x14 - beq _081A1594 - ldr r0, =gUnknown_085DCF2C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet -_081A1594: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A150C - - thumb_func_start sub_81A15A4 -sub_81A15A4: @ 81A15A4 - push {lr} - ldr r2, =gUnknown_08610970 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - adds r0, 0xB0 - ldrb r1, [r0] - movs r0, 0x58 - muls r0, r1 - adds r0, r2 - adds r0, 0x32 - ldrb r2, [r0] - movs r1, 0 - ldr r3, =gUnknown_085DCEDC - ldrb r0, [r3] - cmp r0, r2 - beq _081A15D6 -_081A15C4: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1D - bhi _081A15D6 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A15C4 -_081A15D6: - cmp r1, 0x1E - beq _081A15FC - ldr r0, =gUnknown_085DCF0E - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet - b _081A1628 - .pool -_081A15FC: - movs r1, 0 - ldr r3, =gUnknown_085DCEFA - ldrb r0, [r3] - cmp r0, r2 - beq _081A1618 -_081A1606: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x13 - bhi _081A1618 - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _081A1606 -_081A1618: - cmp r1, 0x14 - beq _081A1628 - ldr r0, =gUnknown_085DCF2C - adds r0, r1, r0 - ldrb r1, [r0] - ldr r0, =0x00004010 - bl VarSet -_081A1628: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A15A4 - - thumb_func_start sub_81A1638 -sub_81A1638: @ 81A1638 - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x1 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A1638 - - thumb_func_start sub_81A1644 -sub_81A1644: @ 81A1644 - ldr r1, =gSpecialVar_0x8004 - movs r0, 0x1 - strh r0, [r1] - bx lr - .pool - thumb_func_end sub_81A1644 - - thumb_func_start sub_81A1650 -sub_81A1650: @ 81A1650 - push {lr} - movs r2, 0x58 - muls r2, r0 - ldr r0, =gUnknown_08610970 - adds r2, r0 - subs r0, r1, 0x1 - cmp r0, 0x6 - bhi _081A16AC - lsls r0, 2 - ldr r1, =_081A1674 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_081A1674: - .4byte _081A1690 - .4byte _081A1694 - .4byte _081A169A - .4byte _081A16A0 - .4byte _081A16A6 - .4byte _081A16AC - .4byte _081A16AC -_081A1690: - adds r0, r2, 0 - b _081A16B0 -_081A1694: - adds r0, r2, 0 - adds r0, 0x8 - b _081A16B0 -_081A169A: - adds r0, r2, 0 - adds r0, 0x10 - b _081A16B0 -_081A16A0: - adds r0, r2, 0 - adds r0, 0x18 - b _081A16B0 -_081A16A6: - adds r0, r2, 0 - adds r0, 0x20 - b _081A16B0 -_081A16AC: - adds r0, r2, 0 - adds r0, 0x28 -_081A16B0: - pop {r1} - bx r1 - thumb_func_end sub_81A1650 - - thumb_func_start sub_81A16B4 -sub_81A16B4: @ 81A16B4 - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081A16CE - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081A16D4 -_081A16CE: - adds r0, r2, 0 - bl SwitchTaskToFollowupFunc -_081A16D4: - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A16B4 - - thumb_func_start sub_81A16DC -sub_81A16DC: @ 81A16DC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - bne _081A16F6 - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _081A1718 -_081A16F6: - ldr r2, =gUnknown_030062F4 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r1, [r0, 0x8] - movs r3, 0xA - ldrsh r0, [r0, r3] - lsls r0, 16 - orrs r1, r0 - str r1, [r2] - bl _call_via_r1 - adds r0, r4, 0 - bl DestroyTask -_081A1718: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A16DC - - thumb_func_start sub_81A172C -sub_81A172C: @ 81A172C - push {r4,lr} - adds r4, r0, 0 - ldr r0, =sub_81A16DC - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r4, [r1, 0x8] - lsrs r4, 16 - strh r4, [r1, 0xA] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A172C - - thumb_func_start sub_81A175C -sub_81A175C: @ 81A175C - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =sub_81A16B4 - adds r0, r4, 0 - movs r1, 0x1 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl SetTaskFuncWithFollowupFunc - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81A175C thumb_func_start sub_81A1780 sub_81A1780: @ 81A1780 @@ -4152,7 +380,7 @@ _081A1AEA: cmp r3, r0 blt _081A1AEA _081A1B00: - bl sub_80F94E8 + bl ReducePlayerPartyToThree pop {r4-r7} pop {r0} bx r0 @@ -7392,7 +3620,7 @@ _081A3758: adds r0, 0x70 lsls r0, 24 lsrs r0, 24 - bl sub_819F99C + bl CopyFriendsApprenticeChallengeText b _081A38F8 _081A3766: movs r0, 0xFA @@ -7533,7 +3761,7 @@ _081A38A8: lsrs r3, r0, 24 movs r0, 0x58 muls r0, r3 - ldr r1, =gUnknown_08610970+0x4A + ldr r1, =gApprentices+0x4A _081A38C4: adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString @@ -7554,7 +3782,7 @@ _081A38D4: lsrs r3, r0, 27 movs r0, 0x58 muls r0, r3 - ldr r1, =gUnknown_08610970+0x4A + ldr r1, =gApprentices+0x4A adds r0, r1 bl ConvertBattleFrontierTrainerSpeechToString _081A38F8: @@ -17008,7 +13236,7 @@ _081A87EC: ldrh r1, [r0] movs r0, 0x64 muls r0, r1 - ldr r1, =gBattleScripting + 0x14 + ldr r1, =gPlayerParty - 100 adds r0, r1 ldr r1, =0x00000e12 adds r3, r1 diff --git a/asm/battle_tower.s b/asm/battle_tower.s index 2312b63bd..ae01e0b5e 100644 --- a/asm/battle_tower.s +++ b/asm/battle_tower.s @@ -576,7 +576,7 @@ _0816266C: b _081626BA .pool _08162698: - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -747,7 +747,7 @@ _081627E8: b _08162836 .pool _08162814: - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -1161,7 +1161,7 @@ _08162B64: cmp r0, 0 bne _08162BB0 ldr r4, =gFacilityClassToPicIndex - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -1184,7 +1184,7 @@ _08162B64: .pool _08162BB0: ldr r5, =gFacilityClassToPicIndex - ldr r4, =gUnknown_08610970 + ldr r4, =gApprentices bl sub_81864A8 lsls r0, 24 lsrs r0, 24 @@ -1301,7 +1301,7 @@ _08162CBC: cmp r0, 0 beq _08162CF4 ldr r5, =gFacilityClassToTrainerClass - ldr r4, =gUnknown_08610970 + ldr r4, =gApprentices bl sub_81864A8 lsls r0, 24 lsrs r0, 24 @@ -1316,7 +1316,7 @@ _08162CBC: .pool _08162CF4: ldr r4, =gFacilityClassToTrainerClass - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -1407,7 +1407,7 @@ _08162DC0: ands r0, r1 cmp r0, 0 beq _08162DE8 - ldr r4, =gUnknown_08610970 + ldr r4, =gApprentices bl sub_81864A8 lsls r0, 24 lsrs r0, 24 @@ -1417,7 +1417,7 @@ _08162DC0: b _08162E08 .pool _08162DE8: - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -1578,7 +1578,7 @@ _08162F24: _08162F3E: adds r0, r5, 0 adds r1, r4, 0 - bl sub_81A1650 + bl GetApprenticeNameInLanguage adds r1, r0, 0 adds r0, r6, 0 adds r2, r4, 0 @@ -1648,7 +1648,7 @@ _08162FC0: b _0816300E .pool _08162FEC: - ldr r3, =gUnknown_08610970 + ldr r3, =gApprentices ldr r0, =gSaveBlock2Ptr ldr r1, [r0] ldr r0, =0xfffffe70 @@ -1927,7 +1927,7 @@ _08163230: ldr r1, [r6] adds r1, r5 lsrs r2, r4, 24 - bl sub_8068528 + bl CreateApprenticeMon movs r2, 0x80 lsls r2, 17 adds r4, r2 @@ -2831,7 +2831,7 @@ _0816399C: adds r0, 0x70 lsls r0, 24 lsrs r0, 24 - bl sub_819F99C + bl CopyFriendsApprenticeChallengeText _081639A8: pop {r0} bx r0 @@ -3475,7 +3475,7 @@ _08163FCC: adds r1, r0, 0 movs r0, 0x64 muls r0, r1 - ldr r1, =gBattleScripting + 0x14 + ldr r1, =gPlayerParty - 100 adds r0, r1 movs r1, 0x2C muls r1, r4 @@ -6295,7 +6295,7 @@ _08165812: adds r0, r5 ldrb r2, [r0] adds r0, r4, 0 - bl sub_8068528 + bl CreateApprenticeMon movs r3, 0xC8 lsls r3, 1 adds r0, r7, r3 @@ -6690,7 +6690,7 @@ _08165B10: adds r1, 0x1 cmp r1, 0x10 bls _08165B10 - bl sub_819FA5C + bl ResetApprenticeStruct pop {r0} bx r0 thumb_func_end sub_8165B08 diff --git a/asm/cable_club.s b/asm/cable_club.s deleted file mode 100644 index 6f4917a19..000000000 --- a/asm/cable_club.s +++ /dev/null @@ -1,2842 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start sub_80B236C -sub_80B236C: @ 80B236C - push {r4-r6,lr} - lsls r0, 24 - lsrs r6, r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r4, =sub_80B2634 - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0xFF - bne _080B23A0 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - strh r6, [r1, 0xA] - strh r5, [r1, 0xC] -_080B23A0: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B236C - - thumb_func_start sub_80B23B0 -sub_80B23B0: @ 80B23B0 - push {r4,r5,lr} - sub sp, 0xC - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 16 - ldr r0, =gStringVar1 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl SetStandardWindowBorderStyle - ldr r5, =gStringVar4 - ldr r1, =gText_XPLink - adds r0, r5, 0 - bl StringExpandPlaceholders - movs r0, 0x1 - adds r1, r5, 0 - movs r2, 0x58 - bl GetStringCenterAlignXOffset - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - movs r0, 0x1 - str r0, [sp] - movs r0, 0xFF - str r0, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - adds r0, r4, 0 - movs r1, 0x1 - adds r2, r5, 0 - bl AddTextPrinterParameterized - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B23B0 - - thumb_func_start sub_80B241C -sub_80B241C: @ 80B241C - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - movs r1, 0 - bl sub_819746C - adds r0, r4, 0 - movs r1, 0x3 - bl CopyWindowToVram - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80B241C - - thumb_func_start sub_80B243C -sub_80B243C: @ 80B243C - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r1, 0x6 - ldrsh r0, [r4, r1] - cmp r5, r0 - beq _080B2472 - cmp r5, 0x1 - bhi _080B2468 - ldrh r0, [r4, 0xA] - bl sub_80B241C - b _080B2470 - .pool -_080B2468: - ldrh r0, [r4, 0xA] - adds r1, r5, 0 - bl sub_80B23B0 -_080B2470: - strh r5, [r4, 0x6] -_080B2472: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B243C - - thumb_func_start sub_80B2478 -sub_80B2478: @ 80B2478 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - bl GetLinkPlayerDataExchangeStatusTimed - lsls r0, 24 - lsrs r0, 24 - subs r0, 0x1 - cmp r0, 0x6 - bhi _080B24F0 - lsls r0, 2 - ldr r1, =_080B24A0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B24A0: - .4byte _080B24BC - .4byte _080B24F0 - .4byte _080B24C0 - .4byte _080B24C4 - .4byte _080B24C8 - .4byte _080B24CC - .4byte _080B24EC -_080B24BC: - movs r0, 0x1 - b _080B24F2 -_080B24C0: - movs r0, 0x3 - b _080B24F2 -_080B24C4: - movs r0, 0x7 - b _080B24F2 -_080B24C8: - movs r0, 0x9 - b _080B24F2 -_080B24CC: - ldr r4, =gStringVar1 - bl GetLinkPlayerCount_2 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - movs r0, 0x4 - b _080B24F2 - .pool -_080B24EC: - movs r0, 0xA - b _080B24F2 -_080B24F0: - movs r0, 0 -_080B24F2: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B2478 - - thumb_func_start sub_80B24F8 -sub_80B24F8: @ 80B24F8 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl HasLinkErrorOccurred - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B250E - movs r0, 0 - b _080B251E -_080B250E: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B2D2C - str r0, [r1] - movs r0, 0x1 -_080B251E: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B24F8 - - thumb_func_start sub_80B252C -sub_80B252C: @ 80B252C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B2570 - bl IsLinkConnectionEstablished - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - bne _080B2570 - ldr r0, =gLinkType - strh r1, [r0] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B2CEC - str r1, [r0] - movs r0, 0x1 - b _080B2572 - .pool -_080B2570: - movs r0, 0 -_080B2572: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B252C - - thumb_func_start sub_80B2578 -sub_80B2578: @ 80B2578 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl IsLinkConnectionEstablished - lsls r0, 24 - cmp r0, 0 - beq _080B258E - movs r0, 0x1 - bl SetSuppressLinkErrorMessage -_080B258E: - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - bne _080B25A4 - movs r0, 0 - b _080B25BA - .pool -_080B25A4: - ldr r1, =gLinkType - movs r0, 0 - strh r0, [r1] - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B2CEC - str r1, [r0] - movs r0, 0x1 -_080B25BA: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2578 - - thumb_func_start sub_80B25CC -sub_80B25CC: @ 80B25CC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl GetSioMultiSI - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B25E2 - movs r0, 0 - b _080B25F2 -_080B25E2: - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B2D2C - str r0, [r1] - movs r0, 0x1 -_080B25F2: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B25CC - - thumb_func_start sub_80B2600 -sub_80B2600: @ 80B2600 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xA - bne _080B262A - movs r0, 0x2 - bl sub_800A4D8 - adds r0, r4, 0 - bl DestroyTask -_080B262A: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2600 - - thumb_func_start sub_80B2634 -sub_80B2634: @ 80B2634 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r3, 0 - ldrsh r2, [r4, r3] - cmp r2, 0 - bne _080B266C - bl OpenLinkTimed - bl sub_800AB98 - bl ResetLinkPlayers - ldr r0, =gUnknown_08550594 - bl AddWindow - strh r0, [r4, 0xA] - b _080B2678 - .pool -_080B266C: - cmp r2, 0x9 - ble _080B2678 - subs r0, 0x8 - adds r0, r1, r0 - ldr r1, =sub_80B2688 - str r1, [r0] -_080B2678: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2634 - - thumb_func_start sub_80B2688 -sub_80B2688: @ 80B2688 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl sub_80B252C - cmp r0, 0x1 - beq _080B26FC - adds r0, r4, 0 - bl sub_80B2578 - cmp r0, 0x1 - beq _080B26FC - cmp r5, 0x1 - bls _080B26FC - movs r0, 0x1 - bl SetSuppressLinkErrorMessage - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r4, r0, r1 - movs r0, 0 - strh r0, [r4, 0xE] - bl IsLinkMaster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B26EC - movs r0, 0x15 - bl PlaySE - ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3 - bl ShowFieldAutoScrollMessage - ldr r0, =sub_80B270C - b _080B26FA - .pool -_080B26EC: - movs r0, 0x16 - bl PlaySE - ldr r0, =OldaleTown_PokemonCenter_2F_Text_278131 - bl ShowFieldAutoScrollMessage - ldr r0, =sub_80B2918 -_080B26FA: - str r0, [r4] -_080B26FC: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2688 - - thumb_func_start sub_80B270C -sub_80B270C: @ 80B270C - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl sub_80B252C - cmp r0, 0x1 - beq _080B274C - adds r0, r4, 0 - bl sub_80B25CC - cmp r0, 0x1 - beq _080B274C - adds r0, r4, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B274C - bl textbox_any_visible - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0 - bne _080B274C - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - strh r2, [r1, 0xE] - ldr r0, =sub_80B275C - str r0, [r1] -_080B274C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B270C - - thumb_func_start sub_80B275C -sub_80B275C: @ 80B275C - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - mov r8, r0 - ldr r0, =gTasks + 0x8 - mov r9, r0 - mov r7, r8 - add r7, r9 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r4, 0 - bl sub_80B252C - cmp r0, 0x1 - beq _080B27E4 - adds r0, r4, 0 - bl sub_80B25CC - cmp r0, 0x1 - beq _080B27E4 - adds r0, r4, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B27E4 - adds r6, r5, 0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_80B243C - ldr r0, =gMain - ldrh r1, [r0, 0x2E] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B27E4 - movs r1, 0x2 - ldrsh r0, [r7, r1] - cmp r5, r0 - blt _080B27E4 - adds r0, r6, 0 - bl sub_800AA04 - ldrh r0, [r7, 0xA] - bl sub_80B241C - ldr r0, =gStringVar1 - adds r1, r5, 0 - movs r2, 0 - movs r3, 0x1 - bl ConvertIntToDecimalStringN - ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780F2 - bl ShowFieldAutoScrollMessage - mov r0, r9 - subs r0, 0x8 - add r0, r8 - ldr r1, =sub_80B2804 - str r1, [r0] -_080B27E4: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B275C - - thumb_func_start sub_80B2804 -sub_80B2804: @ 80B2804 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - adds r0, r5, 0 - bl sub_80B252C - cmp r0, 0x1 - beq _080B2898 - adds r0, r5, 0 - bl sub_80B25CC - cmp r0, 0x1 - beq _080B2898 - adds r0, r5, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B2898 - bl textbox_any_visible - lsls r0, 24 - cmp r0, 0 - bne _080B2898 - bl sub_800AA48 - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B2852 - ldr r0, =gMain - ldrh r1, [r0, 0x2C] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _080B2878 -_080B2852: - ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3 - bl ShowFieldAutoScrollMessage - ldr r1, =gTasks - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B270C - str r1, [r0] - b _080B2898 - .pool -_080B2878: - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B2898 - movs r0, 0x5 - bl PlaySE - bl sub_800A620 - ldr r0, =gTasks - lsls r1, r6, 2 - adds r1, r6 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B28A8 - str r0, [r1] -_080B2898: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2804 - - thumb_func_start sub_80B28A8 -sub_80B28A8: @ 80B28A8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r5, r0, r1 - ldrb r7, [r5, 0xA] - ldrb r6, [r5, 0xC] - adds r0, r4, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B290A - adds r0, r4, 0 - bl sub_80B2D6C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _080B290A - bl GetLinkPlayerCount_2 - adds r4, r0, 0 - bl sub_800AA48 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - beq _080B28F4 - ldr r0, =sub_80B2D2C - b _080B2908 - .pool -_080B28F4: - ldr r4, =gSpecialVar_Result - adds r0, r7, 0 - adds r1, r6, 0 - bl sub_80B2478 - strh r0, [r4] - lsls r0, 16 - cmp r0, 0 - beq _080B290A - ldr r0, =sub_80B2A08 -_080B2908: - str r0, [r5] -_080B290A: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B28A8 - - thumb_func_start sub_80B2918 -sub_80B2918: @ 80B2918 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r7, r0, r1 - ldrb r6, [r7, 0xA] - ldrb r5, [r7, 0xC] - adds r0, r4, 0 - bl sub_80B252C - cmp r0, 0x1 - beq _080B29E6 - adds r0, r4, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B29E6 - ldr r4, =gSpecialVar_Result - adds r0, r6, 0 - adds r1, r5, 0 - bl sub_80B2478 - adds r1, r0, 0 - strh r1, [r4] - lsls r0, r1, 16 - lsrs r2, r0, 16 - cmp r2, 0 - beq _080B29E6 - subs r0, r1, 0x3 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080B297C - bl sub_800AC34 - bl HideFieldMessageBox - ldr r0, =sub_80B2CB0 - b _080B29E4 - .pool -_080B297C: - cmp r2, 0x7 - beq _080B2984 - cmp r2, 0x9 - bne _080B2994 -_080B2984: - bl CloseLink - bl HideFieldMessageBox - ldr r0, =sub_80B2CB0 - b _080B29E4 - .pool -_080B2994: - bl GetLinkPlayerCount_2 - ldr r4, =gFieldLinkPlayerCount - strb r0, [r4] - bl GetMultiplayerId - ldr r1, =gUnknown_03005DB4 - strb r0, [r1] - ldrb r0, [r4] - bl sub_800AA04 - ldr r4, =gBlockSendBuffer - adds r0, r4, 0 - bl sub_80C30A4 - ldr r0, =gUnknown_0203CEF8 - mov r8, r0 - ldrb r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gBattleScripting + 0x14 - adds r0, r5 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r4, 0 - adds r1, 0x54 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1, 0x1] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, 0x56 - strh r0, [r4] - ldr r0, =sub_80B2C30 -_080B29E4: - str r0, [r7] -_080B29E6: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2918 - - thumb_func_start sub_80B2A08 -sub_80B2A08: @ 80B2A08 - push {r4-r7,lr} - mov r7, r8 - push {r7} - lsls r0, 24 - lsrs r7, r0, 24 - adds r0, r7, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B2ACE - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x4 - bne _080B2A38 - bl Link_AnyPartnersPlayingRubyOrSapphire - cmp r0, 0 - bne _080B2A4A - bl sub_800AC34 - b _080B2A4E - .pool -_080B2A38: - cmp r0, 0x3 - bne _080B2A42 - bl sub_800AC34 - b _080B2A4E -_080B2A42: - cmp r0, 0x7 - beq _080B2A4A - cmp r0, 0x9 - bne _080B2A6C -_080B2A4A: - bl CloseLink -_080B2A4E: - bl HideFieldMessageBox - ldr r0, =gTasks - lsls r1, r7, 2 - adds r1, r7 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B2CB0 - str r0, [r1] - b _080B2ACE - .pool -_080B2A6C: - bl GetLinkPlayerCount_2 - ldr r4, =gFieldLinkPlayerCount - strb r0, [r4] - bl GetMultiplayerId - ldr r1, =gUnknown_03005DB4 - strb r0, [r1] - ldrb r0, [r4] - bl sub_800AA04 - ldr r4, =gBlockSendBuffer - adds r0, r4, 0 - bl sub_80C30A4 - ldr r0, =gUnknown_0203CEF8 - mov r8, r0 - ldrb r0, [r0] - movs r6, 0x64 - muls r0, r6 - ldr r5, =gBattleScripting + 0x14 - adds r0, r5 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r1, r4, 0 - adds r1, 0x54 - strh r0, [r1] - mov r1, r8 - ldrb r0, [r1, 0x1] - muls r0, r6 - adds r0, r5 - movs r1, 0xB - movs r2, 0 - bl GetMonData - adds r4, 0x56 - strh r0, [r4] - ldr r1, =gTasks - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B2C30 - str r1, [r0] - movs r0, 0x2 - bl sub_800A4D8 -_080B2ACE: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2A08 - - thumb_func_start sub_80B2AF4 -sub_80B2AF4: @ 80B2AF4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x8 - str r0, [sp] - str r1, [sp, 0x4] - movs r2, 0 - movs r7, 0 - ldr r1, =gStringVar1 - movs r0, 0xFF - strb r0, [r1] - ldr r1, =gStringVar2 - movs r0, 0x1 - negs r0, r0 - strb r0, [r1] - movs r1, 0 - movs r0, 0xB - mov r10, r0 - ldr r0, =gSpeciesNames - mov r9, r0 -_080B2B20: - lsls r0, r1, 1 - adds r1, 0x1 - mov r8, r1 - ldr r1, [sp] - adds r4, r0, r1 - ldr r5, [sp, 0x4] - movs r6, 0x1 -_080B2B2E: - ldrh r0, [r4] - ldrh r1, [r5] - cmp r0, r1 - bne _080B2B5E - cmp r7, 0 - bne _080B2B48 - mov r1, r10 - muls r1, r0 - add r1, r9 - ldr r0, =gStringVar1 - bl StringCopy - movs r2, 0x1 -_080B2B48: - cmp r7, 0x1 - bne _080B2B5C - ldrh r0, [r4] - mov r1, r10 - muls r1, r0 - add r1, r9 - ldr r0, =gStringVar2 - bl StringCopy - movs r2, 0x1 -_080B2B5C: - adds r7, 0x1 -_080B2B5E: - adds r5, 0x2 - subs r6, 0x1 - cmp r6, 0 - bge _080B2B2E - mov r1, r8 - cmp r1, 0x1 - ble _080B2B20 - ldr r0, =gSpecialVar_0x8005 - strh r7, [r0] - adds r0, r2, 0 - add sp, 0x8 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2AF4 - - thumb_func_start task_map_chg_seq_0807EC34 -task_map_chg_seq_0807EC34: @ 80B2B94 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, =gTrainerCards - ldrh r0, [r5] - cmp r0, 0x1 - bne _080B2C10 - ldr r0, =gLinkType - ldrh r2, [r0] - ldr r0, =0x00002266 - cmp r2, r0 - beq _080B2BB2 - adds r0, 0x11 - cmp r2, r0 - bne _080B2BEC -_080B2BB2: - adds r0, r1, 0 - adds r0, 0x54 - adds r1, 0xB8 - bl sub_80B2AF4 - cmp r0, 0 - beq _080B2BEC - movs r0, 0xB - strh r0, [r5] - bl sub_800AC34 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B2CB0 - str r1, [r0] - b _080B2C22 - .pool -_080B2BEC: - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldrh r0, [r0, 0x12] - bl sub_80B241C - bl EnableBothScriptContexts - lsls r0, r4, 24 - lsrs r0, 24 - bl DestroyTask - b _080B2C22 - .pool -_080B2C10: - bl sub_800AC34 - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B2CB0 - str r0, [r1] -_080B2C22: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end task_map_chg_seq_0807EC34 - - thumb_func_start sub_80B2C30 -sub_80B2C30: @ 80B2C30 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - adds r0, r5, 0 - bl sub_80B24F8 - cmp r0, 0x1 - beq _080B2C9C - bl GetBlockReceivedStatus - adds r4, r0, 0 - bl sub_800A9A8 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B2C9C - movs r4, 0 - ldr r6, =gLinkPlayers - b _080B2C7E - .pool -_080B2C5C: - movs r0, 0x64 - muls r0, r4 - ldr r1, =gTrainerCards - adds r0, r1 - lsls r1, r4, 8 - ldr r2, =gBlockRecvBuffer - adds r1, r2 - lsls r2, r4, 3 - subs r2, r4 - lsls r2, 2 - adds r2, r6 - ldrb r2, [r2] - bl sub_80C3120 - adds r0, r4, 0x1 - lsls r0, 24 - lsrs r4, r0, 24 -_080B2C7E: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bcc _080B2C5C - movs r0, 0 - bl SetSuppressLinkErrorMessage - bl ResetBlockReceivedFlags - ldr r0, =gSpecialVar_Result - adds r1, r5, 0 - bl task_map_chg_seq_0807EC34 -_080B2C9C: - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2C30 - - thumb_func_start sub_80B2CB0 -sub_80B2CB0: @ 80B2CB0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080B2CDE - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x12] - bl sub_80B241C - bl EnableBothScriptContexts - ldrb r0, [r4, 0x12] - bl RemoveWindow - adds r0, r5, 0 - bl DestroyTask -_080B2CDE: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2CB0 - - thumb_func_start sub_80B2CEC -sub_80B2CEC: @ 80B2CEC - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gSpecialVar_Result - movs r0, 0x5 - strh r0, [r1] - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x12] - bl sub_80B241C - bl sub_8098374 - ldrb r0, [r4, 0x12] - bl RemoveWindow - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2CEC - - thumb_func_start sub_80B2D2C -sub_80B2D2C: @ 80B2D2C - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - ldr r1, =gSpecialVar_Result - movs r0, 0x6 - strh r0, [r1] - ldr r0, =gTasks - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - adds r4, r0 - ldrh r0, [r4, 0x12] - bl sub_80B241C - ldrb r0, [r4, 0x12] - bl RemoveWindow - bl HideFieldMessageBox - bl EnableBothScriptContexts - adds r0, r5, 0 - bl DestroyTask - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2D2C - - thumb_func_start sub_80B2D6C -sub_80B2D6C: @ 80B2D6C - push {lr} - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r2, r1, r2 - ldrh r0, [r2, 0x10] - adds r0, 0x1 - strh r0, [r2, 0x10] - lsls r0, 16 - movs r1, 0x96 - lsls r1, 18 - cmp r0, r1 - bgt _080B2D94 - movs r0, 0 - b _080B2D9A - .pool -_080B2D94: - ldr r0, =sub_80B2D2C - str r0, [r2] - movs r0, 0x1 -_080B2D9A: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B2D6C - - thumb_func_start sub_80B2DA4 -sub_80B2DA4: @ 80B2DA4 - push {r4,lr} - movs r3, 0x2 - movs r2, 0x2 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - cmp r0, 0x2 - beq _080B2DDC - cmp r0, 0x2 - bgt _080B2DC0 - cmp r0, 0x1 - beq _080B2DCA - b _080B2E34 - .pool -_080B2DC0: - cmp r0, 0x5 - beq _080B2DEC - cmp r0, 0x9 - beq _080B2E00 - b _080B2E34 -_080B2DCA: - movs r3, 0x2 - ldr r1, =gLinkType - ldr r4, =0x00002233 - b _080B2E30 - .pool -_080B2DDC: - movs r3, 0x2 - ldr r1, =gLinkType - ldr r4, =0x00002244 - b _080B2E30 - .pool -_080B2DEC: - movs r3, 0x4 - movs r2, 0x4 - ldr r1, =gLinkType - ldr r4, =0x00002255 - b _080B2E30 - .pool -_080B2E00: - movs r3, 0x2 - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080B2E2C - ldr r1, =gLinkType - ldr r4, =0x00002266 - b _080B2E30 - .pool -_080B2E2C: - ldr r1, =gLinkType - ldr r4, =0x00002277 -_080B2E30: - adds r0, r4, 0 - strh r0, [r1] -_080B2E34: - adds r0, r3, 0 - adds r1, r2, 0 - bl sub_80B236C - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2DA4 - - thumb_func_start sub_80B2E4C -sub_80B2E4C: @ 80B2E4C - push {lr} - ldr r1, =gLinkType - ldr r2, =0x00001133 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - movs r0, 0x2 - movs r1, 0x2 - bl sub_80B236C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2E4C - - thumb_func_start sub_80B2E74 -sub_80B2E74: @ 80B2E74 - push {lr} - ldr r1, =gSpecialVar_Result - movs r0, 0 - strh r0, [r1] - ldr r1, =gLinkType - ldr r2, =0x00003311 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - bl sub_80B236C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2E74 - - thumb_func_start sub_80B2EA8 -sub_80B2EA8: @ 80B2EA8 - push {r4,lr} - ldr r4, =sub_80B2EE4 - adds r0, r4, 0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0xFF - bne _080B2ED4 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r2, r0, 24 - ldr r1, =gTasks - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - adds r0, r1 - movs r1, 0 - strh r1, [r0, 0x8] -_080B2ED4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2EA8 - - thumb_func_start sub_80B2EE4 -sub_80B2EE4: @ 80B2EE4 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 24 - lsrs r6, r0, 24 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x8 - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080B2F0C - cmp r0, 0x1 - beq _080B2FB4 - b _080B2FC6 - .pool -_080B2F0C: - ldr r0, =gSpecialVar_Result - ldrh r0, [r0] - cmp r0, 0x1 - bne _080B2FA8 - movs r7, 0 - movs r0, 0 - mov r8, r0 - mov r9, r0 - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r5, r0, 24 - movs r4, 0 - cmp r7, r5 - bge _080B2F74 - ldr r0, =gLinkPlayers - ldrb r2, [r0] - ldrh r3, [r0, 0x1A] - subs r1, r2, 0x1 - mov r12, r0 - cmp r1, 0x1 - bhi _080B2F4A - b _080B2F6E - .pool -_080B2F44: - movs r1, 0x1 - mov r8, r1 - b _080B2F56 -_080B2F4A: - cmp r2, 0x3 - bne _080B2F56 - cmp r3, 0x1 - bne _080B2F56 - movs r0, 0x1 - mov r9, r0 -_080B2F56: - adds r4, 0x1 - cmp r4, r5 - bge _080B2F74 - lsls r0, r4, 3 - subs r0, r4 - lsls r0, 2 - add r0, r12 - ldrb r2, [r0] - ldrh r3, [r0, 0x1A] - subs r0, r2, 0x1 - cmp r0, 0x1 - bhi _080B2F4A -_080B2F6E: - cmp r3, 0x1 - bne _080B2F44 - movs r7, 0x1 -_080B2F74: - mov r1, r8 - cmp r1, 0 - beq _080B2F82 - mov r0, r9 - cmp r0, 0 - beq _080B2F82 - movs r7, 0x1 -_080B2F82: - cmp r7, 0 - beq _080B2FA8 - ldr r1, =gSpecialVar_Result - movs r0, 0xC - strh r0, [r1] - bl sub_800AD10 - ldr r1, =gTasks - lsls r0, r6, 2 - adds r0, r6 - lsls r0, 3 - adds r0, r1 - movs r1, 0x1 - strh r1, [r0, 0x8] - b _080B2FC6 - .pool -_080B2FA8: - bl EnableBothScriptContexts - adds r0, r6, 0 - bl DestroyTask - b _080B2FC6 -_080B2FB4: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080B2FC6 - bl EnableBothScriptContexts - adds r0, r6, 0 - bl DestroyTask -_080B2FC6: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2EE4 - - thumb_func_start sub_80B2FD8 -sub_80B2FD8: @ 80B2FD8 - push {lr} - ldr r1, =gLinkType - ldr r2, =0x00004411 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - bl sub_80B236C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B2FD8 - - thumb_func_start sub_80B3000 -sub_80B3000: @ 80B3000 - push {lr} - ldr r1, =gLinkType - ldr r2, =0x00006601 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - movs r0, 0x4 - movs r1, 0x4 - bl sub_80B236C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3000 - - thumb_func_start sub_80B3028 -sub_80B3028: @ 80B3028 - push {lr} - ldr r1, =gLinkType - ldr r2, =0x00006602 - adds r0, r2, 0 - strh r0, [r1] - ldr r1, =gBattleTypeFlags - movs r0, 0 - str r0, [r1] - movs r0, 0x2 - movs r1, 0x4 - bl sub_80B236C - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3028 - - thumb_func_start sub_80B3050 -sub_80B3050: @ 80B3050 - push {lr} - ldr r0, =sub_80B3144 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - beq _080B3068 - movs r0, 0xFF - b _080B3134 - .pool -_080B3068: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x1 - cmp r0, 0x8 - bhi _080B3128 - lsls r0, 2 - ldr r1, =_080B3084 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B3084: - .4byte _080B30A8 - .4byte _080B30B8 - .4byte _080B3110 - .4byte _080B3120 - .4byte _080B30C8 - .4byte _080B3128 - .4byte _080B3128 - .4byte _080B3128 - .4byte _080B30D8 -_080B30A8: - ldr r1, =gLinkType - ldr r2, =0x00002233 - b _080B3124 - .pool -_080B30B8: - ldr r1, =gLinkType - ldr r2, =0x00002244 - b _080B3124 - .pool -_080B30C8: - ldr r1, =gLinkType - ldr r2, =0x00002255 - b _080B3124 - .pool -_080B30D8: - ldr r0, =gSaveBlock2Ptr - ldr r0, [r0] - ldr r1, =0x00000ca9 - adds r0, r1 - ldrb r1, [r0] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080B3100 - ldr r1, =gLinkType - ldr r2, =0x00002266 - b _080B3124 - .pool -_080B3100: - ldr r1, =gLinkType - ldr r2, =0x00002277 - b _080B3124 - .pool -_080B3110: - ldr r1, =gLinkType - ldr r2, =0x00001111 - b _080B3124 - .pool -_080B3120: - ldr r1, =gLinkType - ldr r2, =0x00003322 -_080B3124: - adds r0, r2, 0 - strh r0, [r1] -_080B3128: - ldr r0, =sub_80B3144 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 -_080B3134: - pop {r1} - bx r1 - .pool - thumb_func_end sub_80B3050 - - thumb_func_start sub_80B3144 -sub_80B3144: @ 80B3144 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, =gTasks + 0x8 - adds r4, r1, r0 - movs r3, 0 - ldrsh r2, [r4, r3] - cmp r2, 0 - bne _080B3178 - bl OpenLink - bl ResetLinkPlayers - ldr r0, =task00_08081A90 - movs r1, 0x50 - bl CreateTask - b _080B3184 - .pool -_080B3178: - cmp r2, 0x9 - ble _080B3184 - subs r0, 0x8 - adds r0, r1, r0 - ldr r1, =sub_80B3194 - str r1, [r0] -_080B3184: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3144 - - thumb_func_start sub_80B3194 -sub_80B3194: @ 80B3194 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl GetLinkPlayerCount_2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bls _080B31DA - bl IsLinkMaster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B31CC - ldr r0, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B31E8 - b _080B31D8 - .pool -_080B31CC: - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B3220 -_080B31D8: - str r0, [r1] -_080B31DA: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3194 - - thumb_func_start sub_80B31E8 -sub_80B31E8: @ 80B31E8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - bl sub_800AA48 - adds r4, r0, 0 - bl GetLinkPlayerCount_2 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B3212 - bl sub_800A620 - ldr r0, =gTasks - lsls r1, r5, 2 - adds r1, r5 - lsls r1, 3 - adds r1, r0 - ldr r0, =sub_80B3220 - str r0, [r1] -_080B3212: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B31E8 - - thumb_func_start sub_80B3220 -sub_80B3220: @ 80B3220 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B3248 - bl IsLinkPlayerDataExchangeComplete - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3248 - bl sub_800AB18 - bl sub_8009F18 - adds r0, r4, 0 - bl DestroyTask -_080B3248: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3220 - - thumb_func_start sub_80B3254 -sub_80B3254: @ 80B3254 - push {lr} - bl SaveGame - pop {r0} - bx r0 - thumb_func_end sub_80B3254 - - thumb_func_start sub_80B3260 -sub_80B3260: @ 80B3260 - push {lr} - cmp r0, 0x2 - beq _080B3284 - cmp r0, 0x2 - bgt _080B3270 - cmp r0, 0x1 - beq _080B327A - b _080B32A6 -_080B3270: - cmp r0, 0x5 - beq _080B3290 - cmp r0, 0x9 - beq _080B32A0 - b _080B32A6 -_080B327A: - ldr r1, =gBattleTypeFlags - movs r0, 0xA - b _080B32A4 - .pool -_080B3284: - ldr r1, =gBattleTypeFlags - movs r0, 0xB - b _080B32A4 - .pool -_080B3290: - bl sub_80F94E8 - ldr r1, =gBattleTypeFlags - movs r0, 0x4B - b _080B32A4 - .pool -_080B32A0: - ldr r1, =gBattleTypeFlags - ldr r0, =0x0000014b -_080B32A4: - str r0, [r1] -_080B32A6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3260 - - thumb_func_start sub_80B32B4 -sub_80B32B4: @ 80B32B4 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x5 - bhi _080B33A0 - lsls r0, 2 - ldr r1, =_080B32E0 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B32E0: - .4byte _080B32F8 - .4byte _080B3318 - .4byte _080B3328 - .4byte _080B3338 - .4byte _080B333E - .4byte _080B3354 -_080B32F8: - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - ldr r1, =gLinkType - ldr r2, =0x00002211 - adds r0, r2, 0 - strh r0, [r1] - bl ClearLinkCallback_2 - b _080B3346 - .pool -_080B3318: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - b _080B3342 - .pool -_080B3328: - ldrh r0, [r4, 0xA] - adds r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B33A0 - b _080B3346 -_080B3338: - bl sub_800AC34 - b _080B3346 -_080B333E: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] -_080B3342: - cmp r0, 0 - bne _080B33A0 -_080B3346: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B33A0 - .pool -_080B3354: - ldr r0, =gLinkPlayers - ldr r0, [r0, 0x4] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B3370 - ldr r0, =0x000001dd - bl PlayMapChosenOrBattleBGM - b _080B3378 - .pool -_080B3370: - movs r0, 0xEE - lsls r0, 1 - bl PlayMapChosenOrBattleBGM -_080B3378: - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_80B3260 - bl overworld_free_bg_tilemaps - ldr r1, =gTrainerBattleOpponent_A - movs r2, 0x80 - lsls r2, 4 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =CB2_InitBattle - bl SetMainCallback2 - ldr r1, =gMain - ldr r0, =sub_80B360C - str r0, [r1, 0x8] - adds r0, r5, 0 - bl DestroyTask -_080B33A0: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B32B4 - - thumb_func_start sub_80B33BC -sub_80B33BC: @ 80B33BC - push {r4-r7,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r6, r1] - cmp r0, 0x7 - bls _080B33D6 - b _080B3532 -_080B33D6: - lsls r0, 2 - ldr r1, =_080B33E8 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_080B33E8: - .4byte _080B3408 - .4byte _080B342C - .4byte _080B3444 - .4byte _080B3458 - .4byte _080B34B0 - .4byte _080B34C4 - .4byte _080B34CE - .4byte _080B34DE -_080B3408: - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - ldr r0, =gLinkType - ldr r2, =0x00002211 - adds r1, r2, 0 - strh r1, [r0] - bl ClearLinkCallback_2 - movs r0, 0x1 - strh r0, [r6] - b _080B3532 - .pool -_080B342C: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _080B343A - b _080B3532 -_080B343A: - movs r0, 0x2 - strh r0, [r6] - b _080B3532 - .pool -_080B3444: - ldr r1, =gLocalLinkPlayer - movs r0, 0 - movs r2, 0x1C - bl SendBlock - movs r0, 0x3 - strh r0, [r6] - b _080B3532 - .pool -_080B3458: - bl GetBlockReceivedStatus - adds r4, r0, 0 - bl sub_800A9D8 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bne _080B3532 - movs r4, 0 - ldr r5, =gLinkPlayers - b _080B349A - .pool -_080B3474: - lsls r1, r4, 8 - ldr r2, =gBlockRecvBuffer - adds r0, r5, 0 - adds r1, r2 - ldm r1!, {r2,r3,r7} - stm r0!, {r2,r3,r7} - ldm r1!, {r2,r3,r7} - stm r0!, {r2,r3,r7} - ldr r1, [r1] - str r1, [r0] - adds r0, r5, 0 - bl sub_800B524 - lsls r0, r4, 24 - lsrs r0, 24 - bl ResetBlockReceivedFlag - adds r5, 0x1C - adds r4, 0x1 -_080B349A: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - blt _080B3474 - movs r0, 0x4 - strh r0, [r6] - b _080B3532 - .pool -_080B34B0: - ldrh r0, [r6, 0x2] - adds r0, 0x1 - strh r0, [r6, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _080B3532 - movs r0, 0x5 - strh r0, [r6] - b _080B3532 -_080B34C4: - bl sub_800ADF8 - movs r0, 0x6 - strh r0, [r6] - b _080B3532 -_080B34CE: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _080B3532 - movs r0, 0x7 - strh r0, [r6] - b _080B3532 -_080B34DE: - ldr r0, =gLinkPlayers - ldr r0, [r0, 0x4] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _080B34FC - ldr r0, =0x000001dd - bl PlayMapChosenOrBattleBGM - b _080B3504 - .pool -_080B34FC: - movs r0, 0xEE - lsls r0, 1 - bl PlayMapChosenOrBattleBGM -_080B3504: - ldr r1, =gLinkPlayers - ldr r0, =0x00002211 - str r0, [r1, 0x14] - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - bl sub_80B3260 - bl overworld_free_bg_tilemaps - ldr r1, =gTrainerBattleOpponent_A - movs r3, 0x80 - lsls r3, 4 - adds r0, r3, 0 - strh r0, [r1] - ldr r0, =CB2_InitBattle - bl SetMainCallback2 - ldr r1, =gMain - ldr r0, =sub_80B360C - str r0, [r1, 0x8] - adds r0, r4, 0 - bl DestroyTask -_080B3532: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B33BC - - thumb_func_start sub_80B3554 -sub_80B3554: @ 80B3554 - push {r4,lr} - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080B35E0 - cmp r0, 0x1 - bgt _080B3574 - cmp r0, 0 - beq _080B357A - b _080B35FE - .pool -_080B3574: - cmp r0, 0x2 - beq _080B35F8 - b _080B35FE -_080B357A: - bl GetLinkPlayerCount - lsls r0, 24 - lsrs r3, r0, 24 - movs r4, 0 - movs r2, 0 - cmp r4, r3 - bge _080B35AC - ldr r1, =gLinkPlayers - ldrb r0, [r1] - subs r0, 0x4 - cmp r0, 0x1 - bls _080B35B0 -_080B3594: - adds r2, 0x1 - cmp r2, r3 - bge _080B35AC - lsls r0, r2, 3 - subs r0, r2 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0] - subs r0, 0x4 - cmp r0, 0x1 - bhi _080B3594 - movs r4, 0x1 -_080B35AC: - cmp r4, 0 - beq _080B35C8 -_080B35B0: - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x2 - strb r1, [r0] - b _080B35FE - .pool -_080B35C8: - bl sub_800AC34 - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r0, r1 - movs r1, 0x1 - strb r1, [r0] - b _080B35FE - .pool -_080B35E0: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080B35FE - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 - b _080B35FE - .pool -_080B35F8: - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 -_080B35FE: - bl RunTasks - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3554 - - thumb_func_start sub_80B360C -sub_80B360C: @ 80B360C - push {r4,r5,lr} - ldr r2, =gBattleTypeFlags - ldr r0, [r2] - movs r1, 0x21 - negs r1, r1 - ands r0, r1 - str r0, [r2] - bl Overworld_ResetMapMusic - bl LoadPlayerParty - bl SavePlayerBag - bl sub_813BF10 - ldr r0, =gSpecialVar_0x8004 - ldrh r0, [r0] - subs r0, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bhi _080B36B2 - ldr r0, =gUnknown_03005DB4 - ldrb r0, [r0] - movs r5, 0x1 - eors r0, r5 - bl UpdatePlayerLinkBattleRecords - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080B36B2 - ldr r0, =gBattleOutcome - ldrb r0, [r0] - cmp r0, 0x1 - beq _080B3670 - cmp r0, 0x2 - beq _080B3694 - b _080B36B2 - .pool -_080B3670: - ldr r4, =gLinkPlayers - bl GetMultiplayerId - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r4, 0x4 - adds r1, r4 - ldr r1, [r1] - movs r0, 0 - bl sub_801B990 - b _080B36B2 - .pool -_080B3694: - ldr r4, =gLinkPlayers - bl GetMultiplayerId - eors r0, r5 - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - subs r1, r0 - lsls r1, 2 - adds r4, 0x4 - adds r1, r4 - ldr r1, [r1] - movs r0, 0x1 - bl sub_801B990 -_080B36B2: - bl InUnionRoom - cmp r0, 0x1 - bne _080B36CC - ldr r1, =gMain - ldr r0, =sub_80B3554 - b _080B36D0 - .pool -_080B36CC: - ldr r1, =gMain - ldr r0, =c2_8056854 -_080B36D0: - str r0, [r1, 0x8] - ldr r0, =sub_80A0514 - bl SetMainCallback2 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B360C - - thumb_func_start sub_80B36EC -sub_80B36EC: @ 80B36EC - push {lr} - ldr r0, =gSpecialVar_0x8004 - ldrh r1, [r0] - subs r0, r1, 0x1 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0x1 - bls _080B3706 - adds r0, r1, 0 - cmp r0, 0x5 - beq _080B3706 - cmp r0, 0x9 - bne _080B370E -_080B3706: - bl LoadPlayerParty - bl SavePlayerBag -_080B370E: - movs r0, 0x7F - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B36EC - - thumb_func_start sub_80B371C -sub_80B371C: @ 80B371C - push {lr} - bl sub_80872B0 - pop {r0} - bx r0 - thumb_func_end sub_80B371C - - thumb_func_start sub_80B3728 -sub_80B3728: @ 80B3728 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r5, r0, r1 - movs r1, 0x8 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B376C - cmp r0, 0x1 - bgt _080B3750 - cmp r0, 0 - beq _080B375A - b _080B37CC - .pool -_080B3750: - cmp r0, 0x2 - beq _080B378C - cmp r0, 0x3 - beq _080B37B8 - b _080B37CC -_080B375A: - ldr r0, =OldaleTown_PokemonCenter_2F_Text_278091 - bl ShowFieldMessage - movs r0, 0x1 - strh r0, [r5, 0x8] - b _080B37CC - .pool -_080B376C: - bl IsFieldMessageBoxHidden - lsls r0, 24 - cmp r0, 0 - beq _080B37CC - bl sub_8087288 - ldr r0, =gSpecialVar_0x8005 - ldrb r0, [r0] - bl sub_8009628 - movs r0, 0x2 - strh r0, [r5, 0x8] - b _080B37CC - .pool -_080B378C: - bl sub_8087214 - cmp r0, 0x1 - beq _080B379E - cmp r0, 0x1 - bcc _080B37CC - cmp r0, 0x2 - beq _080B37B2 - b _080B37CC -_080B379E: - bl HideFieldMessageBox - movs r0, 0 - strh r0, [r5, 0x8] - bl sub_80872C4 - adds r0, r4, 0 - bl SwitchTaskToFollowupFunc - b _080B37CC -_080B37B2: - movs r0, 0x3 - strh r0, [r5, 0x8] - b _080B37CC -_080B37B8: - bl sub_808729C - movs r0, 0x1 - bl sub_8197AE8 - adds r0, r4, 0 - bl DestroyTask - bl EnableBothScriptContexts -_080B37CC: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3728 - - thumb_func_start sub_80B37D4 -sub_80B37D4: @ 80B37D4 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r4, =sub_80B3728 - adds r0, r4, 0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - adds r2, r5, 0 - bl SetTaskFuncWithFollowupFunc - bl ScriptContext1_Stop - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B37D4 - - thumb_func_start sub_80B37FC -sub_80B37FC: @ 80B37FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B3840 - cmp r0, 0x1 - bgt _080B3824 - cmp r0, 0 - beq _080B382E - b _080B3884 - .pool -_080B3824: - cmp r0, 0x2 - beq _080B3854 - cmp r0, 0x3 - beq _080B3870 - b _080B3884 -_080B382E: - bl ScriptContext2_Enable - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - bl ClearLinkCallback_2 - b _080B3864 -_080B3840: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B3884 - b _080B3864 - .pool -_080B3854: - ldr r1, =gUnknown_02032298 - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - bl m4aMPlayAllStop - bl sub_800AC34 -_080B3864: - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - b _080B3884 - .pool -_080B3870: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080B3884 - ldr r0, =sub_80773AC - bl SetMainCallback2 - adds r0, r5, 0 - bl DestroyTask -_080B3884: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B37FC - - thumb_func_start sub_80B3894 -sub_80B3894: @ 80B3894 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - movs r1, 0 - ldrsh r0, [r4, r1] - cmp r0, 0x1 - beq _080B38D8 - cmp r0, 0x1 - bgt _080B38BC - cmp r0, 0 - beq _080B38C6 - b _080B391C - .pool -_080B38BC: - cmp r0, 0x2 - beq _080B38EC - cmp r0, 0x3 - beq _080B3908 - b _080B391C -_080B38C6: - bl ScriptContext2_Enable - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - bl Rfu_set_zero - b _080B38FC -_080B38D8: - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080B391C - b _080B38FC - .pool -_080B38EC: - ldr r1, =gUnknown_02032298 - movs r0, 0 - strb r0, [r1] - strb r0, [r1, 0x1] - bl m4aMPlayAllStop - bl sub_800ADF8 -_080B38FC: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - b _080B391C - .pool -_080B3908: - bl sub_800A520 - lsls r0, 24 - cmp r0, 0 - beq _080B391C - bl sub_8013F78 - adds r0, r5, 0 - bl DestroyTask -_080B391C: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_80B3894 - - thumb_func_start sub_80B3924 -sub_80B3924: @ 80B3924 - push {lr} - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080B3940 - ldr r0, =sub_80B3894 - bl sub_80B37D4 - b _080B3946 - .pool -_080B3940: - ldr r0, =sub_80B37FC - bl sub_80B37D4 -_080B3946: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3924 - - thumb_func_start sub_80B3950 -sub_80B3950: @ 80B3950 - push {lr} - ldr r0, =sub_80B37FC - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3950 - - thumb_func_start nullsub_37 -nullsub_37: @ 80B3964 - bx lr - thumb_func_end nullsub_37 - - thumb_func_start sub_80B3968 -sub_80B3968: @ 80B3968 - push {lr} - ldr r1, =gLinkType - ldr r2, =0x00002211 - adds r0, r2, 0 - strh r0, [r1] - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080B3994 - ldr r0, =sub_80B33BC - bl sub_80B37D4 - b _080B399A - .pool -_080B3994: - ldr r0, =sub_80B32B4 - bl sub_80B37D4 -_080B399A: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3968 - - thumb_func_start sub_80B39A4 -sub_80B39A4: @ 80B39A4 - push {lr} - ldr r0, =sub_80B3728 - movs r1, 0x50 - bl CreateTask - bl ScriptContext1_Stop - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B39A4 - - thumb_func_start sp02A_crash_sound -sp02A_crash_sound: @ 80B39BC - push {lr} - ldr r0, =gSpecialVar_0x8006 - ldrb r0, [r0] - ldr r1, =CB2_ReturnToFieldContinueScriptPlayMapMusic - bl sub_80C4E74 - pop {r0} - bx r0 - .pool - thumb_func_end sp02A_crash_sound - - thumb_func_start sub_80B39D4 -sub_80B39D4: @ 80B39D4 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gSpecialVar_0x8006 - strh r4, [r0] - ldr r0, =gStringVar1 - lsls r1, r4, 3 - subs r1, r4 - lsls r1, 2 - ldr r2, =gLinkPlayers + 8 - adds r1, r2 - bl StringCopy - adds r0, r4, 0 - bl sub_80C4904 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0 - beq _080B3A28 - ldr r0, =gStringVar2 - ldr r2, =gUnknown_0855059C - subs r1, 0x1 - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl StringCopy - movs r0, 0x1 - b _080B3A2A - .pool -_080B3A28: - movs r0, 0 -_080B3A2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80B39D4 - - thumb_func_start task00_08081A90 -task00_08081A90: @ 80B3A30 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks - adds r0, r1 - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - lsls r1, 16 - movs r0, 0x96 - lsls r0, 17 - cmp r1, r0 - ble _080B3A62 - bl CloseLink - ldr r0, =CB2_LinkError - bl SetMainCallback2 - adds r0, r4, 0 - bl DestroyTask -_080B3A62: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - beq _080B3AA6 - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _080B3AA0 - bl sub_800AA60 - lsls r0, 24 - cmp r0, 0 - bne _080B3A86 - bl CloseLink - ldr r0, =CB2_LinkError - bl SetMainCallback2 -_080B3A86: - adds r0, r4, 0 - bl DestroyTask - b _080B3AA6 - .pool -_080B3AA0: - adds r0, r5, 0 - bl DestroyTask -_080B3AA6: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end task00_08081A90 - - thumb_func_start sub_80B3AAC -sub_80B3AAC: @ 80B3AAC - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0 - bne _080B3AC4 - bl EnableBothScriptContexts - adds r0, r4, 0 - bl DestroyTask -_080B3AC4: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3AAC - - thumb_func_start sub_80B3AD0 -sub_80B3AD0: @ 80B3AD0 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl sub_800AC34 - ldr r1, =gTasks - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - adds r0, r1 - ldr r1, =sub_80B3AAC - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3AD0 - - thumb_func_start sub_80B3AF8 -sub_80B3AF8: @ 80B3AF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - lsls r0, r4, 2 - adds r0, r4 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r5, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _080B3B54 - cmp r0, 0x1 - bgt _080B3B20 - cmp r0, 0 - beq _080B3B2A - b _080B3BB8 - .pool -_080B3B20: - cmp r0, 0x2 - beq _080B3B68 - cmp r0, 0x3 - beq _080B3B9E - b _080B3BB8 -_080B3B2A: - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - beq _080B3B40 - adds r0, r4, 0 - bl DestroyTask - b _080B3BB8 - .pool -_080B3B40: - bl OpenLink - ldr r0, =task00_08081A90 - movs r1, 0x1 - bl CreateTask - b _080B3B96 - .pool -_080B3B54: - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0xB - ble _080B3BB8 - movs r0, 0 - strh r0, [r5, 0x2] - b _080B3B96 -_080B3B68: - bl GetLinkPlayerCount_2 - adds r4, r0, 0 - bl sub_800AA48 - lsls r4, 24 - lsls r0, 24 - cmp r4, r0 - bcc _080B3BB8 - bl IsLinkMaster - lsls r0, 24 - cmp r0, 0 - beq _080B3B96 - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1E - ble _080B3BB8 - bl sub_800A620 -_080B3B96: - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080B3BB8 -_080B3B9E: - ldr r0, =gReceivedRemoteLinkPlayers - ldrb r0, [r0] - cmp r0, 0x1 - bne _080B3BB8 - bl IsLinkPlayerDataExchangeComplete - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080B3BB8 - adds r0, r4, 0 - bl DestroyTask -_080B3BB8: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3AF8 - - thumb_func_start sub_80B3BC4 -sub_80B3BC4: @ 80B3BC4 - push {lr} - ldr r0, =gWirelessCommType - ldrb r0, [r0] - cmp r0, 0 - bne _080B3BD6 - ldr r1, =gLinkType - ldr r2, =0x00002288 - adds r0, r2, 0 - strh r0, [r1] -_080B3BD6: - pop {r0} - bx r0 - .pool - thumb_func_end sub_80B3BC4 - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s deleted file mode 100644 index c299d6633..000000000 --- a/asm/field_control_avatar.s +++ /dev/null @@ -1,2512 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start FieldClearPlayerInput -FieldClearPlayerInput: @ 809BEDC - push {r4,r5,lr} - movs r1, 0x2 - negs r1, r1 - movs r3, 0x3 - negs r3, r3 - movs r4, 0x5 - negs r4, r4 - movs r5, 0x9 - negs r5, r5 - movs r2, 0 - strb r2, [r0] - ldrb r2, [r0, 0x1] - ands r1, r2 - ands r1, r3 - ands r1, r4 - ands r1, r5 - strb r1, [r0, 0x1] - movs r1, 0 - strb r1, [r0, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldClearPlayerInput - - thumb_func_start FieldGetPlayerInput -@ void FieldGetPlayerInput(overworld_input_data *input_data, char buttons_new, char buttons_held) -FieldGetPlayerInput: @ 809BF08 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - lsls r2, 16 - lsrs r2, 16 - mov r8, r2 - ldr r0, =gPlayerAvatar - ldrb r6, [r0, 0x3] - ldrb r0, [r0, 0x2] - mov r9, r0 - bl cur_mapdata_block_role_at_player_pos - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsForcedMovementTile - lsls r0, 24 - lsrs r7, r0, 24 - cmp r6, 0x2 - bne _0809BF3C - cmp r7, 0 - beq _0809BF40 -_0809BF3C: - cmp r6, 0 - bne _0809BFA2 -_0809BF40: - bl GetPlayerSpeed - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - beq _0809BF8C - movs r0, 0x8 - ands r0, r5 - cmp r0, 0 - beq _0809BF5C - ldrb r0, [r4] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4] -_0809BF5C: - movs r0, 0x4 - ands r0, r5 - cmp r0, 0 - beq _0809BF6C - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] -_0809BF6C: - movs r0, 0x1 - ands r0, r5 - cmp r0, 0 - beq _0809BF7C - ldrb r0, [r4] - movs r1, 0x1 - orrs r0, r1 - strb r0, [r4] -_0809BF7C: - movs r0, 0x2 - ands r0, r5 - cmp r0, 0 - beq _0809BF8C - ldrb r0, [r4] - movs r1, 0x80 - orrs r0, r1 - strb r0, [r4] -_0809BF8C: - movs r0, 0xF0 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0809BFA2 - ldrb r0, [r4] - movs r1, 0x10 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4] -_0809BFA2: - cmp r7, 0 - bne _0809BFC8 - cmp r6, 0x2 - bne _0809BFB8 - mov r0, r9 - cmp r0, 0x2 - bne _0809BFB8 - ldrb r0, [r4] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r4] -_0809BFB8: - cmp r7, 0 - bne _0809BFC8 - cmp r6, 0x2 - bne _0809BFC8 - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] -_0809BFC8: - movs r0, 0x40 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0809BFDC - movs r0, 0x2 - b _0809C004 - .pool -_0809BFDC: - movs r0, 0x80 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0809BFEA - movs r0, 0x1 - b _0809C004 -_0809BFEA: - movs r0, 0x20 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0809BFF8 - movs r0, 0x3 - b _0809C004 -_0809BFF8: - movs r0, 0x10 - mov r1, r8 - ands r0, r1 - cmp r0, 0 - beq _0809C006 - movs r0, 0x4 -_0809C004: - strb r0, [r4, 0x2] -_0809C006: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end FieldGetPlayerInput - - thumb_func_start sub_809C014 -@ int sub_809C014(overworld_input_data *input_data) -sub_809C014: @ 809C014 - push {r4-r6,lr} - sub sp, 0x8 - adds r5, r0, 0 - ldr r0, =gSpecialVar_LastTalked - movs r1, 0 - strh r1, [r0] - ldr r0, =gSelectedEventObject - strb r1, [r0] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r6, r0, 24 - mov r4, sp - mov r0, sp - bl player_get_pos_to_and_height - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r4, r0, 16 - bl CheckForTrainersWantingBattle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E - bl mapheader_run_first_tag2_script_list_match - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E - ldrb r1, [r5] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - beq _0809C070 - bl sub_809C89C - cmp r0, 0x1 - beq _0809C14E -_0809C070: - ldrb r1, [r5] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - beq _0809C096 - movs r0, 0x5 - bl IncrementGameStat - bl increment_var_x4026_on_birth_island_modulo_100 - mov r0, sp - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_809C8DC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C096: - ldrb r1, [r5] - movs r0, 0x2 - ands r0, r1 - cmp r0, 0 - beq _0809C0AE - adds r0, r4, 0 - bl is_it_battle_time_3 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C0AE: - ldrb r1, [r5] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0809C0D0 - ldrb r0, [r5, 0x2] - cmp r0, r6 - bne _0809C0D0 - mov r0, sp - adds r1, r4, 0 - adds r2, r6, 0 - bl mapheader_run_first_tag2_script_list_match_conditionally - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C0D0: - mov r4, sp - mov r0, sp - bl player_get_next_pos_and_height - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r4, r0, 16 - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C106 - mov r0, sp - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_809C1FC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C106: - ldrb r1, [r5] - movs r0, 0x20 - ands r0, r1 - cmp r0, 0 - beq _0809C128 - ldrb r0, [r5, 0x2] - cmp r0, r6 - bne _0809C128 - mov r0, sp - adds r1, r4, 0 - adds r2, r6, 0 - bl map_warp_consider_2_to_inside - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C128: - ldrb r1, [r5] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0809C13A - bl sub_809C868 - cmp r0, 0x1 - beq _0809C14E -_0809C13A: - ldrb r1, [r5] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - beq _0809C15C - movs r0, 0x6 - bl PlaySE - bl ShowStartMenu -_0809C14E: - movs r0, 0x1 - b _0809C172 - .pool -_0809C15C: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0809C170 - bl UseRegisteredKeyItemOnField - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C14E -_0809C170: - movs r0, 0 -_0809C172: - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809C014 - - thumb_func_start player_get_pos_to_and_height -player_get_pos_to_and_height: @ 809C17C - push {r4,lr} - adds r4, r0, 0 - adds r1, r4, 0x2 - bl PlayerGetDestCoords - bl PlayerGetZCoord - strb r0, [r4, 0x4] - pop {r4} - pop {r0} - bx r0 - thumb_func_end player_get_pos_to_and_height - - thumb_func_start player_get_next_pos_and_height -player_get_next_pos_and_height: @ 809C194 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - adds r1, r5, 0x2 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _0809C1C6 - bl PlayerGetZCoord -_0809C1C6: - strb r0, [r5, 0x4] - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end player_get_next_pos_and_height - - thumb_func_start cur_mapdata_block_role_at_player_pos -cur_mapdata_block_role_at_player_pos: @ 809C1D0 - push {r4,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 16 - lsrs r0, 16 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end cur_mapdata_block_role_at_player_pos - - thumb_func_start sub_809C1FC -sub_809C1FC: @ 809C1FC - push {r4,lr} - lsls r2, 24 - lsrs r2, 24 - lsls r1, 24 - lsrs r1, 24 - bl TryGetScriptOnPressingA - adds r4, r0, 0 - cmp r4, 0 - bne _0809C214 - movs r0, 0 - b _0809C24C -_0809C214: - ldr r0, =gUnknown_081F860D - cmp r4, r0 - beq _0809C244 - ldr r0, =gUnknown_081F9553 - cmp r4, r0 - beq _0809C244 - ldr r0, =gUnknown_0823B4BB - cmp r4, r0 - beq _0809C244 - ldr r0, =gUnknown_0823B589 - cmp r4, r0 - beq _0809C244 - ldr r0, =EventScript_2766A2 - cmp r4, r0 - beq _0809C244 - ldr r0, =EventScript_2766A6 - cmp r4, r0 - beq _0809C244 - ldr r0, =EventScript_271D92 - cmp r4, r0 - beq _0809C244 - movs r0, 0x5 - bl PlaySE -_0809C244: - adds r0, r4, 0 - bl ScriptContext1_SetupScript - movs r0, 0x1 -_0809C24C: - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809C1FC - - thumb_func_start TryGetScriptOnPressingA -TryGetScriptOnPressingA: @ 809C270 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - mov r8, r5 - lsls r2, 24 - lsrs r4, r2, 24 - adds r7, r4, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl TryGetEventObjectScript - cmp r0, 0 - bne _0809C2BC - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl TryGetInvisibleEventObjectScript - cmp r0, 0 - bne _0809C2BC - adds r0, r6, 0 - adds r1, r5, 0 - adds r2, r4, 0 - bl TryGetMetatileBehaviorScript - cmp r0, 0 - bne _0809C2BC - adds r0, r6, 0 - mov r1, r8 - adds r2, r7, 0 - bl TryGetFieldMoveScript - cmp r0, 0 - bne _0809C2BC - movs r0, 0 -_0809C2BC: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end TryGetScriptOnPressingA - - thumb_func_start sub_809C2C8 -sub_809C2C8: @ 809C2C8 - push {r4-r6,lr} - adds r4, r0, 0 - lsls r2, 24 - lsrs r6, r2, 24 - movs r1, 0 - ldrsh r0, [r4, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsCounter - lsls r0, 24 - cmp r0, 0 - bne _0809C2F0 - ldrh r0, [r4] - ldrh r1, [r4, 0x2] - b _0809C30E -_0809C2F0: - ldr r1, =gDirectionToVectors - lsls r2, r6, 3 - adds r0, r2, r1 - ldr r3, [r0] - ldrh r0, [r4] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - adds r1, 0x4 - adds r2, r1 - ldr r2, [r2] - ldrh r1, [r4, 0x2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 -_0809C30E: - ldrb r2, [r4, 0x4] - bl GetEventObjectIdByXYZ - lsls r0, 24 - lsrs r3, r0, 24 - cmp r3, 0x10 - beq _0809C32E - ldr r1, =gEventObjects - lsls r2, r3, 3 - adds r0, r2, r3 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x8] - adds r5, r1, 0 - cmp r0, 0xFF - bne _0809C33C -_0809C32E: - movs r0, 0 - b _0809C36E - .pool -_0809C33C: - movs r4, 0 - ldr r1, =gLinkPlayerEventObjects -_0809C340: - ldrb r0, [r1] - cmp r0, 0x1 - bne _0809C34C - ldrb r0, [r1, 0x2] - cmp r0, r3 - beq _0809C32E -_0809C34C: - adds r1, 0x4 - adds r4, 0x1 - cmp r4, 0x3 - ble _0809C340 - ldr r0, =gSelectedEventObject - strb r3, [r0] - ldr r1, =gSpecialVar_LastTalked - adds r0, r2, r3 - lsls r0, 2 - adds r0, r5 - ldrb r0, [r0, 0x8] - strh r0, [r1] - ldr r0, =gSpecialVar_Facing - strh r6, [r0] - adds r0, r3, 0 - bl GetEventObjectScriptPointerByEventObjectId -_0809C36E: - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809C2C8 - - thumb_func_start TryGetEventObjectScript -TryGetEventObjectScript: @ 809C384 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldrh r0, [r5] - ldrh r1, [r5, 0x2] - ldrb r2, [r5, 0x4] - bl GetEventObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _0809C3B4 - ldr r1, =gEventObjects - lsls r2, r4, 3 - adds r0, r2, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x8] - adds r3, r1, 0 - cmp r0, 0xFF - bne _0809C40C -_0809C3B4: - adds r0, r6, 0 - bl MetatileBehavior_IsCounter - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C400 - ldr r1, =gDirectionToVectors - lsls r2, r7, 3 - adds r0, r2, r1 - ldr r3, [r0] - ldrh r0, [r5] - adds r0, r3 - lsls r0, 16 - lsrs r0, 16 - adds r1, 0x4 - adds r2, r1 - ldr r2, [r2] - ldrh r1, [r5, 0x2] - adds r1, r2 - lsls r1, 16 - lsrs r1, 16 - ldrb r2, [r5, 0x4] - bl GetEventObjectIdByXYZ - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x10 - beq _0809C400 - ldr r1, =gEventObjects - lsls r2, r4, 3 - adds r0, r2, r4 - lsls r0, 2 - adds r0, r1 - ldrb r0, [r0, 0x8] - adds r3, r1, 0 - cmp r0, 0xFF - bne _0809C40C -_0809C400: - movs r0, 0 - b _0809C44E - .pool -_0809C40C: - ldr r0, =gSelectedEventObject - strb r4, [r0] - ldr r1, =gSpecialVar_LastTalked - adds r0, r2, r4 - lsls r0, 2 - adds r0, r3 - ldrb r0, [r0, 0x8] - strh r0, [r1] - ldr r0, =gSpecialVar_Facing - strh r7, [r0] - bl InTrainerHill - cmp r0, 0x1 - bne _0809C43C - bl sub_81D62AC - b _0809C442 - .pool -_0809C43C: - adds r0, r4, 0 - bl GetEventObjectScriptPointerByEventObjectId -_0809C442: - adds r1, r0, 0 - ldr r0, =gSpecialVar_LastTalked - ldrb r0, [r0] - bl GetRamScript - adds r1, r0, 0 -_0809C44E: - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end TryGetEventObjectScript - - thumb_func_start TryGetInvisibleEventObjectScript -@ signed int TryGetInvisibleEventObjectScript(int a1, int a2, u8 playerFacingDirection) -TryGetInvisibleEventObjectScript: @ 809C458 - push {r4,r5,lr} - lsls r2, 24 - lsrs r5, r2, 24 - ldr r4, =gMapHeader - ldrh r1, [r0] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r3, [r0, 0x4] - adds r0, r4, 0 - bl FindInvisibleEventObjectByPosition - cmp r0, 0 - beq _0809C4CC - ldr r2, [r0, 0x8] - cmp r2, 0 - bne _0809C490 - ldr r0, =EventScript_TestSignpostMsg - b _0809C532 - .pool -_0809C490: - ldrb r0, [r0, 0x5] - cmp r0, 0x8 - bhi _0809C530 - lsls r0, 2 - ldr r1, =_0809C4A4 - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_0809C4A4: - .4byte _0809C530 - .4byte _0809C4C8 - .4byte _0809C4D0 - .4byte _0809C4D6 - .4byte _0809C4DC - .4byte _0809C4E2 - .4byte _0809C4E2 - .4byte _0809C4E2 - .4byte _0809C510 -_0809C4C8: - cmp r5, 0x2 - beq _0809C530 -_0809C4CC: - movs r0, 0 - b _0809C532 -_0809C4D0: - cmp r5, 0x1 - beq _0809C530 - b _0809C4CC -_0809C4D6: - cmp r5, 0x4 - beq _0809C530 - b _0809C4CC -_0809C4DC: - cmp r5, 0x3 - beq _0809C530 - b _0809C4CC -_0809C4E2: - ldr r1, =gSpecialVar_0x8004 - lsrs r0, r2, 16 - movs r3, 0xFA - lsls r3, 1 - adds r0, r3 - strh r0, [r1] - ldr r0, =gSpecialVar_0x8005 - strh r2, [r0] - ldrh r0, [r1] - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C4CC - ldr r0, =EventScript_271CB7 - b _0809C532 - .pool -_0809C510: - cmp r5, 0x2 - bne _0809C4CC - ldr r0, =gSpecialVar_0x8004 - strh r2, [r0] - bl sub_80E9680 - lsls r0, 24 - cmp r0, 0 - beq _0809C4CC - ldr r0, =EventScript_2759F1 - b _0809C532 - .pool -_0809C530: - adds r0, r2, 0 -_0809C532: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end TryGetInvisibleEventObjectScript - - thumb_func_start TryGetMetatileBehaviorScript -TryGetMetatileBehaviorScript: @ 809C538 - push {r4-r6,lr} - adds r6, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - lsls r2, 24 - lsrs r4, r2, 24 - adds r0, r5, 0 - adds r1, r4, 0 - bl MetatileBehavior_IsPlayerFacingTVScreen - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C55C - ldr r0, =EventScript_27EE0B - b _0809C7E4 - .pool -_0809C55C: - adds r0, r5, 0 - bl MetatileBehavior_IsPC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C574 - ldr r0, =EventScript_271D92 - b _0809C7E4 - .pool -_0809C574: - adds r0, r5, 0 - bl MetatileBehavior_IsClosedSootopolisGymDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C58C - ldr r0, =SootopolisCity_EventScript_1E615D - b _0809C7E4 - .pool -_0809C58C: - adds r0, r5, 0 - bl MetatileBehavior_IsUnknownClosedDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C5A4 - ldr r0, =SkyPillar_Outside_EventScript_2393F9 - b _0809C7E4 - .pool -_0809C5A4: - adds r0, r5, 0 - bl MetatileBehavior_IsCableBoxResults1 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C5B4 - b _0809C6E4 -_0809C5B4: - adds r0, r5, 0 - bl MetatileBehavior_IsPokeblockFeeder - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C5CC - ldr r0, =EventScript_2A4BAC - b _0809C7E4 - .pool -_0809C5CC: - adds r0, r5, 0 - bl MetatileBehavior_IsTrickHousePuzzleDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C5E4 - ldr r0, =Route110_TrickHouseEntrance_EventScript_26A22A - b _0809C7E4 - .pool -_0809C5E4: - adds r0, r5, 0 - bl MetatileBehavior_IsRegionMap - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C5FC - ldr r0, =EventScript_27208F - b _0809C7E4 - .pool -_0809C5FC: - adds r0, r5, 0 - bl MetatileBehavior_IsRunningShoesInstruction - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C614 - ldr r0, =EventScript_292DE5 - b _0809C7E4 - .pool -_0809C614: - adds r0, r5, 0 - bl MetatileBehavior_IsPictureBookShelf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C62C - ldr r0, =EventScript_2725CE - b _0809C7E4 - .pool -_0809C62C: - adds r0, r5, 0 - bl MetatileBehavior_IsBookShelf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C644 - ldr r0, =EventScript_2725D7 - b _0809C7E4 - .pool -_0809C644: - adds r0, r5, 0 - bl MetatileBehavior_IsPokeCenterBookShelf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C65C - ldr r0, =EventScript_2725E0 - b _0809C7E4 - .pool -_0809C65C: - adds r0, r5, 0 - bl MetatileBehavior_IsVase - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C674 - ldr r0, =EventScript_2725E9 - b _0809C7E4 - .pool -_0809C674: - adds r0, r5, 0 - bl MetatileBehavior_IsTrashCan - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C68C - ldr r0, =EventScript_2725F2 - b _0809C7E4 - .pool -_0809C68C: - adds r0, r5, 0 - bl MetatileBehavior_IsShopShelf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C6A4 - ldr r0, =EventScript_2725FB - b _0809C7E4 - .pool -_0809C6A4: - adds r0, r5, 0 - bl MetatileBehavior_IsBlueprint - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C6BC - ldr r0, =EventScript_272604 - b _0809C7E4 - .pool -_0809C6BC: - adds r0, r5, 0 - adds r1, r4, 0 - bl MetatileBehavior_IsPlayerFacingWirelessBoxResults - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C6D4 - ldr r0, =OldaleTown_PokemonCenter_2F_EventScript_277B8A - b _0809C7E4 - .pool -_0809C6D4: - adds r0, r5, 0 - adds r1, r4, 0 - bl MetatileBehavior_IsCableBoxResults2 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C6EC -_0809C6E4: - ldr r0, =gUnknown_08277365 - b _0809C7E4 - .pool -_0809C6EC: - adds r0, r5, 0 - bl MetatileBehavior_IsQuestionnaire - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C704 - ldr r0, =EventScript_27381B - b _0809C7E4 - .pool -_0809C704: - adds r0, r5, 0 - bl MetatileBehavior_IsTrainerHillTimer - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C71C - ldr r0, =TrainerHill_1F_EventScript_2C8393 - b _0809C7E4 - .pool -_0809C71C: - movs r4, 0x4 - ldrsb r4, [r6, r4] - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0x2 - ldrsh r1, [r6, r2] - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r4, r0 - bne _0809C7D0 - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBasePC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C74C - ldr r0, =gUnknown_0823B4BB - b _0809C7E4 - .pool -_0809C74C: - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBaseRegisterPC - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C764 - ldr r0, =gUnknown_0823B589 - b _0809C7E4 - .pool -_0809C764: - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBaseSandOrnament - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C77C - ldr r0, =gUnknown_0823B684 - b _0809C7E4 - .pool -_0809C77C: - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBaseTvOrShield - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C794 - ldr r0, =gUnknown_0823B68C - b _0809C7E4 - .pool -_0809C794: - adds r0, r5, 0 - bl MetatileBehavior_IsMB_C6 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C7A8 - bl sub_80EB56C - b _0809C7E2 -_0809C7A8: - adds r0, r5, 0 - bl MetatileBehavior_IsLargeMatCenter - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C7BC - bl sub_80EB9E0 - b _0809C7E2 -_0809C7BC: - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBaseLargeMatEdge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C7E2 - bl sub_80EBB28 - b _0809C7E2 -_0809C7D0: - adds r0, r5, 0 - bl MetatileBehavior_IsSecretBasePoster - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C7E2 - bl sub_80EB498 -_0809C7E2: - movs r0, 0 -_0809C7E4: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end TryGetMetatileBehaviorScript - - thumb_func_start TryGetFieldMoveScript -TryGetFieldMoveScript: @ 809C7EC - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =0x0000086b - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C824 - bl PartyHasMonWithSurf - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C824 - bl IsPlayerFacingSurfableFishableWater - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C824 - ldr r0, =EventScript_271EA0 - b _0809C862 - .pool -_0809C824: - adds r0, r4, 0 - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C860 - ldr r0, =0x0000086e - bl FlagGet - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C858 - bl IsPlayerSurfingNorth - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C858 - ldr r0, =EventScript_290A49 - b _0809C862 - .pool -_0809C858: - ldr r0, =EventScript_290A83 - b _0809C862 - .pool -_0809C860: - movs r0, 0 -_0809C862: - pop {r4} - pop {r1} - bx r1 - thumb_func_end TryGetFieldMoveScript - - thumb_func_start sub_809C868 -sub_809C868: @ 809C868 - push {lr} - ldr r0, =0x0000086d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809C894 - bl sub_809D1E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x2 - bne _0809C894 - ldr r0, =EventScript_290B0F - bl ScriptContext1_SetupScript - movs r0, 0x1 - b _0809C896 - .pool -_0809C894: - movs r0, 0 -_0809C896: - pop {r1} - bx r1 - thumb_func_end sub_809C868 - - thumb_func_start sub_809C89C -sub_809C89C: @ 809C89C - push {lr} - ldr r0, =0x0000086d - bl FlagGet - lsls r0, 24 - cmp r0, 0 - beq _0809C8D4 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x5 - bne _0809C8D4 - bl sub_809D1E8 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C8D4 - ldr r0, =EventScript_290B5A - bl ScriptContext1_SetupScript - movs r0, 0x1 - b _0809C8D6 - .pool -_0809C8D4: - movs r0, 0 -_0809C8D6: - pop {r1} - bx r1 - thumb_func_end sub_809C89C - - thumb_func_start sub_809C8DC -sub_809C8DC: @ 809C8DC - push {r4-r6,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r4, r1, 16 - adds r6, r4, 0 - bl mapheader_trigger_activate_at__run_now - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C92E - adds r0, r5, 0 - adds r1, r4, 0 - bl sub_809CC9C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C92E - adds r0, r4, 0 - bl sub_809C96C - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C92E - adds r0, r6, 0 - bl per_step_scripts - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C92E - bl UpdateRepelCounter - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809C92E - movs r0, 0 - b _0809C930 -_0809C92E: - movs r0, 0x1 -_0809C930: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_809C8DC - - thumb_func_start mapheader_trigger_activate_at__run_now -mapheader_trigger_activate_at__run_now: @ 809C938 - push {r4,lr} - ldr r4, =gMapHeader - ldrh r1, [r0] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r3, [r0, 0x4] - adds r0, r4, 0 - bl mapheader_trigger_activate_at - cmp r0, 0 - beq _0809C964 - bl ScriptContext1_SetupScript - movs r0, 0x1 - b _0809C966 - .pool -_0809C964: - movs r0, 0 -_0809C966: - pop {r4} - pop {r1} - bx r1 - thumb_func_end mapheader_trigger_activate_at__run_now - - thumb_func_start sub_809C96C -sub_809C96C: @ 809C96C - push {r4,lr} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsCrackedFloorHole - lsls r0, 24 - cmp r0, 0 - beq _0809C988 - ldr r0, =gUnknown_082A8337 - b _0809C996 - .pool -_0809C988: - adds r0, r4, 0 - bl MetatileBehavior_IsBattlePyramidWarp - lsls r0, 24 - cmp r0, 0 - beq _0809C9A4 - ldr r0, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8 -_0809C996: - bl ScriptContext1_SetupScript - movs r0, 0x1 - b _0809C9EA - .pool -_0809C9A4: - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBaseGlitterMat - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C9B8 - bl sub_80FA9D0 - b _0809C9E8 -_0809C9B8: - adds r0, r4, 0 - bl MetatileBehavior_IsSecretBaseSoundMat - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809C9E8 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileIdAt - lsls r0, 16 - asrs r0, 16 - bl sub_80FA970 -_0809C9E8: - movs r0, 0 -_0809C9EA: - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_809C96C - - thumb_func_start per_step_scripts -per_step_scripts: @ 809C9F4 - push {r4,lr} - lsls r0, 16 - lsrs r4, r0, 16 - bl InUnionRoom - cmp r0, 0x1 - bne _0809CA04 - b _0809CB24 -_0809CA04: - bl IncrementRematchStepCounter - bl AdjustFriendship_step - bl sub_81D4998 - ldr r0, =gPlayerAvatar - ldrb r1, [r0] - movs r0, 0x40 - ands r0, r1 - cmp r0, 0 - bne _0809CAF8 - lsls r0, r4, 24 - lsrs r0, 24 - bl MetatileBehavior_IsForcedMovementTile - lsls r0, 24 - cmp r0, 0 - bne _0809CAF8 - bl overworld_poison_step - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CA48 - ldr r0, =EventScript_2736BC - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CA48: - bl DoEggActions_CheckHatch - lsls r0, 24 - cmp r0, 0 - beq _0809CA64 - movs r0, 0xD - bl IncrementGameStat - ldr r0, =Route117_PokemonDayCare_EventScript_291FC0 - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CA64: - bl sub_813B3B0 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CA7C - ldr r0, =gUnknown_08273D1F - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CA7C: - bl ShouldDoBrailleRegicePuzzle - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CA94 - ldr r0, =IslandCave_EventScript_238EAF - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CA94: - bl is_tile_that_overrides_player_control - cmp r0, 0x1 - bne _0809CAA8 - ldr r0, =MauvilleCity_EventScript_1DF7BA - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CAA8: - bl sub_8138120 - cmp r0, 0x1 - bne _0809CABC - ldr r0, =Route119_EventScript_1F49EC - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CABC: - bl sub_8138168 - cmp r0, 0x1 - bne _0809CAD0 - ldr r0, =LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6 - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CAD0: - bl sub_81381B0 - cmp r0, 0x1 - bne _0809CAE4 - ldr r0, =RustboroCity_Gym_EventScript_21307B - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CAE4: - bl sub_81381F8 - cmp r0, 0x1 - bne _0809CAF8 - ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224175 - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CAF8: - bl SafariZoneTakeStep - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CB28 - movs r0, 0x1 - bl CountSSTidalStep - cmp r0, 0x1 - bne _0809CB1C - ldr r0, =SSTidalCorridor_EventScript_23C050 - bl ScriptContext1_SetupScript - b _0809CB28 - .pool -_0809CB1C: - bl sub_8196034 - cmp r0, 0 - bne _0809CB28 -_0809CB24: - movs r0, 0 - b _0809CB2A -_0809CB28: - movs r0, 0x1 -_0809CB2A: - pop {r4} - pop {r1} - bx r1 - thumb_func_end per_step_scripts - - thumb_func_start sub_809CB30 -sub_809CB30: @ 809CB30 - push {lr} - ldr r0, =0x0000402a - movs r1, 0 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end sub_809CB30 - - thumb_func_start AdjustFriendship_step -AdjustFriendship_step: @ 809CB44 - push {r4,r5,lr} - ldr r0, =0x0000402a - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - ldrh r1, [r0] - movs r2, 0x7F - ands r1, r2 - strh r1, [r0] - cmp r1, 0 - bne _0809CB72 - ldr r5, =gPlayerParty - movs r4, 0x5 -_0809CB62: - adds r0, r5, 0 - movs r1, 0x5 - bl AdjustFriendship - adds r5, 0x64 - subs r4, 0x1 - cmp r4, 0 - bge _0809CB62 -_0809CB72: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end AdjustFriendship_step - - thumb_func_start ResetPoisonStepCounter -ResetPoisonStepCounter: @ 809CB80 - push {lr} - ldr r0, =0x0000402b - movs r1, 0 - bl VarSet - pop {r0} - bx r0 - .pool - thumb_func_end ResetPoisonStepCounter - - thumb_func_start overworld_poison_step -overworld_poison_step: @ 809CB94 - push {lr} - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x9 - beq _0809CBD4 - ldr r0, =0x0000402b - bl GetVarPointer - ldrh r1, [r0] - adds r1, 0x1 - strh r1, [r0] - ldrh r1, [r0] - movs r2, 0x3 - ands r1, r2 - strh r1, [r0] - cmp r1, 0 - bne _0809CBD4 - bl overworld_poison - cmp r0, 0x1 - beq _0809CBD4 - cmp r0, 0x1 - ble _0809CBD4 - cmp r0, 0x2 - bne _0809CBD4 - movs r0, 0x1 - b _0809CBD6 - .pool -_0809CBD4: - movs r0, 0 -_0809CBD6: - pop {r1} - bx r1 - thumb_func_end overworld_poison_step - - thumb_func_start prev_quest_postbuffer_cursor_backup_reset -prev_quest_postbuffer_cursor_backup_reset: @ 809CBDC - ldr r1, =gUnknown_020375D4 - movs r0, 0 - strb r0, [r1] - bx lr - .pool - thumb_func_end prev_quest_postbuffer_cursor_backup_reset - - thumb_func_start is_it_battle_time_3 -is_it_battle_time_3: @ 809CBE8 - push {r4-r7,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r7, r4, 0 - ldr r6, =gUnknown_020375D4 - ldrb r0, [r6] - cmp r0, 0x3 - bhi _0809CC0C - adds r0, 0x1 - strb r0, [r6] - ldr r0, =gUnknown_020375D6 - strh r4, [r0] - movs r0, 0 - b _0809CC30 - .pool -_0809CC0C: - ldr r5, =gUnknown_020375D6 - ldrh r1, [r5] - adds r0, r4, 0 - bl StandardWildEncounter - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CC28 - strh r4, [r5] - movs r0, 0 - b _0809CC30 - .pool -_0809CC28: - movs r0, 0 - strb r0, [r6] - strh r7, [r5] - movs r0, 0x1 -_0809CC30: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end is_it_battle_time_3 - - thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally -mapheader_run_first_tag2_script_list_match_conditionally: @ 809CC38 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r7, r0, 0 - adds r4, r1, 0 - adds r5, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 24 - lsrs r5, 24 - ldr r0, =gMapHeader - mov r8, r0 - adds r1, r7, 0 - bl map_warp_check_packed - lsls r0, 24 - lsrs r6, r0, 24 - adds r0, r4, 0 - adds r1, r5, 0 - bl is_non_stair_warp_tile - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CC90 - lsls r0, r6, 24 - asrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0809CC90 - bl StoreInitialPlayerAvatarState - mov r0, r8 - adds r1, r4, 0 - adds r2, r7, 0 - bl sub_809CEB0 - bl sub_80AF734 - movs r0, 0x1 - b _0809CC92 - .pool -_0809CC90: - movs r0, 0 -_0809CC92: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally - - thumb_func_start sub_809CC9C -sub_809CC9C: @ 809CC9C - push {r4-r7,lr} - adds r6, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r7, =gMapHeader - adds r0, r7, 0 - adds r1, r6, 0 - bl map_warp_check_packed - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0809CD8A - adds r0, r5, 0 - bl is_warp_tile - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD8A - bl StoreInitialPlayerAvatarState - adds r0, r7, 0 - adds r1, r4, 0 - adds r2, r6, 0 - bl sub_809CEB0 - lsls r0, r5, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsEscalator - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CCF8 - adds r0, r4, 0 - bl sub_80AF80C - movs r0, 0x1 - b _0809CD8C - .pool -_0809CCF8: - adds r0, r4, 0 - bl MetatileBehavior_IsLavaridgeB1FWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD0E - bl sub_80AF828 - movs r0, 0x1 - b _0809CD8C -_0809CD0E: - adds r0, r4, 0 - bl MetatileBehavior_IsLavaridge1FWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD24 - bl sub_80AF838 - movs r0, 0x1 - b _0809CD8C -_0809CD24: - adds r0, r4, 0 - bl MetatileBehavior_IsAquaHideoutWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD3A - bl sub_80AF848 - movs r0, 0x1 - b _0809CD8C -_0809CD3A: - adds r0, r4, 0 - bl MetatileBehavior_IsWarpOrBridge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD50 - bl sub_80B0268 - movs r0, 0x1 - b _0809CD8C -_0809CD50: - adds r0, r4, 0 - bl MetatileBehavior_IsMtPyreHole - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD6C - ldr r0, =gUnknown_082A8350 - bl ScriptContext1_SetupScript - movs r0, 0x1 - b _0809CD8C - .pool -_0809CD6C: - adds r0, r4, 0 - bl MetatileBehavior_IsMossdeepGymWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CD82 - bl sub_80AF87C - movs r0, 0x1 - b _0809CD8C -_0809CD82: - bl sub_80AF734 - movs r0, 0x1 - b _0809CD8C -_0809CD8A: - movs r0, 0 -_0809CD8C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_809CC9C - - thumb_func_start is_warp_tile -is_warp_tile: @ 809CD94 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsWarpDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsLadder - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsEscalator - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsNonAnimDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsLavaridgeB1FWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsLavaridge1FWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsAquaHideoutWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsMtPyreHole - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsMossdeepGymWarp - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - adds r0, r4, 0 - bl MetatileBehavior_IsWarpOrBridge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - beq _0809CE2A - movs r0, 0 - b _0809CE2C -_0809CE2A: - movs r0, 0x1 -_0809CE2C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end is_warp_tile - - thumb_func_start is_non_stair_warp_tile -is_non_stair_warp_tile: @ 809CE34 - push {lr} - lsls r0, 16 - lsrs r0, 16 - lsls r1, 24 - lsrs r1, 24 - adds r2, r1, 0 - cmp r1, 0x2 - beq _0809CE58 - cmp r1, 0x2 - bgt _0809CE4E - cmp r1, 0x1 - beq _0809CE62 - b _0809CE84 -_0809CE4E: - cmp r2, 0x3 - beq _0809CE6C - cmp r2, 0x4 - beq _0809CE76 - b _0809CE84 -_0809CE58: - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsNorthArrowWarp - b _0809CE7E -_0809CE62: - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsSouthArrowWarp - b _0809CE7E -_0809CE6C: - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsWestArrowWarp - b _0809CE7E -_0809CE76: - lsls r0, 24 - lsrs r0, 24 - bl MetatileBehavior_IsEastArrowWarp -_0809CE7E: - lsls r0, 24 - lsrs r0, 24 - b _0809CE86 -_0809CE84: - movs r0, 0 -_0809CE86: - pop {r1} - bx r1 - thumb_func_end is_non_stair_warp_tile - - thumb_func_start map_warp_check_packed -map_warp_check_packed: @ 809CE8C - push {lr} - adds r3, r1, 0 - ldrh r1, [r3] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r3, 0x2] - subs r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r3, [r3, 0x4] - bl map_warp_check - lsls r0, 24 - asrs r0, 24 - pop {r1} - bx r1 - thumb_func_end map_warp_check_packed - - thumb_func_start sub_809CEB0 -sub_809CEB0: @ 809CEB0 - push {r4-r7,lr} - adds r7, r2, 0 - lsls r1, 24 - lsrs r4, r1, 24 - bl GetCurrentTrainerHillMapId - lsls r0, 24 - lsrs r5, r0, 24 - adds r6, r5, 0 - cmp r5, 0 - beq _0809CF00 - bl sub_81D6490 - lsls r0, 24 - lsrs r0, 24 - cmp r5, r0 - bne _0809CEF0 - lsls r0, r4, 24 - adds r4, r0, 0 - cmp r4, 0 - bne _0809CEE8 - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - ldr r5, [r0, 0x8] - b _0809CF0E - .pool -_0809CEE8: - bl sub_81D6120 - adds r5, r0, 0 - b _0809CF0E -_0809CEF0: - cmp r6, 0x5 - bne _0809CF00 - lsls r4, 24 - lsrs r0, r4, 24 - bl sub_81D6134 - adds r5, r0, 0 - b _0809CF0E -_0809CF00: - ldr r0, =gMapHeader - ldr r0, [r0, 0x4] - lsls r2, r4, 24 - asrs r1, r2, 21 - ldr r0, [r0, 0x8] - adds r5, r0, r1 - adds r4, r2, 0 -_0809CF0E: - ldrb r0, [r5, 0x6] - cmp r0, 0x7F - bne _0809CF20 - ldrb r0, [r5, 0x5] - bl copy_saved_warp2_bank_and_enter_x_to_warp1 - b _0809CF6E - .pool -_0809CF20: - movs r0, 0x7 - ldrsb r0, [r5, r0] - movs r1, 0x6 - ldrsb r1, [r5, r1] - movs r2, 0x5 - ldrsb r2, [r5, r2] - bl warp1_set_2 - movs r1, 0 - ldrsh r0, [r7, r1] - movs r2, 0x2 - ldrsh r1, [r7, r2] - bl sub_8084D5C - ldrb r0, [r5, 0x7] - ldrb r1, [r5, 0x6] - bl Overworld_GetMapHeaderByGroupAndId - ldr r1, [r0, 0x4] - ldrb r0, [r5, 0x5] - ldr r1, [r1, 0x8] - lsls r0, 3 - adds r0, r1 - ldrb r0, [r0, 0x6] - cmp r0, 0x7F - bne _0809CF6E - asrs r3, r4, 24 - lsls r0, r3, 3 - adds r0, r1 - ldrb r0, [r0, 0x5] - ldr r1, =gSaveBlock1Ptr - ldr r2, [r1] - movs r1, 0x4 - ldrsb r1, [r2, r1] - ldrb r2, [r2, 0x5] - lsls r2, 24 - asrs r2, 24 - bl saved_warp2_set -_0809CF6E: - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_809CEB0 - - thumb_func_start map_warp_consider_2_to_inside -map_warp_consider_2_to_inside: @ 809CF78 - push {r4-r7,lr} - adds r5, r0, 0 - lsls r1, 16 - lsrs r0, r1, 16 - adds r7, r0, 0 - lsls r2, 24 - lsrs r2, 24 - cmp r2, 0x2 - bne _0809CFFC - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl MetatileBehavior_IsOpenSecretBaseDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CFB0 - ldr r0, =gMapHeader - ldr r1, [r0, 0x4] - adds r0, r5, 0 - bl sub_80E9668 - movs r0, 0x1 - b _0809CFFE - .pool -_0809CFB0: - adds r0, r4, 0 - bl MetatileBehavior_IsWarpDoor - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CFFC - ldr r6, =gMapHeader - adds r0, r6, 0 - adds r1, r5, 0 - bl map_warp_check_packed - lsls r0, 24 - asrs r4, r0, 24 - movs r0, 0x1 - negs r0, r0 - cmp r4, r0 - beq _0809CFFC - adds r0, r7, 0 - bl is_warp_tile - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809CFFC - bl StoreInitialPlayerAvatarState - adds r0, r6, 0 - adds r1, r4, 0 - adds r2, r5, 0 - bl sub_809CEB0 - bl sub_80AF7D0 - movs r0, 0x1 - b _0809CFFE - .pool -_0809CFFC: - movs r0, 0 -_0809CFFE: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end map_warp_consider_2_to_inside - - thumb_func_start map_warp_check -map_warp_check: @ 809D004 - push {r4-r6,lr} - lsls r1, 16 - lsrs r6, r1, 16 - lsls r2, 16 - lsrs r5, r2, 16 - lsls r3, 24 - lsrs r4, r3, 24 - ldr r0, [r0, 0x4] - ldr r1, [r0, 0x8] - ldrb r3, [r0, 0x1] - movs r2, 0 - cmp r2, r3 - bge _0809D042 -_0809D01E: - ldrh r0, [r1] - cmp r0, r6 - bne _0809D03A - ldrh r0, [r1, 0x2] - cmp r0, r5 - bne _0809D03A - ldrb r0, [r1, 0x4] - cmp r0, r4 - beq _0809D034 - cmp r0, 0 - bne _0809D03A -_0809D034: - lsls r0, r2, 24 - asrs r0, 24 - b _0809D046 -_0809D03A: - adds r2, 0x1 - adds r1, 0x8 - cmp r2, r3 - blt _0809D01E -_0809D042: - movs r0, 0x1 - negs r0, r0 -_0809D046: - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end map_warp_check - - thumb_func_start trigger_activate -trigger_activate: @ 809D04C - push {r4,lr} - adds r4, r0, 0 - cmp r4, 0 - beq _0809D082 - ldr r1, [r4, 0xC] - cmp r1, 0 - bne _0809D062 - ldrb r0, [r4, 0x6] - bl DoCoordEventWeather - b _0809D082 -_0809D062: - ldrh r0, [r4, 0x6] - cmp r0, 0 - beq _0809D07C - ldrh r0, [r4, 0x6] - bl VarGet - lsls r0, 16 - lsrs r0, 16 - ldrb r1, [r4, 0x8] - cmp r0, r1 - bne _0809D082 - ldr r0, [r4, 0xC] - b _0809D084 -_0809D07C: - adds r0, r1, 0 - bl ScriptContext2_RunNewScript -_0809D082: - movs r0, 0 -_0809D084: - pop {r4} - pop {r1} - bx r1 - thumb_func_end trigger_activate - - thumb_func_start mapheader_trigger_activate_at -mapheader_trigger_activate_at: @ 809D08C - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - lsls r1, 16 - lsrs r1, 16 - mov r10, r1 - lsls r2, 16 - lsrs r2, 16 - mov r9, r2 - lsls r3, 24 - lsrs r3, 24 - mov r8, r3 - ldr r0, [r0, 0x4] - ldr r1, [r0, 0xC] - ldrb r7, [r0, 0x2] - movs r6, 0 - cmp r6, r7 - bge _0809D0E2 - adds r5, r1, 0 - adds r4, r5, 0 -_0809D0B8: - ldrh r0, [r4] - cmp r0, r10 - bne _0809D0D8 - ldrh r0, [r4, 0x2] - cmp r0, r9 - bne _0809D0D8 - ldrb r0, [r4, 0x4] - cmp r0, r8 - beq _0809D0CE - cmp r0, 0 - bne _0809D0D8 -_0809D0CE: - adds r0, r5, 0 - bl trigger_activate - cmp r0, 0 - bne _0809D0E4 -_0809D0D8: - adds r4, 0x10 - adds r5, 0x10 - adds r6, 0x1 - cmp r6, r7 - blt _0809D0B8 -_0809D0E2: - movs r0, 0 -_0809D0E4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end mapheader_trigger_activate_at - - thumb_func_start sub_809D0F4 -sub_809D0F4: @ 809D0F4 - push {r4,lr} - ldr r4, =gMapHeader - ldrh r1, [r0] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - ldrh r2, [r0, 0x2] - subs r2, 0x7 - lsls r2, 16 - lsrs r2, 16 - ldrb r3, [r0, 0x4] - adds r0, r4, 0 - bl mapheader_trigger_activate_at - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809D0F4 - - thumb_func_start FindInvisibleEventObjectByPosition -@ int FindInvisibleEventObjectByPosition(struct mapheader *mapHeader, u16 x, u16 y, u8 elevation) -FindInvisibleEventObjectByPosition: @ 809D11C - push {r4-r7,lr} - lsls r1, 16 - lsrs r7, r1, 16 - lsls r2, 16 - lsrs r6, r2, 16 - lsls r3, 24 - lsrs r5, r3, 24 - ldr r0, [r0, 0x4] - ldr r4, [r0, 0x10] - ldrb r3, [r0, 0x3] - movs r2, 0 - cmp r2, r3 - bcs _0809D162 -_0809D136: - lsls r0, r2, 1 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r4 - ldrh r0, [r1] - cmp r0, r7 - bne _0809D158 - ldrh r0, [r1, 0x2] - cmp r0, r6 - bne _0809D158 - ldrb r0, [r1, 0x4] - cmp r0, r5 - beq _0809D154 - cmp r0, 0 - bne _0809D158 -_0809D154: - adds r0, r1, 0 - b _0809D164 -_0809D158: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, r3 - bcc _0809D136 -_0809D162: - movs r0, 0 -_0809D164: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end FindInvisibleEventObjectByPosition - - thumb_func_start dive_warp -dive_warp: @ 809D16C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 16 - lsrs r5, r1, 16 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x5 - bne _0809D1A4 - lsls r0, r5, 24 - lsrs r0, 24 - bl MetatileBehavior_IsUnableToEmerge - lsls r0, 24 - cmp r0, 0 - bne _0809D1A4 - ldrh r0, [r4] - subs r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4, 0x2] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - bl SetDiveWarpEmerge - b _0809D1C8 - .pool -_0809D1A4: - lsls r0, r5, 24 - lsrs r0, 24 - bl MetatileBehavior_IsDiveable - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809D1E0 - ldrh r0, [r4] - subs r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4, 0x2] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - bl SetDiveWarpDive -_0809D1C8: - lsls r0, 24 - cmp r0, 0 - beq _0809D1E0 - bl StoreInitialPlayerAvatarState - bl sp13E_warp_to_last_warp - movs r0, 0xE9 - bl PlaySE - movs r0, 0x1 - b _0809D1E2 -_0809D1E0: - movs r0, 0 -_0809D1E2: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end dive_warp - - thumb_func_start sub_809D1E8 -sub_809D1E8: @ 809D1E8 - push {r4,r5,lr} - sub sp, 0x4 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl PlayerGetDestCoords - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r5, r0, 24 - ldr r0, =gMapHeader - ldrb r0, [r0, 0x17] - cmp r0, 0x5 - bne _0809D244 - adds r0, r5, 0 - bl MetatileBehavior_IsUnableToEmerge - lsls r0, 24 - cmp r0, 0 - bne _0809D244 - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - bl SetDiveWarpEmerge - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809D274 - movs r0, 0x1 - b _0809D276 - .pool -_0809D244: - adds r0, r5, 0 - bl MetatileBehavior_IsDiveable - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809D274 - mov r0, sp - ldrh r0, [r0] - subs r0, 0x7 - lsls r0, 16 - lsrs r0, 16 - ldrh r1, [r4] - subs r1, 0x7 - lsls r1, 16 - lsrs r1, 16 - bl SetDiveWarpDive - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _0809D274 - movs r0, 0x2 - b _0809D276 -_0809D274: - movs r0, 0 -_0809D276: - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_809D1E8 - - thumb_func_start GetEventObjectScriptPointerForComparison -@ u8 *GetEventObjectScriptPointerForComparison() -GetEventObjectScriptPointerForComparison: @ 809D280 - push {r4,r5,lr} - sub sp, 0x8 - bl GetPlayerMovementDirection - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - mov r5, sp - mov r0, sp - bl player_get_next_pos_and_height - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0x2 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - mov r0, sp - adds r2, r4, 0 - bl TryGetEventObjectScript - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end GetEventObjectScriptPointerForComparison - - thumb_func_start sub_809D2BC -sub_809D2BC: @ 809D2BC - push {r4,lr} - sub sp, 0x8 - bl GetPlayerMovementDirection - mov r4, sp - mov r0, sp - bl player_get_pos_to_and_height - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - movs r2, 0x2 - ldrsh r1, [r4, r2] - bl MapGridGetMetatileBehaviorAt - ldr r4, =gMapHeader - adds r0, r4, 0 - mov r1, sp - bl map_warp_check_packed - adds r1, r0, 0 - lsls r1, 24 - asrs r1, 24 - adds r0, r4, 0 - mov r2, sp - bl sub_809CEB0 - movs r0, 0 - add sp, 0x8 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_809D2BC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s deleted file mode 100644 index 9a019f60c..000000000 --- a/asm/field_effect_helpers.s +++ /dev/null @@ -1,4603 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start SetUpReflection -SetUpReflection: @ 8153ED4 - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - adds r4, r1, 0 - lsls r5, r2, 24 - lsrs r5, 24 - movs r0, 0x20 - ldrsh r1, [r4, r0] - movs r0, 0x22 - ldrsh r2, [r4, r0] - adds r0, r4, 0 - movs r3, 0x98 - bl CreateCopySpriteAt - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r7, r1, r0 - ldr r0, =objc_reflection_maybe - str r0, [r7, 0x1C] - ldrb r1, [r7, 0x5] - movs r0, 0xC - orrs r1, r0 - strb r1, [r7, 0x5] - ldr r2, =gReflectionEffectPaletteMap - lsrs r0, r1, 4 - adds r0, r2 - ldrb r0, [r0] - lsls r0, 4 - movs r2, 0xF - ands r1, r2 - orrs r1, r0 - strb r1, [r7, 0x5] - movs r1, 0x3F - adds r1, r7 - mov r8, r1 - ldrb r0, [r1] - movs r1, 0x40 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - ldr r0, =gDummySpriteAnimTable - str r0, [r7, 0x8] - adds r0, r7, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, =gDummySpriteAffineAnimTable - str r0, [r7, 0x10] - mov r1, r8 - ldrb r0, [r1] - movs r1, 0x8 - orrs r0, r1 - mov r1, r8 - strb r0, [r1] - adds r2, r7, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r4, 0x2E] - strh r0, [r7, 0x2E] - ldrb r0, [r6, 0x8] - strh r0, [r7, 0x30] - strh r5, [r7, 0x3C] - adds r0, r6, 0 - adds r1, r7, 0 - bl npc_pal_op - cmp r5, 0 - bne _08153F7A - ldrb r0, [r7, 0x1] - movs r1, 0x4 - negs r1, r1 - ands r1, r0 - movs r0, 0x1 - orrs r1, r0 - strb r1, [r7, 0x1] -_08153F7A: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end SetUpReflection - - thumb_func_start sub_8153F98 -sub_8153F98: @ 8153F98 - push {lr} - ldrb r0, [r0, 0x5] - bl GetEventObjectGraphicsInfo - ldrh r0, [r0, 0xA] - subs r0, 0x2 - lsls r0, 16 - asrs r0, 16 - pop {r1} - bx r1 - thumb_func_end sub_8153F98 - - thumb_func_start npc_pal_op -@ void npc_pal_op(struct npc_state *npcState, struct obj *obj) -npc_pal_op: @ 8153FAC - push {r4,r5,lr} - sub sp, 0x8 - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, =gUnknown_085CDC38 - mov r0, sp - movs r2, 0x6 - bl memcpy - movs r0, 0 - strh r0, [r4, 0x32] - ldrb r0, [r5, 0x5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r0, 0xC] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08154008 - ldrb r0, [r5, 0x1F] - bl MetatileBehavior_GetBridgeSth - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - bne _08153FEE - ldrb r0, [r5, 0x1E] - bl MetatileBehavior_GetBridgeSth - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0 - beq _08154008 -_08153FEE: - subs r0, 0x1 - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r4, 0x32] - ldrb r1, [r4, 0x5] - lsrs r1, 4 - adds r0, r5, 0 - bl npc_pal_op_A - b _08154012 - .pool -_08154008: - ldrb r1, [r4, 0x5] - lsrs r1, 4 - adds r0, r5, 0 - bl npc_pal_op_B -_08154012: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end npc_pal_op - - thumb_func_start npc_pal_op_B -@ void npc_pal_op_B(void *a1, u8 slot) -npc_pal_op_B: @ 815401C - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrb r0, [r0, 0x5] - bl GetEventObjectGraphicsInfo - adds r2, r0, 0 - ldrh r1, [r2, 0x4] - ldr r0, =0x000011ff - cmp r1, r0 - beq _08154070 - ldrb r0, [r2, 0xC] - movs r1, 0xF - ands r1, r0 - cmp r1, 0 - bne _0815404C - ldrh r0, [r2, 0x2] - adds r1, r4, 0 - bl LoadPlayerObjectReflectionPalette - b _0815406A - .pool -_0815404C: - cmp r1, 0xA - bne _0815405A - ldrh r0, [r2, 0x2] - adds r1, r4, 0 - bl LoadSpecialObjectReflectionPalette - b _0815406A -_0815405A: - adds r0, r4, 0 - bl GetObjectPaletteTag - lsls r0, 16 - lsrs r0, 16 - adds r1, r4, 0 - bl PatchObjectPalette -_0815406A: - adds r0, r4, 0 - bl UpdateSpritePaletteWithWeather -_08154070: - pop {r4} - pop {r0} - bx r0 - thumb_func_end npc_pal_op_B - - thumb_func_start npc_pal_op_A -npc_pal_op_A: @ 8154078 - push {r4,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldrb r0, [r0, 0x5] - bl GetEventObjectGraphicsInfo - adds r2, r0, 0 - ldrh r1, [r2, 0x4] - ldr r0, =0x000011ff - cmp r1, r0 - beq _0815409C - adds r0, r1, 0 - adds r1, r4, 0 - bl PatchObjectPalette - adds r0, r4, 0 - bl UpdateSpritePaletteWithWeather -_0815409C: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end npc_pal_op_A - - thumb_func_start objc_reflection_maybe -@ void objc_reflection_maybe(struct obj *object) -objc_reflection_maybe: @ 81540A8 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - adds r4, r0, 0 - movs r0, 0x2E - ldrsh r1, [r4, r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r7, r0, r1 - ldrb r1, [r7, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - ldr r0, [r7] - ldr r1, =0x00020001 - ands r0, r1 - cmp r0, r1 - bne _081540E0 - ldrb r1, [r7, 0x8] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r1, r0 - beq _081540FC -_081540E0: - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x2 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - b _08154214 - .pool -_081540FC: - ldr r1, =gReflectionEffectPaletteMap - ldrb r0, [r5, 0x5] - lsrs r0, 4 - adds r0, r1 - ldrb r1, [r0] - lsls r1, 4 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldrb r1, [r5, 0x1] - lsrs r1, 6 - lsls r1, 6 - ldrb r2, [r4, 0x1] - movs r3, 0x3F - adds r0, r3, 0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r5, 0x3] - lsrs r0, 6 - lsls r0, 6 - ldrb r2, [r4, 0x3] - adds r1, r3, 0 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - movs r2, 0x10 - orrs r0, r2 - lsls r0, 1 - subs r2, 0x4F - mov r9, r2 - ands r1, r2 - orrs r1, r0 - strb r1, [r4, 0x3] - ldrh r1, [r5, 0x4] - lsls r1, 22 - lsrs r1, 22 - ldrh r2, [r4, 0x4] - ldr r0, =0xfffffc00 - ands r0, r2 - orrs r0, r1 - strh r0, [r4, 0x4] - ldr r0, [r5, 0x18] - str r0, [r4, 0x18] - adds r0, r5, 0 - adds r0, 0x42 - ldrb r0, [r0] - lsls r0, 26 - lsrs r0, 26 - adds r2, r4, 0 - adds r2, 0x42 - ands r3, r0 - ldrb r1, [r2] - movs r0, 0x40 - negs r0, r0 - ands r0, r1 - orrs r0, r3 - strb r0, [r2] - movs r0, 0x3E - adds r0, r5 - mov r8, r0 - ldrb r0, [r0] - adds r6, r4, 0 - adds r6, 0x3E - movs r1, 0x4 - ands r1, r0 - ldrb r2, [r6] - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6] - ldrh r0, [r5, 0x20] - strh r0, [r4, 0x20] - adds r0, r7, 0 - bl sub_8153F98 - ldrh r1, [r5, 0x22] - adds r0, r1 - ldrh r1, [r4, 0x32] - adds r1, r0 - strh r1, [r4, 0x22] - adds r0, r5, 0 - adds r0, 0x28 - ldrb r1, [r0] - adds r0, r4, 0 - adds r0, 0x28 - strb r1, [r0] - adds r0, r5, 0 - adds r0, 0x29 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x29 - strb r0, [r1] - ldrh r0, [r5, 0x24] - strh r0, [r4, 0x24] - ldrh r0, [r5, 0x26] - negs r0, r0 - strh r0, [r4, 0x26] - mov r2, r8 - ldrb r1, [r2] - movs r0, 0x2 - ands r0, r1 - ldrb r1, [r6] - movs r2, 0x3 - negs r2, r2 - ands r2, r1 - orrs r2, r0 - strb r2, [r6] - ldrb r0, [r7, 0x3] - lsls r0, 28 - cmp r0, 0 - bge _081541EE - movs r0, 0x4 - orrs r2, r0 - strb r2, [r6] -_081541EE: - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08154214 - ldrb r0, [r4, 0x3] - mov r2, r9 - ands r2, r0 - strb r2, [r4, 0x3] - ldrb r0, [r5, 0x3] - lsls r0, 26 - lsrs r0, 27 - movs r1, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08154214 - movs r1, 0x2 - adds r0, r2, 0 - orrs r0, r1 - strb r0, [r4, 0x3] -_08154214: - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end objc_reflection_maybe - - thumb_func_start sub_8154228 -sub_8154228: @ 8154228 - push {r4,lr} - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x20] - movs r1, 0 - movs r2, 0 - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - adds r4, r0, 0 - cmp r0, 0x40 - beq _08154266 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r3, 0x4 - orrs r0, r3 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - orrs r0, r3 - strb r0, [r1] -_08154266: - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154228 - - thumb_func_start objid_set_invisible -objid_set_invisible: @ 8154278 - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1] - bx lr - .pool - thumb_func_end objid_set_invisible - - thumb_func_start sub_8154298 -sub_8154298: @ 8154298 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r5, r0, 24 - lsls r1, 24 - lsrs r1, 24 - mov r8, r1 - lsls r2, 16 - lsrs r7, r2, 16 - lsls r3, 16 - lsrs r6, r3, 16 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, =gSprites - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _081542E2 - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r7, 16 - asrs r0, 16 - cmp r1, r0 - bne _081542E2 - movs r0, 0x30 - ldrsh r1, [r2, r0] - lsls r0, r6, 16 - asrs r0, 16 - cmp r1, r0 - beq _0815432E -_081542E2: - lsls r0, r7, 16 - asrs r0, 16 - lsls r1, r6, 16 - asrs r1, 16 - mov r4, sp - adds r4, 0x2 - mov r2, sp - adds r3, r4, 0 - bl sub_8093038 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r1, =gSprites - adds r2, r0, r1 - mov r0, sp - ldrh r0, [r0] - adds r0, 0x8 - strh r0, [r2, 0x20] - ldrh r0, [r4] - adds r0, 0x8 - strh r0, [r2, 0x22] - adds r3, r2, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r3] - strh r7, [r2, 0x2E] - strh r6, [r2, 0x30] - mov r1, r8 - subs r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl StartSpriteAnim -_0815432E: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8154298 - - thumb_func_start oei_shadow -oei_shadow: @ 8154340 - push {r4,r5,lr} - ldr r5, =gFieldEffectArguments - ldrb r0, [r5] - ldrb r1, [r5, 0x4] - ldrb r2, [r5, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - ldr r2, =gEventObjects - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x5] - bl GetEventObjectGraphicsInfo - adds r4, r0, 0 - ldr r2, =gFieldEffectObjectTemplatePointers - ldr r1, =gUnknown_085CDC3E - ldrb r0, [r4, 0xC] - lsls r0, 26 - lsrs r0, 30 - adds r0, r1 - ldrb r0, [r0] - lsls r0, 2 - adds r0, r2 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - movs r3, 0x94 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081543C4 - ldr r0, =gSprites - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldr r0, [r5] - strh r0, [r2, 0x2E] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r5, 0x8] - strh r0, [r2, 0x32] - ldrh r1, [r4, 0xA] - lsls r1, 16 - asrs r1, 17 - ldr r3, =gUnknown_085CDC42 - ldrb r0, [r4, 0xC] - lsls r0, 26 - lsrs r0, 30 - lsls r0, 1 - adds r0, r3 - ldrh r0, [r0] - subs r1, r0 - strh r1, [r2, 0x34] -_081543C4: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end oei_shadow - - thumb_func_start oamc_shadow -oamc_shadow: @ 81543E4 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r5, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _08154412 - adds r0, r5, 0 - movs r1, 0x3 - bl FieldEffectStop - b _08154498 -_08154412: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r4, r0, r1 - ldrb r0, [r4, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - ldrb r0, [r1, 0x5] - movs r2, 0xC - ands r2, r0 - ldrb r3, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r5, 0x5] - ldrh r0, [r1, 0x20] - strh r0, [r5, 0x20] - ldrh r0, [r5, 0x34] - ldrh r1, [r1, 0x22] - adds r0, r1 - strh r0, [r5, 0x22] - ldr r0, [r4] - ldr r1, =0x00400001 - ands r0, r1 - cmp r0, r1 - bne _08154490 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsPokeGrass - lsls r0, 24 - cmp r0, 0 - bne _08154490 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _08154490 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsSurfableWaterOrUnderwater - lsls r0, 24 - cmp r0, 0 - bne _08154490 - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsReflective - lsls r0, 24 - cmp r0, 0 - bne _08154490 - ldrb r0, [r4, 0x1F] - bl MetatileBehavior_IsReflective - lsls r0, 24 - cmp r0, 0 - beq _08154498 -_08154490: - adds r0, r5, 0 - movs r1, 0x3 - bl FieldEffectStop -_08154498: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end oamc_shadow - - thumb_func_start oei_grass_normal -oei_grass_normal: @ 81544AC - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x10] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _08154538 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r3, r0, r1 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - movs r0, 0x3 - ldrb r1, [r5, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r2, [r3, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3, 0x5] - ldr r0, [r5, 0x8] - strh r0, [r3, 0x2E] - ldr r0, [r5] - strh r0, [r3, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r3, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r3, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r3, 0x36] - ldr r0, [r5, 0x18] - strh r0, [r3, 0x38] - ldr r0, [r5, 0x1C] - cmp r0, 0 - beq _08154538 - adds r0, r3, 0 - movs r1, 0x4 - bl SeekSpriteAnim -_08154538: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end oei_grass_normal - - thumb_func_start unc_grass_normal -unc_grass_normal: @ 8154550 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - lsrs r4, r0, 8 - lsls r0, 24 - lsrs r7, r0, 24 - ldr r3, =gCamera - ldrb r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815459C - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, r4 - bne _08154582 - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r0, r7 - beq _0815459C -_08154582: - ldr r1, [r3, 0x4] - ldrh r0, [r5, 0x30] - subs r0, r1 - strh r0, [r5, 0x30] - ldr r1, [r3, 0x8] - ldrh r0, [r5, 0x32] - subs r0, r1 - strh r0, [r5, 0x32] - ldrb r1, [r2, 0x5] - lsls r1, 8 - ldrb r0, [r2, 0x4] - orrs r0, r1 - strh r0, [r5, 0x38] -_0815459C: - ldrh r0, [r5, 0x34] - lsrs r1, r0, 8 - mov r8, r1 - lsls r0, 24 - lsrs r4, r0, 24 - ldrh r0, [r5, 0x36] - lsls r0, 24 - lsrs r7, r0, 24 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r6, r0, 24 - mov r0, r8 - adds r1, r4, 0 - adds r2, r7, 0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _081545F0 - adds r0, r6, 0 - bl MetatileBehavior_IsTallGrass - lsls r0, 24 - cmp r0, 0 - beq _081545F0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08154604 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08154604 -_081545F0: - adds r0, r5, 0 - movs r1, 0x4 - bl FieldEffectStop - b _08154648 - .pool -_08154604: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, [r5, 0x30] - cmp r0, r1 - beq _08154624 - ldr r0, [r2, 0x14] - cmp r0, r1 - beq _08154624 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_08154624: - movs r6, 0 - adds r0, r5, 0 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0 - bne _08154632 - movs r6, 0x4 -_08154632: - adds r0, r5, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - adds r2, r6, 0 - bl sub_81561FC -_08154648: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end unc_grass_normal - - thumb_func_start sub_8154658 -sub_8154658: @ 8154658 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x28] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081546B4 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xC - strh r0, [r2, 0x30] -_081546B4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154658 - - thumb_func_start sub_81546C8 -sub_81546C8: @ 81546C8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - ldr r4, [sp, 0x18] - lsls r0, 24 - lsrs r0, 24 - mov r12, r0 - lsls r1, 24 - lsrs r7, r1, 24 - lsls r2, 24 - lsrs r6, r2, 24 - movs r5, 0 - ldr r0, =gSprites - mov r8, r0 - lsls r3, 16 - asrs r3, 16 - lsls r4, 16 - asrs r4, 16 -_081546EC: - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - mov r1, r8 - adds r2, r0, r1 - adds r0, r2, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _08154740 - ldr r1, [r2, 0x1C] - ldr r0, =unc_grass_normal - cmp r1, r0 - bne _08154740 - movs r1, 0x30 - ldrsh r0, [r2, r1] - cmp r3, r0 - bne _08154740 - movs r1, 0x32 - ldrsh r0, [r2, r1] - cmp r4, r0 - bne _08154740 - ldrh r1, [r2, 0x34] - lsrs r0, r1, 8 - cmp r12, r0 - bne _08154740 - movs r0, 0xFF - ands r0, r1 - cmp r7, r0 - bne _08154740 - movs r1, 0x36 - ldrsh r0, [r2, r1] - cmp r6, r0 - bne _08154740 - adds r0, r5, 0 - b _0815474C - .pool -_08154740: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x3F - bls _081546EC - movs r0, 0x40 -_0815474C: - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_81546C8 - - thumb_func_start sub_8154758 -sub_8154758: @ 8154758 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x3C] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _081547E8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r4, r0, r1 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r2] - ldrb r0, [r5, 0x8] - bl ZCoordToPriority - movs r1, 0x3 - ands r1, r0 - lsls r1, 2 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - ldr r0, [r5, 0x8] - strh r0, [r4, 0x2E] - ldr r0, [r5] - strh r0, [r4, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r4, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r4, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r4, 0x36] - ldr r0, [r5, 0x18] - strh r0, [r4, 0x38] - ldr r0, [r5, 0x1C] - cmp r0, 0 - beq _081547E8 - adds r0, r4, 0 - movs r1, 0x6 - bl SeekSpriteAnim -_081547E8: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154758 - - thumb_func_start unc_grass_tall -unc_grass_tall: @ 8154800 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x38] - lsrs r7, r0, 8 - lsls r0, 24 - lsrs r6, r0, 24 - ldr r3, =gCamera - ldrb r1, [r3] - movs r0, 0x1 - ands r0, r1 - cmp r0, 0 - beq _0815484C - ldr r0, =gSaveBlock1Ptr - ldr r2, [r0] - movs r0, 0x5 - ldrsb r0, [r2, r0] - cmp r0, r7 - bne _08154832 - movs r0, 0x4 - ldrsb r0, [r2, r0] - cmp r0, r6 - beq _0815484C -_08154832: - ldr r1, [r3, 0x4] - ldrh r0, [r5, 0x30] - subs r0, r1 - strh r0, [r5, 0x30] - ldr r1, [r3, 0x8] - ldrh r0, [r5, 0x32] - subs r0, r1 - strh r0, [r5, 0x32] - ldrb r1, [r2, 0x5] - lsls r1, 8 - ldrb r0, [r2, 0x4] - orrs r0, r1 - strh r0, [r5, 0x38] -_0815484C: - ldrh r0, [r5, 0x34] - lsrs r1, r0, 8 - mov r8, r1 - lsls r0, 24 - lsrs r7, r0, 24 - ldrh r0, [r5, 0x36] - lsls r0, 24 - lsrs r6, r0, 24 - movs r2, 0x30 - ldrsh r0, [r5, r2] - movs r2, 0x32 - ldrsh r1, [r5, r2] - bl MapGridGetMetatileBehaviorAt - lsls r0, 24 - lsrs r4, r0, 24 - mov r0, r8 - adds r1, r7, 0 - adds r2, r6, 0 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _081548A0 - adds r0, r4, 0 - bl MetatileBehavior_IsLongGrass - lsls r0, 24 - cmp r0, 0 - beq _081548A0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _081548B4 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081548B4 -_081548A0: - adds r0, r5, 0 - movs r1, 0x11 - bl FieldEffectStop - b _081548EA - .pool -_081548B4: - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, =gEventObjects - adds r2, r0, r1 - ldr r0, [r2, 0x10] - ldr r1, [r5, 0x30] - cmp r0, r1 - beq _081548D4 - ldr r0, [r2, 0x14] - cmp r0, r1 - beq _081548D4 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_081548D4: - adds r0, r5, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r5, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - movs r2, 0 - bl sub_81561FC -_081548EA: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end unc_grass_tall - - thumb_func_start sub_81548FC -sub_81548FC: @ 81548FC - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x40] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08154958 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0x12 - strh r0, [r2, 0x30] -_08154958: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81548FC - - thumb_func_start sub_815496C -sub_815496C: @ 815496C - push {r4-r6,lr} - ldr r6, =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gEventObjects - adds r5, r1, r0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x78] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081549F8 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r4, =gSprites - adds r2, r4 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r6] - strh r0, [r2, 0x2E] - ldr r0, [r6, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r6, 0x8] - strh r0, [r2, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r2, 0x34] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x36] -_081549F8: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_815496C - - thumb_func_start sub_8154A10 -sub_8154A10: @ 8154A10 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08154A4E - ldr r5, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - lsls r0, 29 - cmp r0, 0 - blt _08154A5C -_08154A4E: - adds r0, r4, 0 - movs r1, 0x29 - bl FieldEffectStop - b _08154AF2 - .pool -_08154A5C: - ldrb r0, [r1, 0x5] - bl GetEventObjectGraphicsInfo - mov r8, r0 - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r5 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r6, r0, r1 - ldrh r5, [r6, 0x22] - ldrh r7, [r6, 0x20] - movs r0, 0x20 - ldrsh r1, [r6, r0] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08154A98 - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _08154AB2 -_08154A98: - strh r7, [r4, 0x34] - strh r5, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08154AB2 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_08154AB2: - strh r7, [r4, 0x20] - strh r5, [r4, 0x22] - mov r1, r8 - ldrh r0, [r1, 0xA] - lsls r0, 16 - asrs r0, 17 - subs r0, 0x8 - strh r0, [r4, 0x26] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldrb r0, [r6, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r2, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] - adds r0, r6, 0 - adds r0, 0x3E - ldrb r1, [r0] - lsls r1, 29 - lsrs r1, 31 - adds r0, r4, 0 - bl UpdateEventObjectSpriteVisibility -_08154AF2: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8154A10 - - thumb_func_start sub_8154B04 -sub_8154B04: @ 8154B04 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x2C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x40 - beq _08154B62 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0xD - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_08154B62: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154B04 - - thumb_func_start sub_8154B78 -sub_8154B78: @ 8154B78 - push {r4,r5,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x5C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - cmp r1, 0x40 - beq _08154BD8 - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x18 - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_08154BD8: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154B78 - - thumb_func_start sub_8154BEC -sub_8154BEC: @ 8154BEC - push {r4,r5,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x6C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r1, r0, 24 - adds r5, r1, 0 - cmp r1, 0x40 - beq _08154C4C - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - movs r1, 0x3 - ldrb r2, [r4, 0xC] - ands r2, r1 - lsls r2, 2 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - movs r1, 0x23 - strh r1, [r0, 0x3C] - ldrb r1, [r4, 0x10] - bl StartSpriteAnim -_08154C4C: - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154BEC - - thumb_func_start sub_8154C60 -sub_8154C60: @ 8154C60 - push {lr} - ldr r2, =gUnknown_085CDC4C - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8154C60 - - thumb_func_start sub_8154C7C -sub_8154C7C: @ 8154C7C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - adds r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x28 - ble _08154C92 - movs r0, 0x1 - strh r0, [r1, 0x2E] -_08154C92: - adds r0, r1, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - pop {r0} - bx r0 - thumb_func_end sub_8154C7C - - thumb_func_start sub_8154CA0 -sub_8154CA0: @ 8154CA0 - push {r4,lr} - adds r4, r0, 0 - adds r3, r4, 0 - adds r3, 0x3E - ldrb r2, [r3] - lsls r0, r2, 29 - lsrs r0, 31 - movs r1, 0x1 - eors r1, r0 - lsls r1, 2 - movs r0, 0x5 - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r4, 0x30] - adds r0, 0x1 - strh r0, [r4, 0x30] - ldrb r1, [r3] - lsls r1, 29 - lsrs r1, 31 - adds r0, r4, 0 - bl UpdateEventObjectSpriteVisibility - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x38 - ble _08154CE4 - ldrh r1, [r4, 0x3C] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldEffectStop -_08154CE4: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8154CA0 - - thumb_func_start sub_8154CEC -sub_8154CEC: @ 8154CEC - push {r4-r6,lr} - ldr r6, =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gEventObjects - adds r5, r1, r0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x34] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _08154D76 - ldrb r0, [r5, 0x5] - bl GetEventObjectGraphicsInfo - lsls r3, r4, 4 - adds r3, r4 - lsls r3, 2 - ldr r4, =gSprites - adds r3, r4 - movs r1, 0x3E - adds r1, r3 - mov r12, r1 - ldrb r1, [r1] - movs r2, 0x2 - orrs r1, r2 - mov r2, r12 - strb r1, [r2] - ldrb r2, [r5, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r4, [r3, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r2 - strb r1, [r3, 0x5] - ldr r1, [r6] - strh r1, [r3, 0x2E] - ldr r1, [r6, 0x4] - strh r1, [r3, 0x30] - ldr r1, [r6, 0x8] - strh r1, [r3, 0x32] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - subs r0, 0x4 - strh r0, [r3, 0x26] - movs r0, 0x46 - bl PlaySE -_08154D76: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154CEC - - thumb_func_start sub_8154D90 -sub_8154D90: @ 8154D90 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - bne _08154DC0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _08154DCA -_08154DC0: - adds r0, r4, 0 - movs r1, 0xF - bl FieldEffectStop - b _08154E0A -_08154DCA: - ldr r3, =gSprites - ldr r2, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - strh r0, [r4, 0x20] - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - strh r0, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility -_08154E0A: - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8154D90 - - thumb_func_start sub_8154E1C -sub_8154E1C: @ 8154E1C - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x38] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08154E78 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0x10 - strh r0, [r2, 0x30] -_08154E78: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154E1C - - thumb_func_start oei_water_drop_tall -oei_water_drop_tall: @ 8154E8C - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x30] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08154EE8 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xE - strh r0, [r2, 0x30] -_08154EE8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end oei_water_drop_tall - - thumb_func_start sub_8154EFC -sub_8154EFC: @ 8154EFC - push {r4-r7,lr} - ldr r7, =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gEventObjects - adds r6, r1, r0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x34] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r5, r0, 24 - cmp r5, 0x40 - beq _08154F92 - ldrb r0, [r6, 0x5] - bl GetEventObjectGraphicsInfo - adds r4, r0, 0 - lsls r0, r5, 4 - adds r0, r5 - lsls r0, 2 - ldr r3, =gSprites - adds r0, r3 - ldr r1, =sub_8154FB4 - str r1, [r0, 0x1C] - adds r5, r0, 0 - adds r5, 0x3E - ldrb r1, [r5] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r5] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r3 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r7] - strh r1, [r0, 0x2E] - ldr r1, [r7, 0x4] - strh r1, [r0, 0x30] - ldr r1, [r7, 0x8] - strh r1, [r0, 0x32] - ldr r1, =0x0000ffff - strh r1, [r0, 0x34] - movs r1, 0x1 - negs r1, r1 - strh r1, [r0, 0x36] - ldrh r1, [r4, 0xA] - lsls r1, 16 - asrs r1, 17 - subs r1, 0x4 - strh r1, [r0, 0x26] - movs r1, 0x1 - bl StartSpriteAnim -_08154F92: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8154EFC - - thumb_func_start sub_8154FB4 -sub_8154FB4: @ 8154FB4 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08154FEE - ldr r2, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r5, r0, r2 - ldrb r0, [r5, 0x2] - lsls r0, 28 - cmp r0, 0 - blt _08154FFC -_08154FEE: - adds r0, r4, 0 - movs r1, 0x22 - bl FieldEffectStop - b _08155046 - .pool -_08154FFC: - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - ldrh r1, [r0, 0x20] - strh r1, [r4, 0x20] - ldrh r1, [r0, 0x22] - strh r1, [r4, 0x22] - adds r0, 0x43 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - ldr r1, [r5, 0x10] - ldr r0, [r4, 0x34] - cmp r1, r0 - beq _08155046 - ldrh r0, [r5, 0x10] - strh r0, [r4, 0x34] - ldrh r0, [r5, 0x12] - strh r0, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3E - ldrb r1, [r0] - movs r0, 0x4 - ands r0, r1 - cmp r0, 0 - bne _08155046 - movs r0, 0x46 - bl PlaySE -_08155046: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8154FB4 - - thumb_func_start oei_ripples -oei_ripples: @ 8155054 - push {r4,lr} - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x14] - ldr r4, =gFieldEffectArguments - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081550A0 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x5 - strh r0, [r2, 0x2E] -_081550A0: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end oei_ripples - - thumb_func_start sub_81550B4 -sub_81550B4: @ 81550B4 - push {r4-r6,lr} - ldr r6, =gFieldEffectArguments - ldrb r0, [r6] - ldrb r1, [r6, 0x4] - ldrb r2, [r6, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gEventObjects - adds r5, r1, r0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x7C] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155140 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r4, =gSprites - adds r2, r4 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r6] - strh r0, [r2, 0x2E] - ldr r0, [r6, 0x4] - strh r0, [r2, 0x30] - ldr r0, [r6, 0x8] - strh r0, [r2, 0x32] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x20] - strh r0, [r2, 0x34] - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrh r0, [r0, 0x22] - strh r0, [r2, 0x36] -_08155140: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81550B4 - - thumb_func_start sub_8155158 -sub_8155158: @ 8155158 - push {r4,r5,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08155192 - ldr r5, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r5 - ldrb r0, [r1, 0x2] - lsls r0, 26 - cmp r0, 0 - blt _081551A0 -_08155192: - adds r0, r4, 0 - movs r1, 0x2A - bl FieldEffectStop - b _081551E4 - .pool -_081551A0: - ldrb r0, [r1, 0x5] - bl GetEventObjectGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r5 - ldrb r2, [r1, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - ldr r2, =gSprites - adds r1, r2 - ldrh r2, [r1, 0x20] - strh r2, [r4, 0x20] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - ldrh r2, [r1, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r4, 0x22] - adds r1, 0x43 - ldrb r0, [r1] - subs r0, 0x1 - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility -_081551E4: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155158 - - thumb_func_start sub_81551F0 -sub_81551F0: @ 81551F0 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x44] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155248 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x13 - strh r0, [r2, 0x2E] -_08155248: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81551F0 - - thumb_func_start sub_815525C -sub_815525C: @ 815525C - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x48] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081552B4 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x14 - strh r0, [r2, 0x2E] -_081552B4: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_815525C - - thumb_func_start sub_81552C8 -sub_81552C8: @ 81552C8 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x4C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155320 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x15 - strh r0, [r2, 0x2E] -_08155320: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_81552C8 - - thumb_func_start sub_8155334 -sub_8155334: @ 8155334 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x50] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0815538C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x16 - strh r0, [r2, 0x2E] -_0815538C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155334 - - thumb_func_start ash -ash: @ 81553A0 - push {r4,lr} - lsls r2, 16 - lsrs r2, 16 - ldr r4, =gFieldEffectArguments - lsls r0, 16 - asrs r0, 16 - str r0, [r4] - lsls r1, 16 - asrs r1, 16 - str r1, [r4, 0x4] - movs r0, 0x52 - str r0, [r4, 0x8] - movs r0, 0x1 - str r0, [r4, 0xC] - str r2, [r4, 0x10] - lsls r3, 16 - asrs r3, 16 - str r3, [r4, 0x14] - movs r0, 0x7 - bl FieldEffectStart - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ash - - thumb_func_start oei_ash -oei_ash: @ 81553D4 - push {r4,r5,lr} - sub sp, 0x4 - ldr r5, =gFieldEffectArguments - ldrh r1, [r5] - mov r0, sp - strh r1, [r0] - ldrh r0, [r5, 0x4] - mov r4, sp - adds r4, 0x2 - strh r0, [r4] - mov r0, sp - adds r1, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x18] - mov r1, sp - movs r2, 0 - ldrsh r1, [r1, r2] - movs r3, 0 - ldrsh r2, [r4, r3] - ldrb r3, [r5, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _0815544A - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r5, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r5] - strh r0, [r2, 0x30] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x32] - ldr r0, [r5, 0x10] - strh r0, [r2, 0x34] - ldr r0, [r5, 0x14] - strh r0, [r2, 0x36] -_0815544A: - movs r0, 0 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end oei_ash - - thumb_func_start sub_8155460 -sub_8155460: @ 8155460 - push {lr} - ldr r2, =gUnknown_085CDC54 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155460 - - thumb_func_start sub_815547C -sub_815547C: @ 815547C - push {lr} - adds r3, r0, 0 - adds r2, r3, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r0, [r2] - movs r1, 0x40 - orrs r0, r1 - strb r0, [r2] - ldrh r0, [r3, 0x36] - subs r0, 0x1 - strh r0, [r3, 0x36] - lsls r0, 16 - cmp r0, 0 - bne _081554A6 - movs r0, 0x1 - strh r0, [r3, 0x2E] -_081554A6: - pop {r0} - bx r0 - thumb_func_end sub_815547C - - thumb_func_start sub_81554AC -sub_81554AC: @ 81554AC - push {r4,lr} - adds r4, r0, 0 - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - subs r2, 0x12 - ldrb r1, [r2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r2] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - ldrh r2, [r4, 0x34] - bl MapGridSetMetatileIdAt - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r2, 0x32 - ldrsh r1, [r4, r2] - bl CurrentMapDrawMetatileAt - ldr r2, =gEventObjects - ldr r0, =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0] - movs r2, 0x4 - orrs r1, r2 - strb r1, [r0] - movs r0, 0x2 - strh r0, [r4, 0x2E] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81554AC - - thumb_func_start sub_815550C -sub_815550C: @ 815550C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0815552C - adds r0, r4, 0 - movs r1, 0x7 - bl FieldEffectStop -_0815552C: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_815550C - - thumb_func_start sub_8155534 -sub_8155534: @ 8155534 - push {r4,r5,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x1C] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x96 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - cmp r0, 0x40 - beq _0815558E - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xF - ands r0, r2 - strb r0, [r1, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r1, 0x32] - ldr r0, =0x0000ffff - strh r0, [r1, 0x34] - movs r0, 0x1 - negs r0, r0 - strh r0, [r1, 0x3A] - strh r0, [r1, 0x3C] -_0815558E: - movs r0, 0x8 - bl FieldEffectActiveListRemove - adds r0, r5, 0 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155534 - - thumb_func_start sub_81555AC -sub_81555AC: @ 81555AC - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r2, 0x2E] - movs r3, 0x10 - negs r3, r3 - ands r3, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 24 - orrs r0, r3 - strh r0, [r2, 0x2E] - bx lr - .pool - thumb_func_end sub_81555AC - - thumb_func_start sub_81555D8 -sub_81555D8: @ 81555D8 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r3, =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - ldrh r0, [r2, 0x2E] - movs r3, 0xF1 - negs r3, r3 - ands r3, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 20 - orrs r3, r0 - strh r3, [r2, 0x2E] - bx lr - .pool - thumb_func_end sub_81555D8 - - thumb_func_start sub_8155604 -sub_8155604: @ 8155604 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - ldr r4, =gSprites - lsls r3, r0, 4 - adds r3, r0 - lsls r3, 2 - adds r3, r4 - ldrh r0, [r3, 0x2E] - ldr r4, =0xfffff0ff - ands r4, r0 - movs r0, 0xF0 - lsls r0, 20 - ands r0, r1 - lsrs r0, 16 - orrs r4, r0 - strh r4, [r3, 0x2E] - strh r2, [r3, 0x30] - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155604 - - thumb_func_start sub_8155638 -sub_8155638: @ 8155638 - ldrh r1, [r0, 0x2E] - movs r0, 0xF - ands r0, r1 - bx lr - thumb_func_end sub_8155638 - - thumb_func_start sub_8155640 -sub_8155640: @ 8155640 - ldrh r1, [r0, 0x2E] - movs r0, 0xF0 - ands r0, r1 - lsrs r0, 4 - bx lr - thumb_func_end sub_8155640 - - thumb_func_start sub_815564C -sub_815564C: @ 815564C - ldrh r1, [r0, 0x2E] - movs r0, 0xF0 - lsls r0, 4 - ands r0, r1 - lsrs r0, 8 - bx lr - thumb_func_end sub_815564C - - thumb_func_start sub_8155658 -sub_8155658: @ 8155658 - push {r4-r6,lr} - adds r6, r0, 0 - movs r1, 0x32 - ldrsh r0, [r6, r1] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, =gEventObjects - adds r4, r0 - ldrb r0, [r4, 0x4] - lsls r5, r0, 4 - adds r5, r0 - lsls r5, 2 - ldr r0, =gSprites - adds r5, r0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_81556B0 - adds r0, r4, 0 - adds r1, r6, 0 - bl sub_81556E8 - adds r0, r4, 0 - adds r1, r5, 0 - adds r2, r6, 0 - bl sub_815577C - ldrb r0, [r5, 0x5] - movs r1, 0xC - ands r1, r0 - ldrb r2, [r6, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - orrs r0, r1 - strb r0, [r6, 0x5] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155658 - - thumb_func_start sub_81556B0 -sub_81556B0: @ 81556B0 - push {r4,r5,lr} - sub sp, 0xC - adds r5, r0, 0 - adds r4, r1, 0 - ldr r1, =gUnknown_085CDC60 - mov r0, sp - movs r2, 0x9 - bl memcpy - adds r0, r4, 0 - bl sub_8155640 - lsls r0, 24 - cmp r0, 0 - bne _081556DC - ldrb r0, [r5, 0x18] - lsrs r0, 4 - add r0, sp - ldrb r1, [r0] - adds r0, r4, 0 - bl StartSpriteAnimIfDifferent -_081556DC: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81556B0 - - thumb_func_start sub_81556E8 -sub_81556E8: @ 81556E8 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - adds r4, r1, 0 - ldrh r2, [r0, 0x10] - mov r1, sp - strh r2, [r1] - ldrh r1, [r0, 0x12] - mov r0, sp - adds r0, 0x2 - strh r1, [r0] - movs r2, 0x26 - ldrsh r3, [r4, r2] - mov r8, r0 - cmp r3, 0 - bne _08155770 - mov r0, sp - movs r5, 0 - ldrsh r2, [r0, r5] - movs r5, 0x3A - ldrsh r0, [r4, r5] - cmp r2, r0 - bne _08155724 - lsls r0, r1, 16 - asrs r0, 16 - movs r5, 0x3C - ldrsh r1, [r4, r5] - cmp r0, r1 - beq _08155770 -_08155724: - strh r3, [r4, 0x38] - strh r2, [r4, 0x3A] - mov r1, r8 - movs r2, 0 - ldrsh r0, [r1, r2] - strh r0, [r4, 0x3C] - movs r5, 0x1 - mov r7, r8 - mov r6, sp -_08155736: - adds r0, r5, 0 - mov r1, sp - adds r2, r7, 0 - bl MoveCoords - movs r1, 0 - ldrsh r0, [r6, r1] - movs r2, 0 - ldrsh r1, [r7, r2] - bl MapGridGetZCoordAt - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x3 - bne _0815575C - ldrh r0, [r4, 0x38] - adds r0, 0x1 - strh r0, [r4, 0x38] - b _08155770 -_0815575C: - adds r0, r5, 0x1 - lsls r0, 24 - lsrs r5, r0, 24 - ldrh r0, [r4, 0x3A] - strh r0, [r6] - ldrh r0, [r4, 0x3C] - mov r1, r8 - strh r0, [r1] - cmp r5, 0x4 - bls _08155736 -_08155770: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81556E8 - - thumb_func_start sub_815577C -sub_815577C: @ 815577C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r1, 0 - adds r4, r2, 0 - ldr r1, =gUnknown_085CDC6A - mov r0, sp - movs r2, 0x4 - bl memcpy - adds r0, r4, 0 - bl sub_8155638 - lsls r0, 24 - lsrs r0, 24 - adds r2, r0, 0 - cmp r2, 0 - beq _081557F6 - ldrh r1, [r4, 0x36] - adds r1, 0x1 - strh r1, [r4, 0x36] - movs r3, 0x38 - ldrsh r0, [r4, r3] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - ands r1, r0 - cmp r1, 0 - bne _081557BC - ldrh r0, [r4, 0x34] - ldrh r1, [r4, 0x26] - adds r0, r1 - strh r0, [r4, 0x26] -_081557BC: - ldrh r1, [r4, 0x36] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _081557CC - ldrh r0, [r4, 0x34] - negs r0, r0 - strh r0, [r4, 0x34] -_081557CC: - cmp r2, 0x2 - beq _081557F6 - adds r0, r4, 0 - bl sub_815564C - lsls r0, 24 - cmp r0, 0 - bne _081557E4 - ldrh r0, [r4, 0x26] - b _081557EA - .pool -_081557E4: - ldrh r0, [r4, 0x26] - ldrh r3, [r4, 0x30] - adds r0, r3 -_081557EA: - strh r0, [r5, 0x26] - ldrh r0, [r5, 0x20] - strh r0, [r4, 0x20] - ldrh r0, [r5, 0x22] - adds r0, 0x8 - strh r0, [r4, 0x22] -_081557F6: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_815577C - - thumb_func_start sub_8155800 -sub_8155800: @ 8155800 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gDummySpriteTemplate - movs r1, 0 - movs r2, 0 - movs r3, 0xFF - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, =gSprites - adds r2, r1 - ldr r1, =sub_8155850 - str r1, [r2, 0x1C] - movs r1, 0x3E - adds r1, r2 - mov r12, r1 - ldrb r1, [r1] - movs r3, 0x4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - strh r4, [r2, 0x2E] - movs r1, 0x1 - strh r1, [r2, 0x30] - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155800 - - thumb_func_start sub_8155850 -sub_8155850: @ 8155850 - push {lr} - adds r2, r0, 0 - movs r0, 0x2E - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r3, r0, r1 - ldrh r1, [r2, 0x32] - adds r0, r1, 0x1 - strh r0, [r2, 0x32] - movs r0, 0x3 - ands r0, r1 - cmp r0, 0 - bne _08155878 - ldrh r0, [r2, 0x30] - ldrh r1, [r3, 0x26] - adds r0, r1 - strh r0, [r3, 0x26] -_08155878: - ldrh r1, [r2, 0x32] - movs r0, 0xF - ands r0, r1 - cmp r0, 0 - bne _08155888 - ldrh r0, [r2, 0x30] - negs r0, r0 - strh r0, [r2, 0x30] -_08155888: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155850 - - thumb_func_start sub_8155890 -sub_8155890: @ 8155890 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0xC - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x24] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _081558EC - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, [r4, 0x8] - strh r0, [r2, 0x2E] - movs r0, 0xA - strh r0, [r2, 0x30] -_081558EC: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155890 - - thumb_func_start sub_8155900 -sub_8155900: @ 8155900 - push {r4-r7,lr} - ldr r7, =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - bl GetEventObjectIdByLocalIdAndMap - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, =gEventObjects - adds r6, r1, r0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x74] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0x40 - beq _081559A4 - ldrb r0, [r6, 0x5] - bl GetEventObjectGraphicsInfo - adds r5, r0, 0 - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - ldr r4, =gSprites - adds r0, r4 - adds r3, r0, 0 - adds r3, 0x3E - ldrb r1, [r3] - movs r2, 0x2 - orrs r1, r2 - strb r1, [r3] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x5] - movs r2, 0xC - ands r2, r1 - ldrb r3, [r0, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - orrs r1, r2 - strb r1, [r0, 0x5] - ldr r1, [r7] - strh r1, [r0, 0x2E] - ldr r1, [r7, 0x4] - strh r1, [r0, 0x30] - ldr r1, [r7, 0x8] - strh r1, [r0, 0x32] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x20] - strh r1, [r0, 0x34] - ldrb r2, [r6, 0x4] - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrh r1, [r1, 0x22] - strh r1, [r0, 0x36] - ldrh r1, [r5, 0xA] - lsls r1, 16 - asrs r1, 17 - subs r1, 0x2 - strh r1, [r0, 0x26] - movs r1, 0x2 - bl SeekSpriteAnim -_081559A4: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155900 - - thumb_func_start sub_81559BC -sub_81559BC: @ 81559BC - push {r4-r6,lr} - sub sp, 0x4 - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r4, 0x32] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _081559F6 - ldr r2, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - ldrb r0, [r1, 0x2] - lsls r0, 27 - cmp r0, 0 - blt _08155A04 -_081559F6: - adds r0, r4, 0 - movs r1, 0x27 - bl FieldEffectStop - b _08155A76 - .pool -_08155A04: - ldr r2, =gSprites - ldrb r1, [r1, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r5, [r0, 0x22] - ldrh r6, [r0, 0x20] - movs r2, 0x20 - ldrsh r1, [r0, r2] - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r1, r0 - bne _08155A2C - lsls r0, r5, 16 - asrs r0, 16 - movs r2, 0x36 - ldrsh r1, [r4, r2] - cmp r0, r1 - beq _08155A46 -_08155A2C: - strh r6, [r4, 0x34] - strh r5, [r4, 0x36] - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08155A46 - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim -_08155A46: - strh r6, [r4, 0x20] - strh r5, [r4, 0x22] - ldr r3, =gSprites - ldr r2, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - adds r0, 0x43 - ldrb r0, [r0] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility -_08155A76: - add sp, 0x4 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end sub_81559BC - - thumb_func_start sub_8155A88 -sub_8155A88: @ 8155A88 - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - adds r0, 0x88 - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155AD8 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r3] - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x4 - orrs r0, r2 - strb r0, [r1, 0x5] -_08155AD8: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155A88 - - thumb_func_start sub_8155AEC -sub_8155AEC: @ 8155AEC - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x2E] - adds r0, 0x80 - movs r1, 0x80 - lsls r1, 1 - ands r0, r1 - strh r0, [r4, 0x2E] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x22] - subs r1, r0 - strh r1, [r4, 0x22] - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - ldrh r1, [r4, 0x3E] - ldr r0, =0x00001004 - ands r0, r1 - cmp r0, 0 - beq _08155B20 - adds r0, r4, 0 - movs r1, 0x35 - bl FieldEffectStop -_08155B20: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155AEC - - thumb_func_start sub_8155B2C -sub_8155B2C: @ 8155B2C - push {r4,lr} - ldr r4, =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x4 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x58] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - ldrb r3, [r4, 0x8] - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155B8C - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r3] - movs r0, 0x3 - ldrb r1, [r4, 0xC] - ands r1, r0 - lsls r1, 2 - ldrb r3, [r2, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r1 - movs r1, 0xF - ands r0, r1 - movs r1, 0x50 - orrs r0, r1 - strb r0, [r2, 0x5] - movs r0, 0x17 - strh r0, [r2, 0x2E] -_08155B8C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155B2C - - thumb_func_start ShowTreeDisguiseFieldEffect -@ u8 ShowTreeDisguiseFieldEffect() -ShowTreeDisguiseFieldEffect: @ 8155BA0 - push {lr} - movs r0, 0x1C - movs r1, 0x18 - movs r2, 0x4 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowTreeDisguiseFieldEffect - - thumb_func_start ShowMountainDisguiseFieldEffect -@ u8 ShowMountainDisguiseFieldEffect() -ShowMountainDisguiseFieldEffect: @ 8155BB0 - push {lr} - movs r0, 0x1D - movs r1, 0x19 - movs r2, 0x3 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowMountainDisguiseFieldEffect - - thumb_func_start ShowSandDisguiseFieldEffect -@ u8 ShowSandDisguiseFieldEffect() -ShowSandDisguiseFieldEffect: @ 8155BC0 - push {lr} - movs r0, 0x24 - movs r1, 0x1C - movs r2, 0x2 - bl ShowDisguiseFieldEffect - pop {r1} - bx r1 - thumb_func_end ShowSandDisguiseFieldEffect - - thumb_func_start ShowDisguiseFieldEffect -@ u8 ShowDisguiseFieldEffect(u8 fieldEffectId, u8 fieldEffectObjectId, u8 paletteSlot) -ShowDisguiseFieldEffect: @ 8155BD0 - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x4 - lsls r0, 24 - lsrs r4, r0, 24 - mov r8, r4 - lsls r1, 24 - lsrs r6, r1, 24 - lsls r2, 24 - lsrs r7, r2, 24 - ldr r5, =gFieldEffectArguments - ldrb r0, [r5] - ldrb r1, [r5, 0x4] - ldrb r2, [r5, 0x8] - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _08155C08 - adds r0, r4, 0 - bl FieldEffectActiveListRemove - movs r0, 0x40 - b _08155C74 - .pool -_08155C08: - ldr r1, =gFieldEffectObjectTemplatePointers - lsls r0, r6, 2 - adds r0, r1 - ldr r0, [r0] - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl CreateSpriteAtEnd - mov r1, sp - strb r0, [r1] - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08155C70 - mov r0, sp - ldrb r0, [r0] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, =gSprites - adds r2, r0 - movs r0, 0x3E - adds r0, r2 - mov r12, r0 - ldrb r3, [r0] - lsls r1, r3, 30 - lsrs r1, 31 - adds r1, 0x1 - movs r0, 0x1 - ands r1, r0 - lsls r1, 1 - movs r0, 0x3 - negs r0, r0 - ands r0, r3 - orrs r0, r1 - mov r1, r12 - strb r0, [r1] - lsls r3, r7, 4 - ldrb r1, [r2, 0x5] - movs r0, 0xF - ands r0, r1 - orrs r0, r3 - strb r0, [r2, 0x5] - mov r0, r8 - strh r0, [r2, 0x30] - ldr r0, [r5] - strh r0, [r2, 0x32] - ldr r0, [r5, 0x4] - strh r0, [r2, 0x34] - ldr r0, [r5, 0x8] - strh r0, [r2, 0x36] -_08155C70: - mov r0, sp - ldrb r0, [r0] -_08155C74: - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r1} - bx r1 - .pool - thumb_func_end ShowDisguiseFieldEffect - - thumb_func_start sub_8155C88 -sub_8155C88: @ 8155C88 - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r0, [r5, 0x32] - lsls r0, 24 - lsrs r0, 24 - ldrh r1, [r5, 0x34] - lsls r1, 24 - lsrs r1, 24 - ldrh r2, [r5, 0x36] - lsls r2, 24 - lsrs r2, 24 - mov r3, sp - bl TryGetEventObjectIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - beq _08155CB8 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldEffectStop -_08155CB8: - ldr r4, =gEventObjects - mov r0, sp - ldrb r1, [r0] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r0, [r0, 0x5] - bl GetEventObjectGraphicsInfo - mov r1, sp - ldrb r2, [r1] - lsls r1, r2, 3 - adds r1, r2 - lsls r1, 2 - adds r1, r4 - ldrb r1, [r1, 0x4] - lsls r2, r1, 4 - adds r2, r1 - lsls r2, 2 - ldr r1, =gSprites - adds r2, r1 - adds r1, r2, 0 - adds r1, 0x3E - ldrb r1, [r1] - movs r3, 0x3E - adds r3, r5 - mov r12, r3 - movs r3, 0x4 - ands r3, r1 - mov r1, r12 - ldrb r4, [r1] - movs r1, 0x5 - negs r1, r1 - ands r1, r4 - orrs r1, r3 - mov r3, r12 - strb r1, [r3] - ldrh r1, [r2, 0x20] - strh r1, [r5, 0x20] - ldrh r0, [r0, 0xA] - lsls r0, 16 - asrs r0, 17 - ldrh r1, [r2, 0x22] - adds r0, r1 - subs r0, 0x10 - strh r0, [r5, 0x22] - adds r2, 0x43 - ldrb r0, [r2] - subs r0, 0x1 - adds r1, r5, 0 - adds r1, 0x43 - strb r0, [r1] - ldrh r1, [r5, 0x2E] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x1 - bne _08155D38 - adds r0, r1, 0x1 - strh r0, [r5, 0x2E] - adds r0, r5, 0 - movs r1, 0x1 - bl StartSpriteAnim -_08155D38: - movs r3, 0x2E - ldrsh r0, [r5, r3] - ldrh r2, [r5, 0x2E] - cmp r0, 0x2 - bne _08155D54 - adds r0, r5, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08155D54 - movs r0, 0x1 - strh r0, [r5, 0x3C] -_08155D54: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3 - bne _08155D68 - ldrh r1, [r5, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl FieldEffectStop -_08155D68: - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155C88 - - thumb_func_start sub_8155D78 -sub_8155D78: @ 8155D78 - push {lr} - adds r1, r0, 0 - adds r0, 0x21 - ldrb r0, [r0] - cmp r0, 0x1 - bne _08155D96 - ldr r2, =gSprites - ldrb r1, [r1, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] -_08155D96: - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155D78 - - thumb_func_start sub_8155DA0 -sub_8155DA0: @ 8155DA0 - push {lr} - adds r2, r0, 0 - adds r2, 0x21 - ldrb r1, [r2] - cmp r1, 0x2 - beq _08155DD6 - cmp r1, 0 - beq _08155DD6 - ldrb r1, [r0, 0x1A] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r1, r0, r1 - movs r3, 0x3C - ldrsh r0, [r1, r3] - cmp r0, 0 - bne _08155DCC - movs r0, 0 - b _08155DD8 - .pool -_08155DCC: - movs r0, 0x2 - strb r0, [r2] - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_08155DD6: - movs r0, 0x1 -_08155DD8: - pop {r1} - bx r1 - thumb_func_end sub_8155DA0 - - thumb_func_start sub_8155DDC -sub_8155DDC: @ 8155DDC - push {r4,lr} - ldr r4, =gFieldEffectArguments - ldr r0, [r4] - adds r0, 0x7 - str r0, [r4] - ldr r0, [r4, 0x4] - adds r0, 0x7 - str r0, [r4, 0x4] - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_80930E0 - ldr r0, =gFieldEffectObjectTemplatePointers - adds r0, 0x8C - ldr r0, [r0] - movs r2, 0 - ldrsh r1, [r4, r2] - movs r3, 0x4 - ldrsh r2, [r4, r3] - movs r3, 0x52 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _08155E3C - ldr r0, =gSprites - lsls r1, r2, 4 - adds r1, r2 - lsls r1, 2 - adds r1, r0 - movs r0, 0x3 - ldrb r2, [r4, 0x8] - ands r2, r0 - lsls r2, 2 - ldrb r3, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r3 - orrs r0, r2 - strb r0, [r1, 0x5] - adds r1, 0x3E - ldrb r0, [r1] - movs r2, 0x2 - orrs r0, r2 - strb r0, [r1] -_08155E3C: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .pool - thumb_func_end sub_8155DDC - - thumb_func_start sub_8155E50 -sub_8155E50: @ 8155E50 - push {lr} - adds r2, r0, 0 - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - bne _08155E84 - adds r0, r2, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08155E7C - adds r3, r2, 0 - adds r3, 0x3E - ldrb r0, [r3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] -_08155E7C: - movs r1, 0x2E - ldrsh r0, [r2, r1] - cmp r0, 0 - beq _08155E9A -_08155E84: - ldrh r0, [r2, 0x30] - adds r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x22 - ble _08155E9A - adds r0, r2, 0 - movs r1, 0x36 - bl FieldEffectStop -_08155E9A: - pop {r0} - bx r0 - thumb_func_end sub_8155E50 - - thumb_func_start sub_8155EA0 -sub_8155EA0: @ 8155EA0 - movs r1, 0 - strh r1, [r0, 0x3A] - strh r1, [r0, 0x3C] - bx lr - thumb_func_end sub_8155EA0 - - thumb_func_start sub_8155EA8 -sub_8155EA8: @ 8155EA8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r6, 0 - movs r1, 0x3C - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08155EDE - cmp r0, 0x1 - bgt _08155EC0 - cmp r0, 0 - beq _08155ECA - b _08155F42 -_08155EC0: - cmp r0, 0x2 - beq _08155F06 - cmp r0, 0x3 - beq _08155F1A - b _08155F42 -_08155ECA: - movs r2, 0x3A - ldrsh r0, [r5, r2] - bl sub_809773C - ldrh r1, [r5, 0x24] - adds r0, r1 - strh r0, [r5, 0x24] - movs r2, 0x3A - ldrsh r0, [r5, r2] - b _08155F38 -_08155EDE: - ldrh r0, [r5, 0x3A] - movs r4, 0x47 - subs r0, r4, r0 - lsls r0, 16 - asrs r0, 16 - bl sub_809773C - ldrh r1, [r5, 0x24] - subs r1, r0 - strh r1, [r5, 0x24] - ldrh r0, [r5, 0x3A] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 - bl sub_8097728 - ldrh r2, [r5, 0x26] - adds r0, r2 - b _08155F40 -_08155F06: - movs r1, 0x3A - ldrsh r0, [r5, r1] - bl sub_809773C - ldrh r1, [r5, 0x24] - subs r1, r0 - strh r1, [r5, 0x24] - movs r2, 0x3A - ldrsh r0, [r5, r2] - b _08155F38 -_08155F1A: - ldrh r0, [r5, 0x3A] - movs r4, 0x47 - subs r0, r4, r0 - lsls r0, 16 - asrs r0, 16 - bl sub_809773C - ldrh r2, [r5, 0x24] - adds r0, r2 - strh r0, [r5, 0x24] - ldrh r0, [r5, 0x3A] - subs r4, r0 - lsls r4, 16 - asrs r4, 16 - adds r0, r4, 0 -_08155F38: - bl sub_8097728 - ldrh r1, [r5, 0x26] - adds r0, r1 -_08155F40: - strh r0, [r5, 0x26] -_08155F42: - ldrh r1, [r5, 0x24] - negs r1, r1 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x10 - bl SetGpuReg - ldrh r0, [r5, 0x3A] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x3A] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x48 - bne _08155F68 - strh r1, [r5, 0x3A] - ldrh r0, [r5, 0x3C] - adds r0, 0x1 - strh r0, [r5, 0x3C] -_08155F68: - movs r2, 0x3C - ldrsh r0, [r5, r2] - cmp r0, 0x4 - bne _08155F76 - strh r1, [r5, 0x26] - strh r1, [r5, 0x24] - movs r6, 0x1 -_08155F76: - adds r0, r6, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8155EA8 - - thumb_func_start sub_8155F80 -sub_8155F80: @ 8155F80 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x32 - ldrsh r0, [r5, r1] - cmp r0, 0x8 - bls _08155F8E - b _08156156 -_08155F8E: - lsls r0, 2 - ldr r1, =_08155F9C - adds r0, r1 - ldr r0, [r0] - mov pc, r0 - .pool - .align 2, 0 -_08155F9C: - .4byte _08155FC0 - .4byte _08156034 - .4byte _0815606C - .4byte _08156090 - .4byte _081560C0 - .4byte _081560D4 - .4byte _081560E0 - .4byte _0815610E - .4byte _08156120 -_08155FC0: - movs r2, 0x2E - ldrsh r0, [r5, r2] - movs r1, 0x3 - bl __divsi3 - movs r1, 0x78 - subs r1, r0 - lsls r1, 16 - lsrs r1, 16 - movs r0, 0x12 - bl SetGpuReg - movs r3, 0x2E - ldrsh r0, [r5, r3] - cmp r0, 0x60 - bne _08156016 - movs r1, 0 - ldr r4, =0x0600f800 - mov r12, r4 - ldr r0, =0x0000bff4 - adds r7, r0, 0 -_08155FEA: - movs r2, 0xC - lsls r0, r1, 1 - adds r3, r1, 0x1 - lsls r6, r1, 5 - adds r0, r1 - lsls r4, r0, 1 -_08155FF6: - adds r0, r6, r2 - lsls r0, 1 - add r0, r12 - adds r1, r2, r7 - adds r1, r4, r1 - adds r1, 0x1 - strh r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x11 - bls _08155FF6 - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, 0x2 - bls _08155FEA -_08156016: - movs r2, 0x2E - ldrsh r1, [r5, r2] - ldr r0, =0x00000137 - cmp r1, r0 - bgt _08156022 - b _08156156 -_08156022: - movs r1, 0 - movs r0, 0x1 - b _0815611A - .pool -_08156034: - ldr r4, =gSineTable - movs r3, 0x2E - ldrsh r0, [r5, r3] - movs r1, 0x3 - bl __divsi3 - lsls r0, 16 - asrs r0, 15 - adds r0, r4 - ldrh r0, [r0] - lsls r0, 16 - asrs r0, 18 - ldrh r4, [r5, 0x36] - adds r0, r4 - movs r1, 0 - strh r0, [r5, 0x22] - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0xBD - bne _08156156 - movs r0, 0x2 - strh r0, [r5, 0x32] - strh r1, [r5, 0x38] - strh r1, [r5, 0x2E] - b _08156156 - .pool -_0815606C: - movs r3, 0x2E - ldrsh r0, [r5, r3] - cmp r0, 0x3C - bne _0815607E - ldrh r0, [r5, 0x38] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x38] - strh r1, [r5, 0x2E] -_0815607E: - movs r4, 0x38 - ldrsh r0, [r5, r4] - cmp r0, 0x7 - bne _08156156 - movs r0, 0 - strh r0, [r5, 0x38] - movs r0, 0x3 - strh r0, [r5, 0x32] - b _08156156 -_08156090: - ldrh r2, [r5, 0x26] - movs r0, 0x26 - ldrsh r1, [r5, r0] - adds r3, r2, 0 - cmp r1, 0 - bne _081560A4 - strh r1, [r5, 0x2E] - ldrh r0, [r5, 0x32] - adds r0, 0x1 - strh r0, [r5, 0x32] -_081560A4: - movs r4, 0x2E - ldrsh r0, [r5, r4] - cmp r0, 0x5 - bne _08156156 - movs r0, 0 - strh r0, [r5, 0x2E] - cmp r1, 0 - ble _081560BA - subs r0, r3, 0x1 - strh r0, [r5, 0x26] - b _08156156 -_081560BA: - adds r0, r2, 0x1 - strh r0, [r5, 0x26] - b _08156156 -_081560C0: - movs r1, 0x2E - ldrsh r0, [r5, r1] - cmp r0, 0x3C - bne _08156156 - movs r1, 0 - movs r0, 0x5 - strh r0, [r5, 0x32] - strh r1, [r5, 0x2E] - strh r1, [r5, 0x38] - b _08156156 -_081560D4: - adds r0, r5, 0 - bl sub_8155EA0 - movs r1, 0 - movs r0, 0x6 - b _0815611A -_081560E0: - adds r0, r5, 0 - bl sub_8155EA8 - lsls r0, 24 - cmp r0, 0 - beq _08156156 - movs r1, 0 - strh r1, [r5, 0x2E] - ldrh r0, [r5, 0x38] - adds r0, 0x1 - strh r0, [r5, 0x38] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x2 - bgt _08156106 - adds r0, r5, 0 - bl sub_8155EA0 - b _08156156 -_08156106: - strh r1, [r5, 0x38] - movs r0, 0x7 - strh r0, [r5, 0x32] - b _08156156 -_0815610E: - movs r2, 0x2E - ldrsh r0, [r5, r2] - cmp r0, 0x1E - bne _08156156 - movs r1, 0 - movs r0, 0x8 -_0815611A: - strh r0, [r5, 0x32] - strh r1, [r5, 0x2E] - b _08156156 -_08156120: - movs r1, 0 - ldr r6, =0x0600f800 - movs r4, 0 -_08156126: - movs r2, 0xC - adds r3, r1, 0x1 - lsls r1, 5 -_0815612C: - adds r0, r1, r2 - lsls r0, 1 - adds r0, r6 - strh r4, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x11 - bls _0815612C - lsls r0, r3, 24 - lsrs r1, r0, 24 - cmp r1, 0xE - bls _08156126 - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - adds r0, r5, 0 - movs r1, 0x40 - bl FieldEffectStop -_08156156: - movs r3, 0x32 - ldrsh r0, [r5, r3] - cmp r0, 0x1 - bne _08156184 - ldrh r1, [r5, 0x30] - movs r0, 0x7 - ands r0, r1 - adds r2, r1, 0 - cmp r0, 0 - bne _08156172 - ldrh r0, [r5, 0x34] - ldrh r4, [r5, 0x26] - adds r0, r4 - strh r0, [r5, 0x26] -_08156172: - movs r0, 0xF - ands r0, r2 - cmp r0, 0 - bne _08156180 - ldrh r0, [r5, 0x34] - negs r0, r0 - strh r0, [r5, 0x34] -_08156180: - adds r0, r1, 0x1 - strh r0, [r5, 0x30] -_08156184: - ldrh r0, [r5, 0x2E] - adds r0, 0x1 - strh r0, [r5, 0x2E] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end sub_8155F80 - - thumb_func_start sub_8156194 -sub_8156194: @ 8156194 - push {r4,lr} - adds r4, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081561B2 - ldrh r1, [r4, 0x30] - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl FieldEffectStop - b _081561C8 -_081561B2: - adds r0, r4, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility - ldrh r0, [r4, 0x2E] - lsls r0, 24 - lsrs r0, 24 - adds r1, r4, 0 - movs r2, 0 - bl SetObjectSubpriorityByZCoord -_081561C8: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8156194 - - thumb_func_start sub_81561D0 -sub_81561D0: @ 81561D0 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _081561EE - ldrh r1, [r2, 0x2E] - lsls r1, 24 - lsrs r1, 24 - adds r0, r2, 0 - bl FieldEffectStop - b _081561F6 -_081561EE: - adds r0, r2, 0 - movs r1, 0 - bl UpdateEventObjectSpriteVisibility -_081561F6: - pop {r0} - bx r0 - thumb_func_end sub_81561D0 - - thumb_func_start sub_81561FC -sub_81561FC: @ 81561FC - push {r4-r7,lr} - adds r6, r0, 0 - adds r0, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - adds r1, r6, 0 - bl SetObjectSubpriorityByZCoord - movs r7, 0 -_08156212: - lsls r0, r7, 3 - adds r0, r7 - lsls r0, 2 - ldr r1, =gEventObjects - adds r4, r0, r1 - ldrb r0, [r4] - lsls r0, 31 - cmp r0, 0 - beq _081562B4 - ldrb r0, [r4, 0x5] - bl GetEventObjectGraphicsInfo - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r5, r0, r1 - adds r0, r6, 0 - adds r0, 0x28 - movs r2, 0 - ldrsb r2, [r0, r2] - ldrh r0, [r6, 0x20] - adds r1, r0, r2 - subs r0, r2 - lsls r0, 16 - lsrs r4, r0, 16 - lsls r1, 16 - asrs r1, 16 - movs r0, 0x20 - ldrsh r2, [r5, r0] - cmp r1, r2 - bge _081562B4 - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r2 - ble _081562B4 - adds r0, r5, 0 - adds r0, 0x29 - movs r3, 0 - ldrsb r3, [r0, r3] - ldrh r2, [r5, 0x22] - adds r2, r3 - ldrh r4, [r5, 0x22] - adds r0, r6, 0 - adds r0, 0x29 - movs r1, 0 - ldrsb r1, [r0, r1] - ldrh r0, [r6, 0x22] - subs r0, r1 - lsls r0, 16 - asrs r0, 16 - adds r3, r0, r3 - lsls r2, 16 - asrs r2, 16 - lsls r3, 16 - asrs r3, 16 - cmp r2, r3 - blt _0815628C - cmp r2, r0 - bge _081562B4 -_0815628C: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, r3 - ble _081562B4 - adds r2, r6, 0 - adds r2, 0x43 - adds r0, r5, 0 - adds r0, 0x43 - ldrb r1, [r0] - ldrb r0, [r2] - cmp r0, r1 - bhi _081562B4 - adds r0, r1, 0x2 - strb r0, [r2] - b _081562BE - .pool -_081562B4: - adds r0, r7, 0x1 - lsls r0, 24 - lsrs r7, r0, 24 - cmp r7, 0xF - bls _08156212 -_081562BE: - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_81561FC - - .align 2, 0 @ Don't pad with nop. diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s index 0abbf014f..c7b3a0486 100644 --- a/asm/field_player_avatar.s +++ b/asm/field_player_avatar.s @@ -1793,7 +1793,7 @@ InitPlayerAvatar: @ 808BFE0 movs r1, 0x1 orrs r0, r1 strb r0, [r4, 0x2] - bl sub_8154228 + bl CreateWarpArrowSprite strb r0, [r4, 0x1B] adds r0, r4, 0 mov r1, r9 @@ -2080,7 +2080,7 @@ _0808C2A2: movs r1, 0 ldrsh r3, [r7, r1] adds r1, r6, 0 - bl sub_8154298 + bl ShowWarpArrowSprite b _0808C302 .pool _0808C2E8: @@ -2095,7 +2095,7 @@ _0808C2E8: cmp r1, 0x3 ble _0808C2A2 ldrb r0, [r5, 0x1B] - bl objid_set_invisible + bl SetSpriteInvisible _0808C302: add sp, 0x4 pop {r3,r4} diff --git a/asm/party_menu.s b/asm/party_menu.s index f5ed314ce..e5540e171 100644 --- a/asm/party_menu.s +++ b/asm/party_menu.s @@ -7846,7 +7846,7 @@ sub_81B5958: @ 81B5958 thumb_func_start sub_81B5974 sub_81B5974: @ 81B5974 push {lr} - bl sub_809D1E8 + bl TrySetDiveWarp ldr r1, =gFieldEffectArguments lsls r0, 24 lsrs r0, 24 diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s index b7388b41b..1202473ee 100644 --- a/asm/script_pokemon_util_80F87D8.s +++ b/asm/script_pokemon_util_80F87D8.s @@ -1606,8 +1606,8 @@ _080F94D6: .pool thumb_func_end sub_80F94B8 - thumb_func_start sub_80F94E8 -sub_80F94E8: @ 80F94E8 + thumb_func_start ReducePlayerPartyToThree +ReducePlayerPartyToThree: @ 80F94E8 push {r4-r7,lr} sub sp, 0x198 add r0, sp, 0x190 @@ -1662,6 +1662,6 @@ _080F9538: pop {r0} bx r0 .pool - thumb_func_end sub_80F94E8 + thumb_func_end ReducePlayerPartyToThree .align 2, 0 @ Don't pad with nop. diff --git a/asm/shop.s b/asm/shop.s index 807237389..56658c4ff 100644 --- a/asm/shop.s +++ b/asm/shop.s @@ -5,1404 +5,6 @@ .text - thumb_func_start CreateShopMenu -@ s8 CreateShopMenu(s8 type) -CreateShopMenu: @ 80DFA78 - push {r4,r5,lr} - sub sp, 0x10 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - bl ScriptContext2_Enable - ldr r5, =gUnknown_02039F60 - strb r4, [r5, 0xF] - cmp r4, 0 - bne _080DFACC - ldr r0, =gUnknown_08589A38 - ldr r1, [r0, 0x4] - ldr r0, [r0] - str r0, [sp] - str r1, [sp, 0x4] - ldr r4, =gUnknown_08589A10 - adds r0, r4, 0 - movs r1, 0x3 - bl GetMaxWidthInMenuTable - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp] - ands r1, r2 - orrs r1, r0 - str r1, [sp] - mov r0, sp - bl AddWindow - strb r0, [r5, 0xE] - str r4, [r5, 0x4] - movs r5, 0x3 - b _080DFAF8 - .pool -_080DFACC: - ldr r0, =gUnknown_08589A38 - ldr r1, [r0, 0xC] - ldr r0, [r0, 0x8] - str r0, [sp, 0x8] - str r1, [sp, 0xC] - ldr r4, =gUnknown_08589A28 - adds r0, r4, 0 - movs r1, 0x2 - bl GetMaxWidthInMenuTable - lsls r0, 24 - ldr r2, =0x00ffffff - ldr r1, [sp, 0x8] - ands r1, r2 - orrs r1, r0 - str r1, [sp, 0x8] - add r0, sp, 0x8 - bl AddWindow - strb r0, [r5, 0xE] - str r4, [r5, 0x4] - movs r5, 0x2 -_080DFAF8: - ldr r4, =gUnknown_02039F60 - ldrb r0, [r4, 0xE] - movs r1, 0 - bl SetStandardWindowBorderStyle - ldrb r0, [r4, 0xE] - ldr r2, [r4, 0x4] - adds r1, r5, 0 - bl PrintMenuTable - ldrb r0, [r4, 0xE] - adds r1, r5, 0 - movs r2, 0 - bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed - ldrb r0, [r4, 0xE] - bl PutWindowTilemap - ldrb r0, [r4, 0xE] - movs r1, 0x1 - bl CopyWindowToVram - ldr r0, =Task_ShopMenu - movs r1, 0x8 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - .pool - thumb_func_end CreateShopMenu - - thumb_func_start SetShopMenuCallback -@ void SetShopMenuCallback() -SetShopMenuCallback: @ 80DFB4C - ldr r1, =gUnknown_02039F60 - str r0, [r1] - bx lr - .pool - thumb_func_end SetShopMenuCallback - - thumb_func_start SetShopItemsForSale -@ int SetShopItemsForSale(s16 *itemsForSale) -SetShopItemsForSale: @ 80DFB58 - push {lr} - adds r1, r0, 0 - movs r2, 0 - ldr r3, =gUnknown_02039F60 - str r1, [r3, 0x8] - strh r2, [r3, 0xC] - ldrh r0, [r1] - cmp r0, 0 - beq _080DFB80 -_080DFB6A: - ldrh r0, [r3, 0xC] - adds r0, 0x1 - strh r0, [r3, 0xC] - adds r0, r2, 0x1 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r0, r2, 1 - adds r0, r1 - ldrh r0, [r0] - cmp r0, 0 - bne _080DFB6A -_080DFB80: - pop {r0} - bx r0 - .pool - thumb_func_end SetShopItemsForSale - - thumb_func_start Task_ShopMenu -@ void Task_ShopMenu(u8 taskId) -Task_ShopMenu: @ 80DFB88 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl Menu_ProcessInputNoWrapAround - lsls r0, 24 - asrs r2, r0, 24 - movs r0, 0x2 - negs r0, r0 - cmp r2, r0 - beq _080DFBC4 - adds r0, 0x1 - cmp r2, r0 - bne _080DFBB4 - movs r0, 0x5 - bl PlaySE - adds r0, r4, 0 - bl HandleShopMenuQuit - b _080DFBC4 -_080DFBB4: - ldr r0, =gUnknown_02039F60 - ldr r1, [r0, 0x4] - lsls r0, r2, 3 - adds r0, r1 - ldr r1, [r0, 0x4] - adds r0, r5, 0 - bl _call_via_r1 -_080DFBC4: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ShopMenu - - thumb_func_start HandleShopMenuBuy -@ void HandleShopMenuBuy(u8 taskId) -HandleShopMenuBuy: @ 80DFBD0 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, =gTasks + 0x8 - adds r4, r1, r2 - ldr r3, =CB2_InitBuyMenu - lsrs r0, r3, 16 - strh r0, [r4, 0x10] - strh r3, [r4, 0x12] - subs r2, 0x8 - adds r1, r2 - ldr r0, =Task_GoToBuyOrSellMenu - str r0, [r1] - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end HandleShopMenuBuy - - thumb_func_start HandleShopMenuSell -@ void HandleShopMenuSell(u8 taskId) -HandleShopMenuSell: @ 80DFC0C - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r2, =gTasks + 0x8 - adds r4, r1, r2 - ldr r3, =CB2_GoToSellMenu - lsrs r0, r3, 16 - strh r0, [r4, 0x10] - strh r3, [r4, 0x12] - subs r2, 0x8 - adds r1, r2 - ldr r0, =Task_GoToBuyOrSellMenu - str r0, [r1] - movs r0, 0x1 - movs r1, 0 - bl FadeScreen - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end HandleShopMenuSell - - thumb_func_start CB2_ExitSellMenu -@ int CB2_ExitSellMenu() -CB2_ExitSellMenu: @ 80DFC48 - push {lr} - ldr r0, =gFieldCallback - ldr r1, =MapPostLoadHook_ExitBuyOrSellMenu - str r1, [r0] - ldr r0, =CB2_ReturnToField - bl SetMainCallback2 - pop {r0} - bx r0 - .pool - thumb_func_end CB2_ExitSellMenu - - thumb_func_start HandleShopMenuQuit -@ void HandleShopMenuQuit(u8 taskId) -HandleShopMenuQuit: @ 80DFC68 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r5, =gUnknown_02039F60 - ldrb r0, [r5, 0xE] - movs r1, 0x2 - bl sub_8198070 - ldrb r0, [r5, 0xE] - bl RemoveWindow - bl SaveRecordedItemPurchasesForTVShow - bl ScriptContext2_Disable - adds r0, r4, 0 - bl DestroyTask - ldr r5, [r5] - cmp r5, 0 - beq _080DFC98 - bl _call_via_r5 -_080DFC98: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end HandleShopMenuQuit - - thumb_func_start Task_GoToBuyOrSellMenu -@ int Task_GoToBuyOrSellMenu(u8 taskId) -Task_GoToBuyOrSellMenu: @ 80DFCA4 - push {r4,lr} - lsls r0, 24 - lsrs r2, r0, 24 - lsls r0, r2, 2 - adds r0, r2 - lsls r0, 3 - ldr r1, =gTasks + 0x8 - adds r4, r0, r1 - ldr r0, =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080DFCD2 - adds r0, r2, 0 - bl DestroyTask - ldrh r0, [r4, 0x10] - lsls r0, 16 - ldrh r1, [r4, 0x12] - orrs r0, r1 - bl SetMainCallback2 -_080DFCD2: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end Task_GoToBuyOrSellMenu - - thumb_func_start MapPostLoadHook_ExitBuyOrSellMenu -@ void MapPostLoadHook_ExitBuyOrSellMenu() -MapPostLoadHook_ExitBuyOrSellMenu: @ 80DFCE0 - push {lr} - bl pal_fill_black - ldr r0, =Task_ExitSellMenu - movs r1, 0x8 - bl CreateTask - pop {r0} - bx r0 - .pool - thumb_func_end MapPostLoadHook_ExitBuyOrSellMenu - - thumb_func_start Task_ExitSellMenu -@ void Task_ExitSellMenu(u8 taskId) -Task_ExitSellMenu: @ 80DFCF8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r5, r4, 0 - bl IsWeatherNotFadingIn - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080DFD36 - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - cmp r0, 0x2 - bne _080DFD2C - ldr r1, =gText_CanIHelpWithAnythingElse - ldr r2, =ReturnToShopMenuAfterExitingSellMenu - adds r0, r4, 0 - bl DisplayItemMessageOnField - b _080DFD36 - .pool -_080DFD2C: - ldr r1, =gText_AnythingElseICanHelp - ldr r2, =ReturnToShopMenuAfterExitingSellMenu - adds r0, r5, 0 - bl DisplayItemMessageOnField -_080DFD36: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end Task_ExitSellMenu - - thumb_func_start ReturnToShopMenuAfterExitingSellMenu -@ void ReturnToShopMenuAfterExitingSellMenu(u8 taskId) -ReturnToShopMenuAfterExitingSellMenu: @ 80DFD44 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - bl CreateShopMenu - adds r0, r4, 0 - bl DestroyTask - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end ReturnToShopMenuAfterExitingSellMenu - - thumb_func_start CB2_BuyMenu -@ void CB2_BuyMenu() -CB2_BuyMenu: @ 80DFD64 - push {lr} - bl RunTasks - bl AnimateSprites - bl BuildOamBuffer - bl do_scheduled_bg_tilemap_copies_to_vram - bl UpdatePaletteFade - pop {r0} - bx r0 - thumb_func_end CB2_BuyMenu - - thumb_func_start VBlankCB_BuyMenu -@ void VBlankCB_BuyMenu() -VBlankCB_BuyMenu: @ 80DFD80 - push {lr} - bl LoadOam - bl ProcessSpriteCopyRequests - bl TransferPlttBuffer - pop {r0} - bx r0 - thumb_func_end VBlankCB_BuyMenu - - thumb_func_start CB2_InitBuyMenu -@ void CB2_InitBuyMenu() -CB2_InitBuyMenu: @ 80DFD94 - push {r4,r5,lr} - sub sp, 0xC - ldr r0, =gMain - movs r1, 0x87 - lsls r1, 3 - adds r5, r0, r1 - ldrb r4, [r5] - cmp r4, 0 - beq _080DFE20 - cmp r4, 0x1 - bne _080DFDAC - b _080DFEE4 -_080DFDAC: - bl BuyMenuDrawGraphics - bl BuyMenuAddScrollIndicatorArrows - ldr r0, =Task_BuyMenu - movs r1, 0x8 - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, =gMultiuseListMenuTemplate - movs r1, 0 - movs r2, 0 - bl ListMenuInit - ldr r2, =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - movs r5, 0 - strh r0, [r1, 0x16] - movs r4, 0x1 - negs r4, r4 - adds r0, r4, 0 - movs r1, 0x10 - movs r2, 0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, =VBlankCB_BuyMenu - bl SetVBlankCallback - ldr r0, =CB2_BuyMenu - bl SetMainCallback2 - b _080DFEF4 - .pool -_080DFE20: - bl SetVBlankHBlankCallbacksToNull - str r4, [sp, 0x8] - movs r1, 0xE0 - lsls r1, 19 - ldr r2, =0x01000100 - add r0, sp, 0x8 - bl CpuFastSet - bl ScanlineEffect_Stop - bl reset_temp_tile_data_buffers - bl FreeAllSpritePalettes - bl ResetPaletteFade - bl ResetSpriteData - bl ResetTasks - bl clear_scheduled_bg_copies_to_vram - ldr r4, =gUnknown_02039F70 - ldr r0, =0x000020b0 - bl AllocZeroed - str r0, [r4] - ldr r1, =0x0000200b - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] - ldr r0, [r4] - ldr r1, =0x0000200d - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - ldr r0, [r4] - ldr r1, =0x0000200e - adds r0, r1 - movs r1, 0x1 - negs r1, r1 - strb r1, [r0] - bl BuyMenuBuildListMenuTemplate - bl BuyMenuInitBgs - movs r4, 0x20 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x2 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - str r4, [sp] - str r4, [sp, 0x4] - movs r0, 0x3 - movs r1, 0 - movs r2, 0 - movs r3, 0 - bl FillBgTilemapBufferRect_Palette0 - bl BuyMenuInitWindows - bl BuyMenuDecompressBgGraphics - b _080DFEEE - .pool -_080DFEE4: - bl free_temp_tile_data_buffers_if_possible - lsls r0, 24 - cmp r0, 0 - bne _080DFEF4 -_080DFEEE: - ldrb r0, [r5] - adds r0, 0x1 - strb r0, [r5] -_080DFEF4: - add sp, 0xC - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end CB2_InitBuyMenu - - thumb_func_start BuyMenuFreeMemory -@ void BuyMenuFreeMemory() -BuyMenuFreeMemory: @ 80DFEFC - push {lr} - ldr r0, =gUnknown_02039F70 - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_02039F74 - ldr r0, [r0] - bl Free - ldr r0, =gUnknown_02039F78 - ldr r0, [r0] - bl Free - bl FreeAllWindowBuffers - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuFreeMemory - - thumb_func_start BuyMenuBuildListMenuTemplate -@ void BuyMenuBuildListMenuTemplate() -BuyMenuBuildListMenuTemplate: @ 80DFF2C - push {r4-r7,lr} - ldr r7, =gUnknown_02039F74 - ldr r4, =gUnknown_02039F60 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - lsls r0, 3 - bl Alloc - str r0, [r7] - ldr r5, =gUnknown_02039F78 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - lsls r0, 4 - bl Alloc - str r0, [r5] - movs r6, 0 - ldrh r0, [r4, 0xC] - cmp r6, r0 - bcs _080DFF78 -_080DFF54: - lsls r1, r6, 3 - ldr r0, [r7] - adds r0, r1 - ldr r2, [r4, 0x8] - lsls r1, r6, 1 - adds r1, r2 - ldrh r1, [r1] - lsls r3, r6, 4 - ldr r2, [r5] - adds r2, r3 - bl BuyMenuSetListEntry - adds r0, r6, 0x1 - lsls r0, 16 - lsrs r6, r0, 16 - ldrh r2, [r4, 0xC] - cmp r6, r2 - bcc _080DFF54 -_080DFF78: - ldr r4, =gUnknown_02039F78 - lsls r5, r6, 4 - ldr r0, [r4] - adds r0, r5 - ldr r1, =gText_Cancel2 - bl StringCopy - ldr r2, =gUnknown_02039F74 - ldr r0, [r2] - lsls r1, r6, 3 - adds r1, r0 - ldr r0, [r4] - adds r0, r5 - str r0, [r1] - movs r0, 0x2 - negs r0, r0 - str r0, [r1, 0x4] - ldr r3, =gMultiuseListMenuTemplate - adds r1, r3, 0 - ldr r0, =gUnknown_08589A48 - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldm r0!, {r4-r6} - stm r1!, {r4-r6} - ldr r0, [r2] - str r0, [r3] - ldr r0, =gUnknown_02039F60 - ldrh r0, [r0, 0xC] - adds r1, r0, 0x1 - strh r1, [r3, 0xC] - lsls r0, r1, 16 - lsrs r0, 16 - cmp r0, 0x8 - bls _080DFFDC - movs r0, 0x8 - strh r0, [r3, 0xE] - b _080DFFDE - .pool -_080DFFDC: - strh r1, [r3, 0xE] -_080DFFDE: - ldr r0, =gUnknown_02039F70 - ldr r0, [r0] - ldr r1, =gMultiuseListMenuTemplate - ldrh r1, [r1, 0xE] - ldr r2, =0x00002004 - adds r0, r2 - strh r1, [r0] - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuBuildListMenuTemplate - - thumb_func_start BuyMenuSetListEntry -@ void BuyMenuSetListEntry(struct ListMenuEntry *entry, u16 code, u8 *str) -BuyMenuSetListEntry: @ 80E0000 - push {r4-r6,lr} - adds r6, r0, 0 - adds r5, r2, 0 - lsls r1, 16 - lsrs r4, r1, 16 - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - cmp r0, 0 - bne _080E0020 - adds r0, r4, 0 - adds r1, r5, 0 - bl CopyItemName - b _080E002C - .pool -_080E0020: - lsls r1, r4, 5 - ldr r0, =gDecorations + 1 - adds r1, r0 - adds r0, r5, 0 - bl StringCopy -_080E002C: - str r5, [r6] - str r4, [r6, 0x4] - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuSetListEntry - - thumb_func_start BuyMenuPrintItemDescriptionAndShowItemIcon -@ void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 menuEntryCode, bool8 isInitialSelection, struct ListMenu *listMenu) -BuyMenuPrintItemDescriptionAndShowItemIcon: @ 80E003C - push {r4-r7,lr} - mov r7, r8 - push {r7} - sub sp, 0x8 - adds r7, r0, 0 - lsls r1, 24 - lsrs r1, 24 - cmp r1, 0x1 - beq _080E0054 - movs r0, 0x5 - bl PlaySE -_080E0054: - movs r0, 0x2 - negs r0, r0 - cmp r7, r0 - beq _080E0078 - lsls r4, r7, 16 - lsrs r0, r4, 16 - ldr r1, =gUnknown_02039F70 - ldr r1, [r1] - ldr r2, =0x0000200c - adds r1, r2 - ldrb r1, [r1] - bl BuyMenuAddItemIcon - b _080E008A - .pool -_080E0078: - ldr r0, =0x0000ffff - ldr r1, =gUnknown_02039F70 - ldr r1, [r1] - ldr r2, =0x0000200c - adds r1, r2 - ldrb r1, [r1] - bl BuyMenuAddItemIcon - lsls r4, r7, 16 -_080E008A: - lsrs r4, 16 - mov r8, r4 - ldr r6, =gUnknown_02039F70 - ldr r0, [r6] - ldr r5, =0x0000200c - adds r0, r5 - ldrb r0, [r0] - movs r4, 0x1 - adds r1, r4, 0 - eors r1, r0 - mov r0, r8 - bl BuyMenuRemoveItemIcon - ldr r1, [r6] - adds r1, r5 - ldrb r0, [r1] - eors r0, r4 - strb r0, [r1] - movs r0, 0x2 - negs r0, r0 - cmp r7, r0 - beq _080E00E8 - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - cmp r0, 0 - bne _080E00D8 - mov r0, r8 - bl ItemId_GetDescription - adds r4, r0, 0 - b _080E00EA - .pool -_080E00D8: - ldr r0, =gDecorations - lsls r1, r7, 5 - adds r0, 0x18 - adds r1, r0 - ldr r4, [r1] - b _080E00EA - .pool -_080E00E8: - ldr r4, =gText_QuitShopping -_080E00EA: - movs r0, 0x2 - movs r1, 0 - bl FillWindowPixelBuffer - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - movs r0, 0x2 - adds r1, r4, 0 - movs r2, 0x3 - movs r3, 0x1 - bl BuyMenuPrint - add sp, 0x8 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuPrintItemDescriptionAndShowItemIcon - - thumb_func_start BuyMenuPrintPriceInList -@ void BuyMenuPrintPriceInList(u8 windowId, s32 menuEntryCode, u8 y) -BuyMenuPrintPriceInList: @ 80E0114 - push {r4-r7,lr} - sub sp, 0x14 - lsls r0, 24 - lsrs r6, r0, 24 - lsls r2, 24 - lsrs r7, r2, 24 - movs r0, 0x2 - negs r0, r0 - cmp r1, r0 - beq _080E01AC - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - cmp r0, 0 - bne _080E0164 - ldr r5, =gStringVar1 - lsls r0, r1, 16 - lsrs r0, 16 - bl ItemId_GetPrice - adds r4, r0, 0 - movs r0, 0x1 - bl GetPriceReduction - lsls r4, 16 - lsrs r4, 16 - lsls r0, 24 - lsrs r0, 24 - asrs r4, r0 - adds r0, r5, 0 - adds r1, r4, 0 - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN - b _080E0176 - .pool -_080E0164: - ldr r0, =gStringVar1 - ldr r2, =gDecorations - lsls r1, 5 - adds r1, r2 - ldrh r1, [r1, 0x14] - movs r2, 0 - movs r3, 0x5 - bl ConvertIntToDecimalStringN -_080E0176: - ldr r4, =gStringVar4 - ldr r1, =gText_PokedollarVar1 - adds r0, r4, 0 - bl StringExpandPlaceholders - movs r0, 0x7 - adds r1, r4, 0 - movs r2, 0x78 - bl GetStringRightAlignXOffset - adds r2, r0, 0 - lsls r2, 24 - lsrs r2, 24 - movs r0, 0 - str r0, [sp] - str r0, [sp, 0x4] - ldr r0, =gUnknown_08589AB3 - str r0, [sp, 0x8] - movs r0, 0x1 - negs r0, r0 - str r0, [sp, 0xC] - str r4, [sp, 0x10] - adds r0, r6, 0 - movs r1, 0x7 - adds r3, r7, 0 - bl AddTextPrinterParameterized4 -_080E01AC: - add sp, 0x14 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuPrintPriceInList - - thumb_func_start BuyMenuAddScrollIndicatorArrows -@ void BuyMenuAddScrollIndicatorArrows() -BuyMenuAddScrollIndicatorArrows: @ 80E01C8 - push {r4,r5,lr} - sub sp, 0x10 - ldr r5, =gUnknown_02039F70 - ldr r2, [r5] - ldr r4, =0x0000200b - adds r0, r2, r4 - ldrb r0, [r0] - cmp r0, 0xFF - bne _080E0206 - ldr r0, =gUnknown_02039F60 - ldrh r1, [r0, 0xC] - adds r0, r1, 0x1 - cmp r0, 0x8 - ble _080E0206 - subs r0, r1, 0x7 - str r0, [sp] - ldr r0, =0x00000834 - str r0, [sp, 0x4] - str r0, [sp, 0x8] - ldr r1, =0x00002008 - adds r0, r2, r1 - str r0, [sp, 0xC] - movs r0, 0x2 - movs r1, 0xAC - movs r2, 0xC - movs r3, 0x94 - bl AddScrollIndicatorArrowPairParameterized - ldr r1, [r5] - adds r1, r4 - strb r0, [r1] -_080E0206: - add sp, 0x10 - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuAddScrollIndicatorArrows - - thumb_func_start BuyMenuRemoveScrollIndicatorArrows -@ void BuyMenuRemoveScrollIndicatorArrows() -BuyMenuRemoveScrollIndicatorArrows: @ 80E0224 - push {r4,lr} - ldr r4, =gUnknown_02039F70 - ldr r0, [r4] - ldr r2, =0x0000200b - adds r1, r0, r2 - ldrb r0, [r1] - cmp r0, 0xFF - beq _080E0242 - bl RemoveScrollIndicatorArrowPair - ldr r0, [r4] - ldr r1, =0x0000200b - adds r0, r1 - movs r1, 0xFF - strb r1, [r0] -_080E0242: - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuRemoveScrollIndicatorArrows - - thumb_func_start BuyMenuPrintCursor -@ void BuyMenuPrintCursor(u8 taskId, u8 colorSetId) -BuyMenuPrintCursor: @ 80E0250 - push {r4,lr} - sub sp, 0x8 - adds r4, r1, 0 - lsls r0, 24 - lsrs r0, 24 - lsls r4, 24 - lsrs r4, 24 - bl ListMenuGetYCoordForPrintingArrowCursor - adds r3, r0, 0 - lsls r3, 24 - lsrs r3, 24 - ldr r1, =gText_SelectorArrow2 - movs r0, 0 - str r0, [sp] - str r4, [sp, 0x4] - movs r0, 0x1 - movs r2, 0 - bl BuyMenuPrint - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuPrintCursor - - thumb_func_start BuyMenuAddItemIcon -@ void BuyMenuAddItemIcon(u16 id, u8 iconSlot) -BuyMenuAddItemIcon: @ 80E0284 - push {r4,lr} - sub sp, 0x8 - lsls r0, 16 - lsrs r2, r0, 16 - lsls r1, 24 - lsrs r3, r1, 24 - ldr r0, =gUnknown_02039F70 - ldr r4, =0x0000200d - adds r1, r3, r4 - ldr r0, [r0] - adds r4, r0, r1 - ldrb r0, [r4] - cmp r0, 0xFF - bne _080E0310 - ldr r0, =gUnknown_02039F60 - ldrb r0, [r0, 0xF] - cmp r0, 0 - beq _080E02AE - ldr r0, =0x0000ffff - cmp r2, r0 - bne _080E02F0 -_080E02AE: - ldr r0, =0x0000083e - adds r1, r3, r0 - adds r0, r1, 0 - bl AddItemIconSprite - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E0310 - strb r2, [r4] - ldr r1, =gSprites - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r0, r1 - movs r1, 0x18 - strh r1, [r0, 0x24] - movs r1, 0x58 - strh r1, [r0, 0x26] - b _080E0310 - .pool -_080E02F0: - lsls r0, r2, 24 - lsrs r0, 24 - ldr r2, =0x0000083e - adds r1, r3, r2 - str r1, [sp] - str r1, [sp, 0x4] - movs r1, 0x14 - movs r2, 0x54 - movs r3, 0x1 - bl AddDecorationIconObject - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x40 - beq _080E0310 - strb r2, [r4] -_080E0310: - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuAddItemIcon - - thumb_func_start BuyMenuRemoveItemIcon -@ void BuyMenuRemoveItemIcon(u16 id, u8 iconSlot) -BuyMenuRemoveItemIcon: @ 80E031C - push {r4,r5,lr} - lsls r1, 24 - lsrs r4, r1, 24 - ldr r0, =gUnknown_02039F70 - ldr r2, =0x0000200d - adds r1, r4, r2 - ldr r0, [r0] - adds r5, r0, r1 - ldrb r0, [r5] - cmp r0, 0xFF - beq _080E0356 - ldr r0, =0x0000083e - adds r4, r0 - adds r0, r4, 0 - bl FreeSpriteTilesByTag - adds r0, r4, 0 - bl FreeSpritePaletteByTag - ldrb r1, [r5] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, =gSprites - adds r0, r1 - bl DestroySprite - movs r0, 0xFF - strb r0, [r5] -_080E0356: - pop {r4,r5} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuRemoveItemIcon - - thumb_func_start BuyMenuInitBgs -@ void BuyMenuInitBgs() -BuyMenuInitBgs: @ 80E036C - push {r4,lr} - movs r0, 0 - bl ResetBgsAndClearDma3BusyFlags - ldr r1, =gUnknown_08589A60 - movs r0, 0 - movs r2, 0x4 - bl InitBgsFromTemplates - ldr r4, =gUnknown_02039F70 - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 4 - adds r1, r0 - movs r0, 0x1 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0xC0 - lsls r0, 5 - adds r1, r0 - movs r0, 0x2 - bl SetBgTilemapBuffer - ldr r1, [r4] - movs r0, 0x80 - lsls r0, 5 - adds r1, r0 - movs r0, 0x3 - bl SetBgTilemapBuffer - movs r0, 0x10 - movs r1, 0 - bl SetGpuReg - movs r0, 0x12 - movs r1, 0 - bl SetGpuReg - movs r0, 0x14 - movs r1, 0 - bl SetGpuReg - movs r0, 0x16 - movs r1, 0 - bl SetGpuReg - movs r0, 0x18 - movs r1, 0 - bl SetGpuReg - movs r0, 0x1A - movs r1, 0 - bl SetGpuReg - movs r0, 0x1C - movs r1, 0 - bl SetGpuReg - movs r0, 0x1E - movs r1, 0 - bl SetGpuReg - movs r0, 0x50 - movs r1, 0 - bl SetGpuReg - movs r1, 0x82 - lsls r1, 5 - movs r0, 0 - bl SetGpuReg - movs r0, 0 - bl ShowBg - movs r0, 0x1 - bl ShowBg - movs r0, 0x2 - bl ShowBg - movs r0, 0x3 - bl ShowBg - pop {r4} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuInitBgs - - thumb_func_start BuyMenuDecompressBgGraphics -@ void BuyMenuDecompressBgGraphics() -BuyMenuDecompressBgGraphics: @ 80E0424 - push {lr} - sub sp, 0x4 - ldr r1, =gBuyMenuFrame_Gfx - movs r2, 0xE8 - lsls r2, 2 - ldr r3, =0x000003e3 - movs r0, 0 - str r0, [sp] - movs r0, 0x1 - bl decompress_and_copy_tile_data_to_vram - ldr r0, =gBuyMenuFrame_Tilemap - ldr r1, =gUnknown_02039F70 - ldr r1, [r1] - bl LZDecompressWram - ldr r0, =gMenuMoneyPal - movs r1, 0xC0 - movs r2, 0x20 - bl LoadCompressedPalette - add sp, 0x4 - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuDecompressBgGraphics - - thumb_func_start BuyMenuInitWindows -@ void BuyMenuInitWindows() -BuyMenuInitWindows: @ 80E0468 - push {lr} - ldr r0, =gUnknown_08589A70 - bl InitWindows - bl DeactivateAllTextPrinters - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD0 - bl LoadUserWindowBorderGfx - movs r0, 0 - movs r1, 0xA - movs r2, 0xE0 - bl LoadMessageBoxGfx - movs r0, 0 - bl PutWindowTilemap - movs r0, 0x1 - bl PutWindowTilemap - movs r0, 0x2 - bl PutWindowTilemap - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuInitWindows - - thumb_func_start BuyMenuPrint -@ void BuyMenuPrint(u8 windowId, u8 *str, u8 x, u8 y, u8 speed, u8 colorSetId) -BuyMenuPrint: @ 80E04A4 - push {r4-r6,lr} - sub sp, 0x14 - ldr r6, [sp, 0x24] - ldr r5, [sp, 0x28] - lsls r0, 24 - lsrs r0, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - lsls r5, 24 - lsrs r5, 24 - movs r4, 0 - str r4, [sp] - str r4, [sp, 0x4] - lsls r4, r5, 1 - adds r4, r5 - ldr r5, =gUnknown_08589AB0 - adds r4, r5 - str r4, [sp, 0x8] - lsls r6, 24 - asrs r6, 24 - str r6, [sp, 0xC] - str r1, [sp, 0x10] - movs r1, 0x1 - bl AddTextPrinterParameterized4 - add sp, 0x14 - pop {r4-r6} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuPrint - - thumb_func_start BuyMenuDisplayMessage -@ void BuyMenuDisplayMessage(u8 taskId, u8 *str, void ( *callback)(u8 taskId)) -BuyMenuDisplayMessage: @ 80E04E8 - push {r4-r6,lr} - sub sp, 0x10 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 24 - lsrs r4, 24 - bl GetPlayerTextSpeed - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x1 - str r1, [sp] - str r0, [sp, 0x4] - str r5, [sp, 0x8] - str r6, [sp, 0xC] - adds r0, r4, 0 - movs r1, 0x5 - movs r2, 0xA - movs r3, 0xE - bl DisplayMessageAndContinueTask - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - add sp, 0x10 - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end BuyMenuDisplayMessage - - thumb_func_start BuyMenuDrawGraphics -@ void BuyMenuDrawGraphics() -BuyMenuDrawGraphics: @ 80E0524 - push {lr} - bl BuyMenuDrawMapGraphics - bl BuyMenuCopyMenuBgToBg1TilemapBuffer - movs r0, 0x13 - movs r1, 0xB - bl AddMoneyLabelObject - ldr r0, =gSaveBlock1Ptr - ldr r0, [r0] - movs r1, 0x92 - lsls r1, 3 - adds r0, r1 - bl GetMoney - adds r3, r0, 0 - movs r0, 0 - movs r1, 0x1 - movs r2, 0xD - bl PrintMoneyAmountInMoneyBoxWithBorder - movs r0, 0 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x1 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x2 - bl schedule_bg_copy_tilemap_to_vram - movs r0, 0x3 - bl schedule_bg_copy_tilemap_to_vram - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuDrawGraphics - - thumb_func_start BuyMenuDrawMapGraphics -@ void BuyMenuDrawMapGraphics() -BuyMenuDrawMapGraphics: @ 80E0570 - push {lr} - bl BuyMenuCollectEventObjectData - bl BuyMenuDrawEventObjects - bl BuyMenuDrawMapBg - pop {r0} - bx r0 - thumb_func_end BuyMenuDrawMapGraphics - - thumb_func_start BuyMenuDrawMapBg -@ void BuyMenuDrawMapBg() -BuyMenuDrawMapBg: @ 80E0584 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - ldr r0, =gMapHeader - ldr r0, [r0] - mov r9, r0 - mov r4, sp - adds r4, 0x2 - mov r0, sp - adds r1, r4, 0 - bl GetXYCoordsOneStepInFrontOfPlayer - mov r1, sp - mov r0, sp - ldrh r0, [r0] - subs r0, 0x4 - strh r0, [r1] - ldrh r0, [r4] - subs r0, 0x4 - strh r0, [r4] - movs r1, 0 - mov r10, r4 -_080E05B6: - movs r4, 0 - lsls r7, r1, 16 - asrs r0, r7, 16 - mov r8, r0 -_080E05BE: - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - lsls r4, 16 - asrs r5, r4, 16 - adds r0, r5 - mov r2, r10 - movs r3, 0 - ldrsh r1, [r2, r3] - add r1, r8 - bl MapGridGetMetatileIdAt - lsls r0, 16 - lsrs r6, r0, 16 - adds r0, r5, 0 - mov r1, r8 - bl BuyMenuCheckForOverlapWithMenuBg - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080E0608 - mov r0, sp - movs r1, 0 - ldrsh r0, [r0, r1] - adds r0, r5 - mov r2, r10 - movs r3, 0 - ldrsh r1, [r2, r3] - add r1, r8 - bl MapGridGetMetatileLayerTypeAt - lsls r0, 24 - lsrs r5, r0, 24 - b _080E060A - .pool -_080E0608: - movs r5, 0x1 -_080E060A: - ldr r0, =0x000001ff - cmp r6, r0 - bhi _080E062C - asrs r0, r4, 16 - mov r2, r9 - ldr r1, [r2, 0x10] - lsls r3, r6, 4 - ldr r2, [r1, 0xC] - adds r2, r3 - asrs r1, r7, 16 - adds r3, r5, 0 - bl BuyMenuDrawMapMetatile - b _080E0644 - .pool -_080E062C: - asrs r0, r4, 16 - mov r3, r9 - ldr r2, [r3, 0x14] - ldr r3, =0xfffffe00 - adds r1, r6, r3 - lsls r1, 4 - ldr r2, [r2, 0xC] - adds r2, r1 - asrs r1, r7, 16 - adds r3, r5, 0 - bl BuyMenuDrawMapMetatile -_080E0644: - movs r1, 0x80 - lsls r1, 9 - adds r0, r4, r1 - lsrs r4, r0, 16 - asrs r0, 16 - cmp r0, 0xE - ble _080E05BE - adds r0, r7, r1 - lsrs r1, r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _080E05B6 - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .pool - thumb_func_end BuyMenuDrawMapBg - thumb_func_start BuyMenuDrawMapMetatile @ void BuyMenuDrawMapMetatile(u16 x, u16 y, u16 *src, u8 metatileLayerType) BuyMenuDrawMapMetatile: @ 80E0670 @@ -1427,7 +29,7 @@ _080E0690: beq _080E06F8 b _080E0728 _080E0696: - ldr r6, =gUnknown_02039F70 + ldr r6, =gShopDataPtr ldr r0, [r6] movs r2, 0xC0 lsls r2, 5 @@ -1446,7 +48,7 @@ _080E0696: b _080E06E2 .pool _080E06C0: - ldr r6, =gUnknown_02039F70 + ldr r6, =gShopDataPtr ldr r0, [r6] movs r2, 0x80 lsls r2, 5 @@ -1472,7 +74,7 @@ _080E06E2: b _080E0728 .pool _080E06F8: - ldr r6, =gUnknown_02039F70 + ldr r6, =gShopDataPtr ldr r0, [r6] movs r2, 0x80 lsls r2, 5 @@ -1542,7 +144,7 @@ BuyMenuCollectEventObjectData: @ 80E075C adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer movs r7, 0 - ldr r5, =gUnknown_02039F70 + ldr r5, =gShopDataPtr ldr r3, =0x00002010 movs r2, 0x10 _080E0780: @@ -1560,7 +162,7 @@ _080E0780: bls _080E0780 movs r7, 0 str r4, [sp, 0x8] - ldr r1, =gUnknown_02039F70 + ldr r1, =gShopDataPtr mov r9, r1 mov r2, sp str r2, [sp, 0x4] @@ -1728,7 +330,7 @@ BuyMenuDrawEventObjects: @ 80E08F0 push {r5-r7} sub sp, 0x4 movs r7, 0 - ldr r0, =gUnknown_02039F70 + ldr r0, =gShopDataPtr mov r8, r0 ldr r1, =gEventObjects mov r10, r1 @@ -1883,7 +485,7 @@ _080E0A3A: @ void BuyMenuCopyMenuBgToBg1TilemapBuffer() BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 80E0A40 push {r4-r6,lr} - ldr r0, =gUnknown_02039F70 + ldr r0, =gShopDataPtr ldr r0, [r0] movs r1, 0x80 lsls r1, 4 @@ -1921,7 +523,7 @@ _080E0A6A: @ bool8 BuyMenuCheckForOverlapWithMenuBg(u16 x, u16 y) BuyMenuCheckForOverlapWithMenuBg: @ 80E0A88 push {lr} - ldr r2, =gUnknown_02039F70 + ldr r2, =gShopDataPtr ldr r2, [r2] lsls r0, 1 lsls r1, 6 @@ -1979,7 +581,7 @@ _080E0AEA: bl ListMenuHandleInputGetItemId adds r5, r0, 0 ldrb r0, [r4, 0xE] - ldr r7, =gUnknown_02039F70 + ldr r7, =gShopDataPtr ldr r2, [r7] ldr r3, =0x00002008 adds r1, r2, r3 @@ -2011,7 +613,7 @@ _080E0B32: ldrb r0, [r4, 0xE] movs r1, 0x2 bl BuyMenuPrintCursor - ldr r0, =gUnknown_02039F60 + ldr r0, =gMartInfo ldrb r0, [r0, 0xF] cmp r0, 0 bne _080E0B80 @@ -2049,7 +651,7 @@ _080E0B92: movs r1, 0x92 lsls r1, 3 adds r0, r1 - ldr r2, =gUnknown_02039F70 + ldr r2, =gShopDataPtr mov r8, r2 ldr r1, [r2] movs r7, 0x80 @@ -2065,7 +667,7 @@ _080E0B92: b _080E0C28 .pool _080E0BD0: - ldr r4, =gUnknown_02039F60 + ldr r4, =gMartInfo ldrb r0, [r4, 0xF] cmp r0, 0 bne _080E0C38 @@ -2199,7 +801,7 @@ Task_BuyHowManyDialogueInit: @ 80E0CA4 lsls r1, 3 adds r0, r1 bl GetMoney - ldr r1, =gUnknown_02039F70 + ldr r1, =gShopDataPtr ldr r4, [r1] movs r2, 0x80 lsls r2, 6 @@ -2248,7 +850,7 @@ Task_BuyHowManyDialogueHandleInput: @ 80E0D88 ldr r1, =gTasks + 0x8 adds r5, r0, r1 adds r0, r5, 0x2 - ldr r7, =gUnknown_02039F70 + ldr r7, =gShopDataPtr ldr r1, [r7] ldr r2, =0x0000200a adds r1, r2 @@ -2389,7 +991,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC adds r4, r0, r1 movs r0, 0x1 bl PutWindowTilemap - ldr r6, =gUnknown_02039F60 + ldr r6, =gMartInfo ldrb r0, [r6, 0xF] cmp r0, 0 bne _080E0F40 @@ -2459,7 +1061,7 @@ BuyMenuSubtractMoney: @ 80E0F88 movs r4, 0x92 lsls r4, 3 adds r0, r4 - ldr r1, =gUnknown_02039F70 + ldr r1, =gShopDataPtr ldr r1, [r1] movs r2, 0x80 lsls r2, 6 @@ -2475,7 +1077,7 @@ BuyMenuSubtractMoney: @ 80E0F88 movs r0, 0 movs r2, 0 bl PrintMoneyAmountInMoneyBox - ldr r0, =gUnknown_02039F60 + ldr r0, =gMartInfo ldrb r0, [r0, 0xF] cmp r0, 0 bne _080E0FF0 @@ -2623,7 +1225,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80E10EC movs r0, 0x4 movs r1, 0x11 bl FillWindowPixelBuffer - ldr r0, =gUnknown_02039F70 + ldr r0, =gShopDataPtr ldr r0, [r0] movs r1, 0x80 lsls r1, 6 diff --git a/asm/trainer_card.s b/asm/trainer_card.s index 2c38140c6..e0cb5e21e 100644 --- a/asm/trainer_card.s +++ b/asm/trainer_card.s @@ -1141,8 +1141,8 @@ _080C308C: .pool thumb_func_end sub_80C3020 - thumb_func_start sub_80C30A4 -sub_80C30A4: @ 80C30A4 + thumb_func_start TrainerCard_GenerateCardForPlayer +TrainerCard_GenerateCardForPlayer: @ 80C30A4 push {r4,lr} adds r4, r0, 0 movs r1, 0 @@ -1197,7 +1197,7 @@ _080C3108: pop {r0} bx r0 .pool - thumb_func_end sub_80C30A4 + thumb_func_end TrainerCard_GenerateCardForPlayer thumb_func_start sub_80C3120 sub_80C3120: @ 80C3120 @@ -4558,8 +4558,8 @@ _080C4E44: .pool thumb_func_end sub_80C4DDC - thumb_func_start sub_80C4E74 -sub_80C4E74: @ 80C4E74 + thumb_func_start TrainerCard_ShowLinkCard +TrainerCard_ShowLinkCard: @ 80C4E74 push {r4-r6,lr} adds r4, r0, 0 adds r6, r1, 0 @@ -4600,7 +4600,7 @@ sub_80C4E74: @ 80C4E74 pop {r0} bx r0 .pool - thumb_func_end sub_80C4E74 + thumb_func_end TrainerCard_ShowLinkCard thumb_func_start sub_80C4EE4 sub_80C4EE4: @ 80C4EE4 |