summaryrefslogtreecommitdiff
path: root/asm/berry.s
diff options
context:
space:
mode:
Diffstat (limited to 'asm/berry.s')
-rw-r--r--asm/berry.s1120
1 files changed, 0 insertions, 1120 deletions
diff --git a/asm/berry.s b/asm/berry.s
deleted file mode 100644
index 54c4333d5..000000000
--- a/asm/berry.s
+++ /dev/null
@@ -1,1120 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80E15B8
-sub_80E15B8: @ 80E15B8
- push {lr}
- sub sp, 0x4
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r0, =gSaveBlock1Ptr
- ldr r1, [r0]
- ldr r0, =0x000031f8
- adds r1, r0
- ldr r2, =0x0100001a
- mov r0, sp
- bl CpuSet
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E15B8
-
- thumb_func_start sub_80E15E4
-sub_80E15E4: @ 80E15E4
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x000031f8
- adds r3, r0, r1
- movs r2, 0
-_080E15F2:
- adds r0, r3, r2
- adds r1, r4, r2
- ldrb r1, [r1]
- strb r1, [r0]
- adds r2, 0x1
- cmp r2, 0x33
- bls _080E15F2
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E15E4
-
- thumb_func_start sub_80E1610
-sub_80E1610: @ 80E1610
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- movs r1, 0
-_080E1618:
- adds r0, r3, r1
- ldrb r0, [r0]
- adds r2, r0
- adds r1, 0x1
- cmp r1, 0x2F
- bls _080E1618
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80E1610
-
- thumb_func_start sub_80E162C
-sub_80E162C: @ 80E162C
- push {r4,lr}
- ldr r4, =gSaveBlock1Ptr
- ldr r1, [r4]
- ldr r2, =0x0000320c
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E1674
- ldr r2, =0x00003202
- adds r0, r1, r2
- ldrb r0, [r0]
- cmp r0, 0
- beq _080E1674
- ldr r2, =0x000031f8
- adds r0, r1, r2
- bl sub_80E1610
- ldr r1, [r4]
- ldr r2, =0x00003228
- adds r1, r2
- ldr r1, [r1]
- cmp r0, r1
- bne _080E1674
- movs r0, 0x1
- b _080E1676
- .pool
-_080E1674:
- movs r0, 0
-_080E1676:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80E162C
-
- thumb_func_start GetBerryInfo
-@ struct berry_info *GetBerryInfo(u8 berryType)
-GetBerryInfo: @ 80E167C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2B
- bne _080E16A0
- bl sub_80E162C
- cmp r0, 0
- beq _080E16A0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x000031f8
- b _080E16B4
- .pool
-_080E16A0:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2A
- bls _080E16AC
- movs r4, 0x1
-_080E16AC:
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- ldr r1, =gBerries - 0x1c @ 1-based array
-_080E16B4:
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end GetBerryInfo
-
- thumb_func_start GetBerryTreeInfo
-@ struct BerryTreeInfo *GetBerryTreeInfo(u8 berryTreeId)
-GetBerryTreeInfo: @ 80E16C0
- lsls r0, 24
- ldr r1, =gSaveBlock1Ptr
- lsrs r0, 21
- ldr r2, =0x0000169c
- adds r0, r2
- ldr r1, [r1]
- adds r1, r0
- adds r0, r1, 0
- bx lr
- .pool
- thumb_func_end GetBerryTreeInfo
-
- thumb_func_start FieldObjectInteractionWaterBerryTree
-@ bool8 FieldObjectInteractionWaterBerryTree()
-FieldObjectInteractionWaterBerryTree: @ 80E16DC
- push {lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- adds r2, r0, 0
- ldrb r0, [r2, 0x1]
- lsls r0, 25
- lsrs r0, 25
- cmp r0, 0x2
- beq _080E1718
- cmp r0, 0x2
- bgt _080E1708
- cmp r0, 0x1
- beq _080E1712
- b _080E172E
- .pool
-_080E1708:
- cmp r0, 0x3
- beq _080E171E
- cmp r0, 0x4
- beq _080E1724
- b _080E172E
-_080E1712:
- ldrb r0, [r2, 0x5]
- movs r1, 0x10
- b _080E1728
-_080E1718:
- ldrb r0, [r2, 0x5]
- movs r1, 0x20
- b _080E1728
-_080E171E:
- ldrb r0, [r2, 0x5]
- movs r1, 0x40
- b _080E1728
-_080E1724:
- ldrb r0, [r2, 0x5]
- movs r1, 0x80
-_080E1728:
- orrs r0, r1
- strb r0, [r2, 0x5]
- b _080E1732
-_080E172E:
- movs r0, 0
- b _080E1734
-_080E1732:
- movs r0, 0x1
-_080E1734:
- pop {r1}
- bx r1
- thumb_func_end FieldObjectInteractionWaterBerryTree
-
- thumb_func_start IsPlayerFacingPlantedBerryTree
-@ bool8 IsPlayerFacingPlantedBerryTree()
-IsPlayerFacingPlantedBerryTree: @ 80E1738
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, =gUnknown_082742F9
- cmp r0, r1
- bne _080E1768
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetStageByBerryTreeId
- lsls r0, 24
- cmp r0, 0
- bne _080E1768
- movs r0, 0x1
- b _080E176A
- .pool
-_080E1768:
- movs r0, 0
-_080E176A:
- pop {r1}
- bx r1
- thumb_func_end IsPlayerFacingPlantedBerryTree
-
- thumb_func_start WaterBerryTree
-@ bool8 WaterBerryTree()
-WaterBerryTree: @ 80E1770
- push {lr}
- bl GetFieldObjectScriptPointerForComparison
- ldr r1, =gUnknown_082742F9
- cmp r0, r1
- bne _080E178C
- bl FieldObjectInteractionWaterBerryTree
- lsls r0, 24
- lsrs r0, 24
- b _080E178E
- .pool
-_080E178C:
- movs r0, 0
-_080E178E:
- pop {r1}
- bx r1
- thumb_func_end WaterBerryTree
-
- thumb_func_start ClearBerryTrees
-@ void ClearBerryTrees()
-ClearBerryTrees: @ 80E1794
- push {r4-r6,lr}
- movs r2, 0
- ldr r6, =gSaveBlock1Ptr
- ldr r5, =0x0000169c
- ldr r0, =gUnknown_0858ABD0
- ldr r3, [r0]
- ldr r4, [r0, 0x4]
-_080E17A2:
- ldr r0, [r6]
- lsls r1, r2, 3
- adds r0, r1
- adds r0, r5
- str r3, [r0]
- str r4, [r0, 0x4]
- adds r2, 0x1
- cmp r2, 0x7F
- ble _080E17A2
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ClearBerryTrees
-
- thumb_func_start BerryTreeGrow
-@ bool8 BerryTreeGrow(struct BerryTreeInfo *berryTree)
-BerryTreeGrow: @ 80E17C8
- push {r4,lr}
- adds r4, r0, 0
- ldrb r1, [r4, 0x1]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080E17DA
-_080E17D6:
- movs r0, 0
- b _080E1866
-_080E17DA:
- lsls r0, r1, 25
- lsrs r0, 25
- cmp r0, 0x5
- bhi _080E1864
- lsls r0, 2
- ldr r1, =_080E17F0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E17F0:
- .4byte _080E17D6
- .4byte _080E1810
- .4byte _080E1810
- .4byte _080E1810
- .4byte _080E1808
- .4byte _080E1828
-_080E1808:
- adds r0, r4, 0
- bl CalcBerryYield
- strb r0, [r4, 0x4]
-_080E1810:
- ldrb r2, [r4, 0x1]
- lsls r1, r2, 25
- lsrs r1, 25
- adds r1, 0x1
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- b _080E1864
-_080E1828:
- ldrb r0, [r4, 0x5]
- movs r1, 0x11
- negs r1, r1
- ands r1, r0
- movs r0, 0x21
- negs r0, r0
- ands r1, r0
- subs r0, 0x20
- ands r1, r0
- movs r0, 0x7F
- ands r1, r0
- movs r0, 0
- strb r0, [r4, 0x4]
- ldrb r2, [r4, 0x1]
- subs r0, 0x80
- ands r0, r2
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r4, 0x1]
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- strb r1, [r4, 0x5]
- cmp r1, 0xA
- bne _080E1864
- ldr r0, =gUnknown_0858ABD0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
-_080E1864:
- movs r0, 0x1
-_080E1866:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end BerryTreeGrow
-
- thumb_func_start BerryTreeTimeUpdate
-@ void BerryTreeTimeUpdate(s32 deltaSeconds)
-BerryTreeTimeUpdate: @ 80E1870
- push {r4-r7,lr}
- adds r6, r0, 0
- movs r2, 0
-_080E1876:
- ldr r1, =gSaveBlock1Ptr
- lsls r0, r2, 3
- ldr r3, =0x0000169c
- adds r0, r3
- ldr r1, [r1]
- adds r4, r1, r0
- ldrb r0, [r4]
- adds r7, r2, 0x1
- cmp r0, 0
- beq _080E1910
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0
- beq _080E1910
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E1910
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 3
- subs r1, r0
- cmp r6, r1
- blt _080E18CC
- ldr r0, =gUnknown_0858ABD0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r4]
- str r1, [r4, 0x4]
- b _080E1910
- .pool
-_080E18CC:
- adds r5, r6, 0
- cmp r5, 0
- beq _080E1910
- ldrh r1, [r4, 0x2]
- cmp r1, r5
- ble _080E18DC
- subs r0, r1, r5
- b _080E190E
-_080E18DC:
- subs r5, r1
- ldrb r0, [r4]
- bl GetStageDurationByBerryType
- strh r0, [r4, 0x2]
- adds r0, r4, 0
- bl BerryTreeGrow
- cmp r0, 0
- beq _080E1910
- ldrb r1, [r4, 0x1]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x5
- bne _080E1900
- ldrh r0, [r4, 0x2]
- lsls r0, 2
- strh r0, [r4, 0x2]
-_080E1900:
- cmp r5, 0
- beq _080E1910
- ldrh r0, [r4, 0x2]
- adds r1, r0, 0
- cmp r0, r5
- ble _080E18DC
- subs r0, r5
-_080E190E:
- strh r0, [r4, 0x2]
-_080E1910:
- adds r2, r7, 0
- cmp r2, 0x7F
- ble _080E1876
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end BerryTreeTimeUpdate
-
- thumb_func_start PlantBerryTree
-@ void PlantBerryTree(u8 berryTreeId, u8 berryType, u8 stage, u8 a4)
-PlantBerryTree: @ 80E191C
- push {r4-r7,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r3, 24
- lsrs r7, r3, 24
- bl GetBerryTreeInfo
- adds r6, r0, 0
- ldr r0, =gUnknown_0858ABD0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r6]
- str r1, [r6, 0x4]
- strb r4, [r6]
- adds r0, r4, 0
- bl GetStageDurationByBerryType
- strh r0, [r6, 0x2]
- movs r1, 0x7F
- ands r1, r5
- ldrb r2, [r6, 0x1]
- movs r0, 0x80
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x1]
- cmp r5, 0x5
- bne _080E196E
- adds r0, r6, 0
- bl CalcBerryYield
- strb r0, [r6, 0x4]
- ldrh r0, [r6, 0x2]
- lsls r0, 2
- strh r0, [r6, 0x2]
-_080E196E:
- cmp r7, 0
- bne _080E197A
- ldrb r0, [r6, 0x1]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r6, 0x1]
-_080E197A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end PlantBerryTree
-
- thumb_func_start RemoveBerryTree
-@ void RemoveBerryTree(u8 berryTreeId)
-RemoveBerryTree: @ 80E1984
- lsls r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- lsrs r0, 21
- adds r2, r0
- ldr r0, =0x0000169c
- adds r2, r0
- ldr r0, =gUnknown_0858ABD0
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [r2]
- str r1, [r2, 0x4]
- bx lr
- .pool
- thumb_func_end RemoveBerryTree
-
- thumb_func_start GetBerryTypeByBerryTreeId
-@ u8 GetBerryTypeByBerryTreeId(u8 berryTreeId)
-GetBerryTypeByBerryTreeId: @ 80E19AC
- lsls r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- lsrs r0, 21
- adds r1, r0
- ldr r0, =0x0000169c
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end GetBerryTypeByBerryTreeId
-
- thumb_func_start GetStageByBerryTreeId
-@ u8 GetStageByBerryTreeId(u8 berryTreeId)
-GetStageByBerryTreeId: @ 80E19C8
- lsls r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- lsrs r0, 21
- adds r1, r0
- ldr r0, =0x0000169d
- adds r1, r0
- ldrb r0, [r1]
- lsls r0, 25
- lsrs r0, 25
- bx lr
- .pool
- thumb_func_end GetStageByBerryTreeId
-
- thumb_func_start ItemIdToBerryType
-@ u8 ItemIdToBerryType(u16 itemId)
-ItemIdToBerryType: @ 80E19E8
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, =0xff7b0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080E1A08
- adds r0, r1, 0
- adds r0, 0x7C
- lsls r0, 24
- lsrs r0, 24
- b _080E1A0A
- .pool
-_080E1A08:
- movs r0, 0x1
-_080E1A0A:
- pop {r1}
- bx r1
- thumb_func_end ItemIdToBerryType
-
- thumb_func_start BerryTypeToItemId
-@ u16 BerryTypeToItemId(u16 berryType)
-BerryTypeToItemId: @ 80E1A10
- push {lr}
- lsls r0, 16
- lsrs r1, r0, 16
- ldr r2, =0xffff0000
- adds r0, r2
- lsrs r0, 16
- cmp r0, 0x2A
- bhi _080E1A30
- adds r0, r1, 0
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- b _080E1A32
- .pool
-_080E1A30:
- movs r0, 0x85
-_080E1A32:
- pop {r1}
- bx r1
- thumb_func_end BerryTypeToItemId
-
- thumb_func_start GetBerryNameByBerryType
-@ void GetBerryNameByBerryType(u8 berryType, u8 *dest)
-GetBerryNameByBerryType: @ 80E1A38
- push {r4,lr}
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- movs r2, 0x6
- bl memcpy
- movs r0, 0xFF
- strb r0, [r4, 0x6]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end GetBerryNameByBerryType
-
- thumb_func_start GetBerryCountStringByBerryType
-@ void GetBerryCountStringByBerryType(u8 berryType, u8 *dest, u32 berryCount)
-GetBerryCountStringByBerryType: @ 80E1A58
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- adds r1, r0, 0
- adds r0, r4, 0
- adds r2, r5, 0
- bl GetBerryCountString
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end GetBerryCountStringByBerryType
-
- thumb_func_start ResetBerryTreeSparkleFlag
-@ void ResetBerryTreeSparkleFlag(u8 berryTreeId)
-ResetBerryTreeSparkleFlag: @ 80E1A78
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- ldrb r2, [r0, 0x1]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0, 0x1]
- pop {r0}
- bx r0
- thumb_func_end ResetBerryTreeSparkleFlag
-
- thumb_func_start BerryTreeGetNumStagesWatered
-@ u8 BerryTreeGetNumStagesWatered(struct BerryTreeInfo *berryTree)
-BerryTreeGetNumStagesWatered: @ 80E1A90
- push {lr}
- ldrb r2, [r0, 0x5]
- movs r0, 0x10
- ands r0, r2
- lsls r0, 24
- lsrs r0, 24
- negs r0, r0
- lsrs r1, r0, 31
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _080E1AAA
- adds r1, 0x1
-_080E1AAA:
- movs r0, 0x40
- ands r0, r2
- cmp r0, 0
- beq _080E1AB8
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080E1AB8:
- movs r0, 0x80
- ands r0, r2
- cmp r0, 0
- beq _080E1AC6
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
-_080E1AC6:
- adds r0, r1, 0
- pop {r1}
- bx r1
- thumb_func_end BerryTreeGetNumStagesWatered
-
- thumb_func_start GetNumStagesWateredByBerryTreeId
-@ u8 GetNumStagesWateredByBerryTreeId(u8 berryTreeId)
-GetNumStagesWateredByBerryTreeId: @ 80E1ACC
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTreeInfo
- bl BerryTreeGetNumStagesWatered
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end GetNumStagesWateredByBerryTreeId
-
- thumb_func_start CalcBerryYieldInternal
-@ u8 CalcBerryYieldInternal(u16 max, u16 min, u8 numStagesWatered)
-CalcBerryYieldInternal: @ 80E1AE4
- push {r4-r6,lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0
- bne _080E1AFA
- lsls r0, r6, 24
- b _080E1B2E
-_080E1AFA:
- subs r1, r0, r6
- subs r0, r2, 0x1
- adds r5, r1, 0
- muls r5, r0
- adds r4, r1, 0
- muls r4, r2
- bl Random
- lsls r0, 16
- lsrs r0, 16
- subs r4, r5
- adds r4, 0x1
- adds r1, r4, 0
- bl __umodsi3
- adds r5, r0
- movs r0, 0x3
- ands r0, r5
- cmp r0, 0x1
- bls _080E1B28
- lsrs r0, r5, 2
- adds r0, 0x1
- b _080E1B2A
-_080E1B28:
- lsrs r0, r5, 2
-_080E1B2A:
- adds r0, r6
- lsls r0, 24
-_080E1B2E:
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYieldInternal
-
- thumb_func_start CalcBerryYield
-@ u8 CalcBerryYield(struct BerryTreeInfo *berryTree)
-CalcBerryYield: @ 80E1B38
- push {r4-r6,lr}
- adds r4, r0, 0
- ldrb r0, [r4]
- bl GetBerryInfo
- ldrb r6, [r0, 0xB]
- ldrb r5, [r0, 0xA]
- adds r0, r4, 0
- bl BerryTreeGetNumStagesWatered
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- adds r0, r5, 0
- adds r1, r6, 0
- bl CalcBerryYieldInternal
- lsls r0, 24
- lsrs r0, 24
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end CalcBerryYield
-
- thumb_func_start GetBerryCountByBerryTreeId
-@ u8 GetBerryCountByBerryTreeId(u8 berryTreeId)
-GetBerryCountByBerryTreeId: @ 80E1B64
- lsls r0, 24
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- lsrs r0, 21
- adds r1, r0
- movs r0, 0xB5
- lsls r0, 5
- adds r1, r0
- ldrb r0, [r1]
- bx lr
- .pool
- thumb_func_end GetBerryCountByBerryTreeId
-
- thumb_func_start GetStageDurationByBerryType
-@ u16 GetStageDurationByBerryType(u8 berryType)
-GetStageDurationByBerryType: @ 80E1B7C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryInfo
- ldrb r1, [r0, 0x14]
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 18
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end GetStageDurationByBerryType
-
- thumb_func_start FieldObjectInteractionGetBerryTreeData
-@ void FieldObjectInteractionGetBerryTreeData()
-FieldObjectInteractionGetBerryTreeData: @ 80E1B94
- push {r4-r6,lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0
- bl ResetBerryTreeSparkleFlag
- ldr r0, =gScriptLastTalked
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8092E9C
- lsls r0, 24
- cmp r0, 0
- beq _080E1BE0
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0xFF
- strh r0, [r1]
- b _080E1BEE
- .pool
-_080E1BE0:
- ldr r4, =gSpecialVar_0x8004
- adds r0, r5, 0
- bl GetStageByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
-_080E1BEE:
- ldr r4, =gSpecialVar_0x8005
- adds r0, r5, 0
- bl GetNumStagesWateredByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r4, =gSpecialVar_0x8006
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4]
- ldr r1, =gStringVar1
- ldrh r2, [r4]
- adds r0, r6, 0
- bl GetBerryCountStringByBerryType
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionGetBerryTreeData
-
- thumb_func_start FieldObjectInteractionGetBerryName
-@ void FieldObjectInteractionGetBerryName()
-FieldObjectInteractionGetBerryName: @ 80E1C2C
- push {lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gStringVar1
- bl GetBerryNameByBerryType
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionGetBerryName
-
- thumb_func_start FieldObjectInteractionGetBerryCountString
-@ void FieldObjectInteractionGetBerryCountString()
-FieldObjectInteractionGetBerryCountString: @ 80E1C54
- push {r4,r5,lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl GetBerryTypeByBerryTreeId
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- bl GetBerryCountByBerryTreeId
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- ldr r1, =gStringVar1
- adds r0, r5, 0
- bl GetBerryCountStringByBerryType
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionGetBerryCountString
-
- thumb_func_start ChooseBerry
-@ void ChooseBerry()
-ChooseBerry: @ 80E1C94
- push {lr}
- ldr r0, =CB2_ChooseBerry
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end ChooseBerry
-
- thumb_func_start FieldObjectInteractionPlantBerryTree
-@ void FieldObjectInteractionPlantBerryTree()
-FieldObjectInteractionPlantBerryTree: @ 80E1CA4
- push {r4,lr}
- ldr r0, =gUnknown_0203CE7C
- ldrh r0, [r0]
- bl ItemIdToBerryType
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0x1
- movs r3, 0x1
- bl PlantBerryTree
- bl FieldObjectInteractionGetBerryTreeData
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionPlantBerryTree
-
- thumb_func_start FieldObjectInteractionPickBerryTree
-@ void FieldObjectInteractionPickBerryTree()
-FieldObjectInteractionPickBerryTree: @ 80E1CDC
- push {r4-r6,lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r5, 0
- bl GetBerryTypeByBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- ldr r6, =gSpecialVar_0x8004
- bl BerryTypeToItemId
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- adds r0, r5, 0
- bl GetBerryCountByBerryTreeId
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl AddBagItem
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r6]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionPickBerryTree
-
- thumb_func_start FieldObjectInteractionRemoveBerryTree
-@ void FieldObjectInteractionRemoveBerryTree()
-FieldObjectInteractionRemoveBerryTree: @ 80E1D28
- push {lr}
- ldr r0, =gUnknown_03005DF0
- ldrb r0, [r0]
- bl FieldObjectGetBerryTreeId
- lsls r0, 24
- lsrs r0, 24
- bl RemoveBerryTree
- ldr r0, =gScriptLastTalked
- ldrb r0, [r0]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x5]
- ldrb r2, [r2, 0x4]
- bl sub_8092EF0
- pop {r0}
- bx r0
- .pool
- thumb_func_end FieldObjectInteractionRemoveBerryTree
-
- thumb_func_start PlayerHasBerries
-@ bool8 PlayerHasBerries()
-PlayerHasBerries: @ 80E1D5C
- push {lr}
- movs r0, 0x4
- bl IsBagPocketNonEmpty
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end PlayerHasBerries
-
- thumb_func_start ResetBerryTreeSparkleFlags
-@ void ResetBerryTreeSparkleFlags()
-ResetBerryTreeSparkleFlags: @ 80E1D6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetCameraCoords
- mov r0, sp
- ldrh r2, [r0]
- ldrh r1, [r4]
- adds r1, 0x3
- adds r3, r2, 0
- adds r3, 0xE
- lsls r1, 16
- movs r5, 0x80
- lsls r5, 12
- adds r0, r1, r5
- lsrs r0, 16
- mov r10, r0
- mov r5, sp
- lsls r2, 16
- asrs r2, 16
- mov r9, r2
- ldr r4, =gUnknown_02037350
- lsls r3, 16
- asrs r3, 16
- mov r8, r3
- asrs r7, r1, 16
- movs r6, 0xF
-_080E1DB0:
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _080E1DEC
- ldrb r0, [r4, 0x6]
- cmp r0, 0xC
- bne _080E1DEC
- ldrh r0, [r4, 0x10]
- strh r0, [r5]
- ldrh r0, [r4, 0x12]
- mov r1, sp
- strh r0, [r1, 0x2]
- movs r2, 0
- ldrsh r1, [r5, r2]
- cmp r9, r1
- bgt _080E1DEC
- cmp r1, r8
- bgt _080E1DEC
- lsls r0, 16
- asrs r1, r0, 16
- cmp r7, r1
- bgt _080E1DEC
- mov r2, r10
- lsls r0, r2, 16
- asrs r0, 16
- cmp r1, r0
- bgt _080E1DEC
- ldrb r0, [r4, 0x1D]
- bl ResetBerryTreeSparkleFlag
-_080E1DEC:
- adds r4, 0x24
- subs r6, 0x1
- cmp r6, 0
- bge _080E1DB0
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetBerryTreeSparkleFlags
-
- .align 2, 0 @ Don't pad with nop.