Merge branch 'item_expansion' of github.com:rh-hideout/pokeemerald-expansion into master_sync

This commit is contained in:
ultima-soul 2021-12-17 23:51:29 -08:00
commit b0b8b9bf46
76 changed files with 15451 additions and 11868 deletions

View File

@ -12,37 +12,6 @@
.section script_data, "aw", %progbits
.align 2
gBattlescriptsForBallThrow::
.4byte BattleScript_BallThrow @ ITEM_NONE
.4byte BattleScript_BallThrow @ ITEM_MASTER_BALL
.4byte BattleScript_BallThrow @ ITEM_ULTRA_BALL
.4byte BattleScript_BallThrow @ ITEM_GREAT_BALL
.4byte BattleScript_BallThrow @ ITEM_POKE_BALL
.4byte BattleScript_SafariBallThrow @ ITEM_SAFARI_BALL
.4byte BattleScript_BallThrow @ ITEM_NET_BALL
.4byte BattleScript_BallThrow @ ITEM_DIVE_BALL
.4byte BattleScript_BallThrow @ ITEM_NEST_BALL
.4byte BattleScript_BallThrow @ ITEM_REPEAT_BALL
.4byte BattleScript_BallThrow @ ITEM_TIMER_BALL
.4byte BattleScript_BallThrow @ ITEM_LUXURY_BALL
.4byte BattleScript_BallThrow @ ITEM_DUSK_BALL
.4byte BattleScript_BallThrow @ ITEM_HEAL_BALL
.4byte BattleScript_BallThrow @ ITEM_QUICK_BALL
.4byte BattleScript_BallThrow @ ITEM_CHERISH_BALL
.4byte BattleScript_BallThrow @ ITEM_FAST_BALL
.4byte BattleScript_BallThrow @ ITEM_LEVEL_BALL
.4byte BattleScript_BallThrow @ ITEM_LURE_BALL
.4byte BattleScript_BallThrow @ ITEM_HEAVY_BALL
.4byte BattleScript_BallThrow @ ITEM_LOVE_BALL
.4byte BattleScript_BallThrow @ ITEM_FRIEND_BALL
.4byte BattleScript_BallThrow @ ITEM_MOON_BALL
.4byte BattleScript_BallThrow @ ITEM_SPORT_BALL
.4byte BattleScript_BallThrow @ ITEM_PARK_BALL
.4byte BattleScript_BallThrow @ ITEM_DREAM_BALL
.4byte BattleScript_BallThrow @ ITEM_BEAST_BALL
.4byte BattleScript_BallThrow @ ITEM_PREMIER_BALL
.align 2
gBattlescriptsForUsingItem::
.4byte BattleScript_PlayerUsesItem
@ -79,7 +48,6 @@ BattleScript_SafariBallThrow::
BattleScript_SuccessBallThrow::
setbyte sMON_CAUGHT, TRUE
jumpifhalfword CMP_EQUAL, gLastUsedItem, ITEM_SAFARI_BALL, BattleScript_PrintCaughtMonInfo
incrementgamestat GAME_STAT_POKEMON_CAPTURES
BattleScript_PrintCaughtMonInfo::
printstring STRINGID_GOTCHAPKMNCAUGHT

View File

@ -53,11 +53,11 @@ AbandonedShip_HiddenFloorCorridors_EventScript_LockRoom6::
AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door::
lockall
goto_if_set FLAG_USED_ROOM_1_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_1_KEY
checkitem ITEM_KEY_TO_ROOM_1
goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm1IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
removeitem ITEM_ROOM_1_KEY
removeitem ITEM_KEY_TO_ROOM_1
setflag FLAG_USED_ROOM_1_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom1
special DrawWholeMapView
@ -67,11 +67,11 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room1Door::
AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door::
lockall
goto_if_set FLAG_USED_ROOM_2_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_2_KEY
checkitem ITEM_KEY_TO_ROOM_2
goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm2IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
removeitem ITEM_ROOM_2_KEY
removeitem ITEM_KEY_TO_ROOM_2
setflag FLAG_USED_ROOM_2_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom2
special DrawWholeMapView
@ -81,11 +81,11 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room2Door::
AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door::
lockall
goto_if_set FLAG_USED_ROOM_4_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_4_KEY
checkitem ITEM_KEY_TO_ROOM_4
goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm4IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
removeitem ITEM_ROOM_4_KEY
removeitem ITEM_KEY_TO_ROOM_4
setflag FLAG_USED_ROOM_4_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom4
special DrawWholeMapView
@ -95,11 +95,11 @@ AbandonedShip_HiddenFloorCorridors_EventScript_Room4Door::
AbandonedShip_HiddenFloorCorridors_EventScript_Room6Door::
lockall
goto_if_set FLAG_USED_ROOM_6_KEY, AbandonedShip_HiddenFloorCorridors_EventScript_TheDoorIsOpen
checkitem ITEM_ROOM_6_KEY
checkitem ITEM_KEY_TO_ROOM_6
goto_if_eq VAR_RESULT, FALSE, AbandonedShip_HiddenFloorCorridors_EventScript_Rm6IsLocked
msgbox AbandonedShip_HiddenFloorCorridors_Text_InsertedKey, MSGBOX_DEFAULT
playse SE_PIN
removeitem ITEM_ROOM_6_KEY
removeitem ITEM_KEY_TO_ROOM_6
setflag FLAG_USED_ROOM_6_KEY
call AbandonedShip_HiddenFloorCorridors_EventScript_UnlockRoom6
special DrawWholeMapView

View File

@ -139,7 +139,7 @@
"x": 42,
"y": 10,
"elevation": 3,
"item": "ITEM_ROOM_1_KEY",
"item": "ITEM_KEY_TO_ROOM_1",
"flag": "FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_1_KEY"
},
{
@ -147,7 +147,7 @@
"x": 20,
"y": 5,
"elevation": 3,
"item": "ITEM_ROOM_2_KEY",
"item": "ITEM_KEY_TO_ROOM_2",
"flag": "FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_2_KEY"
},
{
@ -155,7 +155,7 @@
"x": 1,
"y": 12,
"elevation": 3,
"item": "ITEM_ROOM_4_KEY",
"item": "ITEM_KEY_TO_ROOM_4",
"flag": "FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_4_KEY"
},
{
@ -163,7 +163,7 @@
"x": 1,
"y": 2,
"elevation": 0,
"item": "ITEM_ROOM_6_KEY",
"item": "ITEM_KEY_TO_ROOM_6",
"flag": "FLAG_HIDDEN_ITEM_ABANDONED_SHIP_RM_6_KEY"
},
{

View File

@ -351,9 +351,9 @@ PetalburgCity_Gym_EventScript_NormanRematch::
PetalburgCity_Gym_EventScript_ShouldGiveEnigmaBerry::
specialvar VAR_RESULT, IsEnigmaBerryValid
goto_if_eq VAR_RESULT, FALSE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry
checkitem ITEM_ENIGMA_BERRY
checkitem ITEM_ENIGMA_BERRY_E_READER
goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry
checkpcitem ITEM_ENIGMA_BERRY
checkpcitem ITEM_ENIGMA_BERRY_E_READER
goto_if_eq VAR_RESULT, TRUE, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry
goto_if_eq VAR_ENIGMA_BERRY_AVAILABLE, 0, PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry
msgbox PetalburgCity_Gym_Text_GiveEnigmaBerry, MSGBOX_DEFAULT
@ -365,7 +365,7 @@ PetalburgCity_Gym_EventScript_DontGiveEnigmaBerry::
return
PetalburgCity_Gym_EventScript_GiveEnigmaBerry::
giveitem ITEM_ENIGMA_BERRY
giveitem ITEM_ENIGMA_BERRY_E_READER
goto_if_eq VAR_RESULT, FALSE, Common_EventScript_ShowBagIsFull
setvar VAR_ENIGMA_BERRY_AVAILABLE, 0
release

View File

@ -463,7 +463,7 @@ Route110_EventScript_BrendanDefeated::
end
Route110_EventScript_GiveItemfinder::
giveitem ITEM_ITEMFINDER
giveitem ITEM_DOWSING_MACHINE
return
Route110_EventScript_RivalExit::

View File

@ -308,7 +308,7 @@ RusturfTunnel_EventScript_Grunt::
msgbox RusturfTunnel_Text_GruntIntro, MSGBOX_DEFAULT
trainerbattle_no_intro TRAINER_GRUNT_RUSTURF_TUNNEL, RusturfTunnel_Text_GruntDefeat
msgbox RusturfTunnel_Text_GruntTakePackage, MSGBOX_DEFAULT
giveitem ITEM_DEVON_GOODS
giveitem ITEM_DEVON_PARTS
closemessage
applymovement OBJ_EVENT_ID_PLAYER, RusturfTunnel_Movement_PushPlayerAsideForGrunt
applymovement LOCALID_GRUNT, RusturfTunnel_Movement_GruntEscape

View File

@ -71,7 +71,7 @@ SlateportCity_OceanicMuseum_2F_EventScript_CaptStern::
applymovement OBJ_EVENT_ID_PLAYER, Common_Movement_WalkInPlaceFasterRight
waitmovement 0
msgbox SlateportCity_OceanicMuseum_2F_Text_SternThankYouForSavingUs, MSGBOX_DEFAULT
setvar VAR_0x8004, ITEM_DEVON_GOODS
setvar VAR_0x8004, ITEM_DEVON_PARTS
call Common_EventScript_PlayerHandedOverTheItem
msgbox SlateportCity_OceanicMuseum_2F_Text_SternIveGotToGo, MSGBOX_DEFAULT
closemessage

BIN
graphics/berries/custap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 527 B

BIN
graphics/berries/jaboca.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 512 B

BIN
graphics/berries/kee.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 589 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 568 B

BIN
graphics/berries/micle.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 383 B

BIN
graphics/berries/rowap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 565 B

View File

@ -1,19 +1,19 @@
JASC-PAL
0100
16
180 180 180
49 49 49
106 115 230
156 156 222
74 82 197
57 65 148
205 205 255
255 255 255
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 126 0
48 48 48
136 160 248
104 128 248
72 104 240
240 240 248
168 184 248
128 208 248
48 72 192
248 248 248
224 248 248
232 248 248
40 40 168
184 248 248
80 152 248
0 0 0

View File

@ -1,19 +1,19 @@
JASC-PAL
0100
16
180 180 180
49 49 49
230 115 106
222 156 156
197 82 74
148 65 57
255 205 205
255 255 255
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
255 126 0
48 48 48
248 248 248
248 88 112
248 128 128
248 40 56
248 216 216
216 32 56
176 32 56
248 136 72
248 224 96
144 24 64
248 200 96
0 0 0
0 0 0
0 0 0

Binary file not shown.

After

Width:  |  Height:  |  Size: 299 B

View File

Before

Width:  |  Height:  |  Size: 255 B

After

Width:  |  Height:  |  Size: 255 B

View File

Before

Width:  |  Height:  |  Size: 288 B

After

Width:  |  Height:  |  Size: 288 B

View File

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 250 B

View File

Before

Width:  |  Height:  |  Size: 250 B

After

Width:  |  Height:  |  Size: 250 B

View File

Before

Width:  |  Height:  |  Size: 251 B

After

Width:  |  Height:  |  Size: 251 B

View File

Before

Width:  |  Height:  |  Size: 254 B

After

Width:  |  Height:  |  Size: 254 B

View File

Before

Width:  |  Height:  |  Size: 232 B

After

Width:  |  Height:  |  Size: 232 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 264 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 309 B

View File

Before

Width:  |  Height:  |  Size: 276 B

After

Width:  |  Height:  |  Size: 276 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 669 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 693 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 627 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 665 B

View File

@ -338,7 +338,6 @@ struct BattleResults
u8 numHealingItemsUsed; // 0x3
u8 numRevivesUsed; // 0x4
u8 playerMonWasDamaged:1; // 0x5
u8 usedMasterBall:1; // 0x5
u8 caughtMonBall:4; // 0x5
u8 shinyWildMon:1; // 0x5
u16 playerMon1Species; // 0x6
@ -353,7 +352,7 @@ struct BattleResults
u16 caughtMonSpecies; // 0x28
u8 caughtMonNick[POKEMON_NAME_LENGTH + 1]; // 0x2A
u8 filler35; // 0x35
u8 catchAttempts[POKEBALL_COUNT - 1]; // 0x36 Doesn't include Master ball
u8 catchAttempts[POKEBALL_COUNT]; // 0x36
};
struct BattleTv_Side

View File

@ -167,7 +167,7 @@
#define BATTLE_FRONTIER_ITEM_APICOT_BERRY 50
#define BATTLE_FRONTIER_ITEM_STARF_BERRY 51
#define BATTLE_FRONTIER_ITEM_LIECHI_BERRY 52
#define BATTLE_FRONTIER_ITEM_STICK 53
#define BATTLE_FRONTIER_ITEM_LEEK 53
#define BATTLE_FRONTIER_ITEM_LAX_INCENSE 54
#define BATTLE_FRONTIER_ITEM_AGUAV_BERRY 55
#define BATTLE_FRONTIER_ITEM_FIGY_BERRY 56

View File

@ -16,18 +16,8 @@
#define I_SHINY_CHARM_REROLLS 3 // Amount of re-rolls if the player has the Shiny Charm. Set to 0 to disable Shiny Charm's effects.
#define I_KEY_FOSSILS GEN_7 // In Gen4+, all Gen 3 fossils became regular items.
#define I_KEY_ESCAPE_ROPE GEN_7 // In Gen8, Escape Rope became a Key Item. Keep in mind, this will make it free to buy in marts.
#define I_LEGACY_HEALING_ITEMS GEN_7 // In Gen7+, certain healing items recover less HP than they used to.
// Ball config
#define I_LURE_BALL_MODIFIER GEN_7 // In Gen7+, Lure Ball's catch multiplier is x5 instead of x3.
#define I_NET_BALL_MODIFIER GEN_7 // In Gen7+, Net Ball's catch multiplier is x5 instead of x3.
#define I_REPEAT_BALL_MODIFIER GEN_7 // In Gen7+, Repeat Ball's catch multiplier is x3.5 instead of x3.
#define I_DUSK_BALL_MODIFIER GEN_7 // In Gen7+, Dusk Ball's catch multiplier is x3 instead of x3.5.
#define I_QUICK_BALL_MODIFIER GEN_7 // In Gen5+, Quick Ball's catch multiplier is x5 instead of x4.
#define I_DREAM_BALL_MODIFIER GEN_8 // In Gen8+, Dream Ball's catch multiplier is x4 when the target is asleep.
#define I_TIMER_BALL_MODIFIER GEN_7 // In Gen5+, Timer Ball's effectiveness increases by x0.3 per turn instead of x0.1
#define I_DIVE_BALL_MODIFIER GEN_7 // In Gen4+, Dive Ball's effectiveness increases by when Surfing or Fishing.
#define I_HEAVY_BALL_MODIFIER GEN_7 // In Gen7+, Heavy Ball's ranges change. See Cmd_handleballthrow.
#define I_NEST_BALL_MODIFIER GEN_7 // Nest Ball's formula varies depending on the Gen. See Cmd_handleballthrow.
#define I_HEALTH_RECOVERY GEN_7 // In Gen7+, certain healing items recover a different amount of HP than they used to.
#define I_SITRUS_BERRY_HEAL GEN_7 // In Gen4+, Sitrus Berry was changed from healing 30 HP to healing 25% of Max HP.
#define I_VITAMIN_EV_CAP GEN_8 // In Gen8, the Vitamins no longer have a cap of 100 EV per stat.
#endif // GUARD_CONSTANTS_ITEM_CONFIG_H

View File

@ -67,9 +67,10 @@
#define ITEM_EFFECT_ARG_START 6
// Special HP recovery amounts for ITEM4_HEAL_HP
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
#define ITEM6_HEAL_HP_FULL ((u8) -1)
#define ITEM6_HEAL_HP_HALF ((u8) -2)
#define ITEM6_HEAL_HP_LVL_UP ((u8) -3)
#define ITEM6_HEAL_HP_QUARTER ((u8) -4)
// Special PP recovery amounts for ITEM4_HEAL_PP
#define ITEM6_HEAL_PP_FULL 0x7F

File diff suppressed because it is too large Load Diff

View File

