summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
authorProjectRevoTPP <projectrevotpp@hotmail.com>2017-04-09 01:05:20 +0000
committerYamaArashi <YamaArashi@users.noreply.github.com>2017-04-08 18:05:20 -0700
commit83d7f52f2cadd4232ee674947a93e93fc18e483a (patch)
treea7b36f471848a276c896ea874515b4ddb37e96d2 /asm
parent30310871d369055715374958e5244f84c028da7f (diff)
finish decompiling item_use.c (#244)
* nonmatching sub_80C9720 and decompile sub_80C9838 * finish decompiling Itemfinder functions. * decompile ItemUseOutOfBattle_PokeblockCase and ItemUseOutOfBattle_CoinCase * rename field_doortransition * rename weather file * decompile more of item_use.c * decompile up to repel code * decompile up to stat increase code * finish decompiling item_use.c * remove item_use from ld_script
Diffstat (limited to 'asm')
-rw-r--r--asm/field_fadetransition.s (renamed from asm/field_doortransition.s)0
-rw-r--r--asm/field_screeneffect.s (renamed from asm/weather.s)0
-rw-r--r--asm/item_use.s2029
3 files changed, 0 insertions, 2029 deletions
diff --git a/asm/field_doortransition.s b/asm/field_fadetransition.s
index 798285a45..798285a45 100644
--- a/asm/field_doortransition.s
+++ b/asm/field_fadetransition.s
diff --git a/asm/weather.s b/asm/field_screeneffect.s
index 01190c75e..01190c75e 100644
--- a/asm/weather.s
+++ b/asm/field_screeneffect.s
diff --git a/asm/item_use.s b/asm/item_use.s
deleted file mode 100644
index 66b9d7800..000000000
--- a/asm/item_use.s
+++ /dev/null
@@ -1,2029 +0,0 @@
- .include "constants/gba_constants.inc"
- .include "constants/species_constants.inc"
- .include "asm/macros.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80C9720
-sub_80C9720: @ 80C9720
- 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, _080C9834 @ =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 _080C9824
-_080C976E:
- 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 _080C980E
- movs r0, 0x7
- str r0, [sp, 0x10]
- mov r1, r8
- asrs r1, 16
- mov r9, r1
- mov r10, r0
-_080C9796:
- ldr r3, [sp, 0x10]
- cmp r3, r9
- bgt _080C97B8
- ldr r5, [sp, 0x8]
- lsls r0, r5, 16
- asrs r0, 16
- cmp r9, r0
- bge _080C97B8
- asrs r1, r2, 16
- cmp r10, r1
- bgt _080C97B8
- ldr r6, [sp, 0xC]
- lsls r0, r6, 16
- asrs r0, 16
- lsls r7, r4, 16
- cmp r1, r0
- blt _080C97F6
-_080C97B8:
- mov r0, r8
- asrs r5, r0, 16
- lsls r4, 16
- asrs r6, r4, 16
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8056BA0
- adds r7, r4, 0
- cmp r0, 0
- beq _080C97F6
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_80C9688
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C97F6
- 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_80C9838
-_080C97F6:
- 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 _080C9796
-_080C980E:
- 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 _080C976E
-_080C9824:
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9834: .4byte gMapHeader
- thumb_func_end sub_80C9720
-
- thumb_func_start sub_80C9838
-sub_80C9838: @ 80C9838
- 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, _080C986C @ =gTasks + 0x8
- adds r3, r1, r0
- movs r1, 0x4
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bne _080C9870
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
- movs r0, 0x1
- strh r0, [r3, 0x4]
- b _080C98FA
- .align 2, 0
-_080C986C: .4byte gTasks + 0x8
-_080C9870:
- movs r1, 0
- ldrsh r0, [r3, r1]
- cmp r0, 0
- bge _080C9880
- negs r0, r0
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C9882
-_080C9880:
- ldrh r4, [r3]
-_080C9882:
- movs r1, 0x2
- ldrsh r0, [r3, r1]
- ldrh r1, [r3, 0x2]
- mov r9, r1
- cmp r0, 0
- bge _080C9896
- negs r0, r0
- lsls r0, 16
- lsrs r2, r0, 16
- b _080C9898
-_080C9896:
- ldrh r2, [r3, 0x2]
-_080C9898:
- lsls r1, r7, 16
- asrs r0, r1, 16
- cmp r0, 0
- bge _080C98A8
- negs r0, r0
- lsls r0, 16
- lsrs r6, r0, 16
- b _080C98AA
-_080C98A8:
- lsrs r6, r1, 16
-_080C98AA:
- mov r1, r12
- lsls r0, r1, 16
- asrs r1, r0, 16
- mov r8, r0
- cmp r1, 0
- bge _080C98BC
- negs r0, r1
- lsls r0, 16
- b _080C98BE
-_080C98BC:
- mov r0, r8
-_080C98BE:
- 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 _080C98E0
- strh r7, [r3]
- mov r1, r12
- strh r1, [r3, 0x2]
- b _080C98FA
-_080C98E0:
- cmp r4, r0
- bne _080C98FA
- cmp r2, r1
- bgt _080C98F4
- cmp r2, r1
- bne _080C98FA
- mov r1, r9
- lsls r0, r1, 16
- cmp r0, r8
- bge _080C98FA
-_080C98F4:
- strh r7, [r3]
- mov r0, r12
- strh r0, [r3, 0x2]
-_080C98FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_80C9838
-
- thumb_func_start GetPlayerDirectionTowardsHiddenItem
-GetPlayerDirectionTowardsHiddenItem: @ 80C9908
- push {r4,r5,lr}
- lsls r0, 16
- lsls r1, 16
- lsrs r1, 16
- lsrs r2, r0, 16
- cmp r0, 0
- bne _080C991A
- cmp r1, 0
- beq _080C9974
-_080C991A:
- lsls r0, r2, 16
- asrs r2, r0, 16
- adds r5, r0, 0
- cmp r2, 0
- bge _080C992C
- negs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- b _080C992E
-_080C992C:
- lsrs r4, r5, 16
-_080C992E:
- lsls r0, r1, 16
- asrs r2, r0, 16
- adds r1, r0, 0
- cmp r2, 0
- bge _080C9940
- negs r0, r2
- lsls r0, 16
- lsrs r3, r0, 16
- b _080C9942
-_080C9940:
- lsrs r3, r1, 16
-_080C9942:
- lsls r0, r4, 16
- asrs r2, r0, 16
- lsls r0, r3, 16
- asrs r0, 16
- cmp r2, r0
- ble _080C995A
- cmp r5, 0
- bge _080C9956
- movs r0, 0x4
- b _080C9976
-_080C9956:
- movs r0, 0x2
- b _080C9976
-_080C995A:
- cmp r2, r0
- bge _080C9964
- cmp r1, 0
- blt _080C996C
- b _080C9970
-_080C9964:
- cmp r2, r0
- bne _080C9974
- cmp r1, 0
- bge _080C9970
-_080C996C:
- movs r0, 0x1
- b _080C9976
-_080C9970:
- movs r0, 0x3
- b _080C9976
-_080C9974:
- movs r0, 0
-_080C9976:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetPlayerDirectionTowardsHiddenItem
-
- thumb_func_start SetPlayerDirectionTowardsItem
-SetPlayerDirectionTowardsItem: @ 80C997C
- 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, _080C99E8 @ =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 UnfreezeMapObject
- adds r0, r5, 0
- bl PlayerTurnInPlace
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C99E8: .4byte gMapObjects
- thumb_func_end SetPlayerDirectionTowardsItem
-
- thumb_func_start DisplayItemRespondingMessageAndExitItemfinder
-DisplayItemRespondingMessageAndExitItemfinder: @ 80C99EC
- 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, _080C9A2C @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9A24
- ldr r1, _080C9A30 @ =gOtherText_ItemfinderResponding
- ldr r2, _080C9A34 @ =ExitItemfinder
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9A24:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9A2C: .4byte gMapObjects
-_080C9A30: .4byte gOtherText_ItemfinderResponding
-_080C9A34: .4byte ExitItemfinder
- thumb_func_end DisplayItemRespondingMessageAndExitItemfinder
-
- thumb_func_start RotatePlayerAndExitItemfinder
-RotatePlayerAndExitItemfinder: @ 80C9A38
- 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, _080C9AB4 @ =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, _080C9AB8 @ =gMapObjects
- adds r0, r1
- bl FieldObjectCheckIfSpecialAnimFinishedOrInactive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080C9A78
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _080C9AAE
-_080C9A78:
- ldr r1, _080C9ABC @ =gItemFinderDirections
- movs r2, 0xA
- ldrsh r0, [r4, r2]
- adds r0, r1
- ldrb r0, [r0]
- bl SetPlayerDirectionTowardsItem
- 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 _080C9AAE
- ldr r1, _080C9AC0 @ =gOtherText_ItemfinderItemUnderfoot
- ldr r2, _080C9AC4 @ =ExitItemfinder
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9AAE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9AB4: .4byte gTasks + 0x8
-_080C9AB8: .4byte gMapObjects
-_080C9ABC: .4byte gItemFinderDirections
-_080C9AC0: .4byte gOtherText_ItemfinderItemUnderfoot
-_080C9AC4: .4byte ExitItemfinder
- thumb_func_end RotatePlayerAndExitItemfinder
-
- thumb_func_start ItemUseOutOfBattle_PokeblockCase
-ItemUseOutOfBattle_PokeblockCase: @ 80C9AC8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl sub_80F9344
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9AF4
- ldr r0, _080C9AF0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
- b _080C9B2A
- .align 2, 0
-_080C9AF0: .4byte gTasks
-_080C9AF4:
- ldr r0, _080C9B14 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r2, 0xC
- ldrsh r0, [r1, r2]
- cmp r0, 0x1
- beq _080C9B18
- movs r0, 0
- bl sub_810BA7C
- adds r0, r4, 0
- bl ItemMenu_ConfirmNormalFade
- b _080C9B2A
- .align 2, 0
-_080C9B14: .4byte gTasks
-_080C9B18:
- ldr r1, _080C9B30 @ =gUnknown_0300485C
- ldr r0, _080C9B34 @ =sub_8080E28
- str r0, [r1]
- movs r0, 0x1
- bl sub_810BA7C
- adds r0, r5, 0
- bl ItemMenu_ConfirmComplexFade
-_080C9B2A:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9B30: .4byte gUnknown_0300485C
-_080C9B34: .4byte sub_8080E28
- thumb_func_end ItemUseOutOfBattle_PokeblockCase
-
- thumb_func_start ItemUseOutOfBattle_CoinCase
-ItemUseOutOfBattle_CoinCase: @ 80C9B38
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, _080C9B8C @ =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, _080C9B90 @ =gStringVar4
- ldr r1, _080C9B94 @ =gOtherText_Coins3
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r1, _080C9B98 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9BA0
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r2, _080C9B9C @ =CleanUpItemMenuMessage
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9BAC
- .align 2, 0
-_080C9B8C: .4byte gStringVar1
-_080C9B90: .4byte gStringVar4
-_080C9B94: .4byte gOtherText_Coins3
-_080C9B98: .4byte gTasks
-_080C9B9C: .4byte CleanUpItemMenuMessage
-_080C9BA0:
- ldr r2, _080C9BB4 @ =CleanUpOverworldMessage
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9BAC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BB4: .4byte CleanUpOverworldMessage
- thumb_func_end ItemUseOutOfBattle_CoinCase
-
- thumb_func_start sub_80C9BB8
-sub_80C9BB8: @ 80C9BB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BD4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BD0
- adds r0, r2, 0
- bl CleanUpItemMenuMessage
-_080C9BD0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BD4: .4byte gMain
- thumb_func_end sub_80C9BB8
-
- thumb_func_start sub_80C9BD8
-sub_80C9BD8: @ 80C9BD8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080C9BF4 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080C9BF0
- adds r0, r2, 0
- bl CleanUpOverworldMessage
-_080C9BF0:
- pop {r0}
- bx r0
- .align 2, 0
-_080C9BF4: .4byte gMain
- thumb_func_end sub_80C9BD8
-
- thumb_func_start unref_sub_80C9BF8
-unref_sub_80C9BF8: @ 80C9BF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080C9C3C @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0
- bne _080C9C4C
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080C9C40 @ =gUnknown_083D61DC
- ldr r0, _080C9C44 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C48 @ =sub_80C9BB8
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9C68
- .align 2, 0
-_080C9C3C: .4byte gTasks
-_080C9C40: .4byte gUnknown_083D61DC
-_080C9C44: .4byte gScriptItemId
-_080C9C48: .4byte sub_80C9BB8
-_080C9C4C:
- ldr r4, _080C9C70 @ =gUnknown_083D61DC
- ldr r0, _080C9C74 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetSecondaryId
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r1, [r0]
- ldr r2, _080C9C78 @ =sub_80C9BD8
- adds r0, r5, 0
- movs r3, 0
- bl DisplayItemMessageOnField
-_080C9C68:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9C70: .4byte gUnknown_083D61DC
-_080C9C74: .4byte gScriptItemId
-_080C9C78: .4byte sub_80C9BD8
- thumb_func_end unref_sub_80C9BF8
-
- thumb_func_start sub_80C9C7C
-sub_80C9C7C: @ 80C9C7C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsPlayerFacingPlantedBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9CE4
- ldr r1, _080C9CC8 @ =gUnknown_03005D00
- ldr r0, _080C9CCC @ =sub_80C9D00
- str r0, [r1]
- ldr r1, _080C9CD0 @ =gUnknown_0300485C
- ldr r0, _080C9CD4 @ =ExecuteItemUseFromBlackPalette
- str r0, [r1]
- ldr r1, _080C9CD8 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r2, _080C9CDC @ =c2_exit_to_overworld_2_switch
- lsrs r1, r2, 16
- movs r3, 0
- strh r1, [r0, 0x18]
- strh r2, [r0, 0x1A]
- ldr r1, _080C9CE0 @ =HandleItemMenuPaletteFade
- str r1, [r0]
- movs r0, 0x1
- negs r0, r0
- str r3, [sp]
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- b _080C9CF4
- .align 2, 0
-_080C9CC8: .4byte gUnknown_03005D00
-_080C9CCC: .4byte sub_80C9D00
-_080C9CD0: .4byte gUnknown_0300485C
-_080C9CD4: .4byte ExecuteItemUseFromBlackPalette
-_080C9CD8: .4byte gTasks
-_080C9CDC: .4byte c2_exit_to_overworld_2_switch
-_080C9CE0: .4byte HandleItemMenuPaletteFade
-_080C9CE4:
- ldr r0, _080C9CFC @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetFieldFunc
- adds r1, r0, 0
- adds r0, r4, 0
- bl _call_via_r1
-_080C9CF4:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9CFC: .4byte gScriptItemId
- thumb_func_end sub_80C9C7C
-
- thumb_func_start sub_80C9D00
-sub_80C9D00: @ 80C9D00
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, _080C9D28 @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- bl ScriptContext2_Enable
- ldr r0, _080C9D2C @ =gUnknown_081A1654
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D28: .4byte gScriptItemId
-_080C9D2C: .4byte gUnknown_081A1654
- thumb_func_end sub_80C9D00
-
- thumb_func_start ItemUseOutOfBattle_WailmerPail
-ItemUseOutOfBattle_WailmerPail: @ 80C9D30
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl TryToWaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080C9D58
- ldr r1, _080C9D50 @ =gUnknown_03005D00
- ldr r0, _080C9D54 @ =sub_80C9D74
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080C9D6A
- .align 2, 0
-_080C9D50: .4byte gUnknown_03005D00
-_080C9D54: .4byte sub_80C9D74
-_080C9D58:
- ldr r0, _080C9D70 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080C9D6A:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D70: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_WailmerPail
-
- thumb_func_start sub_80C9D74
-sub_80C9D74: @ 80C9D74
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r0, _080C9D94 @ =gUnknown_081A168F
- bl ScriptContext1_SetupScript
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9D94: .4byte gUnknown_081A168F
- thumb_func_end sub_80C9D74
-
- thumb_func_start sub_80C9D98
-sub_80C9D98: @ 80C9D98
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DAC @ =gUnknown_02038561
- movs r1, 0
- strb r1, [r2]
- bl ItemMenu_ConfirmNormalFade
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DAC: .4byte gUnknown_02038561
- thumb_func_end sub_80C9D98
-
- thumb_func_start ItemUseOutOfBattle_Medicine
-ItemUseOutOfBattle_Medicine: @ 80C9DB0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9DC4 @ =gUnknown_03004AE4
- ldr r1, _080C9DC8 @ =UseMedicine
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9DC4: .4byte gUnknown_03004AE4
-_080C9DC8: .4byte UseMedicine
- thumb_func_end ItemUseOutOfBattle_Medicine
-
- thumb_func_start ItemUseOutOfBattle_SacredAsh
-ItemUseOutOfBattle_SacredAsh: @ 80C9DCC
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, _080C9DDC @ =gLastFieldPokeMenuOpened
- movs r0, 0
- strb r0, [r1]
- movs r5, 0
- b _080C9DE6
- .align 2, 0
-_080C9DDC: .4byte gLastFieldPokeMenuOpened
-_080C9DE0:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080C9DE6:
- cmp r5, 0x5
- bhi _080C9E10
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, _080C9E28 @ =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0xB
- bl GetMonData
- cmp r0, 0
- beq _080C9DE0
- adds r0, r4, 0
- movs r1, 0x39
- bl GetMonData
- cmp r0, 0
- bne _080C9DE0
- ldr r0, _080C9E2C @ =gLastFieldPokeMenuOpened
- strb r5, [r0]
-_080C9E10:
- ldr r1, _080C9E30 @ =gUnknown_03004AE4
- ldr r0, _080C9E34 @ =sub_8070048
- str r0, [r1]
- ldr r1, _080C9E38 @ =gUnknown_02038561
- movs r0, 0x4
- strb r0, [r1]
- adds r0, r6, 0
- bl ItemMenu_ConfirmNormalFade
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E28: .4byte gPlayerParty
-_080C9E2C: .4byte gLastFieldPokeMenuOpened
-_080C9E30: .4byte gUnknown_03004AE4
-_080C9E34: .4byte sub_8070048
-_080C9E38: .4byte gUnknown_02038561
- thumb_func_end ItemUseOutOfBattle_SacredAsh
-
- thumb_func_start ItemUseOutOfBattle_PPRecovery
-ItemUseOutOfBattle_PPRecovery: @ 80C9E3C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E50 @ =gUnknown_03004AE4
- ldr r1, _080C9E54 @ =DoPPRecoveryItemEffect
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E50: .4byte gUnknown_03004AE4
-_080C9E54: .4byte DoPPRecoveryItemEffect
- thumb_func_end ItemUseOutOfBattle_PPRecovery
-
- thumb_func_start ItemUseOutOfBattle_PPUp
-ItemUseOutOfBattle_PPUp: @ 80C9E58
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E6C @ =gUnknown_03004AE4
- ldr r1, _080C9E70 @ =DoPPUpItemEffect
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E6C: .4byte gUnknown_03004AE4
-_080C9E70: .4byte DoPPUpItemEffect
- thumb_func_end ItemUseOutOfBattle_PPUp
-
- thumb_func_start ItemUseOutOfBattle_RareCandy
-ItemUseOutOfBattle_RareCandy: @ 80C9E74
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9E88 @ =gUnknown_03004AE4
- ldr r1, _080C9E8C @ =DoRareCandyItemEffect
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9E88: .4byte gUnknown_03004AE4
-_080C9E8C: .4byte DoRareCandyItemEffect
- thumb_func_end ItemUseOutOfBattle_RareCandy
-
- thumb_func_start ItemUseOutOfBattle_TMHM
-ItemUseOutOfBattle_TMHM: @ 80C9E90
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080C9EBC @ =gScriptItemId
- ldrh r1, [r0]
- movs r0, 0xA9
- lsls r0, 1
- cmp r1, r0
- bls _080C9EC8
- ldr r1, _080C9EC0 @ =gOtherText_BootedHM
- ldr r2, _080C9EC4 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080C9ED4
- .align 2, 0
-_080C9EBC: .4byte gScriptItemId
-_080C9EC0: .4byte gOtherText_BootedHM
-_080C9EC4: .4byte sub_80C9EE4
-_080C9EC8:
- ldr r1, _080C9EDC @ =gOtherText_BootedTM
- ldr r2, _080C9EE0 @ =sub_80C9EE4
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9ED4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9EDC: .4byte gOtherText_BootedTM
-_080C9EE0: .4byte sub_80C9EE4
- thumb_func_end ItemUseOutOfBattle_TMHM
-
- thumb_func_start sub_80C9EE4
-sub_80C9EE4: @ 80C9EE4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x2
- bl PlaySE
- ldr r1, _080C9F08 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, _080C9F0C @ =sub_80C9F10
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F08: .4byte gTasks
-_080C9F0C: .4byte sub_80C9F10
- thumb_func_end sub_80C9EE4
-
- thumb_func_start sub_80C9F10
-sub_80C9F10: @ 80C9F10
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080C9F64 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080C9F2A
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080C9F5C
-_080C9F2A:
- ldr r4, _080C9F68 @ =gStringVar1
- ldr r0, _080C9F6C @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, _080C9F70 @ =gMoveNames
- adds r1, r0
- adds r0, r4, 0
- bl StringCopy
- ldr r4, _080C9F74 @ =gStringVar4
- ldr r1, _080C9F78 @ =gOtherText_ContainsMove
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080C9F7C @ =sub_80C9F80
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080C9F5C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9F64: .4byte gMain
-_080C9F68: .4byte gStringVar1
-_080C9F6C: .4byte gScriptItemId
-_080C9F70: .4byte gMoveNames
-_080C9F74: .4byte gStringVar4
-_080C9F78: .4byte gOtherText_ContainsMove
-_080C9F7C: .4byte sub_80C9F80
- thumb_func_end sub_80C9F10
-
- thumb_func_start sub_80C9F80
-sub_80C9F80: @ 80C9F80
- push {r4,lr}
- sub sp, 0x8
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0x7
- movs r1, 0x7
- movs r2, 0x1
- bl DisplayYesNoMenu
- ldr r0, _080C9FB8 @ =gBGTilemapBuffers + 0x800
- movs r1, 0x4
- str r1, [sp]
- movs r1, 0x1
- str r1, [sp, 0x4]
- movs r1, 0x8
- movs r2, 0x8
- movs r3, 0x5
- bl sub_80A3FA0
- ldr r1, _080C9FBC @ =gUnknown_083D61F4
- adds r0, r4, 0
- bl sub_80F914C
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FB8: .4byte gBGTilemapBuffers + 0x800
-_080C9FBC: .4byte gUnknown_083D61F4
- thumb_func_end sub_80C9F80
-
- thumb_func_start sub_80C9FC0
-sub_80C9FC0: @ 80C9FC0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080C9FD4 @ =gUnknown_03004AE4
- ldr r1, _080C9FD8 @ =TeachMonTMMove
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080C9FD4: .4byte gUnknown_03004AE4
-_080C9FD8: .4byte TeachMonTMMove
- thumb_func_end sub_80C9FC0
-
- thumb_func_start sub_80C9FDC
-sub_80C9FDC: @ 80C9FDC
- push {r4,lr}
- ldr r4, _080CA004 @ =gScriptItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- bl sub_80A3E0C
- ldrh r0, [r4]
- ldr r1, _080CA008 @ =gStringVar2
- bl CopyItemName
- ldr r0, _080CA00C @ =gStringVar4
- ldr r1, _080CA010 @ =gOtherText_UsedItem
- bl StringExpandPlaceholders
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA004: .4byte gScriptItemId
-_080CA008: .4byte gStringVar2
-_080CA00C: .4byte gStringVar4
-_080CA010: .4byte gOtherText_UsedItem
- thumb_func_end sub_80C9FDC
-
- thumb_func_start ItemUseOutOfBattle_Repel
-ItemUseOutOfBattle_Repel: @ 80CA014
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r5, _080CA050 @ =0x00004021
- adds r0, r5, 0
- bl VarGet
- lsls r0, 16
- cmp r0, 0
- bne _080CA060
- ldr r0, _080CA054 @ =gScriptItemId
- ldrh r0, [r0]
- bl ItemId_GetHoldEffectParam
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl VarSet
- bl sub_80C9FDC
- ldr r1, _080CA058 @ =gStringVar4
- ldr r2, _080CA05C @ =CleanUpItemMenuMessage
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA06C
- .align 2, 0
-_080CA050: .4byte 0x00004021
-_080CA054: .4byte gScriptItemId
-_080CA058: .4byte gStringVar4
-_080CA05C: .4byte CleanUpItemMenuMessage
-_080CA060:
- ldr r1, _080CA074 @ =gOtherText_RepelLingers
- ldr r2, _080CA078 @ =CleanUpItemMenuMessage
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA06C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA074: .4byte gOtherText_RepelLingers
-_080CA078: .4byte CleanUpItemMenuMessage
- thumb_func_end ItemUseOutOfBattle_Repel
-
- thumb_func_start sub_80CA07C
-sub_80CA07C: @ 80CA07C
- push {lr}
- bl sub_80A3E0C
- ldr r0, _080CA090 @ =gScriptItemId
- ldrh r0, [r0]
- ldr r1, _080CA094 @ =gStringVar2
- bl CopyItemName
- pop {r0}
- bx r0
- .align 2, 0
-_080CA090: .4byte gScriptItemId
-_080CA094: .4byte gStringVar2
- thumb_func_end sub_80CA07C
-
- thumb_func_start sub_80CA098
-sub_80CA098: @ 80CA098
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA0D0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA0C8
- movs r0, 0x75
- bl PlaySE
- ldr r1, _080CA0D4 @ =gStringVar4
- ldr r2, _080CA0D8 @ =CleanUpItemMenuMessage
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA0C8:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA0D0: .4byte gTasks
-_080CA0D4: .4byte gStringVar4
-_080CA0D8: .4byte CleanUpItemMenuMessage
- thumb_func_end sub_80CA098
-
- thumb_func_start ItemUseOutOfBattle_BlackWhiteFlute
-ItemUseOutOfBattle_BlackWhiteFlute: @ 80CA0DC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- ldr r0, _080CA10C @ =gScriptItemId
- ldrh r0, [r0]
- cmp r0, 0x2B
- bne _080CA124
- ldr r0, _080CA110 @ =0x0000084d
- bl FlagSet
- ldr r0, _080CA114 @ =0x0000084e
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA118 @ =gStringVar4
- ldr r1, _080CA11C @ =gOtherText_UsedFlute
- bl StringExpandPlaceholders
- ldr r1, _080CA120 @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- b _080CA146
- .align 2, 0
-_080CA10C: .4byte gScriptItemId
-_080CA110: .4byte 0x0000084d
-_080CA114: .4byte 0x0000084e
-_080CA118: .4byte gStringVar4
-_080CA11C: .4byte gOtherText_UsedFlute
-_080CA120: .4byte gTasks
-_080CA124:
- cmp r0, 0x2A
- bne _080CA152
- ldr r0, _080CA158 @ =0x0000084e
- bl FlagSet
- ldr r0, _080CA15C @ =0x0000084d
- bl FlagReset
- bl sub_80CA07C
- ldr r0, _080CA160 @ =gStringVar4
- ldr r1, _080CA164 @ =gOtherText_UsedRepel
- bl StringExpandPlaceholders
- ldr r1, _080CA168 @ =gTasks
- lsls r0, r5, 2
- adds r0, r5
-_080CA146:
- lsls r0, 3
- adds r0, r1
- ldr r1, _080CA16C @ =sub_80CA098
- str r1, [r0]
- movs r1, 0
- strh r1, [r0, 0x26]
-_080CA152:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA158: .4byte 0x0000084e
-_080CA15C: .4byte 0x0000084d
-_080CA160: .4byte gStringVar4
-_080CA164: .4byte gOtherText_UsedRepel
-_080CA168: .4byte gTasks
-_080CA16C: .4byte sub_80CA098
- thumb_func_end ItemUseOutOfBattle_BlackWhiteFlute
-
- thumb_func_start task08_080A1C44
-task08_080A1C44: @ 80CA170
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl player_avatar_init_params_reset
- bl sub_80878A8
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end task08_080A1C44
-
- thumb_func_start sub_80CA18C
-sub_80CA18C: @ 80CA18C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_8053014
- bl sub_80C9FDC
- ldr r1, _080CA1BC @ =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
- ldr r1, _080CA1C0 @ =gStringVar4
- ldr r2, _080CA1C4 @ =task08_080A1C44
- adds r0, r4, 0
- movs r3, 0
- bl DisplayItemMessageOnField
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA1BC: .4byte gTasks
-_080CA1C0: .4byte gStringVar4
-_080CA1C4: .4byte task08_080A1C44
- thumb_func_end sub_80CA18C
-
- thumb_func_start sub_80CA1C8
-sub_80CA1C8: @ 80CA1C8
- push {lr}
- ldr r0, _080CA1D8 @ =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x4
- beq _080CA1DC
- movs r0, 0
- b _080CA1DE
- .align 2, 0
-_080CA1D8: .4byte gMapHeader
-_080CA1DC:
- movs r0, 0x1
-_080CA1DE:
- pop {r1}
- bx r1
- thumb_func_end sub_80CA1C8
-
- thumb_func_start ItemUseOutOfBattle_EscapeRope
-ItemUseOutOfBattle_EscapeRope: @ 80CA1E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80CA1C8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080CA20C
- ldr r1, _080CA204 @ =gUnknown_03005D00
- ldr r0, _080CA208 @ =sub_80CA18C
- str r0, [r1]
- adds r0, r4, 0
- bl SetUpItemUseOnFieldCallback
- b _080CA21E
- .align 2, 0
-_080CA204: .4byte gUnknown_03005D00
-_080CA208: .4byte sub_80CA18C
-_080CA20C:
- ldr r0, _080CA224 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA21E:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA224: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EscapeRope
-
- thumb_func_start ItemUseOutOfBattle_EvolutionStone
-ItemUseOutOfBattle_EvolutionStone: @ 80CA228
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA23C @ =gUnknown_03004AE4
- ldr r1, _080CA240 @ =DoEvolutionStoneItemEffect
- str r1, [r2]
- bl sub_80C9D98
- pop {r0}
- bx r0
- .align 2, 0
-_080CA23C: .4byte gUnknown_03004AE4
-_080CA240: .4byte DoEvolutionStoneItemEffect
- thumb_func_end ItemUseOutOfBattle_EvolutionStone
-
- thumb_func_start ItemUseInBattle_PokeBall
-ItemUseInBattle_PokeBall: @ 80CA244
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl PlayerPartyAndPokemonStorageFull
- lsls r0, 24
- cmp r0, 0
- bne _080CA26C
- ldr r0, _080CA268 @ =gScriptItemId
- ldrh r0, [r0]
- movs r1, 0x1
- bl RemoveBagItem
- adds r0, r4, 0
- bl sub_80A7094
- b _080CA284
- .align 2, 0
-_080CA268: .4byte gScriptItemId
-_080CA26C:
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r1, _080CA28C @ =gOtherText_BoxIsFull
- ldr r2, _080CA290 @ =CleanUpItemMenuMessage
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA284:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA28C: .4byte gOtherText_BoxIsFull
-_080CA290: .4byte CleanUpItemMenuMessage
- thumb_func_end ItemUseInBattle_PokeBall
-
- thumb_func_start sub_80CA294
-sub_80CA294: @ 80CA294
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, _080CA2B8 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _080CA2AE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080CA2B4
-_080CA2AE:
- adds r0, r2, 0
- bl sub_80A7094
-_080CA2B4:
- pop {r0}
- bx r0
- .align 2, 0
-_080CA2B8: .4byte gMain
- thumb_func_end sub_80CA294
-
- thumb_func_start sub_80CA2BC
-sub_80CA2BC: @ 80CA2BC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, _080CA304 @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x26]
- adds r0, 0x1
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _080CA2FC
- movs r0, 0x1
- bl PlaySE
- ldr r4, _080CA308 @ =gScriptItemId
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- ldrh r0, [r4]
- bl sub_803F378
- adds r1, r0, 0
- ldr r2, _080CA30C @ =sub_80CA294
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA2FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA304: .4byte gTasks
-_080CA308: .4byte gScriptItemId
-_080CA30C: .4byte sub_80CA294
- thumb_func_end sub_80CA2BC
-
- thumb_func_start ItemUseInBattle_StatIncrease
-ItemUseInBattle_StatIncrease: @ 80CA310
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, _080CA35C @ =gUnknown_02024A6A
- ldr r0, _080CA360 @ =gUnknown_02024E6C
- ldrb r0, [r0]
- lsls r0, 1
- adds r0, r1
- ldrh r4, [r0]
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- movs r0, 0x64
- muls r0, r4
- ldr r1, _080CA364 @ =gPlayerParty
- adds r0, r1
- ldr r1, _080CA368 @ =gScriptItemId
- ldrh r1, [r1]
- lsls r4, 24
- lsrs r4, 24
- adds r2, r4, 0
- movs r3, 0
- bl ExecuteTableBasedItemEffect_
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- beq _080CA374
- ldr r1, _080CA36C @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA370 @ =CleanUpItemMenuMessage
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA384
- .align 2, 0
-_080CA35C: .4byte gUnknown_02024A6A
-_080CA360: .4byte gUnknown_02024E6C
-_080CA364: .4byte gPlayerParty
-_080CA368: .4byte gScriptItemId
-_080CA36C: .4byte gOtherText_WontHaveAnyEffect
-_080CA370: .4byte CleanUpItemMenuMessage
-_080CA374:
- ldr r0, _080CA38C @ =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, _080CA390 @ =sub_80CA2BC
- str r0, [r1]
- strh r2, [r1, 0x26]
-_080CA384:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA38C: .4byte gTasks
-_080CA390: .4byte sub_80CA2BC
- thumb_func_end ItemUseInBattle_StatIncrease
-
- thumb_func_start sub_80CA394
-sub_80CA394: @ 80CA394
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA3BC @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080CA3B4
- bl sub_8094E4C
- bl gpu_pal_allocator_reset__manage_upper_four
- adds r0, r4, 0
- bl DestroyTask
-_080CA3B4:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3BC: .4byte gPaletteFade
- thumb_func_end sub_80CA394
-
- thumb_func_start sub_80CA3C0
-sub_80CA3C0: @ 80CA3C0
- push {lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA3EC @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldr r0, _080CA3F0 @ =sub_80CA394
- str r0, [r1]
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- add sp, 0x4
- pop {r0}
- bx r0
- .align 2, 0
-_080CA3EC: .4byte gTasks
-_080CA3F0: .4byte sub_80CA394
- thumb_func_end sub_80CA3C0
-
- thumb_func_start ItemUseInBattle_Medicine
-ItemUseInBattle_Medicine: @ 80CA3F4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA408 @ =gUnknown_03004AE4
- ldr r1, _080CA40C @ =UseMedicine
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA408: .4byte gUnknown_03004AE4
-_080CA40C: .4byte UseMedicine
- thumb_func_end ItemUseInBattle_Medicine
-
- thumb_func_start unref_sub_80CA410
-unref_sub_80CA410: @ 80CA410
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA424 @ =gUnknown_03004AE4
- ldr r1, _080CA428 @ =sub_8070048
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA424: .4byte gUnknown_03004AE4
-_080CA428: .4byte sub_8070048
- thumb_func_end unref_sub_80CA410
-
- thumb_func_start ItemUseInBattle_PPRecovery
-ItemUseInBattle_PPRecovery: @ 80CA42C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA440 @ =gUnknown_03004AE4
- ldr r1, _080CA444 @ =DoPPRecoveryItemEffect
- str r1, [r2]
- bl sub_80CA3C0
- pop {r0}
- bx r0
- .align 2, 0
-_080CA440: .4byte gUnknown_03004AE4
-_080CA444: .4byte DoPPRecoveryItemEffect
- thumb_func_end ItemUseInBattle_PPRecovery
-
- thumb_func_start unref_sub_80CA448
-unref_sub_80CA448: @ 80CA448
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r4, _080CA494 @ =gScriptItemId
- ldrh r1, [r4]
- movs r0, 0
- movs r2, 0
- bl ExecuteTableBasedItemEffect__
- lsls r0, 24
- cmp r0, 0
- bne _080CA4AC
- ldrh r0, [r4]
- movs r1, 0x1
- bl RemoveBagItem
- ldr r0, _080CA498 @ =gPlayerParty
- ldr r1, _080CA49C @ =gStringVar1
- bl GetMonNickname
- ldr r4, _080CA4A0 @ =gStringVar4
- ldr r1, _080CA4A4 @ =gOtherText_SnapConfusion
- adds r0, r4, 0
- bl StringExpandPlaceholders
- ldr r2, _080CA4A8 @ =sub_80A7094
- adds r0, r5, 0
- adds r1, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA4B8
- .align 2, 0
-_080CA494: .4byte gScriptItemId
-_080CA498: .4byte gPlayerParty
-_080CA49C: .4byte gStringVar1
-_080CA4A0: .4byte gStringVar4
-_080CA4A4: .4byte gOtherText_SnapConfusion
-_080CA4A8: .4byte sub_80A7094
-_080CA4AC:
- ldr r1, _080CA4C0 @ =gOtherText_WontHaveAnyEffect
- ldr r2, _080CA4C4 @ =CleanUpItemMenuMessage
- adds r0, r5, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
-_080CA4B8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA4C0: .4byte gOtherText_WontHaveAnyEffect
-_080CA4C4: .4byte CleanUpItemMenuMessage
- thumb_func_end unref_sub_80CA448
-
- thumb_func_start ItemUseInBattle_Escape
-ItemUseInBattle_Escape: @ 80CA4C8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- movs r0, 0
- movs r1, 0xD
- movs r2, 0xD
- movs r3, 0x14
- bl MenuZeroFillWindowRect
- ldr r0, _080CA4F8 @ =gBattleTypeFlags
- ldrh r1, [r0]
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- bne _080CA504
- bl sub_80C9FDC
- ldr r1, _080CA4FC @ =gStringVar4
- ldr r2, _080CA500 @ =sub_80A7094
- adds r0, r4, 0
- movs r3, 0x1
- bl DisplayItemMessageOnField
- b _080CA516
- .align 2, 0
-_080CA4F8: .4byte gBattleTypeFlags
-_080CA4FC: .4byte gStringVar4
-_080CA500: .4byte sub_80A7094
-_080CA504:
- ldr r0, _080CA51C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrb r1, [r1, 0xC]
- adds r0, r4, 0
- bl DisplayDadsAdviceCannotUseItemMessage
-_080CA516:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA51C: .4byte gTasks
- thumb_func_end ItemUseInBattle_Escape
-
- thumb_func_start ItemUseOutOfBattle_EnigmaBerry
-ItemUseOutOfBattle_EnigmaBerry: @ 80CA520
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA544 @ =gScriptItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x14
- bls _080CA53A
- b _080CA62C
-_080CA53A:
- lsls r0, 2
- ldr r1, _080CA548 @ =_080CA54C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA544: .4byte gScriptItemId
-_080CA548: .4byte _080CA54C
- .align 2, 0
-_080CA54C:
- .4byte _080CA5D8
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA62C
- .4byte _080CA5BC
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA5A0
- .4byte _080CA62C
- .4byte _080CA5F4
- .4byte _080CA5F4
- .4byte _080CA610
-_080CA5A0:
- ldr r0, _080CA5B8 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_Medicine
- b _080CA640
- .align 2, 0
-_080CA5B8: .4byte gTasks
-_080CA5BC:
- ldr r0, _080CA5D4 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_SacredAsh
- b _080CA640
- .align 2, 0
-_080CA5D4: .4byte gTasks
-_080CA5D8:
- ldr r0, _080CA5F0 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_RareCandy
- b _080CA640
- .align 2, 0
-_080CA5F0: .4byte gTasks
-_080CA5F4:
- ldr r0, _080CA60C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPUp
- b _080CA640
- .align 2, 0
-_080CA60C: .4byte gTasks
-_080CA610:
- ldr r0, _080CA628 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x1
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_PPRecovery
- b _080CA640
- .align 2, 0
-_080CA628: .4byte gTasks
-_080CA62C:
- ldr r0, _080CA648 @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- movs r0, 0x4
- strh r0, [r1, 0x26]
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA640:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_080CA648: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_EnigmaBerry
-
- thumb_func_start ItemUseInBattle_EnigmaBerry
-ItemUseInBattle_EnigmaBerry: @ 80CA64C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _080CA66C @ =gScriptItemId
- ldrh r0, [r0]
- bl GetItemEffectType
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x15
- bhi _080CA6E4
- lsls r0, 2
- ldr r1, _080CA670 @ =_080CA674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_080CA66C: .4byte gScriptItemId
-_080CA670: .4byte _080CA674
- .align 2, 0
-_080CA674:
- .4byte _080CA6CC
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6D4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6E4
- .4byte _080CA6DC
-_080CA6CC:
- adds r0, r4, 0
- bl ItemUseInBattle_StatIncrease
- b _080CA6EA
-_080CA6D4:
- adds r0, r4, 0
- bl ItemUseInBattle_Medicine
- b _080CA6EA
-_080CA6DC:
- adds r0, r4, 0
- bl ItemUseInBattle_PPRecovery
- b _080CA6EA
-_080CA6E4:
- adds r0, r4, 0
- bl ItemUseOutOfBattle_CannotUse
-_080CA6EA:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end ItemUseInBattle_EnigmaBerry
-
- thumb_func_start ItemUseOutOfBattle_CannotUse
-ItemUseOutOfBattle_CannotUse: @ 80CA6F0
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, _080CA70C @ =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- ldrb r1, [r1, 0xC]
- bl DisplayDadsAdviceCannotUseItemMessage
- pop {r0}
- bx r0
- .align 2, 0
-_080CA70C: .4byte gTasks
- thumb_func_end ItemUseOutOfBattle_CannotUse
-
- .align 2, 0 @ Don't pad with nop.