.include "asm/macros.inc" .include "constants/constants.inc" .syntax unified .text thumb_func_start SetUpItemUseCallback @ void SetUpItemUseCallback(u8 taskId) SetUpItemUseCallback: @ 80FD060 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r1, =gScriptItemId ldrh r0, [r1] cmp r0, 0xAF bne _080FD084 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r0, [r1, 0x10] b _080FD08A .pool _080FD084: ldrh r0, [r1] bl ItemId_GetType _080FD08A: subs r0, 0x1 lsls r0, 24 lsrs r4, r0, 24 bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FD0B8 ldr r0, =gUnknown_0203CE54 ldr r2, [r0] ldr r1, =gUnknown_085920D8 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] adds r0, r5, 0 bl unknown_ItemMenu_Confirm b _080FD0CC .pool _080FD0B8: ldr r0, =gUnknown_0203CF2C ldr r2, [r0] ldr r1, =gUnknown_085920D8 lsls r0, r4, 2 adds r0, r1 ldr r0, [r0] str r0, [r2] adds r0, r5, 0 bl sub_81C5B14 _080FD0CC: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end SetUpItemUseCallback thumb_func_start SetUpItemUseOnFieldCallback @ void SetUpItemUseOnFieldCallback() SetUpItemUseOnFieldCallback: @ 80FD0DC push {lr} lsls r0, 24 lsrs r2, r0, 24 ldr r1, =gTasks lsls r0, r2, 2 adds r0, r2 lsls r0, 3 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0x1 beq _080FD110 ldr r1, =gFieldCallback ldr r0, =MapPostLoadHook_UseItem str r0, [r1] adds r0, r2, 0 bl SetUpItemUseCallback b _080FD11A .pool _080FD110: ldr r0, =gUnknown_0203A0F4 ldr r1, [r0] adds r0, r2, 0 bl _call_via_r1 _080FD11A: pop {r0} bx r0 .pool thumb_func_end SetUpItemUseOnFieldCallback thumb_func_start MapPostLoadHook_UseItem @ void MapPostLoadHook_UseItem() MapPostLoadHook_UseItem: @ 80FD124 push {lr} bl pal_fill_black ldr r0, =Task_CallItemUseOnFieldCallback movs r1, 0x8 bl CreateTask pop {r0} bx r0 .pool thumb_func_end MapPostLoadHook_UseItem thumb_func_start Task_CallItemUseOnFieldCallback @ void Task_CallItemUseOnFieldCallback(u8 taskId) Task_CallItemUseOnFieldCallback: @ 80FD13C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80ABDFC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FD158 ldr r0, =gUnknown_0203A0F4 ldr r1, [r0] adds r0, r4, 0 bl _call_via_r1 _080FD158: pop {r4} pop {r0} bx r0 .pool thumb_func_end Task_CallItemUseOnFieldCallback thumb_func_start DisplayCannotUseItemMessage @ void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField, u8 *str) DisplayCannotUseItemMessage: @ 80FD164 push {r4-r6,lr} adds r4, r1, 0 adds r1, r2, 0 lsls r0, 24 lsrs r5, r0, 24 lsls r4, 24 lsrs r4, 24 ldr r6, =gStringVar4 adds r0, r6, 0 bl StringExpandPlaceholders cmp r4, 0 bne _080FD1B4 bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FD1A0 ldr r3, =bag_menu_inits_lists_menu adds r0, r5, 0 movs r1, 0x1 adds r2, r6, 0 bl DisplayItemMessage b _080FD1BE .pool _080FD1A0: ldr r1, =gText_DadsAdvice ldr r2, =sub_81C6714 adds r0, r5, 0 bl DisplayItemMessageInBattlePyramid b _080FD1BE .pool _080FD1B4: ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField adds r0, r5, 0 adds r1, r6, 0 bl DisplayItemMessageOnField _080FD1BE: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end DisplayCannotUseItemMessage thumb_func_start DisplayDadsAdviceCannotUseItemMessage @ void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) DisplayDadsAdviceCannotUseItemMessage: @ 80FD1C8 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gText_DadsAdvice bl DisplayCannotUseItemMessage pop {r0} bx r0 .pool thumb_func_end DisplayDadsAdviceCannotUseItemMessage thumb_func_start DisplayCannotDismountBikeMessage @ void DisplayCannotDismountBikeMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField) DisplayCannotDismountBikeMessage: @ 80FD1E0 push {lr} lsls r0, 24 lsrs r0, 24 lsls r1, 24 lsrs r1, 24 ldr r2, =gText_CantDismountBike bl DisplayCannotUseItemMessage pop {r0} bx r0 .pool thumb_func_end DisplayCannotDismountBikeMessage thumb_func_start CleanUpAfterFailingToUseRegisteredKeyItemOnField @ void CleanUpAfterFailingToUseRegisteredKeyItemOnField(u8 taskId) CleanUpAfterFailingToUseRegisteredKeyItemOnField: @ 80FD1F8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 bl sub_8197434 adds r0, r4, 0 bl DestroyTask bl sub_80984F4 bl ScriptContext2_Disable pop {r4} pop {r0} bx r0 thumb_func_end CleanUpAfterFailingToUseRegisteredKeyItemOnField thumb_func_start CheckIfItemIsTMHMOrEvolutionStone @ u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId) CheckIfItemIsTMHMOrEvolutionStone: @ 80FD21C push {r4,lr} lsls r0, 16 lsrs r4, r0, 16 adds r0, r4, 0 bl ItemId_GetFieldFunc ldr r1, =ItemUseOutOfBattle_TMHM cmp r0, r1 bne _080FD238 movs r0, 0x1 b _080FD24E .pool _080FD238: adds r0, r4, 0 bl ItemId_GetFieldFunc ldr r1, =ItemUseOutOfBattle_EvolutionStone cmp r0, r1 beq _080FD24C movs r0, 0 b _080FD24E .pool _080FD24C: movs r0, 0x2 _080FD24E: pop {r4} pop {r1} bx r1 thumb_func_end CheckIfItemIsTMHMOrEvolutionStone thumb_func_start sub_80FD254 sub_80FD254: @ 80FD254 push {lr} sub sp, 0x24 mov r1, sp ldr r0, =gScriptItemId ldrh r0, [r0] strh r0, [r1, 0x20] ldr r1, =bag_menu_mail_related mov r0, sp movs r2, 0 bl sub_8121478 add sp, 0x24 pop {r0} bx r0 .pool thumb_func_end sub_80FD254 thumb_func_start ItemUseOutOfBattle_Mail @ void ItemUseOutOfBattle_Mail(int taskId) ItemUseOutOfBattle_Mail: @ 80FD278 push {lr} lsls r0, 24 lsrs r0, 24 ldr r1, =gUnknown_0203CE54 ldr r2, [r1] ldr r1, =sub_80FD254 str r1, [r2] bl unknown_ItemMenu_Confirm pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_Mail thumb_func_start ItemUseOutOfBattle_Bike @ void ItemUseOutOfBattle_Bike(int taskId) ItemUseOutOfBattle_Bike: @ 80FD298 push {r4-r6,lr} sub sp, 0x4 lsls r0, 24 lsrs r5, r0, 24 lsls r0, r5, 2 adds r0, r5 lsls r0, 3 ldr r1, =gTasks + 0x8 adds r6, r0, r1 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 r4, r0, 24 ldr r0, =0x0000088b bl FlagGet lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FD30E adds r0, r4, 0 bl MetatileBehavior_IsVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FD30E adds r0, r4, 0 bl MetatileBehavior_IsHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FD30E adds r0, r4, 0 bl MetatileBehavior_IsIsolatedVerticalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FD30E adds r0, r4, 0 bl MetatileBehavior_IsIsolatedHorizontalRail lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FD320 _080FD30E: ldrb r1, [r6, 0x6] adds r0, r5, 0 bl DisplayCannotDismountBikeMessage b _080FD350 .pool _080FD320: bl sav1_map_is_biking_allowed cmp r0, 0x1 bne _080FD348 bl sub_8119FF8 lsls r0, 24 cmp r0, 0 bne _080FD348 ldr r1, =gUnknown_0203A0F4 ldr r0, =ItemUseOnFieldCB_Bike str r0, [r1] adds r0, r5, 0 bl SetUpItemUseOnFieldCallback b _080FD350 .pool _080FD348: ldrb r1, [r6, 0x6] adds r0, r5, 0 bl DisplayDadsAdviceCannotUseItemMessage _080FD350: add sp, 0x4 pop {r4-r6} pop {r0} bx r0 thumb_func_end ItemUseOutOfBattle_Bike thumb_func_start ItemUseOnFieldCB_Bike ItemUseOnFieldCB_Bike: @ 80FD358 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gScriptItemId ldrh r0, [r0] bl ItemId_GetSecondaryId lsls r0, 24 cmp r0, 0 bne _080FD378 movs r0, 0x2 bl GetOnOffBike b _080FD37E .pool _080FD378: movs r0, 0x4 bl GetOnOffBike _080FD37E: bl sub_80984F4 bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end ItemUseOnFieldCB_Bike thumb_func_start CanFish @ bool8 CanFish() CanFish: @ 80FD394 push {r4-r6,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridGetMetatileBehaviorAt lsls r0, 16 lsrs r6, r0, 16 lsls r0, r6, 24 lsrs r5, r0, 24 adds r0, r5, 0 bl MetatileBehavior_IsWaterfall lsls r0, 24 cmp r0, 0 bne _080FD41C movs r0, 0x10 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080FD41C movs r0, 0x8 bl TestPlayerAvatarFlags lsls r0, 24 cmp r0, 0 bne _080FD3EC bl IsPlayerFacingSurfableFishableWater lsls r0, 24 cmp r0, 0 beq _080FD41C _080FD3E8: movs r0, 0x1 b _080FD41E _080FD3EC: adds r0, r5, 0 bl MetatileBehavior_IsSurfableWaterOrUnderwater lsls r0, 24 cmp r0, 0 beq _080FD40C mov r0, sp movs r1, 0 ldrsh r0, [r0, r1] movs r2, 0 ldrsh r1, [r4, r2] bl MapGridIsImpassableAt lsls r0, 24 cmp r0, 0 beq _080FD3E8 _080FD40C: lsls r0, r6, 24 lsrs r0, 24 bl sub_8089510 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FD3E8 _080FD41C: movs r0, 0 _080FD41E: add sp, 0x4 pop {r4-r6} pop {r1} bx r1 thumb_func_end CanFish thumb_func_start ItemUseOutOfBattle_Rod ItemUseOutOfBattle_Rod: @ 80FD428 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl CanFish cmp r0, 0x1 bne _080FD44C ldr r1, =gUnknown_0203A0F4 ldr r0, =ItemUseOnFieldCB_Rod str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080FD45E .pool _080FD44C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xE] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080FD45E: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_Rod thumb_func_start ItemUseOnFieldCB_Rod ItemUseOnFieldCB_Rod: @ 80FD468 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gScriptItemId ldrh r0, [r0] bl ItemId_GetSecondaryId lsls r0, 24 lsrs r0, 24 bl StartFishing adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOnFieldCB_Rod thumb_func_start ItemUseOutOfBattle_Itemfinder ItemUseOutOfBattle_Itemfinder: @ 80FD490 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x27 bl IncrementGameStat ldr r1, =gUnknown_0203A0F4 ldr r0, =ItemUseOnFieldCB_Itemfinder str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_Itemfinder thumb_func_start ItemUseOnFieldCB_Itemfinder ItemUseOnFieldCB_Itemfinder: @ 80FD4B8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gMapHeader ldr r0, [r0, 0x4] adds r1, r4, 0 bl ItemfinderCheckForHiddenItems lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FD4EC ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80FD504 str r0, [r1] b _080FD4F6 .pool _080FD4EC: ldr r1, =gText_ItemFinderNothing ldr r2, =sub_80FD5CC adds r0, r4, 0 bl DisplayItemMessageOnField _080FD4F6: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOnFieldCB_Itemfinder thumb_func_start sub_80FD504 sub_80FD504: @ 80FD504 push {r4-r7,lr} mov r7, r8 push {r7} lsls r0, 24 lsrs r5, r0, 24 lsls r6, r5, 2 adds r0, r6, r5 lsls r7, r0, 3 ldr r0, =gTasks + 0x8 mov r8, r0 adds r4, r7, r0 movs r1, 0x6 ldrsh r0, [r4, r1] cmp r0, 0 bne _080FD5B8 movs r2, 0x8 ldrsh r0, [r4, r2] cmp r0, 0x4 bne _080FD5AC movs r1, 0 ldrsh r0, [r4, r1] movs r2, 0x2 ldrsh r1, [r4, r2] bl sub_80FD9B0 lsls r0, 24 lsrs r0, 24 cmp r0, 0 beq _080FD564 ldr r1, =gUnknown_085920E4 subs r0, 0x1 adds r0, r1 ldrb r0, [r0] bl sub_80FDA24 mov r0, r8 subs r0, 0x8 adds r0, r7, r0 ldr r1, =sub_80FDA94 str r1, [r0] b _080FD5C2 .pool _080FD564: bl player_get_direction_lower_nybble lsls r0, 24 lsrs r2, r0, 24 movs r1, 0 adds r3, r6, 0 ldr r7, =gUnknown_085920E4 movs r6, 0x3 _080FD574: adds r0, r1, r7 adds r1, 0x1 ldrb r0, [r0] cmp r2, r0 bne _080FD584 adds r0, r1, 0 ands r0, r6 strh r0, [r4, 0xA] _080FD584: lsls r0, r1, 24 lsrs r1, r0, 24 cmp r1, 0x3 bls _080FD574 ldr r1, =gTasks adds r0, r3, r5 lsls r0, 3 adds r0, r1 ldr r1, =sub_80FDADC str r1, [r0] movs r0, 0 strh r0, [r4, 0x6] strh r0, [r4, 0x4] b _080FD5C2 .pool _080FD5AC: movs r0, 0x48 bl PlaySE ldrh r0, [r4, 0x8] adds r0, 0x1 strh r0, [r4, 0x8] _080FD5B8: ldrh r0, [r4, 0x6] adds r0, 0x1 movs r1, 0x1F ands r0, r1 strh r0, [r4, 0x6] _080FD5C2: pop {r3} mov r8, r3 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD504 thumb_func_start sub_80FD5CC sub_80FD5CC: @ 80FD5CC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0 movs r1, 0x1 bl sub_8197434 bl sub_80984F4 bl ScriptContext2_Disable adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end sub_80FD5CC thumb_func_start ItemfinderCheckForHiddenItems @ bool8 ItemfinderCheckForHiddenItems(struct map_events *events, u8 taskId) ItemfinderCheckForHiddenItems: @ 80FD5F0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} sub sp, 0x4 adds r5, r0, 0 lsls r1, 24 lsrs r6, r1, 24 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords ldr r1, =gTasks lsls r0, r6, 2 adds r0, r6 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0xC] movs r3, 0 mov r9, r4 ldrb r0, [r5, 0x3] cmp r3, r0 bge _080FD6A4 subs r1, 0x5 mov r8, r1 _080FD628: lsls r3, 16 asrs r1, r3, 16 ldr r2, [r5, 0x10] lsls r0, r1, 1 adds r0, r1 lsls r4, r0, 2 adds r1, r4, r2 ldrb r0, [r1, 0x5] adds r7, r3, 0 cmp r0, 0x7 bne _080FD694 movs r2, 0xFA lsls r2, 1 adds r0, r2, 0 ldrh r1, [r1, 0xA] adds r0, r1 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FD694 ldr r1, [r5, 0x10] adds r1, r4, r1 ldrh r2, [r1] adds r2, 0x7 mov r0, sp ldrh r0, [r0] subs r2, r0 ldrh r0, [r1, 0x2] adds r0, 0x7 mov r3, r9 ldrh r1, [r3] subs r0, r1 lsls r0, 16 lsrs r0, 16 lsls r2, 16 asrs r1, r2, 16 movs r3, 0xE0 lsls r3, 11 adds r2, r3 lsrs r2, 16 cmp r2, 0xE bhi _080FD694 lsls r0, 16 asrs r2, r0, 16 cmp r2, r8 blt _080FD694 cmp r2, 0x5 bgt _080FD694 adds r0, r6, 0 bl sub_80FD8E0 _080FD694: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r3, r0, 16 asrs r0, 16 ldrb r2, [r5, 0x3] cmp r0, r2 blt _080FD628 _080FD6A4: adds r0, r6, 0 bl sub_80FD7C8 ldr r0, =gTasks lsls r1, r6, 2 adds r1, r6 lsls r1, 3 adds r1, r0 movs r3, 0xC ldrsh r0, [r1, r3] cmp r0, 0x1 beq _080FD6C4 movs r0, 0 b _080FD6C6 .pool _080FD6C4: movs r0, 0x1 _080FD6C6: add sp, 0x4 pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r1} bx r1 thumb_func_end ItemfinderCheckForHiddenItems thumb_func_start sub_80FD6D4 sub_80FD6D4: @ 80FD6D4 push {r4-r6,lr} lsls r1, 16 lsrs r3, r1, 16 lsls r2, 16 lsrs r4, r2, 16 ldrb r2, [r0, 0x3] ldr r5, [r0, 0x10] movs r1, 0 cmp r1, r2 bge _080FD728 lsls r0, r3, 16 asrs r6, r0, 16 lsls r0, r4, 16 asrs r4, r0, 16 adds r3, r5, 0 _080FD6F2: ldrb r0, [r3, 0x5] cmp r0, 0x7 bne _080FD720 ldrh r0, [r3] cmp r6, r0 bne _080FD720 ldrh r0, [r3, 0x2] cmp r4, r0 bne _080FD720 movs r1, 0xFA lsls r1, 1 adds r0, r1, 0 ldrh r3, [r3, 0xA] adds r0, r3 lsls r0, 16 lsrs r0, 16 bl FlagGet lsls r0, 24 cmp r0, 0 bne _080FD728 movs r0, 0x1 b _080FD72A _080FD720: adds r3, 0xC adds r1, 0x1 cmp r1, r2 blt _080FD6F2 _080FD728: movs r0, 0 _080FD72A: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FD6D4 thumb_func_start sub_80FD730 sub_80FD730: @ 80FD730 push {r4-r6,lr} adds r4, r0, 0 adds r5, r1, 0 adds r6, r2, 0 bl mapconnection_get_mapheader adds r3, r0, 0 ldrb r0, [r4] cmp r0, 0x2 beq _080FD758 cmp r0, 0x2 bgt _080FD74E cmp r0, 0x1 beq _080FD76C b _080FD7AC _080FD74E: cmp r0, 0x3 beq _080FD784 cmp r0, 0x4 beq _080FD78E b _080FD7AC _080FD758: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r3] ldr r0, [r0, 0x4] subs r0, 0x7 adds r0, r6 b _080FD7A2 _080FD76C: ldr r0, [r4, 0x4] adds r0, 0x7 subs r0, r5, r0 lsls r0, 16 lsrs r1, r0, 16 ldr r0, =gMapHeader ldr r0, [r0] ldr r0, [r0, 0x4] b _080FD79E .pool _080FD784: ldr r0, [r3] ldr r0, [r0] subs r0, 0x7 adds r0, r5 b _080FD798 _080FD78E: ldr r0, =gMapHeader ldr r0, [r0] ldr r0, [r0] adds r0, 0x7 subs r0, r5, r0 _080FD798: lsls r0, 16 lsrs r1, r0, 16 ldr r0, [r4, 0x4] _080FD79E: adds r0, 0x7 subs r0, r6, r0 _080FD7A2: lsls r0, 16 lsrs r2, r0, 16 b _080FD7B0 .pool _080FD7AC: movs r0, 0 b _080FD7C2 _080FD7B0: ldr r0, [r3, 0x4] lsls r1, 16 asrs r1, 16 lsls r2, 16 asrs r2, 16 bl sub_80FD6D4 lsls r0, 24 lsrs r0, 24 _080FD7C2: pop {r4-r6} pop {r1} bx r1 thumb_func_end sub_80FD730 thumb_func_start sub_80FD7C8 sub_80FD7C8: @ 80FD7C8 push {r4-r7,lr} mov r7, r10 mov r6, r9 mov r5, r8 push {r5-r7} sub sp, 0x14 lsls r0, 24 lsrs r0, 24 str r0, [sp, 0x4] ldr r0, =gMapHeader ldr r1, [r0] ldr r0, [r1] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0x8] ldr r0, [r1, 0x4] adds r0, 0x7 lsls r0, 16 lsrs r0, 16 str r0, [sp, 0xC] mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl PlayerGetDestCoords mov r0, sp ldrh r0, [r0] subs r0, 0x7 lsls r0, 16 lsrs r3, r0, 16 asrs r0, 16 mov r1, sp movs r2, 0 ldrsh r1, [r1, r2] adds r1, 0x7 cmp r0, r1 bgt _080FD8CC _080FD816: mov r5, sp ldrh r0, [r5, 0x2] subs r0, 0x5 lsls r0, 16 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 movs r6, 0x2 ldrsh r0, [r5, r6] adds r0, 0x5 lsls r3, 16 mov r8, r3 cmp r1, r0 bgt _080FD8B6 movs r0, 0x7 str r0, [sp, 0x10] mov r1, r8 asrs r1, 16 mov r9, r1 mov r10, r0 _080FD83E: ldr r3, [sp, 0x10] cmp r3, r9 bgt _080FD860 ldr r5, [sp, 0x8] lsls r0, r5, 16 asrs r0, 16 cmp r9, r0 bge _080FD860 asrs r1, r2, 16 cmp r10, r1 bgt _080FD860 ldr r6, [sp, 0xC] lsls r0, r6, 16 asrs r0, 16 lsls r7, r4, 16 cmp r1, r0 blt _080FD89E _080FD860: mov r0, r8 asrs r5, r0, 16 lsls r4, 16 asrs r6, r4, 16 adds r0, r5, 0 adds r1, r6, 0 bl sub_8088A8C adds r7, r4, 0 cmp r0, 0 beq _080FD89E adds r1, r5, 0 adds r2, r6, 0 bl sub_80FD730 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FD89E mov r0, sp ldrh r1, [r0] subs r1, r5, r1 lsls r1, 16 asrs r1, 16 ldrh r2, [r0, 0x2] subs r2, r6, r2 lsls r2, 16 asrs r2, 16 ldr r0, [sp, 0x4] bl sub_80FD8E0 _080FD89E: movs r1, 0x80 lsls r1, 9 adds r0, r7, r1 lsrs r4, r0, 16 lsls r2, r4, 16 asrs r1, r2, 16 mov r3, sp movs r5, 0x2 ldrsh r0, [r3, r5] adds r0, 0x5 cmp r1, r0 ble _080FD83E _080FD8B6: movs r1, 0x80 lsls r1, 9 add r1, r8 lsrs r3, r1, 16 asrs r1, 16 mov r0, sp movs r6, 0 ldrsh r0, [r0, r6] adds r0, 0x7 cmp r1, r0 ble _080FD816 _080FD8CC: add sp, 0x14 pop {r3-r5} mov r8, r3 mov r9, r4 mov r10, r5 pop {r4-r7} pop {r0} bx r0 .pool thumb_func_end sub_80FD7C8 thumb_func_start sub_80FD8E0 sub_80FD8E0: @ 80FD8E0 push {r4-r7,lr} mov r7, r9 mov r6, r8 push {r6,r7} lsls r0, 24 lsrs r0, 24 lsls r1, 16 lsrs r7, r1, 16 lsls r2, 16 lsrs r2, 16 mov r12, r2 lsls r1, r0, 2 adds r1, r0 lsls r1, 3 ldr r0, =gTasks + 0x8 adds r3, r1, r0 movs r1, 0x4 ldrsh r0, [r3, r1] cmp r0, 0 bne _080FD918 strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] movs r0, 0x1 strh r0, [r3, 0x4] b _080FD9A2 .pool _080FD918: movs r1, 0 ldrsh r0, [r3, r1] cmp r0, 0 bge _080FD928 negs r0, r0 lsls r0, 16 lsrs r4, r0, 16 b _080FD92A _080FD928: ldrh r4, [r3] _080FD92A: movs r1, 0x2 ldrsh r0, [r3, r1] ldrh r1, [r3, 0x2] mov r9, r1 cmp r0, 0 bge _080FD93E negs r0, r0 lsls r0, 16 lsrs r2, r0, 16 b _080FD940 _080FD93E: ldrh r2, [r3, 0x2] _080FD940: lsls r1, r7, 16 asrs r0, r1, 16 cmp r0, 0 bge _080FD950 negs r0, r0 lsls r0, 16 lsrs r6, r0, 16 b _080FD952 _080FD950: lsrs r6, r1, 16 _080FD952: mov r1, r12 lsls r0, r1, 16 asrs r1, r0, 16 mov r8, r0 cmp r1, 0 bge _080FD964 negs r0, r1 lsls r0, 16 b _080FD966 _080FD964: mov r0, r8 _080FD966: lsrs r5, r0, 16 lsls r0, r4, 16 asrs r0, 16 lsls r1, r2, 16 asrs r2, r1, 16 adds r4, r0, r2 lsls r0, r6, 16 asrs r0, 16 lsls r1, r5, 16 asrs r1, 16 adds r0, r1 cmp r4, r0 ble _080FD988 strh r7, [r3] mov r1, r12 strh r1, [r3, 0x2] b _080FD9A2 _080FD988: cmp r4, r0 bne _080FD9A2 cmp r2, r1 bgt _080FD99C cmp r2, r1 bne _080FD9A2 mov r1, r9 lsls r0, r1, 16 cmp r0, r8 bge _080FD9A2 _080FD99C: strh r7, [r3] mov r0, r12 strh r0, [r3, 0x2] _080FD9A2: pop {r3,r4} mov r8, r3 mov r9, r4 pop {r4-r7} pop {r0} bx r0 thumb_func_end sub_80FD8E0 thumb_func_start sub_80FD9B0 sub_80FD9B0: @ 80FD9B0 push {r4,r5,lr} lsls r0, 16 lsls r1, 16 lsrs r1, 16 lsrs r2, r0, 16 cmp r0, 0 bne _080FD9C2 cmp r1, 0 beq _080FDA1C _080FD9C2: lsls r0, r2, 16 asrs r2, r0, 16 adds r5, r0, 0 cmp r2, 0 bge _080FD9D4 negs r0, r2 lsls r0, 16 lsrs r4, r0, 16 b _080FD9D6 _080FD9D4: lsrs r4, r5, 16 _080FD9D6: lsls r0, r1, 16 asrs r2, r0, 16 adds r1, r0, 0 cmp r2, 0 bge _080FD9E8 negs r0, r2 lsls r0, 16 lsrs r3, r0, 16 b _080FD9EA _080FD9E8: lsrs r3, r1, 16 _080FD9EA: lsls r0, r4, 16 asrs r2, r0, 16 lsls r0, r3, 16 asrs r0, 16 cmp r2, r0 ble _080FDA02 cmp r5, 0 bge _080FD9FE movs r0, 0x4 b _080FDA1E _080FD9FE: movs r0, 0x2 b _080FDA1E _080FDA02: cmp r2, r0 bge _080FDA0C cmp r1, 0 blt _080FDA14 b _080FDA18 _080FDA0C: cmp r2, r0 bne _080FDA1C cmp r1, 0 bge _080FDA18 _080FDA14: movs r0, 0x1 b _080FDA1E _080FDA18: movs r0, 0x3 b _080FDA1E _080FDA1C: movs r0, 0 _080FDA1E: pop {r4,r5} pop {r1} bx r1 thumb_func_end sub_80FD9B0 thumb_func_start sub_80FDA24 sub_80FDA24: @ 80FDA24 push {r4,r5,lr} adds r5, r0, 0 lsls r5, 24 lsrs r5, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r4, =gMapObjects adds r0, r4 bl FieldObjectClearAnimIfSpecialAnimFinished movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl FieldObjectClearAnim movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 adds r0, r4 bl npc_sync_anim_pause_bits adds r0, r5, 0 bl PlayerTurnInPlace pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FDA24 thumb_func_start sub_80FDA94 sub_80FDA94: @ 80FDA94 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FDACA ldr r1, =gText_ItemFinderNearby ldr r2, =sub_80FD5CC adds r0, r4, 0 bl DisplayItemMessageOnField _080FDACA: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDA94 thumb_func_start sub_80FDADC sub_80FDADC: @ 80FDADC 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, =gTasks + 0x8 adds r4, r0, r1 movs r0, 0xFF movs r1, 0 movs r2, 0 bl GetFieldObjectIdByLocalIdAndMap adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 lsls r0, r1, 3 adds r0, r1 lsls r0, 2 ldr r1, =gMapObjects adds r0, r1 bl FieldObjectCheckIfSpecialAnimFinishedOrInactive lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 beq _080FDB1C movs r1, 0x4 ldrsh r0, [r4, r1] cmp r0, 0 bne _080FDB50 _080FDB1C: ldr r1, =gUnknown_085920E4 movs r2, 0xA ldrsh r0, [r4, r2] adds r0, r1 ldrb r0, [r0] bl sub_80FDA24 movs r0, 0x1 strh r0, [r4, 0x4] ldrh r0, [r4, 0xA] adds r0, 0x1 movs r1, 0x3 ands r0, r1 strh r0, [r4, 0xA] ldrh r0, [r4, 0x6] adds r0, 0x1 strh r0, [r4, 0x6] lsls r0, 16 asrs r0, 16 cmp r0, 0x4 bne _080FDB50 ldr r1, =gText_ItemFinderOnTop ldr r2, =sub_80FD5CC adds r0, r5, 0 bl DisplayItemMessageOnField _080FDB50: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FDADC thumb_func_start ItemUseOutOfBattle_PokeblockCase ItemUseOutOfBattle_PokeblockCase: @ 80FDB6C push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_81221AC lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FDB98 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xE] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage b _080FDBDA .pool _080FDB98: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r5, r1, r0 movs r1, 0xE ldrsh r0, [r5, r1] cmp r0, 0x1 beq _080FDBC8 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r0, =sub_80FDBEC str r0, [r1] adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080FDBDA .pool _080FDBC8: ldr r0, =gFieldCallback ldr r1, =sub_80AF6D4 str r1, [r0] movs r0, 0x1 movs r1, 0 bl fade_screen ldr r0, =sub_80FDC00 str r0, [r5] _080FDBDA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_PokeblockCase thumb_func_start sub_80FDBEC sub_80FDBEC: @ 80FDBEC push {lr} ldr r1, =bag_menu_mail_related movs r0, 0 bl sub_81357FC pop {r0} bx r0 .pool thumb_func_end sub_80FDBEC thumb_func_start sub_80FDC00 sub_80FDC00: @ 80FDC00 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gPaletteFade ldrb r1, [r0, 0x7] movs r0, 0x80 ands r0, r1 cmp r0, 0 bne _080FDC24 bl overworld_free_bg_tilemaps ldr r1, =c2_exit_to_overworld_2_switch movs r0, 0 bl sub_81357FC adds r0, r4, 0 bl DestroyTask _080FDC24: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDC00 thumb_func_start ItemUseOutOfBattle_CoinCase ItemUseOutOfBattle_CoinCase: @ 80FDC34 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gStringVar1 bl GetCoins adds r1, r0, 0 lsls r1, 16 lsrs r1, 16 adds r0, r4, 0 movs r2, 0 movs r3, 0x4 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_CoinCase adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080FDC90 ldr r3, =bag_menu_inits_lists_menu adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage b _080FDC9A .pool _080FDC90: ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField adds r0, r5, 0 adds r1, r4, 0 bl DisplayItemMessageOnField _080FDC9A: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_CoinCase thumb_func_start ItemUseOutOfBattle_PowderJar ItemUseOutOfBattle_PowderJar: @ 80FDCA4 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gStringVar1 bl sub_80247BC adds r1, r0, 0 adds r0, r4, 0 movs r2, 0 movs r3, 0x5 bl ConvertIntToDecimalStringN ldr r4, =gStringVar4 ldr r1, =gText_PowderQty adds r0, r4, 0 bl StringExpandPlaceholders ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0xE ldrsh r0, [r0, r1] cmp r0, 0 bne _080FDCFC ldr r3, =bag_menu_inits_lists_menu adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage b _080FDD06 .pool _080FDCFC: ldr r2, =CleanUpAfterFailingToUseRegisteredKeyItemOnField adds r0, r5, 0 adds r1, r4, 0 bl DisplayItemMessageOnField _080FDD06: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_PowderJar thumb_func_start sub_80FDD10 sub_80FDD10: @ 80FDD10 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl IsPlayerFacingPlantedBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FDD58 ldr r1, =gUnknown_0203A0F4 ldr r0, =sub_80FDD74 str r0, [r1] ldr r1, =gFieldCallback ldr r0, =MapPostLoadHook_UseItem str r0, [r1] ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r0, =c2_exit_to_overworld_2_switch str r0, [r1] adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080FDD68 .pool _080FDD58: ldr r0, =gScriptItemId ldrh r0, [r0] bl ItemId_GetFieldFunc adds r1, r0, 0 adds r0, r4, 0 bl _call_via_r1 _080FDD68: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDD10 thumb_func_start sub_80FDD74 sub_80FDD74: @ 80FDD74 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 ldr r0, =gScriptItemId ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem bl ScriptContext2_Enable ldr r0, =gUnknown_08274482 bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDD74 thumb_func_start ItemUseOutOfBattle_WailmerPail ItemUseOutOfBattle_WailmerPail: @ 80FDDA4 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl sub_80FDE2C lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FDDC8 ldr r1, =gUnknown_0203A0F4 ldr r0, =sub_80FDE7C b _080FDDD8 .pool _080FDDC8: bl TryToWaterBerryTree lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FDDEC ldr r1, =gUnknown_0203A0F4 ldr r0, =sub_80FDE08 _080FDDD8: str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080FDDFE .pool _080FDDEC: ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xE] adds r0, r5, 0 bl DisplayDadsAdviceCannotUseItemMessage _080FDDFE: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_WailmerPail thumb_func_start sub_80FDE08 sub_80FDE08: @ 80FDE08 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable ldr r0, =gUnknown_082744C0 bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDE08 thumb_func_start sub_80FDE2C sub_80FDE2C: @ 80FDE2C push {r4,lr} sub sp, 0x4 mov r4, sp adds r4, 0x2 mov r0, sp adds r1, r4, 0 bl GetXYCoordsOneStepInFrontOfPlayer bl PlayerGetZCoord adds r2, r0, 0 lsls r2, 24 lsrs r2, 24 mov r0, sp ldrh r0, [r0] ldrh r1, [r4] bl GetFieldObjectIdByXYZ lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0x10 beq _080FDE68 ldr r0, =gMapObjects lsls r1, r2, 3 adds r1, r2 lsls r1, 2 adds r1, r0 ldrb r0, [r1, 0x5] cmp r0, 0xE4 beq _080FDE70 _080FDE68: movs r0, 0 b _080FDE72 .pool _080FDE70: movs r0, 0x1 _080FDE72: add sp, 0x4 pop {r4} pop {r1} bx r1 thumb_func_end sub_80FDE2C thumb_func_start sub_80FDE7C sub_80FDE7C: @ 80FDE7C push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl ScriptContext2_Enable ldr r0, =gUnknown_08242CFC bl ScriptContext1_SetupScript adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDE7C thumb_func_start ItemUseOutOfBattle_Medicine ItemUseOutOfBattle_Medicine: @ 80FDEA0 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =ItemUseCB_Medicine str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_Medicine thumb_func_start ItemUseOutOfBattle_ReduceEV ItemUseOutOfBattle_ReduceEV: @ 80FDEBC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =sub_81B67C8 str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_ReduceEV thumb_func_start ItemUseOutOfBattle_SacredAsh ItemUseOutOfBattle_SacredAsh: @ 80FDED8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =sub_81B79E8 str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_SacredAsh thumb_func_start ItemUseOutOfBattle_PPRecovery ItemUseOutOfBattle_PPRecovery: @ 80FDEF4 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =dp05_ether str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_PPRecovery thumb_func_start ItemUseOutOfBattle_PPUp ItemUseOutOfBattle_PPUp: @ 80FDF10 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =dp05_pp_up str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_PPUp thumb_func_start ItemUseOutOfBattle_RareCandy ItemUseOutOfBattle_RareCandy: @ 80FDF2C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =dp05_rare_candy str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_RareCandy thumb_func_start ItemUseOutOfBattle_TMHM ItemUseOutOfBattle_TMHM: @ 80FDF48 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gScriptItemId ldrh r1, [r0] movs r0, 0xA9 lsls r0, 1 cmp r1, r0 bls _080FDF74 ldr r2, =gText_BootedUpHM ldr r3, =sub_80FDF90 adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FDF80 .pool _080FDF74: ldr r2, =gText_BootedUpTM ldr r3, =sub_80FDF90 adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage _080FDF80: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_TMHM thumb_func_start sub_80FDF90 sub_80FDF90: @ 80FDF90 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 movs r0, 0x2 bl PlaySE ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 ldr r1, =task08_0809AD8C str r1, [r0] pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FDF90 thumb_func_start task08_0809AD8C task08_0809AD8C: @ 80FDFBC push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080FE000 ldr r4, =gStringVar1 ldr r0, =gScriptItemId ldrh r0, [r0] bl ItemIdToBattleMoveId lsls r0, 16 lsrs r0, 16 movs r1, 0xD muls r1, r0 ldr r0, =gMoveNames adds r1, r0 adds r0, r4, 0 bl StringCopy ldr r4, =gStringVar4 ldr r1, =gText_TMHMContainedVar1 adds r0, r4, 0 bl StringExpandPlaceholders ldr r3, =sub_80FE024 adds r0, r5, 0 movs r1, 0x1 adds r2, r4, 0 bl DisplayItemMessage _080FE000: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end task08_0809AD8C thumb_func_start sub_80FE024 sub_80FE024: @ 80FE024 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_085920E8 movs r1, 0x6 bl bag_menu_yes_no pop {r0} bx r0 .pool thumb_func_end sub_80FE024 thumb_func_start sub_80FE03C sub_80FE03C: @ 80FE03C push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =sub_81B6DC4 str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end sub_80FE03C thumb_func_start sub_80FE058 sub_80FE058: @ 80FE058 push {r4,lr} ldr r4, =gScriptItemId ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem ldrh r0, [r4] ldr r1, =gStringVar2 bl CopyItemName ldr r0, =gStringVar4 ldr r1, =gText_PlayerUsedVar2 bl StringExpandPlaceholders bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE0AC ldrh r0, [r4] bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 bl sub_81AB9A8 ldrh r0, [r4] bl ItemId_GetPocket lsls r0, 24 lsrs r0, 24 bl sub_81ABA88 b _080FE0B4 .pool _080FE0AC: bl sub_81C5924 bl sub_81C59BC _080FE0B4: pop {r4} pop {r0} bx r0 thumb_func_end sub_80FE058 thumb_func_start ItemUseOutOfBattle_Repel ItemUseOutOfBattle_Repel: @ 80FE0BC push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =0x00004021 bl VarGet lsls r0, 16 cmp r0, 0 bne _080FE0EC ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80FE124 str r0, [r1] b _080FE116 .pool _080FE0EC: bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE10C ldr r2, =gText_RepelEffectsLingered ldr r3, =bag_menu_inits_lists_menu adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE116 .pool _080FE10C: ldr r1, =gText_RepelEffectsLingered ldr r2, =sub_81C6714 adds r0, r5, 0 bl DisplayItemMessageInBattlePyramid _080FE116: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_Repel thumb_func_start sub_80FE124 sub_80FE124: @ 80FE124 push {r4,r5,lr} lsls r0, 24 lsrs r0, 24 lsls r1, r0, 2 adds r1, r0 lsls r4, r1, 3 ldr r5, =gTasks + 0x8 adds r1, r4, r5 ldrh r0, [r1, 0x10] adds r0, 0x1 strh r0, [r1, 0x10] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080FE156 movs r0, 0 strh r0, [r1, 0x10] movs r0, 0x2F bl PlaySE adds r0, r5, 0 subs r0, 0x8 adds r0, r4, r0 ldr r1, =sub_80FE164 str r1, [r0] _080FE156: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FE124 thumb_func_start sub_80FE164 sub_80FE164: @ 80FE164 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 bl IsSEPlaying lsls r0, 24 cmp r0, 0 bne _080FE1C2 ldr r4, =0x00004021 ldr r0, =gScriptItemId ldrh r0, [r0] bl ItemId_GetHoldEffectParam adds r1, r0, 0 lsls r1, 24 lsrs r1, 24 adds r0, r4, 0 bl VarSet bl sub_80FE058 bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE1B8 ldr r2, =gStringVar4 ldr r3, =bag_menu_inits_lists_menu adds r0, r5, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE1C2 .pool _080FE1B8: ldr r1, =gStringVar4 ldr r2, =sub_81C6714 adds r0, r6, 0 bl DisplayItemMessageInBattlePyramid _080FE1C2: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80FE164 thumb_func_start sub_80FE1D0 sub_80FE1D0: @ 80FE1D0 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080FE226 movs r0, 0x75 bl PlaySE bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE21C ldr r2, =gStringVar4 ldr r3, =bag_menu_inits_lists_menu adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE226 .pool _080FE21C: ldr r1, =gStringVar4 ldr r2, =sub_81C6714 adds r0, r5, 0 bl DisplayItemMessageInBattlePyramid _080FE226: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end sub_80FE1D0 thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute ItemUseOutOfBattle_BlackWhiteFlute: @ 80FE234 push {r4,r5,lr} lsls r0, 24 lsrs r5, r0, 24 ldr r4, =gScriptItemId ldrh r0, [r4] ldr r1, =gStringVar2 bl CopyItemName ldrh r0, [r4] cmp r0, 0x2B bne _080FE278 ldr r0, =0x000008ad bl FlagSet ldr r0, =0x000008ae bl FlagReset ldr r0, =gStringVar4 ldr r1, =gText_UsedVar2WildLured bl StringExpandPlaceholders b _080FE28C .pool _080FE278: ldr r0, =0x000008ae bl FlagSet ldr r0, =0x000008ad bl FlagReset ldr r0, =gStringVar4 ldr r1, =gText_UsedVar2WildRepelled bl StringExpandPlaceholders _080FE28C: ldr r1, =gTasks lsls r0, r5, 2 adds r0, r5 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x18] ldr r1, =sub_80FE1D0 str r1, [r0] pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute thumb_func_start task08_080A1C44 task08_080A1C44: @ 80FE2BC push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl player_avatar_init_params_reset bl sub_80B7CC8 adds r0, r4, 0 bl DestroyTask pop {r4} pop {r0} bx r0 thumb_func_end task08_080A1C44 thumb_func_start re_escape_rope re_escape_rope: @ 80FE2D8 push {r4,lr} adds r4, r0, 0 lsls r4, 24 lsrs r4, 24 bl flagmods_08054D70 bl sub_80FE058 ldr r1, =gTasks lsls r0, r4, 2 adds r0, r4 lsls r0, 3 adds r0, r1 movs r1, 0 strh r1, [r0, 0x8] ldr r1, =gStringVar4 ldr r2, =task08_080A1C44 adds r0, r4, 0 bl DisplayItemMessageOnField pop {r4} pop {r0} bx r0 .pool thumb_func_end re_escape_rope thumb_func_start sub_80FE314 sub_80FE314: @ 80FE314 push {lr} ldr r0, =gMapHeader ldrb r1, [r0, 0x1A] movs r0, 0x2 ands r0, r1 cmp r0, 0 bne _080FE32C movs r0, 0 b _080FE32E .pool _080FE32C: movs r0, 0x1 _080FE32E: pop {r1} bx r1 thumb_func_end sub_80FE314 thumb_func_start ItemUseOutOfBattle_EscapeRope ItemUseOutOfBattle_EscapeRope: @ 80FE334 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl sub_80FE314 lsls r0, 24 lsrs r0, 24 cmp r0, 0x1 bne _080FE35C ldr r1, =gUnknown_0203A0F4 ldr r0, =re_escape_rope str r0, [r1] adds r0, r4, 0 bl SetUpItemUseOnFieldCallback b _080FE36E .pool _080FE35C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xE] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080FE36E: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_EscapeRope thumb_func_start ItemUseOutOfBattle_EvolutionStone ItemUseOutOfBattle_EvolutionStone: @ 80FE378 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =sub_81B7C74 str r1, [r2] bl SetUpItemUseCallback pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_EvolutionStone thumb_func_start ItemUseInBattle_PokeBall ItemUseInBattle_PokeBall: @ 80FE394 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 bl IsPlayerPartyAndPokemonStorageFull lsls r0, 24 cmp r0, 0 bne _080FE3D0 ldr r0, =gScriptItemId ldrh r0, [r0] movs r1, 0x1 bl RemoveBagItem bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE3C8 adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080FE3FA .pool _080FE3C8: adds r0, r4, 0 bl sub_81C5B14 b _080FE3FA _080FE3D0: bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE3F0 ldr r2, =gText_BoxFull ldr r3, =bag_menu_inits_lists_menu adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE3FA .pool _080FE3F0: ldr r1, =gText_BoxFull ldr r2, =sub_81C6714 adds r0, r5, 0 bl DisplayItemMessageInBattlePyramid _080FE3FA: pop {r4,r5} pop {r0} bx r0 .pool thumb_func_end ItemUseInBattle_PokeBall thumb_func_start sub_80FE408 sub_80FE408: @ 80FE408 push {r4,r5,lr} lsls r0, 24 lsrs r4, r0, 24 adds r5, r4, 0 ldr r0, =gMain ldrh r1, [r0, 0x2E] movs r0, 0x3 ands r0, r1 cmp r0, 0 beq _080FE43A bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE434 adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080FE43A .pool _080FE434: adds r0, r5, 0 bl sub_81C5B14 _080FE43A: pop {r4,r5} pop {r0} bx r0 thumb_func_end sub_80FE408 thumb_func_start sub_80FE440 sub_80FE440: @ 80FE440 push {r4-r6,lr} lsls r0, 24 lsrs r5, r0, 24 adds r6, r5, 0 ldr r0, =gTasks lsls r1, r5, 2 adds r1, r5 lsls r1, 3 adds r1, r0 ldrh r0, [r1, 0x18] adds r0, 0x1 strh r0, [r1, 0x18] lsls r0, 16 asrs r0, 16 cmp r0, 0x7 ble _080FE4AC movs r0, 0x1 bl PlaySE ldr r4, =gScriptItemId ldrh r0, [r4] movs r1, 0x1 bl RemoveBagItem bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE49C ldrh r0, [r4] bl sub_806CF78 adds r2, r0, 0 ldr r3, =sub_80FE408 adds r0, r5, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE4AC .pool _080FE49C: ldrh r0, [r4] bl sub_806CF78 adds r1, r0, 0 ldr r2, =sub_80FE408 adds r0, r6, 0 bl DisplayItemMessageInBattlePyramid _080FE4AC: pop {r4-r6} pop {r0} bx r0 .pool thumb_func_end sub_80FE440 thumb_func_start ItemUseInBattle_StatIncrease ItemUseInBattle_StatIncrease: @ 80FE4B8 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r1, =gBattlePartyID ldr r0, =gBankInMenu ldrb r0, [r0] lsls r0, 1 adds r0, r1 ldrh r2, [r0] movs r0, 0x64 muls r0, r2 ldr r1, =gPlayerParty adds r0, r1 ldr r1, =gScriptItemId ldrh r1, [r1] lsls r2, 24 lsrs r2, 24 movs r3, 0 bl ExecuteTableBasedItemEffect_ lsls r0, 24 lsrs r2, r0, 24 cmp r2, 0 beq _080FE52C bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE518 ldr r2, =gText_WontHaveEffect ldr r3, =bag_menu_inits_lists_menu adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE53C .pool _080FE518: ldr r1, =gText_WontHaveEffect ldr r2, =sub_81C6714 adds r0, r4, 0 bl DisplayItemMessageInBattlePyramid b _080FE53C .pool _080FE52C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldr r0, =sub_80FE440 str r0, [r1] strh r2, [r1, 0x18] _080FE53C: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseInBattle_StatIncrease thumb_func_start sub_80FE54C sub_80FE54C: @ 80FE54C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE574 ldr r0, =gUnknown_0203CE54 ldr r1, [r0] ldr r0, =sub_81B89F0 str r0, [r1] adds r0, r4, 0 bl unknown_ItemMenu_Confirm b _080FE582 .pool _080FE574: ldr r0, =gUnknown_0203CF2C ldr r1, [r0] ldr r0, =sub_81B89F0 str r0, [r1] adds r0, r4, 0 bl sub_81C5B14 _080FE582: pop {r4} pop {r0} bx r0 .pool thumb_func_end sub_80FE54C thumb_func_start ItemUseInBattle_Medicine ItemUseInBattle_Medicine: @ 80FE590 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =ItemUseCB_Medicine str r1, [r2] bl sub_80FE54C pop {r0} bx r0 .pool thumb_func_end ItemUseInBattle_Medicine thumb_func_start sub_80FE5AC sub_80FE5AC: @ 80FE5AC push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =sub_81B79E8 str r1, [r2] bl sub_80FE54C pop {r0} bx r0 .pool thumb_func_end sub_80FE5AC thumb_func_start ItemUseInBattle_PPRecovery ItemUseInBattle_PPRecovery: @ 80FE5C8 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gUnknown_03006328 ldr r1, =dp05_ether str r1, [r2] bl sub_80FE54C pop {r0} bx r0 .pool thumb_func_end ItemUseInBattle_PPRecovery thumb_func_start ItemUseInBattle_Escape ItemUseInBattle_Escape: @ 80FE5E4 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gBattleTypeFlags ldr r0, [r0] movs r1, 0x8 ands r0, r1 cmp r0, 0 bne _080FE634 bl sub_80FE058 bl InBattlePyramid lsls r0, 24 cmp r0, 0 bne _080FE620 ldr r2, =gStringVar4 ldr r3, =unknown_ItemMenu_Confirm adds r0, r4, 0 movs r1, 0x1 bl DisplayItemMessage b _080FE646 .pool _080FE620: ldr r1, =gStringVar4 ldr r2, =sub_81C5B14 adds r0, r4, 0 bl DisplayItemMessageInBattlePyramid b _080FE646 .pool _080FE634: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 ldrb r1, [r1, 0xE] adds r0, r4, 0 bl DisplayDadsAdviceCannotUseItemMessage _080FE646: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseInBattle_Escape thumb_func_start ItemUseOutOfBattle_EnigmaBerry ItemUseOutOfBattle_EnigmaBerry: @ 80FE650 push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gScriptItemId ldrh r0, [r0] bl GetItemEffectType lsls r0, 24 lsrs r0, 24 subs r0, 0x1 cmp r0, 0x14 bls _080FE66A b _080FE75C _080FE66A: lsls r0, 2 ldr r1, =_080FE67C adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080FE67C: .4byte _080FE708 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE75C .4byte _080FE75C .4byte _080FE6EC .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE6D0 .4byte _080FE75C .4byte _080FE724 .4byte _080FE724 .4byte _080FE740 _080FE6D0: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_Medicine b _080FE770 .pool _080FE6EC: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_SacredAsh b _080FE770 .pool _080FE708: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_RareCandy b _080FE770 .pool _080FE724: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_PPUp b _080FE770 .pool _080FE740: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x1 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_PPRecovery b _080FE770 .pool _080FE75C: ldr r0, =gTasks lsls r1, r4, 2 adds r1, r4 lsls r1, 3 adds r1, r0 movs r0, 0x4 strh r0, [r1, 0x10] adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080FE770: pop {r4} pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_EnigmaBerry thumb_func_start ItemUseInBattle_EnigmaBerry ItemUseInBattle_EnigmaBerry: @ 80FE77C push {r4,lr} lsls r0, 24 lsrs r4, r0, 24 ldr r0, =gScriptItemId ldrh r0, [r0] bl GetItemEffectType lsls r0, 24 lsrs r0, 24 cmp r0, 0x15 bhi _080FE814 lsls r0, 2 ldr r1, =_080FE7A4 adds r0, r1 ldr r0, [r0] mov pc, r0 .pool .align 2, 0 _080FE7A4: .4byte _080FE7FC .4byte _080FE814 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE804 .4byte _080FE814 .4byte _080FE804 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE814 .4byte _080FE80C _080FE7FC: adds r0, r4, 0 bl ItemUseInBattle_StatIncrease b _080FE81A _080FE804: adds r0, r4, 0 bl ItemUseInBattle_Medicine b _080FE81A _080FE80C: adds r0, r4, 0 bl ItemUseInBattle_PPRecovery b _080FE81A _080FE814: adds r0, r4, 0 bl ItemUseOutOfBattle_CannotUse _080FE81A: pop {r4} pop {r0} bx r0 thumb_func_end ItemUseInBattle_EnigmaBerry thumb_func_start ItemUseOutOfBattle_CannotUse ItemUseOutOfBattle_CannotUse: @ 80FE820 push {lr} lsls r0, 24 lsrs r0, 24 ldr r2, =gTasks lsls r1, r0, 2 adds r1, r0 lsls r1, 3 adds r1, r2 ldrb r1, [r1, 0xE] bl DisplayDadsAdviceCannotUseItemMessage pop {r0} bx r0 .pool thumb_func_end ItemUseOutOfBattle_CannotUse .align 2, 0 @ Don't pad with nop.