Berry Expansion (#3618)
This commit is contained in:
commit
b5252c4afd
@ -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
|
||||
|
||||
@ -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::
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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[];
|
||||
|
||||
|
||||
@ -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%.
|
||||
|
||||
@ -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:
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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[];
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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,
|
||||
|
||||
@ -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
|
||||
|
||||
1638
src/berry.c
1638
src/berry.c
File diff suppressed because it is too large
Load Diff
@ -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,
|
||||
},
|
||||
|
||||
|
||||
@ -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,
|
||||
};
|
||||
|
||||
@ -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,
|
||||
};
|
||||
|
||||
@ -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[] =
|
||||
|
||||
238
src/debug.c
238
src/debug.c
@ -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
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
@ -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)
|
||||
{
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -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");
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user