@ -280,7 +280,11 @@
#define USE_RANDOM_IVS (MAX_PER_STAT_IVS + 1)
#define MAX_PER_STAT_EVS 255
#define MAX_TOTAL_EVS 510
#if I_VITAMIN_EV_CAP >= GEN_8
#define EV_ITEM_RAISE_LIMIT MAX_PER_STAT_EVS
#else
#define EV_ITEM_RAISE_LIMIT 100
#endif
// Battle move flags
#define FLAG_MAKES_CONTACT (1 << 0)

File diff suppressed because it is too large Load Diff

View File

@ -5,31 +5,31 @@ enum
{
BALL_POKE,
BALL_GREAT,
BALL_SAFARI,
BALL_ULTRA,
BALL_MASTER,
BALL_NET,
BALL_DIVE,
BALL_NEST,
BALL_REPEAT,
BALL_TIMER,
BALL_LUXURY,
BALL_PREMIER,
BALL_HEAL,
BALL_NET,
BALL_NEST,
BALL_DIVE,
BALL_DUSK,
BALL_TIMER,
BALL_QUICK,
BALL_REPEAT,
BALL_LUXURY,
BALL_LEVEL,
BALL_LURE,
BALL_MOON,
BALL_FRIEND,
BALL_LOVE,
BALL_HEAVY,
BALL_FAST,
BALL_SPORT,
BALL_DUSK,
BALL_QUICK,
BALL_HEAL,
BALL_CHERISH,
BALL_PARK,
BALL_HEAVY,
BALL_DREAM,
BALL_SAFARI,
BALL_SPORT,
BALL_PARK,
BALL_BEAST,
BALL_CHERISH,
POKEBALL_COUNT
};

View File

@ -831,7 +831,7 @@ static bool8 ShouldUseItem(void)
if (gItemEffectTable[item - ITEM_POTION] == NULL)
continue;
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
itemEffects = gSaveBlock1Ptr->enigmaBerry.itemEffect;
else
itemEffects = gItemEffectTable[item - ITEM_POTION];

View File

