Berry Expansion (#3618)

This commit is contained in:
DizzyEggg 2024-01-05 13:34:03 +01:00 committed by GitHub
commit b5252c4afd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
23 changed files with 1793 additions and 685 deletions

View File

@ -6,6 +6,8 @@ BerryTreeScript::
case BERRY_STAGE_PLANTED, BerryTree_EventScript_CheckBerryStage1
case BERRY_STAGE_SPROUTED, BerryTree_EventScript_CheckBerryStage2
case BERRY_STAGE_TALLER, BerryTree_EventScript_CheckBerryStage3
case BERRY_STAGE_TRUNK, BerryTree_EventScript_CheckBerryStageTrunk
case BERRY_STAGE_BUDDING, BerryTree_EventScript_CheckBerryStageBudding
case BERRY_STAGE_FLOWERING, BerryTree_EventScript_CheckBerryStage4
case BERRY_STAGE_BERRIES, BerryTree_EventScript_CheckBerryFullyGrown
end
@ -23,6 +25,8 @@ BerryTree_EventScript_CheckSoil::
faceplayer
specialvar VAR_RESULT, PlayerHasBerries
goto_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_WantToPlant
specialvar VAR_RESULT, PlayerHasMulch
goto_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_WantToMulch
message BerryTree_Text_ItsSoftLoamySoil
waitmessage
waitbuttonpress
@ -30,11 +34,42 @@ BerryTree_EventScript_CheckSoil::
end
BerryTree_EventScript_WantToPlant::
specialvar VAR_RESULT, PlayerHasMulch
goto_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_WantToPlantMulch
msgbox BerryTree_Text_WantToPlant, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_ChooseBerryToPlant
goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPlanting
end
BerryTree_EventScript_WantToMulch::
.if OW_BERRY_MULCH_USAGE == TRUE
msgbox BerryTree_Text_WantToMulch, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_ChooseMulchToUse
goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPlanting
.endif
end
BerryTree_EventScript_WantToPlantMulch::
.if OW_BERRY_MULCH_USAGE == TRUE
message BerryTree_Text_ItsSoftLoamySoil
waitmessage
multichoice 0, 0, MULTI_BERRY_PLOT, FALSE
switch VAR_RESULT
case 0, BerryTree_EventScript_ChooseMulchToUse
case 1, BerryTree_EventScript_ChooseBerryToPlant
case 2, BerryTree_EventScript_CancelPlanting
case MULTI_B_PRESSED, BerryTree_EventScript_CancelPlanting
BerryTree_EventScript_ChooseMulchToUse::
fadescreen FADE_TO_BLACK
closemessage
special Bag_ChooseMulch
waitstate
goto_if_eq VAR_ITEM_ID, 0, BerryTree_EventScript_CancelPlanting
removeitem VAR_ITEM_ID
call BerryTree_EventScript_UseMulch
.endif
BerryTree_EventScript_ChooseBerryToPlant::
fadescreen FADE_TO_BLACK
closemessage
@ -72,6 +107,22 @@ BerryTree_EventScript_CheckBerryStage3::
waitbuttonpress
goto BerryTree_EventScript_WantToWater
BerryTree_EventScript_CheckBerryStageTrunk::
lockall
special ObjectEventInteractionGetBerryName
message BerryTree_Text_BerryGrowthStageTrunk
waitmessage
waitbuttonpress
goto BerryTree_EventScript_WantToWater
BerryTree_EventScript_CheckBerryStageBudding::
lockall
special ObjectEventInteractionGetBerryName
message BerryTree_Text_BerryGrowthStageBudding
waitmessage
waitbuttonpress
goto BerryTree_EventScript_WantToWater
BerryTree_EventScript_CheckBerryStage4::
call BerryTree_EventScript_GetCareAdverb
lockall
@ -103,13 +154,25 @@ BerryTree_EventScript_CheckBerryFullyGrown::
lock
faceplayer
special ObjectEventInteractionGetBerryCountString
.if OW_BERRY_MUTATIONS == TRUE
goto_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_CheckBerryFullyGrown_Mutation
.endif
msgbox BerryTree_Text_WantToPick, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_PickBerry
goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPickingBerry
.set BERRY_NORMAL_BAG_FULL, 0
.set BERRY_NORMAL_SPACE_IN_BAG, 1
.set BERRY_MUTATION_BAG_FULL, 2
.set BERRY_MUTATION_SPACE_IN_BAG, 3
BerryTree_EventScript_PickBerry::
special ObjectEventInteractionPickBerryTree
goto_if_eq VAR_0x8004, 0, BerryTree_EventScript_BerryPocketFull
goto_if_eq VAR_0x8004, BERRY_NORMAL_BAG_FULL, BerryTree_EventScript_BerryPocketFull
.if OW_BERRY_MUTATIONS == TRUE
goto_if_eq VAR_0x8004, BERRY_MUTATION_BAG_FULL, BerryTree_EventScript_BerryPocketFull_Mutation
goto_if_eq VAR_0x8004, BERRY_MUTATION_SPACE_IN_BAG, BerryTree_EventScript_PickBerry_Mutation
.endif
special IncrementDailyPickedBerries
special ObjectEventInteractionRemoveBerryTree
message BerryTree_Text_PickedTheBerry
@ -145,8 +208,16 @@ BerryTree_EventScript_ItemUsePlantBerry::
end
BerryTree_EventScript_WantToWater::
.if OW_BERRY_PESTS == TRUE
call BerryTree_EventScript_CheckForPests
.endif
.if OW_BERRY_WEEDS == TRUE
call BerryTree_EventScript_CheckForWeed
.endif
checkitem ITEM_WAILMER_PAIL
goto_if_eq VAR_RESULT, FALSE, BerryTree_EventScript_DontWater
specialvar VAR_RESULT, CanWaterBerryPlot
goto_if_eq VAR_RESULT, FALSE, BerryTree_EventScript_DontWater
special ObjectEventInteractionGetBerryName
msgbox BerryTree_Text_WantToWater, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_WaterBerry
@ -194,17 +265,39 @@ BerryTree_Text_PlantedOneBerry:
.string "the soft, loamy soil.$"
BerryTree_Text_BerryGrowthStage1:
.if OW_BERRY_SIX_STAGES == TRUE
.string "This is where you planted the\n{STR_VAR_1}!$"
.else
.string "One {STR_VAR_1} was planted here.$"
.endif
BerryTree_Text_BerryGrowthStage2:
.if OW_BERRY_SIX_STAGES == TRUE
.string "The {STR_VAR_1} is sprouting!$"
.else
.string "{STR_VAR_1} has sprouted.$"
.endif
BerryTree_Text_BerryGrowthStage3:
.if OW_BERRY_SIX_STAGES == TRUE
.string "The {STR_VAR_1}'s seedling is growing well!$"
.else
.string "This {STR_VAR_1} plant is growing taller.$"
.endif
BerryTree_Text_BerryGrowthStageTrunk:
.string "The {STR_VAR_1}'s trunk is getting bigger!$"
BerryTree_Text_BerryGrowthStageBudding:
.string "The {STR_VAR_1} tree has buds!$"
BerryTree_Text_BerryGrowthStage4:
.if OW_BERRY_SIX_STAGES == TRUE
.string "The {STR_VAR_1} tree is in bloom!$"
.else
.string "These {STR_VAR_1} flowers are blooming\n"
.string "{STR_VAR_2}.$"
.endif
BerryTree_Text_CareAdverbGreat:
.string "very beautifully$"
@ -249,3 +342,123 @@ BerryTree_Text_PlantIsDelighted:
BerryTree_Text_ExclamationPoint:
.string "!$"
.if OW_BERRY_MUTATIONS == TRUE
BerryTree_EventScript_CheckBerryFullyGrown_Mutation:
msgbox BerryTree_Text_WantToPick_Mutation, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_PickBerry
goto_if_eq VAR_RESULT, NO, BerryTree_EventScript_CancelPickingBerry_Mutation
BerryTree_EventScript_CancelPickingBerry_Mutation::
message BerryTree_Text_BerryLeftUnpicked_Mutation
waitmessage
waitbuttonpress
release
end
BerryTree_EventScript_BerryPocketFull_Mutation::
message BerryTree_Text_BerryPocketFull_Mutation
waitmessage
waitbuttonpress
release
end
BerryTree_EventScript_PickBerry_Mutation::
special IncrementDailyPickedBerries
special ObjectEventInteractionRemoveBerryTree
message BerryTree_Text_PickedTheBerry_Mutation
playfanfare MUS_OBTAIN_BERRY
waitmessage
waitfanfare
waitbuttonpress
message BerryTree_Text_PutAwayBerry_Mutation
waitmessage
waitbuttonpress
release
end
BerryTree_Text_WantToPick_Mutation:
.string "You found {STR_VAR_2} {STR_VAR_1}\n"
.string "and 1 {STR_VAR_3}!\p"
.string "Do you want to pick them?$"
BerryTree_Text_BerryLeftUnpicked_Mutation:
.string "{PLAYER} left the {STR_VAR_1}\n"
.string "and the {STR_VAR_3} unpicked.$"
BerryTree_Text_BerryPocketFull_Mutation:
.string "The BAG's BERRIES POCKET is full.\p"
.string "The {STR_VAR_1} and the\n"
.string "{STR_VAR_3} couldn't be taken.$"
BerryTree_Text_PickedTheBerry_Mutation:
.string "{PLAYER} picked the {STR_VAR_2} {STR_VAR_1}\n"
.string "and the {STR_VAR_3}.$"
BerryTree_Text_PutAwayBerry_Mutation:
.string "{PLAYER} put away the {STR_VAR_1}\n"
.string "and the {STR_VAR_3} in the BAG's\l"
.string "BERRIES POCKET.\p"
.string "The soil returned to its soft and\n"
.string "loamy state.$"
.endif
.if OW_BERRY_MULCH_USAGE == TRUE
BerryTree_EventScript_UseMulch::
special ObjectEventInteractionApplyMulch
message BerryTree_Text_ScatteredMulch
waitmessage
waitbuttonpress
return
BerryTree_Text_WantToMulch:
.string "It's soft, loamy soil.\n"
.string "Put down some fertilizer?$"
BerryTree_Text_ScatteredMulch:
.string "{PLAYER} scattered the {STR_VAR_1}\n"
.string "on the soft, loamy soil.$"
.endif
.if OW_BERRY_WEEDS == TRUE
BerryTree_EventScript_CheckForWeed::
specialvar VAR_RESULT, ObjectEventInteractionBerryHasWeed
call_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_WeedIsGrowing
return
BerryTree_EventScript_WeedIsGrowing::
msgbox BerryTree_Text_WeedIsGrowing, MSGBOX_YESNO
goto_if_eq VAR_RESULT, YES, BerryTree_EventScript_PullOutWeed
return
BerryTree_EventScript_PullOutWeed::
special ObjectEventInteractionPullBerryWeed
message BerryTree_Text_PulledOutTheWeed
waitmessage
waitbuttonpress
return
BerryTree_Text_WeedIsGrowing:
.string "A weed is growing here.\n"
.string "Do you want to pull it out?$"
BerryTree_Text_PulledOutTheWeed:
.string "{PLAYER} pulled out the weed!$"
.endif
.if OW_BERRY_PESTS == TRUE
BerryTree_EventScript_CheckForPests::
specialvar VAR_RESULT, ObjectEventInteractionBerryHasPests
call_if_eq VAR_RESULT, TRUE, BerryTree_EventScript_EncounterPests
return
BerryTree_EventScript_EncounterPests::
message BerryTree_Text_APokemonAppeared
waitmessage
waitbuttonpress
dowildbattle
return
BerryTree_Text_APokemonAppeared:
.string "A Pokémon appeared!$"
.endif

View File

@ -215,6 +215,24 @@ Debug_ShowExpansionVersion::
Debug_ExpansionVersion:
.string "pokeemerald-expansion {STR_VAR_1}$"
Debug_BerryPestsDisabled::
msgbox DebugText_BerryPestsDisabled, MSGBOX_DEFAULT
release
end
DebugText_BerryPestsDisabled:
.string "OW_BERRY_PESTS is disabled.\n"
.string "Unable to force pests onto berry trees.$"
Debug_BerryWeedsDisabled::
msgbox DebugText_BerryWeedsDisabled, MSGBOX_DEFAULT
release
end
DebugText_BerryWeedsDisabled:
.string "OW_BERRY_WEEDS is disabled.\n"
.string "Unable to force weeds onto berry trees.$"
.endif
Debug_FlagsAndVarNotSetBattleConfigMessage::

View File

@ -542,3 +542,11 @@ gSpecials::
def_special TrySkyBattle
def_special VsSeekerResetObjectMovementAfterChargeComplete
def_special VsSeekerFreezeObjectsAfterChargeComplete
def_special PlayerHasMulch
def_special Bag_ChooseMulch
def_special ObjectEventInteractionApplyMulch
def_special ObjectEventInteractionPullBerryWeed
def_special ObjectEventInteractionClearBerryPests
def_special ObjectEventInteractionBerryHasWeed
def_special ObjectEventInteractionBerryHasPests
def_special CanWaterBerryPlot

View File

@ -1,7 +1,6 @@
#ifndef GUARD_BERRY_H
#define GUARD_BERRY_H
void ClearEnigmaBerries(void);
void SetEnigmaBerry(u8 *src);
bool32 IsEnigmaBerryValid(void);
const struct Berry *GetBerryInfo(u8 berry);
@ -19,12 +18,15 @@ u8 ItemIdToBerryType(u16 item);
void GetBerryNameByBerryType(u8 berry, u8 *string);
void ResetBerryTreeSparkleFlag(u8 id);
void Bag_ChooseBerry(void);
void Bag_ChooseMulch(void);
void ObjectEventInteractionGetBerryTreeData(void);
void ObjectEventInteractionPlantBerryTree(void);
void ObjectEventInteractionPickBerryTree(void);
void ObjectEventInteractionRemoveBerryTree(void);
void ObjectEventInteractionApplyMulch(void);
bool8 PlayerHasBerries(void);
void SetBerryTreesSeen(void);
bool32 BerryTreeGrow(struct BerryTree *tree);
extern const struct Berry gBerries[];

View File

@ -13,6 +13,23 @@
#define OW_PC_JAPAN_WALDA_ICONS TRUE // In the US release of Emerald, the Cross, Bolt, and Plusle icons for Walda's wallpapers were left blank from the Japan release. Setting this to TRUE will restore them.
#define OW_PC_HEAL GEN_LATEST // In Gen8+, Pokémon are not healed when deposited in the PC.
// Berry settings
// These generational defines only make a distinction for Berries!
#define GEN_6_XY GEN_6
#define GEN_6_ORAS GEN_LATEST + 1
#define OW_BERRY_MUTATIONS FALSE // If enabled, Berry plants can mutate based on berries planted next to them.
#define OW_BERRY_MOISTURE FALSE // If enabled, Berry watering is not a matter of watering it once per stage, but rather of keeping the soil moist.
#define OW_BERRY_ALWAYS_WATERABLE FALSE // If OW_BERRY_MOISTURE is enabled, this setting allows the player to continuously water soil; dry soil will cause a decrease in Berry Yield (like Gen4). When off, soil can only be watered when dry and watering increases yield (like Gen6).
#define OW_BERRY_MULCH_USAGE FALSE // If enabled, Mulch can be used on soil to fertilize it. Otherwise, it is considered unusable. Note that moisture effects only work with OW_BERRY_MOISTURE enabled!
#define OW_BERRY_WEEDS FALSE // If enabled, weeds may grow on Berry plants that the player needs to take care of. Without OW_BERRY_MOISTURE, weeding bonuses are rounded down.
#define OW_BERRY_PESTS FALSE // If enabled, pests may approach Berry plants that the player needs to take care of. Without OW_BERRY_MOISTURE, pest bonuses are rounded down.
#define OW_BERRY_SIX_STAGES FALSE // In XY, Berries go through six stages instead of four. This toggle does not affect the time it takes for a tree to be ready for harvest. Without OW_BERRY_MOISTURE, the two extra stages count as BERRY_STAGE_TALLER for watering purposes.
#define OW_BERRY_GROWTH_RATE GEN_3 // Presets for how long each Berry plant takes to grow.
#define OW_BERRY_YIELD_RATE GEN_3 // Presets for how many Berries each plant can yield.
#define OW_BERRY_DRAIN_RATE GEN_6_ORAS // If OW_BERRY_MOISTURE is enabled, this setting changes how fast the soil dries out. GEN_4 uses a Berry-dependent drain rate, GEN_6_XY dries out in 24 hours (4 hours with the relevant Mulch) and GEN_6_ORAS dries out in 4 hours. Other values are illegal.
// Out-of-battle Ability effects
#define OW_SYNCHRONIZE_NATURE GEN_LATEST // In Gen8, if a Pokémon with Synchronize is leading the party, it's 100% guaranteed that wild Pokémon will have the same Nature, as opposed to 50% previously. Stationary Pokémon are excluded in Gen3. In Gen6, all No Eggs Discovered gift Pokémon will have the same Nature, while in Gen7 all gift Pokémon will, regardless of Egg Group - In Gen 8, no gift Pokémon are affected. In Gen9, this ability has no out-of-battle effect.
#define OW_COMPOUND_EYES GEN_LATEST // Prior to Gen9, if a Pokémon with Compound Eyes is leading the party, the wild held item rate is increased to 60%/20%.

View File

@ -10,6 +10,13 @@
#define BERRY_FIRMNESS_VERY_HARD 4
#define BERRY_FIRMNESS_SUPER_HARD 5
#define BERRY_COLOR_RED 0
#define BERRY_COLOR_BLUE 1
#define BERRY_COLOR_PURPLE 2
#define BERRY_COLOR_GREEN 3
#define BERRY_COLOR_YELLOW 4
#define BERRY_COLOR_PINK 5
#define FLAVOR_SPICY 0
#define FLAVOR_DRY 1
#define FLAVOR_SWEET 2
@ -23,6 +30,8 @@
#define BERRY_STAGE_TALLER 3
#define BERRY_STAGE_FLOWERING 4
#define BERRY_STAGE_BERRIES 5
#define BERRY_STAGE_TRUNK 6 // These follow BERRY_STAGE_BERRIES to preserve save compatibility
#define BERRY_STAGE_BUDDING 7
#define BERRY_STAGE_SPARKLING 255
// Berries can be watered in the following stages:

View File

@ -1017,6 +1017,7 @@
#define ITEM_TO_BERRY(itemId)(((itemId) - FIRST_BERRY_INDEX) + 1)
#define ITEM_TO_MAIL(itemId)((itemId) - FIRST_MAIL_INDEX)
#define MAIL_NONE 0xFF
#define ITEM_TO_MULCH(itemId)(((itemId) - ITEM_GROWTH_MULCH) + 1)
#define NUM_TECHNICAL_MACHINES 100
#define NUM_HIDDEN_MACHINES 8

View File

@ -122,6 +122,7 @@
#define MULTI_SLATEPORT_TENT_RULES 111
#define MULTI_FALLARBOR_TENT_RULES 112
#define MULTI_TAG_MATCH_TYPE 113
#define MULTI_BERRY_PLOT 114
// Lilycove SS Tidal Multichoice Selections
#define SSTIDAL_SELECTION_SLATEPORT 0

View File

@ -94,7 +94,6 @@ extern const struct OamData gObjectEventBaseOam_32x32;
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
extern const u8 gReflectionEffectPaletteMap[];
extern const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[];
extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
extern const u8 *const gBerryTreePaletteSlotTablePointers[];

View File

@ -7,19 +7,24 @@
struct Berry
{
const u8 name[BERRY_NAME_LENGTH + 1];
u8 firmness;
u16 size;
u8 firmness:4;
u8 color:4;
u16 size:10;
u16 weedsBonus:3;
u16 pestsBonus:3;
u8 maxYield;
u8 minYield;
u8 minYield:4;
u8 waterBonus:4;
const u8 *description1;
const u8 *description2;
u8 stageDuration;
u8 growthDuration;
u8 spicy;
u8 dry;
u8 sweet;
u8 bitter;
u8 sour;
u8 smoothness;
u8 drainRate;
};
// with no const fields
@ -27,20 +32,24 @@ struct Berry
struct Berry2
{
u8 name[BERRY_NAME_LENGTH + 1];
u8 firmness;
u16 size;
u8 firmness:4;
u8 color:4;
u16 size:10;
u16 weedsBonus:3;
u16 pestsBonus:3;
u8 maxYield;
u8 minYield;
u8 minYield:4;
u8 waterBonus:4;
u8 *description1;
u8 *description2;
u8 stageDuration;
u8 growthDuration;
u8 spicy;
u8 dry;
u8 sweet;
u8 bitter;
u8 sour;
u8 smoothness;
//u8 padding;
u8 drainRate;
};
struct EnigmaBerry
@ -62,16 +71,21 @@ struct BattleEnigmaBerry
struct BerryTree
{
u8 berry;
u8 stage:7;
u8 berry:7;
u8 weeds:1;
u8 stage:3;
u8 mulch:4;
u8 stopGrowth:1;
u16 minutesUntilNextStage;
u8 berryYield;
u16 minutesUntilNextStage:14;
u16 mutationA:2;
u8 berryYield:5;
u8 pests:1;
u8 mutationB:2;
u8 regrowthCount:4;
u8 watered1:1;
u8 watered2:1;
u8 watered3:1;
u8 watered4:1;
u8 watered:4; // Used to keep track of bonuses in case of gradient watering
u16 moistureLevel:7;
u16 moistureClock:7;
u16 padding:2;
};
#endif // GUARD_GLOBAL_BERRY_H

View File

@ -17,6 +17,7 @@ enum {
ITEMMENULOCATION_APPRENTICE,
ITEMMENULOCATION_WALLY,
ITEMMENULOCATION_PCBOX,
ITEMMENULOCATION_BERRY_TREE_MULCH,
ITEMMENULOCATION_LAST,
};
@ -101,6 +102,7 @@ void DoWallyTutorialBagMenu(void);
void ResetBagScrollPositions(void);
void ChooseBerryForMachine(void (*exitCallback)(void));
void CB2_ChooseBerry(void);
void CB2_ChooseMulch(void);
void Task_FadeAndCloseBagMenu(u8 taskId);
void BagMenu_YesNo(u8 taskId, u8 windowType, const struct YesNoFuncTable* funcTable);
void UpdatePocketItemList(u8 pocketId);

View File

@ -46,6 +46,7 @@ u8 CanUseDigOrEscapeRopeOnCurMap(void);
u8 CheckIfItemIsTMHMOrEvolutionStone(u16 itemId);
void FieldUseFunc_VsSeeker(u8 taskId);
void Task_ItemUse_CloseMessageBoxAndReturnToField_VsSeeker(u8 taskId);
void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField);
enum {
BALL_THROW_UNABLE_TWO_MONS,

View File

@ -3055,4 +3055,7 @@ extern const u8 gText_ExpShareOff[];
extern const u8 gText_BasePointsResetToZero[];
extern const u8 gText_Fertilize[];
extern const u8 gText_PlantBerry[];
#endif // GUARD_STRINGS_H

File diff suppressed because it is too large Load Diff

View File

@ -144,6 +144,10 @@ static const u8 sTeraShardDesc[] = _("These shards may\n"
"form when a Tera\n"
"Pokémon faints.");
static const u8 sGenericMulchDesc[] = _("A fertilizer that\n"
"is unsuitable for\n"
"local soil.");
const struct Item gItems[] =
{
[ITEM_NONE] =
@ -2676,12 +2680,17 @@ const struct Item gItems[] =
{
.name = _("Growth Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"accelerates the\n"
"growth of Berries."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_GROWTH_MULCH),
.flingPower = 30,
},
@ -2689,12 +2698,17 @@ const struct Item gItems[] =
{
.name = _("Damp Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"decelerates the\n"
"growth of Berries."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_DAMP_MULCH),
.flingPower = 30,
},
@ -2702,12 +2716,17 @@ const struct Item gItems[] =
{
.name = _("Stable Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"ups the life time\n"
"of Berry trees."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_STABLE_MULCH),
.flingPower = 30,
},
@ -2715,12 +2734,17 @@ const struct Item gItems[] =
{
.name = _("Gooey Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"makes more Berries\n"
"regrow after fall."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_GOOEY_MULCH),
.flingPower = 30,
},
@ -2728,12 +2752,17 @@ const struct Item gItems[] =
{
.name = _("Rich Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"ups the number of\n"
"Berries harvested."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_RICH_MULCH),
.flingPower = 30,
},
@ -2741,12 +2770,17 @@ const struct Item gItems[] =
{
.name = _("SurprseMulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"ups the chance of\n"
"Berry mutations."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_SURPRISE_MULCH),
.flingPower = 30,
},
@ -2754,12 +2788,17 @@ const struct Item gItems[] =
{
.name = _("Boost Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer that\n"
"ups the dry speed\n"
"of soft soil."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_BOOST_MULCH),
.flingPower = 30,
},
@ -2767,12 +2806,17 @@ const struct Item gItems[] =
{
.name = _("Amaze Mulch"),
.price = 200,
#if OW_BERRY_MULCH_USAGE == TRUE
.description = COMPOUND_STRING("A fertilizer Rich\n"
"Surprising and\n"
"Boosting as well."),
#else
.description = sGenericMulchDesc,
#endif
.pocket = POCKET_ITEMS,
.type = ITEM_USE_BAG_MENU,
.fieldUseFunc = ItemUseOutOfBattle_CannotUse, // Todo
.fieldUseFunc = ItemUseOutOfBattle_CannotUse,
.secondaryId = ITEM_TO_MULCH(ITEM_AMAZE_MULCH),
.flingPower = 30,
},

View File

@ -10,7 +10,7 @@ static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
overworld_frame(gObjectEventPic_CheriBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -24,7 +24,7 @@ static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -38,7 +38,7 @@ static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -52,7 +52,7 @@ static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
overworld_frame(gObjectEventPic_RawstBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -66,7 +66,7 @@ static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -80,7 +80,7 @@ static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -94,7 +94,7 @@ static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
overworld_frame(gObjectEventPic_OranBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -108,7 +108,7 @@ static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
overworld_frame(gObjectEventPic_PersimBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -122,7 +122,7 @@ static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -136,7 +136,7 @@ static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
overworld_frame(gObjectEventPic_SitrusBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -150,7 +150,7 @@ static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -164,7 +164,7 @@ static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -178,7 +178,7 @@ static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -192,7 +192,7 @@ static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -206,7 +206,7 @@ static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -220,7 +220,7 @@ static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -234,7 +234,7 @@ static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -248,7 +248,7 @@ static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -262,7 +262,7 @@ static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -276,7 +276,7 @@ static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -290,7 +290,7 @@ static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -304,7 +304,7 @@ static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -318,7 +318,7 @@ static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
overworld_frame(gObjectEventPic_CornnBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -332,7 +332,7 @@ static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -346,7 +346,7 @@ static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -360,7 +360,7 @@ static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -374,7 +374,7 @@ static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -388,7 +388,7 @@ static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
overworld_frame(gObjectEventPic_DurinBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -402,7 +402,7 @@ static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
overworld_frame(gObjectEventPic_OccaBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Occa[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Occa[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_YacheBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -416,7 +416,7 @@ static const struct SpriteFrameImage sPicTable_YacheBerryTree[] = {
overworld_frame(gObjectEventPic_YacheBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Yache[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Yache[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_ChopleBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -430,7 +430,7 @@ static const struct SpriteFrameImage sPicTable_ChopleBerryTree[] = {
overworld_frame(gObjectEventPic_ChopleBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Chople[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Chople[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_KebiaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -444,7 +444,7 @@ static const struct SpriteFrameImage sPicTable_KebiaBerryTree[] = {
overworld_frame(gObjectEventPic_KebiaBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Kebia[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Kebia[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_ShucaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -458,7 +458,7 @@ static const struct SpriteFrameImage sPicTable_ShucaBerryTree[] = {
overworld_frame(gObjectEventPic_ShucaBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Shuca[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Shuca[] = {3, 4, 5, 5, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_PayapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -472,7 +472,7 @@ static const struct SpriteFrameImage sPicTable_PayapaBerryTree[] = {
overworld_frame(gObjectEventPic_PayapaBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Payapa[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Payapa[] = {3, 4, 5, 5, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_TangaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -486,7 +486,7 @@ static const struct SpriteFrameImage sPicTable_TangaBerryTree[] = {
overworld_frame(gObjectEventPic_TangaBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Tanga[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Tanga[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_KasibBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -500,7 +500,7 @@ static const struct SpriteFrameImage sPicTable_KasibBerryTree[] = {
overworld_frame(gObjectEventPic_KasibBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Kasib[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Kasib[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_HabanBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -514,7 +514,7 @@ static const struct SpriteFrameImage sPicTable_HabanBerryTree[] = {
overworld_frame(gObjectEventPic_HabanBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Haban[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Haban[] = {3, 4, 3, 3, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_ColburBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -528,7 +528,7 @@ static const struct SpriteFrameImage sPicTable_ColburBerryTree[] = {
overworld_frame(gObjectEventPic_ColburBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Colbur[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Colbur[] = {3, 4, 5, 5, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -542,7 +542,7 @@ static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
overworld_frame(gObjectEventPic_RoseliBerryTree, 2, 4, 5)
};
const u8 gBerryTreePaletteSlotTable_Roseli[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Roseli[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -556,7 +556,7 @@ static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -570,7 +570,7 @@ static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2, 2, 2};
const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -584,7 +584,7 @@ const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Micle[] = {3, 4, 4, 4, 4};
const u8 gBerryTreePaletteSlotTable_Micle[] = {3, 4, 4, 4, 4, 4, 4};
const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -598,7 +598,7 @@ const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Custap[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Custap[] = {3, 4, 5, 5, 5, 5, 5};
const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -612,7 +612,7 @@ const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Jaboca[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Jaboca[] = {3, 4, 5, 5, 5, 5, 5};
const struct SpriteFrameImage sPicTable_RowapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -626,11 +626,11 @@ const struct SpriteFrameImage sPicTable_RowapBerryTree[] = {
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Rowap[] = {3, 4, 5, 5, 5};
const u8 gBerryTreePaletteSlotTable_Rowap[] = {3, 4, 5, 5, 5, 5, 5};
const u8 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES};
const u8 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES};
const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES};
const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES};
const struct SpriteFrameImage *const gBerryTreePicTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = sPicTable_CheriBerryTree,
@ -774,73 +774,3 @@ const u8 *const gBerryTreePaletteSlotTablePointers[] = {
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin,
};
const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
};

View File

@ -1105,6 +1105,8 @@ static const union AnimCmd *const sAnimTable_BerryTree[] = {
[BERRY_STAGE_PLANTED - 1] = sAnim_BerryTreeStage0,
[BERRY_STAGE_SPROUTED - 1] = sAnim_BerryTreeStage1,
[BERRY_STAGE_TALLER - 1] = sAnim_BerryTreeStage2,
[BERRY_STAGE_TRUNK - 1] = sAnim_BerryTreeStage2,
[BERRY_STAGE_BUDDING - 1] = sAnim_BerryTreeStage2,
[BERRY_STAGE_FLOWERING - 1] = sAnim_BerryTreeStage3,
[BERRY_STAGE_BERRIES - 1] = sAnim_BerryTreeStage4,
};

View File

@ -771,6 +771,13 @@ static const struct MenuAction MultichoiceList_TagMatchType[] =
{gText_Exit},
};
static const struct MenuAction MultichoiceList_BerryPlot[] =
{
{gText_Fertilize},
{gText_PlantBerry},
{gText_Exit},
};
static const struct MenuAction MultichoiceList_Exit[] =
{
{gText_Exit},
@ -898,6 +905,7 @@ static const struct MultichoiceListStruct sMultichoiceLists[] =
[MULTI_SLATEPORT_TENT_RULES] = MULTICHOICE(MultichoiceList_SlateportTentRules),
[MULTI_FALLARBOR_TENT_RULES] = MULTICHOICE(MultichoiceList_FallarborTentRules),
[MULTI_TAG_MATCH_TYPE] = MULTICHOICE(MultichoiceList_TagMatchType),
[MULTI_BERRY_PLOT] = MULTICHOICE(MultichoiceList_BerryPlot),
};
const u8 *const gStdStrings[] =

View File

@ -6,9 +6,11 @@
//AsparagusEduardo: https://github.com/AsparagusEduardo/pokeemerald/tree/InfusedEmerald_v2
//Ghoulslash: https://github.com/ghoulslash/pokeemerald
//Jaizu: https://jaizu.moe/
//AND OTHER RHH POKEEMERALD-EXPANSION CONTRIBUTORS
#include "global.h"
#include "battle.h"
#include "battle_setup.h"
#include "berry.h"
#include "clock.h"
#include "coins.h"
#include "credits.h"
@ -96,6 +98,7 @@ enum UtilMenu
DEBUG_UTIL_MENU_ITEM_PLAYER_ID,
DEBUG_UTIL_MENU_ITEM_CHEAT,
DEBUG_UTIL_MENU_ITEM_EXPANSION_VER,
DEBUG_UTIL_MENU_ITEM_BERRY_FUNCTIONS,
};
enum PartyBoxesMenu
@ -217,6 +220,15 @@ enum SoundMenu
DEBUG_SOUND_MENU_ITEM_MUS,
};
enum BerryFunctionsMenu
{
DEBUG_BERRY_FUNCTIONS_MENU_CLEAR_ALL,
DEBUG_BERRY_FUNCTIONS_MENU_READY,
DEBUG_BERRY_FUNCTIONS_MENU_NEXT_STAGE,
DEBUG_BERRY_FUNCTIONS_MENU_WEEDS,
DEBUG_BERRY_FUNCTIONS_MENU_PESTS,
};
// *******************************
// Constants
#define DEBUG_MENU_FONT FONT_NORMAL
@ -333,6 +345,7 @@ static void DebugTask_HandleMenuInput_Battle(u8 taskId);
static void DebugTask_HandleMenuInput_Give(u8 taskId);
static void DebugTask_HandleMenuInput_Fill(u8 taskId);
static void DebugTask_HandleMenuInput_Sound(u8 taskId);
static void DebugTask_HandleMenuInput_BerryFunctions(u8 taskId);
static void DebugAction_Util_Fly(u8 taskId);
static void DebugAction_Util_Warp_Warp(u8 taskId);
@ -351,6 +364,7 @@ static void DebugAction_Util_Player_Gender(u8 taskId);
static void DebugAction_Util_Player_Id(u8 taskId);
static void DebugAction_Util_CheatStart(u8 taskId);
static void DebugAction_Util_ExpansionVersion(u8 taskId);
static void DebugAction_Util_BerryFunctions(u8 taskId);
static void DebugAction_PartyBoxes_AccessPC(u8 taskId);
static void DebugAction_PartyBoxes_MoveReminder(u8 taskId);
@ -416,6 +430,11 @@ static void DebugAction_Sound_SE_SelectId(u8 taskId);
static void DebugAction_Sound_MUS(u8 taskId);
static void DebugAction_Sound_MUS_SelectId(u8 taskId);
static void DebugAction_BerryFunctions_ClearAll(u8 taskId);
static void DebugAction_BerryFunctions_Ready(u8 taskId);
static void DebugAction_BerryFunctions_NextStage(u8 taskId);
static void DebugAction_BerryFunctions_Pests(u8 taskId);
static void DebugAction_BerryFunctions_Weeds(u8 taskId);
extern const u8 Debug_FlagsNotSetOverworldConfigMessage[];
extern const u8 Debug_FlagsNotSetBattleConfigMessage[];
@ -442,6 +461,9 @@ extern const u8 Debug_CheckROMSpace[];
extern const u8 Debug_BoxFilledMessage[];
extern const u8 Debug_ShowExpansionVersion[];
extern const u8 Debug_BerryPestsDisabled[];
extern const u8 Debug_BerryWeedsDisabled[];
extern const u8 FallarborTown_MoveRelearnersHouse_EventScript_ChooseMon[];
#include "data/map_group_count.h"
@ -493,6 +515,7 @@ static const u8 sDebugText_Util_Player_Gender[] = _("Toggle gender");
static const u8 sDebugText_Util_Player_Id[] = _("New Trainer ID");
static const u8 sDebugText_Util_CheatStart[] = _("Cheat start");
static const u8 sDebugText_Util_ExpansionVersion[] = _("Expansion Version");
static const u8 sDebugText_Util_BerryFunctions[] = _("Berry Functions…{CLEAR_TO 110}{RIGHT_ARROW}");
// Party/Boxes Menu
static const u8 sDebugText_PartyBoxes_AccessPC[] = _("Access PC");
static const u8 sDebugText_PartyBoxes_MoveReminder[] = _("Move Reminder");
@ -605,6 +628,12 @@ static const u8 sDebugText_Sound_SFX[] = _("SFX…{CLEAR_TO 110}{
static const u8 sDebugText_Sound_SFX_ID[] = _("SFX ID: {STR_VAR_3} {START_BUTTON} Stop\n{STR_VAR_1} \n{STR_VAR_2}");
static const u8 sDebugText_Sound_Music[] = _("Music…{CLEAR_TO 110}{RIGHT_ARROW}");
static const u8 sDebugText_Sound_Music_ID[] = _("Music ID: {STR_VAR_3} {START_BUTTON} Stop\n{STR_VAR_1} \n{STR_VAR_2}");
// Berry Function Menu
static const u8 sDebugText_BerryFunctions_ClearAll[] = _("Clear map trees");
static const u8 sDebugText_BerryFunctions_Ready[] = _("Ready map trees");
static const u8 sDebugText_BerryFunctions_NextStage[] = _("Grow map trees");
static const u8 sDebugText_BerryFunctions_Pests[] = _("Give map trees pests");
static const u8 sDebugText_BerryFunctions_Weeds[] = _("Give map trees weeds");
static const u8 sDebugText_Digit_1[] = _("{LEFT_ARROW}+1{RIGHT_ARROW} ");
static const u8 sDebugText_Digit_10[] = _("{LEFT_ARROW}+10{RIGHT_ARROW} ");
@ -657,19 +686,20 @@ static const struct ListMenuItem sDebugMenu_Items_Main[] =
static const struct ListMenuItem sDebugMenu_Items_Utilities[] =
{
[DEBUG_UTIL_MENU_ITEM_FLY] = {sDebugText_Util_FlyToMap, DEBUG_UTIL_MENU_ITEM_FLY},
[DEBUG_UTIL_MENU_ITEM_WARP] = {sDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP},
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {sDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK},
[DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = {sDebugText_Util_ROMSpace, DEBUG_UTIL_MENU_ITEM_ROM_SPACE},
[DEBUG_UTIL_MENU_ITEM_WEATHER] = {sDebugText_Util_Weather, DEBUG_UTIL_MENU_ITEM_WEATHER},
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {sDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {sDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {sDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS},
[DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = {sDebugText_Util_Player_Name, DEBUG_UTIL_MENU_ITEM_PLAYER_NAME},
[DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = {sDebugText_Util_Player_Gender, DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER},
[DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = {sDebugText_Util_Player_Id, DEBUG_UTIL_MENU_ITEM_PLAYER_ID},
[DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT},
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = {sDebugText_Util_ExpansionVersion,DEBUG_UTIL_MENU_ITEM_EXPANSION_VER},
[DEBUG_UTIL_MENU_ITEM_FLY] = {sDebugText_Util_FlyToMap, DEBUG_UTIL_MENU_ITEM_FLY},
[DEBUG_UTIL_MENU_ITEM_WARP] = {sDebugText_Util_WarpToMap, DEBUG_UTIL_MENU_ITEM_WARP},
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = {sDebugText_Util_SaveBlockSpace, DEBUG_UTIL_MENU_ITEM_SAVEBLOCK},
[DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = {sDebugText_Util_ROMSpace, DEBUG_UTIL_MENU_ITEM_ROM_SPACE},
[DEBUG_UTIL_MENU_ITEM_WEATHER] = {sDebugText_Util_Weather, DEBUG_UTIL_MENU_ITEM_WEATHER},
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = {sDebugText_Util_CheckWallClock, DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = {sDebugText_Util_SetWallClock, DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK},
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = {sDebugText_Util_WatchCredits, DEBUG_UTIL_MENU_ITEM_WATCHCREDITS},
[DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = {sDebugText_Util_Player_Name, DEBUG_UTIL_MENU_ITEM_PLAYER_NAME},
[DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = {sDebugText_Util_Player_Gender, DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER},
[DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = {sDebugText_Util_Player_Id, DEBUG_UTIL_MENU_ITEM_PLAYER_ID},
[DEBUG_UTIL_MENU_ITEM_CHEAT] = {sDebugText_Util_CheatStart, DEBUG_UTIL_MENU_ITEM_CHEAT},
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = {sDebugText_Util_ExpansionVersion, DEBUG_UTIL_MENU_ITEM_EXPANSION_VER},
[DEBUG_UTIL_MENU_ITEM_BERRY_FUNCTIONS] = {sDebugText_Util_BerryFunctions, DEBUG_UTIL_MENU_ITEM_BERRY_FUNCTIONS},
};
static const struct ListMenuItem sDebugMenu_Items_PartyBoxes[] =
@ -791,6 +821,15 @@ static const struct ListMenuItem sDebugMenu_Items_Sound[] =
[DEBUG_SOUND_MENU_ITEM_MUS] = {sDebugText_Sound_Music, DEBUG_SOUND_MENU_ITEM_MUS},
};
static const struct ListMenuItem sDebugMenu_Items_BerryFunctions[] =
{
[DEBUG_BERRY_FUNCTIONS_MENU_CLEAR_ALL] = {sDebugText_BerryFunctions_ClearAll, DEBUG_BERRY_FUNCTIONS_MENU_CLEAR_ALL},
[DEBUG_BERRY_FUNCTIONS_MENU_READY] = {sDebugText_BerryFunctions_Ready, DEBUG_BERRY_FUNCTIONS_MENU_READY},
[DEBUG_BERRY_FUNCTIONS_MENU_NEXT_STAGE] = {sDebugText_BerryFunctions_NextStage, DEBUG_BERRY_FUNCTIONS_MENU_NEXT_STAGE},
[DEBUG_BERRY_FUNCTIONS_MENU_PESTS] = {sDebugText_BerryFunctions_Pests, DEBUG_BERRY_FUNCTIONS_MENU_PESTS},
[DEBUG_BERRY_FUNCTIONS_MENU_WEEDS] = {sDebugText_BerryFunctions_Weeds, DEBUG_BERRY_FUNCTIONS_MENU_WEEDS},
};
// *******************************
// Menu Actions
static void (*const sDebugMenu_Actions_Main[])(u8) =
@ -808,19 +847,20 @@ static void (*const sDebugMenu_Actions_Main[])(u8) =
static void (*const sDebugMenu_Actions_Utilities[])(u8) =
{
[DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly,
[DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp,
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock,
[DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = DebugAction_Util_CheckROMSpace,
[DEBUG_UTIL_MENU_ITEM_WEATHER] = DebugAction_Util_Weather,
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock,
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock,
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits,
[DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = DebugAction_Util_Player_Name,
[DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = DebugAction_Util_Player_Gender,
[DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = DebugAction_Util_Player_Id,
[DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart,
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = DebugAction_Util_ExpansionVersion,
[DEBUG_UTIL_MENU_ITEM_FLY] = DebugAction_Util_Fly,
[DEBUG_UTIL_MENU_ITEM_WARP] = DebugAction_Util_Warp_Warp,
[DEBUG_UTIL_MENU_ITEM_SAVEBLOCK] = DebugAction_Util_CheckSaveBlock,
[DEBUG_UTIL_MENU_ITEM_ROM_SPACE] = DebugAction_Util_CheckROMSpace,
[DEBUG_UTIL_MENU_ITEM_WEATHER] = DebugAction_Util_Weather,
[DEBUG_UTIL_MENU_ITEM_CHECKWALLCLOCK] = DebugAction_Util_CheckWallClock,
[DEBUG_UTIL_MENU_ITEM_SETWALLCLOCK] = DebugAction_Util_SetWallClock,
[DEBUG_UTIL_MENU_ITEM_WATCHCREDITS] = DebugAction_Util_WatchCredits,
[DEBUG_UTIL_MENU_ITEM_PLAYER_NAME] = DebugAction_Util_Player_Name,
[DEBUG_UTIL_MENU_ITEM_PLAYER_GENDER] = DebugAction_Util_Player_Gender,
[DEBUG_UTIL_MENU_ITEM_PLAYER_ID] = DebugAction_Util_Player_Id,
[DEBUG_UTIL_MENU_ITEM_CHEAT] = DebugAction_Util_CheatStart,
[DEBUG_UTIL_MENU_ITEM_EXPANSION_VER] = DebugAction_Util_ExpansionVersion,
[DEBUG_UTIL_MENU_ITEM_BERRY_FUNCTIONS] = DebugAction_Util_BerryFunctions,
};
static void (*const sDebugMenu_Actions_PartyBoxes[])(u8) =
@ -895,6 +935,15 @@ static void (*const sDebugMenu_Actions_Sound[])(u8) =
[DEBUG_SOUND_MENU_ITEM_MUS] = DebugAction_Sound_MUS,
};
static void (*const sDebugMenu_Actions_BerryFunctions[])(u8) =
{
[DEBUG_BERRY_FUNCTIONS_MENU_CLEAR_ALL] = DebugAction_BerryFunctions_ClearAll,
[DEBUG_BERRY_FUNCTIONS_MENU_READY] = DebugAction_BerryFunctions_Ready,
[DEBUG_BERRY_FUNCTIONS_MENU_NEXT_STAGE] = DebugAction_BerryFunctions_NextStage,
[DEBUG_BERRY_FUNCTIONS_MENU_PESTS] = DebugAction_BerryFunctions_Pests,
[DEBUG_BERRY_FUNCTIONS_MENU_WEEDS] = DebugAction_BerryFunctions_Weeds,
};
// *******************************
// Windows
static const struct WindowTemplate sDebugMenuWindowTemplateMain =
@ -1031,6 +1080,12 @@ static const struct ListMenuTemplate sDebugMenu_ListTemplate_Sound =
.totalItems = ARRAY_COUNT(sDebugMenu_Items_Sound),
};
static const struct ListMenuTemplate sDebugMenu_ListTemplate_BerryFunctions =
{
.items = sDebugMenu_Items_BerryFunctions,
.moveCursorFunc = ListMenuDefaultCursorMoveFunc,
.totalItems = ARRAY_COUNT(sDebugMenu_Items_BerryFunctions),
};
// *******************************
// Functions universal
@ -1681,6 +1736,25 @@ static void DebugTask_HandleMenuInput_Sound(u8 taskId)
}
}
static void DebugTask_HandleMenuInput_BerryFunctions(u8 taskId)
{
void (*func)(u8);
u32 input = ListMenu_ProcessInput(gTasks[taskId].tMenuTaskId);
if (JOY_NEW(A_BUTTON))
{
PlaySE(SE_SELECT);
if ((func = sDebugMenu_Actions_BerryFunctions[input]) != NULL)
func(taskId);
}
else if (JOY_NEW(B_BUTTON))
{
PlaySE(SE_SELECT);
Debug_DestroyMenu(taskId);
Debug_ReShowMainMenu();
}
}
// *******************************
// Open sub-menus
static void DebugAction_OpenUtilitiesMenu(u8 taskId)
@ -1708,7 +1782,6 @@ static void DebugAction_OpenFlagsVarsMenu(u8 taskId)
Debug_ShowMenu(DebugTask_HandleMenuInput_FlagsVars, gMultiuseListMenuTemplate);
}
static void DebugAction_OpenGiveMenu(u8 taskId)
{
Debug_DestroyMenu(taskId);
@ -1727,6 +1800,12 @@ static void DebugAction_OpenSoundMenu(u8 taskId)
Debug_ShowMenu(DebugTask_HandleMenuInput_Sound, sDebugMenu_ListTemplate_Sound);
}
static void DebugAction_Util_BerryFunctions(u8 taskId)
{
Debug_DestroyMenu(taskId);
Debug_ShowMenu(DebugTask_HandleMenuInput_BerryFunctions, sDebugMenu_ListTemplate_BerryFunctions);
}
// *******************************
// Actions Utilities
@ -4791,6 +4870,111 @@ SOUND_LIST_SE
};
#undef X
// *******************************
// Actions BerryFunctions
static void DebugAction_BerryFunctions_ClearAll(u8 taskId)
{
u8 i;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].movementType == MOVEMENT_TYPE_BERRY_TREE_GROWTH)
{
RemoveBerryTree(GetObjectEventBerryTreeId(i));
SetBerryTreeJustPicked(gObjectEvents[i].localId, gSaveBlock1Ptr->location.mapNum, gSaveBlock1Ptr->location.mapGroup);
}
}
ScriptContext_Enable();
Debug_DestroyMenu_Full(taskId);
}
static void DebugAction_BerryFunctions_Ready(u8 taskId)
{
u8 i;
struct BerryTree *tree;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].movementType == MOVEMENT_TYPE_BERRY_TREE_GROWTH)
{
tree = &gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(i)];
if (tree->stage != BERRY_STAGE_NO_BERRY)
{
tree->stage = BERRY_STAGE_BERRIES - 1;
BerryTreeGrow(tree);
}
}
}
ScriptContext_Enable();
Debug_DestroyMenu_Full(taskId);
}
static void DebugAction_BerryFunctions_NextStage(u8 taskId)
{
u8 i;
struct BerryTree *tree;
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].movementType == MOVEMENT_TYPE_BERRY_TREE_GROWTH)
{
tree = &gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(i)];
BerryTreeGrow(tree);
}
}
ScriptContext_Enable();
Debug_DestroyMenu_Full(taskId);
}
static void DebugAction_BerryFunctions_Pests(u8 taskId)
{
u8 i;
if (!OW_BERRY_PESTS)
{
Debug_DestroyMenu_Full_Script(taskId, Debug_BerryPestsDisabled);
return;
}
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].movementType == MOVEMENT_TYPE_BERRY_TREE_GROWTH)
{
if (gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(i)].stage != BERRY_STAGE_PLANTED)
gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(i)].pests = TRUE;
}
}
ScriptContext_Enable();
Debug_DestroyMenu_Full(taskId);
}
static void DebugAction_BerryFunctions_Weeds(u8 taskId)
{
u8 i;
if (!OW_BERRY_WEEDS)
{
Debug_DestroyMenu_Full_Script(taskId, Debug_BerryWeedsDisabled);
return;
}
for (i = 0; i < OBJECT_EVENTS_COUNT; i++)
{
if (gObjectEvents[i].movementType == MOVEMENT_TYPE_BERRY_TREE_GROWTH)
{
gSaveBlock1Ptr->berryTrees[GetObjectEventBerryTreeId(i)].weeds = TRUE;
}
}
ScriptContext_Enable();
Debug_DestroyMenu_Full(taskId);
}
// *******************************
// Actions Party/Boxes

View File

@ -1888,7 +1888,7 @@ static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite
if (berryId > ITEM_TO_BERRY(LAST_BERRY_INDEX))
berryId = 0;
ObjectEventSetGraphicsId(objectEvent, gBerryTreeObjectEventGraphicsIdTablePointers[berryId][berryStage]);
ObjectEventSetGraphicsId(objectEvent, gBerryTreeObjectEventGraphicsIdTable[berryStage]);
sprite->images = gBerryTreePicTablePointers[berryId];
sprite->oam.paletteNum = gBerryTreePaletteSlotTablePointers[berryId][berryStage];
StartSpriteAnim(sprite, berryStage);

View File

@ -210,6 +210,7 @@ static void ConfirmToss(u8);
static void CancelToss(u8);
static void ConfirmSell(u8);
static void CancelSell(u8);
static void Task_FadeAndCloseBagMenuIfMulch(u8 taskId);
static const struct BgTemplate sBgTemplates_ItemMenu[] =
{
@ -351,7 +352,8 @@ static const TaskFunc sContextMenuFuncs[] = {
[ITEMMENULOCATION_QUIZ_LADY] = Task_ItemContext_Normal,
[ITEMMENULOCATION_APPRENTICE] = Task_ItemContext_Normal,
[ITEMMENULOCATION_WALLY] = NULL,
[ITEMMENULOCATION_PCBOX] = Task_ItemContext_GiveToPC
[ITEMMENULOCATION_PCBOX] = Task_ItemContext_GiveToPC,
[ITEMMENULOCATION_BERRY_TREE_MULCH] = Task_FadeAndCloseBagMenuIfMulch,
};
static const struct YesNoFuncTable sYesNoTossFunctions = {ConfirmToss, CancelToss};
@ -577,6 +579,12 @@ void CB2_ChooseBerry(void)
GoToBagMenu(ITEMMENULOCATION_BERRY_TREE, BERRIES_POCKET, CB2_ReturnToFieldContinueScript);
}
// Choosing mulch to use
void CB2_ChooseMulch(void)
{
GoToBagMenu(ITEMMENULOCATION_BERRY_TREE_MULCH, ITEMS_POCKET, CB2_ReturnToFieldContinueScript);
}
// Choosing berry for Berry Blender or Berry Crush
void ChooseBerryForMachine(void (*exitCallback)(void))
{
@ -629,7 +637,8 @@ void GoToBagMenu(u8 location, u8 pocket, void ( *exitCallback)())
if (pocket < POCKETS_COUNT)
gBagPosition.pocket = pocket;
if (gBagPosition.location == ITEMMENULOCATION_BERRY_TREE ||
gBagPosition.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH)
gBagPosition.location == ITEMMENULOCATION_BERRY_BLENDER_CRUSH ||
gBagPosition.location == ITEMMENULOCATION_BERRY_TREE_MULCH)
gBagMenu->pocketSwitchDisabled = TRUE;
gBagMenu->newScreenCallback = NULL;
gBagMenu->toSwapPos = NOT_SWAPPING;
@ -1078,6 +1087,23 @@ void Task_FadeAndCloseBagMenu(u8 taskId)
gTasks[taskId].func = Task_CloseBagMenu;
}
static void Task_FadeAndCloseBagMenuIfMulch(u8 taskId)
{
if (gSpecialVar_ItemId == ITEM_GROWTH_MULCH ||
gSpecialVar_ItemId == ITEM_DAMP_MULCH ||
gSpecialVar_ItemId == ITEM_STABLE_MULCH ||
gSpecialVar_ItemId == ITEM_GOOEY_MULCH ||
gSpecialVar_ItemId == ITEM_RICH_MULCH ||
gSpecialVar_ItemId == ITEM_SURPRISE_MULCH ||
gSpecialVar_ItemId == ITEM_BOOST_MULCH ||
gSpecialVar_ItemId == ITEM_AMAZE_MULCH)
{
Task_FadeAndCloseBagMenu(taskId);
return;
}
DisplayDadsAdviceCannotUseItemMessage(taskId, FALSE);
}
static void Task_CloseBagMenu(u8 taskId)
{
s16 *data = gTasks[taskId].data;
@ -1588,6 +1614,7 @@ static void OpenContextMenu(u8 taskId)
case ITEMMENULOCATION_SHOP:
case ITEMMENULOCATION_BERRY_TREE:
case ITEMMENULOCATION_ITEMPC:
case ITEMMENULOCATION_BERRY_TREE_MULCH:
default:
if (MenuHelpers_IsLinkActive() == TRUE || InUnionRoom() == TRUE)
{

View File

@ -161,7 +161,7 @@ static void DisplayCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyIte
DisplayItemMessageOnField(taskId, gStringVar4, Task_CloseCantUseKeyItemMessage);
}
static void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
void DisplayDadsAdviceCannotUseItemMessage(u8 taskId, bool8 isUsingRegisteredKeyItemOnField)
{
DisplayCannotUseItemMessage(taskId, isUsingRegisteredKeyItemOnField, gText_DadsAdvice);
}

View File

@ -267,7 +267,8 @@ const u8 *const gBagMenu_ReturnToStrings[] =
[ITEMMENULOCATION_QUIZ_LADY] = gText_TheField,
[ITEMMENULOCATION_APPRENTICE] = gText_TheField,
[ITEMMENULOCATION_WALLY] = gText_TheBattle,
[ITEMMENULOCATION_PCBOX] = gText_ThePC
[ITEMMENULOCATION_PCBOX] = gText_ThePC,
[ITEMMENULOCATION_BERRY_TREE_MULCH] = gText_TheField,
};
const u8 *const gPyramidBagMenu_ReturnToStrings[] =
@ -1843,3 +1844,5 @@ const u8 gText_Berries[] = _("BERRIES");
const u8 gText_ExpShareOn[] = _("The Exp. Share has been turned on.{PAUSE_UNTIL_PRESS}");
const u8 gText_ExpShareOff[] = _("The Exp. Share has been turned off.{PAUSE_UNTIL_PRESS}");
const u8 gText_BasePointsResetToZero[] = _("{STR_VAR_1}'s base points\nwere all reset to zero!{PAUSE_UNTIL_PRESS}");
const u8 gText_Fertilize[] = _("FERTILIZE");
const u8 gText_PlantBerry[] = _("PLANT BERRY");