#ifndef GUARD_BERRY_H #define GUARD_BERRY_H #define BERRY_NONE 0 enum { BERRY_FIRMNESS_UNKNOWN, BERRY_FIRMNESS_VERY_SOFT, BERRY_FIRMNESS_SOFT, BERRY_FIRMNESS_HARD, BERRY_FIRMNESS_VERY_HARD, BERRY_FIRMNESS_SUPER_HARD, }; enum { FLAVOR_SPICY, FLAVOR_DRY, FLAVOR_SWEET, FLAVOR_BITTER, FLAVOR_SOUR, FLAVOR_COUNT }; enum { BERRY_STAGE_NO_BERRY, // there is no tree planted and the soil is completely flat. BERRY_STAGE_PLANTED, BERRY_STAGE_SPROUTED, BERRY_STAGE_TALLER, BERRY_STAGE_FLOWERING, BERRY_STAGE_BERRIES, BERRY_STAGE_SPARKLING = 0xFF, }; #define NUM_BERRIES 44 extern const u8 *const gBerryTreeEventObjectGraphicsIdTablePointers[]; extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[]; extern const u8 *const gBerryTreePaletteSlotTablePointers[]; void ClearEnigmaBerries(void); void SetEnigmaBerry(u8 *src); bool32 IsEnigmaBerryValid(void); const struct Berry *GetBerryInfo(u8 berry); struct BerryTree *GetBerryTreeInfo(u8 id); bool32 EventObjectInteractionWaterBerryTree(void); bool8 IsPlayerFacingPlantedBerryTree(void); bool8 TryToWaterBerryTree(void); void ClearBerryTrees(void); void BerryTreeTimeUpdate(s32 minutes); void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 sparkle); void RemoveBerryTree(u8 id); u8 GetBerryTypeByBerryTreeId(u8 id); u8 GetStageByBerryTreeId(u8); u8 ItemIdToBerryType(u16 item); void GetBerryNameByBerryType(u8 berry, u8 *string); void ResetBerryTreeSparkleFlag(u8 id); void Bag_ChooseBerry(void); void EventObjectInteractionGetBerryTreeData(void); void EventObjectInteractionPlantBerryTree(void); void EventObjectInteractionPickBerryTree(void); void EventObjectInteractionRemoveBerryTree(void); bool8 PlayerHasBerries(void); void ResetBerryTreeSparkleFlags(void); extern const struct Berry gBerries[]; struct UnkStruct_0858AB24 { u8 unk0; u16 unk1; }; extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[]; #endif // GUARD_BERRY_H