diff options
Diffstat (limited to 'asm/field_effect.s')
-rw-r--r-- | asm/field_effect.s | 9666 |
1 files changed, 0 insertions, 9666 deletions
diff --git a/asm/field_effect.s b/asm/field_effect.s deleted file mode 100644 index 4e0fee5c8..000000000 --- a/asm/field_effect.s +++ /dev/null @@ -1,9666 +0,0 @@ - .include "asm/macros.inc" - .include "constants/constants.inc" - - .syntax unified - - .text - - thumb_func_start FieldEffectStart -FieldEffectStart: @ 8083444 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl FieldEffectActiveListAdd - ldr r0, _08083484 @ =gUnknown_81D96AC - lsls r4, 2 - adds r4, r0 - ldr r0, [r4] - str r0, [sp] - add r4, sp, 0x4 - ldr r5, _08083488 @ =gUnknown_83CBE30 -_08083462: - ldr r0, [sp] - ldrb r0, [r0] - lsls r0, 2 - adds r0, r5 - ldr r2, [r0] - mov r0, sp - adds r1, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _08083462 - ldr r0, [sp, 0x4] - add sp, 0x8 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08083484: .4byte gUnknown_81D96AC -_08083488: .4byte gUnknown_83CBE30 - thumb_func_end FieldEffectStart - - thumb_func_start FieldEffectCmd_loadtiles -FieldEffectCmd_loadtiles: @ 808348C - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl FieldEffectScript_LoadTiles - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadtiles - - thumb_func_start FieldEffectCmd_loadfadedpal -FieldEffectCmd_loadfadedpal: @ 80834A0 - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl sub_8083614 - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadfadedpal - - thumb_func_start FieldEffectCmd_loadpal -FieldEffectCmd_loadpal: @ 80834B4 - push {lr} - ldr r1, [r0] - adds r1, 0x1 - str r1, [r0] - bl sub_808365C - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadpal - - thumb_func_start FieldEffectCmd_callnative -FieldEffectCmd_callnative: @ 80834C8 - push {lr} - ldr r2, [r0] - adds r2, 0x1 - str r2, [r0] - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_callnative - - thumb_func_start sub_80834DC -sub_80834DC: @ 80834DC - movs r0, 0 - bx lr - thumb_func_end sub_80834DC - - thumb_func_start FieldEffectCmd_loadgfx_callnative -FieldEffectCmd_loadgfx_callnative: @ 80834E0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl FieldEffectScript_LoadTiles - adds r0, r4, 0 - bl sub_8083614 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadgfx_callnative - - thumb_func_start FieldEffectCmd_loadtiles_callnative -FieldEffectCmd_loadtiles_callnative: @ 8083508 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl FieldEffectScript_LoadTiles - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadtiles_callnative - - thumb_func_start FieldEffectCmd_loadfadedpal_callnative -FieldEffectCmd_loadfadedpal_callnative: @ 808352C - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - ldr r0, [r4] - adds r0, 0x1 - str r0, [r4] - adds r0, r4, 0 - bl sub_8083614 - adds r0, r4, 0 - adds r1, r5, 0 - bl FieldEffectScript_CallNative - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end FieldEffectCmd_loadfadedpal_callnative - - thumb_func_start FieldEffectScript_ReadWord -FieldEffectScript_ReadWord: @ 8083550 - ldr r2, [r0] - ldrb r0, [r2] - ldrb r1, [r2, 0x1] - lsls r1, 8 - adds r0, r1 - ldrb r1, [r2, 0x2] - lsls r1, 16 - adds r0, r1 - ldrb r1, [r2, 0x3] - lsls r1, 24 - adds r0, r1 - bx lr - thumb_func_end FieldEffectScript_ReadWord - - thumb_func_start FieldEffectScript_LoadTiles -FieldEffectScript_LoadTiles: @ 8083568 - push {r4,r5,lr} - adds r4, r0, 0 - bl FieldEffectScript_ReadWord - adds r5, r0, 0 - ldrh r0, [r5, 0x6] - bl GetSpriteTileStartByTag - lsls r0, 16 - ldr r1, _08083594 @ =0xffff0000 - cmp r0, r1 - bne _08083586 - adds r0, r5, 0 - bl LoadSpriteSheet -_08083586: - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08083594: .4byte 0xffff0000 - thumb_func_end FieldEffectScript_LoadTiles - - thumb_func_start sub_8083598 -sub_8083598: @ 8083598 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _080835B4 @ =gUnknown_2036E28 - ldrb r0, [r0] - cmp r0, 0x1 - beq _080835B8 - cmp r0, 0x1 - ble _08083606 - cmp r0, 0x2 - beq _080835CC - cmp r0, 0x3 - beq _080835E0 - b _08083606 - .align 2, 0 -_080835B4: .4byte gUnknown_2036E28 -_080835B8: - adds r4, 0x10 - lsls r0, r4, 5 - ldr r1, _080835C8 @ =gPlttBufferUnfaded - adds r0, r1 - movs r1, 0x10 - bl TintPalette_GrayScale - b _080835F6 - .align 2, 0 -_080835C8: .4byte gPlttBufferUnfaded -_080835CC: - adds r4, 0x10 - lsls r0, r4, 5 - ldr r1, _080835DC @ =gPlttBufferUnfaded - adds r0, r1 - movs r1, 0x10 - bl TintPalette_SepiaTone - b _080835F6 - .align 2, 0 -_080835DC: .4byte gPlttBufferUnfaded -_080835E0: - adds r4, 0x10 - lsls r0, r4, 4 - movs r1, 0x10 - bl sub_8111F38 - lsls r0, r4, 5 - ldr r1, _0808360C @ =gPlttBufferUnfaded - adds r0, r1 - movs r1, 0x10 - bl TintPalette_GrayScale -_080835F6: - lsls r1, r4, 5 - ldr r0, _0808360C @ =gPlttBufferUnfaded - adds r0, r1, r0 - ldr r2, _08083610 @ =gPlttBufferFaded - adds r1, r2 - movs r2, 0x8 - bl CpuFastSet -_08083606: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808360C: .4byte gPlttBufferUnfaded -_08083610: .4byte gPlttBufferFaded - thumb_func_end sub_8083598 - - thumb_func_start sub_8083614 -sub_8083614: @ 8083614 - push {r4-r6,lr} - adds r6, r0, 0 - bl FieldEffectScript_ReadWord - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl LoadSpritePalette - cmp r4, 0xFF - bne _08083642 - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - bl sub_8083598 -_08083642: - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - bl sub_807AA8C - ldr r0, [r6] - adds r0, 0x4 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8083614 - - thumb_func_start sub_808365C -sub_808365C: @ 808365C - push {r4-r6,lr} - adds r6, r0, 0 - bl FieldEffectScript_ReadWord - adds r5, r0, 0 - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r5, 0 - bl LoadSpritePalette - cmp r4, 0xFF - beq _0808368A - ldrh r0, [r5, 0x4] - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 24 - bl sub_8083598 -_0808368A: - ldr r0, [r6] - adds r0, 0x4 - str r0, [r6] - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_808365C - - thumb_func_start FieldEffectScript_CallNative -FieldEffectScript_CallNative: @ 8083698 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FieldEffectScript_ReadWord - bl _call_via_r0 - str r0, [r5] - ldr r0, [r4] - adds r0, 0x4 - str r0, [r4] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectScript_CallNative - - thumb_func_start FieldEffectFreeGraphicsResources -FieldEffectFreeGraphicsResources: @ 80836B4 - push {r4,r5,lr} - adds r1, r0, 0 - adds r1, 0x40 - ldrh r5, [r1] - ldrb r4, [r0, 0x5] - lsrs r4, 4 - bl DestroySprite - adds r0, r5, 0 - bl FieldEffectFreeTilesIfUnused - adds r0, r4, 0 - bl FieldEffectFreePaletteIfUnused - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectFreeGraphicsResources - - thumb_func_start FieldEffectStop -FieldEffectStop: @ 80836D8 - push {r4,lr} - lsls r4, r1, 24 - lsrs r4, 24 - bl FieldEffectFreeGraphicsResources - adds r0, r4, 0 - bl FieldEffectActiveListRemove - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectStop - - thumb_func_start FieldEffectFreeTilesIfUnused -FieldEffectFreeTilesIfUnused: @ 80836F0 - push {r4,r5,lr} - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r4, 0 - bl GetSpriteTileTagByTileStart - lsls r0, 16 - lsrs r3, r0, 16 - ldr r0, _0808374C @ =0x0000ffff - cmp r3, r0 - beq _08083744 - movs r2, 0 - ldr r5, _08083750 @ =gSprites -_0808370A: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r5 - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _08083734 - adds r0, r1, 0 - adds r0, 0x3F - ldrb r0, [r0] - lsls r0, 25 - cmp r0, 0 - bge _08083734 - adds r0, r1, 0 - adds r0, 0x40 - ldrh r0, [r0] - cmp r4, r0 - beq _08083744 -_08083734: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _0808370A - adds r0, r3, 0 - bl FreeSpriteTilesByTag -_08083744: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808374C: .4byte 0x0000ffff -_08083750: .4byte gSprites - thumb_func_end FieldEffectFreeTilesIfUnused - - thumb_func_start FieldEffectFreePaletteIfUnused -FieldEffectFreePaletteIfUnused: @ 8083754 - push {r4-r6,lr} - lsls r0, 24 - lsrs r4, r0, 24 - adds r0, r4, 0 - bl GetSpritePaletteTagByPaletteNum - lsls r0, 16 - lsrs r5, r0, 16 - ldr r0, _080837A4 @ =0x0000ffff - cmp r5, r0 - beq _0808379C - movs r2, 0 - ldr r6, _080837A8 @ =gSprites - adds r3, r4, 0 -_08083770: - lsls r0, r2, 4 - adds r0, r2 - lsls r0, 2 - adds r1, r0, r6 - adds r0, r1, 0 - adds r0, 0x3E - ldrb r0, [r0] - lsls r0, 31 - cmp r0, 0 - beq _0808378C - ldrb r0, [r1, 0x5] - lsrs r0, 4 - cmp r0, r3 - beq _0808379C -_0808378C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x3F - bls _08083770 - adds r0, r5, 0 - bl FreeSpritePaletteByTag -_0808379C: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080837A4: .4byte 0x0000ffff -_080837A8: .4byte gSprites - thumb_func_end FieldEffectFreePaletteIfUnused - - thumb_func_start FieldEffectActiveListClear -FieldEffectActiveListClear: @ 80837AC - push {r4,lr} - movs r2, 0 - ldr r4, _080837CC @ =gUnknown_3000FC8 - movs r3, 0xFF -_080837B4: - adds r0, r2, r4 - ldrb r1, [r0] - orrs r1, r3 - strb r1, [r0] - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080837B4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080837CC: .4byte gUnknown_3000FC8 - thumb_func_end FieldEffectActiveListClear - - thumb_func_start FieldEffectActiveListAdd -FieldEffectActiveListAdd: @ 80837D0 - push {r4,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, _080837E8 @ =gUnknown_3000FC8 -_080837DA: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, 0xFF - bne _080837EC - strb r3, [r1] - b _080837F6 - .align 2, 0 -_080837E8: .4byte gUnknown_3000FC8 -_080837EC: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _080837DA -_080837F6: - pop {r4} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListAdd - - thumb_func_start FieldEffectActiveListRemove -FieldEffectActiveListRemove: @ 80837FC - push {r4,r5,lr} - lsls r0, 24 - lsrs r3, r0, 24 - movs r2, 0 - ldr r4, _08083818 @ =gUnknown_3000FC8 - movs r5, 0xFF -_08083808: - adds r1, r2, r4 - ldrb r0, [r1] - cmp r0, r3 - bne _0808381C - orrs r0, r5 - strb r0, [r1] - b _08083826 - .align 2, 0 -_08083818: .4byte gUnknown_3000FC8 -_0808381C: - adds r0, r2, 0x1 - lsls r0, 24 - lsrs r2, r0, 24 - cmp r2, 0x1F - bls _08083808 -_08083826: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end FieldEffectActiveListRemove - - thumb_func_start FieldEffectActiveListContains -FieldEffectActiveListContains: @ 808382C - push {lr} - lsls r0, 24 - lsrs r2, r0, 24 - movs r1, 0 - ldr r3, _08083844 @ =gUnknown_3000FC8 -_08083836: - adds r0, r1, r3 - ldrb r0, [r0] - cmp r0, r2 - bne _08083848 - movs r0, 0x1 - b _08083854 - .align 2, 0 -_08083844: .4byte gUnknown_3000FC8 -_08083848: - adds r0, r1, 0x1 - lsls r0, 24 - lsrs r1, r0, 24 - cmp r1, 0x1F - bls _08083836 - movs r0, 0 -_08083854: - pop {r1} - bx r1 - thumb_func_end FieldEffectActiveListContains - - thumb_func_start CreateTrainerSprite -CreateTrainerSprite: @ 8083858 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - sub sp, 0x18 - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - mov r9, r3 - ldr r7, [sp, 0x34] - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - mov r0, r9 - lsls r0, 24 - lsrs r0, 24 - mov r9, r0 - lsrs r4, 21 - ldr r3, _080838E0 @ =gTrainerFrontPicPaletteTable - mov r8, r3 - add r8, r4 - mov r0, r8 - adds r1, r7, 0 - bl LoadCompressedSpritePaletteOverrideBuffer - ldr r0, _080838E4 @ =gTrainerFrontPicTable - adds r4, r0 - adds r0, r4, 0 - adds r1, r7, 0 - bl LoadCompressedSpriteSheetOverrideBuffer - mov r1, sp - ldrh r0, [r4, 0x6] - movs r2, 0 - strh r0, [r1] - mov r3, r8 - ldrh r0, [r3, 0x4] - strh r0, [r1, 0x2] - ldr r0, _080838E8 @ =gUnknown_83CBE50 - str r0, [sp, 0x4] - ldr r0, _080838EC @ =gDummySpriteAnimTable - str r0, [sp, 0x8] - str r2, [sp, 0xC] - ldr r0, _080838F0 @ =gDummySpriteAffineAnimTable - str r0, [sp, 0x10] - ldr r0, _080838F4 @ =SpriteCallbackDummy - str r0, [sp, 0x14] - lsls r5, 16 - asrs r5, 16 - lsls r6, 16 - asrs r6, 16 - mov r0, sp - adds r1, r5, 0 - adds r2, r6, 0 - mov r3, r9 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - add sp, 0x18 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080838E0: .4byte gTrainerFrontPicPaletteTable -_080838E4: .4byte gTrainerFrontPicTable -_080838E8: .4byte gUnknown_83CBE50 -_080838EC: .4byte gDummySpriteAnimTable -_080838F0: .4byte gDummySpriteAffineAnimTable -_080838F4: .4byte SpriteCallbackDummy - thumb_func_end CreateTrainerSprite - - thumb_func_start LoadTrainerGfx_TrainerCard -LoadTrainerGfx_TrainerCard: @ 80838F8 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r1, r2, 0 - lsls r4, 24 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _08083928 @ =gTrainerFrontPicTable - lsrs r4, 21 - adds r0, r4, r0 - ldr r0, [r0] - bl LZDecompressVram - ldr r0, _0808392C @ =gTrainerFrontPicPaletteTable - adds r4, r0 - ldr r0, [r4] - adds r1, r5, 0 - movs r2, 0x20 - bl LoadCompressedPalette - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08083928: .4byte gTrainerFrontPicTable -_0808392C: .4byte gTrainerFrontPicPaletteTable - thumb_func_end LoadTrainerGfx_TrainerCard - - thumb_func_start AddNewGameBirchObject -AddNewGameBirchObject: @ 8083930 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 24 - lsrs r6, 24 - ldr r0, _08083968 @ =gUnknown_83CBE70 - bl LoadSpritePalette - ldr r0, _0808396C @ =gUnknown_83CBE84 - lsls r4, 16 - asrs r4, 16 - lsls r5, 16 - asrs r5, 16 - adds r1, r4, 0 - adds r2, r5, 0 - adds r3, r6, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08083968: .4byte gUnknown_83CBE70 -_0808396C: .4byte gUnknown_83CBE84 - thumb_func_end AddNewGameBirchObject - - thumb_func_start sub_8083970 -sub_8083970: @ 8083970 - push {r4,r5,lr} - sub sp, 0x10 - lsls r0, 16 - lsrs r0, 16 - movs r3, 0x80 - lsls r3, 8 - lsls r1, 16 - asrs r1, 16 - str r1, [sp] - lsls r2, 16 - asrs r2, 16 - str r2, [sp, 0x4] - movs r1, 0 - str r1, [sp, 0x8] - ldr r1, _080839C0 @ =gMonPaletteTable - lsls r4, r0, 3 - adds r4, r1 - ldrh r1, [r4, 0x4] - str r1, [sp, 0xC] - movs r1, 0 - adds r2, r3, 0 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, 16 - lsrs r5, r0, 16 - ldrh r0, [r4, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_807B084 - ldr r0, _080839C4 @ =0x0000ffff - cmp r5, r0 - beq _080839C8 - lsls r0, r5, 24 - lsrs r0, 24 - b _080839CA - .align 2, 0 -_080839C0: .4byte gMonPaletteTable -_080839C4: .4byte 0x0000ffff -_080839C8: - movs r0, 0x40 -_080839CA: - add sp, 0x10 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8083970 - - thumb_func_start sub_80839D4 -sub_80839D4: @ 80839D4 - push {r4-r6,lr} - mov r6, r10 - mov r5, r9 - mov r4, r8 - push {r4-r6} - sub sp, 0x10 - adds r6, r0, 0 - mov r9, r1 - mov r10, r2 - adds r4, r3, 0 - ldr r5, [sp, 0x2C] - lsls r6, 16 - lsrs r6, 16 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - adds r0, r6, 0 - bl GetMonSpritePalStructFromOtIdPersonality - mov r8, r0 - lsls r4, 16 - asrs r4, 16 - str r4, [sp] - lsls r5, 16 - asrs r5, 16 - str r5, [sp, 0x4] - movs r0, 0 - str r0, [sp, 0x8] - mov r1, r8 - ldrh r0, [r1, 0x4] - str r0, [sp, 0xC] - adds r0, r6, 0 - mov r1, r9 - mov r2, r10 - movs r3, 0x1 - bl CreateMonPicSprite_HandleDeoxys - lsls r0, 16 - lsrs r4, r0, 16 - mov r1, r8 - ldrh r0, [r1, 0x4] - bl IndexOfSpritePaletteTag - adds r0, 0x10 - lsls r0, 24 - lsrs r0, 24 - bl sub_807B084 - ldr r0, _08083A44 @ =0x0000ffff - cmp r4, r0 - beq _08083A48 - lsls r0, r4, 24 - lsrs r0, 24 - b _08083A4A - .align 2, 0 -_08083A44: .4byte 0x0000ffff -_08083A48: - movs r0, 0x40 -_08083A4A: - add sp, 0x10 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_80839D4 - - thumb_func_start sub_8083A5C -sub_8083A5C: @ 8083A5C - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - bl sub_807B0B4 - ldrb r0, [r4, 0x1] - lsls r0, 30 - cmp r0, 0 - beq _08083A7A - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix -_08083A7A: - adds r0, r5, 0 - bl FreeAndDestroyMonPicSprite - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8083A5C - - thumb_func_start MultiplyInvertedPaletteRGBComponents -MultiplyInvertedPaletteRGBComponents: @ 8083A88 - push {r4-r7,lr} - mov r7, r9 - mov r6, r8 - push {r6,r7} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _08083B0C @ =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r9, r5 - mov r8, r4 - mov r6, r8 - ands r6, r5 - mov r8, r6 - movs r6, 0xF8 - lsls r6, 2 - ands r6, r4 - lsrs r6, 5 - movs r5, 0xF8 - lsls r5, 7 - ands r4, r5 - lsrs r4, 10 - mov r7, r9 - mov r5, r8 - subs r7, r5 - mov r12, r7 - mov r7, r12 - muls r7, r1 - adds r1, r7, 0 - asrs r1, 4 - add r8, r1 - mov r5, r9 - subs r1, r5, r6 - muls r1, r2 - asrs r1, 4 - adds r6, r1 - subs r5, r4 - mov r9, r5 - mov r1, r9 - muls r1, r3 - asrs r1, 4 - adds r4, r1 - mov r7, r8 - lsls r7, 16 - lsls r6, 21 - orrs r6, r7 - lsls r4, 26 - orrs r4, r6 - lsrs r4, 16 - ldr r1, _08083B10 @ =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08083B0C: .4byte gPlttBufferUnfaded -_08083B10: .4byte gPlttBufferFaded - thumb_func_end MultiplyInvertedPaletteRGBComponents - - thumb_func_start MultiplyPaletteRGBComponents -MultiplyPaletteRGBComponents: @ 8083B14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - lsls r0, 16 - lsls r1, 24 - lsrs r1, 24 - lsls r2, 24 - lsrs r2, 24 - lsls r3, 24 - lsrs r3, 24 - ldr r4, _08083B84 @ =gPlttBufferUnfaded - lsrs r0, 15 - adds r4, r0, r4 - ldrh r4, [r4] - movs r5, 0x1F - mov r8, r5 - mov r6, r8 - ands r6, r4 - mov r8, r6 - movs r5, 0xF8 - lsls r5, 2 - ands r5, r4 - lsrs r5, 5 - movs r6, 0xF8 - lsls r6, 7 - ands r4, r6 - lsrs r4, 10 - mov r6, r8 - muls r6, r1 - adds r1, r6, 0 - asrs r1, 4 - mov r6, r8 - subs r6, r1 - adds r1, r5, 0 - muls r1, r2 - asrs r1, 4 - subs r5, r1 - adds r1, r4, 0 - muls r1, r3 - asrs r1, 4 - subs r4, r1 - lsls r6, 16 - lsls r5, 21 - orrs r5, r6 - lsls r4, 26 - orrs r4, r5 - lsrs r4, 16 - ldr r1, _08083B88 @ =gPlttBufferFaded - adds r0, r1 - strh r4, [r0] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08083B84: .4byte gPlttBufferUnfaded -_08083B88: .4byte gPlttBufferFaded - thumb_func_end MultiplyPaletteRGBComponents - - thumb_func_start sub_8083B8C -sub_8083B8C: @ 8083B8C - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08083BC8 @ =sub_8083BD0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08083BCC @ =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x5D - strh r0, [r1, 0xC] - movs r0, 0x24 - strh r0, [r1, 0xE] - movs r0, 0x80 - strh r0, [r1, 0x10] - movs r0, 0x18 - strh r0, [r1, 0x12] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08083BC8: .4byte sub_8083BD0 -_08083BCC: .4byte gTasks - thumb_func_end sub_8083B8C - - thumb_func_start sub_8083BD0 -sub_8083BD0: @ 8083BD0 - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08083BF8 @ =gTasks - adds r1, r0 - ldr r2, _08083BFC @ =gUnknown_83CBFD0 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_08083BF8: .4byte gTasks -_08083BFC: .4byte gUnknown_83CBFD0 - thumb_func_end sub_8083BD0 - - thumb_func_start PokecenterHealEffect_0 -PokecenterHealEffect_0: @ 8083C00 - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0x1 - bl sub_8083E14 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - movs r1, 0x10 - ldrsh r0, [r4, r1] - movs r2, 0x12 - ldrsh r1, [r4, r2] - bl PokecenterHealEffectHelper - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x16] - pop {r4} - pop {r0} - bx r0 - thumb_func_end PokecenterHealEffect_0 - - thumb_func_start PokecenterHealEffect_1 -PokecenterHealEffect_1: @ 8083C3C - push {r4,lr} - adds r2, r0, 0 - ldr r3, _08083C74 @ =gSprites - movs r1, 0x14 - ldrsh r0, [r2, r1] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - movs r4, 0x2E - ldrsh r0, [r1, r4] - cmp r0, 0x1 - ble _08083C6E - movs r0, 0x16 - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] -_08083C6E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083C74: .4byte gSprites - thumb_func_end PokecenterHealEffect_1 - - thumb_func_start sub_8083C78 -sub_8083C78: @ 8083C78 - push {lr} - adds r3, r0, 0 - ldr r2, _08083C9C @ =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _08083C98 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08083C98: - pop {r0} - bx r0 - .align 2, 0 -_08083C9C: .4byte gSprites - thumb_func_end sub_8083C78 - - thumb_func_start PokecenterHealEffect_3 -PokecenterHealEffect_3: @ 8083CA0 - push {lr} - ldr r2, _08083CD8 @ =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _08083CD2 - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x19 - bl FieldEffectActiveListRemove - ldr r0, _08083CDC @ =sub_8083BD0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08083CD2: - pop {r0} - bx r0 - .align 2, 0 -_08083CD8: .4byte gSprites -_08083CDC: .4byte sub_8083BD0 - thumb_func_end PokecenterHealEffect_3 - - thumb_func_start sub_8083CE0 -sub_8083CE0: @ 8083CE0 - push {r4,lr} - bl CalculatePlayerPartyCount - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08083D14 @ =sub_8083D1C - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08083D18 @ =gTasks - adds r1, r0 - strh r4, [r1, 0xA] - movs r0, 0x75 - strh r0, [r1, 0xC] - movs r0, 0x3C - strh r0, [r1, 0xE] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08083D14: .4byte sub_8083D1C -_08083D18: .4byte gTasks - thumb_func_end sub_8083CE0 - - thumb_func_start sub_8083D1C -sub_8083D1C: @ 8083D1C - push {lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08083D44 @ =gTasks - adds r1, r0 - ldr r2, _08083D48 @ =gUnknown_83CBFE0 - movs r3, 0x8 - ldrsh r0, [r1, r3] - lsls r0, 2 - adds r0, r2 - ldr r2, [r0] - adds r0, r1, 0 - bl _call_via_r2 - pop {r0} - bx r0 - .align 2, 0 -_08083D44: .4byte gTasks -_08083D48: .4byte gUnknown_83CBFE0 - thumb_func_end sub_8083D1C - - thumb_func_start HallOfFameRecordEffect_0 -HallOfFameRecordEffect_0: @ 8083D4C - push {r4,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r1, 0xA - ldrsh r0, [r4, r1] - movs r2, 0xC - ldrsh r1, [r4, r2] - movs r3, 0xE - ldrsh r2, [r4, r3] - movs r3, 0 - bl sub_8083E14 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x14] - pop {r4} - pop {r0} - bx r0 - thumb_func_end HallOfFameRecordEffect_0 - - thumb_func_start sub_8083D74 -sub_8083D74: @ 8083D74 - push {r4,lr} - adds r4, r0, 0 - ldr r2, _08083DA8 @ =gSprites - movs r0, 0x14 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x1 - ble _08083DA2 - movs r0, 0x78 - movs r1, 0x19 - bl sub_808428C - ldrh r0, [r4, 0x26] - adds r0, 0x1 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08083DA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083DA8: .4byte gSprites - thumb_func_end sub_8083D74 - - thumb_func_start sub_8083DAC -sub_8083DAC: @ 8083DAC - push {lr} - adds r3, r0, 0 - ldr r2, _08083DD0 @ =gSprites - movs r0, 0x14 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _08083DCC - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08083DCC: - pop {r0} - bx r0 - .align 2, 0 -_08083DD0: .4byte gSprites - thumb_func_end sub_8083DAC - - thumb_func_start sub_8083DD4 -sub_8083DD4: @ 8083DD4 - push {lr} - ldr r2, _08083E0C @ =gSprites - movs r3, 0x14 - ldrsh r1, [r0, r3] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r1, r0, r2 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x6 - ble _08083E06 - adds r0, r1, 0 - bl DestroySprite - movs r0, 0x3E - bl FieldEffectActiveListRemove - ldr r0, _08083E10 @ =sub_8083D1C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08083E06: - pop {r0} - bx r0 - .align 2, 0 -_08083E0C: .4byte gSprites -_08083E10: .4byte sub_8083D1C - thumb_func_end sub_8083DD4 - - thumb_func_start sub_8083E14 -sub_8083E14: @ 8083E14 - push {r4-r6,lr} - mov r6, r8 - push {r6} - mov r8, r0 - adds r4, r1, 0 - adds r5, r2, 0 - adds r6, r3, 0 - lsls r0, 16 - lsrs r0, 16 - mov r8, r0 - lsls r4, 16 - lsrs r4, 16 - lsls r5, 16 - lsrs r5, 16 - lsls r6, 16 - lsrs r6, 16 - ldr r0, _08083E68 @ =sub_8083E70 - bl CreateInvisibleSprite - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r2, _08083E6C @ =gSprites - adds r1, r2 - strh r4, [r1, 0x24] - strh r5, [r1, 0x26] - adds r3, r1, 0 - adds r3, 0x43 - movs r2, 0xFF - strb r2, [r3] - strh r6, [r1, 0x38] - mov r2, r8 - strh r2, [r1, 0x3A] - strh r0, [r1, 0x3C] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08083E68: .4byte sub_8083E70 -_08083E6C: .4byte gSprites - thumb_func_end sub_8083E14 - - thumb_func_start sub_8083E70 -sub_8083E70: @ 8083E70 - push {lr} - ldr r2, _08083E88 @ =gUnknown_83CBFF0 - movs r3, 0x2E - ldrsh r1, [r0, r3] - lsls r1, 2 - adds r1, r2 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08083E88: .4byte gUnknown_83CBFF0 - thumb_func_end sub_8083E70 - - thumb_func_start PokeballGlowEffect_0 -PokeballGlowEffect_0: @ 8083E8C - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0x30] - movs r2, 0x30 - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08083EA4 - subs r0, r1, 0x1 - strh r0, [r4, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _08083F00 -_08083EA4: - movs r0, 0x19 - strh r0, [r4, 0x30] - ldr r0, _08083F18 @ =gUnknown_83CBF88 - ldr r1, _08083F1C @ =gUnknown_83CC010 - movs r2, 0x32 - ldrsh r3, [r4, r2] - lsls r3, 2 - adds r3, r1 - ldrh r1, [r4, 0x24] - ldrh r2, [r3] - adds r1, r2 - lsls r1, 16 - asrs r1, 16 - ldrh r2, [r4, 0x26] - ldrh r3, [r3, 0x2] - adds r2, r3 - lsls r2, 16 - asrs r2, 16 - movs r3, 0xFF - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08083F20 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r2 - movs r2, 0x8 - orrs r0, r2 - strb r0, [r1, 0x5] - ldrh r0, [r4, 0x3C] - strh r0, [r1, 0x2E] - ldrh r0, [r4, 0x32] - adds r0, 0x1 - strh r0, [r4, 0x32] - ldrh r0, [r4, 0x3A] - subs r0, 0x1 - strh r0, [r4, 0x3A] - movs r0, 0x17 - bl PlaySE -_08083F00: - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08083F12 - movs r0, 0x20 - strh r0, [r4, 0x30] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_08083F12: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08083F18: .4byte gUnknown_83CBF88 -_08083F1C: .4byte gUnknown_83CC010 -_08083F20: .4byte gSprites - thumb_func_end PokeballGlowEffect_0 - - thumb_func_start PokeballGlowEffect_1 -PokeballGlowEffect_1: @ 8083F24 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - asrs r2, r0, 16 - cmp r2, 0 - bne _08083F54 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] - movs r0, 0x8 - strh r0, [r1, 0x30] - strh r2, [r1, 0x32] - strh r2, [r1, 0x34] - movs r2, 0x38 - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _08083F54 - movs r0, 0x80 - lsls r0, 1 - bl PlayFanfare -_08083F54: - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_1 - - thumb_func_start PokeballGlowEffect_2 -PokeballGlowEffect_2: @ 8083F58 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r7, r0, 0 - ldrh r0, [r7, 0x30] - subs r0, 0x1 - strh r0, [r7, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _08083F88 - movs r0, 0x8 - strh r0, [r7, 0x30] - ldrh r0, [r7, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r7, 0x32] - cmp r0, 0 - bne _08083F88 - ldrh r0, [r7, 0x34] - adds r0, 0x1 - strh r0, [r7, 0x34] -_08083F88: - ldrh r4, [r7, 0x32] - adds r4, 0x3 - movs r0, 0x3 - mov r8, r0 - mov r1, r8 - ands r4, r1 - ldr r3, _08084080 @ =0x00001007 - mov r10, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r6, _08084084 @ =gUnknown_83CC028 - adds r1, r4, r6 - ldrb r1, [r1] - ldr r5, _08084088 @ =gUnknown_83CC02C - adds r2, r4, r5 - ldrb r2, [r2] - ldr r3, _0808408C @ =gUnknown_83CC030 - mov r9, r3 - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x2 - mov r0, r8 - ands r4, r0 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - adds r4, 0x1 - mov r3, r8 - ands r4, r3 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r4, r6 - ldrb r1, [r1] - adds r2, r4, r5 - ldrb r2, [r2] - add r4, r9 - ldrb r3, [r4] - bl MultiplyInvertedPaletteRGBComponents - ldrh r4, [r7, 0x32] - lsls r4, 24 - lsrs r4, 24 - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r3, _08084090 @ =0x01050000 - adds r0, r3 - lsrs r0, 16 - adds r6, r4, r6 - ldrb r6, [r6] - adds r5, r4, r5 - ldrb r5, [r5] - add r4, r9 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r10 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08084094 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - movs r3, 0x34 - ldrsh r0, [r7, r3] - cmp r0, 0x2 - ble _08084072 - ldrh r0, [r7, 0x2E] - adds r0, 0x1 - movs r1, 0 - strh r0, [r7, 0x2E] - movs r0, 0x8 - strh r0, [r7, 0x30] - strh r1, [r7, 0x32] -_08084072: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08084080: .4byte 0x00001007 -_08084084: .4byte gUnknown_83CC028 -_08084088: .4byte gUnknown_83CC02C -_0808408C: .4byte gUnknown_83CC030 -_08084090: .4byte 0x01050000 -_08084094: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_2 - - thumb_func_start PokeballGlowEffect_3 -PokeballGlowEffect_3: @ 8084098 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r2, r0, 0 - ldrh r0, [r2, 0x30] - subs r0, 0x1 - strh r0, [r2, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080840C8 - movs r0, 0x8 - strh r0, [r2, 0x30] - ldrh r0, [r2, 0x32] - adds r0, 0x1 - movs r1, 0x3 - ands r0, r1 - strh r0, [r2, 0x32] - cmp r0, 0x3 - bne _080840C8 - ldrh r0, [r2, 0x2E] - adds r0, 0x1 - strh r0, [r2, 0x2E] - movs r0, 0x1E - strh r0, [r2, 0x30] -_080840C8: - ldrh r4, [r2, 0x32] - lsls r4, 24 - lsrs r4, 24 - ldr r0, _08084174 @ =0x00001007 - mov r8, r0 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x84 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - ldr r1, _08084178 @ =gUnknown_83CC028 - adds r1, r4, r1 - ldrb r6, [r1] - ldr r1, _0808417C @ =gUnknown_83CC02C - adds r1, r4, r1 - ldrb r5, [r1] - ldr r1, _08084180 @ =gUnknown_83CC030 - adds r4, r1 - ldrb r4, [r4] - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x83 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - movs r1, 0x81 - lsls r1, 17 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08084184 @ =0x01050000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - mov r0, r8 - bl IndexOfSpritePaletteTag - lsls r0, 24 - lsrs r0, 4 - ldr r1, _08084188 @ =0x01030000 - adds r0, r1 - lsrs r0, 16 - adds r1, r6, 0 - adds r2, r5, 0 - adds r3, r4, 0 - bl MultiplyInvertedPaletteRGBComponents - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08084174: .4byte 0x00001007 -_08084178: .4byte gUnknown_83CC028 -_0808417C: .4byte gUnknown_83CC02C -_08084180: .4byte gUnknown_83CC030 -_08084184: .4byte 0x01050000 -_08084188: .4byte 0x01030000 - thumb_func_end PokeballGlowEffect_3 - - thumb_func_start PokeballGlowEffect_4 -PokeballGlowEffect_4: @ 808418C - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _080841A2 - ldrh r0, [r1, 0x2E] - adds r0, 0x1 - strh r0, [r1, 0x2E] -_080841A2: - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_4 - - thumb_func_start PokeballGlowEffect_5 -PokeballGlowEffect_5: @ 80841A8 - ldrh r1, [r0, 0x2E] - adds r1, 0x1 - strh r1, [r0, 0x2E] - bx lr - thumb_func_end PokeballGlowEffect_5 - - thumb_func_start PokeballGlowEffect_6 -PokeballGlowEffect_6: @ 80841B0 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x38 - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _080841C6 - bl IsFanfareTaskInactive - lsls r0, 24 - cmp r0, 0 - beq _080841CC -_080841C6: - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] -_080841CC: - pop {r4} - pop {r0} - bx r0 - thumb_func_end PokeballGlowEffect_6 - - thumb_func_start nullsub_50 -nullsub_50: @ 80841D4 - bx lr - thumb_func_end nullsub_50 - - thumb_func_start SpriteCB_PokeballGlow -SpriteCB_PokeballGlow: @ 80841D8 - push {lr} - adds r3, r0, 0 - ldr r2, _080841FC @ =gSprites - movs r0, 0x2E - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x2E - ldrsh r0, [r0, r1] - cmp r0, 0x4 - ble _080841F8 - adds r0, r3, 0 - bl FieldEffectFreeGraphicsResources -_080841F8: - pop {r0} - bx r0 - .align 2, 0 -_080841FC: .4byte gSprites - thumb_func_end SpriteCB_PokeballGlow - - thumb_func_start PokecenterHealEffectHelper -PokecenterHealEffectHelper: @ 8084200 - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _08084244 @ =gUnknown_83CBFA0 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0 - bl CreateSpriteAtEnd - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _08084248 @ =gSprites - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - movs r3, 0x8 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2] - pop {r1} - bx r1 - .align 2, 0 -_08084244: .4byte gUnknown_83CBFA0 -_08084248: .4byte gSprites - thumb_func_end PokecenterHealEffectHelper - - thumb_func_start sub_808424C -sub_808424C: @ 808424C - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08084270 - movs r0, 0 - strh r0, [r4, 0x2E] - adds r2, r4, 0 - adds r2, 0x3E - ldrb r1, [r2] - subs r0, 0x5 - ands r0, r1 - strb r0, [r2] - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAnim -_08084270: - adds r0, r4, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _08084284 - adds r0, r4, 0 - bl FieldEffectFreeGraphicsResources -_08084284: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_808424C - - thumb_func_start sub_808428C -sub_808428C: @ 808428C - push {lr} - adds r3, r0, 0 - adds r2, r1, 0 - ldr r0, _080842A8 @ =gUnknown_83CBFB8 - lsls r3, 16 - asrs r3, 16 - lsls r2, 16 - asrs r2, 16 - adds r1, r3, 0 - movs r3, 0 - bl CreateSpriteAtEnd - pop {r0} - bx r0 - .align 2, 0 -_080842A8: .4byte gUnknown_83CBFB8 - thumb_func_end sub_808428C - - thumb_func_start sub_80842AC -sub_80842AC: @ 80842AC - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080842C2 - adds r0, r2, 0 - bl FieldEffectFreeGraphicsResources -_080842C2: - pop {r0} - bx r0 - thumb_func_end sub_80842AC - - thumb_func_start sub_80842C8 -sub_80842C8: @ 80842C8 - push {lr} - ldr r0, _080842DC @ =CB2_ReturnToField - bl SetMainCallback2 - ldr r1, _080842E0 @ =gFieldCallback - ldr r0, _080842E4 @ =mapldr_080842E8 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_080842DC: .4byte CB2_ReturnToField -_080842E0: .4byte gFieldCallback -_080842E4: .4byte mapldr_080842E8 - thumb_func_end sub_80842C8 - - thumb_func_start mapldr_080842E8 -mapldr_080842E8: @ 80842E8 - push {lr} - bl sub_807DC00 - ldr r0, _08084308 @ =task00_8084310 - movs r1, 0 - bl CreateTask - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r1, _0808430C @ =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08084308: .4byte task00_8084310 -_0808430C: .4byte gFieldCallback - thumb_func_end mapldr_080842E8 - - thumb_func_start task00_8084310 -task00_8084310: @ 8084310 - push {r4-r6,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0808437C @ =gTasks - adds r4, r0, r1 - movs r0, 0x8 - ldrsh r6, [r4, r0] - cmp r6, 0 - bne _08084350 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _08084376 - bl GetCursorSelectionMonId - ldr r1, _08084380 @ =gFieldEffectArguments - lsls r0, 24 - lsrs r0, 24 - str r0, [r1] - cmp r0, 0x5 - ble _08084344 - str r6, [r1] -_08084344: - movs r0, 0x1F - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08084350: - movs r0, 0x1F - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08084376 - bl sub_8054CA0 - bl WarpIntoMap - ldr r0, _08084384 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r1, _08084388 @ =gFieldCallback - ldr r0, _0808438C @ =mapldr_08084390 - str r0, [r1] - adds r0, r5, 0 - bl DestroyTask -_08084376: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808437C: .4byte gTasks -_08084380: .4byte gFieldEffectArguments -_08084384: .4byte CB2_LoadMap -_08084388: .4byte gFieldCallback -_0808438C: .4byte mapldr_08084390 - thumb_func_end task00_8084310 - - thumb_func_start mapldr_08084390 -mapldr_08084390: @ 8084390 - push {r4,lr} - bl Overworld_PlaySpecialMapMusic - bl sub_807DC00 - ldr r0, _080843E8 @ =c3_080843F8 - movs r1, 0 - bl CreateTask - ldr r4, _080843EC @ =gObjectEvents - ldr r3, _080843F0 @ =gPlayerAvatar - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldrb r1, [r3] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080843D2 - ldrb r1, [r3, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x3 - bl ObjectEventTurn -_080843D2: - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r1, _080843F4 @ =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080843E8: .4byte c3_080843F8 -_080843EC: .4byte gObjectEvents -_080843F0: .4byte gPlayerAvatar -_080843F4: .4byte gFieldCallback - thumb_func_end mapldr_08084390 - - thumb_func_start c3_080843F8 -c3_080843F8: @ 80843F8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - adds r5, r0, 0 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _0808444C @ =gTasks - adds r4, r0, r1 - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808442A - ldr r0, _08084450 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08084444 - movs r0, 0x20 - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0808442A: - movs r0, 0x20 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08084444 - bl ScriptContext2_Disable - bl UnfreezeObjectEvents - adds r0, r5, 0 - bl DestroyTask -_08084444: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808444C: .4byte gTasks -_08084450: .4byte gPaletteFade - thumb_func_end c3_080843F8 - - thumb_func_start sub_8084454 -sub_8084454: @ 8084454 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_8111CF0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r0, _0808447C @ =sub_8084484 - movs r1, 0 - bl CreateTask - ldr r1, _08084480 @ =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_0808447C: .4byte sub_8084484 -_08084480: .4byte gFieldCallback - thumb_func_end sub_8084454 - - thumb_func_start sub_8084484 -sub_8084484: @ 8084484 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080844B4 @ =gTasks - adds r4, r1, r0 - ldr r5, _080844B8 @ =gUnknown_83CC034 -_08084496: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08084496 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080844B4: .4byte gTasks -_080844B8: .4byte gUnknown_83CC034 - thumb_func_end sub_8084484 - - thumb_func_start sub_80844BC -sub_80844BC: @ 80844BC - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - mov r9, r0 - ldr r6, _08084558 @ =gPlayerAvatar - ldrb r0, [r6, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, _0808455C @ =gObjectEvents - mov r8, r0 - add r5, r8 - ldrb r0, [r6, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084560 @ =gSprites - adds r4, r0 - bl CameraObjectReset2 - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - add r0, r8 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl ObjectEventSetHeldMovement - adds r3, r4, 0 - adds r3, 0x42 - ldrb r0, [r3] - lsrs r0, 6 - mov r1, r9 - strh r0, [r1, 0x10] - ldrb r0, [r5, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r5, 0x3] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - ldrb r1, [r3] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r3] - mov r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - movs r0, 0x1 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_08084558: .4byte gPlayerAvatar -_0808455C: .4byte gObjectEvents -_08084560: .4byte gSprites - thumb_func_end sub_80844BC - - thumb_func_start sub_8084564 -sub_8084564: @ 8084564 - push {r4,lr} - adds r4, r0, 0 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _08084578 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08084578: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8084564 - - thumb_func_start sub_8084580 -sub_8084580: @ 8084580 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _080845E4 @ =gPlayerAvatar - ldrb r0, [r6, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _080845E8 @ =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, _080845EC @ =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - movs r1, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r5, 0xA] - strh r1, [r5, 0xC] - ldr r2, _080845F0 @ =gObjectEvents - ldrb r0, [r6, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r2, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r2 - strb r0, [r1, 0x1] - movs r0, 0x25 - bl PlaySE - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080845E4: .4byte gPlayerAvatar -_080845E8: .4byte gSprites -_080845EC: .4byte gSpriteCoordOffsetY -_080845F0: .4byte gObjectEvents - thumb_func_end sub_8084580 - - thumb_func_start sub_80845F4 -sub_80845F4: @ 80845F4 - push {r4-r6,lr} - adds r4, r0, 0 - ldr r2, _080846A0 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080846A4 @ =gObjectEvents - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080846A8 @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - ldrh r2, [r4, 0xA] - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0x7 - bgt _08084636 - ldrh r1, [r4, 0xC] - adds r0, r2, r1 - strh r0, [r4, 0xC] - movs r1, 0xF - ands r0, r1 - cmp r0, 0 - beq _08084636 - lsls r0, r2, 1 - strh r0, [r4, 0xA] -_08084636: - ldrh r2, [r4, 0xE] - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08084674 - movs r0, 0x26 - ldrsh r1, [r5, r0] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - blt _08084674 - adds r0, r2, 0x1 - strh r0, [r4, 0xE] - ldrb r1, [r6, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x3] - ldrb r1, [r4, 0x10] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] -_08084674: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _08084698 - movs r0, 0xCF - bl PlaySE - ldrb r0, [r6] - movs r1, 0x8 - orrs r0, r1 - movs r1, 0x20 - orrs r0, r1 - strb r0, [r6] - movs r0, 0 - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08084698: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080846A0: .4byte gPlayerAvatar -_080846A4: .4byte gObjectEvents -_080846A8: .4byte gSprites - thumb_func_end sub_80845F4 - - thumb_func_start sub_80846AC -sub_80846AC: @ 80846AC - push {lr} - ldrh r1, [r0, 0x8] - adds r1, 0x1 - movs r2, 0 - strh r1, [r0, 0x8] - movs r1, 0x4 - strh r1, [r0, 0xA] - strh r2, [r0, 0xC] - movs r0, 0 - bl SetCameraPanningCallback - movs r0, 0x1 - pop {r1} - bx r1 - thumb_func_end sub_80846AC - - thumb_func_start sub_80846C8 -sub_80846C8: @ 80846C8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x3 - ands r0, r1 - cmp r0, 0 - bne _080846F0 - lsls r0, r2, 16 - asrs r0, 17 - strh r0, [r4, 0xA] -_080846F0: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080846FE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080846FE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80846C8 - - thumb_func_start sub_8084708 -sub_8084708: @ 8084708 - push {r4,lr} - sub sp, 0x4 - ldr r1, _08084778 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeObjectEvents - bl InstallCameraPanAheadCallback - 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 - bl sub_8055B38 - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08084760 - ldr r0, _0808477C @ =0x00004001 - movs r1, 0x1 - bl VarSet - movs r0, 0x8 - bl SetPlayerAvatarTransitionFlags - movs r0, 0x16 - bl HelpSystem_SetSomeVariable2 -_08084760: - ldr r0, _08084780 @ =sub_8084484 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084778: .4byte gPlayerAvatar -_0808477C: .4byte 0x00004001 -_08084780: .4byte sub_8084484 - thumb_func_end sub_8084708 - - thumb_func_start sub_8084784 -sub_8084784: @ 8084784 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080847B8 @ =sub_80847C0 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080847BC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0 - strh r0, [r1, 0xA] - cmp r4, 0x6A - bne _080847B0 - movs r0, 0x1 - strh r0, [r1, 0xA] -_080847B0: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080847B8: .4byte sub_80847C0 -_080847BC: .4byte gTasks - thumb_func_end sub_8084784 - - thumb_func_start sub_80847C0 -sub_80847C0: @ 80847C0 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _080847F0 @ =gTasks - adds r4, r1, r0 - ldr r5, _080847F4 @ =gUnknown_83CC050 -_080847D2: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _080847D2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080847F0: .4byte gTasks -_080847F4: .4byte gUnknown_83CC050 - thumb_func_end sub_80847C0 - - thumb_func_start sub_80847F8 -sub_80847F8: @ 80847F8 - push {r4,lr} - adds r4, r0, 0 - bl FreezeObjectEvents - bl CameraObjectReset2 - ldrb r0, [r4, 0xA] - bl sub_809C448 - movs r0, 0x1 - bl sub_81128BC - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80847F8 - - thumb_func_start sub_8084820 -sub_8084820: @ 8084820 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08084888 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808488C @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _0808484A - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _0808487E -_0808484A: - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - movs r1, 0 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] - strh r1, [r5, 0xE] - ldrb r0, [r5, 0xA] - cmp r0, 0 - bne _08084878 - movs r0, 0x4 - strh r0, [r5, 0x8] -_08084878: - movs r0, 0x49 - bl PlaySE -_0808487E: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084888: .4byte gPlayerAvatar -_0808488C: .4byte gObjectEvents - thumb_func_end sub_8084820 - - thumb_func_start sub_8084890 -sub_8084890: @ 8084890 - push {r4,lr} - adds r4, r0, 0 - bl sub_80848F8 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080848AA - bl sub_8084990 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080848AA: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8084890 - - thumb_func_start sub_80848B4 -sub_80848B4: @ 80848B4 - push {lr} - bl sub_80848F8 - bl sub_80849A0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80848B4 - - thumb_func_start sub_80848C4 -sub_80848C4: @ 80848C4 - push {r4,lr} - adds r4, r0, 0 - bl sub_8084944 - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x3 - ble _080848DE - bl sub_8084990 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080848DE: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_80848C4 - - thumb_func_start sub_80848E8 -sub_80848E8: @ 80848E8 - push {lr} - bl sub_8084944 - bl sub_80849A0 - movs r0, 0 - pop {r1} - bx r1 - thumb_func_end sub_80848E8 - - thumb_func_start sub_80848F8 -sub_80848F8: @ 80848F8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _0808493C @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084940 @ =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08084936 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_08084936: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808493C: .4byte gPlayerAvatar -_08084940: .4byte gSprites - thumb_func_end sub_80848F8 - - thumb_func_start sub_8084944 -sub_8084944: @ 8084944 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08084988 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0808498C @ =gSprites - adds r4, r0 - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xC - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0xE] - adds r0, 0x1 - strh r0, [r5, 0xE] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08084982 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] -_08084982: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08084988: .4byte gPlayerAvatar -_0808498C: .4byte gSprites - thumb_func_end sub_8084944 - - thumb_func_start sub_8084990 -sub_8084990: @ 8084990 - push {lr} - bl sub_8055F88 - bl sub_807DC18 - pop {r0} - bx r0 - thumb_func_end sub_8084990 - - thumb_func_start sub_80849A0 -sub_80849A0: @ 80849A0 - push {lr} - ldr r0, _080849E0 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080849DC - bl BGMusicStopped - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080849DC - bl sub_809C460 - bl WarpIntoMap - ldr r1, _080849E4 @ =gFieldCallback - ldr r0, _080849E8 @ =sub_80849F4 - str r0, [r1] - ldr r0, _080849EC @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _080849F0 @ =sub_80847C0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080849DC: - pop {r0} - bx r0 - .align 2, 0 -_080849E0: .4byte gPaletteFade -_080849E4: .4byte gFieldCallback -_080849E8: .4byte sub_80849F4 -_080849EC: .4byte CB2_LoadMap -_080849F0: .4byte sub_80847C0 - thumb_func_end sub_80849A0 - - thumb_func_start sub_80849F4 -sub_80849F4: @ 80849F4 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_8111CF0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r0, _08084A1C @ =sub_8084A24 - movs r1, 0 - bl CreateTask - ldr r1, _08084A20 @ =gFieldCallback - movs r0, 0 - str r0, [r1] - pop {r0} - bx r0 - .align 2, 0 -_08084A1C: .4byte sub_8084A24 -_08084A20: .4byte gFieldCallback - thumb_func_end sub_80849F4 - - thumb_func_start sub_8084A24 -sub_8084A24: @ 8084A24 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - ldr r0, _08084A54 @ =gTasks - adds r4, r1, r0 - ldr r5, _08084A58 @ =gUnknown_83CC068 -_08084A36: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08084A36 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08084A54: .4byte gTasks -_08084A58: .4byte gUnknown_83CC068 - thumb_func_end sub_8084A24 - - thumb_func_start sub_8084A5C -sub_8084A5C: @ 8084A5C - push {r4,r5,lr} - sub sp, 0x4 - adds r5, r0, 0 - bl CameraObjectReset2 - ldr r0, _08084ABC @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084AC0 @ =gObjectEvents - adds r4, r0 - movs r0, 0x4 - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - 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 r1, r0, 24 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0x10 - strh r0, [r5, 0xA] - cmp r1, 0x6B - bne _08084AC4 - movs r1, 0x1 - movs r0, 0x3 - strh r0, [r5, 0x8] - b _08084AC6 - .align 2, 0 -_08084ABC: .4byte gPlayerAvatar -_08084AC0: .4byte gObjectEvents -_08084AC4: - movs r1, 0 -_08084AC6: - adds r0, r1, 0 - bl sub_809C448 - movs r0, 0x1 - add sp, 0x4 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8084A5C - - thumb_func_start sub_8084AD8 -sub_8084AD8: @ 8084AD8 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08084B10 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084B14 @ =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x84 - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x94 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084B10: .4byte gPlayerAvatar -_08084B14: .4byte gSprites - thumb_func_end sub_8084AD8 - - thumb_func_start sub_8084B18 -sub_8084B18: @ 8084B18 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _08084B70 @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08084B74 @ =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x84 - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x94 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08084B56 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_08084B56: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08084B66 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - movs r0, 0x5 - strh r0, [r4, 0x8] -_08084B66: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084B70: .4byte gPlayerAvatar -_08084B74: .4byte gSprites - thumb_func_end sub_8084B18 - - thumb_func_start sub_8084B78 -sub_8084B78: @ 8084B78 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08084BB0 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08084BB4 @ =gSprites - adds r4, r0 - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x7C - bl Cos - strh r0, [r4, 0x24] - movs r0, 0xA - ldrsh r1, [r5, r0] - movs r0, 0x76 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084BB0: .4byte gPlayerAvatar -_08084BB4: .4byte gSprites - thumb_func_end sub_8084B78 - - thumb_func_start sub_8084BB8 -sub_8084BB8: @ 8084BB8 - push {r4,r5,lr} - adds r4, r0, 0 - ldr r0, _08084C10 @ =gPlayerAvatar - ldrb r1, [r0, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08084C14 @ =gSprites - adds r5, r0, r1 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x7C - bl Cos - strh r0, [r5, 0x24] - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0x76 - bl Sin - strh r0, [r5, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08084BF6 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] -_08084BF6: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08084C08 - strh r0, [r5, 0x24] - strh r0, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08084C08: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084C10: .4byte gPlayerAvatar -_08084C14: .4byte gSprites - thumb_func_end sub_8084BB8 - - thumb_func_start sub_8084C18 -sub_8084C18: @ 8084C18 - push {r4,lr} - adds r4, r0, 0 - bl sub_809C474 - lsls r0, 24 - cmp r0, 0 - bne _08084C34 - bl sub_809C460 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08084C36 -_08084C34: - movs r0, 0 -_08084C36: - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8084C18 - - thumb_func_start sub_8084C3C -sub_8084C3C: @ 8084C3C - push {r4,lr} - ldr r0, _08084C94 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08084C98 @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08084C8A - bl CameraObjectReset1 - bl ScriptContext2_Disable - bl UnfreezeObjectEvents - movs r0, 0x4 - bl GetWalkNormalMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldr r0, _08084C9C @ =sub_8084A24 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2 - bl sub_81128BC -_08084C8A: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084C94: .4byte gPlayerAvatar -_08084C98: .4byte gObjectEvents -_08084C9C: .4byte sub_8084A24 - thumb_func_end sub_8084C3C - - thumb_func_start oei_waterfall -oei_waterfall: @ 8084CA0 - push {r4,lr} - ldr r4, _08084CCC @ =sub_8084CD8 - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08084CD0 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r2, _08084CD4 @ =gFieldEffectArguments - ldr r2, [r2] - strh r2, [r1, 0xA] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084CCC: .4byte sub_8084CD8 -_08084CD0: .4byte gTasks -_08084CD4: .4byte gFieldEffectArguments - thumb_func_end oei_waterfall - - thumb_func_start sub_8084CD8 -sub_8084CD8: @ 8084CD8 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08084D14 @ =gUnknown_83CC084 - ldr r2, _08084D18 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08084CEA: - movs r0, 0x8 - ldrsh r2, [r4, r0] - lsls r2, 2 - adds r2, r5 - ldr r0, _08084D1C @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08084D20 @ =gObjectEvents - adds r1, r0 - ldr r2, [r2] - adds r0, r4, 0 - bl _call_via_r2 - lsls r0, 24 - cmp r0, 0 - bne _08084CEA - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08084D14: .4byte gUnknown_83CC084 -_08084D18: .4byte gTasks -_08084D1C: .4byte gPlayerAvatar -_08084D20: .4byte gObjectEvents - thumb_func_end sub_8084CD8 - - thumb_func_start sub_8084D24 -sub_8084D24: @ 8084D24 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _08084D40 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084D40: .4byte gPlayerAvatar - thumb_func_end sub_8084D24 - - thumb_func_start waterfall_1_do_anim_probably -waterfall_1_do_anim_probably: @ 8084D44 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl ScriptContext2_Enable - adds r0, r5, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - bne _08084D74 - adds r0, r5, 0 - bl ObjectEventClearHeldMovementIfFinished - ldr r1, _08084D7C @ =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08084D74: - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084D7C: .4byte gFieldEffectArguments - thumb_func_end waterfall_1_do_anim_probably - - thumb_func_start waterfall_2_wait_anim_finish_probably -waterfall_2_wait_anim_finish_probably: @ 8084D80 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08084D9A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - b _08084D9C -_08084D9A: - movs r0, 0 -_08084D9C: - pop {r4} - pop {r1} - bx r1 - thumb_func_end waterfall_2_wait_anim_finish_probably - - thumb_func_start sub_8084DA4 -sub_8084DA4: @ 8084DA4 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - movs r0, 0x2 - bl sub_8063F2C - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8084DA4 - - thumb_func_start sub_8084DCC -sub_8084DCC: @ 8084DCC - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - bne _08084DE2 - movs r0, 0 - b _08084E1E -_08084DE2: - ldrb r0, [r4, 0x1E] - bl MetatileBehavior_IsWaterfall - lsls r0, 24 - lsrs r4, r0, 24 - cmp r4, 0 - bne _08084E18 - bl ScriptContext2_Disable - ldr r0, _08084E10 @ =gPlayerAvatar - strb r4, [r0, 0x6] - ldr r0, _08084E14 @ =sub_8084CD8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2B - bl FieldEffectActiveListRemove - movs r0, 0 - b _08084E1E - .align 2, 0 -_08084E10: .4byte gPlayerAvatar -_08084E14: .4byte sub_8084CD8 -_08084E18: - movs r0, 0x3 - strh r0, [r5, 0x8] - movs r0, 0x1 -_08084E1E: - pop {r4,r5} - pop {r1} - bx r1 - thumb_func_end sub_8084DCC - - thumb_func_start FldEff_UseDive -FldEff_UseDive: @ 8084E24 - push {r4,lr} - ldr r4, _08084E54 @ =sub_8084E60 - adds r0, r4, 0 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08084E58 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r3, _08084E5C @ =gFieldEffectArguments - ldr r2, [r3] - strh r2, [r1, 0x26] - ldr r2, [r3, 0x4] - strh r2, [r1, 0x24] - bl _call_via_r4 - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084E54: .4byte sub_8084E60 -_08084E58: .4byte gTasks -_08084E5C: .4byte gFieldEffectArguments - thumb_func_end FldEff_UseDive - - thumb_func_start sub_8084E60 -sub_8084E60: @ 8084E60 - push {r4,r5,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r5, _08084E90 @ =gUnknown_83CC098 - ldr r2, _08084E94 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08084E72: - movs r1, 0x8 - ldrsh r0, [r4, r1] - lsls r0, 2 - adds r0, r5 - ldr r1, [r0] - adds r0, r4, 0 - bl _call_via_r1 - lsls r0, 24 - cmp r0, 0 - bne _08084E72 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08084E90: .4byte gUnknown_83CC098 -_08084E94: .4byte gTasks - thumb_func_end sub_8084E60 - - thumb_func_start dive_1_lock -dive_1_lock: @ 8084E98 - ldr r2, _08084EA8 @ =gPlayerAvatar - movs r1, 0x1 - strb r1, [r2, 0x6] - ldrh r1, [r0, 0x8] - adds r1, 0x1 - strh r1, [r0, 0x8] - movs r0, 0 - bx lr - .align 2, 0 -_08084EA8: .4byte gPlayerAvatar - thumb_func_end dive_1_lock - - thumb_func_start dive_2_unknown -dive_2_unknown: @ 8084EAC - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - ldr r1, _08084ED0 @ =gFieldEffectArguments - movs r2, 0x26 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08084ED0: .4byte gFieldEffectArguments - thumb_func_end dive_2_unknown - - thumb_func_start dive_3_unknown -dive_3_unknown: @ 8084ED4 - push {lr} - sub sp, 0x8 - mov r1, sp - adds r1, 0x2 - mov r0, sp - bl PlayerGetDestCoords - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08084F18 - ldr r2, _08084F20 @ =gObjectEvents - ldr r0, _08084F24 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1E] - mov r0, sp - bl dive_warp - ldr r0, _08084F28 @ =sub_8084E60 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x2C - bl FieldEffectActiveListRemove -_08084F18: - movs r0, 0 - add sp, 0x8 - pop {r1} - bx r1 - .align 2, 0 -_08084F20: .4byte gObjectEvents -_08084F24: .4byte gPlayerAvatar -_08084F28: .4byte sub_8084E60 - thumb_func_end dive_3_unknown - - thumb_func_start sub_8084F2C -sub_8084F2C: @ 8084F2C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _08084F40 @ =sub_8084F44 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08084F40: .4byte sub_8084F44 - thumb_func_end sub_8084F2C - - thumb_func_start sub_8084F44 -sub_8084F44: @ 8084F44 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08084F8C @ =gUnknown_83CC0A4 - ldr r2, _08084F90 @ =gTasks - ldr r5, _08084F94 @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_08084F58: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08084F98 @ =gObjectEvents - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08084F9C @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _08084F58 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08084F8C: .4byte gUnknown_83CC0A4 -_08084F90: .4byte gTasks -_08084F94: .4byte gPlayerAvatar -_08084F98: .4byte gObjectEvents -_08084F9C: .4byte gSprites - thumb_func_end sub_8084F44 - - thumb_func_start sub_8084FA0 -sub_8084FA0: @ 8084FA0 - push {r4,r5,lr} - adds r4, r0, 0 - adds r5, r1, 0 - bl FreezeObjectEvents - bl CameraObjectReset2 - movs r0, 0 - bl SetCameraPanningCallback - ldr r0, _08084FD4 @ =gPlayerAvatar - movs r2, 0x1 - strb r2, [r0, 0x6] - ldrb r0, [r5, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x3] - strh r2, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08084FD4: .4byte gPlayerAvatar - thumb_func_end sub_8084FA0 - - thumb_func_start sub_8084FD8 -sub_8084FD8: @ 8084FD8 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r0, r0 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _08085004 - movs r0, 0 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08085004: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8084FD8 - - thumb_func_start sub_808500C -sub_808500C: @ 808500C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0 - strh r0, [r2, 0x26] - movs r0, 0x1 - strh r0, [r4, 0xE] - ldr r3, _08085054 @ =gFieldEffectArguments - movs r5, 0x10 - ldrsh r0, [r1, r5] - str r0, [r3] - movs r5, 0x12 - ldrsh r0, [r1, r5] - str r0, [r3, 0x4] - adds r0, r2, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r3, 0x8] - ldrb r0, [r2, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r3, 0xC] - movs r0, 0x32 - bl FieldEffectStart - movs r0, 0xAB - bl PlaySE - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08085054: .4byte gFieldEffectArguments - thumb_func_end sub_808500C - - thumb_func_start sub_8085058 -sub_8085058: @ 8085058 - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning - ldrh r0, [r4, 0xA] - negs r2, r0 - strh r2, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r1, r0, 0x1 - strh r1, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x11 - bgt _08085092 - movs r0, 0x1 - ands r1, r0 - cmp r1, 0 - bne _080850A4 - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x3 - bgt _080850A4 - lsls r0, r2, 1 - b _080850A2 -_08085092: - movs r0, 0x4 - ands r1, r0 - cmp r1, 0 - bne _080850A4 - lsls r0, r2, 16 - cmp r0, 0 - ble _080850A4 - asrs r0, 17 -_080850A2: - strh r0, [r4, 0xA] -_080850A4: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x6 - ble _080850F0 - adds r0, r5, 0 - adds r0, 0x29 - movs r1, 0 - ldrsb r1, [r0, r1] - lsls r2, r1, 17 - negs r2, r2 - movs r7, 0x26 - ldrsh r3, [r5, r7] - movs r7, 0x22 - ldrsh r0, [r5, r7] - adds r0, r1 - ldr r1, _080850E8 @ =gSpriteCoordOffsetY - movs r7, 0 - ldrsh r1, [r1, r7] - adds r0, r1 - asrs r2, 16 - adds r0, r2 - cmn r3, r0 - ble _080850EC - ldrh r0, [r5, 0x26] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x26] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _080850F0 - adds r0, r1, 0x1 - strh r0, [r4, 0xE] - b _080850F0 - .align 2, 0 -_080850E8: .4byte gSpriteCoordOffsetY -_080850EC: - movs r0, 0x1 - strh r0, [r4, 0x10] -_080850F0: - ldrh r2, [r4, 0x12] - movs r1, 0x12 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808512E - movs r7, 0x26 - ldrsh r1, [r5, r7] - movs r0, 0x10 - negs r0, r0 - cmp r1, r0 - bge _0808512E - adds r0, r2, 0x1 - strh r0, [r4, 0x12] - ldrb r0, [r6, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r6, 0x3] - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_0808512E: - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08085144 - movs r7, 0x10 - ldrsh r0, [r4, r7] - cmp r0, 0 - beq _08085144 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08085144: - movs r0, 0 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_8085058 - - thumb_func_start sub_808514C -sub_808514C: @ 808514C - push {r4,lr} - adds r4, r0, 0 - bl sub_8055F88 - bl sub_807DC18 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_808514C - - thumb_func_start sub_8085168 -sub_8085168: @ 8085168 - push {lr} - ldr r0, _080851A8 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _080851A0 - bl BGMusicStopped - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _080851A0 - bl WarpIntoMap - ldr r1, _080851AC @ =gFieldCallback - ldr r0, _080851B0 @ =mapldr_080851BC - str r0, [r1] - ldr r0, _080851B4 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _080851B8 @ =sub_8084F44 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080851A0: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_080851A8: .4byte gPaletteFade -_080851AC: .4byte gFieldCallback -_080851B0: .4byte mapldr_080851BC -_080851B4: .4byte CB2_LoadMap -_080851B8: .4byte sub_8084F44 - thumb_func_end sub_8085168 - - thumb_func_start mapldr_080851BC -mapldr_080851BC: @ 80851BC - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_8111CF0 - bl ScriptContext2_Enable - ldr r0, _080851E0 @ =gFieldCallback - movs r1, 0 - str r1, [r0] - ldr r0, _080851E4 @ =sub_80851E8 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080851E0: .4byte gFieldCallback -_080851E4: .4byte sub_80851E8 - thumb_func_end mapldr_080851BC - - thumb_func_start sub_80851E8 -sub_80851E8: @ 80851E8 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _08085230 @ =gUnknown_83CC0BC - ldr r2, _08085234 @ =gTasks - ldr r5, _08085238 @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080851FC: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _0808523C @ =gObjectEvents - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08085240 @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080851FC - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085230: .4byte gUnknown_83CC0BC -_08085234: .4byte gTasks -_08085238: .4byte gPlayerAvatar -_0808523C: .4byte gObjectEvents -_08085240: .4byte gSprites - thumb_func_end sub_80851E8 - - thumb_func_start sub_8085244 -sub_8085244: @ 8085244 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl CameraObjectReset2 - bl FreezeObjectEvents - ldr r1, _08085270 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_08085270: .4byte gPlayerAvatar - thumb_func_end sub_8085244 - - thumb_func_start sub_8085274 -sub_8085274: @ 8085274 - push {r4-r6,lr} - adds r4, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _080852B4 - ldr r1, _080852BC @ =gFieldEffectArguments - movs r2, 0x10 - ldrsh r0, [r5, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r5, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080852B4: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080852BC: .4byte gFieldEffectArguments - thumb_func_end sub_8085274 - - thumb_func_start sub_80852C0 -sub_80852C0: @ 80852C0 - push {r4,lr} - adds r2, r0, 0 - adds r4, r1, 0 - movs r0, 0xA - ldrsh r1, [r2, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085310 @ =gSprites - adds r0, r1 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x1 - bls _08085308 - ldrh r0, [r2, 0x8] - adds r0, 0x1 - strh r0, [r2, 0x8] - ldrb r1, [r4, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - bl CameraObjectReset1 - movs r0, 0xA8 - bl PlaySE - movs r0, 0x4 - bl GetJumpMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement -_08085308: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08085310: .4byte gSprites - thumb_func_end sub_80852C0 - - thumb_func_start sub_8085314 -sub_8085314: @ 8085314 - push {lr} - adds r0, r1, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _0808533E - ldr r1, _08085344 @ =gPlayerAvatar - movs r0, 0 - strb r0, [r1, 0x6] - bl ScriptContext2_Disable - bl UnfreezeObjectEvents - ldr r0, _08085348 @ =sub_80851E8 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0808533E: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08085344: .4byte gPlayerAvatar -_08085348: .4byte sub_80851E8 - thumb_func_end sub_8085314 - - thumb_func_start FldEff_LavaridgeGymWarp -FldEff_LavaridgeGymWarp: @ 808534C - push {r4,lr} - ldr r4, _080853A4 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080853A8 @ =gFieldEffectObjectTemplatePointers - adds r0, 0x84 - ldr r0, [r0] - 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 - ldr r1, _080853AC @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080853A4: .4byte gFieldEffectArguments -_080853A8: .4byte gFieldEffectObjectTemplatePointers -_080853AC: .4byte gSprites - thumb_func_end FldEff_LavaridgeGymWarp - - thumb_func_start sub_80853B0 -sub_80853B0: @ 80853B0 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _080853C8 - adds r0, r2, 0 - movs r1, 0x32 - bl FieldEffectStop -_080853C8: - pop {r0} - bx r0 - thumb_func_end sub_80853B0 - - thumb_func_start sub_80853CC -sub_80853CC: @ 80853CC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r0, _080853E0 @ =sub_80853E4 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_080853E0: .4byte sub_80853E4 - thumb_func_end sub_80853CC - - thumb_func_start sub_80853E4 -sub_80853E4: @ 80853E4 - push {r4-r6,lr} - lsls r0, 24 - lsrs r0, 24 - ldr r6, _0808542C @ =gUnknown_83CC0CC - ldr r2, _08085430 @ =gTasks - ldr r5, _08085434 @ =gPlayerAvatar - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r4, r1, r2 -_080853F8: - movs r0, 0x8 - ldrsh r3, [r4, r0] - lsls r3, 2 - adds r3, r6 - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - ldr r0, _08085438 @ =gObjectEvents - adds r1, r0 - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _0808543C @ =gSprites - adds r2, r0 - ldr r3, [r3] - adds r0, r4, 0 - bl _call_via_r3 - lsls r0, 24 - cmp r0, 0 - bne _080853F8 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808542C: .4byte gUnknown_83CC0CC -_08085430: .4byte gTasks -_08085434: .4byte gPlayerAvatar -_08085438: .4byte gObjectEvents -_0808543C: .4byte gSprites - thumb_func_end sub_80853E4 - - thumb_func_start sub_8085440 -sub_8085440: @ 8085440 - push {r4,r5,lr} - adds r5, r0, 0 - adds r4, r1, 0 - bl FreezeObjectEvents - bl CameraObjectReset2 - ldr r1, _0808546C @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrb r0, [r4, 0x3] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r4, 0x3] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - pop {r4,r5} - pop {r1} - bx r1 - .align 2, 0 -_0808546C: .4byte gPlayerAvatar - thumb_func_end sub_8085440 - - thumb_func_start sub_8085470 -sub_8085470: @ 8085470 - push {r4-r6,lr} - adds r5, r0, 0 - adds r4, r1, 0 - adds r6, r2, 0 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _080854E4 - ldrh r1, [r5, 0xA] - movs r2, 0xA - ldrsh r0, [r5, r2] - cmp r0, 0x3 - ble _080854C4 - ldr r1, _080854C0 @ =gFieldEffectArguments - movs r2, 0x10 - ldrsh r0, [r4, r2] - str r0, [r1] - movs r2, 0x12 - ldrsh r0, [r4, r2] - str r0, [r1, 0x4] - adds r0, r6, 0 - adds r0, 0x43 - ldrb r0, [r0] - subs r0, 0x1 - str r0, [r1, 0x8] - ldrb r0, [r6, 0x5] - lsls r0, 28 - lsrs r0, 30 - str r0, [r1, 0xC] - movs r0, 0x31 - bl FieldEffectStart - strh r0, [r5, 0xA] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - b _080854E4 - .align 2, 0 -_080854C0: .4byte gFieldEffectArguments -_080854C4: - adds r0, r1, 0x1 - strh r0, [r5, 0xA] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetWalkInPlaceFastMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - movs r0, 0x21 - bl PlaySE -_080854E4: - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - thumb_func_end sub_8085470 - - thumb_func_start sub_80854EC -sub_80854EC: @ 80854EC - push {r4,lr} - adds r3, r0, 0 - adds r4, r1, 0 - ldr r2, _08085520 @ =gSprites - movs r0, 0xA - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - adds r0, 0x2B - ldrb r0, [r0] - cmp r0, 0x2 - bne _08085516 - ldrb r0, [r4, 0x1] - movs r1, 0x20 - orrs r0, r1 - strb r0, [r4, 0x1] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08085516: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08085520: .4byte gSprites - thumb_func_end sub_80854EC - - thumb_func_start sub_8085524 -sub_8085524: @ 8085524 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x31 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08085542 - bl sub_8055F88 - bl sub_807DC18 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08085542: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8085524 - - thumb_func_start sub_808554C -sub_808554C: @ 808554C - push {lr} - ldr r0, _0808558C @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08085584 - bl BGMusicStopped - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08085584 - bl WarpIntoMap - ldr r1, _08085590 @ =gFieldCallback - ldr r0, _08085594 @ =sub_8084454 - str r0, [r1] - ldr r0, _08085598 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _0808559C @ =sub_80853E4 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08085584: - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_0808558C: .4byte gPaletteFade -_08085590: .4byte gFieldCallback -_08085594: .4byte sub_8084454 -_08085598: .4byte CB2_LoadMap -_0808559C: .4byte sub_80853E4 - thumb_func_end sub_808554C - - thumb_func_start FldEff_PopOutOfAsh -FldEff_PopOutOfAsh: @ 80855A0 - push {r4,lr} - ldr r4, _080855F8 @ =gFieldEffectArguments - adds r1, r4, 0x4 - adds r0, r4, 0 - movs r2, 0x8 - movs r3, 0x8 - bl sub_8063BC4 - ldr r0, _080855FC @ =gFieldEffectObjectTemplatePointers - adds r0, 0x80 - ldr r0, [r0] - 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 - ldr r1, _08085600 @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r1 - movs r1, 0x3 - ldrb r3, [r4, 0xC] - ands r3, r1 - lsls r3, 2 - ldrb r4, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r4 - orrs r1, r3 - strb r1, [r2, 0x5] - adds r2, 0x3E - ldrb r1, [r2] - movs r3, 0x2 - orrs r1, r3 - strb r1, [r2] - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_080855F8: .4byte gFieldEffectArguments -_080855FC: .4byte gFieldEffectObjectTemplatePointers -_08085600: .4byte gSprites - thumb_func_end FldEff_PopOutOfAsh - - thumb_func_start sub_8085604 -sub_8085604: @ 8085604 - push {lr} - adds r2, r0, 0 - adds r0, 0x3F - ldrb r1, [r0] - movs r0, 0x10 - ands r0, r1 - cmp r0, 0 - beq _0808561C - adds r0, r2, 0 - movs r1, 0x31 - bl FieldEffectStop -_0808561C: - pop {r0} - bx r0 - thumb_func_end sub_8085604 - - thumb_func_start sub_8085620 -sub_8085620: @ 8085620 - push {lr} - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r0, _08085638 @ =sub_808563C - movs r1, 0x50 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08085638: .4byte sub_808563C - thumb_func_end sub_8085620 - - thumb_func_start sub_808563C -sub_808563C: @ 808563C - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08085664 @ =gUnknown_83CC0E0 - ldr r2, _08085668 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08085664: .4byte gUnknown_83CC0E0 -_08085668: .4byte gTasks - thumb_func_end sub_808563C - - thumb_func_start sub_808566C -sub_808566C: @ 808566C - push {r4,r5,lr} - adds r4, r0, 0 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - movs r5, 0 - strh r0, [r4, 0x8] - movs r0, 0x40 - strh r0, [r4, 0x22] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x24] - strh r5, [r4, 0x26] - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_808566C - - thumb_func_start sub_8085690 -sub_8085690: @ 8085690 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r0, _080856D4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080856D8 @ =gObjectEvents - adds r6, r0, r1 - adds r4, r5, 0 - adds r4, 0x8 - adds r1, r5, 0 - adds r1, 0xA - adds r2, r5, 0 - adds r2, 0xC - adds r0, r6, 0 - bl sub_808576C - ldrh r1, [r4, 0x6] - movs r2, 0x6 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - bgt _080856DC - adds r0, r1, 0x1 - strh r0, [r4, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - bne _08085702 - movs r0, 0x27 - bl PlaySE - b _08085702 - .align 2, 0 -_080856D4: .4byte gPlayerAvatar -_080856D8: .4byte gObjectEvents -_080856DC: - movs r1, 0x8 - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08085702 - adds r1, r5, 0 - adds r1, 0x12 - adds r2, r5, 0 - adds r2, 0x14 - adds r0, r6, 0 - bl sub_80857F0 - cmp r0, 0 - bne _08085702 - bl sub_8055F88 - bl sub_807DC18 - movs r0, 0x1 - strh r0, [r4, 0x8] -_08085702: - movs r2, 0x8 - ldrsh r0, [r4, r2] - cmp r0, 0x1 - bne _08085750 - ldr r0, _08085758 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08085750 - bl BGMusicStopped - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08085750 - ldrh r1, [r5, 0x26] - lsls r1, 24 - lsrs r1, 24 - adds r0, r6, 0 - bl SetObjectEventDirection - bl sub_80555E0 - bl WarpIntoMap - ldr r1, _0808575C @ =gFieldCallback - ldr r0, _08085760 @ =sub_80859D4 - str r0, [r1] - ldr r0, _08085764 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r0, _08085768 @ =sub_808563C - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08085750: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085758: .4byte gPaletteFade -_0808575C: .4byte gFieldCallback -_08085760: .4byte sub_80859D4 -_08085764: .4byte CB2_LoadMap -_08085768: .4byte sub_808563C - thumb_func_end sub_8085690 - - thumb_func_start sub_808576C -sub_808576C: @ 808576C - push {r4-r7,lr} - adds r4, r0, 0 - adds r6, r1, 0 - adds r5, r2, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _0808578A - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _080857E4 -_0808578A: - ldrh r1, [r6] - movs r2, 0 - ldrsh r0, [r6, r2] - cmp r0, 0 - beq _0808579E - subs r0, r1, 0x1 - strh r0, [r6] - lsls r0, 16 - cmp r0, 0 - bne _080857E4 -_0808579E: - ldr r7, _080857E0 @ =gUnknown_83CC0E8 - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - adds r0, r7 - ldrb r0, [r0] - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldrh r1, [r5] - movs r2, 0 - ldrsh r0, [r5, r2] - cmp r0, 0xB - bgt _080857C8 - adds r0, r1, 0x1 - strh r0, [r5] -_080857C8: - movs r0, 0 - ldrsh r1, [r5, r0] - movs r0, 0xC - asrs r0, r1 - strh r0, [r6] - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - adds r0, r7 - ldrb r0, [r0] - b _080857EA - .align 2, 0 -_080857E0: .4byte gUnknown_83CC0E8 -_080857E4: - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 -_080857EA: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_808576C - - thumb_func_start sub_80857F0 -sub_80857F0: @ 80857F0 - push {r4-r7,lr} - adds r7, r0, 0 - adds r5, r1, 0 - adds r6, r2, 0 - ldrb r0, [r7, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08085818 @ =gSprites - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08085830 - cmp r0, 0x1 - bgt _0808581C - cmp r0, 0 - beq _08085826 - b _0808589A - .align 2, 0 -_08085818: .4byte gSprites -_0808581C: - cmp r0, 0x2 - beq _08085878 - cmp r0, 0x3 - beq _08085896 - b _0808589A -_08085826: - bl CameraObjectReset2 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08085830: - ldrh r0, [r4, 0x26] - subs r0, 0x8 - strh r0, [r4, 0x26] - ldrh r0, [r6] - subs r0, 0x8 - strh r0, [r6] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - bgt _0808589A - ldrb r0, [r7, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r7, 0x3] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - adds r1, r4, 0 - adds r1, 0x43 - movs r0, 0 - strb r0, [r1] - adds r2, r4, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0x3F - ands r0, r1 - strb r0, [r2] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _0808589A -_08085878: - ldrh r0, [r4, 0x26] - subs r0, 0x8 - strh r0, [r4, 0x26] - ldrh r0, [r6] - subs r0, 0x8 - strh r0, [r6] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x58 - negs r1, r1 - cmp r0, r1 - bgt _0808589A - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08085896: - movs r0, 0 - b _0808589C -_0808589A: - movs r0, 0x1 -_0808589C: - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80857F0 - - thumb_func_start sub_80858A4 -sub_80858A4: @ 80858A4 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - adds r6, r0, 0 - adds r5, r1, 0 - adds r7, r2, 0 - mov r9, r3 - ldr r0, [sp, 0x20] - mov r10, r0 - ldrb r0, [r6, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080858D8 @ =gSprites - adds r4, r1, r0 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0x1 - beq _08085948 - cmp r0, 0x1 - bgt _080858DC - cmp r0, 0 - beq _080858E6 - b _080859C2 - .align 2, 0 -_080858D8: .4byte gSprites -_080858DC: - cmp r0, 0x2 - beq _0808599C - cmp r0, 0x3 - beq _080859BE - b _080859C2 -_080858E6: - bl CameraObjectReset2 - movs r2, 0x58 - negs r2, r2 - adds r0, r2, 0 - strh r0, [r7] - ldrh r0, [r4, 0x26] - subs r0, 0x58 - movs r3, 0 - strh r0, [r4, 0x26] - ldrb r0, [r4, 0x5] - lsls r0, 28 - lsrs r0, 30 - mov r1, r9 - strh r0, [r1] - movs r2, 0x43 - adds r2, r4 - mov r8, r2 - ldrb r0, [r2] - mov r1, r10 - strh r0, [r1] - movs r2, 0x42 - adds r2, r4 - mov r12, r2 - ldrb r0, [r2] - lsrs r0, 6 - ldr r1, [sp, 0x24] - strh r0, [r1] - ldrb r0, [r6, 0x3] - movs r2, 0x4 - orrs r0, r2 - strb r0, [r6, 0x3] - ldrb r1, [r4, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - orrs r0, r2 - strb r0, [r4, 0x5] - mov r2, r8 - strb r3, [r2] - mov r0, r12 - ldrb r1, [r0] - movs r0, 0x3F - ands r0, r1 - mov r1, r12 - strb r0, [r1] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08085948: - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - ldrh r0, [r7] - adds r0, 0x4 - strh r0, [r7] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x10 - negs r1, r1 - cmp r0, r1 - blt _080859C2 - movs r0, 0x3 - mov r2, r9 - ldrb r1, [r2] - 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] - mov r1, r10 - ldrh r0, [r1] - adds r1, r4, 0 - adds r1, 0x43 - strb r0, [r1] - ldr r2, [sp, 0x24] - ldrb r1, [r2] - adds r3, r4, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] - b _080859C2 -_0808599C: - ldrh r0, [r4, 0x26] - adds r0, 0x4 - strh r0, [r4, 0x26] - ldrh r0, [r7] - adds r0, 0x4 - strh r0, [r7] - lsls r0, 16 - cmp r0, 0 - blt _080859C2 - movs r0, 0x1E - bl PlaySE - bl CameraObjectReset1 - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_080859BE: - movs r0, 0 - b _080859C4 -_080859C2: - movs r0, 0x1 -_080859C4: - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - thumb_func_end sub_80858A4 - - thumb_func_start sub_80859D4 -sub_80859D4: @ 80859D4 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_8111CF0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r1, _08085A14 @ =gFieldCallback - movs r0, 0 - str r0, [r1] - ldr r2, _08085A18 @ =gObjectEvents - ldr r0, _08085A1C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - ldr r0, _08085A20 @ =sub_8085A24 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08085A14: .4byte gFieldCallback -_08085A18: .4byte gObjectEvents -_08085A1C: .4byte gPlayerAvatar -_08085A20: .4byte sub_8085A24 - thumb_func_end sub_80859D4 - - thumb_func_start sub_8085A24 -sub_8085A24: @ 8085A24 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08085A4C @ =gUnknown_83CC0F0 - ldr r2, _08085A50 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08085A4C: .4byte gUnknown_83CC0F0 -_08085A50: .4byte gTasks - thumb_func_end sub_8085A24 - - thumb_func_start sub_8085A54 -sub_8085A54: @ 8085A54 - push {r4,lr} - adds r4, r0, 0 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _08085A78 - movs r0, 0x28 - bl PlaySE - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08085A78: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8085A54 - - thumb_func_start sub_8085A80 -sub_8085A80: @ 8085A80 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - adds r5, r4, 0 - adds r5, 0x8 - ldr r0, _08085AD4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085AD8 @ =gObjectEvents - adds r6, r0, r1 - adds r1, r4, 0 - adds r1, 0xA - adds r2, r4, 0 - adds r2, 0xC - adds r3, r4, 0 - adds r3, 0xE - adds r0, r5, 0 - adds r0, 0x8 - str r0, [sp] - adds r0, r4, 0 - adds r0, 0x12 - str r0, [sp, 0x4] - adds r0, r6, 0 - bl sub_80858A4 - adds r7, r0, 0 - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x7 - bgt _08085ADC - adds r0, r1, 0x1 - strh r0, [r5, 0xC] - b _08085B10 - .align 2, 0 -_08085AD4: .4byte gPlayerAvatar -_08085AD8: .4byte gObjectEvents -_08085ADC: - movs r2, 0xE - ldrsh r0, [r5, r2] - cmp r0, 0 - bne _08085B10 - adds r0, r1, 0x1 - strh r0, [r5, 0xC] - adds r1, r4, 0 - adds r1, 0x1A - adds r2, r4, 0 - adds r2, 0x1C - adds r0, r6, 0 - bl sub_808576C - lsls r0, 24 - lsrs r1, r0, 24 - strh r1, [r5, 0x10] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0x31 - ble _08085B10 - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08085B10 - movs r0, 0x1 - strh r0, [r5, 0xE] -_08085B10: - cmp r7, 0 - bne _08085B58 - movs r0, 0x10 - ldrsh r1, [r5, r0] - movs r2, 0x1E - ldrsh r0, [r5, r2] - cmp r1, r0 - bne _08085B58 - adds r0, r6, 0 - bl ObjectEventCheckHeldMovementStatus - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08085B58 - ldrb r1, [r6, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x1] - ldrb r1, [r6, 0x3] - movs r0, 0x5 - negs r0, r0 - ands r0, r1 - strb r0, [r6, 0x3] - bl ScriptContext2_Disable - bl UnfreezeObjectEvents - ldr r0, _08085B60 @ =sub_8085A24 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08085B58: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08085B60: .4byte sub_8085A24 - thumb_func_end sub_8085A80 - - thumb_func_start CreateTeleportFieldEffectTask -CreateTeleportFieldEffectTask: @ 8085B64 - push {lr} - ldr r0, _08085B74 @ =sub_8085B78 - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08085B74: .4byte sub_8085B78 - thumb_func_end CreateTeleportFieldEffectTask - - thumb_func_start sub_8085B78 -sub_8085B78: @ 8085B78 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08085BA0 @ =gUnknown_83CC0F8 - ldr r2, _08085BA4 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08085BA0: .4byte gUnknown_83CC0F8 -_08085BA4: .4byte gTasks - thumb_func_end sub_8085B78 - - thumb_func_start sub_8085BA8 -sub_8085BA8: @ 8085BA8 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - bl CameraObjectReset2 - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8085BA8 - - thumb_func_start sub_8085BD0 -sub_8085BD0: @ 8085BD0 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08085C54 @ =gUnknown_83CC108 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, _08085C58 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085C5C @ =gObjectEvents - adds r5, r0, r1 - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08085C02 - subs r0, r1, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08085C1C -_08085C02: - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl ObjectEventTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] -_08085C1C: - movs r1, 0xC - ldrsh r0, [r4, r1] - cmp r0, 0x7 - ble _08085C4A - movs r2, 0x26 - ldrsh r1, [r4, r2] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _08085C4A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x4 - strh r0, [r4, 0xA] - movs r0, 0x8 - strh r0, [r4, 0xC] - movs r0, 0x1 - strh r0, [r4, 0xE] - movs r0, 0x27 - bl PlaySE -_08085C4A: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085C54: .4byte gUnknown_83CC108 -_08085C58: .4byte gPlayerAvatar -_08085C5C: .4byte gObjectEvents - thumb_func_end sub_8085BD0 - - thumb_func_start sub_8085C60 -sub_8085C60: @ 8085C60 - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08085D24 @ =gUnknown_83CC108 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, _08085D28 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085D2C @ =gObjectEvents - adds r3, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085D30 @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bgt _08085CAA - movs r0, 0x4 - strh r0, [r4, 0xA] - ldrb r0, [r3, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r3, 0 - bl ObjectEventTurn -_08085CAA: - ldrh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - subs r0, r1 - strh r0, [r5, 0x22] - ldrh r1, [r4, 0xE] - ldrh r2, [r4, 0x10] - adds r0, r1, r2 - strh r0, [r4, 0x10] - ldrh r0, [r4, 0xC] - subs r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bgt _08085CD6 - movs r0, 0x4 - strh r0, [r4, 0xC] - lsls r0, r1, 16 - asrs r0, 16 - cmp r0, 0x7 - bgt _08085CD6 - lsls r0, r1, 1 - strh r0, [r4, 0xE] -_08085CD6: - movs r1, 0x10 - ldrsh r0, [r4, r1] - cmp r0, 0x8 - ble _08085D04 - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _08085D04 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_08085D04: - movs r2, 0x10 - ldrsh r0, [r4, r2] - cmp r0, 0xA7 - ble _08085D1A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - bl sub_8055F88 - bl sub_807DC18 -_08085D1A: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08085D24: .4byte gUnknown_83CC108 -_08085D28: .4byte gPlayerAvatar -_08085D2C: .4byte gObjectEvents -_08085D30: .4byte gSprites - thumb_func_end sub_8085C60 - - thumb_func_start sub_8085D34 -sub_8085D34: @ 8085D34 - push {lr} - ldr r0, _08085D74 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08085D70 - bl BGMusicStopped - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08085D70 - bl copy_saved_warp3_bank_and_enter_x_to_warp1 - bl WarpIntoMap - ldr r0, _08085D78 @ =CB2_LoadMap - bl SetMainCallback2 - ldr r1, _08085D7C @ =gFieldCallback - ldr r0, _08085D80 @ =mapldr_08085D88 - str r0, [r1] - ldr r0, _08085D84 @ =sub_8085B78 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08085D70: - pop {r0} - bx r0 - .align 2, 0 -_08085D74: .4byte gPaletteFade -_08085D78: .4byte CB2_LoadMap -_08085D7C: .4byte gFieldCallback -_08085D80: .4byte mapldr_08085D88 -_08085D84: .4byte sub_8085B78 - thumb_func_end sub_8085D34 - - thumb_func_start mapldr_08085D88 -mapldr_08085D88: @ 8085D88 - push {lr} - bl Overworld_PlaySpecialMapMusic - bl pal_fill_for_maplights - bl sub_8111CF0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r1, _08085DCC @ =gFieldCallback - movs r0, 0 - str r0, [r1] - ldr r2, _08085DD0 @ =gObjectEvents - ldr r0, _08085DD4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r1, [r0, 0x1] - movs r2, 0x20 - orrs r1, r2 - strb r1, [r0, 0x1] - bl CameraObjectReset2 - ldr r0, _08085DD8 @ =sub_8085DDC - movs r1, 0 - bl CreateTask - pop {r0} - bx r0 - .align 2, 0 -_08085DCC: .4byte gFieldCallback -_08085DD0: .4byte gObjectEvents -_08085DD4: .4byte gPlayerAvatar -_08085DD8: .4byte sub_8085DDC - thumb_func_end mapldr_08085D88 - - thumb_func_start sub_8085DDC -sub_8085DDC: @ 8085DDC - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08085E04 @ =gUnknown_83CC110 - ldr r2, _08085E08 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08085E04: .4byte gUnknown_83CC110 -_08085E08: .4byte gTasks - thumb_func_end sub_8085DDC - - thumb_func_start sub_8085E0C -sub_8085E0C: @ 8085E0C - push {r4-r6,lr} - adds r6, r0, 0 - bl IsWeatherNotFadingIn - lsls r0, 24 - cmp r0, 0 - beq _08085E82 - ldr r5, _08085E88 @ =gPlayerAvatar - ldrb r0, [r5, 0x4] - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r0, _08085E8C @ =gSprites - adds r2, r0 - adds r0, r2, 0 - adds r0, 0x29 - movs r4, 0 - ldrsb r4, [r0, r4] - lsls r0, r4, 17 - negs r0, r0 - ldrh r1, [r2, 0x22] - ldr r3, _08085E90 @ =gSpriteCoordOffsetY - adds r1, r4 - ldrh r3, [r3] - adds r1, r3 - asrs r0, 16 - adds r0, r1 - negs r0, r0 - strh r0, [r2, 0x26] - ldr r3, _08085E94 @ =gObjectEvents - ldrb r0, [r5, 0x5] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r3 - ldrb r3, [r1, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r3 - strb r0, [r1, 0x1] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0x8 - strh r0, [r6, 0xA] - movs r0, 0x1 - strh r0, [r6, 0xC] - adds r2, 0x42 - ldrb r0, [r2] - lsrs r0, 6 - strh r0, [r6, 0x24] - bl GetPlayerFacingDirection - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0x26] - movs r0, 0x27 - bl PlaySE -_08085E82: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08085E88: .4byte gPlayerAvatar -_08085E8C: .4byte gSprites -_08085E90: .4byte gSpriteCoordOffsetY -_08085E94: .4byte gObjectEvents - thumb_func_end sub_8085E0C - - thumb_func_start sub_8085E98 -sub_8085E98: @ 8085E98 - push {r4-r7,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08085F00 @ =gUnknown_83CC108 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r2, _08085F04 @ =gPlayerAvatar - ldrb r1, [r2, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085F08 @ =gObjectEvents - adds r6, r0, r1 - ldrb r1, [r2, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08085F0C @ =gSprites - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - ldrh r1, [r5, 0x26] - adds r0, r1 - strh r0, [r5, 0x26] - lsls r0, 16 - asrs r0, 16 - movs r1, 0x8 - negs r1, r1 - cmp r0, r1 - blt _08085F10 - ldrh r1, [r4, 0x22] - movs r2, 0x22 - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _08085F36 - adds r0, r1, 0x1 - strh r0, [r4, 0x22] - ldrb r0, [r6] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r6] - ldrh r1, [r4, 0x24] - adds r3, r5, 0 - adds r3, 0x42 - lsls r1, 6 - ldrb r2, [r3] - movs r0, 0x3F - ands r0, r2 - orrs r0, r1 - strb r0, [r3] - b _08085F36 - .align 2, 0 -_08085F00: .4byte gUnknown_83CC108 -_08085F04: .4byte gPlayerAvatar -_08085F08: .4byte gObjectEvents -_08085F0C: .4byte gSprites -_08085F10: - ldrb r1, [r5, 0x5] - movs r0, 0xD - negs r0, r0 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r5, 0x5] - adds r2, r5, 0 - adds r2, 0x42 - ldrb r1, [r2] - movs r0, 0xC0 - ands r0, r1 - cmp r0, 0 - beq _08085F36 - movs r0, 0x3F - ands r0, r1 - movs r1, 0x80 - orrs r0, r1 - strb r0, [r2] -_08085F36: - ldrh r2, [r5, 0x26] - movs r3, 0x26 - ldrsh r1, [r5, r3] - movs r0, 0x30 - negs r0, r0 - cmp r1, r0 - blt _08085F5A - ldrh r1, [r4, 0xA] - movs r3, 0xA - ldrsh r0, [r4, r3] - cmp r0, 0x1 - ble _08085F5A - movs r0, 0x1 - ands r0, r2 - cmp r0, 0 - bne _08085F5A - subs r0, r1, 0x1 - strh r0, [r4, 0xA] -_08085F5A: - ldrh r0, [r4, 0xC] - subs r0, 0x1 - movs r7, 0 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _08085F7C - movs r0, 0x4 - strh r0, [r4, 0xC] - ldrb r0, [r6, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r6, 0 - bl ObjectEventTurn -_08085F7C: - movs r1, 0x26 - ldrsh r0, [r5, r1] - cmp r0, 0 - blt _08085F92 - strh r7, [r5, 0x26] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x1 - strh r0, [r4, 0xA] - strh r7, [r4, 0xC] -_08085F92: - add sp, 0x8 - pop {r4-r7} - pop {r0} - bx r0 - thumb_func_end sub_8085E98 - - thumb_func_start sub_8085F9C -sub_8085F9C: @ 8085F9C - push {r4,r5,lr} - sub sp, 0x8 - adds r4, r0, 0 - ldr r1, _08086018 @ =gUnknown_83CC108 - mov r0, sp - movs r2, 0x5 - bl memcpy - ldr r0, _0808601C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086020 @ =gObjectEvents - adds r5, r0, r1 - ldrh r0, [r4, 0xA] - subs r0, 0x1 - strh r0, [r4, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _08086010 - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - add r0, sp - ldrb r1, [r0] - adds r0, r5, 0 - bl ObjectEventTurn - movs r0, 0x8 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x4 - ble _08086010 - movs r0, 0x24 - ldrsh r1, [r4, r0] - ldrb r0, [r5, 0x18] - lsls r0, 28 - lsrs r0, 28 - cmp r1, r0 - bne _08086010 - bl ScriptContext2_Disable - bl CameraObjectReset1 - bl UnfreezeObjectEvents - ldr r0, _08086024 @ =sub_8085DDC - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08086010: - add sp, 0x8 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086018: .4byte gUnknown_83CC108 -_0808601C: .4byte gPlayerAvatar -_08086020: .4byte gObjectEvents -_08086024: .4byte sub_8085DDC - thumb_func_end sub_8085F9C - - thumb_func_start FldEff_FieldMoveShowMon -FldEff_FieldMoveShowMon: @ 8086028 - push {r4,lr} - bl GetCurrentMapType - lsls r0, 24 - lsrs r0, 24 - bl IsMapTypeOutdoors - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x1 - bne _08086048 - ldr r0, _08086044 @ =sub_80860E0 - b _0808604A - .align 2, 0 -_08086044: .4byte sub_80860E0 -_08086048: - ldr r0, _08086078 @ =sub_8086468 -_0808604A: - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r4, r0, 24 - ldr r2, _0808607C @ =gFieldEffectArguments - ldr r0, [r2] - ldr r1, [r2, 0x4] - ldr r2, [r2, 0x8] - bl sub_8086860 - ldr r2, _08086080 @ =gTasks - lsls r1, r4, 2 - adds r1, r4 - lsls r1, 3 - adds r1, r2 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r1, 0x26] - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086078: .4byte sub_8086468 -_0808607C: .4byte gFieldEffectArguments -_08086080: .4byte gTasks - thumb_func_end FldEff_FieldMoveShowMon - - thumb_func_start FldEff_FieldMoveShowMonInit -FldEff_FieldMoveShowMonInit: @ 8086084 - push {r4-r6,lr} - ldr r5, _080860D8 @ =gFieldEffectArguments - ldr r0, [r5] - movs r6, 0x80 - lsls r6, 24 - ands r6, r0 - lsls r0, 24 - lsrs r0, 24 - movs r1, 0x64 - adds r4, r0, 0 - muls r4, r1 - ldr r0, _080860DC @ =gPlayerParty - adds r4, r0 - adds r0, r4, 0 - movs r1, 0xB - bl GetMonData - str r0, [r5] - adds r0, r4, 0 - movs r1, 0x1 - bl GetMonData - str r0, [r5, 0x4] - adds r0, r4, 0 - movs r1, 0 - bl GetMonData - str r0, [r5, 0x8] - ldr r0, [r5] - orrs r0, r6 - str r0, [r5] - movs r0, 0x6 - bl FieldEffectStart - movs r0, 0x3B - bl FieldEffectActiveListRemove - movs r0, 0 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080860D8: .4byte gFieldEffectArguments -_080860DC: .4byte gPlayerParty - thumb_func_end FldEff_FieldMoveShowMonInit - - thumb_func_start sub_80860E0 -sub_80860E0: @ 80860E0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08086108 @ =gUnknown_83CC11C - ldr r2, _0808610C @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08086108: .4byte gUnknown_83CC11C -_0808610C: .4byte gTasks - thumb_func_end sub_80860E0 - - thumb_func_start sub_8086110 -sub_8086110: @ 8086110 - push {r4,lr} - adds r4, r0, 0 - movs r0, 0x48 - bl GetGpuReg - strh r0, [r4, 0x1E] - movs r0, 0x4A - bl GetGpuReg - strh r0, [r4, 0x20] - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, _08086170 @ =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r1, _08086174 @ =0x0000f0f1 - strh r1, [r4, 0xA] - ldr r0, _08086178 @ =0x00005051 - strh r0, [r4, 0xC] - movs r0, 0x3F - strh r0, [r4, 0xE] - movs r0, 0x3E - strh r0, [r4, 0x10] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x44 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x48 - bl SetGpuReg - ldrh r1, [r4, 0x10] - movs r0, 0x4A - bl SetGpuReg - ldr r0, _0808617C @ =sub_80863C0 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086170: .4byte gMain -_08086174: .4byte 0x0000f0f1 -_08086178: .4byte 0x00005051 -_0808617C: .4byte sub_80863C0 - thumb_func_end sub_8086110 - - thumb_func_start sub_8086180 -sub_8086180: @ 8086180 - push {r4-r6,lr} - mov r6, r8 - push {r6} - sub sp, 0x4 - mov r8, r0 - movs r0, 0x8 - bl GetGpuReg - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 18 - lsls r4, 30 - lsrs r4, 16 - movs r0, 0x8 - bl GetGpuReg - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 24 - lsls r5, 27 - lsrs r5, 16 - ldr r0, _080861F0 @ =gUnknown_83CB5F0 - movs r6, 0xC0 - lsls r6, 19 - adds r4, r6 - movs r2, 0x80 - lsls r2, 1 - adds r1, r4, 0 - bl CpuSet - movs r0, 0 - str r0, [sp] - adds r6, r5, r6 - ldr r2, _080861F4 @ =0x05000200 - mov r0, sp - adds r1, r6, 0 - bl CpuSet - ldr r0, _080861F8 @ =gUnknown_83CB7F0 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - adds r0, r5, 0 - bl sub_8086428 - mov r1, r8 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - add sp, 0x4 - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080861F0: .4byte gUnknown_83CB5F0 -_080861F4: .4byte 0x05000200 -_080861F8: .4byte gUnknown_83CB7F0 - thumb_func_end sub_8086180 - - thumb_func_start sub_80861FC -sub_80861FC: @ 80861FC - push {r4-r7,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r6, [r3, 0xA] - ldrh r2, [r3, 0xC] - movs r7, 0xFF - lsrs r1, r6, 8 - subs r1, 0x10 - lsls r1, 16 - lsrs r0, r2, 8 - subs r0, 0x2 - lsls r0, 16 - lsrs r4, r0, 16 - adds r0, r7, 0 - ands r0, r2 - adds r5, r0, 0x2 - lsrs r2, r1, 16 - cmp r1, 0 - bge _08086228 - movs r2, 0 -_08086228: - lsls r0, r4, 16 - asrs r0, 16 - cmp r0, 0x27 - bgt _08086232 - movs r4, 0x28 -_08086232: - cmp r5, 0x78 - ble _08086238 - movs r5, 0x78 -_08086238: - lsls r2, 16 - asrs r2, 16 - lsls r1, r2, 8 - adds r0, r7, 0 - ands r0, r6 - orrs r1, r0 - strh r1, [r3, 0xA] - lsls r0, r4, 16 - asrs r4, r0, 16 - lsls r0, r4, 8 - adds r1, r5, 0 - orrs r0, r1 - strh r0, [r3, 0xC] - cmp r2, 0 - bne _08086278 - cmp r4, 0x28 - bne _08086278 - cmp r1, 0x78 - bne _08086278 - ldr r2, _08086280 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _08086284 @ =sub_80868C0 - str r1, [r0] - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08086278: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08086280: .4byte gSprites -_08086284: .4byte sub_80868C0 - thumb_func_end sub_80861FC - - thumb_func_start sub_8086288 -sub_8086288: @ 8086288 - push {lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldr r2, _080862B4 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r3, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080862AE - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_080862AE: - pop {r0} - bx r0 - .align 2, 0 -_080862B4: .4byte gSprites - thumb_func_end sub_8086288 - - thumb_func_start sub_80862B8 -sub_80862B8: @ 80862B8 - push {r4,lr} - adds r3, r0, 0 - ldrh r0, [r3, 0x12] - subs r0, 0x10 - strh r0, [r3, 0x12] - ldrh r2, [r3, 0xC] - lsls r1, r2, 16 - movs r0, 0xFF - asrs r1, 24 - adds r1, 0x6 - lsls r1, 16 - ands r0, r2 - subs r0, 0x6 - lsls r0, 16 - lsrs r2, r0, 16 - lsrs r4, r1, 16 - asrs r1, 16 - cmp r1, 0x50 - ble _080862E0 - movs r4, 0x50 -_080862E0: - lsls r0, r2, 16 - asrs r0, 16 - cmp r0, 0x50 - bgt _080862EA - movs r2, 0x51 -_080862EA: - lsls r0, r4, 16 - asrs r0, 16 - lsls r1, r0, 8 - lsls r2, 16 - asrs r2, 16 - orrs r1, r2 - strh r1, [r3, 0xC] - cmp r0, 0x50 - bne _08086306 - cmp r2, 0x51 - bne _08086306 - ldrh r0, [r3, 0x8] - adds r0, 0x1 - strh r0, [r3, 0x8] -_08086306: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_80862B8 - - thumb_func_start sub_808630C -sub_808630C: @ 808630C - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - movs r0, 0x8 - bl GetGpuReg - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 24 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, _08086354 @ =0x05000200 - mov r0, sp - bl CpuSet - movs r0, 0xF1 - strh r0, [r4, 0xA] - movs r0, 0xA1 - strh r0, [r4, 0xC] - ldrh r0, [r4, 0x1E] - strh r0, [r4, 0xE] - ldrh r0, [r4, 0x20] - strh r0, [r4, 0x10] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086354: .4byte 0x05000200 - thumb_func_end sub_808630C - - thumb_func_start sub_8086358 -sub_8086358: @ 8086358 - push {r4,lr} - sub sp, 0x4 - adds r4, r0, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl Menu_LoadStdPal - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080863B8 @ =gSprites - adds r0, r1 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - bl sub_8083A5C - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, _080863BC @ =sub_80860E0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080863B8: .4byte gSprites -_080863BC: .4byte sub_80860E0 - thumb_func_end sub_8086358 - - thumb_func_start sub_80863C0 -sub_80863C0: @ 80863C0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08086420 @ =sub_80860E0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08086424 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldrh r1, [r4, 0xA] - movs r0, 0x40 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x44 - bl SetGpuReg - ldrh r1, [r4, 0xE] - movs r0, 0x48 - bl SetGpuReg - ldrh r1, [r4, 0x10] - movs r0, 0x4A - bl SetGpuReg - ldrh r1, [r4, 0x12] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0x14] - movs r0, 0x12 - bl SetGpuReg - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086420: .4byte sub_80860E0 -_08086424: .4byte gTasks - thumb_func_end sub_80863C0 - - thumb_func_start sub_8086428 -sub_8086428: @ 8086428 - push {r4,r5,lr} - lsls r0, 16 - lsrs r0, 16 - ldr r1, _0808645C @ =0x06000140 - adds r2, r0, r1 - movs r1, 0 - ldr r5, _08086460 @ =gUnknown_83CB810 - movs r0, 0xF0 - lsls r0, 8 - adds r4, r0, 0 - ldr r3, _08086464 @ =0x0000013f -_0808643E: - lsls r0, r1, 1 - adds r0, r5 - ldrh r0, [r0] - orrs r0, r4 - strh r0, [r2] - adds r0, r1, 0x1 - lsls r0, 16 - lsrs r1, r0, 16 - adds r2, 0x2 - cmp r1, r3 - bls _0808643E - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808645C: .4byte 0x06000140 -_08086460: .4byte gUnknown_83CB810 -_08086464: .4byte 0x0000013f - thumb_func_end sub_8086428 - - thumb_func_start sub_8086468 -sub_8086468: @ 8086468 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08086490 @ =gUnknown_83CC138 - ldr r2, _08086494 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08086490: .4byte gUnknown_83CC138 -_08086494: .4byte gTasks - thumb_func_end sub_8086468 - - thumb_func_start sub_8086498 -sub_8086498: @ 8086498 - push {r4,lr} - adds r4, r0, 0 - ldrh r1, [r4, 0xA] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x12 - bl SetGpuReg - adds r0, r4, 0 - adds r0, 0x22 - ldr r1, _080864CC @ =gMain - ldr r1, [r1, 0xC] - bl StoreWordInTwoHalfwords - ldr r0, _080864D0 @ =sub_80866E0 - bl SetVBlankCallback - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080864CC: .4byte gMain -_080864D0: .4byte sub_80866E0 - thumb_func_end sub_8086498 - - thumb_func_start sub_80864D4 -sub_80864D4: @ 80864D4 - push {r4-r6,lr} - mov r6, r9 - mov r5, r8 - push {r5,r6} - sub sp, 0x4 - mov r9, r0 - movs r0, 0x8 - bl GetGpuReg - adds r5, r0, 0 - lsls r5, 16 - lsrs r5, 18 - lsls r5, 30 - lsrs r5, 16 - movs r0, 0x8 - bl GetGpuReg - adds r4, r0, 0 - lsls r4, 16 - lsrs r4, 24 - lsls r4, 27 - lsrs r4, 16 - movs r0, 0 - mov r8, r0 - mov r1, r9 - strh r4, [r1, 0x20] - ldr r0, _08086548 @ =gUnknown_83CBA90 - movs r6, 0xC0 - lsls r6, 19 - adds r5, r6 - adds r1, r5, 0 - movs r2, 0x40 - bl CpuSet - mov r0, r8 - str r0, [sp] - adds r4, r6 - ldr r2, _0808654C @ =0x05000200 - mov r0, sp - adds r1, r4, 0 - bl CpuSet - ldr r0, _08086550 @ =gUnknown_83CBB10 - movs r1, 0xF0 - movs r2, 0x20 - bl LoadPalette - mov r1, r9 - ldrh r0, [r1, 0x8] - adds r0, 0x1 - strh r0, [r1, 0x8] - add sp, 0x4 - pop {r3,r4} - mov r8, r3 - mov r9, r4 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08086548: .4byte gUnknown_83CBA90 -_0808654C: .4byte 0x05000200 -_08086550: .4byte gUnknown_83CBB10 - thumb_func_end sub_80864D4 - - thumb_func_start sub_8086554 -sub_8086554: @ 8086554 - push {r4,lr} - adds r4, r0, 0 - bl sub_8086738 - lsls r0, 24 - cmp r0, 0 - beq _080865A6 - movs r0, 0x48 - bl GetGpuReg - strh r0, [r4, 0x12] - movs r1, 0xFF - ands r1, r0 - movs r2, 0x88 - lsls r2, 5 - adds r0, r2, 0 - orrs r1, r0 - movs r0, 0x48 - bl SetGpuReg - movs r0, 0x42 - movs r1, 0xF0 - bl SetGpuReg - ldr r1, _080865B4 @ =0x00002878 - movs r0, 0x46 - bl SetGpuReg - ldr r2, _080865B8 @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r2, 0x1C - adds r0, r2 - ldr r1, _080865BC @ =sub_80868C0 - str r1, [r0] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080865A6: - adds r0, r4, 0 - bl sub_8086728 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080865B4: .4byte 0x00002878 -_080865B8: .4byte gSprites -_080865BC: .4byte sub_80868C0 - thumb_func_end sub_8086554 - - thumb_func_start sub_80865C0 -sub_80865C0: @ 80865C0 - push {r4,lr} - adds r4, r0, 0 - bl sub_8086728 - ldr r2, _080865EC @ =gSprites - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - movs r1, 0x3C - ldrsh r0, [r0, r1] - cmp r0, 0 - beq _080865E4 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_080865E4: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080865EC: .4byte gSprites - thumb_func_end sub_80865C0 - - thumb_func_start sub_80865F0 -sub_80865F0: @ 80865F0 - push {r4,r5,lr} - adds r4, r0, 0 - bl sub_8086728 - ldrh r1, [r4, 0xA] - movs r0, 0x7 - ands r0, r1 - movs r1, 0 - strh r0, [r4, 0xE] - strh r1, [r4, 0x10] - ldr r5, _0808662C @ =0x0000ffff - movs r0, 0x42 - adds r1, r5, 0 - bl SetGpuReg - movs r0, 0x46 - adds r1, r5, 0 - bl SetGpuReg - ldrh r1, [r4, 0x12] - movs r0, 0x48 - bl SetGpuReg - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_0808662C: .4byte 0x0000ffff - thumb_func_end sub_80865F0 - - thumb_func_start sub_8086630 -sub_8086630: @ 8086630 - push {r4,lr} - adds r4, r0, 0 - bl sub_8086728 - adds r0, r4, 0 - bl sub_80867F0 - lsls r0, 24 - cmp r0, 0 - beq _0808664A - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_0808664A: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8086630 - - thumb_func_start sub_8086650 -sub_8086650: @ 8086650 - push {r4,lr} - sub sp, 0x8 - adds r4, r0, 0 - movs r0, 0x8 - bl GetGpuReg - adds r1, r0, 0 - lsls r1, 16 - lsrs r1, 24 - lsls r1, 27 - lsrs r1, 16 - movs r0, 0 - str r0, [sp] - movs r0, 0xC0 - lsls r0, 19 - adds r1, r0 - ldr r2, _080866D4 @ =0x05000200 - mov r0, sp - bl CpuSet - adds r0, r4, 0 - adds r0, 0x22 - add r1, sp, 0x4 - bl LoadWordFromTwoHalfwords - ldr r0, [sp, 0x4] - bl SetVBlankCallback - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgX - movs r0, 0 - movs r1, 0 - movs r2, 0 - bl ChangeBgY - bl Menu_LoadStdPal - movs r0, 0x26 - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _080866D8 @ =gSprites - adds r0, r1 - ldrh r1, [r4, 0x26] - lsls r1, 24 - lsrs r1, 24 - bl sub_8083A5C - movs r0, 0x6 - bl FieldEffectActiveListRemove - ldr r0, _080866DC @ =sub_8086468 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - add sp, 0x8 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080866D4: .4byte 0x05000200 -_080866D8: .4byte gSprites -_080866DC: .4byte sub_8086468 - thumb_func_end sub_8086650 - - thumb_func_start sub_80866E0 -sub_80866E0: @ 80866E0 - push {r4,lr} - sub sp, 0x4 - ldr r0, _08086720 @ =sub_8086468 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 2 - adds r4, r0 - lsls r4, 3 - ldr r0, _08086724 @ =gTasks - adds r4, r0 - adds r0, r4, 0 - adds r0, 0x22 - mov r1, sp - bl LoadWordFromTwoHalfwords - ldr r0, [sp] - bl _call_via_r0 - ldrh r1, [r4, 0xA] - movs r0, 0x10 - bl SetGpuReg - ldrh r1, [r4, 0xC] - movs r0, 0x12 - bl SetGpuReg - add sp, 0x4 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086720: .4byte sub_8086468 -_08086724: .4byte gTasks - thumb_func_end sub_80866E0 - - thumb_func_start sub_8086728 -sub_8086728: @ 8086728 - ldrh r1, [r0, 0xA] - subs r1, 0x10 - strh r1, [r0, 0xA] - ldrh r1, [r0, 0xE] - adds r1, 0x10 - strh r1, [r0, 0xE] - bx lr - thumb_func_end sub_8086728 - - thumb_func_start sub_8086738 -sub_8086738: @ 8086738 - push {r4-r7,lr} - mov r7, r10 - mov r6, r9 - mov r5, r8 - push {r5-r7} - sub sp, 0x4 - adds r5, r0, 0 - ldrh r2, [r5, 0x10] - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _08086754 - movs r0, 0x1 - b _080867D8 -_08086754: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r3, r0, 19 - movs r1, 0x1F - ands r3, r1 - movs r4, 0x10 - ldrsh r0, [r5, r4] - cmp r3, r0 - blt _080867D6 - movs r0, 0x20 - subs r3, r0, r3 - ands r3, r1 - subs r0, r2 - mov r12, r0 - mov r7, r12 - ands r7, r1 - mov r12, r7 - ldrh r0, [r5, 0x20] - ldr r1, _080867E8 @ =0x06000140 - adds r1, r0 - mov r8, r1 - movs r4, 0 - ldr r7, _080867EC @ =gUnknown_83CBB30 - mov r10, r7 - movs r0, 0xF0 - lsls r0, 8 - mov r9, r0 - adds r1, r3, 0x1 - movs r0, 0x1F - ands r1, r0 - str r1, [sp] - mov r6, r12 - adds r6, 0x1 - ands r6, r0 -_08086798: - lsls r1, r4, 5 - adds r2, r1, r3 - lsls r2, 1 - add r2, r8 - mov r7, r12 - adds r0, r7, r1 - lsls r0, 1 - add r0, r10 - ldrh r0, [r0] - mov r7, r9 - orrs r0, r7 - strh r0, [r2] - ldr r0, [sp] - adds r2, r1, r0 - lsls r2, 1 - add r2, r8 - adds r1, r6, r1 - lsls r1, 1 - add r1, r10 - ldrh r0, [r1] - mov r1, r9 - orrs r0, r1 - strh r0, [r2] - adds r0, r4, 0x1 - lsls r0, 16 - lsrs r4, r0, 16 - cmp r4, 0x9 - bls _08086798 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_080867D6: - movs r0, 0 -_080867D8: - add sp, 0x4 - pop {r3-r5} - mov r8, r3 - mov r9, r4 - mov r10, r5 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080867E8: .4byte 0x06000140 -_080867EC: .4byte gUnknown_83CBB30 - thumb_func_end sub_8086738 - - thumb_func_start sub_80867F0 -sub_80867F0: @ 80867F0 - push {r4-r7,lr} - adds r5, r0, 0 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r0, 0x1F - ble _08086800 - movs r0, 0x1 - b _08086854 -_08086800: - ldrh r0, [r5, 0xE] - lsls r0, 16 - asrs r0, 19 - lsls r0, 16 - lsrs r2, r0, 16 - movs r1, 0x10 - ldrsh r0, [r5, r1] - cmp r2, r0 - blt _08086852 - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r2, r0, 19 - movs r0, 0x1F - ands r2, r0 - ldrh r0, [r5, 0x20] - ldr r1, _0808685C @ =0x06000140 - adds r6, r0, r1 - movs r3, 0 - movs r0, 0xF0 - lsls r0, 8 - adds r7, r0, 0 - adds r4, r2, 0x1 - movs r0, 0x1F - ands r4, r0 -_08086830: - lsls r0, r3, 5 - adds r1, r0, r2 - lsls r1, 1 - adds r1, r6 - strh r7, [r1] - adds r0, r4 - lsls r0, 1 - adds r0, r6 - strh r7, [r0] - adds r0, r3, 0x1 - lsls r0, 16 - lsrs r3, r0, 16 - cmp r3, 0x9 - bls _08086830 - ldrh r0, [r5, 0x10] - adds r0, 0x2 - strh r0, [r5, 0x10] -_08086852: - movs r0, 0 -_08086854: - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_0808685C: .4byte 0x06000140 - thumb_func_end sub_80867F0 - - thumb_func_start sub_8086860 -sub_8086860: @ 8086860 - push {r4-r6,lr} - sub sp, 0x8 - adds r6, r0, 0 - movs r5, 0x80 - lsls r5, 24 - ands r5, r6 - lsrs r5, 16 - lsls r5, 16 - lsrs r5, 16 - ldr r0, _080868B4 @ =0x7fffffff - ands r6, r0 - lsls r0, r6, 16 - lsrs r0, 16 - movs r3, 0xA0 - lsls r3, 1 - movs r4, 0x50 - str r4, [sp] - movs r4, 0 - str r4, [sp, 0x4] - bl sub_80839D4 - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _080868B8 @ =gSprites - adds r2, r1 - ldr r1, _080868BC @ =SpriteCallbackDummy - str r1, [r2, 0x1C] - ldrb r3, [r2, 0x5] - movs r1, 0xD - negs r1, r1 - ands r1, r3 - strb r1, [r2, 0x5] - strh r6, [r2, 0x2E] - strh r5, [r2, 0x3A] - add sp, 0x8 - pop {r4-r6} - pop {r1} - bx r1 - .align 2, 0 -_080868B4: .4byte 0x7fffffff -_080868B8: .4byte gSprites -_080868BC: .4byte SpriteCallbackDummy - thumb_func_end sub_8086860 - - thumb_func_start sub_80868C0 -sub_80868C0: @ 80868C0 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x20] - subs r0, 0x14 - strh r0, [r1, 0x20] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - bgt _08086900 - movs r0, 0x78 - strh r0, [r1, 0x20] - movs r0, 0x1E - strh r0, [r1, 0x30] - ldr r0, _080868F4 @ =sub_8086904 - str r0, [r1, 0x1C] - movs r2, 0x3A - ldrsh r0, [r1, r2] - cmp r0, 0 - beq _080868F8 - ldrh r0, [r1, 0x2E] - movs r1, 0 - movs r2, 0x7D - movs r3, 0xA - bl PlayCry2 - b _08086900 - .align 2, 0 -_080868F4: .4byte sub_8086904 -_080868F8: - ldrh r0, [r1, 0x2E] - movs r1, 0 - bl PlayCry1 -_08086900: - pop {r0} - bx r0 - thumb_func_end sub_80868C0 - - thumb_func_start sub_8086904 -sub_8086904: @ 8086904 - push {lr} - adds r1, r0, 0 - ldrh r0, [r1, 0x30] - subs r0, 0x1 - strh r0, [r1, 0x30] - lsls r0, 16 - cmp r0, 0 - bne _08086918 - ldr r0, _0808691C @ =sub_8086920 - str r0, [r1, 0x1C] -_08086918: - pop {r0} - bx r0 - .align 2, 0 -_0808691C: .4byte sub_8086920 - thumb_func_end sub_8086904 - - thumb_func_start sub_8086920 -sub_8086920: @ 8086920 - push {lr} - adds r2, r0, 0 - ldrh r3, [r2, 0x20] - movs r0, 0x20 - ldrsh r1, [r2, r0] - movs r0, 0x40 - negs r0, r0 - cmp r1, r0 - bge _08086938 - movs r0, 0x1 - strh r0, [r2, 0x3C] - b _0808693E -_08086938: - adds r0, r3, 0 - subs r0, 0x14 - strh r0, [r2, 0x20] -_0808693E: - pop {r0} - bx r0 - thumb_func_end sub_8086920 - - thumb_func_start sub_8086944 -sub_8086944: @ 8086944 - push {r4,lr} - ldr r0, _08086980 @ =sub_8086990 - movs r1, 0xFF - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08086984 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08086988 @ =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r1, 0x26] - bl sav1_reset_battle_music_maybe - ldr r4, _0808698C @ =0x00000131 - adds r0, r4, 0 - bl sub_8056124 - cmp r0, 0 - beq _08086978 - adds r0, r4, 0 - bl Overworld_ChangeMusicTo -_08086978: - movs r0, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086980: .4byte sub_8086990 -_08086984: .4byte gTasks -_08086988: .4byte gFieldEffectArguments -_0808698C: .4byte 0x00000131 - thumb_func_end sub_8086944 - - thumb_func_start sub_8086990 -sub_8086990: @ 8086990 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080869B8 @ =gUnknown_83CC154 - ldr r2, _080869BC @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080869B8: .4byte gUnknown_83CC154 -_080869BC: .4byte gTasks - thumb_func_end sub_8086990 - - thumb_func_start sub_80869C0 -sub_80869C0: @ 80869C0 - push {r4-r6,lr} - mov r6, r8 - push {r6} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r5, _08086A18 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r5, 0x6] - movs r0, 0x8 - bl SetPlayerAvatarStateMask - adds r6, r4, 0 - adds r6, 0xA - movs r0, 0xC - adds r0, r4 - mov r8, r0 - adds r0, r6, 0 - mov r1, r8 - bl PlayerGetDestCoords - ldr r2, _08086A1C @ =gObjectEvents - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - adds r0, r2 - ldrb r0, [r0, 0x18] - lsrs r0, 4 - adds r1, r6, 0 - mov r2, r8 - bl MoveCoords - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r3} - mov r8, r3 - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08086A18: .4byte gPlayerAvatar -_08086A1C: .4byte gObjectEvents - thumb_func_end sub_80869C0 - - thumb_func_start sub_8086A20 -sub_8086A20: @ 8086A20 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086A64 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086A68 @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _08086A4A - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086A5C -_08086A4A: - bl sub_805CB70 - adds r0, r4, 0 - movs r1, 0x45 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08086A5C: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086A64: .4byte gPlayerAvatar -_08086A68: .4byte gObjectEvents - thumb_func_end sub_8086A20 - - thumb_func_start sub_8086A6C -sub_8086A6C: @ 8086A6C - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08086AA8 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086AAC @ =gObjectEvents - adds r0, r1 - bl ObjectEventCheckHeldMovementStatus - lsls r0, 24 - cmp r0, 0 - beq _08086AA2 - ldr r2, _08086AB0 @ =gFieldEffectArguments - movs r1, 0x26 - ldrsh r0, [r4, r1] - movs r1, 0x80 - lsls r1, 24 - orrs r0, r1 - str r0, [r2] - movs r0, 0x3B - bl FieldEffectStart - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086AA2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086AA8: .4byte gPlayerAvatar -_08086AAC: .4byte gObjectEvents -_08086AB0: .4byte gFieldEffectArguments - thumb_func_end sub_8086A6C - - thumb_func_start sub_8086AB4 -sub_8086AB4: @ 8086AB4 - push {r4-r6,lr} - adds r6, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08086B1E - ldr r5, _08086B24 @ =gPlayerAvatar - ldrb r0, [r5, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08086B28 @ =gObjectEvents - adds r4, r0 - movs r0, 0x2 - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetGraphicsId - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl sub_80641C0 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldr r1, _08086B2C @ =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r6, r2] - str r0, [r1] - movs r2, 0xC - ldrsh r0, [r6, r2] - str r0, [r1, 0x4] - ldrb r0, [r5, 0x5] - str r0, [r1, 0x8] - movs r0, 0x8 - bl FieldEffectStart - strb r0, [r4, 0x1A] - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08086B1E: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08086B24: .4byte gPlayerAvatar -_08086B28: .4byte gObjectEvents -_08086B2C: .4byte gFieldEffectArguments - thumb_func_end sub_8086AB4 - - thumb_func_start sub_8086B30 -sub_8086B30: @ 8086B30 - push {r4,r5,lr} - ldr r5, _08086B9C @ =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086BA0 @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086B96 - movs r0, 0 - strb r0, [r5, 0x6] - ldrb r1, [r5] - movs r0, 0xDF - ands r0, r1 - strb r0, [r5] - ldrb r0, [r4, 0x18] - lsrs r0, 4 - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetHeldMovement - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_80DC44C - bl UnfreezeObjectEvents - bl ScriptContext2_Disable - movs r0, 0x9 - bl FieldEffectActiveListRemove - ldr r0, _08086BA4 @ =sub_8086990 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask - movs r0, 0x16 - bl HelpSystem_SetSomeVariable2 -_08086B96: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086B9C: .4byte gPlayerAvatar -_08086BA0: .4byte gObjectEvents -_08086BA4: .4byte sub_8086990 - thumb_func_end sub_8086B30 - - thumb_func_start sub_8086BA8 -sub_8086BA8: @ 8086BA8 - push {lr} - ldr r0, _08086BC8 @ =gQuestLogState - ldrb r0, [r0] - cmp r0, 0x1 - bne _08086BBA - movs r0, 0x8 - movs r1, 0x59 - bl sub_811278C -_08086BBA: - ldr r0, _08086BCC @ =sub_8086BD0 - movs r1, 0xFF - bl CreateTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08086BC8: .4byte gQuestLogState -_08086BCC: .4byte sub_8086BD0 - thumb_func_end sub_8086BA8 - - thumb_func_start sub_8086BD0 -sub_8086BD0: @ 8086BD0 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08086BF8 @ =gUnknown_83CC168 - ldr r2, _08086BFC @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08086BF8: .4byte gUnknown_83CC168 -_08086BFC: .4byte gTasks - thumb_func_end sub_8086BD0 - - thumb_func_start sub_8086C00 -sub_8086C00: @ 8086C00 - push {r4,lr} - adds r4, r0, 0 - bl ScriptContext2_Enable - bl FreezeObjectEvents - ldr r1, _08086C20 @ =gPlayerAvatar - movs r0, 0x1 - strb r0, [r1, 0x6] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086C20: .4byte gPlayerAvatar - thumb_func_end sub_8086C00 - - thumb_func_start sub_8086C24 -sub_8086C24: @ 8086C24 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08086C68 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086C6C @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _08086C4E - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086C60 -_08086C4E: - bl sub_805CBE8 - adds r0, r4, 0 - movs r1, 0x45 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08086C60: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086C68: .4byte gPlayerAvatar -_08086C6C: .4byte gObjectEvents - thumb_func_end sub_8086C24 - - thumb_func_start sub_8086C70 -sub_8086C70: @ 8086C70 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r5, _08086C9C @ =gPlayerAvatar - ldrb r1, [r5, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086CA0 @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086CEE - ldrb r1, [r5] - movs r0, 0x6 - ands r0, r1 - cmp r0, 0 - beq _08086CA4 - movs r0, 0x1 - b _08086CAE - .align 2, 0 -_08086C9C: .4byte gPlayerAvatar -_08086CA0: .4byte gObjectEvents -_08086CA4: - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08086CC0 - movs r0, 0x2 -_08086CAE: - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetGraphicsId - b _08086CD2 -_08086CC0: - movs r0, 0 - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetGraphicsId -_08086CD2: - ldrb r0, [r4, 0x18] - lsls r0, 28 - lsrs r0, 28 - bl GetFaceDirectionMovementAction - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventForceSetHeldMovement - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_08086CEE: - pop {r4-r6} - pop {r0} - bx r0 - thumb_func_end sub_8086C70 - - thumb_func_start sub_8086CF4 -sub_8086CF4: @ 8086CF4 - push {r4,lr} - ldr r4, _08086D2C @ =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086D30 @ =gObjectEvents - adds r0, r1 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086D26 - movs r0, 0 - strb r0, [r4, 0x6] - movs r0, 0x41 - bl FieldEffectActiveListRemove - ldr r0, _08086D34 @ =sub_8086BD0 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_08086D26: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086D2C: .4byte gPlayerAvatar -_08086D30: .4byte gObjectEvents -_08086D34: .4byte sub_8086BD0 - thumb_func_end sub_8086CF4 - - thumb_func_start sub_8086D38 -sub_8086D38: @ 8086D38 - push {r4,lr} - ldr r0, _08086D84 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0x78 - movs r2, 0 - movs r3, 0x1 - bl CreateSprite - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - lsls r2, r4, 4 - adds r2, r4 - lsls r2, 2 - ldr r0, _08086D88 @ =gSprites - adds r2, r0 - ldrb r1, [r2, 0x5] - movs r0, 0xF - ands r0, r1 - movs r1, 0xD - negs r1, r1 - ands r0, r1 - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2, 0x5] - ldr r0, _08086D8C @ =sub_8086D94 - str r0, [r2, 0x1C] - ldr r0, _08086D90 @ =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r2, 0x30] - movs r0, 0x97 - bl PlaySE - adds r0, r4, 0 - pop {r4} - pop {r1} - bx r1 - .align 2, 0 -_08086D84: .4byte gFieldEffectObjectTemplatePointers -_08086D88: .4byte gSprites -_08086D8C: .4byte sub_8086D94 -_08086D90: .4byte gFieldEffectArguments - thumb_func_end sub_8086D38 - - thumb_func_start sub_8086D94 -sub_8086D94: @ 8086D94 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08086DF6 - movs r2, 0x30 - ldrsh r0, [r4, r2] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08086E0C @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_08086DF6: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _08086E06 - adds r0, r4, 0 - movs r1, 0x1E - bl FieldEffectStop -_08086E06: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086E0C: .4byte gSprites - thumb_func_end sub_8086D94 - - thumb_func_start FldEff_UseFly -FldEff_UseFly: @ 8086E10 - push {lr} - ldr r0, _08086E34 @ =sub_8086E40 - movs r1, 0xFE - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08086E38 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - ldr r0, _08086E3C @ =gFieldEffectArguments - ldr r0, [r0] - strh r0, [r1, 0xA] - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08086E34: .4byte sub_8086E40 -_08086E38: .4byte gTasks -_08086E3C: .4byte gFieldEffectArguments - thumb_func_end FldEff_UseFly - - thumb_func_start sub_8086E40 -sub_8086E40: @ 8086E40 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _08086E68 @ =gUnknown_83CC178 - ldr r2, _08086E6C @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_08086E68: .4byte gUnknown_83CC178 -_08086E6C: .4byte gTasks - thumb_func_end sub_8086E40 - - thumb_func_start sub_8086E70 -sub_8086E70: @ 8086E70 - push {r4-r6,lr} - adds r5, r0, 0 - ldr r6, _08086EC0 @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086EC4 @ =gObjectEvents - adds r4, r0, r1 - adds r0, r4, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _08086E9A - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086EB8 -_08086E9A: - ldrb r0, [r6] - strh r0, [r5, 0x26] - movs r0, 0x1 - strb r0, [r6, 0x6] - bl SetPlayerAvatarStateMask - bl sub_805CB70 - adds r0, r4, 0 - movs r1, 0x45 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_08086EB8: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08086EC0: .4byte gPlayerAvatar -_08086EC4: .4byte gObjectEvents - thumb_func_end sub_8086E70 - - thumb_func_start sub_8086EC8 -sub_8086EC8: @ 8086EC8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08086F00 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086F04 @ =gObjectEvents - adds r0, r1 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086EF8 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldr r1, _08086F08 @ =gFieldEffectArguments - movs r2, 0xA - ldrsh r0, [r4, r2] - str r0, [r1] - movs r0, 0x3B - bl FieldEffectStart -_08086EF8: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086F00: .4byte gPlayerAvatar -_08086F04: .4byte gObjectEvents -_08086F08: .4byte gFieldEffectArguments - thumb_func_end sub_8086EC8 - - thumb_func_start sub_8086F0C -sub_8086F0C: @ 8086F0C - push {r4,r5,lr} - adds r4, r0, 0 - movs r0, 0x6 - bl FieldEffectActiveListContains - lsls r0, 24 - cmp r0, 0 - bne _08086F54 - ldr r0, _08086F5C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086F60 @ =gObjectEvents - adds r5, r0, r1 - ldrh r1, [r4, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _08086F44 - ldrb r0, [r5, 0x1A] - movs r1, 0x2 - bl sub_80DC44C - ldrb r0, [r5, 0x1A] - movs r1, 0 - bl sub_80DC478 -_08086F44: - bl sub_8087168 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r4, 0xA] - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08086F54: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08086F5C: .4byte gPlayerAvatar -_08086F60: .4byte gObjectEvents - thumb_func_end sub_8086F0C - - thumb_func_start sub_8086F64 -sub_8086F64: @ 8086F64 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80871AC - lsls r0, 24 - cmp r0, 0 - beq _08086F98 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xC] - movs r0, 0x1 - bl SetPlayerAvatarTransitionFlags - ldr r0, _08086FA0 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086FA4 @ =gObjectEvents - adds r0, r1 - movs r1, 0x2 - bl ObjectEventSetHeldMovement -_08086F98: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086FA0: .4byte gPlayerAvatar -_08086FA4: .4byte gObjectEvents - thumb_func_end sub_8086F64 - - thumb_func_start sub_8086FA8 -sub_8086FA8: @ 8086FA8 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08086FF4 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08086FF8 @ =gObjectEvents - adds r2, r0, r1 - ldrh r1, [r4, 0xC] - movs r3, 0xC - ldrsh r0, [r4, r3] - cmp r0, 0 - beq _08086FCE - subs r0, r1, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _08086FEC -_08086FCE: - adds r0, r2, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08086FEC - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x97 - bl PlaySE - ldrb r0, [r4, 0xA] - bl sub_80871C8 -_08086FEC: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08086FF4: .4byte gPlayerAvatar -_08086FF8: .4byte gObjectEvents - thumb_func_end sub_8086FA8 - - thumb_func_start sub_8086FFC -sub_8086FFC: @ 8086FFC - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x7 - ble _0808705A - ldr r0, _08087060 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08087064 @ =gObjectEvents - adds r4, r0 - movs r0, 0x2 - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetGraphicsId - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087068 @ =gSprites - adds r0, r1 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r0, [r4, 0x1] - movs r1, 0x10 - orrs r0, r1 - strb r0, [r4, 0x1] - adds r0, r4, 0 - movs r1, 0x54 - bl ObjectEventSetHeldMovement - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - movs r0, 0 - strh r0, [r5, 0xC] -_0808705A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087060: .4byte gPlayerAvatar -_08087064: .4byte gObjectEvents -_08087068: .4byte gSprites - thumb_func_end sub_8086FFC - - thumb_func_start sub_808706C -sub_808706C: @ 808706C - push {r4,r5,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xC] - adds r0, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x9 - ble _080870FC - ldr r0, _08087104 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08087108 @ =gObjectEvents - adds r4, r0 - adds r0, r4, 0 - bl ObjectEventClearHeldMovementIfActive - ldrb r1, [r4, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r1, [r4, 0x2] - movs r0, 0x41 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x2] - ldrb r0, [r5, 0xA] - ldrb r1, [r4, 0x4] - bl sub_8087204 - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _0808710C @ =gSprites - adds r0, r4 - ldr r1, _08087110 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x8] - lsls r1, 1 - adds r1, 0x1 - lsls r1, 24 - lsrs r1, 24 - bl StartSpriteAnim - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0 - bl sub_80877FC - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _08087114 @ =sub_8087828 - str r1, [r0] - bl CameraObjectReset2 - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] -_080870FC: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087104: .4byte gPlayerAvatar -_08087108: .4byte gObjectEvents -_0808710C: .4byte gSprites -_08087110: .4byte gSaveBlock2Ptr -_08087114: .4byte sub_8087828 - thumb_func_end sub_808706C - - thumb_func_start sub_8087118 -sub_8087118: @ 8087118 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80871AC - lsls r0, 24 - cmp r0, 0 - beq _08087132 - bl sub_807DC18 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08087132: - pop {r4} - pop {r0} - bx r0 - thumb_func_end sub_8087118 - - thumb_func_start sub_8087138 -sub_8087138: @ 8087138 - push {lr} - ldr r0, _08087160 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _0808715A - movs r0, 0x1F - bl FieldEffectActiveListRemove - ldr r0, _08087164 @ =sub_8086E40 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_0808715A: - pop {r0} - bx r0 - .align 2, 0 -_08087160: .4byte gPaletteFade -_08087164: .4byte sub_8086E40 - thumb_func_end sub_8087138 - - thumb_func_start sub_8087168 -sub_8087168: @ 8087168 - push {lr} - ldr r0, _080871A0 @ =gFieldEffectObjectTemplatePointers - ldr r0, [r0, 0x68] - movs r1, 0xFF - movs r2, 0xB4 - movs r3, 0x1 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - ldr r1, _080871A4 @ =gSprites - adds r2, r1 - ldrb r3, [r2, 0x5] - movs r1, 0xF - ands r1, r3 - movs r3, 0xD - negs r3, r3 - ands r1, r3 - movs r3, 0x4 - orrs r1, r3 - strb r1, [r2, 0x5] - ldr r1, _080871A8 @ =sub_8087220 - str r1, [r2, 0x1C] - pop {r1} - bx r1 - .align 2, 0 -_080871A0: .4byte gFieldEffectObjectTemplatePointers -_080871A4: .4byte gSprites -_080871A8: .4byte sub_8087220 - thumb_func_end sub_8087168 - - thumb_func_start sub_80871AC -sub_80871AC: @ 80871AC - lsls r0, 24 - lsrs r0, 24 - ldr r2, _080871C4 @ =gSprites - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrh r0, [r1, 0x3C] - lsls r0, 24 - lsrs r0, 24 - bx lr - .align 2, 0 -_080871C4: .4byte gSprites - thumb_func_end sub_80871AC - - thumb_func_start sub_80871C8 -sub_80871C8: @ 80871C8 - push {r4,lr} - lsls r0, 24 - lsrs r0, 24 - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _080871FC @ =gSprites - adds r4, r0 - ldr r0, _08087200 @ =sub_80872F0 - str r0, [r4, 0x1C] - movs r1, 0 - movs r0, 0x78 - strh r0, [r4, 0x20] - strh r1, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - adds r0, r4, 0 - adds r0, 0x2E - movs r2, 0x10 - bl memset - movs r0, 0x40 - strh r0, [r4, 0x3A] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080871FC: .4byte gSprites -_08087200: .4byte sub_80872F0 - thumb_func_end sub_80871C8 - - thumb_func_start sub_8087204 -sub_8087204: @ 8087204 - lsls r0, 24 - lsrs r0, 24 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _0808721C @ =gSprites - lsls r2, r0, 4 - adds r2, r0 - lsls r2, 2 - adds r2, r3 - strh r1, [r2, 0x3A] - bx lr - .align 2, 0 -_0808721C: .4byte gSprites - thumb_func_end sub_8087204 - - thumb_func_start sub_8087220 -sub_8087220: @ 8087220 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _080872E2 - movs r1, 0x2E - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808727A - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _0808725C @ =gUnknown_83CC1CC - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAffineAnim - ldr r0, _08087260 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _08087264 - movs r0, 0x80 - b _08087266 - .align 2, 0 -_0808725C: .4byte gUnknown_83CC1CC -_08087260: .4byte gSaveBlock2Ptr -_08087264: - movs r0, 0x76 -_08087266: - strh r0, [r4, 0x20] - ldr r0, _080872E8 @ =0x0000ffd0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0x40 - strh r0, [r4, 0x30] - adds r0, 0xC0 - strh r0, [r4, 0x32] -_0808727A: - ldrh r0, [r4, 0x32] - lsls r0, 16 - asrs r0, 24 - ldrh r1, [r4, 0x30] - adds r0, r1 - strh r0, [r4, 0x30] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r2, [r4, 0x32] - movs r0, 0x32 - ldrsh r1, [r4, r0] - ldr r0, _080872EC @ =0x000007ff - cmp r1, r0 - bgt _080872B0 - adds r0, r2, 0 - adds r0, 0x60 - strh r0, [r4, 0x32] -_080872B0: - movs r1, 0x30 - ldrsh r0, [r4, r1] - cmp r0, 0x81 - ble _080872E2 - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec -_080872E2: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_080872E8: .4byte 0x0000ffd0 -_080872EC: .4byte 0x000007ff - thumb_func_end sub_8087220 - - thumb_func_start sub_80872F0 -sub_80872F0: @ 80872F0 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0x8C - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x4 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _0808734E - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08087360 @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_0808734E: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _0808735A - movs r0, 0x1 - strh r0, [r4, 0x3C] -_0808735A: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087360: .4byte gSprites - thumb_func_end sub_80872F0 - - thumb_func_start sub_8087364 -sub_8087364: @ 8087364 - push {r4,lr} - adds r4, r0, 0 - movs r1, 0x3C - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _0808744E - movs r2, 0x2E - ldrsh r0, [r4, r2] - cmp r0, 0 - bne _080873C4 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _080873A0 @ =gUnknown_83CC1CC - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - movs r1, 0x1 - bl StartSpriteAffineAnim - ldr r0, _080873A4 @ =gSaveBlock2Ptr - ldr r0, [r0] - ldrb r0, [r0, 0x8] - cmp r0, 0 - bne _080873A8 - movs r0, 0x70 - b _080873AA - .align 2, 0 -_080873A0: .4byte gUnknown_83CC1CC -_080873A4: .4byte gSaveBlock2Ptr -_080873A8: - movs r0, 0x64 -_080873AA: - strh r0, [r4, 0x20] - ldr r0, _08087454 @ =0x0000ffe0 - strh r0, [r4, 0x22] - ldrh r0, [r4, 0x2E] - adds r0, 0x1 - strh r0, [r4, 0x2E] - movs r0, 0xF0 - strh r0, [r4, 0x30] - movs r0, 0x80 - lsls r0, 4 - strh r0, [r4, 0x32] - movs r0, 0x80 - strh r0, [r4, 0x36] -_080873C4: - ldrh r1, [r4, 0x32] - lsls r1, 16 - asrs r1, 24 - ldrh r2, [r4, 0x30] - adds r2, r1 - ldrh r0, [r4, 0x34] - adds r0, r1 - strh r0, [r4, 0x34] - movs r0, 0xFF - ands r2, r0 - strh r2, [r4, 0x30] - movs r3, 0x30 - ldrsh r0, [r4, r3] - movs r1, 0x20 - bl Cos - strh r0, [r4, 0x24] - movs r1, 0x30 - ldrsh r0, [r4, r1] - movs r1, 0x78 - bl Sin - strh r0, [r4, 0x26] - ldrh r1, [r4, 0x32] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - ble _08087406 - ldrh r0, [r4, 0x36] - subs r0, r1, r0 - strh r0, [r4, 0x32] -_08087406: - ldrh r1, [r4, 0x36] - movs r3, 0x36 - ldrsh r0, [r4, r3] - cmp r0, 0xFF - bgt _08087416 - adds r0, r1, 0 - adds r0, 0x18 - strh r0, [r4, 0x36] -_08087416: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0xFF - bgt _08087420 - strh r2, [r4, 0x32] -_08087420: - movs r2, 0x34 - ldrsh r0, [r4, r2] - cmp r0, 0x3B - ble _0808744E - ldrh r0, [r4, 0x3C] - adds r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - movs r0, 0x4 - negs r0, r0 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - adds r2, r4, 0 - adds r2, 0x3E - ldrb r0, [r2] - movs r1, 0x4 - orrs r0, r1 - strb r0, [r2] -_0808744E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087454: .4byte 0x0000ffe0 - thumb_func_end sub_8087364 - - thumb_func_start sub_8087458 -sub_8087458: @ 8087458 - push {r4,lr} - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - adds r0, r4, 0 - bl sub_80871C8 - ldr r1, _0808747C @ =gSprites - lsls r0, r4, 4 - adds r0, r4 - lsls r0, 2 - adds r1, 0x1C - adds r0, r1 - ldr r1, _08087480 @ =sub_8087364 - str r1, [r0] - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808747C: .4byte gSprites -_08087480: .4byte sub_8087364 - thumb_func_end sub_8087458 - - thumb_func_start FldEff_FlyIn -FldEff_FlyIn: @ 8087484 - push {lr} - ldr r0, _08087494 @ =sub_8087498 - movs r1, 0xFE - bl CreateTask - movs r0, 0 - pop {r1} - bx r1 - .align 2, 0 -_08087494: .4byte sub_8087498 - thumb_func_end FldEff_FlyIn - - thumb_func_start sub_8087498 -sub_8087498: @ 8087498 - push {lr} - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - ldr r3, _080874C0 @ =gUnknown_83CC1D4 - ldr r2, _080874C4 @ =gTasks - lsls r0, r1, 2 - adds r0, r1 - lsls r0, 3 - adds r0, r2 - movs r2, 0x8 - ldrsh r1, [r0, r2] - lsls r1, 2 - adds r1, r3 - ldr r1, [r1] - bl _call_via_r1 - pop {r0} - bx r0 - .align 2, 0 -_080874C0: .4byte gUnknown_83CC1D4 -_080874C4: .4byte gTasks - thumb_func_end sub_8087498 - - thumb_func_start sub_80874C8 -sub_80874C8: @ 80874C8 - push {r4-r6,lr} - adds r6, r0, 0 - ldr r4, _080875B4 @ =gPlayerAvatar - ldrb r1, [r4, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080875B8 @ =gObjectEvents - adds r5, r0, r1 - adds r0, r5, 0 - bl ObjectEventIsMovementOverridden - lsls r0, 24 - cmp r0, 0 - beq _080874F2 - adds r0, r5, 0 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _080875AE -_080874F2: - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] - movs r0, 0x21 - strh r0, [r6, 0xC] - ldrb r0, [r4] - strh r0, [r6, 0x26] - movs r0, 0x1 - strb r0, [r4, 0x6] - bl SetPlayerAvatarStateMask - ldrh r1, [r6, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _0808751A - ldrb r0, [r5, 0x1A] - movs r1, 0 - bl sub_80DC44C -_0808751A: - movs r0, 0x2 - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r5, 0 - bl ObjectEventSetGraphicsId - bl CameraObjectReset2 - adds r0, r5, 0 - movs r1, 0x3 - bl ObjectEventTurn - ldrb r1, [r5, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r4, _080875BC @ =gSprites - adds r0, r4 - movs r1, 0x16 - bl StartSpriteAnim - ldrb r1, [r5, 0x1] - movs r0, 0x21 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - bl sub_8087168 - lsls r0, 24 - lsrs r0, 24 - strh r0, [r6, 0xA] - bl sub_80871C8 - ldrb r0, [r6, 0xA] - ldrb r1, [r5, 0x4] - bl sub_8087204 - movs r0, 0xA - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - ldr r1, _080875C0 @ =gSaveBlock2Ptr - ldr r1, [r1] - ldrb r1, [r1, 0x8] - lsls r1, 25 - movs r2, 0x80 - lsls r2, 18 - adds r1, r2 - lsrs r1, 24 - bl StartSpriteAnim - movs r0, 0xA - ldrsh r1, [r6, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r4 - movs r1, 0x1 - bl sub_80877FC - movs r2, 0xA - ldrsh r1, [r6, r2] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r4, 0x1C - adds r0, r4 - ldr r1, _080875C4 @ =sub_8087828 - str r1, [r0] -_080875AE: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_080875B4: .4byte gPlayerAvatar -_080875B8: .4byte gObjectEvents -_080875BC: .4byte gSprites -_080875C0: .4byte gSaveBlock2Ptr -_080875C4: .4byte sub_8087828 - thumb_func_end sub_80874C8 - - thumb_func_start sub_80875C8 -sub_80875C8: @ 80875C8 - push {r4-r6,lr} - adds r5, r0, 0 - movs r0, 0xA - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r6, _08087638 @ =gSprites - adds r0, r6 - bl sub_80878C0 - ldrh r1, [r5, 0xC] - movs r2, 0xC - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _080875F2 - subs r0, r1, 0x1 - strh r0, [r5, 0xC] - lsls r0, 16 - cmp r0, 0 - bne _08087630 -_080875F2: - ldr r0, _0808763C @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087640 @ =gObjectEvents - adds r0, r1 - ldrb r0, [r0, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - adds r4, r6 - ldrb r0, [r5, 0xA] - movs r1, 0x40 - bl sub_8087204 - ldrh r0, [r4, 0x24] - ldrh r1, [r4, 0x20] - adds r0, r1 - movs r1, 0 - strh r0, [r4, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - strh r0, [r4, 0x22] - strh r1, [r4, 0x24] - strh r1, [r4, 0x26] - ldrh r0, [r5, 0x8] - adds r0, 0x1 - strh r0, [r5, 0x8] - strh r1, [r5, 0xC] -_08087630: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08087638: .4byte gSprites -_0808763C: .4byte gPlayerAvatar -_08087640: .4byte gObjectEvents - thumb_func_end sub_80875C8 - - thumb_func_start sub_8087644 -sub_8087644: @ 8087644 - push {r4,lr} - sub sp, 0x24 - adds r4, r0, 0 - ldr r1, _0808768C @ =gUnknown_83CC1F0 - mov r0, sp - movs r2, 0x24 - bl memcpy - ldr r0, _08087690 @ =gPlayerAvatar - ldrb r0, [r0, 0x4] - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _08087694 @ =gSprites - adds r1, r0 - movs r2, 0xC - ldrsh r0, [r4, r2] - lsls r0, 1 - add r0, sp - ldrh r0, [r0] - strh r0, [r1, 0x26] - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x11 - ble _08087682 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] -_08087682: - add sp, 0x24 - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808768C: .4byte gUnknown_83CC1F0 -_08087690: .4byte gPlayerAvatar -_08087694: .4byte gSprites - thumb_func_end sub_8087644 - - thumb_func_start sub_8087698 -sub_8087698: @ 8087698 - push {r4-r6,lr} - adds r6, r0, 0 - ldrb r0, [r6, 0xA] - bl sub_80871AC - lsls r0, 24 - cmp r0, 0 - beq _080876FC - ldr r0, _08087704 @ =gPlayerAvatar - ldrb r0, [r0, 0x5] - lsls r5, r0, 3 - adds r5, r0 - lsls r5, 2 - ldr r0, _08087708 @ =gObjectEvents - adds r5, r0 - ldrb r0, [r5, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _0808770C @ =gSprites - adds r4, r0 - ldrb r1, [r5, 0x1] - movs r0, 0x11 - negs r0, r0 - ands r0, r1 - strb r0, [r5, 0x1] - movs r0, 0x10 - ldrsh r1, [r5, r0] - movs r0, 0x12 - ldrsh r2, [r5, r0] - adds r0, r5, 0 - bl MoveObjectEventToMapCoords - movs r0, 0 - strh r0, [r4, 0x24] - strh r0, [r4, 0x26] - adds r4, 0x3E - ldrb r0, [r4] - movs r1, 0x2 - orrs r0, r1 - strb r0, [r4] - bl sub_805CB70 - adds r0, r5, 0 - movs r1, 0x45 - bl ObjectEventSetHeldMovement - ldrh r0, [r6, 0x8] - adds r0, 0x1 - strh r0, [r6, 0x8] -_080876FC: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_08087704: .4byte gPlayerAvatar -_08087708: .4byte gObjectEvents -_0808770C: .4byte gSprites - thumb_func_end sub_8087698 - - thumb_func_start sub_8087710 -sub_8087710: @ 8087710 - push {r4,lr} - adds r4, r0, 0 - ldr r0, _08087740 @ =gPlayerAvatar - ldrb r1, [r0, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087744 @ =gObjectEvents - adds r0, r1 - bl ObjectEventClearHeldMovementIfFinished - lsls r0, 24 - cmp r0, 0 - beq _08087738 - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - ldrb r0, [r4, 0xA] - bl sub_8087458 -_08087738: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087740: .4byte gPlayerAvatar -_08087744: .4byte gObjectEvents - thumb_func_end sub_8087710 - - thumb_func_start sub_8087748 -sub_8087748: @ 8087748 - push {r4,lr} - adds r4, r0, 0 - ldrb r0, [r4, 0xA] - bl sub_80871AC - lsls r0, 24 - cmp r0, 0 - beq _08087774 - movs r0, 0xA - ldrsh r1, [r4, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _0808777C @ =gSprites - adds r0, r1 - bl DestroySprite - ldrh r0, [r4, 0x8] - adds r0, 0x1 - strh r0, [r4, 0x8] - movs r0, 0x10 - strh r0, [r4, 0xA] -_08087774: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_0808777C: .4byte gSprites - thumb_func_end sub_8087748 - - thumb_func_start fishE -fishE: @ 8087780 - push {r4-r7,lr} - adds r5, r0, 0 - ldrh r0, [r5, 0xA] - subs r0, 0x1 - strh r0, [r5, 0xA] - lsls r0, 16 - cmp r0, 0 - bne _080877EA - ldr r6, _080877F0 @ =gPlayerAvatar - ldrb r1, [r6, 0x5] - lsls r0, r1, 3 - adds r0, r1 - lsls r0, 2 - ldr r1, _080877F4 @ =gObjectEvents - adds r4, r0, r1 - movs r7, 0 - ldrh r1, [r5, 0x26] - movs r0, 0x8 - ands r0, r1 - cmp r0, 0 - beq _080877B4 - movs r7, 0x2 - ldrb r0, [r4, 0x1A] - movs r1, 0x1 - bl sub_80DC44C -_080877B4: - adds r0, r7, 0 - bl sub_805C808 - adds r1, r0, 0 - lsls r1, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl ObjectEventSetGraphicsId - adds r0, r4, 0 - movs r1, 0x1 - bl ObjectEventTurn - ldrh r0, [r5, 0x26] - strb r0, [r6] - movs r0, 0 - strb r0, [r6, 0x6] - movs r0, 0x20 - bl FieldEffectActiveListRemove - ldr r0, _080877F8 @ =sub_8087498 - bl FindTaskIdByFunc - lsls r0, 24 - lsrs r0, 24 - bl DestroyTask -_080877EA: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_080877F0: .4byte gPlayerAvatar -_080877F4: .4byte gObjectEvents -_080877F8: .4byte sub_8087498 - thumb_func_end fishE - - thumb_func_start sub_80877FC -sub_80877FC: @ 80877FC - push {r4,r5,lr} - adds r4, r0, 0 - lsls r5, r1, 24 - lsrs r5, 24 - ldrb r0, [r4, 0x1] - movs r1, 0x3 - orrs r0, r1 - strb r0, [r4, 0x1] - ldr r0, _08087824 @ =gUnknown_83CC23C - str r0, [r4, 0x10] - adds r0, r4, 0 - bl InitSpriteAffineAnim - adds r0, r4, 0 - adds r1, r5, 0 - bl StartSpriteAffineAnim - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087824: .4byte gUnknown_83CC23C - thumb_func_end sub_80877FC - - thumb_func_start sub_8087828 -sub_8087828: @ 8087828 - push {r4,r5,lr} - adds r4, r0, 0 - movs r1, 0x32 - ldrsh r0, [r4, r1] - movs r1, 0xB4 - bl Cos - movs r5, 0 - strh r0, [r4, 0x24] - movs r2, 0x32 - ldrsh r0, [r4, r2] - movs r1, 0x48 - bl Sin - strh r0, [r4, 0x26] - ldrh r0, [r4, 0x32] - adds r0, 0x2 - movs r1, 0xFF - ands r0, r1 - strh r0, [r4, 0x32] - movs r1, 0x3A - ldrsh r0, [r4, r1] - cmp r0, 0x40 - beq _08087886 - lsls r1, r0, 4 - adds r1, r0 - lsls r1, 2 - ldr r0, _080878BC @ =gSprites - adds r1, r0 - adds r3, r1, 0 - adds r3, 0x3E - ldrb r2, [r3] - movs r0, 0x3 - negs r0, r0 - ands r0, r2 - strb r0, [r3] - ldrh r0, [r4, 0x24] - ldrh r2, [r4, 0x20] - adds r0, r2 - strh r0, [r1, 0x20] - ldrh r0, [r4, 0x26] - ldrh r2, [r4, 0x22] - adds r0, r2 - subs r0, 0x8 - strh r0, [r1, 0x22] - strh r5, [r1, 0x24] - strh r5, [r1, 0x26] -_08087886: - movs r1, 0x32 - ldrsh r0, [r4, r1] - cmp r0, 0x7F - ble _080878B4 - movs r0, 0x1 - strh r0, [r4, 0x3C] - ldrb r1, [r4, 0x1] - subs r0, 0x5 - ands r0, r1 - strb r0, [r4, 0x1] - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r0, 27 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec -_080878B4: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_080878BC: .4byte gSprites - thumb_func_end sub_8087828 - - thumb_func_start sub_80878C0 -sub_80878C0: @ 80878C0 - push {r4-r6,lr} - adds r4, r0, 0 - ldrb r5, [r4, 0x1] - lsls r0, r5, 30 - cmp r0, 0 - beq _08087916 - ldr r1, _0808791C @ =gOamMatrices - ldrb r0, [r4, 0x3] - lsls r0, 26 - lsrs r3, r0, 27 - lsls r0, r3, 3 - adds r1, r0, r1 - movs r2, 0 - ldrsh r0, [r1, r2] - movs r2, 0x80 - lsls r2, 1 - cmp r0, r2 - beq _080878EC - movs r6, 0x6 - ldrsh r0, [r1, r6] - cmp r0, r2 - bne _08087916 -_080878EC: - movs r0, 0x4 - negs r0, r0 - ands r0, r5 - strb r0, [r4, 0x1] - adds r0, r3, 0 - bl FreeOamMatrix - ldrb r1, [r4, 0x1] - lsrs r1, 6 - ldrb r2, [r4, 0x3] - lsrs r2, 6 - adds r0, r4, 0 - movs r3, 0 - bl CalcCenterToCornerVec - adds r0, r4, 0 - movs r1, 0 - bl StartSpriteAnim - ldr r0, _08087920 @ =sub_80872F0 - str r0, [r4, 0x1C] -_08087916: - pop {r4-r6} - pop {r0} - bx r0 - .align 2, 0 -_0808791C: .4byte gOamMatrices -_08087920: .4byte sub_80872F0 - thumb_func_end sub_80878C0 - - thumb_func_start sub_8087924 -sub_8087924: @ 8087924 - push {r4-r7,lr} - sub sp, 0x4 - ldr r7, _080879C4 @ =gFieldEffectArguments - ldrb r0, [r7] - ldrb r1, [r7, 0x4] - ldrb r2, [r7, 0x8] - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _080879BA - mov r0, sp - ldrb r0, [r0] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _080879C8 @ =gObjectEvents - adds r4, r0 - movs r0, 0x10 - ldrsh r5, [r4, r0] - subs r5, 0x7 - movs r0, 0x12 - ldrsh r6, [r4, r0] - subs r6, 0x7 - ldr r1, [r7, 0xC] - subs r5, r1, r5 - lsls r5, 4 - ldr r2, [r7, 0x10] - subs r6, r2, r6 - lsls r6, 4 - adds r1, 0x7 - lsls r1, 16 - asrs r1, 16 - adds r2, 0x7 - lsls r2, 16 - asrs r2, 16 - adds r0, r4, 0 - bl ShiftObjectEventCoords - ldr r0, _080879CC @ =sub_80879D8 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r1, _080879D0 @ =gTasks - lsls r2, r0, 2 - adds r2, r0 - lsls r2, 3 - adds r2, r1 - ldrb r0, [r4, 0x4] - strh r0, [r2, 0xA] - ldr r3, _080879D4 @ =gSprites - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x20] - adds r0, r5 - strh r0, [r2, 0xC] - ldrb r1, [r4, 0x4] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - adds r0, r3 - ldrh r0, [r0, 0x22] - adds r0, r6 - strh r0, [r2, 0xE] - ldr r0, [r7, 0x14] - strh r0, [r2, 0x18] - mov r0, sp - ldrb r0, [r0] - strh r0, [r2, 0x1A] -_080879BA: - movs r0, 0 - add sp, 0x4 - pop {r4-r7} - pop {r1} - bx r1 - .align 2, 0 -_080879C4: .4byte gFieldEffectArguments -_080879C8: .4byte gObjectEvents -_080879CC: .4byte sub_80879D8 -_080879D0: .4byte gTasks -_080879D4: .4byte gSprites - thumb_func_end sub_8087924 - - thumb_func_start sub_80879D8 -sub_80879D8: @ 80879D8 - push {r4-r7,lr} - lsls r0, 24 - lsrs r7, r0, 24 - lsls r0, r7, 2 - adds r0, r7 - lsls r0, 3 - ldr r1, _08087A04 @ =gTasks+0x8 - adds r5, r0, r1 - movs r0, 0x2 - ldrsh r1, [r5, r0] - lsls r0, r1, 4 - adds r0, r1 - lsls r0, 2 - ldr r1, _08087A08 @ =gSprites - adds r6, r0, r1 - movs r1, 0 - ldrsh r0, [r5, r1] - cmp r0, 0 - beq _08087A0C - cmp r0, 0x1 - beq _08087A4A - b _08087AA8 - .align 2, 0 -_08087A04: .4byte gTasks+0x8 -_08087A08: .4byte gSprites -_08087A0C: - ldrh r0, [r6, 0x20] - lsls r0, 4 - strh r0, [r5, 0x8] - ldrh r0, [r6, 0x22] - lsls r0, 4 - strh r0, [r5, 0xA] - movs r2, 0x4 - ldrsh r0, [r5, r2] - lsls r0, 4 - movs r2, 0x8 - ldrsh r1, [r5, r2] - subs r0, r1 - movs r2, 0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0xC] - movs r1, 0x6 - ldrsh r0, [r5, r1] - lsls r0, 4 - movs r2, 0xA - ldrsh r1, [r5, r2] - subs r0, r1 - movs r2, 0x10 - ldrsh r1, [r5, r2] - bl __divsi3 - strh r0, [r5, 0xE] - ldrh r0, [r5] - adds r0, 0x1 - strh r0, [r5] -_08087A4A: - ldrh r1, [r5, 0x10] - movs r2, 0x10 - ldrsh r0, [r5, r2] - cmp r0, 0 - beq _08087A78 - subs r0, r1, 0x1 - strh r0, [r5, 0x10] - ldrh r1, [r5, 0xC] - ldrh r0, [r5, 0x8] - adds r1, r0 - strh r1, [r5, 0x8] - ldrh r0, [r5, 0xE] - ldrh r2, [r5, 0xA] - adds r0, r2 - strh r0, [r5, 0xA] - lsls r1, 16 - asrs r1, 20 - strh r1, [r6, 0x20] - ldrh r0, [r5, 0xA] - lsls r0, 16 - asrs r0, 20 - strh r0, [r6, 0x22] - b _08087AA8 -_08087A78: - movs r1, 0x12 - ldrsh r0, [r5, r1] - lsls r4, r0, 3 - adds r4, r0 - lsls r4, 2 - ldr r0, _08087AB0 @ =gObjectEvents - adds r4, r0 - ldrh r0, [r5, 0x4] - strh r0, [r6, 0x20] - ldrh r0, [r5, 0x6] - strh r0, [r6, 0x22] - adds r0, r4, 0 - bl ShiftStillObjectEventCoords - ldrb r0, [r4] - movs r1, 0x8 - orrs r0, r1 - strb r0, [r4] - movs r0, 0x43 - bl FieldEffectActiveListRemove - adds r0, r7, 0 - bl DestroyTask -_08087AA8: - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08087AB0: .4byte gObjectEvents - thumb_func_end sub_80879D8 - - thumb_func_start sub_8087AB4 -sub_8087AB4: @ 8087AB4 - push {r4,lr} - sub sp, 0x4 - ldr r4, _08087AF8 @ =gFieldEffectArguments - ldrb r0, [r4] - ldrb r1, [r4, 0x4] - ldrb r2, [r4, 0x8] - mov r3, sp - bl TryGetObjectEventIdByLocalIdAndMap - lsls r0, 24 - cmp r0, 0 - bne _08087B04 - ldr r0, _08087AFC @ =sub_8087BC0 - movs r1, 0x50 - bl CreateTask - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08087B00 @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - mov r0, sp - ldrb r0, [r0] - strh r0, [r1, 0xC] - ldr r0, [r4] - strh r0, [r1, 0x14] - ldr r0, [r4, 0x4] - strh r0, [r1, 0x16] - ldr r0, [r4, 0x8] - strh r0, [r1, 0x18] - b _08087B0A - .align 2, 0 -_08087AF8: .4byte gFieldEffectArguments -_08087AFC: .4byte sub_8087BC0 -_08087B00: .4byte gTasks -_08087B04: - movs r0, 0x44 - bl FieldEffectActiveListRemove -_08087B0A: - movs r0, 0 - add sp, 0x4 - pop {r4} - pop {r1} - bx r1 - thumb_func_end sub_8087AB4 - - thumb_func_start sub_8087B14 -sub_8087B14: @ 8087B14 - push {r4,r5,lr} - lsls r0, 24 - lsrs r5, r0, 24 - lsls r0, r5, 2 - adds r0, r5 - lsls r0, 3 - ldr r1, _08087B4C @ =gTasks+0x8 - adds r4, r0, r1 - movs r1, 0xE - ldrsh r0, [r4, r1] - cmp r0, 0 - beq _08087B50 - ldrh r0, [r4, 0xC] - adds r0, 0x1 - strh r0, [r4, 0xC] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x14 - ble _08087B54 - movs r0, 0 - strh r0, [r4, 0xC] - ldrh r1, [r4, 0xA] - movs r2, 0xA - ldrsh r0, [r4, r2] - cmp r0, 0 - beq _08087B54 - subs r0, r1, 0x1 - b _08087B52 - .align 2, 0 -_08087B4C: .4byte gTasks+0x8 -_08087B50: - movs r0, 0x4 -_08087B52: - strh r0, [r4, 0xA] -_08087B54: - ldrh r0, [r4] - adds r0, 0x1 - strh r0, [r4] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x1 - ble _08087B8E - movs r0, 0 - strh r0, [r4] - ldrh r0, [r4, 0x2] - adds r0, 0x1 - strh r0, [r4, 0x2] - movs r1, 0x1 - ands r0, r1 - cmp r0, 0 - beq _08087B84 - ldrh r1, [r4, 0xA] - negs r1, r1 - lsls r1, 16 - asrs r1, 16 - movs r0, 0 - bl SetCameraPanning - b _08087B8E -_08087B84: - movs r0, 0xA - ldrsh r1, [r4, r0] - movs r0, 0 - bl SetCameraPanning -_08087B8E: - bl UpdateCameraPanning - movs r1, 0xA - ldrsh r0, [r4, r1] - cmp r0, 0 - bne _08087BA0 - adds r0, r5, 0 - bl DestroyTask -_08087BA0: - pop {r4,r5} - pop {r0} - bx r0 - thumb_func_end sub_8087B14 - - thumb_func_start sub_8087BA8 -sub_8087BA8: @ 8087BA8 - lsls r0, 24 - lsrs r0, 24 - ldr r2, _08087BBC @ =gTasks - lsls r1, r0, 2 - adds r1, r0 - lsls r1, 3 - adds r1, r2 - movs r0, 0x1 - strh r0, [r1, 0x16] - bx lr - .align 2, 0 -_08087BBC: .4byte gTasks - thumb_func_end sub_8087BA8 - - thumb_func_start sub_8087BC0 -sub_8087BC0: @ 8087BC0 - push {r4,r5,lr} - adds r5, r0, 0 - lsls r5, 24 - lsrs r5, 24 - lsls r4, r5, 2 - adds r4, r5 - lsls r4, 3 - ldr r0, _08087BF8 @ =gTasks+0x8 - adds r4, r0 - bl InstallCameraPanAheadCallback - movs r0, 0 - bl SetCameraPanningCallback - ldr r1, _08087BFC @ =gUnknown_83CC244 - movs r2, 0x2 - ldrsh r0, [r4, r2] - lsls r0, 2 - adds r0, r1 - ldr r2, [r0] - adds r0, r4, 0 - adds r1, r5, 0 - bl _call_via_r2 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087BF8: .4byte gTasks+0x8 -_08087BFC: .4byte gUnknown_83CC244 - thumb_func_end sub_8087BC0 - - thumb_func_start sub_8087C00 -sub_8087C00: @ 8087C00 - push {r4,r5,lr} - adds r5, r0, 0 - ldr r0, _08087C28 @ =sub_8087B14 - movs r1, 0x5A - bl CreateTask - adds r4, r0, 0 - lsls r4, 24 - lsrs r4, 24 - movs r0, 0x51 - bl PlaySE - strh r4, [r5, 0xA] - ldrh r0, [r5, 0x2] - adds r0, 0x1 - strh r0, [r5, 0x2] - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087C28: .4byte sub_8087B14 - thumb_func_end sub_8087C00 - - thumb_func_start sub_8087C2C -sub_8087C2C: @ 8087C2C - push {r4-r7,lr} - sub sp, 0x4 - adds r7, r0, 0 - ldrh r0, [r7, 0x6] - adds r0, 0x1 - strh r0, [r7, 0x6] - lsls r0, 16 - asrs r0, 16 - cmp r0, 0x78 - ble _08087C9A - ldr r2, _08087CA4 @ =gObjectEvents - movs r1, 0x4 - ldrsh r0, [r7, r1] - lsls r1, r0, 3 - adds r1, r0 - lsls r1, 2 - adds r1, r2 - ldrb r0, [r1, 0x4] - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08087CA8 @ =gSprites - adds r4, r0 - ldrb r0, [r1, 0x1] - movs r2, 0x20 - orrs r0, r2 - strb r0, [r1, 0x1] - ldr r6, _08087CAC @ =0x0000ffff - ldr r5, _08087CB0 @ =0x00007fff - adds r0, r6, 0 - movs r1, 0x10 - adds r2, r5, 0 - bl BlendPalettes - str r5, [sp] - adds r0, r6, 0 - movs r1, 0 - movs r2, 0x10 - movs r3, 0 - bl BeginNormalPaletteFade - adds r0, r4, 0 - bl sub_8087CFC - movs r0, 0x50 - bl PlaySE - ldrb r0, [r7, 0xA] - bl sub_8087BA8 - movs r0, 0 - strh r0, [r7, 0x6] - ldrh r0, [r7, 0x2] - adds r0, 0x1 - strh r0, [r7, 0x2] -_08087C9A: - add sp, 0x4 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08087CA4: .4byte gObjectEvents -_08087CA8: .4byte gSprites -_08087CAC: .4byte 0x0000ffff -_08087CB0: .4byte 0x00007fff - thumb_func_end sub_8087C2C - - thumb_func_start sub_8087CB4 -sub_8087CB4: @ 8087CB4 - push {r4,r5,lr} - adds r4, r0, 0 - lsls r1, 24 - lsrs r5, r1, 24 - ldr r0, _08087CF4 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08087CEE - ldr r0, _08087CF8 @ =sub_8087B14 - bl FuncIsActiveTask - lsls r0, 24 - cmp r0, 0 - bne _08087CEE - bl InstallCameraPanAheadCallback - ldrb r0, [r4, 0xC] - ldrb r1, [r4, 0xE] - ldrb r2, [r4, 0x10] - bl RemoveObjectEventByLocalIdAndMap - movs r0, 0x44 - bl FieldEffectActiveListRemove - adds r0, r5, 0 - bl DestroyTask -_08087CEE: - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087CF4: .4byte gPaletteFade -_08087CF8: .4byte sub_8087B14 - thumb_func_end sub_8087CB4 - - thumb_func_start sub_8087CFC -sub_8087CFC: @ 8087CFC - push {r4-r7,lr} - mov r7, r8 - push {r7} - adds r6, r0, 0 - ldr r0, _08087D80 @ =gTotalCameraPixelOffsetX - movs r1, 0 - ldrsh r2, [r0, r1] - movs r3, 0x20 - ldrsh r0, [r6, r3] - adds r2, r0 - movs r1, 0x24 - ldrsh r0, [r6, r1] - adds r2, r0 - ldr r0, _08087D84 @ =gTotalCameraPixelOffsetY - movs r3, 0 - ldrsh r0, [r0, r3] - movs r3, 0x22 - ldrsh r1, [r6, r3] - adds r0, r1 - movs r3, 0x26 - ldrsh r1, [r6, r3] - adds r0, r1 - subs r0, 0x4 - movs r5, 0 - lsls r2, 16 - mov r8, r2 - lsls r7, r0, 16 -_08087D32: - ldr r0, _08087D88 @ =gUnknown_83CC2A0 - mov r2, r8 - asrs r1, r2, 16 - asrs r2, r7, 16 - movs r3, 0 - bl CreateSprite - lsls r0, 24 - lsrs r0, 24 - cmp r0, 0x40 - beq _08087D6E - lsls r4, r0, 4 - adds r4, r0 - lsls r4, 2 - ldr r0, _08087D8C @ =gSprites - adds r4, r0 - lsls r1, r5, 24 - lsrs r1, 24 - adds r0, r4, 0 - bl StartSpriteAnim - strh r5, [r4, 0x2E] - ldrb r1, [r6, 0x5] - lsrs r1, 4 - lsls r1, 4 - ldrb r2, [r4, 0x5] - movs r0, 0xF - ands r0, r2 - orrs r0, r1 - strb r0, [r4, 0x5] -_08087D6E: - adds r5, 0x1 - cmp r5, 0x3 - ble _08087D32 - pop {r3} - mov r8, r3 - pop {r4-r7} - pop {r0} - bx r0 - .align 2, 0 -_08087D80: .4byte gTotalCameraPixelOffsetX -_08087D84: .4byte gTotalCameraPixelOffsetY -_08087D88: .4byte gUnknown_83CC2A0 -_08087D8C: .4byte gSprites - thumb_func_end sub_8087CFC - - thumb_func_start sub_8087D90 -sub_8087D90: @ 8087D90 - push {lr} - adds r1, r0, 0 - movs r2, 0x2E - ldrsh r0, [r1, r2] - cmp r0, 0x1 - beq _08087DBC - cmp r0, 0x1 - bgt _08087DA6 - cmp r0, 0 - beq _08087DB0 - b _08087DDA -_08087DA6: - cmp r0, 0x2 - beq _08087DC8 - cmp r0, 0x3 - beq _08087DCE - b _08087DDA -_08087DB0: - ldrh r0, [r1, 0x20] - subs r0, 0x10 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - subs r0, 0xC - b _08087DD8 -_08087DBC: - ldrh r0, [r1, 0x20] - adds r0, 0x10 - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - subs r0, 0xC - b _08087DD8 -_08087DC8: - ldrh r0, [r1, 0x20] - subs r0, 0x10 - b _08087DD2 -_08087DCE: - ldrh r0, [r1, 0x20] - adds r0, 0x10 -_08087DD2: - strh r0, [r1, 0x20] - ldrh r0, [r1, 0x22] - adds r0, 0xC -_08087DD8: - strh r0, [r1, 0x22] -_08087DDA: - ldrh r0, [r1, 0x20] - adds r0, 0x4 - lsls r0, 16 - lsrs r0, 16 - cmp r0, 0xF8 - bhi _08087DF6 - movs r0, 0x22 - ldrsh r2, [r1, r0] - movs r0, 0x4 - negs r0, r0 - cmp r2, r0 - blt _08087DF6 - cmp r2, 0xA4 - ble _08087DFC -_08087DF6: - adds r0, r1, 0 - bl DestroySprite -_08087DFC: - pop {r0} - bx r0 - thumb_func_end sub_8087D90 - - thumb_func_start sub_8087E00 -sub_8087E00: @ 8087E00 - push {r4,lr} - lsls r0, 24 - lsrs r4, r0, 24 - ldr r0, _08087E24 @ =gPaletteFade - ldrb r1, [r0, 0x7] - movs r0, 0x80 - ands r0, r1 - cmp r0, 0 - bne _08087E1E - movs r0, 0x45 - bl FieldEffectActiveListRemove - adds r0, r4, 0 - bl DestroyTask -_08087E1E: - pop {r4} - pop {r0} - bx r0 - .align 2, 0 -_08087E24: .4byte gPaletteFade - thumb_func_end sub_8087E00 - - thumb_func_start sub_8087E28 -sub_8087E28: @ 8087E28 - push {r4,r5,lr} - sub sp, 0x4 - movs r4, 0x1 - negs r4, r4 - ldr r5, _08087E5C @ =0x00007fff - adds r0, r4, 0 - movs r1, 0x10 - adds r2, r5, 0 - bl BlendPalettes - str r5, [sp] - adds r0, r4, 0 - adds r1, r4, 0 - movs r2, 0xF - movs r3, 0 - bl BeginNormalPaletteFade - ldr r0, _08087E60 @ =sub_8087E00 - movs r1, 0x5A - bl CreateTask - add sp, 0x4 - pop {r4,r5} - pop {r0} - bx r0 - .align 2, 0 -_08087E5C: .4byte 0x00007fff -_08087E60: .4byte sub_8087E00 - thumb_func_end sub_8087E28 - - .align 2, 0 @ Don't pad with nop. |