diff options
Diffstat (limited to 'asm/berry.s')
-rw-r--r-- | asm/berry.s | 1120 |
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. |