@ -130,31 +130,31 @@ static const struct CaptureStar sCaptureStars[] =
#define TAG_PARTICLES_POKEBALL 65030
#define TAG_PARTICLES_GREATBALL 65031
#define TAG_PARTICLES_SAFARIBALL 65032
#define TAG_PARTICLES_ULTRABALL 65033
#define TAG_PARTICLES_MASTERBALL 65034
#define TAG_PARTICLES_NETBALL 65035
#define TAG_PARTICLES_DIVEBALL 65036
#define TAG_PARTICLES_ULTRABALL 65032
#define TAG_PARTICLES_MASTERBALL 65033
#define TAG_PARTICLES_PREMIERBALL 65034
#define TAG_PARTICLES_HEALBALL 65035
#define TAG_PARTICLES_NETBALL 65036
#define TAG_PARTICLES_NESTBALL 65037
#define TAG_PARTICLES_REPEATBALL 65038
#define TAG_PARTICLES_TIMERBALL 65039
#define TAG_PARTICLES_LUXURYBALL 65040
#define TAG_PARTICLES_PREMIERBALL 65041
#define TAG_PARTICLES_LEVELBALL 65042
#define TAG_PARTICLES_LUREBALL 65043
#define TAG_PARTICLES_MOONBALL 65044
#define TAG_PARTICLES_FRIENDBALL 65045
#define TAG_PARTICLES_LOVEBALL 65046
#define TAG_PARTICLES_HEAVYBALL 65047
#define TAG_PARTICLES_FASTBALL 65048
#define TAG_PARTICLES_SPORTBALL 65049
#define TAG_PARTICLES_DUSKBALL 65050
#define TAG_PARTICLES_QUICKBALL 65051
#define TAG_PARTICLES_HEALBALL 65052
#define TAG_PARTICLES_CHERISHBALL 65053
#define TAG_PARTICLES_DIVEBALL 65038
#define TAG_PARTICLES_DUSKBALL 65039
#define TAG_PARTICLES_TIMERBALL 65040
#define TAG_PARTICLES_QUICKBALL 65041
#define TAG_PARTICLES_REPEATBALL 65042
#define TAG_PARTICLES_LUXURYBALL 65043
#define TAG_PARTICLES_LEVELBALL 65044
#define TAG_PARTICLES_LUREBALL 65045
#define TAG_PARTICLES_MOONBALL 65046
#define TAG_PARTICLES_FRIENDBALL 65047
#define TAG_PARTICLES_LOVEBALL 65048
#define TAG_PARTICLES_FASTBALL 65049
#define TAG_PARTICLES_HEAVYBALL 65050
#define TAG_PARTICLES_DREAMBALL 65051
#define TAG_PARTICLES_SAFARIBALL 65052
#define TAG_PARTICLES_SPORTBALL 65053
#define TAG_PARTICLES_PARKBALL 65054
#define TAG_PARTICLES_DREAMBALL 65065
#define TAG_PARTICLES_BEASTBALL 65056
#define TAG_PARTICLES_BEASTBALL 65065
#define TAG_PARTICLES_CHERISHBALL 65056
static const u32 sNewParticlesGfx[] = INCBIN_U32("graphics/interface/ball/particles2.4bpp.lz");
static const u32 sNewParticlesPal[] = INCBIN_U32("graphics/interface/ball/particles2.gbapal.lz");
@ -163,62 +163,62 @@ static const struct CompressedSpriteSheet sBallParticleSpriteSheets[] =
{
[BALL_POKE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_POKEBALL},
[BALL_GREAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_GREATBALL},
[BALL_SAFARI] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL},
[BALL_ULTRA] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_ULTRABALL},
[BALL_MASTER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_MASTERBALL},
[BALL_NET] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL},
[BALL_DIVE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL},
[BALL_NEST] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL},
[BALL_REPEAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL},
[BALL_TIMER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL},
[BALL_LUXURY] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL},
[BALL_PREMIER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PREMIERBALL},
[BALL_HEAL] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_HEALBALL},
[BALL_NET] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NETBALL},
[BALL_NEST] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_NESTBALL},
[BALL_DIVE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DIVEBALL},
[BALL_DUSK] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_DUSKBALL},
[BALL_TIMER] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_TIMERBALL},
[BALL_QUICK] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_QUICKBALL},
[BALL_REPEAT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_REPEATBALL},
[BALL_LUXURY] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUXURYBALL},
[BALL_LEVEL] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_LEVELBALL},
[BALL_LURE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LUREBALL},
[BALL_MOON] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_MOONBALL},
[BALL_FRIEND] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_FRIENDBALL},
[BALL_LOVE] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_LOVEBALL},
[BALL_HEAVY] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_HEAVYBALL},
[BALL_FAST] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_FASTBALL},
[BALL_SPORT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SPORTBALL},
[BALL_DUSK] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_DUSKBALL},
[BALL_QUICK] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_QUICKBALL},
[BALL_HEAL] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_HEALBALL},
[BALL_CHERISH] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_CHERISHBALL},
[BALL_PARK] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PARKBALL},
[BALL_HEAVY] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_HEAVYBALL},
[BALL_DREAM] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_DREAMBALL},
[BALL_SAFARI] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SAFARIBALL},
[BALL_SPORT] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_SPORTBALL},
[BALL_PARK] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_PARKBALL},
[BALL_BEAST] = {gBattleAnimSpriteGfx_Particles, 0x100, TAG_PARTICLES_BEASTBALL},
[BALL_CHERISH] = {sNewParticlesGfx, 0x100, TAG_PARTICLES_CHERISHBALL},
};
static const struct CompressedSpritePalette sBallParticlePalettes[] =
{
[BALL_POKE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_POKEBALL},
[BALL_GREAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_GREATBALL},
[BALL_SAFARI] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL},
[BALL_ULTRA] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_ULTRABALL},
[BALL_MASTER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_MASTERBALL},
[BALL_NET] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL},
[BALL_DIVE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL},
[BALL_NEST] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL},
[BALL_REPEAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL},
[BALL_TIMER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL},
[BALL_LUXURY] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL},
[BALL_PREMIER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PREMIERBALL},
[BALL_HEAL] = {sNewParticlesPal, TAG_PARTICLES_HEALBALL},
[BALL_NET] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NETBALL},
[BALL_NEST] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_NESTBALL},
[BALL_DIVE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DIVEBALL},
[BALL_DUSK] = {sNewParticlesPal, TAG_PARTICLES_DUSKBALL},
[BALL_TIMER] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_TIMERBALL},
[BALL_QUICK] = {sNewParticlesPal, TAG_PARTICLES_QUICKBALL},
[BALL_REPEAT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_REPEATBALL},
[BALL_LUXURY] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUXURYBALL},
[BALL_LEVEL] = {sNewParticlesPal, TAG_PARTICLES_LEVELBALL},
[BALL_LURE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LUREBALL},
[BALL_MOON] = {sNewParticlesPal, TAG_PARTICLES_MOONBALL},
[BALL_FRIEND] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_FRIENDBALL},
[BALL_LOVE] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_LOVEBALL},
[BALL_HEAVY] = {sNewParticlesPal, TAG_PARTICLES_HEAVYBALL},
[BALL_FAST] = {sNewParticlesPal, TAG_PARTICLES_FASTBALL},
[BALL_SPORT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SPORTBALL},
[BALL_DUSK] = {sNewParticlesPal, TAG_PARTICLES_DUSKBALL},
[BALL_QUICK] = {sNewParticlesPal, TAG_PARTICLES_QUICKBALL},
[BALL_HEAL] = {sNewParticlesPal, TAG_PARTICLES_HEALBALL},
[BALL_CHERISH] = {sNewParticlesPal, TAG_PARTICLES_CHERISHBALL},
[BALL_PARK] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PARKBALL},
[BALL_HEAVY] = {sNewParticlesPal, TAG_PARTICLES_HEAVYBALL},
[BALL_DREAM] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_DREAMBALL},
[BALL_SAFARI] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SAFARIBALL},
[BALL_SPORT] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_SPORTBALL},
[BALL_PARK] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_PARKBALL},
[BALL_BEAST] = {gBattleAnimSpritePal_CircleImpact, TAG_PARTICLES_BEASTBALL},
[BALL_CHERISH] = {sNewParticlesPal, TAG_PARTICLES_CHERISHBALL},
};
static const union AnimCmd sAnim_RegularBall[] =
@ -277,65 +277,63 @@ static const u8 sBallParticleAnimNums[POKEBALL_COUNT] =
{
[BALL_POKE] = 0,
[BALL_GREAT] = 0,
[BALL_SAFARI] = 0,
[BALL_ULTRA] = 5,
[BALL_MASTER] = 1,
[BALL_NET] = 2,
[BALL_DIVE] = 2,
[BALL_NEST] = 3,
[BALL_REPEAT] = 5,
[BALL_TIMER] = 5,
[BALL_LUXURY] = 4,
[BALL_PREMIER] = 4,
[BALL_LEVEL] = 5,
[BALL_LURE] = 2,
[BALL_MOON] = 4,
[BALL_FRIEND] = 3,
[BALL_LOVE] = 3,
[BALL_HEAVY] = 0,
[BALL_FAST] = 4,
[BALL_SPORT] = 0,
[BALL_DUSK] = 2,
[BALL_QUICK] = 4,
[BALL_HEAL] = 0,
[BALL_HEAL] = 0,
[BALL_NET] = 2,
[BALL_NEST] = 3,
[BALL_DIVE] = 2,
[BALL_DUSK] = 2,
[BALL_TIMER] = 5,
[BALL_QUICK] = 4,
[BALL_REPEAT] = 5,
[BALL_LUXURY] = 4,
[BALL_LEVEL] = 5,
[BALL_LURE] = 2,
[BALL_MOON] = 4,
[BALL_FRIEND] = 3,
[BALL_LOVE] = 3,
[BALL_FAST] = 4,
[BALL_HEAVY] = 0,
[BALL_DREAM] = 5,
[BALL_SAFARI] = 0,
[BALL_SPORT] = 0,
[BALL_PARK] = 5,
[BALL_BEAST] = 5,
[BALL_CHERISH] = 0,
[BALL_PARK] = 5,
[BALL_DREAM] = 5,
[BALL_BEAST] = 5,
};
static const TaskFunc sBallParticleAnimationFuncs[] =
static const TaskFunc sBallParticleAnimationFuncs[POKEBALL_COUNT] =
{
[BALL_POKE] = PokeBallOpenParticleAnimation,
[BALL_GREAT] = GreatBallOpenParticleAnimation,
[BALL_SAFARI] = SafariBallOpenParticleAnimation,
[BALL_ULTRA] = UltraBallOpenParticleAnimation,
[BALL_MASTER] = MasterBallOpenParticleAnimation,
[BALL_NET] = SafariBallOpenParticleAnimation,
[BALL_DIVE] = DiveBallOpenParticleAnimation,
[BALL_NEST] = UltraBallOpenParticleAnimation,
[BALL_REPEAT] = RepeatBallOpenParticleAnimation,
[BALL_TIMER] = TimerBallOpenParticleAnimation,
[BALL_LUXURY] = GreatBallOpenParticleAnimation,
[BALL_PREMIER] = PremierBallOpenParticleAnimation,
// Todo: assign and possibly create different particles
[BALL_LEVEL] = SafariBallOpenParticleAnimation,
[BALL_LURE] = GreatBallOpenParticleAnimation,
[BALL_MOON] = UltraBallOpenParticleAnimation,
[BALL_FRIEND] = UltraBallOpenParticleAnimation,
[BALL_LOVE] = GreatBallOpenParticleAnimation,
[BALL_HEAVY] = GreatBallOpenParticleAnimation,
[BALL_FAST] = GreatBallOpenParticleAnimation,
[BALL_SPORT] = UltraBallOpenParticleAnimation,
[BALL_DUSK] = UltraBallOpenParticleAnimation,
[BALL_QUICK] = UltraBallOpenParticleAnimation,
[BALL_HEAL] = PokeBallOpenParticleAnimation,
[BALL_POKE] = PokeBallOpenParticleAnimation,
[BALL_GREAT] = GreatBallOpenParticleAnimation,
[BALL_ULTRA] = UltraBallOpenParticleAnimation,
[BALL_MASTER] = MasterBallOpenParticleAnimation,
[BALL_PREMIER] = PremierBallOpenParticleAnimation,
[BALL_HEAL] = PokeBallOpenParticleAnimation,
[BALL_NET] = SafariBallOpenParticleAnimation,
[BALL_NEST] = UltraBallOpenParticleAnimation,
[BALL_DIVE] = DiveBallOpenParticleAnimation,
[BALL_DUSK] = UltraBallOpenParticleAnimation,
[BALL_TIMER] = TimerBallOpenParticleAnimation,
[BALL_QUICK] = UltraBallOpenParticleAnimation,
[BALL_REPEAT] = RepeatBallOpenParticleAnimation,
[BALL_LUXURY] = GreatBallOpenParticleAnimation,
[BALL_LEVEL] = SafariBallOpenParticleAnimation,
[BALL_LURE] = GreatBallOpenParticleAnimation,
[BALL_MOON] = UltraBallOpenParticleAnimation,
[BALL_FRIEND] = UltraBallOpenParticleAnimation,
[BALL_LOVE] = GreatBallOpenParticleAnimation,
[BALL_FAST] = GreatBallOpenParticleAnimation,
[BALL_HEAVY] = GreatBallOpenParticleAnimation,
[BALL_DREAM] = UltraBallOpenParticleAnimation,
[BALL_SAFARI] = SafariBallOpenParticleAnimation,
[BALL_SPORT] = UltraBallOpenParticleAnimation,
[BALL_PARK] = UltraBallOpenParticleAnimation,
[BALL_BEAST] = UltraBallOpenParticleAnimation,
[BALL_CHERISH] = MasterBallOpenParticleAnimation,
[BALL_PARK] = UltraBallOpenParticleAnimation,
[BALL_DREAM] = UltraBallOpenParticleAnimation,
[BALL_BEAST] = UltraBallOpenParticleAnimation
};
static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT] =
@ -358,15 +356,6 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_SAFARI] = {
.tileTag = TAG_PARTICLES_SAFARIBALL,
.paletteTag = TAG_PARTICLES_SAFARIBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_ULTRA] = {
.tileTag = TAG_PARTICLES_ULTRABALL,
.paletteTag = TAG_PARTICLES_ULTRABALL,
@ -385,18 +374,27 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_NET] = {
.tileTag = TAG_PARTICLES_NETBALL,
.paletteTag = TAG_PARTICLES_NETBALL,
[BALL_PREMIER] = {
.tileTag = TAG_PARTICLES_PREMIERBALL,
.paletteTag = TAG_PARTICLES_PREMIERBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_DIVE] = {
.tileTag = TAG_PARTICLES_DIVEBALL,
.paletteTag = TAG_PARTICLES_DIVEBALL,
[BALL_HEAL] = {
.tileTag = TAG_PARTICLES_HEALBALL,
.paletteTag = TAG_PARTICLES_HEALBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_NET] = {
.tileTag = TAG_PARTICLES_NETBALL,
.paletteTag = TAG_PARTICLES_NETBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
@ -412,9 +410,18 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_REPEAT] = {
.tileTag = TAG_PARTICLES_REPEATBALL,
.paletteTag = TAG_PARTICLES_REPEATBALL,
[BALL_DIVE] = {
.tileTag = TAG_PARTICLES_DIVEBALL,
.paletteTag = TAG_PARTICLES_DIVEBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_DUSK] = {
.tileTag = TAG_PARTICLES_DUSKBALL,
.paletteTag = TAG_PARTICLES_DUSKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
@ -430,6 +437,24 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_QUICK] = {
.tileTag = TAG_PARTICLES_QUICKBALL,
.paletteTag = TAG_PARTICLES_QUICKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_REPEAT] = {
.tileTag = TAG_PARTICLES_REPEATBALL,
.paletteTag = TAG_PARTICLES_REPEATBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_LUXURY] = {
.tileTag = TAG_PARTICLES_LUXURYBALL,
.paletteTag = TAG_PARTICLES_LUXURYBALL,
@ -439,16 +464,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_PREMIER] = {
.tileTag = TAG_PARTICLES_PREMIERBALL,
.paletteTag = TAG_PARTICLES_PREMIERBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_LEVEL] = {
.tileTag = TAG_PARTICLES_LEVELBALL,
.paletteTag = TAG_PARTICLES_LEVELBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -457,7 +473,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_LURE] = {
.tileTag = TAG_PARTICLES_LUREBALL,
.paletteTag = TAG_PARTICLES_LUREBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -466,7 +482,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_MOON] = {
.tileTag = TAG_PARTICLES_MOONBALL,
.paletteTag = TAG_PARTICLES_MOONBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -475,7 +491,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_FRIEND] = {
.tileTag = TAG_PARTICLES_FRIENDBALL,
.paletteTag = TAG_PARTICLES_FRIENDBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -484,7 +500,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_LOVE] = {
.tileTag = TAG_PARTICLES_LOVEBALL,
.paletteTag = TAG_PARTICLES_LOVEBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -493,16 +509,7 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_HEAVYBALL,
.paletteTag = TAG_PARTICLES_HEAVYBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_FAST] = {
.tileTag = TAG_PARTICLES_FASTBALL,
.paletteTag = TAG_PARTICLES_FASTBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -511,61 +518,16 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_SPORTBALL,
.paletteTag = TAG_PARTICLES_SPORTBALL,
[BALL_HEAVY] = {
.tileTag = TAG_PARTICLES_HEAVYBALL,
.paletteTag = TAG_PARTICLES_HEAVYBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_DUSKBALL,
.paletteTag = TAG_PARTICLES_DUSKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_QUICKBALL,
.paletteTag = TAG_PARTICLES_QUICKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_HEALBALL,
.paletteTag = TAG_PARTICLES_HEALBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_CHERISHBALL,
.paletteTag = TAG_PARTICLES_CHERISHBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
.tileTag = TAG_PARTICLES_PARKBALL,
.paletteTag = TAG_PARTICLES_PARKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_DREAM] = {
.tileTag = TAG_PARTICLES_DREAMBALL,
.paletteTag = TAG_PARTICLES_DREAMBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -574,7 +536,34 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
{
[BALL_SAFARI] = {
.tileTag = TAG_PARTICLES_SAFARIBALL,
.paletteTag = TAG_PARTICLES_SAFARIBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_SPORT] = {
.tileTag = TAG_PARTICLES_SPORTBALL,
.paletteTag = TAG_PARTICLES_SPORTBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_PARK] = {
.tileTag = TAG_PARTICLES_PARKBALL,
.paletteTag = TAG_PARTICLES_PARKBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_BEAST] = {
.tileTag = TAG_PARTICLES_BEASTBALL,
.paletteTag = TAG_PARTICLES_BEASTBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
@ -583,39 +572,47 @@ static const struct SpriteTemplate sBallParticleSpriteTemplates[POKEBALL_COUNT]
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
[BALL_CHERISH] = {
.tileTag = TAG_PARTICLES_CHERISHBALL,
.paletteTag = TAG_PARTICLES_CHERISHBALL,
.oam = &gOamData_AffineOff_ObjNormal_8x8,
.anims = sAnims_BallParticles,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy,
},
};
const u16 gBallOpenFadeColors[] =
{
// Todo, assign different colors
[BALL_POKE] = RGB(31, 22, 30),
[BALL_GREAT] = RGB(16, 23, 30),
[BALL_SAFARI] = RGB(23, 30, 20),
[BALL_ULTRA] = RGB(31, 31, 15),
[BALL_MASTER] = RGB(23, 20, 28),
[BALL_NET] = RGB(21, 31, 25),
[BALL_DIVE] = RGB(12, 25, 30),
[BALL_NEST] = RGB(30, 27, 10),
[BALL_REPEAT] = RGB(31, 24, 16),
[BALL_TIMER] = RGB(29, 30, 30),
[BALL_LUXURY] = RGB(31, 17, 10),
[BALL_PREMIER] = RGB(31, 9, 10),
// Todo, assign different colors
[BALL_HEAL] = RGB(31, 23, 27),
[BALL_NET] = RGB(21, 31, 25),
[BALL_NEST] = RGB(30, 27, 10),
[BALL_DIVE] = RGB(12, 25, 30),
[BALL_DUSK] = RGB(7, 1, 13),
[BALL_TIMER] = RGB(29, 30, 30),
[BALL_QUICK] = RGB(16, 25, 30),
[BALL_REPEAT] = RGB(31, 24, 16),
[BALL_LUXURY] = RGB(31, 17, 10),
[BALL_LEVEL] = RGB(24, 4, 4),
[BALL_LURE] = RGB(9, 22, 27),
[BALL_MOON] = RGB(30, 25, 8),
[BALL_FRIEND] = RGB(17, 24, 7),
[BALL_LOVE] = RGB(31, 19, 26),
[BALL_HEAVY] = RGB(7, 11, 20),
[BALL_FAST] = RGB(29, 17, 8),
[BALL_SPORT] = RGB(31, 31, 15),
[BALL_DUSK] = RGB(7, 1, 13),
[BALL_QUICK] = RGB(16, 25, 30),
[BALL_HEAL] = RGB(31, 23, 27),
[BALL_CHERISH] = RGB(25, 4, 3),
[BALL_PARK] = RGB(31, 31, 15),
[BALL_HEAVY] = RGB(7, 11, 20),
[BALL_DREAM] = RGB(31, 31, 15),
[BALL_SAFARI] = RGB(23, 30, 20),
[BALL_SPORT] = RGB(31, 31, 15),
[BALL_PARK] = RGB(31, 31, 15),
[BALL_BEAST] = RGB(31, 31, 15),
[BALL_CHERISH] = RGB(25, 4, 3),
};
const struct SpriteTemplate gPokeblockSpriteTemplate =
@ -953,30 +950,34 @@ u8 ItemIdToBallId(u16 ballItem)
{
switch (ballItem)
{
case ITEM_MASTER_BALL:
return BALL_MASTER;
case ITEM_ULTRA_BALL:
return BALL_ULTRA;
case ITEM_GREAT_BALL:
return BALL_GREAT;
case ITEM_SAFARI_BALL:
return BALL_SAFARI;
case ITEM_NET_BALL:
return BALL_NET;
case ITEM_DIVE_BALL:
return BALL_DIVE;
case ITEM_NEST_BALL:
return BALL_NEST;
case ITEM_REPEAT_BALL:
return BALL_REPEAT;
case ITEM_TIMER_BALL:
return BALL_TIMER;
case ITEM_LUXURY_BALL:
return BALL_LUXURY;
case ITEM_PREMIER_BALL:
return BALL_PREMIER;
case ITEM_POKE_BALL:
return BALL_POKE;
case ITEM_GREAT_BALL:
return BALL_GREAT;
case ITEM_ULTRA_BALL:
return BALL_ULTRA;
case ITEM_MASTER_BALL:
return BALL_MASTER;
case ITEM_PREMIER_BALL:
return BALL_PREMIER;
case ITEM_HEAL_BALL:
return BALL_HEAL;
case ITEM_NET_BALL:
return BALL_NET;
case ITEM_NEST_BALL:
return BALL_NEST;
case ITEM_DIVE_BALL:
return BALL_DIVE;
case ITEM_DUSK_BALL:
return BALL_DUSK;
case ITEM_TIMER_BALL:
return BALL_TIMER;
case ITEM_QUICK_BALL:
return BALL_QUICK;
case ITEM_REPEAT_BALL:
return BALL_REPEAT;
case ITEM_LUXURY_BALL:
return BALL_LUXURY;
case ITEM_LEVEL_BALL:
return BALL_LEVEL;
case ITEM_LURE_BALL:
@ -987,26 +988,22 @@ u8 ItemIdToBallId(u16 ballItem)
return BALL_FRIEND;
case ITEM_LOVE_BALL:
return BALL_LOVE;
case ITEM_HEAVY_BALL:
return BALL_HEAVY;
case ITEM_FAST_BALL:
return BALL_FAST;
case ITEM_SPORT_BALL:
return BALL_SPORT;
case ITEM_DUSK_BALL:
return BALL_DUSK;
case ITEM_QUICK_BALL:
return BALL_QUICK;
case ITEM_HEAL_BALL:
return BALL_HEAL;
case ITEM_CHERISH_BALL:
return BALL_CHERISH;
case ITEM_PARK_BALL:
return BALL_PARK;
case ITEM_HEAVY_BALL:
return BALL_HEAVY;
case ITEM_DREAM_BALL:
return BALL_DREAM;
case ITEM_SAFARI_BALL:
return BALL_SAFARI;
case ITEM_SPORT_BALL:
return BALL_SPORT;
case ITEM_PARK_BALL:
return BALL_PARK;
case ITEM_BEAST_BALL:
return BALL_BEAST;
case ITEM_CHERISH_BALL:
return BALL_CHERISH;
default:
return BALL_POKE;
}

View File

@ -631,7 +631,7 @@ static void SetPlayerBerryDataInBattleStruct(void)
}
else
{
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY));
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER));
for (i = 0; i < BERRY_NAME_LENGTH; i++)
battleBerry->name[i] = berryData->name[i];
@ -675,7 +675,7 @@ static void SetAllPlayersBerryData(void)
}
else
{
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY));
const struct Berry *berryData = GetBerryInfo(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER));
for (i = 0; i < BERRY_NAME_LENGTH; i++)
{
@ -3749,7 +3749,7 @@ u8 IsRunningFromBattleImpossible(void)
{
u32 holdEffect, i;
if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY)
if (gBattleMons[gActiveBattler].item == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gEnigmaBerries[gActiveBattler].holdEffect;
else
holdEffect = ItemId_GetHoldEffect(gBattleMons[gActiveBattler].item);

View File

@ -3212,7 +3212,7 @@ u32 BattleStringExpandPlaceholders(const u8 *src, u8 *dst)
case B_TXT_LAST_ITEM: // last used item
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{
if (gLastUsedItem == ITEM_ENIGMA_BERRY)
if (gLastUsedItem == ITEM_ENIGMA_BERRY_E_READER)
{
if (!(gBattleTypeFlags & BATTLE_TYPE_MULTI))
{
@ -3634,7 +3634,7 @@ static void ExpandBattleTextBuffPlaceholders(const u8 *src, u8 *dst)
hword = T1_READ_16(&src[srcID + 1]);
if (gBattleTypeFlags & (BATTLE_TYPE_LINK | BATTLE_TYPE_RECORDED_LINK))
{
if (hword == ITEM_ENIGMA_BERRY)
if (hword == ITEM_ENIGMA_BERRY_E_READER)
{
if (gLinkPlayers[gBattleScripting.multiplayerId].id == gPotentialItemEffectBattler)
{

View File

@ -3179,7 +3179,7 @@ void SetMoveEffect(bool32 primary, u32 certain)
RecordAbilityBattle(gBattlerTarget, gLastUsedAbility);
}
else if (gBattleMons[gBattlerAttacker].item != 0
|| gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY
|| gBattleMons[gBattlerTarget].item == ITEM_ENIGMA_BERRY_E_READER
|| gBattleMons[gBattlerTarget].item == 0)
{
gBattlescriptCurrInstr++;
@ -3870,7 +3870,7 @@ static void Cmd_getexp(void)
item = GetMonData(&gPlayerParty[i], MON_DATA_HELD_ITEM);
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
else
holdEffect = ItemId_GetHoldEffect(item);
@ -3919,7 +3919,7 @@ static void Cmd_getexp(void)
{
item = GetMonData(&gPlayerParty[gBattleStruct->expGetterMonId], MON_DATA_HELD_ITEM);
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
else
holdEffect = ItemId_GetHoldEffect(item);
@ -13421,18 +13421,8 @@ static void Cmd_handleballthrow(void)
if (gBattleMons[gBattlerTarget].status1 & (STATUS1_POISON | STATUS1_BURN | STATUS1_PARALYSIS | STATUS1_TOXIC_POISON))
odds = (odds * 15) / 10;
if (gLastUsedItem != ITEM_SAFARI_BALL)
{
if (gLastUsedItem == ITEM_MASTER_BALL)
{
gBattleResults.usedMasterBall = TRUE;
}
else
{
if (gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL] < 255)
gBattleResults.catchAttempts[gLastUsedItem - ITEM_ULTRA_BALL]++;
}
}
if (gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL] < 255)
gBattleResults.catchAttempts[gLastUsedItem - FIRST_BALL]++;
if (odds > 254) // mon caught
{

View File

@ -135,7 +135,7 @@ const u16 gBattleFrontierHeldItems[] =
ITEM_APICOT_BERRY,
ITEM_STARF_BERRY,
ITEM_LIECHI_BERRY,
ITEM_STICK,
ITEM_LEEK,
ITEM_LAX_INCENSE,
ITEM_AGUAV_BERRY,
ITEM_FIGY_BERRY,

View File

@ -59,7 +59,6 @@ static bool32 TryRemoveScreens(u8 battler);
static bool32 IsUnnerveAbilityOnOpposingSide(u8 battlerId);
extern const u8 *const gBattleScriptsForMoveEffects[];
extern const u8 *const gBattlescriptsForBallThrow[];
extern const u8 *const gBattlescriptsForRunningByItem[];
extern const u8 *const gBattlescriptsForUsingItem[];
extern const u8 *const gBattlescriptsForSafariActions[];
@ -520,7 +519,7 @@ void HandleAction_UseItem(void)
if (gLastUsedItem <= LAST_BALL) // is ball
{
gBattlescriptCurrInstr = gBattlescriptsForBallThrow[gLastUsedItem];
gBattlescriptCurrInstr = BattleScript_BallThrow;
}
else if (gLastUsedItem == ITEM_POKE_DOLL || gLastUsedItem == ITEM_FLUFFY_TAIL)
{
@ -608,7 +607,7 @@ bool8 TryRunFromBattle(u8 battler)
u8 pyramidMultiplier;
u8 speedVar;
if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY)
if (gBattleMons[battler].item == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gEnigmaBerries[battler].holdEffect;
else
holdEffect = ItemId_GetHoldEffect(gBattleMons[battler].item);
@ -758,7 +757,7 @@ void HandleAction_SafariZoneBallThrow(void)
gBattle_BG0_Y = 0;
gNumSafariBalls--;
gLastUsedItem = ITEM_SAFARI_BALL;
gBattlescriptCurrInstr = gBattlescriptsForBallThrow[ITEM_SAFARI_BALL];
gBattlescriptCurrInstr = BattleScript_SafariBallThrow;
gCurrentActionFuncId = B_ACTION_EXEC_SCRIPT;
}

View File

@ -95,23 +95,8 @@ static const u8 sBerryDescriptionPart1_Durin[] = _("Bitter to even look at. It i
static const u8 sBerryDescriptionPart2_Durin[] = _("bitter, no one has ever eaten it as is.");
static const u8 sBerryDescriptionPart1_Belue[] = _("It is glossy and looks delicious, but");
static const u8 sBerryDescriptionPart2_Belue[] = _("it is awfully sour. Takes time to grow.");
static const u8 sBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Liechi[] = _("contain the power of the sea.");
static const u8 sBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Ganlon[] = _("contain the power of the land.");
static const u8 sBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Salac[] = _("contain the power of the sky.");
static const u8 sBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Petaya[] = _("contain the power of all living things.");
static const u8 sBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling");
static const u8 sBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used.");
static const u8 sBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY.");
static const u8 sBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy.");
static const u8 sBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the");
static const u8 sBerryDescriptionPart2_Starf[] = _("world's edge. Considered a mirage.");
static const u8 sBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY.");
static const u8 sBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars.");
static const u8 sBerryDescriptionPart1_Chilan[] = _("It can be made into a whistle that");
static const u8 sBerryDescriptionPart2_Chilan[] = _("produces an indescribable sound.");
static const u8 sBerryDescriptionPart1_Occa[] = _("Said to grow in the tropics once,");
static const u8 sBerryDescriptionPart2_Occa[] = _("it boasts an intensely hot spiciness.");
static const u8 sBerryDescriptionPart1_Passho[] = _("Its flesh is dotted with many tiny");
@ -144,10 +129,36 @@ static const u8 sBerryDescriptionPart1_Colbur[] = _("Tiny hooks on the surface l
static const u8 sBerryDescriptionPart2_Colbur[] = _("Pokémon to reach far-off places.");
static const u8 sBerryDescriptionPart1_Babiri[] = _("Very tough with a strong flavor. It");
static const u8 sBerryDescriptionPart2_Babiri[] = _("was used to make medicine in the past.");
static const u8 sBerryDescriptionPart1_Chilan[] = _("It can be made into a whistle that");
static const u8 sBerryDescriptionPart2_Chilan[] = _("produces an indescribable sound.");
static const u8 sBerryDescriptionPart1_Roseli[] = _("In nature, they grow in wide rings");
static const u8 sBerryDescriptionPart2_Roseli[] = _("for reasons that are still unknown.");
static const u8 sBerryDescriptionPart1_Liechi[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Liechi[] = _("contain the power of the sea.");
static const u8 sBerryDescriptionPart1_Ganlon[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Ganlon[] = _("contain the power of the land.");
static const u8 sBerryDescriptionPart1_Salac[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Salac[] = _("contain the power of the sky.");
static const u8 sBerryDescriptionPart1_Petaya[] = _("A mysterious BERRY. It is rumored to");
static const u8 sBerryDescriptionPart2_Petaya[] = _("contain the power of all living things.");
static const u8 sBerryDescriptionPart1_Apicot[] = _("A very mystifying BERRY. No telling");
static const u8 sBerryDescriptionPart2_Apicot[] = _("what may happen or how it can be used.");
static const u8 sBerryDescriptionPart1_Lansat[] = _("Said to be a legendary BERRY.");
static const u8 sBerryDescriptionPart2_Lansat[] = _("Holding it supposedly brings joy.");
static const u8 sBerryDescriptionPart1_Starf[] = _("So strong, it was abandoned at the");
static const u8 sBerryDescriptionPart2_Starf[] = _("world's edge. Considered a mirage.");
static const u8 sBerryDescriptionPart1_Enigma[] = _("A completely enigmatic BERRY.");
static const u8 sBerryDescriptionPart2_Enigma[] = _("Appears to have the power of stars.");
static const u8 sBerryDescriptionPart1_Micle[] = _("It makes other food eaten at the");
static const u8 sBerryDescriptionPart2_Micle[] = _("same time taste sweet.");
static const u8 sBerryDescriptionPart1_Custap[] = _("The flesh underneath the Custap");
static const u8 sBerryDescriptionPart2_Custap[] = _("Berry's skin is sweet and creamy soft.");
static const u8 sBerryDescriptionPart1_Jaboca[] = _("The drupelets that make up this berry");
static const u8 sBerryDescriptionPart2_Jaboca[] = _("pop rythmically if handled roughly.");
static const u8 sBerryDescriptionPart1_Rowap[] = _("People once worked top-shaped pieces");
static const u8 sBerryDescriptionPart2_Rowap[] = _("of this berry free to use as toys.");
static const u8 sBerryDescriptionPart1_Kee[] = _("A berry that is incredibly spicy at");
static const u8 sBerryDescriptionPart2_Kee[] = _("first, then extremely bitter.");
static const u8 sBerryDescriptionPart1_Maranga[] = _("Its outside is very bitter, but its");
static const u8 sBerryDescriptionPart2_Maranga[] = _("inside tastes like a sweet drink.");
const struct Berry gBerries[] =
{
@ -781,6 +792,330 @@ const struct Berry gBerries[] =
.smoothness = 70,
},
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHILAN"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 34,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Chilan,
.description2 = sBerryDescriptionPart2_Chilan,
.stageDuration = 18,
.spicy = 0,
.dry = 25,
.sweet = 10,
.bitter = 0,
.sour = 0,
.smoothness = 35,
},
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("OCCA"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 90,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Occa,
.description2 = sBerryDescriptionPart2_Occa,
.stageDuration = 18,
.spicy = 15,
.dry = 0,
.sweet = 10,
.bitter = 0,
.sour = 0,
.smoothness = 30,
},
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("PASSHO"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 33,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Passho,
.description2 = sBerryDescriptionPart2_Passho,
.stageDuration = 18,
.spicy = 0,
.dry = 15,
.sweet = 0,
.bitter = 10,
.sour = 0,
.smoothness = 30,
},
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("WACAN"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 250,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Wacan,
.description2 = sBerryDescriptionPart2_Wacan,
.stageDuration = 18,
.spicy = 0,
.dry = 0,
.sweet = 15,
.bitter = 0,
.sour = 10,
.smoothness = 30,
},
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("RINDO"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 156,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Rindo,
.description2 = sBerryDescriptionPart2_Rindo,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 15,
.sour = 0,
.smoothness = 30,
},
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("YACHE"),
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 135,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Yache,
.description2 = sBerryDescriptionPart2_Yache,
.stageDuration = 18,
.spicy = 0,
.dry = 10,
.sweet = 0,
.bitter = 0,
.sour = 15,
.smoothness = 30,
},
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHOPLE"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 77,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Chople,
.description2 = sBerryDescriptionPart2_Chople,
.stageDuration = 18,
.spicy = 15,
.dry = 0,
.sweet = 0,
.bitter = 10,
.sour = 0,
.smoothness = 30,
},
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("KEBIA"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 90,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Kebia,
.description2 = sBerryDescriptionPart2_Kebia,
.stageDuration = 18,
.spicy = 0,
.dry = 15,
.sweet = 0,
.bitter = 0,
.sour = 10,
.smoothness = 30,
},
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("SHUCA"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 42,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Shuca,
.description2 = sBerryDescriptionPart2_Shuca,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 15,
.bitter = 0,
.sour = 0,
.smoothness = 30,
},
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("COBA"),
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 278,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Coba,
.description2 = sBerryDescriptionPart2_Coba,
.stageDuration = 18,
.spicy = 0,
.dry = 10,
.sweet = 0,
.bitter = 15,
.sour = 0,
.smoothness = 30,
},
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("PAYAPA"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 252,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Payapa,
.description2 = sBerryDescriptionPart2_Payapa,
.stageDuration = 18,
.spicy = 0,
.dry = 0,
.sweet = 10,
.bitter = 0,
.sour = 15,
.smoothness = 30,
},
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("TANGA"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 42,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Tanga,
.description2 = sBerryDescriptionPart2_Tanga,
.stageDuration = 18,
.spicy = 20,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 10,
.smoothness = 35,
},
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHARTI"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 28,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Charti,
.description2 = sBerryDescriptionPart2_Charti,
.stageDuration = 18,
.spicy = 10,
.dry = 20,
.sweet = 0,
.bitter = 0,
.sour = 0,
.smoothness = 35,
},
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("KASIB"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 144,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Kasib,
.description2 = sBerryDescriptionPart2_Kasib,
.stageDuration = 18,
.spicy = 0,
.dry = 10,
.sweet = 20,
.bitter = 0,
.sour = 0,
.smoothness = 35,
},
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("HABAN"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 23,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Haban,
.description2 = sBerryDescriptionPart2_Haban,
.stageDuration = 18,
.spicy = 0,
.dry = 0,
.sweet = 10,
.bitter = 20,
.sour = 0,
.smoothness = 35,
},
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("COLBUR"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 39,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Colbur,
.description2 = sBerryDescriptionPart2_Colbur,
.stageDuration = 18,
.spicy = 0,
.dry = 0,
.sweet = 0,
.bitter = 10,
.sour = 20,
.smoothness = 35,
},
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("BABIRI"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 265,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Babiri,
.description2 = sBerryDescriptionPart2_Babiri,
.stageDuration = 18,
.spicy = 25,
.dry = 10,
.sweet = 0,
.bitter = 0,
.sour = 0,
.smoothness = 35,
},
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("ROSELI"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 35,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Roseli,
.description2 = sBerryDescriptionPart2_Roseli,
.stageDuration = 18,
.spicy = 0,
.dry = 0,
.sweet = 25,
.bitter = 10,
.sour = 0,
.smoothness = 35,
},
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("LIECHI"),
@ -908,6 +1243,132 @@ const struct Berry gBerries[] =
},
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("ENIGMA"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 155,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Enigma,
.description2 = sBerryDescriptionPart2_Enigma,
.stageDuration = 24,
.spicy = 40,
.dry = 10,
.sweet = 0,
.bitter = 0,
.sour = 0,
.smoothness = 60,
},
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("MICLE"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 41,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Micle,
.description2 = sBerryDescriptionPart2_Micle,
.stageDuration = 24,
.spicy = 0,
.dry = 40,
.sweet = 10,
.bitter = 0,
.sour = 0,
.smoothness = 60,
},
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CUSTAP"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 267,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Custap,
.description2 = sBerryDescriptionPart2_Custap,
.stageDuration = 24,
.spicy = 0,
.dry = 0,
.sweet = 40,
.bitter = 10,
.sour = 0,
.smoothness = 60,
},
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("JABOCA"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 33,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Jaboca,
.description2 = sBerryDescriptionPart2_Jaboca,
.stageDuration = 24,
.spicy = 0,
.dry = 0,
.sweet = 0,
.bitter = 40,
.sour = 10,
.smoothness = 60,
},
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("ROWAP"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 52,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Rowap,
.description2 = sBerryDescriptionPart2_Rowap,
.stageDuration = 24,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 60,
},
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("KEE"),
.firmness = BERRY_FIRMNESS_UNKNOWN,
.size = 0,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Kee,
.description2 = sBerryDescriptionPart2_Kee,
.stageDuration = 24,
.spicy = 30,
.dry = 30,
.sweet = 10,
.bitter = 10,
.sour = 10,
.smoothness = 60,
},
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("MARNGA"), // "Maranga" is too long
.firmness = BERRY_FIRMNESS_UNKNOWN,
.size = 0,
.maxYield = 5,
.minYield = 2,
.description1 = sBerryDescriptionPart1_Maranga,
.description2 = sBerryDescriptionPart2_Maranga,
.stageDuration = 24,
.spicy = 10,
.dry = 10,
.sweet = 30,
.bitter = 30,
.sour = 10,
.smoothness = 60,
},
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] =
{
.name = _("ENIGMA"),
.firmness = BERRY_FIRMNESS_UNKNOWN,
@ -924,376 +1385,52 @@ const struct Berry gBerries[] =
.sour = 40,
.smoothness = 40,
},
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("OCCA"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 89,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Occa,
.description2 = sBerryDescriptionPart2_Occa,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("PASSHO"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 33,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Passho,
.description2 = sBerryDescriptionPart2_Passho,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("WACAN"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 250,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Wacan,
.description2 = sBerryDescriptionPart2_Wacan,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_RINDO_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("RINDO"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 155,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Rindo,
.description2 = sBerryDescriptionPart2_Rindo,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_YACHE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("YACHE"),
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 135,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Yache,
.description2 = sBerryDescriptionPart2_Yache,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_CHOPLE_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHOPLE"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 77,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Chople,
.description2 = sBerryDescriptionPart2_Chople,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_KEBIA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("KEBIA"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 89,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Kebia,
.description2 = sBerryDescriptionPart2_Kebia,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_SHUCA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("SHUCA"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 42,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Shuca,
.description2 = sBerryDescriptionPart2_Shuca,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_COBA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("COBA"),
.firmness = BERRY_FIRMNESS_VERY_HARD,
.size = 277,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Coba,
.description2 = sBerryDescriptionPart2_Coba,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_PAYAPA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("PAYAPA"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 251,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Payapa,
.description2 = sBerryDescriptionPart2_Payapa,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_TANGA_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("TANGA"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 43,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Tanga,
.description2 = sBerryDescriptionPart2_Tanga,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_CHARTI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHARTI"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 28,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Charti,
.description2 = sBerryDescriptionPart2_Charti,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_KASIB_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("KASIB"),
.firmness = BERRY_FIRMNESS_HARD,
.size = 144,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Kasib,
.description2 = sBerryDescriptionPart2_Kasib,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("HABAN"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 23,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Haban,
.description2 = sBerryDescriptionPart2_Haban,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("COLBUR"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 38,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Colbur,
.description2 = sBerryDescriptionPart2_Colbur,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("BABIRI"),
.firmness = BERRY_FIRMNESS_SUPER_HARD,
.size = 265,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Babiri,
.description2 = sBerryDescriptionPart2_Babiri,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("CHILAN"),
.firmness = BERRY_FIRMNESS_VERY_SOFT,
.size = 33,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Chilan,
.description2 = sBerryDescriptionPart2_Chilan,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] =
{
.name = _("ROSELI"),
.firmness = BERRY_FIRMNESS_SOFT,
.size = 35,
.maxYield = 5,
.minYield = 1,
.description1 = sBerryDescriptionPart1_Roseli,
.description2 = sBerryDescriptionPart2_Roseli,
.stageDuration = 18,
.spicy = 10,
.dry = 0,
.sweet = 0,
.bitter = 0,
.sour = 40,
.smoothness = 70,
},
};
const struct BerryCrushBerryData gBerryCrush_BerryData[] = {
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 150, .powder = 200}
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = {.difficulty = 150, .powder = 200}
};
const struct BerryTree gBlankBerryTree = {};
@ -1340,7 +1477,7 @@ bool32 IsEnigmaBerryValid(void)
const struct Berry *GetBerryInfo(u8 berry)
{
if (berry == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) && IsEnigmaBerryValid())
if (berry == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY_E_READER) && IsEnigmaBerryValid())
return (struct Berry*)(&gSaveBlock1Ptr->enigmaBerry.berry);
else
{

View File

@ -1538,7 +1538,7 @@ static void SetOpponentsBerryData(u16 playerBerryItemId, u8 playersNum, struct B
u16 berryMasterDiff;
u16 i;
if (playerBerryItemId == ITEM_ENIGMA_BERRY)
if (playerBerryItemId == ITEM_ENIGMA_BERRY_E_READER)
{
for (i = 0; i < FLAVOR_COUNT; i++)
{
@ -2286,7 +2286,7 @@ static u32 CalculatePokeblockColor(struct BlenderBerry* berries, s16* _flavors,
for (j = 0; j < numPlayers; j++)
{
if (berries[i].itemId == berries[j].itemId && i != j
&& (berries[i].itemId != ITEM_ENIGMA_BERRY || AreBlenderBerriesSame(berries, i, j)))
&& (berries[i].itemId != ITEM_ENIGMA_BERRY_E_READER || AreBlenderBerriesSame(berries, i, j)))
return PBLOCK_CLR_BLACK;
}
}

View File

@ -962,7 +962,7 @@ const struct FacilityMon gBattleFrontierMons[NUM_FRONTIER_MONS] =
[FRONTIER_MON_FARFETCHD] = {
.species = SPECIES_FARFETCHD,
.moves = {MOVE_SLASH, MOVE_KNOCK_OFF, MOVE_SWORDS_DANCE, MOVE_AGILITY},
.itemTableId = BATTLE_FRONTIER_ITEM_STICK,
.itemTableId = BATTLE_FRONTIER_ITEM_LEEK,
.evSpread = F_EV_SPREAD_SP_DEFENSE | F_EV_SPREAD_DEFENSE | F_EV_SPREAD_HP,
.nature = NATURE_RELAXED
},

View File

@ -7,12 +7,12 @@ const u32 gBerryTag_Pal[] = INCBIN_U32("graphics/interface/berry_tag_title.bin.l
const u32 gBerryCheckCircle_Gfx[] = INCBIN_U32("graphics/interface/check_berry_circle.4bpp.lz");
const u32 gBerryPic_Cheri[] = INCBIN_U32("graphics/berries/cheri.4bpp.lz");
const u32 gBerryPic_Oran[] = INCBIN_U32("graphics/berries/oran.4bpp.lz");
const u32 gBerryPic_Chesto[] = INCBIN_U32("graphics/berries/chesto.4bpp.lz");
const u32 gBerryPic_Pecha[] = INCBIN_U32("graphics/berries/pecha.4bpp.lz");
const u32 gBerryPic_Rawst[] = INCBIN_U32("graphics/berries/rawst.4bpp.lz");
const u32 gBerryPic_Aspear[] = INCBIN_U32("graphics/berries/aspear.4bpp.lz");
const u32 gBerryPic_Leppa[] = INCBIN_U32("graphics/berries/leppa.4bpp.lz");
const u32 gBerryPic_Chesto[] = INCBIN_U32("graphics/berries/chesto.4bpp.lz");
const u32 gBerryPic_Oran[] = INCBIN_U32("graphics/berries/oran.4bpp.lz");
const u32 gBerryPic_Persim[] = INCBIN_U32("graphics/berries/persim.4bpp.lz");
const u32 gBerryPic_Lum[] = INCBIN_U32("graphics/berries/lum.4bpp.lz");
const u32 gBerryPic_Sitrus[] = INCBIN_U32("graphics/berries/sitrus.4bpp.lz");
@ -41,14 +41,7 @@ const u32 gBerryPic_Pamtre[] = INCBIN_U32("graphics/berries/pamtre.4bpp.lz");
const u32 gBerryPic_Watmel[] = INCBIN_U32("graphics/berries/watmel.4bpp.lz");
const u32 gBerryPic_Durin[] = INCBIN_U32("graphics/berries/durin.4bpp.lz");
const u32 gBerryPic_Belue[] = INCBIN_U32("graphics/berries/belue.4bpp.lz");
const u32 gBerryPic_Liechi[] = INCBIN_U32("graphics/berries/liechi.4bpp.lz");
const u32 gBerryPic_Ganlon[] = INCBIN_U32("graphics/berries/ganlon.4bpp.lz");
const u32 gBerryPic_Salac[] = INCBIN_U32("graphics/berries/salac.4bpp.lz");
const u32 gBerryPic_Petaya[] = INCBIN_U32("graphics/berries/petaya.4bpp.lz");
const u32 gBerryPic_Apicot[] = INCBIN_U32("graphics/berries/apicot.4bpp.lz");
const u32 gBerryPic_Lansat[] = INCBIN_U32("graphics/berries/lansat.4bpp.lz");
const u32 gBerryPic_Starf[] = INCBIN_U32("graphics/berries/starf.4bpp.lz");
const u32 gBerryPic_Enigma[] = INCBIN_U32("graphics/berries/enigma.4bpp.lz");
const u32 gBerryPic_Chilan[] = INCBIN_U32("graphics/berries/chilan.4bpp.lz");
const u32 gBerryPic_Occa[] = INCBIN_U32("graphics/berries/occa.4bpp.lz");
const u32 gBerryPic_Passho[] = INCBIN_U32("graphics/berries/passho.4bpp.lz");
const u32 gBerryPic_Wacan[] = INCBIN_U32("graphics/berries/wacan.4bpp.lz");
@ -65,16 +58,29 @@ const u32 gBerryPic_Kasib[] = INCBIN_U32("graphics/berries/kasib.4bpp.lz");
const u32 gBerryPic_Haban[] = INCBIN_U32("graphics/berries/haban.4bpp.lz");
const u32 gBerryPic_Colbur[] = INCBIN_U32("graphics/berries/colbur.4bpp.lz");
const u32 gBerryPic_Babiri[] = INCBIN_U32("graphics/berries/babiri.4bpp.lz");
const u32 gBerryPic_Chilan[] = INCBIN_U32("graphics/berries/chilan.4bpp.lz");
const u32 gBerryPic_Roseli[] = INCBIN_U32("graphics/berries/roseli.4bpp.lz");
const u32 gBerryPic_Liechi[] = INCBIN_U32("graphics/berries/liechi.4bpp.lz");
const u32 gBerryPic_Ganlon[] = INCBIN_U32("graphics/berries/ganlon.4bpp.lz");
const u32 gBerryPic_Salac[] = INCBIN_U32("graphics/berries/salac.4bpp.lz");
const u32 gBerryPic_Petaya[] = INCBIN_U32("graphics/berries/petaya.4bpp.lz");
const u32 gBerryPic_Apicot[] = INCBIN_U32("graphics/berries/apicot.4bpp.lz");
const u32 gBerryPic_Lansat[] = INCBIN_U32("graphics/berries/lansat.4bpp.lz");
const u32 gBerryPic_Starf[] = INCBIN_U32("graphics/berries/starf.4bpp.lz");
const u32 gBerryPic_Enigma[] = INCBIN_U32("graphics/berries/enigma.4bpp.lz");
const u32 gBerryPic_Micle[] = INCBIN_U32("graphics/berries/micle.4bpp.lz");
const u32 gBerryPic_Custap[] = INCBIN_U32("graphics/berries/custap.4bpp.lz");
const u32 gBerryPic_Jaboca[] = INCBIN_U32("graphics/berries/jaboca.4bpp.lz");
const u32 gBerryPic_Rowap[] = INCBIN_U32("graphics/berries/rowap.4bpp.lz");
const u32 gBerryPic_Kee[] = INCBIN_U32("graphics/berries/kee.4bpp.lz");
const u32 gBerryPic_Maranga[] = INCBIN_U32("graphics/berries/maranga.4bpp.lz");
const u32 gBerryPalette_Cheri[] = INCBIN_U32("graphics/berries/cheri.gbapal.lz");
const u32 gBerryPalette_Oran[] = INCBIN_U32("graphics/berries/oran.gbapal.lz");
const u32 gBerryPalette_Chesto[] = INCBIN_U32("graphics/berries/chesto.gbapal.lz");
const u32 gBerryPalette_Pecha[] = INCBIN_U32("graphics/berries/pecha.gbapal.lz");
const u32 gBerryPalette_Rawst[] = INCBIN_U32("graphics/berries/rawst.gbapal.lz");
const u32 gBerryPalette_Aspear[] = INCBIN_U32("graphics/berries/aspear.gbapal.lz");
const u32 gBerryPalette_Leppa[] = INCBIN_U32("graphics/berries/leppa.gbapal.lz");
const u32 gBerryPalette_Chesto[] = INCBIN_U32("graphics/berries/chesto.gbapal.lz");
const u32 gBerryPalette_Oran[] = INCBIN_U32("graphics/berries/oran.gbapal.lz");
const u32 gBerryPalette_Persim[] = INCBIN_U32("graphics/berries/persim.gbapal.lz");
const u32 gBerryPalette_Lum[] = INCBIN_U32("graphics/berries/lum.gbapal.lz");
const u32 gBerryPalette_Sitrus[] = INCBIN_U32("graphics/berries/sitrus.gbapal.lz");
@ -103,14 +109,7 @@ const u32 gBerryPalette_Pamtre[] = INCBIN_U32("graphics/berries/pamtre.gbapal.lz
const u32 gBerryPalette_Watmel[] = INCBIN_U32("graphics/berries/watmel.gbapal.lz");
const u32 gBerryPalette_Durin[] = INCBIN_U32("graphics/berries/durin.gbapal.lz");
const u32 gBerryPalette_Belue[] = INCBIN_U32("graphics/berries/belue.gbapal.lz");
const u32 gBerryPalette_Liechi[] = INCBIN_U32("graphics/berries/liechi.gbapal.lz");
const u32 gBerryPalette_Ganlon[] = INCBIN_U32("graphics/berries/ganlon.gbapal.lz");
const u32 gBerryPalette_Salac[] = INCBIN_U32("graphics/berries/salac.gbapal.lz");
const u32 gBerryPalette_Petaya[] = INCBIN_U32("graphics/berries/petaya.gbapal.lz");
const u32 gBerryPalette_Apicot[] = INCBIN_U32("graphics/berries/apicot.gbapal.lz");
const u32 gBerryPalette_Lansat[] = INCBIN_U32("graphics/berries/lansat.gbapal.lz");
const u32 gBerryPalette_Starf[] = INCBIN_U32("graphics/berries/starf.gbapal.lz");
const u32 gBerryPalette_Enigma[] = INCBIN_U32("graphics/berries/enigma.gbapal.lz");
const u32 gBerryPalette_Chilan[] = INCBIN_U32("graphics/berries/chilan.gbapal.lz");
const u32 gBerryPalette_Occa[] = INCBIN_U32("graphics/berries/occa.gbapal.lz");
const u32 gBerryPalette_Passho[] = INCBIN_U32("graphics/berries/passho.gbapal.lz");
const u32 gBerryPalette_Wacan[] = INCBIN_U32("graphics/berries/wacan.gbapal.lz");
@ -127,5 +126,18 @@ const u32 gBerryPalette_Kasib[] = INCBIN_U32("graphics/berries/kasib.gbapal.lz")
const u32 gBerryPalette_Haban[] = INCBIN_U32("graphics/berries/haban.gbapal.lz");
const u32 gBerryPalette_Colbur[] = INCBIN_U32("graphics/berries/colbur.gbapal.lz");
const u32 gBerryPalette_Babiri[] = INCBIN_U32("graphics/berries/babiri.gbapal.lz");
const u32 gBerryPalette_Chilan[] = INCBIN_U32("graphics/berries/chilan.gbapal.lz");
const u32 gBerryPalette_Roseli[] = INCBIN_U32("graphics/berries/roseli.gbapal.lz");
const u32 gBerryPalette_Liechi[] = INCBIN_U32("graphics/berries/liechi.gbapal.lz");
const u32 gBerryPalette_Ganlon[] = INCBIN_U32("graphics/berries/ganlon.gbapal.lz");
const u32 gBerryPalette_Salac[] = INCBIN_U32("graphics/berries/salac.gbapal.lz");
const u32 gBerryPalette_Petaya[] = INCBIN_U32("graphics/berries/petaya.gbapal.lz");
const u32 gBerryPalette_Apicot[] = INCBIN_U32("graphics/berries/apicot.gbapal.lz");
const u32 gBerryPalette_Lansat[] = INCBIN_U32("graphics/berries/lansat.gbapal.lz");
const u32 gBerryPalette_Starf[] = INCBIN_U32("graphics/berries/starf.gbapal.lz");
const u32 gBerryPalette_Enigma[] = INCBIN_U32("graphics/berries/enigma.gbapal.lz");
const u32 gBerryPalette_Micle[] = INCBIN_U32("graphics/berries/micle.gbapal.lz");
const u32 gBerryPalette_Custap[] = INCBIN_U32("graphics/berries/custap.gbapal.lz");
const u32 gBerryPalette_Jaboca[] = INCBIN_U32("graphics/berries/jaboca.gbapal.lz");
const u32 gBerryPalette_Rowap[] = INCBIN_U32("graphics/berries/rowap.gbapal.lz");
const u32 gBerryPalette_Kee[] = INCBIN_U32("graphics/berries/kee.gbapal.lz");
const u32 gBerryPalette_Maranga[] = INCBIN_U32("graphics/berries/maranga.gbapal.lz");

View File

@ -4,36 +4,42 @@ const u32 gInterfacePal_PokeBall[] = INCBIN_U32("graphics/interface/ball/poke.gb
const u32 gInterfaceGfx_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.4bpp.lz");
const u32 gInterfacePal_GreatBall[] = INCBIN_U32("graphics/interface/ball/great.gbapal.lz");
const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz");
const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz");
const u32 gInterfaceGfx_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.4bpp.lz");
const u32 gInterfacePal_UltraBall[] = INCBIN_U32("graphics/interface/ball/ultra.gbapal.lz");
const u32 gInterfaceGfx_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.4bpp.lz");
const u32 gInterfacePal_MasterBall[] = INCBIN_U32("graphics/interface/ball/master.gbapal.lz");
const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz");
const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz");
const u32 gInterfaceGfx_HealBall[] = INCBIN_U32("graphics/interface/ball/heal.4bpp.lz");
const u32 gInterfacePal_HealBall[] = INCBIN_U32("graphics/interface/ball/heal.gbapal.lz");
const u32 gInterfaceGfx_NetBall[] = INCBIN_U32("graphics/interface/ball/net.4bpp.lz");
const u32 gInterfacePal_NetBall[] = INCBIN_U32("graphics/interface/ball/net.gbapal.lz");
const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz");
const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz");
const u32 gInterfaceGfx_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.4bpp.lz");
const u32 gInterfacePal_NestBall[] = INCBIN_U32("graphics/interface/ball/nest.gbapal.lz");
const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz");
const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz");
const u32 gInterfaceGfx_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.4bpp.lz");
const u32 gInterfacePal_DiveBall[] = INCBIN_U32("graphics/interface/ball/dive.gbapal.lz");
const u32 gInterfaceGfx_DuskBall[] = INCBIN_U32("graphics/interface/ball/dusk.4bpp.lz");
const u32 gInterfacePal_DuskBall[] = INCBIN_U32("graphics/interface/ball/dusk.gbapal.lz");
const u32 gInterfaceGfx_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.4bpp.lz");
const u32 gInterfacePal_TimerBall[] = INCBIN_U32("graphics/interface/ball/timer.gbapal.lz");
const u32 gInterfaceGfx_QuickBall[] = INCBIN_U32("graphics/interface/ball/quick.4bpp.lz");
const u32 gInterfacePal_QuickBall[] = INCBIN_U32("graphics/interface/ball/quick.gbapal.lz");
const u32 gInterfaceGfx_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.4bpp.lz");
const u32 gInterfacePal_RepeatBall[] = INCBIN_U32("graphics/interface/ball/repeat.gbapal.lz");
const u32 gInterfaceGfx_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.4bpp.lz");
const u32 gInterfacePal_LuxuryBall[] = INCBIN_U32("graphics/interface/ball/luxury.gbapal.lz");
const u32 gInterfaceGfx_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.4bpp.lz");
const u32 gInterfacePal_PremierBall[] = INCBIN_U32("graphics/interface/ball/premier.gbapal.lz");
const u32 gInterfaceGfx_LevelBall[] = INCBIN_U32("graphics/interface/ball/level.4bpp.lz");
const u32 gInterfacePal_LevelBall[] = INCBIN_U32("graphics/interface/ball/level.gbapal.lz");
@ -49,34 +55,28 @@ const u32 gInterfacePal_FriendBall[] = INCBIN_U32("graphics/interface/ball/frien
const u32 gInterfaceGfx_LoveBall[] = INCBIN_U32("graphics/interface/ball/love.4bpp.lz");
const u32 gInterfacePal_LoveBall[] = INCBIN_U32("graphics/interface/ball/love.gbapal.lz");
const u32 gInterfaceGfx_HeavyBall[] = INCBIN_U32("graphics/interface/ball/heavy.4bpp.lz");
const u32 gInterfacePal_HeavyBall[] = INCBIN_U32("graphics/interface/ball/heavy.gbapal.lz");
const u32 gInterfaceGfx_FastBall[] = INCBIN_U32("graphics/interface/ball/fast.4bpp.lz");
const u32 gInterfacePal_FastBall[] = INCBIN_U32("graphics/interface/ball/fast.gbapal.lz");
const u32 gInterfaceGfx_SportBall[] = INCBIN_U32("graphics/interface/ball/sport.4bpp.lz");
const u32 gInterfacePal_SportBall[] = INCBIN_U32("graphics/interface/ball/sport.gbapal.lz");
const u32 gInterfaceGfx_DuskBall[] = INCBIN_U32("graphics/interface/ball/dusk.4bpp.lz");
const u32 gInterfacePal_DuskBall[] = INCBIN_U32("graphics/interface/ball/dusk.gbapal.lz");
const u32 gInterfaceGfx_QuickBall[] = INCBIN_U32("graphics/interface/ball/quick.4bpp.lz");
const u32 gInterfacePal_QuickBall[] = INCBIN_U32("graphics/interface/ball/quick.gbapal.lz");
const u32 gInterfaceGfx_HealBall[] = INCBIN_U32("graphics/interface/ball/heal.4bpp.lz");
const u32 gInterfacePal_HealBall[] = INCBIN_U32("graphics/interface/ball/heal.gbapal.lz");
const u32 gInterfaceGfx_CherishBall[] = INCBIN_U32("graphics/interface/ball/cherish.4bpp.lz");
const u32 gInterfacePal_CherishBall[] = INCBIN_U32("graphics/interface/ball/cherish.gbapal.lz");
const u32 gInterfaceGfx_ParkBall[] = INCBIN_U32("graphics/interface/ball/park.4bpp.lz");
const u32 gInterfacePal_ParkBall[] = INCBIN_U32("graphics/interface/ball/park.gbapal.lz");
const u32 gInterfaceGfx_HeavyBall[] = INCBIN_U32("graphics/interface/ball/heavy.4bpp.lz");
const u32 gInterfacePal_HeavyBall[] = INCBIN_U32("graphics/interface/ball/heavy.gbapal.lz");
const u32 gInterfaceGfx_DreamBall[] = INCBIN_U32("graphics/interface/ball/dream.4bpp.lz");
const u32 gInterfacePal_DreamBall[] = INCBIN_U32("graphics/interface/ball/dream.gbapal.lz");
const u32 gInterfaceGfx_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.4bpp.lz");
const u32 gInterfacePal_SafariBall[] = INCBIN_U32("graphics/interface/ball/safari.gbapal.lz");
const u32 gInterfaceGfx_SportBall[] = INCBIN_U32("graphics/interface/ball/sport.4bpp.lz");
const u32 gInterfacePal_SportBall[] = INCBIN_U32("graphics/interface/ball/sport.gbapal.lz");
const u32 gInterfaceGfx_ParkBall[] = INCBIN_U32("graphics/interface/ball/park.4bpp.lz");
const u32 gInterfacePal_ParkBall[] = INCBIN_U32("graphics/interface/ball/park.gbapal.lz");
const u32 gInterfaceGfx_BeastBall[] = INCBIN_U32("graphics/interface/ball/beast.4bpp.lz");
const u32 gInterfacePal_BeastBall[] = INCBIN_U32("graphics/interface/ball/beast.gbapal.lz");
const u32 gInterfaceGfx_CherishBall[] = INCBIN_U32("graphics/interface/ball/cherish.4bpp.lz");
const u32 gInterfacePal_CherishBall[] = INCBIN_U32("graphics/interface/ball/cherish.gbapal.lz");
const u32 gOpenPokeballGfx[] = INCBIN_U32("graphics/interface/ball_open.4bpp.lz");

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,59 +1,3 @@
static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
@ -68,187 +12,33 @@ static const struct SpriteFrameImage sPicTable_CheriBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Cheri[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
static const struct SpriteFrameImage sPicTable_PechaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PechaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Pecha[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -264,33 +54,33 @@ static const struct SpriteFrameImage sPicTable_RawstBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Rawst[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_ChestoBerryTree[] = {
static const struct SpriteFrameImage sPicTable_LeppaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_ChestoBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LeppaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Chesto[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Leppa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_OranBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -320,6 +110,20 @@ static const struct SpriteFrameImage sPicTable_PersimBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Persim[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_LumBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LumBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lum[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
@ -334,33 +138,173 @@ static const struct SpriteFrameImage sPicTable_SitrusBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Sitrus[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_AspearBerryTree[] = {
static const struct SpriteFrameImage sPicTable_FigyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AspearBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_FigyBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Aspear[] = {3, 4, 3, 3, 3};
const u8 gBerryTreePaletteSlotTable_Figy[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
static const struct SpriteFrameImage sPicTable_WikiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WikiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Wiki[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_MagoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_MagoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Mago[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_AguavBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_AguavBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Aguav[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_IapapaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_IapapaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Iapapa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_RazzBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RazzBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Razz[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_WepearBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_WepearBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Wepear[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_PomegBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PomegBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pomeg[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_KelpsyBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_KelpsyBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Kelpsy[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_HondewBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_HondewBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Hondew[] = {3, 4, 5, 5, 5};
static const struct SpriteFrameImage sPicTable_GrepaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_GrepaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Grepa[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -376,19 +320,61 @@ static const struct SpriteFrameImage sPicTable_CornnBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Cornn[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
static const struct SpriteFrameImage sPicTable_RabutaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 5),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RabutaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
const u8 gBerryTreePaletteSlotTable_Rabuta[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_NomelBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_NomelBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Nomel[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_SpelonBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_SpelonBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Spelon[] = {3, 4, 3, 3, 3};
static const struct SpriteFrameImage sPicTable_PamtreBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_PamtreBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Pamtre[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
@ -404,20 +390,6 @@ static const struct SpriteFrameImage sPicTable_DurinBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Durin[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_TamatoBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_TamatoBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Tamato[] = {3, 4, 2, 2, 2};
static const struct SpriteFrameImage sPicTable_OccaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
@ -572,78 +544,163 @@ static const struct SpriteFrameImage sPicTable_RoseliBerryTree[] = {
const u8 gBerryTreePaletteSlotTable_Roseli[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_LiechiBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LiechiBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Liechi[] = {3, 4, 4, 4, 4};
static const struct SpriteFrameImage sPicTable_LansatBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_LansatBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Lansat[] = {3, 4, 2, 2, 2};
const struct SpriteFrameImage sPicTable_MicleBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_MicleBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Micle[] = {3, 4, 4, 4, 4};
const struct SpriteFrameImage sPicTable_CustapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_CustapBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Custap[] = {3, 4, 5, 5, 5};
const struct SpriteFrameImage sPicTable_JabocaBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_JabocaBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Jaboca[] = {3, 4, 5, 5, 5};
const struct SpriteFrameImage sPicTable_RowapBerryTree[] = {
overworld_frame(gObjectEventPic_BerryTreeDirtPile, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 0),
overworld_frame(gObjectEventPic_BerryTreeSprout, 2, 2, 1),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 0),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 1),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 2),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 3),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 4),
overworld_frame(gObjectEventPic_RowapBerryTree, 2, 4, 5),
};
const u8 gBerryTreePaletteSlotTable_Rowap[] = {3, 4, 5, 5, 5};
const u8 gDeadBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES};
const u8 gBerryTreeObjectEventGraphicsIdTable[] = {OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_EARLY_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES, OBJ_EVENT_GFX_BERRY_TREE_LATE_STAGES};
const 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_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_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_CHILAN_BERRY - FIRST_BERRY_INDEX] = sPicTable_GrepaBerryTree,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = sPicTable_RoseliBerryTree,
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = NULL,
[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[] = {
@ -682,14 +739,7 @@ const u8 *const gBerryTreePaletteSlotTablePointers[] = {
[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_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_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,
@ -706,14 +756,22 @@ const u8 *const gBerryTreePaletteSlotTablePointers[] = {
[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_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Grepa,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreePaletteSlotTable_Roseli,
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = NULL,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = NULL,
[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,
};
const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = {
@ -752,14 +810,7 @@ const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = {
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_OCCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PASSHO_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_WACAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
@ -776,12 +827,20 @@ const u8 *const gBerryTreeObjectEventGraphicsIdTablePointers[] = {
[ITEM_HABAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_COLBUR_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_BABIRI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CHILAN_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROSELI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MICLE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_CUSTAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_JABOCA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ROWAP_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_KEE_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_MARANGA_BERRY - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
[ITEM_ENIGMA_BERRY_E_READER - FIRST_BERRY_INDEX] = gBerryTreeObjectEventGraphicsIdTable,
};

View File

@ -255,36 +255,34 @@ const u16 gObjectEventPal_SSTidal[] = INCBIN_U16("graphics/object_events/palette
const u32 gFieldEffectObjectPic_Sparkle[] = INCBIN_U32("graphics/field_effects/pics/sparkle.4bpp");
const u32 gObjectEventPic_BerryTreeDirtPile[] = INCBIN_U32("graphics/object_events/pics/berry_trees/dirt_pile.4bpp");
const u32 gObjectEventPic_BerryTreeSprout[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sprout.4bpp");
const u32 gObjectEventPic_PechaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pecha.4bpp");
const u32 gObjectEventPic_KelpsyBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/kelpsy.4bpp");
const u32 gObjectEventPic_WepearBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/wepear.4bpp");
const u32 gObjectEventPic_IapapaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/iapapa.4bpp");
const u32 gObjectEventPic_CheriBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/cheri.4bpp");
const u32 gObjectEventPic_FigyBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/figy.4bpp");
const u32 gObjectEventPic_MagoBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/mago.4bpp");
const u32 gObjectEventPic_LumBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/lum.4bpp");
const u32 gObjectEventPic_RazzBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/razz.4bpp");
const u32 gObjectEventPic_GrepaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/grepa.4bpp");
const u32 gObjectEventPic_RabutaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rabuta.4bpp");
const u32 gObjectEventPic_NomelBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/nomel.4bpp");
const u32 gObjectEventPic_LeppaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/leppa.4bpp");
const u32 gObjectEventPic_LiechiBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/liechi.4bpp");
const u32 gObjectEventPic_HondewBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/hondew.4bpp");
const u32 gObjectEventPic_AguavBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/aguav.4bpp");
const u32 gObjectEventPic_WikiBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/wiki.4bpp");
const u32 gObjectEventPic_PomegBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pomeg.4bpp");
const u32 gObjectEventPic_RawstBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rawst.4bpp");
const u32 gObjectEventPic_SpelonBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/spelon.4bpp");
const u32 gObjectEventPic_ChestoBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/chesto.4bpp");
const u32 gObjectEventPic_PechaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pecha.4bpp");
const u32 gObjectEventPic_RawstBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rawst.4bpp");
const u32 gObjectEventPic_AspearBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/aspear.4bpp");
const u32 gObjectEventPic_LeppaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/leppa.4bpp");
const u32 gObjectEventPic_OranBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/oran.4bpp");
const u32 gObjectEventPic_PersimBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/persim.4bpp");
const u32 gObjectEventPic_LumBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/lum.4bpp");
const u32 gObjectEventPic_SitrusBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/sitrus.4bpp");
const u32 gObjectEventPic_AspearBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/aspear.4bpp");
const u32 gObjectEventPic_PamtreBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pamtre.4bpp");
const u32 gObjectEventPic_CornnBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/cornn.4bpp");
const u32 gObjectEventPic_LansatBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/lansat.4bpp");
const u32 gObjectEventPic_DurinBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/durin.4bpp");
const u32 gObjectEventPic_FigyBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/figy.4bpp");
const u32 gObjectEventPic_WikiBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/wiki.4bpp");
const u32 gObjectEventPic_MagoBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/mago.4bpp");
const u32 gObjectEventPic_AguavBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/aguav.4bpp");
const u32 gObjectEventPic_IapapaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/iapapa.4bpp");
const u32 gObjectEventPic_RazzBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/razz.4bpp");
const u32 gObjectEventPic_WepearBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/wepear.4bpp");
const u32 gObjectEventPic_PomegBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pomeg.4bpp");
const u32 gObjectEventPic_KelpsyBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/kelpsy.4bpp");
const u32 gObjectEventPic_HondewBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/hondew.4bpp");
const u32 gObjectEventPic_GrepaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/grepa.4bpp");
const u32 gObjectEventPic_TamatoBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/tamato.4bpp");
const u32 gObjectEventPic_CornnBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/cornn.4bpp");
const u32 gObjectEventPic_RabutaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rabuta.4bpp");
const u32 gObjectEventPic_NomelBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/nomel.4bpp");
const u32 gObjectEventPic_SpelonBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/spelon.4bpp");
const u32 gObjectEventPic_PamtreBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/pamtre.4bpp");
const u32 gObjectEventPic_DurinBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/durin.4bpp");
const u32 gObjectEventPic_OccaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/occa.4bpp");
const u32 gObjectEventPic_YacheBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/yache.4bpp");
const u32 gObjectEventPic_ChopleBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/chople.4bpp");
@ -296,6 +294,12 @@ const u32 gObjectEventPic_KasibBerryTree[] = INCBIN_U32("graphics/object_events/
const u32 gObjectEventPic_HabanBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/haban.4bpp");
const u32 gObjectEventPic_ColburBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/colbur.4bpp");
const u32 gObjectEventPic_RoseliBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/roseli.4bpp");
const u32 gObjectEventPic_LiechiBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/liechi.4bpp");
const u32 gObjectEventPic_LansatBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/lansat.4bpp");
const u32 gObjectEventPic_MicleBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/micle.4bpp");
const u32 gObjectEventPic_CustapBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/custap.4bpp");
const u32 gObjectEventPic_JabocaBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/jaboca.4bpp");
const u32 gObjectEventPic_RowapBerryTree[] = INCBIN_U32("graphics/object_events/pics/berry_trees/rowap.4bpp");
const u32 gFieldEffectObjectPic_SurfBlob[] = INCBIN_U32("graphics/field_effects/pics/surf_blob.4bpp");
const u32 gObjectEventPic_QuintyPlump[] = INCBIN_U32("graphics/object_events/pics/people/quinty_plump.4bpp");
const u16 gObjectEventPal_QuintyPlump[] = INCBIN_U16("graphics/object_events/palettes/quinty_plump.gbapal");

View File

@ -1230,6 +1230,56 @@ static const u16 sTMHMMoves[] =
[ITEM_TM48 - ITEM_TM01] = MOVE_SKILL_SWAP,
[ITEM_TM49 - ITEM_TM01] = MOVE_SNATCH,
[ITEM_TM50 - ITEM_TM01] = MOVE_OVERHEAT,
[ITEM_TM51 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM52 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM53 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM54 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM55 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM56 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM57 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM58 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM59 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM60 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM61 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM62 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM63 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM64 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM65 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM66 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM67 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM68 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM69 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM70 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM71 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM72 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM73 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM74 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM75 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM76 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM77 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM78 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM79 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM80 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM81 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM82 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM83 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM84 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM85 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM86 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM87 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM88 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM89 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM90 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM91 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM92 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM93 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM94 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM95 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM96 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM97 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM98 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM99 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_TM100 - ITEM_TM01] = MOVE_NONE, // Todo
[ITEM_HM01 - ITEM_TM01] = MOVE_CUT,
[ITEM_HM02 - ITEM_TM01] = MOVE_FLY,
[ITEM_HM03 - ITEM_TM01] = MOVE_SURF,

View File

@ -2345,7 +2345,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45,
.expYield = 132,
.evYield_Attack = 1,
.item2 = ITEM_STICK,
.item2 = ITEM_LEEK,
.genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20,
.friendship = 70,
@ -24449,7 +24449,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45,
.expYield = 177,
.evYield_Attack = 2,
.item2 = ITEM_STICK,
.item2 = ITEM_LEEK,
.genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20,
.friendship = 70,
@ -27456,7 +27456,7 @@ const struct BaseStats gBaseStats[] =
.catchRate = 45,
.expYield = 132,
.evYield_Attack = 1,
.item1 = ITEM_STICK,
.item1 = ITEM_LEEK,
.genderRatio = PERCENT_FEMALE(50),
.eggCycles = 20,
.friendship = 70,

View File

@ -105,7 +105,7 @@ const struct Evolution gEvolutionTable[NUM_SPECIES][EVOS_PER_MON] =
{EVO_SPECIFIC_MAP, MAP_SHOAL_CAVE_LOW_TIDE_ICE_ROOM, SPECIES_GLACEON},
{EVO_ITEM, ITEM_ICE_STONE, SPECIES_GLACEON},
{EVO_MOVE_TYPE, TYPE_FAIRY, SPECIES_SYLVEON}},
[SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UP_GRADE, SPECIES_PORYGON2}},
[SPECIES_PORYGON] = {{EVO_TRADE_ITEM, ITEM_UPGRADE, SPECIES_PORYGON2}},
[SPECIES_OMANYTE] = {{EVO_LEVEL, 40, SPECIES_OMASTAR}},
[SPECIES_KABUTO] = {{EVO_LEVEL, 40, SPECIES_KABUTOPS}},
[SPECIES_AERODACTYL] = {{EVO_MEGA_EVOLUTION, ITEM_AERODACTYLITE, SPECIES_AERODACTYL_MEGA}},

View File

@ -36,7 +36,7 @@ const u8 gItemEffect_MaxPotion[7] = {
const u8 gItemEffect_HyperPotion[7] = {
[4] = ITEM4_HEAL_HP,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 120, // Amount of HP to recover
#else
[6] = 200, // Amount of HP to recover
@ -45,7 +45,7 @@ const u8 gItemEffect_HyperPotion[7] = {
const u8 gItemEffect_SuperPotion[7] = {
[4] = ITEM4_HEAL_HP,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 60, // Amount of HP to recover
#else
[6] = 50, // Amount of HP to recover
@ -68,7 +68,7 @@ const u8 gItemEffect_MaxRevive[7] = {
const u8 gItemEffect_FreshWater[7] = {
[4] = ITEM4_HEAL_HP,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 30, // Amount of HP to recover
#else
[6] = 50, // Amount of HP to recover
@ -77,7 +77,7 @@ const u8 gItemEffect_FreshWater[7] = {
const u8 gItemEffect_SodaPop[7] = {
[4] = ITEM4_HEAL_HP,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 50, // Amount of HP to recover
#else
[6] = 60, // Amount of HP to recover
@ -86,7 +86,7 @@ const u8 gItemEffect_SodaPop[7] = {
const u8 gItemEffect_Lemonade[7] = {
[4] = ITEM4_HEAL_HP,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 70, // Amount of HP to recover
#else
[6] = 80, // Amount of HP to recover
@ -101,7 +101,7 @@ const u8 gItemEffect_MoomooMilk[7] = {
const u8 gItemEffect_EnergyPowder[10] = {
[4] = ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 60, // Amount of HP to recover
#else
[6] = 50, // Amount of HP to recover
@ -114,7 +114,7 @@ const u8 gItemEffect_EnergyPowder[10] = {
const u8 gItemEffect_EnergyRoot[10] = {
[4] = ITEM4_HEAL_HP,
[5] = ITEM5_FRIENDSHIP_ALL,
#if I_LEGACY_HEALING_ITEMS >= GEN_7
#if I_HEALTH_RECOVERY >= GEN_7
[6] = 120, // Amount of HP to recover
#else
[6] = 200, // Amount of HP to recover
@ -440,7 +440,11 @@ const u8 gItemEffect_LumBerry[6] = {
const u8 gItemEffect_SitrusBerry[7] = {
[4] = ITEM4_HEAL_HP,
#if I_SITRUS_BERRY_HEAL >= GEN_4
[6] = ITEM6_HEAL_HP_QUARTER,
#else
[6] = 30, // Amount of HP to recover
#endif
};
#define EV_BERRY_FRIENDSHIP_CHANGE \

View File

@ -1,5 +1,5 @@
#define TMHM_LEARNSET(moves) {(u32)(moves), ((u64)(moves) >> 32)}
#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH))
#define TMHM(tmhm) ((u64)1 << (ITEM_##tmhm - ITEM_TM01_FOCUS_PUNCH - ((ITEM_##tmhm > ITEM_TM100) ? 50 : 0)))
// This table determines which TMs and HMs a species is capable of learning.
// Each entry is a 64-bit bit array spread across two 32-bit values, with

File diff suppressed because it is too large Load Diff

View File

@ -165,7 +165,7 @@ bool8 HasAtLeastOneBerry(void)
{
u16 i;
for (i = FIRST_BERRY_INDEX; i < ITEM_BRIGHT_POWDER; i++)
for (i = FIRST_BERRY_INDEX; i <= LAST_BERRY_INDEX; i++)
{
if (CheckBagHasItem(i, 1) == TRUE)
{

View File

@ -1549,7 +1549,7 @@ static void OpenContextMenu(u8 taskId)
gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_BerryBlenderCrush);
break;
case ITEMMENULOCATION_APPRENTICE:
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY)
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY_E_READER)
{
gBagMenu->contextMenuItemsPtr = sContextMenuItems_Apprentice;
gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_Apprentice);
@ -1561,7 +1561,7 @@ static void OpenContextMenu(u8 taskId)
}
break;
case ITEMMENULOCATION_FAVOR_LADY:
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY)
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY_E_READER)
{
gBagMenu->contextMenuItemsPtr = sContextMenuItems_FavorLady;
gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_FavorLady);
@ -1573,7 +1573,7 @@ static void OpenContextMenu(u8 taskId)
}
break;
case ITEMMENULOCATION_QUIZ_LADY:
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY)
if (!ItemId_GetImportance(gSpecialVar_ItemId) && gSpecialVar_ItemId != ITEM_ENIGMA_BERRY_E_READER)
{
gBagMenu->contextMenuItemsPtr = sContextMenuItems_QuizLady;
gBagMenu->contextMenuNumItems = ARRAY_COUNT(sContextMenuItems_QuizLady);

View File

@ -321,73 +321,74 @@ static const struct SpriteTemplate gBerryPicRotatingSpriteTemplate =
static const struct CompressedTilesPal 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_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_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_CHILAN_BERRY) - 1] = {gBerryPic_Chilan, gBerryPalette_Chilan},
[ITEM_TO_BERRY(ITEM_ROSELI_BERRY) - 1] = {gBerryPic_Roseli, gBerryPalette_Roseli},
[ITEM_TO_BERRY(ITEM_MICLE_BERRY) - 1] = {},
[ITEM_TO_BERRY(ITEM_CUSTAP_BERRY) - 1] = {},
[ITEM_TO_BERRY(ITEM_JABOCA_BERRY) - 1] = {},
[ITEM_TO_BERRY(ITEM_ROWAP_BERRY) - 1] = {},
[ITEM_TO_BERRY(ITEM_KEE_BERRY) - 1] = {},
[ITEM_TO_BERRY(ITEM_MARANGA_BERRY)- 1] = {},
[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 =
@ -618,7 +619,7 @@ static void LoadBerryGfx(u8 berryId)
{
struct CompressedSpritePalette pal;
if (berryId == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY) - 1 && IsEnigmaBerryValid())
if (berryId == ITEM_TO_BERRY(ITEM_ENIGMA_BERRY_E_READER) - 1 && IsEnigmaBerryValid())
{
// unknown empty if statement
}

View File

@ -99,7 +99,7 @@ static const struct YesNoFuncTable sUseTMHMYesNoFuncTable =
static void SetUpItemUseCallback(u8 taskId)
{
u8 type;
if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY)
if (gSpecialVar_ItemId == ITEM_ENIGMA_BERRY_E_READER)
type = gTasks[taskId].tEnigmaBerryType - 1;
else
type = ItemId_GetType(gSpecialVar_ItemId) - 1;

View File

@ -276,8 +276,8 @@ u8 GetLRKeysPressedAndHeld(void)
bool8 IsHoldingItemAllowed(u16 itemId)
{
// Enigma Berry can't be held in link areas
if (itemId == ITEM_ENIGMA_BERRY
// e-Reader Enigma Berry can't be held in link areas
if (itemId == ITEM_ENIGMA_BERRY_E_READER
&& ((gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(TRADE_CENTER)
&& gSaveBlock1Ptr->location.mapNum == MAP_NUM(TRADE_CENTER))
|| InUnionRoom() == TRUE))

View File

@ -1962,7 +1962,9 @@ static u8 CanMonLearnTMTutor(struct Pokemon *mon, u16 item, u8 tutor)
if (item >= ITEM_TM01)
{
if (!CanMonLearnTMHM(mon, item - ITEM_TM01))
if (item > ITEM_TM50 && item < ITEM_HM01)
return CANNOT_LEARN_MOVE;
else if (!CanMonLearnTMHM(mon, item - ITEM_TM01 - ((item > ITEM_TM100) ? 50 : 0)))
return CANNOT_LEARN_MOVE;
else
move = ItemIdToBattleMoveId(item);
@ -4213,7 +4215,7 @@ static bool8 IsHPRecoveryItem(u16 item)
{
const u8 *effect;
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
effect = gSaveBlock1Ptr->enigmaBerry.itemEffect;
else
effect = gItemEffectTable[item - ITEM_POTION];
@ -4636,7 +4638,7 @@ void ItemUseCB_PPRecovery(u8 taskId, TaskFunc task)
const u8 *effect;
u16 item = gSpecialVar_ItemId;
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
effect = gSaveBlock1Ptr->enigmaBerry.itemEffect;
else
effect = gItemEffectTable[item - ITEM_POTION];
@ -5278,7 +5280,7 @@ u8 GetItemEffectType(u16 item)
return ITEM_EFFECT_NONE;
// Read the item's effect properties.
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
itemEffect = gSaveBlock1Ptr->enigmaBerry.itemEffect;
else
itemEffect = gItemEffectTable[item - ITEM_POTION];

View File

@ -46,92 +46,92 @@ static u16 GetBattlerPokeballItemId(u8 battlerId);
#define GFX_TAG_POKEBALL 55000
#define GFX_TAG_GREATBALL 55001
#define GFX_TAG_SAFARIBALL 55002
#define GFX_TAG_ULTRABALL 55003
#define GFX_TAG_MASTERBALL 55004
#define GFX_TAG_NETBALL 55005
#define GFX_TAG_DIVEBALL 55006
#define GFX_TAG_ULTRABALL 55002
#define GFX_TAG_MASTERBALL 55003
#define GFX_TAG_PREMIERBALL 55004
#define GFX_TAG_HEALBALL 55005
#define GFX_TAG_NETBALL 55006
#define GFX_TAG_NESTBALL 55007
#define GFX_TAG_REPEATBALL 55008
#define GFX_TAG_TIMERBALL 55009
#define GFX_TAG_LUXURYBALL 55010
#define GFX_TAG_PREMIERBALL 55011
#define GFX_TAG_LEVELBALL 55012
#define GFX_TAG_LUREBALL 55013
#define GFX_TAG_MOONBALL 55014
#define GFX_TAG_FRIENDBALL 55015
#define GFX_TAG_LOVEBALL 55016
#define GFX_TAG_HEAVYBALL 55017
#define GFX_TAG_FASTBALL 55018
#define GFX_TAG_SPORTBALL 55019
#define GFX_TAG_DUSKBALL 55020
#define GFX_TAG_QUICKBALL 55021
#define GFX_TAG_HEALBALL 55022
#define GFX_TAG_CHERISHBALL 55023
#define GFX_TAG_DIVEBALL 55008
#define GFX_TAG_DUSKBALL 55009
#define GFX_TAG_TIMERBALL 55010
#define GFX_TAG_QUICKBALL 55011
#define GFX_TAG_REPEATBALL 55012
#define GFX_TAG_LUXURYBALL 55013
#define GFX_TAG_LEVELBALL 55014
#define GFX_TAG_LUREBALL 55015
#define GFX_TAG_MOONBALL 55016
#define GFX_TAG_FRIENDBALL 55017
#define GFX_TAG_LOVEBALL 55018
#define GFX_TAG_FASTBALL 55019
#define GFX_TAG_HEAVYBALL 55020
#define GFX_TAG_DREAMBALL 55021
#define GFX_TAG_SAFARIBALL 55022
#define GFX_TAG_SPORTBALL 55023
#define GFX_TAG_PARKBALL 55024
#define GFX_TAG_DREAMBALL 55025
#define GFX_TAG_BEASTBALL 55026
#define GFX_TAG_BEASTBALL 55025
#define GFX_TAG_CHERISHBALL 55026
const struct CompressedSpriteSheet gBallSpriteSheets[POKEBALL_COUNT] =
{
[BALL_POKE] = {gInterfaceGfx_PokeBall, 384, GFX_TAG_POKEBALL},
[BALL_GREAT] = {gInterfaceGfx_GreatBall, 384, GFX_TAG_GREATBALL},
[BALL_SAFARI] = {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL},
[BALL_ULTRA] = {gInterfaceGfx_UltraBall, 384, GFX_TAG_ULTRABALL},
[BALL_MASTER] = {gInterfaceGfx_MasterBall, 384, GFX_TAG_MASTERBALL},
[BALL_NET] = {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL},
[BALL_DIVE] = {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL},
[BALL_NEST] = {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL},
[BALL_REPEAT] = {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL},
[BALL_TIMER] = {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL},
[BALL_LUXURY] = {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL},
[BALL_PREMIER] = {gInterfaceGfx_PremierBall, 384, GFX_TAG_PREMIERBALL},
[BALL_HEAL] = {gInterfaceGfx_HealBall, 384, GFX_TAG_HEALBALL},
[BALL_NET] = {gInterfaceGfx_NetBall, 384, GFX_TAG_NETBALL},
[BALL_NEST] = {gInterfaceGfx_NestBall, 384, GFX_TAG_NESTBALL},
[BALL_DIVE] = {gInterfaceGfx_DiveBall, 384, GFX_TAG_DIVEBALL},
[BALL_DUSK] = {gInterfaceGfx_DuskBall, 384, GFX_TAG_DUSKBALL},
[BALL_TIMER] = {gInterfaceGfx_TimerBall, 384, GFX_TAG_TIMERBALL},
[BALL_QUICK] = {gInterfaceGfx_QuickBall, 384, GFX_TAG_QUICKBALL},
[BALL_REPEAT] = {gInterfaceGfx_RepeatBall, 384, GFX_TAG_REPEATBALL},
[BALL_LUXURY] = {gInterfaceGfx_LuxuryBall, 384, GFX_TAG_LUXURYBALL},
[BALL_LEVEL] = {gInterfaceGfx_LevelBall, 384, GFX_TAG_LEVELBALL},
[BALL_LURE] = {gInterfaceGfx_LureBall, 384, GFX_TAG_LUREBALL},
[BALL_MOON] = {gInterfaceGfx_MoonBall, 384, GFX_TAG_MOONBALL},
[BALL_FRIEND] = {gInterfaceGfx_FriendBall, 384, GFX_TAG_FRIENDBALL},
[BALL_LOVE] = {gInterfaceGfx_LoveBall, 384, GFX_TAG_LOVEBALL},
[BALL_HEAVY] = {gInterfaceGfx_HeavyBall, 384, GFX_TAG_HEAVYBALL},
[BALL_FAST] = {gInterfaceGfx_FastBall, 384, GFX_TAG_FASTBALL},
[BALL_SPORT] = {gInterfaceGfx_SportBall, 384, GFX_TAG_SPORTBALL},
[BALL_DUSK] = {gInterfaceGfx_DuskBall, 384, GFX_TAG_DUSKBALL},
[BALL_QUICK] = {gInterfaceGfx_QuickBall, 384, GFX_TAG_QUICKBALL},
[BALL_HEAL] = {gInterfaceGfx_HealBall, 384, GFX_TAG_HEALBALL},
[BALL_CHERISH] = {gInterfaceGfx_CherishBall, 384, GFX_TAG_CHERISHBALL},
[BALL_PARK] = {gInterfaceGfx_ParkBall, 384, GFX_TAG_PARKBALL},
[BALL_HEAVY] = {gInterfaceGfx_HeavyBall, 384, GFX_TAG_HEAVYBALL},
[BALL_DREAM] = {gInterfaceGfx_DreamBall, 384, GFX_TAG_DREAMBALL},
[BALL_SAFARI] = {gInterfaceGfx_SafariBall, 384, GFX_TAG_SAFARIBALL},
[BALL_SPORT] = {gInterfaceGfx_SportBall, 384, GFX_TAG_SPORTBALL},
[BALL_PARK] = {gInterfaceGfx_ParkBall, 384, GFX_TAG_PARKBALL},
[BALL_BEAST] = {gInterfaceGfx_BeastBall, 384, GFX_TAG_BEASTBALL},
[BALL_CHERISH] = {gInterfaceGfx_CherishBall, 384, GFX_TAG_CHERISHBALL},
};
const struct CompressedSpritePalette gBallSpritePalettes[POKEBALL_COUNT] =
{
[BALL_POKE] = {gInterfacePal_PokeBall, GFX_TAG_POKEBALL},
[BALL_GREAT] = {gInterfacePal_GreatBall, GFX_TAG_GREATBALL},
[BALL_SAFARI] = {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL},
[BALL_ULTRA] = {gInterfacePal_UltraBall, GFX_TAG_ULTRABALL},
[BALL_MASTER] = {gInterfacePal_MasterBall, GFX_TAG_MASTERBALL},
[BALL_NET] = {gInterfacePal_NetBall, GFX_TAG_NETBALL},
[BALL_DIVE] = {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL},
[BALL_NEST] = {gInterfacePal_NestBall, GFX_TAG_NESTBALL},
[BALL_REPEAT] = {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL},
[BALL_TIMER] = {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL},
[BALL_LUXURY] = {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL},
[BALL_PREMIER] = {gInterfacePal_PremierBall, GFX_TAG_PREMIERBALL},
[BALL_HEAL] = {gInterfacePal_HealBall, GFX_TAG_HEALBALL},
[BALL_NET] = {gInterfacePal_NetBall, GFX_TAG_NETBALL},
[BALL_NEST] = {gInterfacePal_NestBall, GFX_TAG_NESTBALL},
[BALL_DIVE] = {gInterfacePal_DiveBall, GFX_TAG_DIVEBALL},
[BALL_DUSK] = {gInterfacePal_DuskBall, GFX_TAG_DUSKBALL},
[BALL_TIMER] = {gInterfacePal_TimerBall, GFX_TAG_TIMERBALL},
[BALL_QUICK] = {gInterfacePal_QuickBall, GFX_TAG_QUICKBALL},
[BALL_REPEAT] = {gInterfacePal_RepeatBall, GFX_TAG_REPEATBALL},
[BALL_LUXURY] = {gInterfacePal_LuxuryBall, GFX_TAG_LUXURYBALL},
[BALL_LEVEL] = {gInterfacePal_LevelBall, GFX_TAG_LEVELBALL},
[BALL_LURE] = {gInterfacePal_LureBall, GFX_TAG_LUREBALL},
[BALL_MOON] = {gInterfacePal_MoonBall, GFX_TAG_MOONBALL},
[BALL_FRIEND] = {gInterfacePal_FriendBall, GFX_TAG_FRIENDBALL},
[BALL_LOVE] = {gInterfacePal_LoveBall, GFX_TAG_LOVEBALL},
[BALL_HEAVY] = {gInterfacePal_HeavyBall, GFX_TAG_HEAVYBALL},
[BALL_FAST] = {gInterfacePal_FastBall, GFX_TAG_FASTBALL},
[BALL_SPORT] = {gInterfacePal_SportBall, GFX_TAG_SPORTBALL},
[BALL_DUSK] = {gInterfacePal_DuskBall, GFX_TAG_DUSKBALL},
[BALL_QUICK] = {gInterfacePal_QuickBall, GFX_TAG_QUICKBALL},
[BALL_HEAL] = {gInterfacePal_HealBall, GFX_TAG_HEALBALL},
[BALL_CHERISH] = {gInterfacePal_CherishBall, GFX_TAG_CHERISHBALL},
[BALL_PARK] = {gInterfacePal_ParkBall, GFX_TAG_PARKBALL},
[BALL_HEAVY] = {gInterfacePal_HeavyBall, GFX_TAG_HEAVYBALL},
[BALL_DREAM] = {gInterfacePal_DreamBall, GFX_TAG_DREAMBALL},
[BALL_SAFARI] = {gInterfacePal_SafariBall, GFX_TAG_SAFARIBALL},
[BALL_SPORT] = {gInterfacePal_SportBall, GFX_TAG_SPORTBALL},
[BALL_PARK] = {gInterfacePal_ParkBall, GFX_TAG_PARKBALL},
[BALL_BEAST] = {gInterfacePal_BeastBall, GFX_TAG_BEASTBALL},
[BALL_CHERISH] = {gInterfacePal_CherishBall, GFX_TAG_CHERISHBALL},
};
static const struct OamData sBallOamData =
@ -267,15 +267,6 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_SAFARIBALL,
.paletteTag = GFX_TAG_SAFARIBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_ULTRABALL,
.paletteTag = GFX_TAG_ULTRABALL,
@ -295,8 +286,8 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_NETBALL,
.paletteTag = GFX_TAG_NETBALL,
.tileTag = GFX_TAG_PREMIERBALL,
.paletteTag = GFX_TAG_PREMIERBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
@ -304,8 +295,17 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_DIVEBALL,
.paletteTag = GFX_TAG_DIVEBALL,
.tileTag = GFX_TAG_HEALBALL,
.paletteTag = GFX_TAG_HEALBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_NETBALL,
.paletteTag = GFX_TAG_NETBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
@ -322,8 +322,17 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_REPEATBALL,
.paletteTag = GFX_TAG_REPEATBALL,
.tileTag = GFX_TAG_DIVEBALL,
.paletteTag = GFX_TAG_DIVEBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_DUSKBALL,
.paletteTag = GFX_TAG_DUSKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
@ -339,6 +348,24 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_QUICKBALL,
.paletteTag = GFX_TAG_QUICKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_REPEATBALL,
.paletteTag = GFX_TAG_REPEATBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_LUXURYBALL,
.paletteTag = GFX_TAG_LUXURYBALL,
@ -349,15 +376,6 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_PREMIERBALL,
.paletteTag = GFX_TAG_PREMIERBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_LEVELBALL,
.paletteTag = GFX_TAG_LEVELBALL,
.oam = &sBallOamData,
@ -366,7 +384,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_LUREBALL,
.paletteTag = GFX_TAG_LUREBALL,
.oam = &sBallOamData,
@ -375,7 +393,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_MOONBALL,
.paletteTag = GFX_TAG_MOONBALL,
.oam = &sBallOamData,
@ -384,7 +402,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_FRIENDBALL,
.paletteTag = GFX_TAG_FRIENDBALL,
.oam = &sBallOamData,
@ -393,7 +411,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_LOVEBALL,
.paletteTag = GFX_TAG_LOVEBALL,
.oam = &sBallOamData,
@ -402,16 +420,7 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_HEAVYBALL,
.paletteTag = GFX_TAG_HEAVYBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_FASTBALL,
.paletteTag = GFX_TAG_FASTBALL,
.oam = &sBallOamData,
@ -420,61 +429,16 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_SPORTBALL,
.paletteTag = GFX_TAG_SPORTBALL,
{
.tileTag = GFX_TAG_HEAVYBALL,
.paletteTag = GFX_TAG_HEAVYBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_DUSKBALL,
.paletteTag = GFX_TAG_DUSKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_QUICKBALL,
.paletteTag = GFX_TAG_QUICKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_HEALBALL,
.paletteTag = GFX_TAG_HEALBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_CHERISHBALL,
.paletteTag = GFX_TAG_CHERISHBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_PARKBALL,
.paletteTag = GFX_TAG_PARKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_DREAMBALL,
.paletteTag = GFX_TAG_DREAMBALL,
.oam = &sBallOamData,
@ -483,7 +447,34 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
{
.tileTag = GFX_TAG_SAFARIBALL,
.paletteTag = GFX_TAG_SAFARIBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_SPORTBALL,
.paletteTag = GFX_TAG_SPORTBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_PARKBALL,
.paletteTag = GFX_TAG_PARKBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_BEASTBALL,
.paletteTag = GFX_TAG_BEASTBALL,
.oam = &sBallOamData,
@ -492,6 +483,15 @@ const struct SpriteTemplate gBallSpriteTemplates[POKEBALL_COUNT] =
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
{
.tileTag = GFX_TAG_CHERISHBALL,
.paletteTag = GFX_TAG_CHERISHBALL,
.oam = &sBallOamData,
.anims = sBallAnimSequences,
.images = NULL,
.affineAnims = sAffineAnim_BallRotate,
.callback = SpriteCB_BallThrow,
},
};
#define tFrames data[0]
@ -1444,12 +1444,10 @@ void LoadBallGfx(u8 ballId)
switch (ballId)
{
case BALL_DIVE:
case BALL_LUXURY:
case BALL_PREMIER:
case BALL_LEVEL ... POKEBALL_COUNT:
break;
default:
case BALL_POKE ... BALL_MASTER:
case BALL_NET ... BALL_NEST:
case BALL_REPEAT:
case BALL_SAFARI:
var = GetSpriteTileStartByTag(gBallSpriteSheets[ballId].tag);
LZDecompressVram(gOpenPokeballGfx, (void *)(OBJ_VRAM0 + 0x100 + var * 32));
break;

View File

@ -3563,7 +3563,7 @@ void ConvertPokemonToBattleTowerPokemon(struct Pokemon *mon, struct BattleTowerP
dest->species = GetMonData(mon, MON_DATA_SPECIES, NULL);
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
if (heldItem == ITEM_ENIGMA_BERRY)
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
heldItem = ITEM_NONE;
dest->heldItem = heldItem;
@ -5355,7 +5355,7 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
// Get item hold effect
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, NULL);
if (heldItem == ITEM_ENIGMA_BERRY)
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
{
if (gMain.inBattle)
holdEffect = gEnigmaBerries[gBattlerInMenuId].holdEffect;
@ -5392,11 +5392,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
// Skip using the item if it won't do anything
if (!ITEM_HAS_EFFECT(item))
return TRUE;
if (gItemEffectTable[item - ITEM_POTION] == NULL && item != ITEM_ENIGMA_BERRY)
if (gItemEffectTable[item - ITEM_POTION] == NULL && item != ITEM_ENIGMA_BERRY_E_READER)
return TRUE;
// Get item effect
if (item == ITEM_ENIGMA_BERRY)
if (item == ITEM_ENIGMA_BERRY_E_READER)
{
if (gMain.inBattle)
itemEffect = gEnigmaBerries[gActiveBattler].itemEffect;
@ -5766,6 +5766,11 @@ bool8 PokemonUseItemEffects(struct Pokemon *mon, u16 item, u8 partyIndex, u8 mov
case ITEM6_HEAL_HP_LVL_UP:
dataUnsigned = gBattleScripting.levelUpHP;
break;
case ITEM6_HEAL_HP_QUARTER:
dataUnsigned = GetMonData(mon, MON_DATA_MAX_HP, NULL) / 4;
if (dataUnsigned == 0)
dataUnsigned = 1;
break;
}
// Only restore HP if not at max health
@ -6029,10 +6034,10 @@ u8 GetItemEffectParamOffset(u16 itemId, u8 effectByte, u8 effectBit)
temp = gItemEffectTable[itemId - ITEM_POTION];
if (!temp && itemId != ITEM_ENIGMA_BERRY)
if (!temp && itemId != ITEM_ENIGMA_BERRY_E_READER)
return 0;
if (itemId == ITEM_ENIGMA_BERRY)
if (itemId == ITEM_ENIGMA_BERRY_E_READER)
{
temp = gEnigmaBerries[gActiveBattler].itemEffect;
}
@ -6151,7 +6156,7 @@ u8 *UseStatIncreaseItem(u16 itemId)
int i;
const u8 *itemEffect;
if (itemId == ITEM_ENIGMA_BERRY)
if (itemId == ITEM_ENIGMA_BERRY_E_READER)
{
if (gMain.inBattle)
itemEffect = gEnigmaBerries[gBattlerInMenuId].itemEffect;
@ -6253,7 +6258,7 @@ u16 GetEvolutionTargetSpecies(struct Pokemon *mon, u8 mode, u16 evolutionItem, u
u8 holdEffect;
u16 currentMap;
if (heldItem == ITEM_ENIGMA_BERRY)
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
holdEffect = gSaveBlock1Ptr->enigmaBerry.holdEffect;
else
holdEffect = ItemId_GetHoldEffect(heldItem);
@ -6723,7 +6728,7 @@ void AdjustFriendship(struct Pokemon *mon, u8 event)
species = GetMonData(mon, MON_DATA_SPECIES2, 0);
heldItem = GetMonData(mon, MON_DATA_HELD_ITEM, 0);
if (heldItem == ITEM_ENIGMA_BERRY)
if (heldItem == ITEM_ENIGMA_BERRY_E_READER)
{
if (gMain.inBattle)
holdEffect = gEnigmaBerries[0].holdEffect;

View File

@ -3406,11 +3406,11 @@ static void PrintHeldItemName(void)
const u8 *text;
int x;
if (sMonSummaryScreen->summary.item == ITEM_ENIGMA_BERRY
if (sMonSummaryScreen->summary.item == ITEM_ENIGMA_BERRY_E_READER
&& IsMultiBattle() == TRUE
&& (sMonSummaryScreen->curMonIndex == 1 || sMonSummaryScreen->curMonIndex == 4 || sMonSummaryScreen->curMonIndex == 5))
{
text = ItemId_GetName(ITEM_ENIGMA_BERRY);
text = ItemId_GetName(ITEM_ENIGMA_BERRY_E_READER);
}
else if (sMonSummaryScreen->summary.item == ITEM_NONE)
{

View File

@ -127,9 +127,9 @@ static bool8 CheckPartyMonHasHeldItem(u16 item)
bool8 DoesPartyHaveEnigmaBerry(void)
{
bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY);
bool8 hasItem = CheckPartyMonHasHeldItem(ITEM_ENIGMA_BERRY_E_READER);
if (hasItem == TRUE)
GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY), gStringVar1);
GetBerryNameByBerryType(ItemIdToBerryType(ITEM_ENIGMA_BERRY_E_READER), gStringVar1);
return hasItem;
}

View File

@ -956,22 +956,14 @@ void GabbyAndTyBeforeInterview(void)
else
gSaveBlock1Ptr->gabbyAndTyData.playerUsedHealingItem = FALSE;
if (!gBattleResults.usedMasterBall)
for (i = 0; i < POKEBALL_COUNT; i++)
{
for (i = 0; i < POKEBALL_COUNT - 1; i++)
if (gBattleResults.catchAttempts[i])
{
if (gBattleResults.catchAttempts[i])
{
gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE;
break;
}
gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE;
break;
}
}
else
{
// Player threw a Master Ball at Gabby and Ty
gSaveBlock1Ptr->gabbyAndTyData.playerThrewABall = TRUE;
}
TakeGabbyAndTyOffTheAir();
if (gSaveBlock1Ptr->gabbyAndTyData.lastMove == MOVE_NONE)
@ -1129,28 +1121,20 @@ void TryPutPokemonTodayOnAir(void)
sCurTVShowSlot = FindFirstEmptyRecordMixTVShowSlot(gSaveBlock1Ptr->tvShows);
if (sCurTVShowSlot != -1 && IsRecordMixShowAlreadySpawned(TVSHOW_POKEMON_TODAY_CAUGHT, FALSE) != TRUE)
{
for (i = 0; i < POKEBALL_COUNT - 1; i++)
for (i = 0; i < POKEBALL_COUNT; i++)
ballsUsed += gBattleResults.catchAttempts[i];
if (ballsUsed != 0 || gBattleResults.usedMasterBall)
if (ballsUsed != 0)
{
ballsUsed = 0;
show = &gSaveBlock1Ptr->tvShows[sCurTVShowSlot];
show->pokemonToday.kind = TVSHOW_POKEMON_TODAY_CAUGHT;
show->pokemonToday.active = FALSE; // NOTE: Show is not active until passed via Record Mix.
if (gBattleResults.usedMasterBall)
{
ballsUsed = 1;
itemLastUsed = ITEM_MASTER_BALL;
}
else
{
for (i = 0; i < POKEBALL_COUNT - 1; i++)
ballsUsed += gBattleResults.catchAttempts[i];
if (ballsUsed > 255)
ballsUsed = 255;
itemLastUsed = gLastUsedItem;
}
for (i = 0; i < POKEBALL_COUNT; i++)
ballsUsed += gBattleResults.catchAttempts[i];
if (ballsUsed > 255)
ballsUsed = 255;
itemLastUsed = gLastUsedItem;
show->pokemonToday.nBallsUsed = ballsUsed;
show->pokemonToday.ball = itemLastUsed;
StringCopy(show->pokemonToday.playerName, gSaveBlock2Ptr->playerName);
@ -1192,7 +1176,7 @@ static void TryPutPokemonTodayFailedOnTheAir(void)
if (!rbernoulli(1, 1))
{
for (i = 0, ballsUsed = 0; i < POKEBALL_COUNT - 1; i++)
for (i = 0, ballsUsed = 0; i < POKEBALL_COUNT; i++)
ballsUsed += gBattleResults.catchAttempts[i];
if (ballsUsed > 255)
ballsUsed = 255;
@ -2133,11 +2117,8 @@ void TryPutBreakingNewsOnAir(void)
show->breakingNews.kind = TVSHOW_BREAKING_NEWS;
show->breakingNews.active = FALSE; // NOTE: Show is not active until passed via Record Mix.
balls = 0;
for (i = 0; i < POKEBALL_COUNT - 1; i++)
for (i = 0; i < POKEBALL_COUNT; i++)
balls += gBattleResults.catchAttempts[i];
if (gBattleResults.usedMasterBall)
balls++;
show->breakingNews.location = gMapHeader.regionMapSectionId;
StringCopy(show->breakingNews.playerName, gSaveBlock2Ptr->playerName);
show->breakingNews.poke1Species = gBattleResults.playerMon1Species;
@ -2167,10 +2148,7 @@ void TryPutBreakingNewsOnAir(void)
switch (show->breakingNews.outcome)
{
case 0:
if (gBattleResults.usedMasterBall)
show->breakingNews.caughtMonBall = ITEM_MASTER_BALL;
else
show->breakingNews.caughtMonBall = gBattleResults.caughtMonBall;
show->breakingNews.caughtMonBall = gBattleResults.caughtMonBall;
show->breakingNews.balls = balls;
break;
case 1: