diff options
Diffstat (limited to 'include/berry_crush.h')
-rw-r--r-- | include/berry_crush.h | 176 |
1 files changed, 102 insertions, 74 deletions
diff --git a/include/berry_crush.h b/include/berry_crush.h index 9077b966e..999fb59f3 100644 --- a/include/berry_crush.h +++ b/include/berry_crush.h @@ -1,9 +1,49 @@ #ifndef GUARD_BERRY_CRUSH_H #define GUARD_BERRY_CRUSH_H +enum { + BCTEXT_AREYOUREADY, + BCTEXT_WAITFOROTHERS, + BCTEXT_GAINEDPOWDER, + BCTEXT_RECORDINGRESULTS, + BCTEXT_ASKPLAYAGAIN, + BCTEXT_CANCEL_NOBERRIES, + BCTEXT_CANCEL_DROPPEDOUT, + BCTEXT_TIMEUP, + BCTEXT_COMMSTANDBY, +}; + +enum { + BCCMD_BeginNormalPaletteFade = 1, + BCCMD_WaitPaletteFade, + BCCMD_PrintMessage, + BCCMD_InitGfx, + BCCMD_TeardownGfx, + BCCMD_SignalReadyToBegin, + BCCMD_AskPickBerry, + BCCMD_GoToBerryPouch, + BCCMD_WaitForOthersToPickBerries, + BCCMD_DropBerriesIntoCrusher, + BCCMD_DropLid, + BCCMD_Countdown, + BCCMD_PlayGame_Master, + BCCMD_PlayGame_Slave, + BCCMD_FinishGame, + BCCMD_HandleTimeUp, + BCCMD_TabulateResults, + BCCMD_ShowResults, + BCCMD_SaveTheGame, + BCCMD_AskPlayAgain, + BCCMD_CommunicatePlayAgainResponses, + BCCMD_FadeOutToPlayAgain, + BCCMD_PlayAgainFailureMessage, + BCCMD_GracefulExit, + BCCMD_Quit, +}; + struct BerryCrushGame_Player { - u16 unk0; + u16 berryId; u16 unk2; union { @@ -13,40 +53,26 @@ struct BerryCrushGame_Player u8 unk14[12]; }; -struct __attribute__((packed, aligned(2))) BerryCrushGame_4E -{ - u16 unk0; - u16 filler2; - u8 unk4_0:1; - u8 unk4_1:1; - s8 unk5; - u16 unk6; - u16 unk8; - u16 unkA; - u16 unkC; -}; - -struct __attribute__((packed)) BerryCrushGame_40 -{ - u8 unk0[2]; - u16 unk2[6]; - struct BerryCrushGame_4E unkE; -}; - struct BerryCrushGame_5C { u16 unk00; u8 unk02_0:1; u8 unk02_1:1; - u8 unk02_2:1; + u8 pushedAButton:1; u8 unk02_3:5; - u8 unk03; + s8 unk03; u16 unk04; u16 unk06; u16 unk08; u16 unk0A; }; +struct __attribute__((packed, aligned(2))) BerryCrushGame_4E +{ + u16 unk0; + struct BerryCrushGame_5C data; +}; + union BerryCrushGame_68 { struct BerryCrushGame_68_x @@ -58,7 +84,9 @@ union BerryCrushGame_68 s16 unk06; u16 unk08; u16 unk0A; - u16 unk0C[2][5]; + // 0: Number of A presses + // 1: Neatness + u16 stats[2][5]; u8 filler20[16]; } unk00; u8 unk30[12]; @@ -68,12 +96,12 @@ union BerryCrushGame_68 struct BerryCrushGame_68_y { u8 filler00[28]; - struct BerryCrushGame_Player unk1C[5]; + struct BerryCrushGame_Player players[5]; u8 fillerBC[20]; } as_five_players; }; -struct BerryCrushGame_138_C +struct BerryCrushPlayerSeatCoords { u8 unk0; u8 unk1; @@ -86,19 +114,19 @@ struct BerryCrushGame_138_C struct BerryCrushGame_138 { - u8 unk0; + u8 animBerryIdx; u8 unk1; u8 unk2; u8 unk3; - s16 unk4; - s16 unk6; - s16 unk8; - const struct BerryCrushGame_138_C *unkC[5]; - struct Sprite *unk20; - struct Sprite *unk24[5]; - struct Sprite *unk38[5]; - struct Sprite *unk4C[11]; - struct Sprite *unk78[2]; + s16 minutes; + s16 secondsInt; + s16 secondsFrac; + const struct BerryCrushPlayerSeatCoords * seatCoords[5]; + struct Sprite *coreSprite; + struct Sprite *impactSprites[5]; + struct Sprite *berrySprites[5]; + struct Sprite *sparkleSprites[11]; + struct Sprite *timerSprites[2]; u8 unk80; u8 filler81; u8 unk82; @@ -107,23 +135,23 @@ struct BerryCrushGame_138 struct BerryCrushGame { - MainCallback unk0; - u32 (*unk4)(struct BerryCrushGame *, u8 *); - u8 unk8; - u8 unk9; - u8 unkA; - u8 unkB; - u8 unkC; + MainCallback savedCallback; + u32 (*cmdCallback)(struct BerryCrushGame *, u8 *); + u8 localId; + u8 playerCount; + u8 taskId; + u8 textSpeed; + u8 cmdState; u8 unkD; - u8 unkE; - u8 unkF; + u8 nextCmd; + u8 afterPalFadeCmd; u16 unk10; - u16 unk12; + u16 gameState; u16 unk14; - u16 unk16; + u16 pressingSpeed; s16 unk18; s16 unk1A; - int unk1C; + int powder; s32 unk20; u8 unk24; u8 unk25_0:1; @@ -133,52 +161,52 @@ struct BerryCrushGame u8 unk25_4:1; u8 unk25_5:3; u16 unk26; - u16 unk28; - s16 unk2A; - s16 unk2C; + u16 timer; + s16 depth; + s16 vibration; s16 unk2E; s16 unk30; s16 unk32; s16 unk34; - u8 unk36[0xA]; - struct BerryCrushGame_40 unk40; - struct BerryCrushGame_5C unk5C; + u8 commandParams[10]; + u16 sendCmd[7]; + u16 recvCmd[7]; + struct BerryCrushGame_5C localState; union BerryCrushGame_68 unk68; - struct BerryCrushGame_138 unk138; - u8 unk1C0[0x1000]; + struct BerryCrushGame_138 spritesManager; + u8 bg1Buffer[0x1000]; u8 unk11C0[0x1000]; - u8 unk21C0[0x1000]; - u8 unk31C0[0x1000]; + u8 bg2Buffer[0x1000]; + u8 bg3Buffer[0x1000]; }; -#define PLAYER_UNK14(game, i) \ +#define BERRYCRUSH_PLAYER_NAME(game, i) \ ((u8 *)(game) \ + offsetof(struct BerryCrushGame, unk68) \ + offsetof(struct BerryCrushGame_68_x, unk30) \ + sizeof(struct BerryCrushGame_Player) * (i)) -struct BerryCrushGame *sub_814B6F0(void); +struct BerryCrushGame *GetBerryCrushGame(void); void StartBerryCrush(MainCallback callback); -u32 sub_814B6FC(MainCallback callback); -void sub_814B8F0(void); -void sub_814B914(void); -void sub_814B924(void); -void sub_814B930(void); -void sub_814BABC(struct BerryCrushGame *arg0); -void sub_814BB4C(u16, u8, u8 *); -void sub_814D564(u8 *, u32, s32, u32, u32, u32, u32); +u32 ExitBerryCrushWithCallback(MainCallback callback); +void CB2_BerryCrush_GoToBerryPouch(void); +void BerryCrush_SetVBlankCallback(void); +void BerryCrush_UnsetVBlankCallback(void); +void BerryCrush_UpdateSav2Records(void); +void BerryCrush_RunOrScheduleCommand(u16 command, u8 runMode, u8 *params); +void BerryCrush_SetPaletteFadeParams(u8 *params, bool8 communicateAfter, u32 selectedPals, s8 delay, u8 startY, u8 targetY, u16 palette); int sub_814D9CC(struct BerryCrushGame *arg0); -int sub_814D5C8(void); -int sub_814D888(void); -void sub_814DA24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); -void sub_814DC24(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); +int BerryCrush_InitBgs(void); +int BerryCrush_TeardownBgs(void); +void BerryCrush_CreateBerrySprites(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); +void BerryCrushFreeBerrySpriteGfx(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); void sub_814DC5C(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); bool32 sub_814DE50(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); bool32 sub_814E644(struct BerryCrushGame *arg0, struct BerryCrushGame_138 *arg1); void sub_814E80C(struct BerryCrushGame *arg0); void sub_814DA04(struct BerryCrushGame *arg0); -void sub_814EB04(struct BerryCrushGame_138 *arg0); -void sub_814DB84(struct Sprite * sprite); +void BerryCrush_HideTimerSprites(struct BerryCrushGame_138 *arg0); +void SpriteCB_DropBerryIntoCrusher(struct Sprite * sprite); void ShowBerryCrushRankings(void); #endif //GUARD_BERRY_CRUSH_H |