Document Berry Crush
Before Width: | Height: | Size: 2.1 KiB After Width: | Height: | Size: 2.1 KiB |
Before Width: | Height: | Size: 626 B After Width: | Height: | Size: 626 B |
Before Width: | Height: | Size: 642 B After Width: | Height: | Size: 642 B |
Before Width: | Height: | Size: 329 B After Width: | Height: | Size: 329 B |
Before Width: | Height: | Size: 282 B After Width: | Height: | Size: 282 B |
Before Width: | Height: | Size: 815 B After Width: | Height: | Size: 815 B |
Before Width: | Height: | Size: 778 B After Width: | Height: | Size: 778 B |
@ -28,11 +28,11 @@ void SetBerryTreesSeen(void);
|
|||||||
|
|
||||||
extern const struct Berry gBerries[];
|
extern const struct Berry gBerries[];
|
||||||
|
|
||||||
struct UnkStruct_0858AB24 {
|
struct BerryCrushBerryData {
|
||||||
u8 unk0;
|
u8 difficulty; // The number of A presses required to crush it
|
||||||
u16 unk1;
|
u16 powder;
|
||||||
};
|
};
|
||||||
|
|
||||||
extern const struct UnkStruct_0858AB24 gUnknown_0858AB24[];
|
extern const struct BerryCrushBerryData gBerryCrush_BerryData[];
|
||||||
|
|
||||||
#endif // GUARD_BERRY_H
|
#endif // GUARD_BERRY_H
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
|
|
||||||
#include "main.h"
|
#include "main.h"
|
||||||
|
|
||||||
void StartBerryCrush(MainCallback callback);
|
void StartBerryCrush(MainCallback exitCallback);
|
||||||
|
|
||||||
#endif // GUARD_BERRY_CRUSH_H
|
#endif // GUARD_BERRY_CRUSH_H
|
||||||
|
@ -52,7 +52,7 @@
|
|||||||
#define GAME_STAT_RODE_CABLE_CAR 48
|
#define GAME_STAT_RODE_CABLE_CAR 48
|
||||||
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
|
#define GAME_STAT_ENTERED_HOT_SPRINGS 49
|
||||||
#define GAME_STAT_NUM_UNION_ROOM_BATTLES 50
|
#define GAME_STAT_NUM_UNION_ROOM_BATTLES 50
|
||||||
#define GAME_STAT_51 51
|
#define GAME_STAT_PLAYED_BERRY_CRUSH 51
|
||||||
|
|
||||||
#define NUM_USED_GAME_STATS 52
|
#define NUM_USED_GAME_STATS 52
|
||||||
#define NUM_GAME_STATS 64
|
#define NUM_GAME_STATS 64
|
||||||
|
@ -209,7 +209,7 @@ struct PyramidBag
|
|||||||
|
|
||||||
struct BerryCrush
|
struct BerryCrush
|
||||||
{
|
{
|
||||||
u16 berryCrushResults[4];
|
u16 pressingSpeeds[4]; // For the record with each possible group size, 2-5 players
|
||||||
u32 berryPowderAmount;
|
u32 berryPowderAmount;
|
||||||
u32 unk;
|
u32 unk;
|
||||||
};
|
};
|
||||||
|
@ -5001,9 +5001,9 @@ extern const u16 gUsePokeblockUpDown_Pal[];
|
|||||||
extern const u16 gUsePokeblockCondition_Pal[];
|
extern const u16 gUsePokeblockCondition_Pal[];
|
||||||
|
|
||||||
// Berry Crush
|
// Berry Crush
|
||||||
extern const u32 gUnknown_08DE34B8[];
|
extern const u32 gBerryCrush_Crusher_Gfx[];
|
||||||
extern const u16 gUnknown_08DE3398[];
|
extern const u16 gBerryCrush_Crusher_Pal[];
|
||||||
extern const u32 gUnknown_08DE3FD4[];
|
extern const u32 gBerryCrush_Crusher_Tilemap[];
|
||||||
|
|
||||||
// Pokenav
|
// Pokenav
|
||||||
extern const u32 gPokenavMessageBox_Gfx[];
|
extern const u32 gPokenavMessageBox_Gfx[];
|
||||||
|
@ -2904,7 +2904,7 @@ extern const u8 gText_CrushingResults[];
|
|||||||
extern const u8 gText_BerryCrush2[];
|
extern const u8 gText_BerryCrush2[];
|
||||||
extern const u8 gText_PressingSpeedRankings[];
|
extern const u8 gText_PressingSpeedRankings[];
|
||||||
extern const u8 gText_Var1Players[];
|
extern const u8 gText_Var1Players[];
|
||||||
extern const u8 gText_ReadyToBerryCrush[];
|
extern const u8 gText_ReadyPickBerry[];
|
||||||
extern const u8 gText_WaitForAllChooseBerry[];
|
extern const u8 gText_WaitForAllChooseBerry[];
|
||||||
extern const u8 gText_EndedWithXUnitsPowder[];
|
extern const u8 gText_EndedWithXUnitsPowder[];
|
||||||
extern const u8 gText_RecordingGameResults[];
|
extern const u8 gText_RecordingGameResults[];
|
||||||
|
88
src/berry.c
@ -889,50 +889,50 @@ const struct Berry gBerries[] =
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct UnkStruct_0858AB24 gUnknown_0858AB24[] = {
|
const struct BerryCrushBerryData gBerryCrush_BerryData[] = {
|
||||||
{ 50, 20},
|
[ITEM_CHERI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
|
||||||
{ 50, 20},
|
[ITEM_CHESTO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
|
||||||
{ 50, 20},
|
[ITEM_PECHA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
|
||||||
{ 50, 20},
|
[ITEM_RAWST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
|
||||||
{ 50, 20},
|
[ITEM_ASPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 20},
|
||||||
{ 50, 30},
|
[ITEM_LEPPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
|
||||||
{ 50, 30},
|
[ITEM_ORAN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
|
||||||
{ 50, 30},
|
[ITEM_PERSIM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
|
||||||
{ 50, 30},
|
[ITEM_LUM_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
|
||||||
{ 50, 30},
|
[ITEM_SITRUS_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 50, .powder = 30},
|
||||||
{ 60, 50},
|
[ITEM_FIGY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
|
||||||
{ 60, 50},
|
[ITEM_WIKI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
|
||||||
{ 60, 50},
|
[ITEM_MAGO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
|
||||||
{ 60, 50},
|
[ITEM_AGUAV_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
|
||||||
{ 60, 50},
|
[ITEM_IAPAPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 60, .powder = 50},
|
||||||
{ 80, 70},
|
[ITEM_RAZZ_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
|
||||||
{ 80, 70},
|
[ITEM_BLUK_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
|
||||||
{ 80, 70},
|
[ITEM_NANAB_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
|
||||||
{ 80, 70},
|
[ITEM_WEPEAR_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
|
||||||
{ 80, 70},
|
[ITEM_PINAP_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 80, .powder = 70},
|
||||||
{100, 100},
|
[ITEM_POMEG_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
|
||||||
{100, 100},
|
[ITEM_KELPSY_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
|
||||||
{100, 100},
|
[ITEM_QUALOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
|
||||||
{100, 100},
|
[ITEM_HONDEW_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
|
||||||
{100, 100},
|
[ITEM_GREPA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 100, .powder = 100},
|
||||||
{130, 150},
|
[ITEM_TAMATO_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
|
||||||
{130, 150},
|
[ITEM_CORNN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
|
||||||
{130, 150},
|
[ITEM_MAGOST_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
|
||||||
{130, 150},
|
[ITEM_RABUTA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
|
||||||
{130, 150},
|
[ITEM_NOMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 130, .powder = 150},
|
||||||
{160, 250},
|
[ITEM_SPELON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
|
||||||
{160, 250},
|
[ITEM_PAMTRE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
|
||||||
{160, 250},
|
[ITEM_WATMEL_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
|
||||||
{160, 250},
|
[ITEM_DURIN_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
|
||||||
{160, 250},
|
[ITEM_BELUE_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 160, .powder = 250},
|
||||||
{180, 500},
|
[ITEM_LIECHI_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
|
||||||
{180, 500},
|
[ITEM_GANLON_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
|
||||||
{180, 500},
|
[ITEM_SALAC_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
|
||||||
{180, 500},
|
[ITEM_PETAYA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
|
||||||
{180, 500},
|
[ITEM_APICOT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 180, .powder = 500},
|
||||||
{200, 750},
|
[ITEM_LANSAT_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
|
||||||
{200, 750},
|
[ITEM_STARF_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 200, .powder = 750},
|
||||||
{150, 200}
|
[ITEM_ENIGMA_BERRY - FIRST_BERRY_INDEX] = {.difficulty = 150, .powder = 200}
|
||||||
};
|
};
|
||||||
|
|
||||||
const struct BerryTree gBlankBerryTree = {};
|
const struct BerryTree gBlankBerryTree = {};
|
||||||
|
3282
src/berry_crush.c
@ -1543,9 +1543,9 @@ const u16 gUnknown_08DE3350[] = INCBIN_U16("graphics/frontier_pass/tilemap1.bin"
|
|||||||
const u16 gUnknown_08DE3374[] = INCBIN_U16("graphics/frontier_pass/tilemap2.bin");
|
const u16 gUnknown_08DE3374[] = INCBIN_U16("graphics/frontier_pass/tilemap2.bin");
|
||||||
|
|
||||||
// Berry Crush
|
// Berry Crush
|
||||||
const u16 gUnknown_08DE3398[] = INCBIN_U16("graphics/berry_crusher/tiles.gbapal");
|
const u16 gBerryCrush_Crusher_Pal[] = INCBIN_U16("graphics/berry_crush/crusher.gbapal");
|
||||||
const u32 gUnknown_08DE34B8[] = INCBIN_U32("graphics/berry_crusher/tiles.4bpp.lz");
|
const u32 gBerryCrush_Crusher_Gfx[] = INCBIN_U32("graphics/berry_crush/crusher.4bpp.lz");
|
||||||
const u32 gUnknown_08DE3FD4[] = INCBIN_U32("graphics/berry_crusher/tiles.bin.lz");
|
const u32 gBerryCrush_Crusher_Tilemap[] = INCBIN_U32("graphics/berry_crush/crusher.bin.lz");
|
||||||
|
|
||||||
// random garbage at the end.
|
// random garbage at the end.
|
||||||
static const u8 sEmpty3[0x54BAC] = {0};
|
static const u8 sEmpty3[0x54BAC] = {0};
|
||||||
|
@ -48,8 +48,8 @@ static void Task_StaticCountdown_Free(u8 taskId);
|
|||||||
static void Task_StaticCountdown_Start(u8 taskId);
|
static void Task_StaticCountdown_Start(u8 taskId);
|
||||||
static void Task_StaticCountdown_Run(u8 taskId);
|
static void Task_StaticCountdown_Run(u8 taskId);
|
||||||
|
|
||||||
static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/link_games/321start_static.gbapal");
|
static const u16 s321Start_Static_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start_static.gbapal");
|
||||||
static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/link_games/321start_static.4bpp.lz");
|
static const u32 s321Start_Static_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start_static.4bpp.lz");
|
||||||
|
|
||||||
static const struct CompressedSpriteSheet sSpriteSheet_321Start_Static[] =
|
static const struct CompressedSpriteSheet sSpriteSheet_321Start_Static[] =
|
||||||
{
|
{
|
||||||
@ -374,8 +374,8 @@ static void CreateStartSprite(u16 tileTag, u16 palTag, s16 x, s16 y, u8 subprior
|
|||||||
static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3);
|
static void InitStartGraphic(u8 spriteId1, u8 spriteId2, u8 spriteId3);
|
||||||
static void SpriteCB_Start(struct Sprite *sprite);
|
static void SpriteCB_Start(struct Sprite *sprite);
|
||||||
|
|
||||||
static const u16 s321Start_Pal[] = INCBIN_U16("graphics/link_games/321start.gbapal");
|
static const u16 s321Start_Pal[] = INCBIN_U16("graphics/minigame_countdown/321start.gbapal");
|
||||||
static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/link_games/321start.4bpp.lz");
|
static const u32 s321Start_Gfx[] = INCBIN_U32("graphics/minigame_countdown/321start.4bpp.lz");
|
||||||
|
|
||||||
#define tState data[0]
|
#define tState data[0]
|
||||||
#define tTilesTag data[2]
|
#define tTilesTag data[2]
|
||||||
|
@ -1292,7 +1292,7 @@ const u8 gText_MatchCallMay_Intro1[] = _("My POKéMON and I help");
|
|||||||
const u8 gText_MatchCallMay_Intro2[] = _("my father's research.");
|
const u8 gText_MatchCallMay_Intro2[] = _("my father's research.");
|
||||||
const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!");
|
const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!");
|
||||||
const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?");
|
const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?");
|
||||||
ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
|
ALIGNED(4) const u8 gText_ReadyPickBerry[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
|
||||||
ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY.");
|
ALIGNED(4) const u8 gText_WaitForAllChooseBerry[] = _("Please wait while each member\nchooses a BERRY.");
|
||||||
ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
|
ALIGNED(4) const u8 gText_EndedWithXUnitsPowder[] = _("{PAUSE_MUSIC}{PLAY_BGM MUS_LEVEL_UP}You ended up with {STR_VAR_1} units of\nsilky-smooth BERRY POWDER.{RESUME_MUSIC}\pYour total amount of BERRY POWDER\nis {STR_VAR_2}.\p");
|
||||||
ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait.");
|
ALIGNED(4) const u8 gText_RecordingGameResults[] = _("Recording your game results in the\nsave file.\lPlease wait.");
|
||||||
|