mirror of
https://github.com/rh-hideout/pokeemerald-expansion.git
synced 2026-03-21 18:04:50 -05:00
gBerries refactor + untangling berry indices from item IDs (#7305)
Some checks are pending
CI / build-emerald (push) Waiting to run
CI / build-firered (push) Waiting to run
CI / build-leafgreen (push) Waiting to run
CI / release (push) Waiting to run
CI / test (push) Waiting to run
CI / build (push) Blocked by required conditions
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
Some checks are pending
CI / build-emerald (push) Waiting to run
CI / build-firered (push) Waiting to run
CI / build-leafgreen (push) Waiting to run
CI / release (push) Waiting to run
CI / test (push) Waiting to run
CI / build (push) Blocked by required conditions
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
This commit is contained in:
parent
264d99215b
commit
47cac73a61
|
|
@ -1279,11 +1279,14 @@
|
|||
.endm
|
||||
|
||||
@ Sets a berry tree's berry and growth stage. treeId is any BERRY_TREE_* constant (an index into berryTrees in SaveBlock1),
|
||||
@ berry is any ITEM_TO_BERRY(ITEM_BERRY_NAME) value, and growthStage is any BERRY_STAGE_* constant.
|
||||
.macro setberrytree treeId:req, berry:req, growthStage:req
|
||||
@ berryId is any BERRY_ID_X value, and growthStage is any BERRY_STAGE_* constant.
|
||||
.macro setberrytree treeId:req, berryId:req, growthStage:req
|
||||
.if \berryId == 0 || \berryId > NUM_BERRIES
|
||||
.error "setberrytree must use a valid berry index"
|
||||
.endif
|
||||
.byte SCR_OP_SETBERRYTREE
|
||||
.byte \treeId
|
||||
.byte \berry
|
||||
.byte \berryId
|
||||
.byte \growthStage
|
||||
.endm
|
||||
|
||||
|
|
@ -2785,6 +2788,20 @@
|
|||
.4byte \name
|
||||
.endm
|
||||
|
||||
@ Gives a random berry between the index ranges
|
||||
.macro giverandomberry loBerry:req, hiBerry:req
|
||||
.if \loBerry == 0 || \loBerry > NUM_BERRIES
|
||||
.error "giverandomberry must use a valid berry index for first argument"
|
||||
.endif
|
||||
.if \hiBerry == 0 || \hiBerry > NUM_BERRIES
|
||||
.error "giverandomberry must use a valid berry index for second argument"
|
||||
.endif
|
||||
callnative Script_GiveRandomBerry
|
||||
.byte \loBerry
|
||||
.byte \hiBerry
|
||||
giveitem VAR_RESULT
|
||||
.endm
|
||||
|
||||
@ VS Seeker
|
||||
.macro vsseeker_rematchid rematchId:req
|
||||
callnative NativeVsSeekerRematchId, requests_effects=1
|
||||
|
|
|
|||
|
|
@ -36,9 +36,7 @@ LilycoveCity_EventScript_BerryGentleman::
|
|||
dotimebasedevents
|
||||
goto_if_set FLAG_DAILY_LILYCOVE_RECEIVED_BERRY, LilycoveCity_EventScript_ReceivedBerry
|
||||
msgbox LilycoveCity_Text_BerrySuitsYou, MSGBOX_DEFAULT
|
||||
random 10
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_CHERI, BERRY_ID_SITRUS
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_DAILY_LILYCOVE_RECEIVED_BERRY
|
||||
msgbox LilycoveCity_Text_BecauseYoureTrainer, MSGBOX_DEFAULT
|
||||
|
|
|
|||
|
|
@ -82,9 +82,7 @@ Route104_PrettyPetalFlowerShop_EventScript_RandomBerryGirl::
|
|||
dotimebasedevents
|
||||
goto_if_set FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY, Route104_PrettyPetalFlowerShop_EventScript_AlreadyReceivedBerry
|
||||
msgbox Route104_PrettyPetalFlowerShop_Text_ImGrowingFlowers, MSGBOX_DEFAULT
|
||||
random 8
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_CHERI, BERRY_ID_PERSIM
|
||||
goto_if_eq VAR_RESULT, 0, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_DAILY_FLOWER_SHOP_RECEIVED_BERRY
|
||||
msgbox Route104_PrettyPetalFlowerShop_Text_MachineMixesBerries, MSGBOX_DEFAULT
|
||||
|
|
|
|||
|
|
@ -25,10 +25,7 @@ Route114_EventScript_Man::
|
|||
dotimebasedevents
|
||||
goto_if_set FLAG_DAILY_ROUTE_114_RECEIVED_BERRY, Route114_EventScript_ReceivedBerry
|
||||
msgbox Route114_Text_LoveUsingBerryCrushShareBerry, MSGBOX_DEFAULT
|
||||
random NUM_ROUTE_114_MAN_BERRIES
|
||||
addvar VAR_RESULT, NUM_ROUTE_114_MAN_BERRIES_SKIPPED
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_RAZZ, BERRY_ID_PINAP
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_DAILY_ROUTE_114_RECEIVED_BERRY
|
||||
msgbox Route114_Text_TryBerryCrushWithFriends, MSGBOX_DEFAULT
|
||||
|
|
|
|||
|
|
@ -12,17 +12,11 @@ Route123_BerryMastersHouse_EventScript_BerryMaster::
|
|||
dotimebasedevents
|
||||
goto_if_set FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY, Route123_BerryMastersHouse_EventScript_ReceivedBerryToday
|
||||
msgbox Route123_BerryMastersHouse_Text_YoureDeservingOfBerry, MSGBOX_DEFAULT
|
||||
random NUM_BERRY_MASTER_BERRIES
|
||||
addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_POMEG, BERRY_ID_NOMEL
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_DAILY_BERRY_MASTER_RECEIVED_BERRY
|
||||
msgbox Route123_BerryMastersHouse_Text_WhyBeStingyTakeAnother, MSGBOX_DEFAULT
|
||||
random NUM_BERRY_MASTER_BERRIES
|
||||
addvar VAR_RESULT, NUM_BERRY_MASTER_BERRIES_SKIPPED
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_POMEG, BERRY_ID_NOMEL
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
msgbox Route123_BerryMastersHouse_Text_VisitPrettyPetalFlowerShop, MSGBOX_DEFAULT
|
||||
release
|
||||
|
|
@ -64,9 +58,7 @@ Route123_BerryMastersHouse_EventScript_GavePhrase::
|
|||
|
||||
Route123_BerryMastersHouse_EventScript_GiveNormalBerry::
|
||||
msgbox Route123_BerryMastersHouse_Text_GoodSayingTakeThis, MSGBOX_DEFAULT
|
||||
random NUM_BERRY_MASTER_WIFE_BERRIES
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_CHERI, BERRY_ID_SITRUS
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
goto Route123_BerryMastersHouse_EventScript_GaveBerry
|
||||
release
|
||||
|
|
|
|||
|
|
@ -708,16 +708,13 @@ SootopolisCity_EventScript_KiriRayquaza::
|
|||
release
|
||||
end
|
||||
|
||||
@ Gives 2 berries daily. First ranges from FIRST_KIRI_BERRY to LAST_KIRI_BERRY, second is always Figy or Iapapa
|
||||
@ Gives 2 berries daily. First ranges from BERRY_ID_POMEG to BERRY_ID_NOMEL, second is always Figy or Iapapa
|
||||
SootopolisCity_EventScript_KiriGiveBerry::
|
||||
dotimebasedevents
|
||||
special GetPlayerBigGuyGirlString
|
||||
goto_if_set FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY, SootopolisCity_EventScript_KiriReceivedBerry
|
||||
msgbox SootopolisCity_Text_NameIsKiriHaveOneOfThese, MSGBOX_DEFAULT
|
||||
random NUM_KIRI_BERRIES
|
||||
addvar VAR_RESULT, NUM_KIRI_BERRIES_SKIPPED
|
||||
addvar VAR_RESULT, FIRST_BERRY_INDEX
|
||||
giveitem VAR_RESULT
|
||||
giverandomberry BERRY_ID_POMEG, BERRY_ID_NOMEL
|
||||
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
|
||||
setflag FLAG_DAILY_SOOTOPOLIS_RECEIVED_BERRY
|
||||
msgbox SootopolisCity_Text_GiveYouThisBerryToo, MSGBOX_DEFAULT
|
||||
|
|
|
|||
|
|
@ -1,115 +1,115 @@
|
|||
EventScript_ResetAllBerries::
|
||||
@ Route 102
|
||||
setberrytree BERRY_TREE_ROUTE_102_ORAN, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_102_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_102_ORAN, BERRY_ID_ORAN, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_102_PECHA, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 104
|
||||
setberrytree BERRY_TREE_ROUTE_104_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_ORAN_2, BERRY_ID_ORAN, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_PECHA, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_ORAN_1, BERRY_ID_ORAN, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_CHERI_2, BERRY_ID_CHERI, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_CHERI_1, BERRY_ID_CHERI, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_104_LEPPA, BERRY_ID_LEPPA, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 116
|
||||
setberrytree BERRY_TREE_ROUTE_116_PINAP_1, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_CHESTO_1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_CHESTO_2, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_PINAP_2, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_PINAP_1, BERRY_ID_PINAP, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_CHESTO_1, BERRY_ID_CHESTO, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_CHESTO_2, BERRY_ID_CHESTO, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_116_PINAP_2, BERRY_ID_PINAP, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 115
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_1, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_2, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_3, ITEM_TO_BERRY(ITEM_KELPSY_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_BLUK_1, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_BLUK_2, ITEM_TO_BERRY(ITEM_BLUK_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_1, BERRY_ID_KELPSY, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_2, BERRY_ID_KELPSY, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_KELPSY_3, BERRY_ID_KELPSY, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_BLUK_1, BERRY_ID_BLUK, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_115_BLUK_2, BERRY_ID_BLUK, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 103
|
||||
setberrytree BERRY_TREE_ROUTE_103_CHERI_1, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_103_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_103_CHERI_2, ITEM_TO_BERRY(ITEM_CHERI_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_103_CHERI_1, BERRY_ID_CHERI, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_103_LEPPA, BERRY_ID_LEPPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_103_CHERI_2, BERRY_ID_CHERI, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 110
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_3, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_1, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_2, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_110_NANAB_3, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 117
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_3, BERRY_ID_WEPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_2, BERRY_ID_WEPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_117_WEPEAR_1, BERRY_ID_WEPEAR, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 112
|
||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_1, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_2, BERRY_ID_RAWST, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_2, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_PECHA_1, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_112_RAWST_1, BERRY_ID_RAWST, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 111
|
||||
setberrytree BERRY_TREE_ROUTE_111_RAZZ_1, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_RAZZ_2, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_ORAN_1, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_ORAN_2, ITEM_TO_BERRY(ITEM_ORAN_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_RAZZ_1, BERRY_ID_RAZZ, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_RAZZ_2, BERRY_ID_RAZZ, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_ORAN_1, BERRY_ID_ORAN, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_111_ORAN_2, BERRY_ID_ORAN, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 114
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_2, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_3, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_1, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_2, BERRY_ID_PERSIM, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_3, BERRY_ID_PERSIM, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_114_PERSIM_1, BERRY_ID_PERSIM, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 118
|
||||
setberrytree BERRY_TREE_ROUTE_118_SITRUS_1, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_118_SITRUS_2, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_118_SITRUS_1, BERRY_ID_SITRUS, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_118_SITRUS_2, BERRY_ID_SITRUS, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 119
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_HONDEW_1, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_HONDEW_2, ITEM_TO_BERRY(ITEM_HONDEW_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_LEPPA, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_1, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_2, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_POMEG_3, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_HONDEW_1, BERRY_ID_HONDEW, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_HONDEW_2, BERRY_ID_HONDEW, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_SITRUS, BERRY_ID_SITRUS, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_119_LEPPA, BERRY_ID_LEPPA, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 120
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_2, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_3, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_1, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_2, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_3, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_WEPEAR, ITEM_TO_BERRY(ITEM_WEPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PINAP, ITEM_TO_BERRY(ITEM_PINAP_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_NANAB, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_RAZZ, ITEM_TO_BERRY(ITEM_RAZZ_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_1, BERRY_ID_ASPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_2, BERRY_ID_ASPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_ASPEAR_3, BERRY_ID_ASPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_1, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_2, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PECHA_3, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_WEPEAR, BERRY_ID_WEPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_PINAP, BERRY_ID_PINAP, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_NANAB, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_120_RAZZ, BERRY_ID_RAZZ, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 121
|
||||
setberrytree BERRY_TREE_ROUTE_121_PERSIM, ITEM_TO_BERRY(ITEM_PERSIM_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_ASPEAR, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_CHESTO, ITEM_TO_BERRY(ITEM_CHESTO_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_NANAB_1, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_NANAB_2, ITEM_TO_BERRY(ITEM_NANAB_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_PERSIM, BERRY_ID_PERSIM, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_ASPEAR, BERRY_ID_ASPEAR, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_RAWST, BERRY_ID_RAWST, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_CHESTO, BERRY_ID_CHESTO, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_NANAB_1, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_121_NANAB_2, BERRY_ID_NANAB, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Route 123
|
||||
setberrytree BERRY_TREE_ROUTE_123_LEPPA_1, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_LEPPA_2, ITEM_TO_BERRY(ITEM_LEPPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_3, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_4, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_1, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_2, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_4, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_1, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_1, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_2, ITEM_TO_BERRY(ITEM_POMEG_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_3, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_4, ITEM_TO_BERRY(ITEM_GREPA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_2, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_3, ITEM_TO_BERRY(ITEM_QUALOT_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_PECHA, ITEM_TO_BERRY(ITEM_PECHA_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_SITRUS, ITEM_TO_BERRY(ITEM_SITRUS_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_RAWST, ITEM_TO_BERRY(ITEM_RAWST_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_LEPPA_1, BERRY_ID_LEPPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_LEPPA_2, BERRY_ID_LEPPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_3, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_4, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_1, BERRY_ID_GREPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_2, BERRY_ID_GREPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_4, BERRY_ID_QUALOT, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_1, BERRY_ID_QUALOT, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_1, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_POMEG_2, BERRY_ID_POMEG, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_3, BERRY_ID_GREPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_GREPA_4, BERRY_ID_GREPA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_2, BERRY_ID_QUALOT, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_QUALOT_3, BERRY_ID_QUALOT, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_PECHA, BERRY_ID_PECHA, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_SITRUS, BERRY_ID_SITRUS, BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_123_RAWST, BERRY_ID_RAWST, BERRY_STAGE_BERRIES
|
||||
|
||||
@ Mirage Island
|
||||
setberrytree BERRY_TREE_ROUTE_130_LIECHI, ITEM_TO_BERRY(ITEM_LIECHI_BERRY), BERRY_STAGE_BERRIES
|
||||
setberrytree BERRY_TREE_ROUTE_130_LIECHI, BERRY_ID_LIECHI, BERRY_STAGE_BERRIES
|
||||
return
|
||||
|
||||
EventScript_ResetAllMapFlags::
|
||||
|
|
|
|||
|
|
@ -83,14 +83,6 @@ enum ItemEffect
|
|||
#define CRITICAL_HIT_BLOCKED -1
|
||||
#define CRITICAL_HIT_ALWAYS -2
|
||||
|
||||
// for Natural Gift and Fling
|
||||
struct TypePower
|
||||
{
|
||||
enum Type type:8;
|
||||
u8 power;
|
||||
u16 effect;
|
||||
};
|
||||
|
||||
enum ImmunityHealStatusOutcome
|
||||
{
|
||||
IMMUNITY_NO_EFFECT,
|
||||
|
|
@ -100,8 +92,6 @@ enum ImmunityHealStatusOutcome
|
|||
IMMUNITY_TAUNT_CLEARED,
|
||||
};
|
||||
|
||||
extern const struct TypePower gNaturalGiftTable[];
|
||||
|
||||
struct BattleContext
|
||||
{
|
||||
enum BattlerId battlerAtk:3;
|
||||
|
|
|
|||
240
include/berry.h
240
include/berry.h
|
|
@ -3,18 +3,17 @@
|
|||
|
||||
void SetEnigmaBerry(u8 *src);
|
||||
bool32 IsEnigmaBerryValid(void);
|
||||
const struct Berry *GetBerryInfo(u8 berry);
|
||||
const struct BerryInfo *GetBerryInfo(enum BerryId berry);
|
||||
struct BerryTree *GetBerryTreeInfo(u8 id);
|
||||
bool32 ObjectEventInteractionWaterBerryTree(void);
|
||||
bool8 IsPlayerFacingEmptyBerryTreePatch(void);
|
||||
bool8 TryToWaterBerryTree(void);
|
||||
void ClearBerryTrees(void);
|
||||
void BerryTreeTimeUpdate(s32 minutes);
|
||||
void PlantBerryTree(u8 id, u8 berry, u8 stage, bool8 allowGrowth);
|
||||
void PlantBerryTree(u8 id, enum BerryId berry, u8 stage, bool8 allowGrowth);
|
||||
void RemoveBerryTree(u8 id);
|
||||
u8 GetBerryTypeByBerryTreeId(u8 id);
|
||||
u8 GetStageByBerryTreeId(u8 id);
|
||||
u8 ItemIdToBerryType(enum Item item);
|
||||
void GetBerryNameByBerryType(u8 berry, u8 *string);
|
||||
void Bag_ChooseBerry(void);
|
||||
void Bag_ChooseMulch(void);
|
||||
|
|
@ -27,13 +26,234 @@ bool8 PlayerHasBerries(void);
|
|||
void SetBerryTreesSeen(void);
|
||||
bool32 BerryTreeGrow(struct BerryTree *tree);
|
||||
|
||||
extern const struct SpriteFrameImage gPicTable_CheriBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_ChestoBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_PechaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_RawstBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_AspearBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_LeppaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_OranBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_PersimBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_LumBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_SitrusBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_FigyBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_WikiBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_MagoBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_AguavBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_IapapaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_RazzBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_WepearBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_PomegBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_KelpsyBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_HondewBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_GrepaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_TamatoBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_CornnBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_RabutaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_NomelBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_SpelonBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_PamtreBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_DurinBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_OccaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_YacheBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_ChopleBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_KebiaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_ShucaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_PayapaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_TangaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_KasibBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_HabanBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_ColburBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_RoseliBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_LiechiBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_LansatBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_MicleBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_CustapBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_JabocaBerryTree[];
|
||||
extern const struct SpriteFrameImage gPicTable_RowapBerryTree[];
|
||||
|
||||
extern const u8 gBerryTreePaletteSlotTable_Cheri[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Chesto[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Pecha[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Rawst[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Aspear[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Leppa[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Oran[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Persim[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Lum[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Sitrus[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Figy[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Wiki[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Mago[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Aguav[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Iapapa[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Razz[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Wepear[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Pomeg[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Kelpsy[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Hondew[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Grepa[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Tamato[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Cornn[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Rabuta[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Nomel[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Spelon[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Pamtre[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Durin[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Occa[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Yache[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Chople[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Kebia[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Shuca[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Payapa[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Tanga[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Kasib[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Haban[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Colbur[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Roseli[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Liechi[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Lansat[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Micle[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Custap[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Jaboca[];
|
||||
extern const u8 gBerryTreePaletteSlotTable_Rowap[];
|
||||
|
||||
extern const u32 gBerryPic_Cheri[];
|
||||
extern const u32 gBerryPic_Chesto[];
|
||||
extern const u32 gBerryPic_Pecha[];
|
||||
extern const u32 gBerryPic_Rawst[];
|
||||
extern const u32 gBerryPic_Aspear[];
|
||||
extern const u32 gBerryPic_Leppa[];
|
||||
extern const u32 gBerryPic_Oran[];
|
||||
extern const u32 gBerryPic_Persim[];
|
||||
extern const u32 gBerryPic_Lum[];
|
||||
extern const u32 gBerryPic_Sitrus[];
|
||||
extern const u32 gBerryPic_Figy[];
|
||||
extern const u32 gBerryPic_Wiki[];
|
||||
extern const u32 gBerryPic_Mago[];
|
||||
extern const u32 gBerryPic_Aguav[];
|
||||
extern const u32 gBerryPic_Iapapa[];
|
||||
extern const u32 gBerryPic_Razz[];
|
||||
extern const u32 gBerryPic_Bluk[];
|
||||
extern const u32 gBerryPic_Nanab[];
|
||||
extern const u32 gBerryPic_Wepear[];
|
||||
extern const u32 gBerryPic_Pinap[];
|
||||
extern const u32 gBerryPic_Pomeg[];
|
||||
extern const u32 gBerryPic_Kelpsy[];
|
||||
extern const u32 gBerryPic_Qualot[];
|
||||
extern const u32 gBerryPic_Hondew[];
|
||||
extern const u32 gBerryPic_Grepa[];
|
||||
extern const u32 gBerryPic_Tamato[];
|
||||
extern const u32 gBerryPic_Cornn[];
|
||||
extern const u32 gBerryPic_Magost[];
|
||||
extern const u32 gBerryPic_Rabuta[];
|
||||
extern const u32 gBerryPic_Nomel[];
|
||||
extern const u32 gBerryPic_Spelon[];
|
||||
extern const u32 gBerryPic_Pamtre[];
|
||||
extern const u32 gBerryPic_Watmel[];
|
||||
extern const u32 gBerryPic_Durin[];
|
||||
extern const u32 gBerryPic_Belue[];
|
||||
extern const u32 gBerryPic_Chilan[];
|
||||
extern const u32 gBerryPic_Occa[];
|
||||
extern const u32 gBerryPic_Passho[];
|
||||
extern const u32 gBerryPic_Wacan[];
|
||||
extern const u32 gBerryPic_Rindo[];
|
||||
extern const u32 gBerryPic_Yache[];
|
||||
extern const u32 gBerryPic_Chople[];
|
||||
extern const u32 gBerryPic_Kebia[];
|
||||
extern const u32 gBerryPic_Shuca[];
|
||||
extern const u32 gBerryPic_Coba[];
|
||||
extern const u32 gBerryPic_Payapa[];
|
||||
extern const u32 gBerryPic_Tanga[];
|
||||
extern const u32 gBerryPic_Charti[];
|
||||
extern const u32 gBerryPic_Kasib[];
|
||||
extern const u32 gBerryPic_Haban[];
|
||||
extern const u32 gBerryPic_Colbur[];
|
||||
extern const u32 gBerryPic_Babiri[];
|
||||
extern const u32 gBerryPic_Roseli[];
|
||||
extern const u32 gBerryPic_Liechi[];
|
||||
extern const u32 gBerryPic_Ganlon[];
|
||||
extern const u32 gBerryPic_Salac[];
|
||||
extern const u32 gBerryPic_Petaya[];
|
||||
extern const u32 gBerryPic_Apicot[];
|
||||
extern const u32 gBerryPic_Lansat[];
|
||||
extern const u32 gBerryPic_Starf[];
|
||||
extern const u32 gBerryPic_Enigma[];
|
||||
extern const u32 gBerryPic_Micle[];
|
||||
extern const u32 gBerryPic_Custap[];
|
||||
extern const u32 gBerryPic_Jaboca[];
|
||||
extern const u32 gBerryPic_Rowap[];
|
||||
extern const u32 gBerryPic_Kee[];
|
||||
extern const u32 gBerryPic_Maranga[];
|
||||
|
||||
extern const u16 gBerryPalette_Cheri[];
|
||||
extern const u16 gBerryPalette_Chesto[];
|
||||
extern const u16 gBerryPalette_Pecha[];
|
||||
extern const u16 gBerryPalette_Rawst[];
|
||||
extern const u16 gBerryPalette_Aspear[];
|
||||
extern const u16 gBerryPalette_Leppa[];
|
||||
extern const u16 gBerryPalette_Oran[];
|
||||
extern const u16 gBerryPalette_Persim[];
|
||||
extern const u16 gBerryPalette_Lum[];
|
||||
extern const u16 gBerryPalette_Sitrus[];
|
||||
extern const u16 gBerryPalette_Figy[];
|
||||
extern const u16 gBerryPalette_Wiki[];
|
||||
extern const u16 gBerryPalette_Mago[];
|
||||
extern const u16 gBerryPalette_Aguav[];
|
||||
extern const u16 gBerryPalette_Iapapa[];
|
||||
extern const u16 gBerryPalette_Razz[];
|
||||
extern const u16 gBerryPalette_Bluk[];
|
||||
extern const u16 gBerryPalette_Nanab[];
|
||||
extern const u16 gBerryPalette_Wepear[];
|
||||
extern const u16 gBerryPalette_Pinap[];
|
||||
extern const u16 gBerryPalette_Pomeg[];
|
||||
extern const u16 gBerryPalette_Kelpsy[];
|
||||
extern const u16 gBerryPalette_Qualot[];
|
||||
extern const u16 gBerryPalette_Hondew[];
|
||||
extern const u16 gBerryPalette_Grepa[];
|
||||
extern const u16 gBerryPalette_Tamato[];
|
||||
extern const u16 gBerryPalette_Cornn[];
|
||||
extern const u16 gBerryPalette_Magost[];
|
||||
extern const u16 gBerryPalette_Rabuta[];
|
||||
extern const u16 gBerryPalette_Nomel[];
|
||||
extern const u16 gBerryPalette_Spelon[];
|
||||
extern const u16 gBerryPalette_Pamtre[];
|
||||
extern const u16 gBerryPalette_Watmel[];
|
||||
extern const u16 gBerryPalette_Durin[];
|
||||
extern const u16 gBerryPalette_Belue[];
|
||||
extern const u16 gBerryPalette_Chilan[];
|
||||
extern const u16 gBerryPalette_Occa[];
|
||||
extern const u16 gBerryPalette_Passho[];
|
||||
extern const u16 gBerryPalette_Wacan[];
|
||||
extern const u16 gBerryPalette_Rindo[];
|
||||
extern const u16 gBerryPalette_Yache[];
|
||||
extern const u16 gBerryPalette_Chople[];
|
||||
extern const u16 gBerryPalette_Kebia[];
|
||||
extern const u16 gBerryPalette_Shuca[];
|
||||
extern const u16 gBerryPalette_Coba[];
|
||||
extern const u16 gBerryPalette_Payapa[];
|
||||
extern const u16 gBerryPalette_Tanga[];
|
||||
extern const u16 gBerryPalette_Charti[];
|
||||
extern const u16 gBerryPalette_Kasib[];
|
||||
extern const u16 gBerryPalette_Haban[];
|
||||
extern const u16 gBerryPalette_Colbur[];
|
||||
extern const u16 gBerryPalette_Babiri[];
|
||||
extern const u16 gBerryPalette_Roseli[];
|
||||
extern const u16 gBerryPalette_Liechi[];
|
||||
extern const u16 gBerryPalette_Ganlon[];
|
||||
extern const u16 gBerryPalette_Salac[];
|
||||
extern const u16 gBerryPalette_Petaya[];
|
||||
extern const u16 gBerryPalette_Apicot[];
|
||||
extern const u16 gBerryPalette_Lansat[];
|
||||
extern const u16 gBerryPalette_Starf[];
|
||||
extern const u16 gBerryPalette_Enigma[];
|
||||
extern const u16 gBerryPalette_Micle[];
|
||||
extern const u16 gBerryPalette_Custap[];
|
||||
extern const u16 gBerryPalette_Jaboca[];
|
||||
extern const u16 gBerryPalette_Rowap[];
|
||||
extern const u16 gBerryPalette_Kee[];
|
||||
extern const u16 gBerryPalette_Maranga[];
|
||||
|
||||
extern const struct Berry gBerries[];
|
||||
|
||||
struct BerryCrushBerryData {
|
||||
u8 difficulty; // The number of A presses required to crush it
|
||||
u16 powder;
|
||||
};
|
||||
|
||||
extern const struct BerryCrushBerryData gBerryCrush_BerryData[];
|
||||
|
||||
#endif // GUARD_BERRY_H
|
||||
|
|
|
|||
73
include/constants/berries.h
Normal file
73
include/constants/berries.h
Normal file
|
|
@ -0,0 +1,73 @@
|
|||
#ifndef GUARD_CONSTANTS_BERRIES_H
|
||||
#define GUARD_CONSTANTS_BERRIES_H
|
||||
|
||||
#define FOREACH_BERRY(F) \
|
||||
F(CHERI) \
|
||||
F(CHESTO) \
|
||||
F(PECHA) \
|
||||
F(RAWST) \
|
||||
F(ASPEAR) \
|
||||
F(LEPPA) \
|
||||
F(ORAN) \
|
||||
F(PERSIM) \
|
||||
F(LUM) \
|
||||
F(SITRUS) \
|
||||
F(FIGY) \
|
||||
F(WIKI) \
|
||||
F(MAGO) \
|
||||
F(AGUAV) \
|
||||
F(IAPAPA) \
|
||||
F(RAZZ) \
|
||||
F(BLUK) \
|
||||
F(NANAB) \
|
||||
F(WEPEAR) \
|
||||
F(PINAP) \
|
||||
F(POMEG) \
|
||||
F(KELPSY) \
|
||||
F(QUALOT) \
|
||||
F(HONDEW) \
|
||||
F(GREPA) \
|
||||
F(TAMATO) \
|
||||
F(CORNN) \
|
||||
F(MAGOST) \
|
||||
F(RABUTA) \
|
||||
F(NOMEL) \
|
||||
F(SPELON) \
|
||||
F(PAMTRE) \
|
||||
F(WATMEL) \
|
||||
F(DURIN) \
|
||||
F(BELUE) \
|
||||
F(OCCA) \
|
||||
F(PASSHO) \
|
||||
F(WACAN) \
|
||||
F(RINDO) \
|
||||
F(YACHE) \
|
||||
F(CHOPLE) \
|
||||
F(KEBIA) \
|
||||
F(SHUCA) \
|
||||
F(COBA) \
|
||||
F(PAYAPA) \
|
||||
F(TANGA) \
|
||||
F(CHARTI) \
|
||||
F(KASIB) \
|
||||
F(HABAN) \
|
||||
F(COLBUR) \
|
||||
F(BABIRI) \
|
||||
F(CHILAN) \
|
||||
F(LIECHI) \
|
||||
F(GANLON) \
|
||||
F(SALAC) \
|
||||
F(PETAYA) \
|
||||
F(APICOT) \
|
||||
F(LANSAT) \
|
||||
F(STARF) \
|
||||
F(ENIGMA) \
|
||||
F(MICLE) \
|
||||
F(CUSTAP) \
|
||||
F(JABOCA) \
|
||||
F(ROWAP) \
|
||||
F(ROSELI) \
|
||||
F(KEE) \
|
||||
F(MARANGA)
|
||||
|
||||
#endif
|
||||
|
|
@ -3,6 +3,7 @@
|
|||
|
||||
#include "metaprogram.h"
|
||||
#include "constants/tms_hms.h"
|
||||
#include "constants/berries.h"
|
||||
|
||||
enum __attribute__((packed)) Item
|
||||
{
|
||||
|
|
@ -1069,25 +1070,18 @@ enum __attribute__((packed)) Item
|
|||
|
||||
#define CONFUSE_BERRY_HP_FRACTION ((B_CONFUSE_BERRIES_HEAL >= GEN_7) ? 4 : 2)
|
||||
|
||||
// Range of berries given out by various NPCS
|
||||
#define FIRST_BERRY_MASTER_BERRY ITEM_POMEG_BERRY
|
||||
#define LAST_BERRY_MASTER_BERRY ITEM_NOMEL_BERRY
|
||||
#define FIRST_BERRY_MASTER_WIFE_BERRY ITEM_CHERI_BERRY
|
||||
#define LAST_BERRY_MASTER_WIFE_BERRY ITEM_SITRUS_BERRY
|
||||
#define FIRST_KIRI_BERRY ITEM_POMEG_BERRY
|
||||
#define LAST_KIRI_BERRY ITEM_NOMEL_BERRY
|
||||
#define FIRST_ROUTE_114_MAN_BERRY ITEM_RAZZ_BERRY
|
||||
#define LAST_ROUTE_114_MAN_BERRY ITEM_PINAP_BERRY
|
||||
#define UNPACK_BERRY_ID(_berry) BERRY_ID_##_berry,
|
||||
|
||||
#define NUM_BERRY_MASTER_BERRIES (LAST_BERRY_MASTER_BERRY - FIRST_BERRY_MASTER_BERRY + 1)
|
||||
#define NUM_BERRY_MASTER_BERRIES_SKIPPED (FIRST_BERRY_MASTER_BERRY - FIRST_BERRY_INDEX)
|
||||
#define NUM_BERRY_MASTER_WIFE_BERRIES (LAST_BERRY_MASTER_WIFE_BERRY - FIRST_BERRY_MASTER_WIFE_BERRY + 1)
|
||||
#define NUM_KIRI_BERRIES (LAST_KIRI_BERRY - FIRST_KIRI_BERRY + 1)
|
||||
#define NUM_KIRI_BERRIES_SKIPPED (FIRST_KIRI_BERRY - FIRST_BERRY_INDEX)
|
||||
#define NUM_ROUTE_114_MAN_BERRIES (LAST_ROUTE_114_MAN_BERRY - FIRST_ROUTE_114_MAN_BERRY + 1)
|
||||
#define NUM_ROUTE_114_MAN_BERRIES_SKIPPED (FIRST_ROUTE_114_MAN_BERRY - FIRST_BERRY_INDEX)
|
||||
enum BerryId
|
||||
{
|
||||
BERRY_ID_NONE,
|
||||
FOREACH_BERRY(UNPACK_BERRY_ID)
|
||||
BERRY_ID_ENGIMA_E_READER,
|
||||
NUM_BERRIES = BERRY_ID_ENGIMA_E_READER,
|
||||
};
|
||||
|
||||
#undef UNPACK_BERRY_ID
|
||||
|
||||
#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)
|
||||
|
|
|
|||
|
|
@ -121,8 +121,7 @@ extern const union AnimCmd *const sAnimTable_Following_Asym[];
|
|||
extern const struct SpriteTemplate *const gFieldEffectObjectTemplatePointers[];
|
||||
extern const u8 gReflectionEffectPaletteMap[];
|
||||
|
||||
extern const struct SpriteFrameImage *const gBerryTreePicTablePointers[];
|
||||
extern const u8 *const gBerryTreePaletteSlotTablePointers[];
|
||||
extern const struct SpriteFrameImage gPicTable_PechaBerryTree[];
|
||||
|
||||
void ResetObjectEvents(void);
|
||||
u8 GetMoveDirectionAnimNum(enum Direction direction);
|
||||
|
|
|
|||
|
|
@ -4,7 +4,7 @@
|
|||
#define BERRY_NAME_LENGTH 6
|
||||
#define BERRY_ITEM_EFFECT_COUNT 18
|
||||
|
||||
struct Berry
|
||||
struct BerryInfo
|
||||
{
|
||||
const u8 name[BERRY_NAME_LENGTH + 1];
|
||||
enum BerryFirmness firmness:4;
|
||||
|
|
@ -27,9 +27,22 @@ struct Berry
|
|||
u8 drainRate;
|
||||
};
|
||||
|
||||
struct Berry
|
||||
{
|
||||
struct BerryInfo info;
|
||||
u32 naturalGiftType:6;
|
||||
u32 naturalGiftPower:8;
|
||||
u32 berryCrushDifficulty:8; // The number of A presses required to crush it
|
||||
u32 berryCrushPowder:10;
|
||||
const u32 *berryPic;
|
||||
const u16 *berryPal;
|
||||
const struct SpriteFrameImage *berryTreePicTable;
|
||||
const u8 *berryTreePaletteSlotTable;
|
||||
};
|
||||
|
||||
// with no const fields
|
||||
|
||||
struct Berry2
|
||||
struct EnigmaBerryInfo
|
||||
{
|
||||
u8 name[BERRY_NAME_LENGTH + 1];
|
||||
enum BerryFirmness firmness:4;
|
||||
|
|
@ -54,7 +67,7 @@ struct Berry2
|
|||
|
||||
struct EnigmaBerry
|
||||
{
|
||||
struct Berry2 berry;
|
||||
struct EnigmaBerryInfo berry;
|
||||
u8 itemEffect[BERRY_ITEM_EFFECT_COUNT];
|
||||
u8 holdEffect;
|
||||
u8 holdEffectParam;
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
#include "constants/items.h"
|
||||
#include "constants/moves.h"
|
||||
#include "constants/tms_hms.h"
|
||||
#include "constants/berries.h"
|
||||
#include "constants/item_effects.h"
|
||||
#include "constants/hold_effects.h"
|
||||
|
||||
|
|
@ -174,11 +175,41 @@ static inline enum Item GetTMHMItemId(enum TMHMIndex index)
|
|||
return gTMHMItemMoveIds[index].itemId;
|
||||
}
|
||||
|
||||
static inline u16 GetTMHMMoveId(enum TMHMIndex index)
|
||||
static inline enum Move GetTMHMMoveId(enum TMHMIndex index)
|
||||
{
|
||||
return gTMHMItemMoveIds[index].moveId;
|
||||
}
|
||||
|
||||
#define GET_BERRY_ID(_berry) case ITEM_##_berry##_BERRY: return BERRY_ID_##_berry;
|
||||
#define GET_BERRY_ITEM_ID(_berry) case BERRY_ID_##_berry: return ITEM_##_berry##_BERRY;
|
||||
|
||||
static inline enum BerryId ItemIdToBerryType(enum Item itemId)
|
||||
{
|
||||
switch (itemId)
|
||||
{
|
||||
FOREACH_BERRY(GET_BERRY_ID)
|
||||
case ITEM_ENIGMA_BERRY_E_READER:
|
||||
return BERRY_ID_ENGIMA_E_READER;
|
||||
default:
|
||||
return BERRY_ID_NONE;
|
||||
}
|
||||
};
|
||||
|
||||
static inline enum Item BerryTypeToItemId(enum BerryId berryId)
|
||||
{
|
||||
switch (berryId)
|
||||
{
|
||||
FOREACH_BERRY(GET_BERRY_ITEM_ID)
|
||||
case BERRY_ID_ENGIMA_E_READER:
|
||||
return ITEM_ENIGMA_BERRY_E_READER;
|
||||
default:
|
||||
return ITEM_NONE;
|
||||
}
|
||||
};
|
||||
|
||||
#undef GET_BERRY_ID
|
||||
#undef GET_BERRY_ITEM_ID
|
||||
|
||||
void BagPocket_SetSlotData(struct BagPocket *pocket, u32 pocketPos, struct ItemSlot newSlot);
|
||||
struct ItemSlot BagPocket_GetSlotData(struct BagPocket *pocket, u32 pocketPos);
|
||||
|
||||
|
|
@ -187,7 +218,7 @@ static inline void BagPocket_SetSlotItemIdAndCount(struct BagPocket *pocket, u32
|
|||
BagPocket_SetSlotData(pocket, pocketPos, (struct ItemSlot) {itemId, quantity});
|
||||
}
|
||||
|
||||
static inline u16 GetBagItemId(enum Pocket pocketId, u32 pocketPos)
|
||||
static inline enum Item GetBagItemId(enum Pocket pocketId, u32 pocketPos)
|
||||
{
|
||||
return BagPocket_GetSlotData(&gBagPockets[pocketId], pocketPos).itemId;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -73,7 +73,8 @@
|
|||
|
||||
/* Same as INVOKE_WITH but uses UNPACK_B to unpack arguments and only applies macro to args if there are any. */
|
||||
#define INVOKE_WITH_B(macro, args, ...) INVOKE_B(macro, UNPACK_B(args) __VA_OPT__(, __VA_ARGS__))
|
||||
#define INVOKE_B(macro, ...) __VA_OPT__(macro(__VA_ARGS__))
|
||||
#define INVOKE_B(macro, ...) INVOKE_B_(macro, __VA_ARGS__)
|
||||
#define INVOKE_B_(macro, ...) __VA_OPT__(macro(__VA_ARGS__))
|
||||
|
||||
/* Recursive macros.
|
||||
* Based on https://www.scs.stanford.edu/~dm/blog/va-opt.html
|
||||
|
|
|
|||
|
|
@ -246,6 +246,7 @@ enum RandomTag
|
|||
RNG_WILD_MON_TARGET,
|
||||
RNG_AI_FAKE_OUT_SAVE_ALLY,
|
||||
RNG_AI_DMG_ROLL_RANDOM,
|
||||
RNG_RANDOM_BERRY,
|
||||
};
|
||||
|
||||
#define RandomWeighted(tag, ...) \
|
||||
|
|
|
|||
|
|
@ -1214,7 +1214,7 @@ enum ItemEffect ItemBattleEffects(enum BattlerId itemBattler, enum BattlerId bat
|
|||
{
|
||||
gLastUsedItem = item;
|
||||
gBattleScripting.battler = gPotentialItemEffectBattler = itemBattler;
|
||||
if ((item >= FIRST_BERRY_INDEX && item <= LAST_BERRY_INDEX))
|
||||
if (gItemsInfo[item].pocket == POCKET_BERRIES)
|
||||
GetBattlerPartyState(itemBattler)->ateBerry = TRUE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -695,10 +695,10 @@ static void SetPlayerBerryDataInBattleStruct(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER));
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(BERRY_ID_ENGIMA_E_READER);
|
||||
|
||||
for (i = 0; i < BERRY_NAME_LENGTH; i++)
|
||||
battleBerry->name[i] = berryData->name[i];
|
||||
battleBerry->name[i] = berryInfo->name[i];
|
||||
battleBerry->name[i] = EOS;
|
||||
|
||||
for (i = 0; i < BERRY_ITEM_EFFECT_COUNT; i++)
|
||||
|
|
@ -740,12 +740,12 @@ static void SetAllPlayersBerryData(void)
|
|||
}
|
||||
else
|
||||
{
|
||||
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER));
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(BERRY_ID_ENGIMA_E_READER);
|
||||
|
||||
for (i = 0; i < BERRY_NAME_LENGTH; i++)
|
||||
{
|
||||
gEnigmaBerries[0].name[i] = berryData->name[i];
|
||||
gEnigmaBerries[2].name[i] = berryData->name[i];
|
||||
gEnigmaBerries[0].name[i] = berryInfo->name[i];
|
||||
gEnigmaBerries[2].name[i] = berryInfo->name[i];
|
||||
}
|
||||
gEnigmaBerries[0].name[i] = EOS;
|
||||
gEnigmaBerries[2].name[i] = EOS;
|
||||
|
|
@ -5963,7 +5963,7 @@ enum Type GetDynamicMoveType(struct Pokemon *mon, enum Move move, enum BattlerId
|
|||
break;
|
||||
case EFFECT_NATURAL_GIFT:
|
||||
if (GetItemPocket(heldItem) == POCKET_BERRIES)
|
||||
return gNaturalGiftTable[ITEM_TO_BERRY(heldItem)].type;
|
||||
return gBerries[ItemIdToBerryType(heldItem)].naturalGiftType;
|
||||
else
|
||||
return moveType;
|
||||
case EFFECT_TERRAIN_PULSE:
|
||||
|
|
|
|||
|
|
@ -619,7 +619,7 @@ static void CopyBagItemName(u8 *dst, enum Item itemId)
|
|||
{
|
||||
if (GetItemPocket(itemId) == POCKET_BERRIES)
|
||||
{
|
||||
ConvertIntToDecimalStringN(gStringVar1, ITEM_TO_BERRY(itemId), STR_CONV_MODE_LEADING_ZEROS, MAX_PYRAMID_ITEM_DIGITS);
|
||||
ConvertIntToDecimalStringN(gStringVar1, ItemIdToBerryType(itemId), STR_CONV_MODE_LEADING_ZEROS, MAX_PYRAMID_ITEM_DIGITS);
|
||||
CopyItemName(itemId, gStringVar2);
|
||||
StringExpandPlaceholders(dst, gText_NumberItem_TMBerry);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2894,8 +2894,8 @@ void SetMoveEffect(enum BattlerId battlerAtk, enum BattlerId effectBattler, enum
|
|||
}
|
||||
break;
|
||||
case MOVE_EFFECT_INCINERATE:
|
||||
if (((gBattleMons[effectBattler].item >= FIRST_BERRY_INDEX && gBattleMons[effectBattler].item <= LAST_BERRY_INDEX)
|
||||
|| (B_INCINERATE_GEMS >= GEN_6 && GetBattlerHoldEffect(effectBattler) == HOLD_EFFECT_GEMS))
|
||||
if ((gItemsInfo[gBattleMons[effectBattler].item].pocket == POCKET_BERRIES
|
||||
|| (B_INCINERATE_GEMS >= GEN_6 && GetBattlerHoldEffect(effectBattler) == HOLD_EFFECT_GEMS))
|
||||
&& abilities[effectBattler] != ABILITY_STICKY_HOLD)
|
||||
{
|
||||
gLastUsedItem = gBattleMons[effectBattler].item;
|
||||
|
|
|
|||
|
|
@ -6033,77 +6033,6 @@ static const u8 sSpeedDiffPowerTable[] = {40, 60, 80, 120, 150};
|
|||
static const u8 sHeatCrashPowerTable[] = {40, 40, 60, 80, 100, 120};
|
||||
static const u8 sTrumpCardPowerTable[] = {200, 80, 60, 50, 40};
|
||||
|
||||
const struct TypePower gNaturalGiftTable[] =
|
||||
{
|
||||
[ITEM_TO_BERRY(ITEM_CHERI_BERRY)] = {TYPE_FIRE, 80},
|
||||
[ITEM_TO_BERRY(ITEM_CHESTO_BERRY)] = {TYPE_WATER, 80},
|
||||
[ITEM_TO_BERRY(ITEM_PECHA_BERRY)] = {TYPE_ELECTRIC, 80},
|
||||
[ITEM_TO_BERRY(ITEM_RAWST_BERRY)] = {TYPE_GRASS, 80},
|
||||
[ITEM_TO_BERRY(ITEM_ASPEAR_BERRY)] = {TYPE_ICE, 80},
|
||||
[ITEM_TO_BERRY(ITEM_LEPPA_BERRY)] = {TYPE_FIGHTING, 80},
|
||||
[ITEM_TO_BERRY(ITEM_ORAN_BERRY)] = {TYPE_POISON, 80},
|
||||
[ITEM_TO_BERRY(ITEM_PERSIM_BERRY)] = {TYPE_GROUND, 80},
|
||||
[ITEM_TO_BERRY(ITEM_LUM_BERRY)] = {TYPE_FLYING, 80},
|
||||
[ITEM_TO_BERRY(ITEM_SITRUS_BERRY)] = {TYPE_PSYCHIC, 80},
|
||||
[ITEM_TO_BERRY(ITEM_FIGY_BERRY)] = {TYPE_BUG, 80},
|
||||
[ITEM_TO_BERRY(ITEM_WIKI_BERRY)] = {TYPE_ROCK, 80},
|
||||
[ITEM_TO_BERRY(ITEM_MAGO_BERRY)] = {TYPE_GHOST, 80},
|
||||
[ITEM_TO_BERRY(ITEM_AGUAV_BERRY)] = {TYPE_DRAGON, 80},
|
||||
[ITEM_TO_BERRY(ITEM_IAPAPA_BERRY)] = {TYPE_DARK, 80},
|
||||
[ITEM_TO_BERRY(ITEM_RAZZ_BERRY)] = {TYPE_STEEL, 80},
|
||||
[ITEM_TO_BERRY(ITEM_OCCA_BERRY)] = {TYPE_FIRE, 80},
|
||||
[ITEM_TO_BERRY(ITEM_PASSHO_BERRY)] = {TYPE_WATER, 80},
|
||||
[ITEM_TO_BERRY(ITEM_WACAN_BERRY)] = {TYPE_ELECTRIC, 80},
|
||||
[ITEM_TO_BERRY(ITEM_RINDO_BERRY)] = {TYPE_GRASS, 80},
|
||||
[ITEM_TO_BERRY(ITEM_YACHE_BERRY)] = {TYPE_ICE, 80},
|
||||
[ITEM_TO_BERRY(ITEM_CHOPLE_BERRY)] = {TYPE_FIGHTING, 80},
|
||||
[ITEM_TO_BERRY(ITEM_KEBIA_BERRY)] = {TYPE_POISON, 80},
|
||||
[ITEM_TO_BERRY(ITEM_SHUCA_BERRY)] = {TYPE_GROUND, 80},
|
||||
[ITEM_TO_BERRY(ITEM_COBA_BERRY)] = {TYPE_FLYING, 80},
|
||||
[ITEM_TO_BERRY(ITEM_PAYAPA_BERRY)] = {TYPE_PSYCHIC, 80},
|
||||
[ITEM_TO_BERRY(ITEM_TANGA_BERRY)] = {TYPE_BUG, 80},
|
||||
[ITEM_TO_BERRY(ITEM_CHARTI_BERRY)] = {TYPE_ROCK, 80},
|
||||
[ITEM_TO_BERRY(ITEM_KASIB_BERRY)] = {TYPE_GHOST, 80},
|
||||
[ITEM_TO_BERRY(ITEM_HABAN_BERRY)] = {TYPE_DRAGON, 80},
|
||||
[ITEM_TO_BERRY(ITEM_COLBUR_BERRY)] = {TYPE_DARK, 80},
|
||||
[ITEM_TO_BERRY(ITEM_BABIRI_BERRY)] = {TYPE_STEEL, 80},
|
||||
[ITEM_TO_BERRY(ITEM_CHILAN_BERRY)] = {TYPE_NORMAL, 80},
|
||||
[ITEM_TO_BERRY(ITEM_ROSELI_BERRY)] = {TYPE_FAIRY, 80},
|
||||
[ITEM_TO_BERRY(ITEM_BLUK_BERRY)] = {TYPE_FIRE, 90},
|
||||
[ITEM_TO_BERRY(ITEM_NANAB_BERRY)] = {TYPE_WATER, 90},
|
||||
[ITEM_TO_BERRY(ITEM_WEPEAR_BERRY)] = {TYPE_ELECTRIC, 90},
|
||||
[ITEM_TO_BERRY(ITEM_PINAP_BERRY)] = {TYPE_GRASS, 90},
|
||||
[ITEM_TO_BERRY(ITEM_POMEG_BERRY)] = {TYPE_ICE, 90},
|
||||
[ITEM_TO_BERRY(ITEM_KELPSY_BERRY)] = {TYPE_FIGHTING, 90},
|
||||
[ITEM_TO_BERRY(ITEM_QUALOT_BERRY)] = {TYPE_POISON, 90},
|
||||
[ITEM_TO_BERRY(ITEM_HONDEW_BERRY)] = {TYPE_GROUND, 90},
|
||||
[ITEM_TO_BERRY(ITEM_GREPA_BERRY)] = {TYPE_FLYING, 90},
|
||||
[ITEM_TO_BERRY(ITEM_TAMATO_BERRY)] = {TYPE_PSYCHIC, 90},
|
||||
[ITEM_TO_BERRY(ITEM_CORNN_BERRY)] = {TYPE_BUG, 90},
|
||||
[ITEM_TO_BERRY(ITEM_MAGOST_BERRY)] = {TYPE_ROCK, 90},
|
||||
[ITEM_TO_BERRY(ITEM_RABUTA_BERRY)] = {TYPE_GHOST, 90},
|
||||
[ITEM_TO_BERRY(ITEM_NOMEL_BERRY)] = {TYPE_DRAGON, 90},
|
||||
[ITEM_TO_BERRY(ITEM_SPELON_BERRY)] = {TYPE_DARK, 90},
|
||||
[ITEM_TO_BERRY(ITEM_PAMTRE_BERRY)] = {TYPE_STEEL, 90},
|
||||
[ITEM_TO_BERRY(ITEM_WATMEL_BERRY)] = {TYPE_FIRE, 100},
|
||||
[ITEM_TO_BERRY(ITEM_DURIN_BERRY)] = {TYPE_WATER, 100},
|
||||
[ITEM_TO_BERRY(ITEM_BELUE_BERRY)] = {TYPE_ELECTRIC, 100},
|
||||
[ITEM_TO_BERRY(ITEM_LIECHI_BERRY)] = {TYPE_GRASS, 100},
|
||||
[ITEM_TO_BERRY(ITEM_GANLON_BERRY)] = {TYPE_ICE, 100},
|
||||
[ITEM_TO_BERRY(ITEM_SALAC_BERRY)] = {TYPE_FIGHTING, 100},
|
||||
[ITEM_TO_BERRY(ITEM_PETAYA_BERRY)] = {TYPE_POISON, 100},
|
||||
[ITEM_TO_BERRY(ITEM_APICOT_BERRY)] = {TYPE_GROUND, 100},
|
||||
[ITEM_TO_BERRY(ITEM_LANSAT_BERRY)] = {TYPE_FLYING, 100},
|
||||
[ITEM_TO_BERRY(ITEM_STARF_BERRY)] = {TYPE_PSYCHIC, 100},
|
||||
[ITEM_TO_BERRY(ITEM_ENIGMA_BERRY)] = {TYPE_BUG, 100},
|
||||
[ITEM_TO_BERRY(ITEM_MICLE_BERRY)] = {TYPE_ROCK, 100},
|
||||
[ITEM_TO_BERRY(ITEM_CUSTAP_BERRY)] = {TYPE_GHOST, 100},
|
||||
[ITEM_TO_BERRY(ITEM_JABOCA_BERRY)] = {TYPE_DRAGON, 100},
|
||||
[ITEM_TO_BERRY(ITEM_ROWAP_BERRY)] = {TYPE_DARK, 100},
|
||||
[ITEM_TO_BERRY(ITEM_KEE_BERRY)] = {TYPE_FAIRY, 100},
|
||||
[ITEM_TO_BERRY(ITEM_MARANGA_BERRY)] = {TYPE_DARK, 100},
|
||||
};
|
||||
|
||||
static inline u32 CalcRolloutBasePower(enum BattlerId battlerAtk, u32 basePower)
|
||||
{
|
||||
u32 i;
|
||||
|
|
@ -6253,7 +6182,7 @@ static inline u32 CalcMoveBasePower(struct BattleContext *ctx)
|
|||
basePower *= 2;
|
||||
break;
|
||||
case EFFECT_NATURAL_GIFT:
|
||||
basePower = gNaturalGiftTable[ITEM_TO_BERRY(gBattleMons[battlerAtk].item)].power;
|
||||
basePower = gBerries[ItemIdToBerryType(gBattleMons[battlerAtk].item)].naturalGiftPower;
|
||||
break;
|
||||
case EFFECT_DOUBLE_POWER_ON_ARG_STATUS:
|
||||
// Comatose targets treated as if asleep
|
||||
|
|
|
|||
3971
src/berry.c
3971
src/berry.c
File diff suppressed because it is too large
Load Diff
|
|
@ -104,7 +104,7 @@ enum {
|
|||
#define PALTAG_MISC 46546
|
||||
|
||||
// Last berry that an NPC can put in
|
||||
#define NUM_NPC_BERRIES ITEM_TO_BERRY(ITEM_ASPEAR_BERRY)
|
||||
#define NUM_NPC_BERRIES BERRY_ID_ASPEAR
|
||||
|
||||
enum {
|
||||
// Windows 0-3 are used implicitly in several loops over BLENDER_MAX_PLAYERS
|
||||
|
|
@ -845,31 +845,31 @@ static const s16 sBerrySpriteData[][5] =
|
|||
// There are only 5 different berries the NPCs will ever use
|
||||
// Each of these sets represents 3 berries chosen to be used by the NPCs
|
||||
// If the player's berry is one of the 5 possible berries, a set is chosen that excludes it
|
||||
static const u8 sOpponentBerrySets[NUM_NPC_BERRIES * 2][3] =
|
||||
static const u8 sOpponentBerrySets[][3] =
|
||||
{
|
||||
// These sets are used if the player chose one of the 5 NPC berries
|
||||
{ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1}, // player chose Cheri Berry
|
||||
{ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1}, // player chose Chesto Berry
|
||||
{ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1}, // player chose Pecha Berry
|
||||
{ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1}, // player chose Rawst Berry
|
||||
{ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1}, // player chose Aspear Berry
|
||||
{BERRY_ID_ASPEAR, BERRY_ID_RAWST, BERRY_ID_PECHA}, // player chose Cheri Berry
|
||||
{BERRY_ID_CHERI, BERRY_ID_ASPEAR, BERRY_ID_RAWST}, // player chose Chesto Berry
|
||||
{BERRY_ID_CHESTO, BERRY_ID_CHERI, BERRY_ID_ASPEAR}, // player chose Pecha Berry
|
||||
{BERRY_ID_PECHA, BERRY_ID_CHESTO, BERRY_ID_CHERI}, // player chose Rawst Berry
|
||||
{BERRY_ID_RAWST, BERRY_ID_PECHA, BERRY_ID_CHESTO}, // player chose Aspear Berry
|
||||
|
||||
// These sets are used if the player chose a different berry (set is selected by player's berry % 5)
|
||||
{ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1}, // player chose Leppa, Figy, ...
|
||||
{ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1}, // player chose Oran, Wiki, ...
|
||||
{ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1, ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1}, // player chose Persim, Mago, ...
|
||||
{ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1}, // player chose Lum, Aguav, ...
|
||||
{ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1, ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1, ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1}, // player chose Sitrus, Iapapa, ...
|
||||
{BERRY_ID_CHERI, BERRY_ID_PECHA, BERRY_ID_RAWST}, // player chose Leppa, Figy, ...
|
||||
{BERRY_ID_CHESTO, BERRY_ID_RAWST, BERRY_ID_ASPEAR}, // player chose Oran, Wiki, ...
|
||||
{BERRY_ID_PECHA, BERRY_ID_ASPEAR, BERRY_ID_CHERI}, // player chose Persim, Mago, ...
|
||||
{BERRY_ID_RAWST, BERRY_ID_CHERI, BERRY_ID_CHESTO}, // player chose Lum, Aguav, ...
|
||||
{BERRY_ID_ASPEAR, BERRY_ID_CHESTO, BERRY_ID_PECHA}, // player chose Sitrus, Iapapa, ...
|
||||
};
|
||||
|
||||
// Berry master's berries follow the same rules as above, but instead of explicitly listing
|
||||
// the alternate sets if the player chooses one of these berries, it implicitly uses these berries - 5, i.e. Tamato - Nomel
|
||||
static const u8 sBerryMasterBerries[] = {
|
||||
ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1
|
||||
BERRY_ID_SPELON,
|
||||
BERRY_ID_PAMTRE,
|
||||
BERRY_ID_WATMEL,
|
||||
BERRY_ID_DURIN,
|
||||
BERRY_ID_BELUE
|
||||
};
|
||||
|
||||
// "0 players" is link
|
||||
|
|
@ -1185,7 +1185,7 @@ static void SetBerrySpriteData(struct Sprite *sprite, s32 x, s32 y, s32 bounceSp
|
|||
|
||||
static void CreateBerrySprite(enum Item itemId, u32 playerId)
|
||||
{
|
||||
u32 berryId = ITEM_TO_BERRY(itemId) - 1;
|
||||
enum BerryId berryId = ItemIdToBerryType(itemId);
|
||||
u32 spriteId = CreateSpinningBerrySprite(berryId, 0, 80, playerId & 1);
|
||||
SetBerrySpriteData(&gSprites[spriteId],
|
||||
sBerrySpriteData[playerId][0],
|
||||
|
|
@ -1198,7 +1198,7 @@ static void CreateBerrySprite(enum Item itemId, u32 playerId)
|
|||
|
||||
static void ConvertItemToBlenderBerry(struct BlenderBerry *berry, enum Item itemId)
|
||||
{
|
||||
const struct Berry *berryInfo = GetBerryInfo(ITEM_TO_BERRY(itemId));
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(ItemIdToBerryType(itemId));
|
||||
|
||||
berry->itemId = itemId;
|
||||
StringCopy(berry->name, berryInfo->name);
|
||||
|
|
@ -1546,14 +1546,14 @@ static void SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct B
|
|||
}
|
||||
else
|
||||
{
|
||||
opponentSetId = ITEM_TO_BERRY(playerBerryItemId) - 1;
|
||||
if (opponentSetId >= NUM_NPC_BERRIES)
|
||||
opponentSetId = (opponentSetId % NUM_NPC_BERRIES) + NUM_NPC_BERRIES;
|
||||
opponentSetId = ItemIdToBerryType(playerBerryItemId);
|
||||
if (opponentSetId > NUM_NPC_BERRIES)
|
||||
opponentSetId = ((opponentSetId - 1) % NUM_NPC_BERRIES) + NUM_NPC_BERRIES;
|
||||
}
|
||||
for (i = 0; i < playersNum - 1; i++)
|
||||
{
|
||||
opponentBerryId = sOpponentBerrySets[opponentSetId][i];
|
||||
berryMasterDiff = ITEM_TO_BERRY(playerBerryItemId) - ITEM_TO_BERRY(ITEM_SPELON_BERRY);
|
||||
berryMasterDiff = ItemIdToBerryType(playerBerryItemId) - BERRY_ID_SPELON;
|
||||
if (!FlagGet(FLAG_HIDE_LILYCOVE_CONTEST_HALL_BLEND_MASTER) && gSpecialVar_0x8004 == 1)
|
||||
{
|
||||
opponentSetId %= ARRAY_COUNT(sBerryMasterBerries);
|
||||
|
|
@ -1564,7 +1564,7 @@ static void SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct B
|
|||
if (berryMasterDiff < ARRAY_COUNT(sBerryMasterBerries))
|
||||
opponentBerryId -= ARRAY_COUNT(sBerryMasterBerries);
|
||||
}
|
||||
SetPlayerBerryData(i + 1, opponentBerryId + FIRST_BERRY_INDEX);
|
||||
SetPlayerBerryData(i + 1, BerryTypeToItemId(opponentBerryId));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -3539,7 +3539,7 @@ static bool8 PrintBlendingResults(void)
|
|||
for (i = 0; i < BLENDER_MAX_PLAYERS; i++)
|
||||
{
|
||||
if (sBerryBlender->chosenItemId[i] != 0)
|
||||
berryIds[i] = sBerryBlender->chosenItemId[i] - FIRST_BERRY_INDEX;
|
||||
berryIds[i] = ItemIdToBerryType(sBerryBlender->chosenItemId[i]);
|
||||
if (sBerryBlender->arrowIdToPlayerId[i] != NO_PLAYER)
|
||||
{
|
||||
PutWindowTilemap(i);
|
||||
|
|
|
|||
|
|
@ -1024,12 +1024,18 @@ void StartBerryCrush(MainCallback exitCallback)
|
|||
|
||||
static void GetBerryFromBag(void)
|
||||
{
|
||||
if (gSpecialVar_ItemId < FIRST_BERRY_INDEX || gSpecialVar_ItemId > LAST_BERRY_INDEX + 1)
|
||||
gSpecialVar_ItemId = FIRST_BERRY_INDEX;
|
||||
enum BerryId berryId = ItemIdToBerryType(gSpecialVar_ItemId);
|
||||
if (!berryId)
|
||||
{
|
||||
berryId = 1;
|
||||
gSpecialVar_ItemId = BerryTypeToItemId(1);
|
||||
}
|
||||
else
|
||||
{
|
||||
RemoveBagItem(gSpecialVar_ItemId, 1);
|
||||
}
|
||||
|
||||
sGame->players[sGame->localId].berryId = gSpecialVar_ItemId - FIRST_BERRY_INDEX;
|
||||
sGame->players[sGame->localId].berryId = berryId;
|
||||
sGame->nextCmd = CMD_FADE;
|
||||
sGame->afterPalFadeCmd = CMD_WAIT_BERRIES;
|
||||
SetPaletteFadeArgs(sGame->commandArgs, FALSE, PALETTES_ALL, 0, 16, 0, RGB_BLACK);
|
||||
|
|
@ -1358,7 +1364,7 @@ static void CreateBerrySprites(struct BerryCrushGame *game, struct BerryCrushGam
|
|||
&sSpriteTemplate_PlayerBerry,
|
||||
sPlayerBerrySpriteTags[i],
|
||||
sPlayerBerrySpriteTags[i],
|
||||
game->players[i].berryId + FIRST_BERRY_INDEX);
|
||||
BerryTypeToItemId(game->players[i].berryId));
|
||||
gfx->berrySprites[i] = &gSprites[spriteId];
|
||||
gfx->berrySprites[i]->oam.priority = 3;
|
||||
gfx->berrySprites[i]->affineAnimPaused = TRUE;
|
||||
|
|
@ -1617,9 +1623,9 @@ static void PrintResultsText(struct BerryCrushGame *game, u8 page, u8 sp14, u8 b
|
|||
playerId = i;
|
||||
ranking = i;
|
||||
j = game->players[i].berryId;
|
||||
if (j >= LAST_BERRY_INDEX - FIRST_BERRY_INDEX + 2)
|
||||
j = 0;
|
||||
StringCopy(gStringVar1, gBerries[j].name);
|
||||
if (j > NUM_BERRIES)
|
||||
j = 1;
|
||||
StringCopy(gStringVar1, GetBerryInfo(j)->name);
|
||||
StringExpandPlaceholders(gStringVar4, sResultsTexts[page]);
|
||||
break;
|
||||
}
|
||||
|
|
@ -2363,10 +2369,10 @@ static u32 Cmd_WaitForOthersToPickBerries(struct BerryCrushGame *game, u8 *args)
|
|||
for (i = 0; i < game->playerCount; i++)
|
||||
{
|
||||
game->players[i].berryId = gBlockRecvBuffer[i][0];
|
||||
if (game->players[i].berryId > LAST_BERRY_INDEX + 1)
|
||||
game->players[i].berryId = 0;
|
||||
game->targetAPresses += gBerryCrush_BerryData[game->players[i].berryId].difficulty;
|
||||
game->powder += gBerryCrush_BerryData[game->players[i].berryId].powder;
|
||||
if (game->players[i].berryId > NUM_BERRIES)
|
||||
game->players[i].berryId = 1;
|
||||
game->targetAPresses += gBerries[game->players[i].berryId].berryCrushDifficulty;
|
||||
game->powder += gBerries[game->players[i].berryId].berryCrushPowder;
|
||||
}
|
||||
game->cmdTimer = 0;
|
||||
ResetBlockReceivedFlags();
|
||||
|
|
@ -3446,7 +3452,7 @@ static void ResetGame(struct BerryCrushGame *game)
|
|||
game->sparkleCounter = 0;
|
||||
for (i = 0; i < MAX_RFU_PLAYERS; i++)
|
||||
{
|
||||
game->players[i].berryId = -1;
|
||||
game->players[i].berryId = 0;
|
||||
game->players[i].inputTime = 0;
|
||||
game->players[i].neatInputStreak = 0;
|
||||
game->players[i].timeSincePrevInput = 1;
|
||||
|
|
|
|||
|
|
@ -411,22 +411,22 @@ static void PrintAllBerryData(void)
|
|||
|
||||
static void PrintBerryNumberAndName(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
ConvertIntToDecimalStringN(gStringVar1, sBerryTag->berryId, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
StringCopy(gStringVar2, berry->name);
|
||||
StringCopy(gStringVar2, berryInfo->name);
|
||||
StringExpandPlaceholders(gStringVar4, sText_NumberVar1Var2);
|
||||
PrintTextInBerryTagScreen(WIN_BERRY_NAME, gStringVar4, 0, 1, 0, 0);
|
||||
}
|
||||
|
||||
static void PrintBerrySize(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sText_SizeSlash, 0, 1, TEXT_SKIP_DRAW, NULL);
|
||||
if (berry->size != 0)
|
||||
if (berryInfo->size != 0)
|
||||
{
|
||||
u32 inches, fraction;
|
||||
|
||||
inches = 1000 * berry->size / 254;
|
||||
inches = 1000 * berryInfo->size / 254;
|
||||
if (inches % 10 > 4)
|
||||
inches += 10;
|
||||
fraction = (inches % 100) / 10;
|
||||
|
|
@ -445,29 +445,29 @@ static void PrintBerrySize(void)
|
|||
|
||||
static void PrintBerryFirmness(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sText_FirmSlash, 0, 0x11, TEXT_SKIP_DRAW, NULL);
|
||||
if (berry->firmness != BERRY_FIRMNESS_UNKNOWN)
|
||||
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sBerryFirmnessStrings[berry->firmness], 0x28, 0x11, 0, NULL);
|
||||
if (berryInfo->firmness != BERRY_FIRMNESS_UNKNOWN)
|
||||
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sBerryFirmnessStrings[berryInfo->firmness], 0x28, 0x11, 0, NULL);
|
||||
else
|
||||
AddTextPrinterParameterized(WIN_SIZE_FIRM, FONT_NORMAL, sText_ThreeMarks, 0x28, 0x11, 0, NULL);
|
||||
}
|
||||
|
||||
static void PrintBerryDescription1(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description1, 0, 1, 0, NULL);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berryInfo->description1, 0, 1, 0, NULL);
|
||||
}
|
||||
|
||||
static void PrintBerryDescription2(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berry->description2, 0, 0x11, 0, NULL);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
AddTextPrinterParameterized(WIN_DESC, FONT_NORMAL, berryInfo->description2, 0, 0x11, 0, NULL);
|
||||
}
|
||||
|
||||
static void CreateBerrySprite(void)
|
||||
{
|
||||
sBerryTag->currentSpriteBerryId = sBerryTag->berryId - 1;
|
||||
sBerryTag->currentSpriteBerryId = sBerryTag->berryId;
|
||||
sBerryTag->berrySpriteId = CreateBerryTagSprite(sBerryTag->currentSpriteBerryId, 56, 64);
|
||||
}
|
||||
|
||||
|
|
@ -487,29 +487,29 @@ static void CreateFlavorCircleSprites(void)
|
|||
|
||||
static void SetFlavorCirclesVisiblity(void)
|
||||
{
|
||||
const struct Berry *berry = GetBerryInfo(sBerryTag->berryId);
|
||||
const struct BerryInfo *berryInfo = GetBerryInfo(sBerryTag->berryId);
|
||||
|
||||
if (berry->spicy)
|
||||
if (berryInfo->spicy)
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = FALSE;
|
||||
else
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SPICY]].invisible = TRUE;
|
||||
|
||||
if (berry->dry)
|
||||
if (berryInfo->dry)
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = FALSE;
|
||||
else
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_DRY]].invisible = TRUE;
|
||||
|
||||
if (berry->sweet)
|
||||
if (berryInfo->sweet)
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = FALSE;
|
||||
else
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SWEET]].invisible = TRUE;
|
||||
|
||||
if (berry->bitter)
|
||||
if (berryInfo->bitter)
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = FALSE;
|
||||
else
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_BITTER]].invisible = TRUE;
|
||||
|
||||
if (berry->sour)
|
||||
if (berryInfo->sour)
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = FALSE;
|
||||
else
|
||||
gSprites[sBerryTag->flavorCircleIds[FLAVOR_SOUR]].invisible = TRUE;
|
||||
|
|
@ -565,7 +565,7 @@ static void TryChangeDisplayedBerry(u8 taskId, s8 toMove)
|
|||
s16 *data = gTasks[taskId].data;
|
||||
s16 currPocketPosition = gBagPosition.scrollPosition[POCKET_BERRIES] + gBagPosition.cursorPosition[POCKET_BERRIES];
|
||||
u32 newPocketPosition = currPocketPosition + toMove;
|
||||
if (newPocketPosition < ITEM_TO_BERRY(LAST_BERRY_INDEX) && GetBagItemId(POCKET_BERRIES, newPocketPosition) != ITEM_NONE)
|
||||
if (newPocketPosition < NUM_BERRIES && GetBagItemId(POCKET_BERRIES, newPocketPosition) != ITEM_NONE)
|
||||
{
|
||||
if (toMove < 0)
|
||||
tBgOp = BG_COORD_SUB;
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_CheriBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -12,7 +12,7 @@ static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_ChestoBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -26,7 +26,7 @@ static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_PechaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -40,7 +40,7 @@ static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_RawstBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -54,7 +54,7 @@ static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_AspearBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -68,7 +68,7 @@ static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_LeppaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -82,7 +82,7 @@ static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_OranBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -96,7 +96,7 @@ static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Oran[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_PersimBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -110,7 +110,7 @@ static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_LumBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -124,7 +124,7 @@ static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_SitrusBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -138,7 +138,7 @@ static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_FigyBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -152,7 +152,7 @@ static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_WikiBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -166,7 +166,7 @@ static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_MagoBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -180,7 +180,7 @@ static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_AguavBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -194,7 +194,7 @@ static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_IapapaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -208,7 +208,7 @@ static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_RazzBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -222,7 +222,7 @@ static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_WepearBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -236,7 +236,7 @@ static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_PomegBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -250,7 +250,7 @@ static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_KelpsyBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -264,7 +264,7 @@ static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_HondewBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -278,7 +278,7 @@ static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_GrepaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -292,7 +292,7 @@ static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_TamatoBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -306,7 +306,7 @@ static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_CornnBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -320,7 +320,7 @@ static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_RabutaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -334,7 +334,7 @@ static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_NomelBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -348,7 +348,7 @@ static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_SpelonBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -362,7 +362,7 @@ static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_PamtreBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -376,7 +376,7 @@ static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_DurinBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -390,7 +390,7 @@ static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_OccaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -404,7 +404,7 @@ static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Occa[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_YacheBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_YacheBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -418,7 +418,7 @@ static const struct SpriteFrameImage sPicTable_YacheBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Yache[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_ChopleBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_ChopleBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -432,7 +432,7 @@ static const struct SpriteFrameImage sPicTable_ChopleBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Chople[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_KebiaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_KebiaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -446,7 +446,7 @@ static const struct SpriteFrameImage sPicTable_KebiaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Kebia[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_ShucaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_ShucaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -460,7 +460,7 @@ static const struct SpriteFrameImage sPicTable_ShucaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Shuca[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PayapaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_PayapaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -474,7 +474,7 @@ static const struct SpriteFrameImage sPicTable_PayapaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Payapa[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_TangaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_TangaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -488,7 +488,7 @@ static const struct SpriteFrameImage sPicTable_TangaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Tanga[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_KasibBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_KasibBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -502,7 +502,7 @@ static const struct SpriteFrameImage sPicTable_KasibBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Kasib[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_HabanBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_HabanBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -516,7 +516,7 @@ static const struct SpriteFrameImage sPicTable_HabanBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Haban[] = {3, 4, 3, 3, 3, 3, 3};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_ColburBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_ColburBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -530,7 +530,7 @@ static const struct SpriteFrameImage sPicTable_ColburBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Colbur[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_RoseliBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -544,7 +544,7 @@ static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Roseli[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_LiechiBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -558,7 +558,7 @@ static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_LansatBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -572,7 +572,7 @@ static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2, 2, 2};
|
||||
|
||||
const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_MicleBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -586,7 +586,7 @@ const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Micle[] = {3, 4, 4, 4, 4, 4, 4};
|
||||
|
||||
const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_CustapBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -600,7 +600,7 @@ const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Custap[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_JabocaBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -614,7 +614,7 @@ const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
|
|||
|
||||
const u8 gBerryTreePaletteSlotTable_Jaboca[] = {3, 4, 5, 5, 5, 5, 5};
|
||||
|
||||
const struct SpriteFrameImage sPicTable_RowapBerryTree[] = {
|
||||
const struct SpriteFrameImage gPicTable_RowapBerryTree[] = {
|
||||
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
|
||||
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
|
||||
|
|
@ -631,146 +631,3 @@ 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, 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, 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,
|
||||
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChestoBerryTree,
|
||||
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree,
|
||||
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree,
|
||||
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_AspearBerryTree,
|
||||
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_LeppaBerryTree,
|
||||
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_OranBerryTree,
|
||||
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = sPicTable_PersimBerryTree,
|
||||
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = sPicTable_LumBerryTree,
|
||||
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = sPicTable_SitrusBerryTree,
|
||||
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = sPicTable_FigyBerryTree,
|
||||
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = sPicTable_WikiBerryTree,
|
||||
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
|
||||
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
|
||||
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
|
||||
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
|
||||
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
|
||||
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = sPicTable_MagoBerryTree,
|
||||
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
|
||||
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_IapapaBerryTree,
|
||||
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
|
||||
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = sPicTable_KelpsyBerryTree,
|
||||
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_WepearBerryTree,
|
||||
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
|
||||
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
|
||||
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree,
|
||||
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
|
||||
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
|
||||
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
|
||||
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_NomelBerryTree,
|
||||
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = sPicTable_SpelonBerryTree,
|
||||
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PamtreBerryTree,
|
||||
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = sPicTable_RabutaBerryTree,
|
||||
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
|
||||
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
|
||||
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
|
||||
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_OccaBerryTree,
|
||||
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
|
||||
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_RazzBerryTree,
|
||||
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = sPicTable_TamatoBerryTree,
|
||||
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = sPicTable_YacheBerryTree,
|
||||
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = sPicTable_ChopleBerryTree,
|
||||
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = sPicTable_KebiaBerryTree,
|
||||
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_ShucaBerryTree,
|
||||
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = sPicTable_RawstBerryTree,
|
||||
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PayapaBerryTree,
|
||||
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = sPicTable_TangaBerryTree,
|
||||
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree,
|
||||
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = sPicTable_KasibBerryTree,
|
||||
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_HabanBerryTree,
|
||||
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = sPicTable_ColburBerryTree,
|
||||
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree,
|
||||
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = sPicTable_RoseliBerryTree,
|
||||
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = sPicTable_LiechiBerryTree,
|
||||
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = sPicTable_HondewBerryTree,
|
||||
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = sPicTable_AguavBerryTree,
|
||||
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = sPicTable_PomegBerryTree,
|
||||
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
|
||||
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = sPicTable_LansatBerryTree,
|
||||
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = sPicTable_CornnBerryTree,
|
||||
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
|
||||
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = sPicTable_MicleBerryTree,
|
||||
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_CustapBerryTree,
|
||||
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = sPicTable_JabocaBerryTree,
|
||||
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = sPicTable_RowapBerryTree,
|
||||
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = sPicTable_PechaBerryTree,
|
||||
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = sPicTable_OccaBerryTree,
|
||||
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = sPicTable_DurinBerryTree,
|
||||
};
|
||||
|
||||
const u8 *const gBerryTreePaletteSlotTablePointers[] = {
|
||||
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cheri,
|
||||
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Chesto,
|
||||
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pecha,
|
||||
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rawst,
|
||||
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aspear,
|
||||
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Leppa,
|
||||
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Oran,
|
||||
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Persim,
|
||||
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Lum,
|
||||
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Sitrus,
|
||||
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Figy,
|
||||
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wiki,
|
||||
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Mago,
|
||||
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aguav,
|
||||
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Iapapa,
|
||||
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Razz,
|
||||
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Razz,
|
||||
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Mago,
|
||||
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wepear,
|
||||
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Iapapa,
|
||||
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg,
|
||||
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Kelpsy,
|
||||
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Wepear,
|
||||
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew,
|
||||
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa,
|
||||
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Tamato,
|
||||
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cornn,
|
||||
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg,
|
||||
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rabuta,
|
||||
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Nomel,
|
||||
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Spelon,
|
||||
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pamtre,
|
||||
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rabuta,
|
||||
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin,
|
||||
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew,
|
||||
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa,
|
||||
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Occa,
|
||||
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cornn,
|
||||
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Razz,
|
||||
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Tamato,
|
||||
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Yache,
|
||||
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Chople,
|
||||
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Kebia,
|
||||
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Shuca,
|
||||
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rawst,
|
||||
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Payapa,
|
||||
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Tanga,
|
||||
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Lansat,
|
||||
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Kasib,
|
||||
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Haban,
|
||||
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Colbur,
|
||||
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Liechi,
|
||||
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Roseli,
|
||||
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Liechi,
|
||||
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Hondew,
|
||||
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Aguav,
|
||||
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pomeg,
|
||||
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa,
|
||||
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Lansat,
|
||||
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Cornn,
|
||||
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin,
|
||||
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Micle,
|
||||
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Custap,
|
||||
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Jaboca,
|
||||
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Rowap,
|
||||
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Pecha,
|
||||
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Occa,
|
||||
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Durin,
|
||||
};
|
||||
|
||||
|
|
|
|||
|
|
@ -1093,7 +1093,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTree = {
|
|||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.subspriteTables = NULL,
|
||||
.anims = sAnimTable_BerryTree,
|
||||
.images = sPicTable_PechaBerryTree,
|
||||
.images = gPicTable_PechaBerryTree,
|
||||
};
|
||||
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStages = {
|
||||
|
|
@ -1111,7 +1111,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeEarlyStag
|
|||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.subspriteTables = sOamTables_16x16,
|
||||
.anims = sAnimTable_BerryTree,
|
||||
.images = sPicTable_PechaBerryTree,
|
||||
.images = gPicTable_PechaBerryTree,
|
||||
};
|
||||
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStages = {
|
||||
|
|
@ -1129,7 +1129,7 @@ const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_BerryTreeLateStage
|
|||
.oam = &gObjectEventBaseOam_16x32,
|
||||
.subspriteTables = sOamTables_16x32,
|
||||
.anims = sAnimTable_BerryTree,
|
||||
.images = sPicTable_PechaBerryTree,
|
||||
.images = gPicTable_PechaBerryTree,
|
||||
};
|
||||
|
||||
const struct ObjectEventGraphicsInfo gObjectEventGraphicsInfo_ProfBirch = {
|
||||
|
|
|
|||
|
|
@ -3853,8 +3853,9 @@ static void DebugAction_PCBag_Fill_PocketBerries(u8 taskId)
|
|||
{
|
||||
enum Item itemId;
|
||||
|
||||
for (itemId = FIRST_BERRY_INDEX; itemId < LAST_BERRY_INDEX; itemId++)
|
||||
for (enum BerryId berryId = 1; berryId < NUM_BERRIES; berryId++)
|
||||
{
|
||||
itemId = BerryTypeToItemId(berryId);
|
||||
if (CheckBagHasSpace(itemId, MAX_BAG_ITEM_CAPACITY))
|
||||
AddBagItem(itemId, MAX_BAG_ITEM_CAPACITY);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -592,40 +592,40 @@ ALIGNED(4)
|
|||
static const u8 sPrizeBerryIds[][10] =
|
||||
{
|
||||
{ // Possible prizes with 3 players
|
||||
ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1
|
||||
BERRY_ID_RAZZ,
|
||||
BERRY_ID_BLUK,
|
||||
BERRY_ID_NANAB,
|
||||
BERRY_ID_WEPEAR,
|
||||
BERRY_ID_PINAP,
|
||||
BERRY_ID_PINAP,
|
||||
BERRY_ID_WEPEAR,
|
||||
BERRY_ID_NANAB,
|
||||
BERRY_ID_BLUK,
|
||||
BERRY_ID_RAZZ
|
||||
},
|
||||
{ // Possible prizes with 4 players
|
||||
ITEM_TO_BERRY(ITEM_POMEG_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_KELPSY_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_QUALOT_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_HONDEW_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_GREPA_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_TAMATO_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_CORNN_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_MAGOST_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_RABUTA_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_NOMEL_BERRY) - 1
|
||||
BERRY_ID_POMEG,
|
||||
BERRY_ID_KELPSY,
|
||||
BERRY_ID_QUALOT,
|
||||
BERRY_ID_HONDEW,
|
||||
BERRY_ID_GREPA,
|
||||
BERRY_ID_TAMATO,
|
||||
BERRY_ID_CORNN,
|
||||
BERRY_ID_MAGOST,
|
||||
BERRY_ID_RABUTA,
|
||||
BERRY_ID_NOMEL
|
||||
},
|
||||
{ // Possible prizes with 5 players
|
||||
ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1,
|
||||
ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1
|
||||
BERRY_ID_SPELON,
|
||||
BERRY_ID_PAMTRE,
|
||||
BERRY_ID_WATMEL,
|
||||
BERRY_ID_DURIN,
|
||||
BERRY_ID_BELUE,
|
||||
BERRY_ID_BELUE,
|
||||
BERRY_ID_DURIN,
|
||||
BERRY_ID_WATMEL,
|
||||
BERRY_ID_PAMTRE,
|
||||
BERRY_ID_SPELON
|
||||
},
|
||||
};
|
||||
|
||||
|
|
@ -2695,7 +2695,7 @@ static void ResetPickState(void)
|
|||
|
||||
static u16 GetPrizeItemId(void)
|
||||
{
|
||||
return sGame->berryResults[sGame->multiplayerId][BERRY_PRIZE] + FIRST_BERRY_INDEX;
|
||||
return BerryTypeToItemId(sGame->berryResults[sGame->multiplayerId][BERRY_PRIZE]);
|
||||
}
|
||||
|
||||
static u8 GetNumPlayers(void)
|
||||
|
|
|
|||
|
|
@ -22,6 +22,7 @@
|
|||
#include "follower_helper.h"
|
||||
#include "gpu_regs.h"
|
||||
#include "graphics.h"
|
||||
#include "item.h"
|
||||
#include "mauville_old_man.h"
|
||||
#include "metatile_behavior.h"
|
||||
#include "overworld.h"
|
||||
|
|
@ -220,8 +221,6 @@ static void CopyObjectGraphicsInfoToSpriteTemplate_WithMovementType(u16 graphics
|
|||
static u16 GetGraphicsIdForMon(enum Species species, bool32 shiny, bool32 female);
|
||||
static enum Species GetUnownSpecies(struct Pokemon *mon);
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_PechaBerryTree[];
|
||||
|
||||
static void StartSlowRunningAnim(struct ObjectEvent *objectEvent, struct Sprite *sprite, enum Direction direction);
|
||||
|
||||
const u8 gReflectionEffectPaletteMap[16] = {
|
||||
|
|
@ -3168,10 +3167,10 @@ static void SetBerryTreeGraphicsById(struct ObjectEvent *objectEvent, u8 berryId
|
|||
const u16 graphicsId = gBerryTreeObjectEventGraphicsIdTable[berryStage];
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
UpdateSpritePalette(&sObjectEventSpritePalettes[gBerryTreePaletteSlotTablePointers[berryId][berryStage]-2], sprite);
|
||||
UpdateSpritePalette(&sObjectEventSpritePalettes[gBerries[berryId].berryTreePaletteSlotTable[berryStage] - 2], sprite);
|
||||
sprite->oam.shape = graphicsInfo->oam->shape;
|
||||
sprite->oam.size = graphicsInfo->oam->size;
|
||||
sprite->images = gBerryTreePicTablePointers[berryId];
|
||||
sprite->images = gBerries[berryId].berryTreePicTable;
|
||||
sprite->anims = graphicsInfo->anims;
|
||||
sprite->subspriteTables = graphicsInfo->subspriteTables;
|
||||
objectEvent->inanimate = graphicsInfo->inanimate;
|
||||
|
|
@ -3188,7 +3187,7 @@ static void SetBerryTreeGraphicsById(struct ObjectEvent *objectEvent, u8 berryId
|
|||
static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite *sprite)
|
||||
{
|
||||
u8 berryStage;
|
||||
u8 berryId;
|
||||
enum BerryId berryId;
|
||||
|
||||
objectEvent->invisible = TRUE;
|
||||
sprite->invisible = TRUE;
|
||||
|
|
@ -3197,9 +3196,9 @@ static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, struct Sprite
|
|||
{
|
||||
objectEvent->invisible = FALSE;
|
||||
sprite->invisible = FALSE;
|
||||
berryId = GetBerryTypeByBerryTreeId(objectEvent->trainerRange_berryTreeId) - 1;
|
||||
berryId = GetBerryTypeByBerryTreeId(objectEvent->trainerRange_berryTreeId);
|
||||
berryStage--;
|
||||
if (berryId > ITEM_TO_BERRY(LAST_BERRY_INDEX))
|
||||
if (berryId > NUM_BERRIES)
|
||||
berryId = 0;
|
||||
|
||||
SetBerryTreeGraphicsById(objectEvent, berryId, berryStage);
|
||||
|
|
|
|||
11
src/item.c
11
src/item.c
|
|
@ -225,12 +225,13 @@ bool32 CheckBagHasItem(enum Item itemId, u16 count)
|
|||
|
||||
bool32 HasAtLeastOneBerry(void)
|
||||
{
|
||||
gSpecialVar_Result = FALSE;
|
||||
for (enum BerryId berryId = 1; berryId <= NUM_BERRIES; berryId++)
|
||||
{
|
||||
if (CheckBagHasItem(BerryTypeToItemId(berryId), 1) == TRUE)
|
||||
return (gSpecialVar_Result = TRUE);
|
||||
}
|
||||
|
||||
for (u32 i = FIRST_BERRY_INDEX; i <= LAST_BERRY_INDEX && gSpecialVar_Result == FALSE; i++)
|
||||
gSpecialVar_Result = CheckBagHasItem(i, 1);
|
||||
|
||||
return gSpecialVar_Result;
|
||||
return (gSpecialVar_Result = FALSE);
|
||||
}
|
||||
|
||||
bool32 HasAtLeastOnePokeBall(void)
|
||||
|
|
|
|||
|
|
@ -952,7 +952,7 @@ static void GetItemNameFromPocket(u8 *dest, enum Item itemId)
|
|||
}
|
||||
break;
|
||||
case POCKET_BERRIES:
|
||||
ConvertIntToDecimalStringN(gStringVar1, itemId - FIRST_BERRY_INDEX + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
ConvertIntToDecimalStringN(gStringVar1, ItemIdToBerryType(itemId), STR_CONV_MODE_LEADING_ZEROS, 2);
|
||||
end = CopyItemName(itemId, gStringVar2);
|
||||
PrependFontIdToFit(gStringVar2, end, FONT_NARROW, 61);
|
||||
StringExpandPlaceholders(dest, gText_NumberItem_TMBerry);
|
||||
|
|
|
|||
|
|
@ -23,12 +23,6 @@ enum {
|
|||
#define TAG_BERRY_CHECK_CIRCLE_GFX 10000
|
||||
#define TAG_BERRY_PIC_PAL 30020
|
||||
|
||||
struct TilesPal
|
||||
{
|
||||
const u32 *tiles;
|
||||
const u16 *pal;
|
||||
};
|
||||
|
||||
// this file's functions
|
||||
static void SpriteCB_BagVisualSwitchingPockets(struct Sprite *sprite);
|
||||
static void SpriteCB_ShakeBagSprite(struct Sprite *sprite);
|
||||
|
|
@ -314,78 +308,6 @@ static const struct SpriteTemplate sBerryPicRotatingSpriteTemplate =
|
|||
.affineAnims = sBerryPicRotatingAnimCmds,
|
||||
};
|
||||
|
||||
static const struct TilesPal sBerryPicTable[] =
|
||||
{
|
||||
[ITEM_TO_BERRY(ITEM_CHERI_BERRY) - 1] = {gBerryPic_Cheri, gBerryPalette_Cheri},
|
||||
[ITEM_TO_BERRY(ITEM_CHESTO_BERRY) - 1] = {gBerryPic_Chesto, gBerryPalette_Chesto},
|
||||
[ITEM_TO_BERRY(ITEM_PECHA_BERRY) - 1] = {gBerryPic_Pecha, gBerryPalette_Pecha},
|
||||
[ITEM_TO_BERRY(ITEM_RAWST_BERRY) - 1] = {gBerryPic_Rawst, gBerryPalette_Rawst},
|
||||
[ITEM_TO_BERRY(ITEM_ASPEAR_BERRY) - 1] = {gBerryPic_Aspear, gBerryPalette_Aspear},
|
||||
[ITEM_TO_BERRY(ITEM_LEPPA_BERRY) - 1] = {gBerryPic_Leppa, gBerryPalette_Leppa},
|
||||
[ITEM_TO_BERRY(ITEM_ORAN_BERRY) - 1] = {gBerryPic_Oran, gBerryPalette_Oran},
|
||||
[ITEM_TO_BERRY(ITEM_PERSIM_BERRY) - 1] = {gBerryPic_Persim, gBerryPalette_Persim},
|
||||
[ITEM_TO_BERRY(ITEM_LUM_BERRY) - 1] = {gBerryPic_Lum, gBerryPalette_Lum},
|
||||
[ITEM_TO_BERRY(ITEM_SITRUS_BERRY) - 1] = {gBerryPic_Sitrus, gBerryPalette_Sitrus},
|
||||
[ITEM_TO_BERRY(ITEM_FIGY_BERRY) - 1] = {gBerryPic_Figy, gBerryPalette_Figy},
|
||||
[ITEM_TO_BERRY(ITEM_WIKI_BERRY) - 1] = {gBerryPic_Wiki, gBerryPalette_Wiki},
|
||||
[ITEM_TO_BERRY(ITEM_MAGO_BERRY) - 1] = {gBerryPic_Mago, gBerryPalette_Mago},
|
||||
[ITEM_TO_BERRY(ITEM_AGUAV_BERRY) - 1] = {gBerryPic_Aguav, gBerryPalette_Aguav},
|
||||
[ITEM_TO_BERRY(ITEM_IAPAPA_BERRY) - 1] = {gBerryPic_Iapapa, gBerryPalette_Iapapa},
|
||||
[ITEM_TO_BERRY(ITEM_RAZZ_BERRY) - 1] = {gBerryPic_Razz, gBerryPalette_Razz},
|
||||
[ITEM_TO_BERRY(ITEM_BLUK_BERRY) - 1] = {gBerryPic_Bluk, gBerryPalette_Bluk},
|
||||
[ITEM_TO_BERRY(ITEM_NANAB_BERRY) - 1] = {gBerryPic_Nanab, gBerryPalette_Nanab},
|
||||
[ITEM_TO_BERRY(ITEM_WEPEAR_BERRY) - 1] = {gBerryPic_Wepear, gBerryPalette_Wepear},
|
||||
[ITEM_TO_BERRY(ITEM_PINAP_BERRY) - 1] = {gBerryPic_Pinap, gBerryPalette_Pinap},
|
||||
[ITEM_TO_BERRY(ITEM_POMEG_BERRY) - 1] = {gBerryPic_Pomeg, gBerryPalette_Pomeg},
|
||||
[ITEM_TO_BERRY(ITEM_KELPSY_BERRY) - 1] = {gBerryPic_Kelpsy, gBerryPalette_Kelpsy},
|
||||
[ITEM_TO_BERRY(ITEM_QUALOT_BERRY) - 1] = {gBerryPic_Qualot, gBerryPalette_Qualot},
|
||||
[ITEM_TO_BERRY(ITEM_HONDEW_BERRY) - 1] = {gBerryPic_Hondew, gBerryPalette_Hondew},
|
||||
[ITEM_TO_BERRY(ITEM_GREPA_BERRY) - 1] = {gBerryPic_Grepa, gBerryPalette_Grepa},
|
||||
[ITEM_TO_BERRY(ITEM_TAMATO_BERRY) - 1] = {gBerryPic_Tamato, gBerryPalette_Tamato},
|
||||
[ITEM_TO_BERRY(ITEM_CORNN_BERRY) - 1] = {gBerryPic_Cornn, gBerryPalette_Cornn},
|
||||
[ITEM_TO_BERRY(ITEM_MAGOST_BERRY) - 1] = {gBerryPic_Magost, gBerryPalette_Magost},
|
||||
[ITEM_TO_BERRY(ITEM_RABUTA_BERRY) - 1] = {gBerryPic_Rabuta, gBerryPalette_Rabuta},
|
||||
[ITEM_TO_BERRY(ITEM_NOMEL_BERRY) - 1] = {gBerryPic_Nomel, gBerryPalette_Nomel},
|
||||
[ITEM_TO_BERRY(ITEM_SPELON_BERRY) - 1] = {gBerryPic_Spelon, gBerryPalette_Spelon},
|
||||
[ITEM_TO_BERRY(ITEM_PAMTRE_BERRY) - 1] = {gBerryPic_Pamtre, gBerryPalette_Pamtre},
|
||||
[ITEM_TO_BERRY(ITEM_WATMEL_BERRY) - 1] = {gBerryPic_Watmel, gBerryPalette_Watmel},
|
||||
[ITEM_TO_BERRY(ITEM_DURIN_BERRY) - 1] = {gBerryPic_Durin, gBerryPalette_Durin},
|
||||
[ITEM_TO_BERRY(ITEM_BELUE_BERRY) - 1] = {gBerryPic_Belue, gBerryPalette_Belue},
|
||||
[ITEM_TO_BERRY(ITEM_CHILAN_BERRY) - 1] = {gBerryPic_Chilan, gBerryPalette_Chilan},
|
||||
[ITEM_TO_BERRY(ITEM_OCCA_BERRY) - 1] = {gBerryPic_Occa, gBerryPalette_Occa},
|
||||
[ITEM_TO_BERRY(ITEM_PASSHO_BERRY) - 1] = {gBerryPic_Passho, gBerryPalette_Passho},
|
||||
[ITEM_TO_BERRY(ITEM_WACAN_BERRY) - 1] = {gBerryPic_Wacan, gBerryPalette_Wacan},
|
||||
[ITEM_TO_BERRY(ITEM_RINDO_BERRY) - 1] = {gBerryPic_Rindo, gBerryPalette_Rindo},
|
||||
[ITEM_TO_BERRY(ITEM_YACHE_BERRY) - 1] = {gBerryPic_Yache, gBerryPalette_Yache},
|
||||
[ITEM_TO_BERRY(ITEM_CHOPLE_BERRY) - 1] = {gBerryPic_Chople, gBerryPalette_Chople},
|
||||
[ITEM_TO_BERRY(ITEM_KEBIA_BERRY) - 1] = {gBerryPic_Kebia, gBerryPalette_Kebia},
|
||||
[ITEM_TO_BERRY(ITEM_SHUCA_BERRY) - 1] = {gBerryPic_Shuca, gBerryPalette_Shuca},
|
||||
[ITEM_TO_BERRY(ITEM_COBA_BERRY) - 1] = {gBerryPic_Coba, gBerryPalette_Coba},
|
||||
[ITEM_TO_BERRY(ITEM_PAYAPA_BERRY) - 1] = {gBerryPic_Payapa, gBerryPalette_Payapa},
|
||||
[ITEM_TO_BERRY(ITEM_TANGA_BERRY) - 1] = {gBerryPic_Tanga, gBerryPalette_Tanga},
|
||||
[ITEM_TO_BERRY(ITEM_CHARTI_BERRY) - 1] = {gBerryPic_Charti, gBerryPalette_Charti},
|
||||
[ITEM_TO_BERRY(ITEM_KASIB_BERRY) - 1] = {gBerryPic_Kasib, gBerryPalette_Kasib},
|
||||
[ITEM_TO_BERRY(ITEM_HABAN_BERRY) - 1] = {gBerryPic_Haban, gBerryPalette_Haban},
|
||||
[ITEM_TO_BERRY(ITEM_COLBUR_BERRY) - 1] = {gBerryPic_Colbur, gBerryPalette_Colbur},
|
||||
[ITEM_TO_BERRY(ITEM_BABIRI_BERRY) - 1] = {gBerryPic_Babiri, gBerryPalette_Babiri},
|
||||
[ITEM_TO_BERRY(ITEM_ROSELI_BERRY) - 1] = {gBerryPic_Roseli, gBerryPalette_Roseli},
|
||||
[ITEM_TO_BERRY(ITEM_LIECHI_BERRY) - 1] = {gBerryPic_Liechi, gBerryPalette_Liechi},
|
||||
[ITEM_TO_BERRY(ITEM_GANLON_BERRY) - 1] = {gBerryPic_Ganlon, gBerryPalette_Ganlon},
|
||||
[ITEM_TO_BERRY(ITEM_SALAC_BERRY) - 1] = {gBerryPic_Salac, gBerryPalette_Salac},
|
||||
[ITEM_TO_BERRY(ITEM_PETAYA_BERRY) - 1] = {gBerryPic_Petaya, gBerryPalette_Petaya},
|
||||
[ITEM_TO_BERRY(ITEM_APICOT_BERRY) - 1] = {gBerryPic_Apicot, gBerryPalette_Apicot},
|
||||
[ITEM_TO_BERRY(ITEM_LANSAT_BERRY) - 1] = {gBerryPic_Lansat, gBerryPalette_Lansat},
|
||||
[ITEM_TO_BERRY(ITEM_STARF_BERRY) - 1] = {gBerryPic_Starf, gBerryPalette_Starf},
|
||||
[ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) - 1] = {gBerryPic_Enigma, gBerryPalette_Enigma},
|
||||
[ITEM_TO_BERRY(ITEM_MICLE_BERRY) - 1] = {gBerryPic_Micle, gBerryPalette_Micle},
|
||||
[ITEM_TO_BERRY(ITEM_CUSTAP_BERRY) - 1] = {gBerryPic_Custap, gBerryPalette_Custap},
|
||||
[ITEM_TO_BERRY(ITEM_JABOCA_BERRY) - 1] = {gBerryPic_Jaboca, gBerryPalette_Jaboca},
|
||||
[ITEM_TO_BERRY(ITEM_ROWAP_BERRY) - 1] = {gBerryPic_Rowap, gBerryPalette_Rowap},
|
||||
[ITEM_TO_BERRY(ITEM_KEE_BERRY) - 1] = {gBerryPic_Kee, gBerryPalette_Kee},
|
||||
[ITEM_TO_BERRY(ITEM_MARANGA_BERRY)- 1] = {gBerryPic_Maranga, gBerryPalette_Maranga},
|
||||
[ITEM_TO_BERRY(ITEM_ENIGMA_BERRY_E_READER) - 1] = {gBerryPic_Enigma, gBerryPalette_Enigma},
|
||||
};
|
||||
|
||||
const struct CompressedSpriteSheet gBerryCheckCircleSpriteSheet =
|
||||
{
|
||||
gBerryCheckCircle_Gfx, 0x800, TAG_BERRY_CHECK_CIRCLE_GFX
|
||||
|
|
@ -639,11 +561,11 @@ static struct BerryDynamicGfx *LoadBerryGfx(u8 berryId)
|
|||
{
|
||||
struct SpritePalette pal;
|
||||
|
||||
pal.data = sBerryPicTable[berryId].pal;
|
||||
pal.data = gBerries[berryId].berryPal;
|
||||
pal.tag = TAG_BERRY_PIC_PAL + berryId;
|
||||
LoadSpritePalette(&pal);
|
||||
struct BerryDynamicGfx *gfxAlloced = Alloc(sizeof(struct BerryDynamicGfx));
|
||||
void *buffer = malloc_and_decompress(sBerryPicTable[berryId].tiles, NULL);
|
||||
void *buffer = malloc_and_decompress(gBerries[berryId].berryPic, NULL);
|
||||
ArrangeBerryGfx(buffer, gfxAlloced->gfx);
|
||||
Free(buffer);
|
||||
|
||||
|
|
|
|||
|
|
@ -2600,12 +2600,12 @@ bool8 ScrCmd_playslotmachine(struct ScriptContext *ctx)
|
|||
bool8 ScrCmd_setberrytree(struct ScriptContext *ctx)
|
||||
{
|
||||
u8 treeId = ScriptReadByte(ctx);
|
||||
u8 berry = ScriptReadByte(ctx);
|
||||
enum BerryId berryId = ScriptReadByte(ctx);
|
||||
u8 growthStage = ScriptReadByte(ctx);
|
||||
|
||||
Script_RequestEffects(SCREFF_V1 | SCREFF_SAVE);
|
||||
|
||||
PlantBerryTree(treeId, berry, growthStage, FALSE);
|
||||
PlantBerryTree(treeId, berryId, growthStage, FALSE);
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -108,7 +108,7 @@ bool8 DoesPartyHaveEnigmaBerry(void)
|
|||
{
|
||||
bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY_E_READER);
|
||||
if (hasItem == TRUE)
|
||||
GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER), gStringVar1);
|
||||
GetBerryNameByBerryType(BERRY_ID_ENGIMA_E_READER, gStringVar1);
|
||||
|
||||
return hasItem;
|
||||
}
|
||||
|
|
@ -681,3 +681,11 @@ void Script_SetKO(struct ScriptContext *ctx)
|
|||
SetMonData(&gPlayerParty[slot], MON_DATA_HP, &hp);
|
||||
}
|
||||
}
|
||||
|
||||
void Script_GiveRandomBerry(struct ScriptContext *ctx)
|
||||
{
|
||||
enum BerryId loBerry = ScriptReadByte(ctx);
|
||||
enum BerryId hiBerry = ScriptReadByte(ctx);
|
||||
|
||||
gSpecialVar_Result = BerryTypeToItemId(RandomUniform(RNG_RANDOM_BERRY, loBerry, hiBerry));
|
||||
}
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@
|
|||
#include "event_data.h"
|
||||
#include "wonder_news.h"
|
||||
#include "constants/items.h"
|
||||
#include "item.h"
|
||||
|
||||
// Every 4th reward for sending Wonder News to a link partner is a "big" reward.
|
||||
#define MAX_SENT_REWARD 4
|
||||
|
|
@ -30,11 +31,11 @@ void WonderNews_SetReward(u32 newsType)
|
|||
case WONDER_NEWS_RECV_FRIEND:
|
||||
case WONDER_NEWS_RECV_WIRELESS:
|
||||
// Random berry between ITEM_RAZZ_BERRY and ITEM_NOMEL_BERRY
|
||||
data->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_RAZZ_BERRY);
|
||||
data->berry = RandomUniform(RNG_RANDOM_BERRY, BERRY_ID_RAZZ, BERRY_ID_NOMEL);
|
||||
break;
|
||||
case WONDER_NEWS_SENT:
|
||||
// Random berry between ITEM_CHERI_BERRY and ITEM_IAPAPA_BERRY
|
||||
data->berry = (Random() % 15) + ITEM_TO_BERRY(ITEM_CHERI_BERRY);
|
||||
data->berry = RandomUniform(RNG_RANDOM_BERRY, BERRY_ID_CHERI, BERRY_ID_IAPAPA);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
@ -106,7 +107,7 @@ static u32 GetRewardItem(struct WonderNewsMetadata *data)
|
|||
{
|
||||
enum Item itemId;
|
||||
data->newsType = WONDER_NEWS_NONE;
|
||||
itemId = data->berry + FIRST_BERRY_INDEX - 1;
|
||||
itemId = BerryTypeToItemId(data->berry);
|
||||
data->berry = 0;
|
||||
IncrementRewardCounter(data);
|
||||
return itemId;
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
|
|
@ -111,7 +112,7 @@ SINGLE_BATTLE_TEST("Aerilate doesn't affect Natural Gift's type")
|
|||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_NATURAL_GIFT) == EFFECT_NATURAL_GIFT);
|
||||
ASSUME(GetMoveEffect(MOVE_SKILL_SWAP) == EFFECT_SKILL_SWAP);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_PERSIM_BERRY)].type == TYPE_GROUND);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_PERSIM_BERRY)].naturalGiftType == TYPE_GROUND);
|
||||
ASSUME(GetSpeciesType(SPECIES_SALAMENCE_MEGA, 0) == TYPE_FLYING || GetSpeciesType(SPECIES_SALAMENCE_MEGA, 1) == TYPE_FLYING);
|
||||
PLAYER(SPECIES_WOBBUFFET) { Item(ITEM_PERSIM_BERRY); }
|
||||
OPPONENT(SPECIES_SALAMENCE) { Item(ITEM_SALAMENCITE); }
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
SINGLE_BATTLE_TEST("Gale Wings only grants priority at full HP (Gen 7+)")
|
||||
{
|
||||
|
|
@ -66,7 +67,7 @@ SINGLE_BATTLE_TEST("Gale Wings doesn't increase priority of Flying-type Natural
|
|||
ASSUME(GetMoveEffect(MOVE_TERA_BLAST) == EFFECT_TERA_BLAST);
|
||||
ASSUME(gItemsInfo[ITEM_SKY_PLATE].holdEffect == HOLD_EFFECT_PLATE);
|
||||
ASSUME(gItemsInfo[ITEM_SKY_PLATE].secondaryId == TYPE_FLYING);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_LUM_BERRY)].type == TYPE_FLYING);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_LUM_BERRY)].naturalGiftType == TYPE_FLYING);
|
||||
OPPONENT(SPECIES_TALONFLAME) { Ability(ABILITY_GALE_WINGS); Speed(1); Item(heldItem); HPIV(31); AttackIV(3); DefenseIV(31); SpAttackIV(30); SpDefenseIV(30); SpeedIV(30); TeraType(TYPE_FLYING); }
|
||||
PLAYER(SPECIES_WOBBUFFET) { Speed(100); }
|
||||
} WHEN {
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
|
|
@ -103,7 +104,7 @@ SINGLE_BATTLE_TEST("Galvanize doesn't affect Natural Gift's type")
|
|||
PARAMETRIZE { ability = ABILITY_GALVANIZE; }
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_NATURAL_GIFT) == EFFECT_NATURAL_GIFT);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_ORAN_BERRY)].type == TYPE_POISON);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_ORAN_BERRY)].naturalGiftType == TYPE_POISON);
|
||||
ASSUME(GetSpeciesType(SPECIES_BELDUM, 0) == TYPE_STEEL);
|
||||
PLAYER(SPECIES_GEODUDE_ALOLA) { Ability(ability); Item(ITEM_ORAN_BERRY); }
|
||||
OPPONENT(SPECIES_BELDUM);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
|
|
@ -218,7 +219,7 @@ SINGLE_BATTLE_TEST("Normalize doesn't affect Natural Gift's type")
|
|||
PARAMETRIZE { ability = ABILITY_NORMALIZE; }
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_NATURAL_GIFT) == EFFECT_NATURAL_GIFT);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_ORAN_BERRY)].type == TYPE_POISON);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_ORAN_BERRY)].naturalGiftType == TYPE_POISON);
|
||||
ASSUME(GetSpeciesType(SPECIES_BELDUM, 0) == TYPE_STEEL);
|
||||
PLAYER(SPECIES_SKITTY) { Ability(ability); Item(ITEM_ORAN_BERRY); }
|
||||
OPPONENT(SPECIES_BELDUM);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
|
|
@ -82,7 +83,7 @@ SINGLE_BATTLE_TEST("Pixilate doesn't affect Natural Gift's type")
|
|||
PARAMETRIZE { ability = ABILITY_PIXILATE; }
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_NATURAL_GIFT) == EFFECT_NATURAL_GIFT);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_ORAN_BERRY)].type == TYPE_POISON);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_ORAN_BERRY)].naturalGiftType == TYPE_POISON);
|
||||
ASSUME(GetSpeciesType(SPECIES_BELDUM, 0) == TYPE_STEEL);
|
||||
PLAYER(SPECIES_SYLVEON) { Ability(ability); Item(ITEM_ORAN_BERRY); }
|
||||
OPPONENT(SPECIES_BELDUM);
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
#include "global.h"
|
||||
#include "test/battle.h"
|
||||
#include "berry.h"
|
||||
|
||||
ASSUMPTIONS
|
||||
{
|
||||
|
|
@ -81,7 +82,7 @@ SINGLE_BATTLE_TEST("Refrigerate doesn't affect Natural Gift's type")
|
|||
PARAMETRIZE { ability = ABILITY_REFRIGERATE; }
|
||||
GIVEN {
|
||||
ASSUME(GetMoveEffect(MOVE_NATURAL_GIFT) == EFFECT_NATURAL_GIFT);
|
||||
ASSUME(gNaturalGiftTable[ITEM_TO_BERRY(ITEM_ORAN_BERRY)].type == TYPE_POISON);
|
||||
ASSUME(gBerries[ItemIdToBerryType(ITEM_ORAN_BERRY)].naturalGiftType == TYPE_POISON);
|
||||
ASSUME(GetSpeciesType(SPECIES_BELDUM, 0) == TYPE_STEEL);
|
||||
PLAYER(SPECIES_AMAURA) { Ability(ability); Item(ITEM_ORAN_BERRY); }
|
||||
OPPONENT(SPECIES_BELDUM);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user