Merge pull request #531 from GriffinRichards/doc-dodrio
Sync dodrio berry picking
This commit is contained in:
20 files changed
+4069
-3426
No files matched your search
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
@@ -1,106 +1,64 @@
|
|||||||
#ifndef GUARD_DODRIO_BERRY_PICKING_H
|
#ifndef GUARD_DODRIO_BERRY_PICKING_H
|
||||||
#define GUARD_DODRIO_BERRY_PICKING_H
|
#define GUARD_DODRIO_BERRY_PICKING_H
|
||||||
|
|
||||||
struct DodrioSubstruct_0160
|
// Berries fall in predefined columns.
|
||||||
{
|
// A total of 10 are available, though fewer will be used with < 5 players
|
||||||
/*0x0000 : 0x3000*/ u16 ALIGNED(4) tilemapBuffers[3][BG_SCREEN_SIZE];
|
// The 11th column is a repeat of the 1st column wrapped around, so only
|
||||||
/*0x3000 : 0x3160*/ bool32 finished;
|
// the values 0-9 are unique 'valid' columns
|
||||||
/*0x3004 : 0x3164*/ u8 ALIGNED(4) unk3004;
|
#define NUM_BERRY_COLUMNS 11
|
||||||
/*0x3008 : 0x3168*/ u8 ALIGNED(4) unk3008[10];
|
|
||||||
/*0x3014 : 0x3174*/ u8 ALIGNED(4) state;
|
|
||||||
/*0x3018 : 0x3178*/ u8 ALIGNED(4) unk3018;
|
|
||||||
/*0x301C : 0x317C*/ u16 ALIGNED(4) unk301C;
|
|
||||||
/*0x3020 : 0x3180*/ u8 ALIGNED(4) unk3020;
|
|
||||||
/*0x3024 : 0x3184*/ u8 ALIGNED(4) unk3024;
|
|
||||||
/*0x3024 : 0x3184*/ void (*unk3028)(void);
|
|
||||||
}; // size = 0x302C
|
|
||||||
|
|
||||||
struct DodrioSubstruct_318C
|
struct DodrioGame_Berries
|
||||||
{
|
{
|
||||||
bool8 isShiny;
|
u8 ids[NUM_BERRY_COLUMNS];
|
||||||
|
u8 fallDist[NUM_BERRY_COLUMNS];
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DodrioSubstruct_31A0_14
|
struct DodrioGame_PlayerCommData
|
||||||
{
|
{
|
||||||
u8 unk0[11];
|
u8 pickState;
|
||||||
u8 unkB[11];
|
bool8 ALIGNED(4) ateBerry;
|
||||||
|
bool8 ALIGNED(4) missedBerry;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct DodrioSubstruct_31A0_2C
|
struct DodrioGame_Player
|
||||||
{
|
{
|
||||||
u8 unk0;
|
u8 name[16];
|
||||||
u8 ALIGNED(4) unk4;
|
bool32 receivedGameStatePacket; // Never read
|
||||||
u8 ALIGNED(4) unk8;
|
struct DodrioGame_Berries berries;
|
||||||
};
|
struct DodrioGame_PlayerCommData comm;
|
||||||
|
u32 unused;
|
||||||
struct DodrioSubstruct_31A0
|
|
||||||
{
|
|
||||||
u8 name[0x10];
|
|
||||||
u32 unk10;
|
|
||||||
struct DodrioSubstruct_31A0_14 unk14;
|
|
||||||
struct DodrioSubstruct_31A0_2C unk2C;
|
|
||||||
u8 filler_35[4];
|
|
||||||
}; // size = 0x3C
|
}; // size = 0x3C
|
||||||
|
|
||||||
struct DodrioSubstruct_3308
|
// dodrio_berry_picking.c
|
||||||
{
|
void StartDodrioBerryPicking(u16 partyId, MainCallback exitCallback);
|
||||||
u8 unk0;
|
|
||||||
u32 unk4;
|
|
||||||
};
|
|
||||||
|
|
||||||
void StartDodrioBerryPicking(u16 species, MainCallback callback);
|
|
||||||
|
|
||||||
u32 sub_815A950(u32 unused, struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 *arg6, u32 *arg7, u32 *arg8);
|
|
||||||
u32 sub_815AB04(u32 arg0, u8 *arg1);
|
|
||||||
bool32 sub_815AB60(u32 a0);
|
|
||||||
void sub_815A61C(struct DodrioSubstruct_31A0 *arg0, struct DodrioSubstruct_31A0_2C *arg1, struct DodrioSubstruct_31A0_2C *arg2, struct DodrioSubstruct_31A0_2C *arg3, struct DodrioSubstruct_31A0_2C *arg4, struct DodrioSubstruct_31A0_2C *arg5, u8 arg6, u32 arg7, u32 arg8);
|
|
||||||
void sub_815A5BC(s32 a0);
|
|
||||||
void sub_815AAD8(u8 a0);
|
|
||||||
void sub_815AB3C(u32 a0);
|
|
||||||
u8 sub_815A5E8(s32 a0);
|
|
||||||
u32 IncrementWithLimit(u32, u32);
|
|
||||||
void sub_8153A9C(void);
|
|
||||||
void sub_8153AFC(struct DodrioSubstruct_318C * unk318C, u8 a1, u8 a2, u8 a3);
|
|
||||||
void sub_8153BC0(u8 a0);
|
|
||||||
void sub_8153BF8(u8 a0);
|
|
||||||
void sub_8153D08(u8 playerCount);
|
|
||||||
u8 sub_8155E8C(void);
|
|
||||||
u8 sub_81533B4(void);
|
|
||||||
void sub_8153DA8(u8 a0, u8 a1);
|
|
||||||
void sub_8153D80(bool8 a0, u8 a1);
|
|
||||||
void sub_8153FC8(u8 a0);
|
|
||||||
void sub_8153DD8(void);
|
|
||||||
void sub_8153E28(void);
|
|
||||||
void sub_8153ED8(void);
|
|
||||||
bool32 sub_8153F1C(void);
|
|
||||||
void sub_81540DC(bool8 a0);
|
|
||||||
void sub_8154128(void);
|
|
||||||
void sub_815417C(void);
|
|
||||||
void sub_8154274(void);
|
|
||||||
void sub_81542EC(u8 a0, u8 a1);
|
|
||||||
void sub_8154370(u8 a0, u8 a1);
|
|
||||||
void sub_8154398(u16 a0, u8 a1);
|
|
||||||
void sub_8154438(void);
|
|
||||||
void sub_81544F0(void);
|
|
||||||
void sub_8154540(void);
|
|
||||||
void sub_8154578(void);
|
|
||||||
void sub_81545BC(bool8 a0);
|
|
||||||
void sub_81546C0(void);
|
|
||||||
void sub_8154730(void);
|
|
||||||
void sub_8154968(struct DodrioSubstruct_0160 * unk0160);
|
|
||||||
void sub_81549D4(u8 a0);
|
|
||||||
u8 *sub_81533C4(u8 id);
|
|
||||||
u8 sub_81537AC(u8 id);
|
|
||||||
void sub_81536A0(struct DodrioSubstruct_3308 *dst, u8 id);
|
|
||||||
u32 sub_81534AC(void);
|
|
||||||
u32 Min(u32 x, u32 y);
|
|
||||||
u16 sub_8153404(u8 arg0, u8 arg1);
|
|
||||||
u32 sub_81534F0(u8 arg0);
|
|
||||||
u32 sub_81535B0(void);
|
|
||||||
u16 sub_8153390(void);
|
|
||||||
u8 sub_815372C(void);
|
|
||||||
bool32 sub_8155E68(void);
|
|
||||||
void ShowDodrioBerryPickingRecords(void);
|
void ShowDodrioBerryPickingRecords(void);
|
||||||
void IsDodrioInParty(void);
|
void IsDodrioInParty(void);
|
||||||
|
|
||||||
|
// dodrio_berry_picking_comm.c
|
||||||
|
void SendPacket_ReadyToStart(bool32 ready);
|
||||||
|
bool8 RecvPacket_ReadyToStart(s32 playerId);
|
||||||
|
void SendPacket_GameState(struct DodrioGame_Player *player,
|
||||||
|
struct DodrioGame_PlayerCommData *player1,
|
||||||
|
struct DodrioGame_PlayerCommData *player2,
|
||||||
|
struct DodrioGame_PlayerCommData *player3,
|
||||||
|
struct DodrioGame_PlayerCommData *player4,
|
||||||
|
struct DodrioGame_PlayerCommData *player5,
|
||||||
|
u8 numGraySquares,
|
||||||
|
bool32 berriesFalling,
|
||||||
|
bool32 allReadyToEnd);
|
||||||
|
bool32 RecvPacket_GameState(u32 playerId,
|
||||||
|
struct DodrioGame_Player *player,
|
||||||
|
struct DodrioGame_PlayerCommData *player1,
|
||||||
|
struct DodrioGame_PlayerCommData *player2,
|
||||||
|
struct DodrioGame_PlayerCommData *player3,
|
||||||
|
struct DodrioGame_PlayerCommData *player4,
|
||||||
|
struct DodrioGame_PlayerCommData *player5,
|
||||||
|
u8 *numGraySquares,
|
||||||
|
bool32 *berriesFalling,
|
||||||
|
bool32 *allReadyToEnd);
|
||||||
|
void SendPacket_PickState(u8 pickState);
|
||||||
|
bool32 RecvPacket_PickState(u32 playerId, u8 *pickState);
|
||||||
|
void SendPacket_ReadyToEnd(bool32 readyToEnd);
|
||||||
|
bool32 RecvPacket_ReadyToEnd(u32 playerId);
|
||||||
|
|
||||||
#endif //GUARD_DODRIO_BERRY_PICKING_H
|
#endif //GUARD_DODRIO_BERRY_PICKING_H
|
||||||
+1
-3
@@ -292,10 +292,9 @@ SECTIONS {
|
|||||||
src/text_window.o(.text);
|
src/text_window.o(.text);
|
||||||
src/quest_log_player.o(.text);
|
src/quest_log_player.o(.text);
|
||||||
src/dodrio_berry_picking.o(.text);
|
src/dodrio_berry_picking.o(.text);
|
||||||
src/dodrio_berry_picking_2.o(.text);
|
|
||||||
src/battle_controller_pokedude.o(.text);
|
src/battle_controller_pokedude.o(.text);
|
||||||
src/quest_log_objects.o(.text);
|
src/quest_log_objects.o(.text);
|
||||||
src/dodrio_berry_picking_3.o(.text);
|
src/dodrio_berry_picking_comm.o(.text);
|
||||||
src/teachy_tv.o(.text);
|
src/teachy_tv.o(.text);
|
||||||
src/ereader_helpers.o(.text);
|
src/ereader_helpers.o(.text);
|
||||||
src/digit_obj_util.o(.text);
|
src/digit_obj_util.o(.text);
|
||||||
@@ -590,7 +589,6 @@ SECTIONS {
|
|||||||
src/text_window_graphics.o(.rodata);
|
src/text_window_graphics.o(.rodata);
|
||||||
src/quest_log_player.o(.rodata);
|
src/quest_log_player.o(.rodata);
|
||||||
src/dodrio_berry_picking.o(.rodata);
|
src/dodrio_berry_picking.o(.rodata);
|
||||||
src/dodrio_berry_picking_2.o(.rodata);
|
|
||||||
src/battle_controller_pokedude.o(.rodata);
|
src/battle_controller_pokedude.o(.rodata);
|
||||||
src/teachy_tv.o(.rodata);
|
src/teachy_tv.o(.rodata);
|
||||||
src/digit_obj_util.o(.rodata);
|
src/digit_obj_util.o(.rodata);
|
||||||
|
|||||||
@@ -1,247 +0,0 @@
|
|||||||
#ifndef GUARD_DATA_DODRIO_BERRY_PICKING_H
|
|
||||||
#define GUARD_DATA_DODRIO_BERRY_PICKING_H
|
|
||||||
|
|
||||||
static const struct BgTemplate sUnknown_847565C[] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.charBaseIndex = 0,
|
|
||||||
.mapBaseIndex = 30,
|
|
||||||
.screenSize = 0,
|
|
||||||
.paletteMode = 0,
|
|
||||||
.priority = 0,
|
|
||||||
.baseTile = 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.bg = 1,
|
|
||||||
.charBaseIndex = 2,
|
|
||||||
.mapBaseIndex = 12,
|
|
||||||
.screenSize = 1,
|
|
||||||
.paletteMode = 0,
|
|
||||||
.priority = 1,
|
|
||||||
.baseTile = 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.bg = 2,
|
|
||||||
.charBaseIndex = 2,
|
|
||||||
.mapBaseIndex = 14,
|
|
||||||
.screenSize = 1,
|
|
||||||
.paletteMode = 0,
|
|
||||||
.priority = 1,
|
|
||||||
.baseTile = 0
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.bg = 3,
|
|
||||||
.charBaseIndex = 3,
|
|
||||||
.mapBaseIndex = 31,
|
|
||||||
.screenSize = 0,
|
|
||||||
.paletteMode = 0,
|
|
||||||
.priority = 2,
|
|
||||||
.baseTile = 0
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
// Unknown unreferenced data, feel free to remove.
|
|
||||||
static const u32 sUnused[] = {255, 0};
|
|
||||||
|
|
||||||
static const struct WindowTemplate sUnknown_8475674[] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 1,
|
|
||||||
.tilemapTop = 1,
|
|
||||||
.width = 28,
|
|
||||||
.height = 3,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x13,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 1,
|
|
||||||
.tilemapTop = 6,
|
|
||||||
.width = 28,
|
|
||||||
.height = 13,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x67,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct WindowTemplate sUnknown_8475684 =
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 1,
|
|
||||||
.tilemapTop = 6,
|
|
||||||
.width = 28,
|
|
||||||
.height = 7,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x67,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct WindowTemplate sUnknown_847568C[] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 1,
|
|
||||||
.tilemapTop = 8,
|
|
||||||
.width = 19,
|
|
||||||
.height = 3,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x13,
|
|
||||||
},
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 22,
|
|
||||||
.tilemapTop = 7,
|
|
||||||
.width = 6,
|
|
||||||
.height = 4,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x4C,
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct WindowTemplate sUnknown_847569C =
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 4,
|
|
||||||
.tilemapTop = 6,
|
|
||||||
.width = 22,
|
|
||||||
.height = 5,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x13,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const struct WindowTemplate sUnknown_84756A4 =
|
|
||||||
{
|
|
||||||
.bg = 0,
|
|
||||||
.tilemapLeft = 5,
|
|
||||||
.tilemapTop = 8,
|
|
||||||
.width = 19,
|
|
||||||
.height = 3,
|
|
||||||
.paletteNum = 13,
|
|
||||||
.baseBlock = 0x13,
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u8 sUnknown_8471F50[5][5][11] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0},
|
|
||||||
{0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{0, 1, 2, 3, 4, 5, 6, 7, 2, 9, 0},
|
|
||||||
{0, 1, 4, 5, 6, 7, 2, 3, 4, 9, 0},
|
|
||||||
{0, 1, 6, 7, 2, 3, 4, 5, 6, 9, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 1, 0},
|
|
||||||
{0, 3, 4, 5, 6, 7, 8, 1, 2, 3, 0},
|
|
||||||
{0, 5, 6, 7, 8, 1, 2, 3, 4, 5, 0},
|
|
||||||
{0, 7, 8, 1, 2, 3, 4, 5, 6, 7, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0},
|
|
||||||
{2, 3, 4, 5, 6, 7, 8, 9, 0, 1, 2},
|
|
||||||
{4, 5, 6, 7, 8, 9, 0, 1, 2, 3, 4},
|
|
||||||
{6, 7, 8, 9, 0, 1, 2, 3, 4, 5, 6},
|
|
||||||
{8, 9, 0, 1, 2, 3, 4, 5, 6, 7, 8},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u8 sUnknown_8472063[5][5][3] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
{4, 5, 6},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{3, 4, 5},
|
|
||||||
{5, 6, 3},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{4, 5, 6},
|
|
||||||
{6, 7, 2},
|
|
||||||
{2, 3, 4},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{3, 4, 5},
|
|
||||||
{5, 6, 7},
|
|
||||||
{7, 8, 1},
|
|
||||||
{1, 2, 3},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{4, 5, 6},
|
|
||||||
{6, 7, 8},
|
|
||||||
{8, 9, 0},
|
|
||||||
{0, 1, 2},
|
|
||||||
{2, 3, 4},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u8 sUnknown_84720AE[5][5][3] =
|
|
||||||
{
|
|
||||||
{
|
|
||||||
{1, 0, 1},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{1, 0, 1},
|
|
||||||
{0, 1, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{2, 0, 1},
|
|
||||||
{0, 1, 2},
|
|
||||||
{1, 2, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{3, 0, 1},
|
|
||||||
{0, 1, 2},
|
|
||||||
{1, 2, 3},
|
|
||||||
{2, 3, 0},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
{4, 0, 1},
|
|
||||||
{0, 1, 2},
|
|
||||||
{1, 2, 3},
|
|
||||||
{2, 3, 4},
|
|
||||||
{3, 4, 0},
|
|
||||||
},
|
|
||||||
};
|
|
||||||
|
|
||||||
ALIGNED(4)
|
|
||||||
static const u8 sUnknown_84720FC[5][11] =
|
|
||||||
{
|
|
||||||
{9, 9, 9, 9, 1, 1, 1, 9, 9, 9, 9},
|
|
||||||
{9, 9, 9, 0, 0, 1, 1, 0, 9, 9, 9},
|
|
||||||
{9, 9, 2, 2, 0, 0, 1, 1, 1, 9, 9},
|
|
||||||
{9, 3, 3, 0, 0, 1, 1, 2, 2, 3, 9},
|
|
||||||
{3, 3, 4, 4, 0, 0, 1, 1, 2, 2, 3},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u8 sUnknown_8472133[5][5] =
|
|
||||||
{
|
|
||||||
{5},
|
|
||||||
{4, 6},
|
|
||||||
{3, 5, 7},
|
|
||||||
{2, 4, 6, 8},
|
|
||||||
{1, 3, 5, 6, 9},
|
|
||||||
};
|
|
||||||
|
|
||||||
static const u16 sDodrioBerryBgPal1[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal",
|
|
||||||
"graphics/link_games/dodrioberry_bg2.gbapal");
|
|
||||||
static const u16 sDodrioBerryPkmnPal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal");
|
|
||||||
static const u16 sDodrioBerryShinyPal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal");
|
|
||||||
static const u16 sDodrioBerryStatusPal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal");
|
|
||||||
static const u16 sDodrioBerrySpritesPal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal");
|
|
||||||
static const u32 sDodrioBerrySpritesGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz");
|
|
||||||
static const u16 sDodrioBerryPlatformPal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal");
|
|
||||||
static const u32 sDodrioBerryBgGfx1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz");
|
|
||||||
static const u32 sDodrioBerryBgGfx2[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz");
|
|
||||||
static const u32 sDodrioBerryStatusGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz");
|
|
||||||
static const u32 sDodrioBerryPlatformGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz");
|
|
||||||
static const u32 sDodrioBerryPkmnGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz");
|
|
||||||
static const u32 sDodrioBerryBgTilemap1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz");
|
|
||||||
static const u32 sDodrioBerryBgTilemap2Right[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz");
|
|
||||||
static const u32 sDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz");
|
|
||||||
|
|
||||||
#endif //GUARD_DATA_DODRIO_BERRY_PICKING_H
|
|
||||||
+3747
-1228
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
@@ -1,241 +0,0 @@
|
|||||||
#include "global.h"
|
|
||||||
#include "dodrio_berry_picking.h"
|
|
||||||
#include "link.h"
|
|
||||||
#include "link_rfu.h"
|
|
||||||
|
|
||||||
void sub_815A5BC(s32 a0)
|
|
||||||
{
|
|
||||||
struct Padded_U8 data[2];
|
|
||||||
data[0].value = 1;
|
|
||||||
data[1].value = a0;
|
|
||||||
Rfu_SendPacket(data);
|
|
||||||
}
|
|
||||||
|
|
||||||
u8 sub_815A5E8(s32 a0)
|
|
||||||
{
|
|
||||||
u8 * r1;
|
|
||||||
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
|
|
||||||
return 0;
|
|
||||||
r1 = (u8 *)&gRecvCmds[a0][1];
|
|
||||||
if (r1[0] == 1)
|
|
||||||
return r1[4];
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct UnkPacket2
|
|
||||||
{
|
|
||||||
u8 id;
|
|
||||||
u8 unk1_0:4;
|
|
||||||
u8 unk1_1:4;
|
|
||||||
u16 unk2_0:4;
|
|
||||||
u16 unk2_1:4;
|
|
||||||
u16 unk3_0:4;
|
|
||||||
u16 unk3_1:4;
|
|
||||||
u16 unk4_0:4;
|
|
||||||
u16 unk4_1:4;
|
|
||||||
u16 unk5_0:4;
|
|
||||||
u16 unk5_1:4;
|
|
||||||
u16 unk6_0:2;
|
|
||||||
u16 unk6_1:2;
|
|
||||||
u16 unk6_2:2;
|
|
||||||
u16 unk6_3:2;
|
|
||||||
u16 unk7_0:2;
|
|
||||||
u16 unk7_1:2;
|
|
||||||
u16 unk7_2:2;
|
|
||||||
u16 unk7_3:2;
|
|
||||||
u8 unk8_0:2;
|
|
||||||
u8 unk8_1:2;
|
|
||||||
u8 unk8_2:2;
|
|
||||||
u8 unk8_3:2;
|
|
||||||
u8 unk9_0:2;
|
|
||||||
u8 unk9_1:2;
|
|
||||||
u8 unk9_2:2;
|
|
||||||
u8 unk9_3:1;
|
|
||||||
u8 unk9_4:1;
|
|
||||||
u8 unkA_0:1;
|
|
||||||
u8 unkA_1:1;
|
|
||||||
u8 unkA_2:1;
|
|
||||||
u8 unkA_3:5;
|
|
||||||
u8 unkB_0:1;
|
|
||||||
u8 unkB_1:1;
|
|
||||||
u8 unkB_2:1;
|
|
||||||
u8 unkB_3:1;
|
|
||||||
u8 unkB_4:1;
|
|
||||||
u8 unkB_5:1;
|
|
||||||
u8 unkB_6:1;
|
|
||||||
};
|
|
||||||
|
|
||||||
void sub_815A61C(struct DodrioSubstruct_31A0 * arg0, struct DodrioSubstruct_31A0_2C * arg1, struct DodrioSubstruct_31A0_2C * arg2, struct DodrioSubstruct_31A0_2C * arg3, struct DodrioSubstruct_31A0_2C * arg4, struct DodrioSubstruct_31A0_2C * arg5, u8 arg6, u32 arg7, u32 arg8)
|
|
||||||
{
|
|
||||||
struct UnkPacket2 packet;
|
|
||||||
struct DodrioSubstruct_31A0_14 * ptr = &arg0->unk14;
|
|
||||||
|
|
||||||
packet.id = 2;
|
|
||||||
packet.unk1_0 = ptr->unkB[0];
|
|
||||||
packet.unk1_1 = ptr->unkB[1];
|
|
||||||
packet.unk2_0 = ptr->unkB[2];
|
|
||||||
packet.unk2_1 = ptr->unkB[3];
|
|
||||||
packet.unk3_0 = ptr->unkB[4];
|
|
||||||
packet.unk3_1 = ptr->unkB[5];
|
|
||||||
packet.unk4_0 = ptr->unkB[6];
|
|
||||||
packet.unk4_1 = ptr->unkB[7];
|
|
||||||
packet.unk5_0 = ptr->unkB[8];
|
|
||||||
packet.unk5_1 = ptr->unkB[9];
|
|
||||||
|
|
||||||
packet.unk6_0 = ptr->unk0[0];
|
|
||||||
packet.unk6_1 = ptr->unk0[1];
|
|
||||||
packet.unk6_2 = ptr->unk0[2];
|
|
||||||
packet.unk6_3 = ptr->unk0[3];
|
|
||||||
packet.unk7_0 = ptr->unk0[4];
|
|
||||||
packet.unk7_1 = ptr->unk0[5];
|
|
||||||
packet.unk7_2 = ptr->unk0[6];
|
|
||||||
packet.unk7_3 = ptr->unk0[7];
|
|
||||||
packet.unk8_0 = ptr->unk0[8];
|
|
||||||
packet.unk8_1 = ptr->unk0[9];
|
|
||||||
|
|
||||||
packet.unk8_2 = arg1->unk0;
|
|
||||||
packet.unk8_3 = arg2->unk0;
|
|
||||||
packet.unk9_0 = arg3->unk0;
|
|
||||||
packet.unk9_1 = arg4->unk0;
|
|
||||||
packet.unk9_2 = arg5->unk0;
|
|
||||||
|
|
||||||
packet.unk9_3 = arg1->unk4;
|
|
||||||
packet.unk9_4 = arg2->unk4;
|
|
||||||
packet.unkA_0 = arg3->unk4;
|
|
||||||
packet.unkA_1 = arg4->unk4;
|
|
||||||
packet.unkA_2 = arg5->unk4;
|
|
||||||
|
|
||||||
packet.unkB_2 = arg1->unk8;
|
|
||||||
packet.unkB_3 = arg2->unk8;
|
|
||||||
packet.unkB_4 = arg3->unk8;
|
|
||||||
packet.unkB_5 = arg4->unk8;
|
|
||||||
packet.unkB_6 = arg5->unk8;
|
|
||||||
|
|
||||||
packet.unkA_3 = arg6;
|
|
||||||
packet.unkB_1 = arg7;
|
|
||||||
packet.unkB_0 = arg8;
|
|
||||||
Rfu_SendPacket(&packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 sub_815A950(u32 unused, struct DodrioSubstruct_31A0 * arg0, struct DodrioSubstruct_31A0_2C * arg1, struct DodrioSubstruct_31A0_2C * arg2, struct DodrioSubstruct_31A0_2C * arg3, struct DodrioSubstruct_31A0_2C * arg4, struct DodrioSubstruct_31A0_2C * arg5, u8 *arg6, u32 *arg7, u32 *arg8)
|
|
||||||
{
|
|
||||||
struct UnkPacket2 * packet;
|
|
||||||
struct DodrioSubstruct_31A0_14 * ptr = &arg0->unk14;
|
|
||||||
|
|
||||||
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
packet = (void *)&gRecvCmds[0][1];
|
|
||||||
if (packet->id == 2)
|
|
||||||
{
|
|
||||||
ptr->unkB[0] = packet->unk1_0;
|
|
||||||
ptr->unkB[1] = packet->unk1_1;
|
|
||||||
ptr->unkB[2] = packet->unk2_0;
|
|
||||||
ptr->unkB[3] = packet->unk2_1;
|
|
||||||
ptr->unkB[4] = packet->unk3_0;
|
|
||||||
ptr->unkB[5] = packet->unk3_1;
|
|
||||||
ptr->unkB[6] = packet->unk4_0;
|
|
||||||
ptr->unkB[7] = packet->unk4_1;
|
|
||||||
ptr->unkB[8] = packet->unk5_0;
|
|
||||||
ptr->unkB[9] = packet->unk5_1;
|
|
||||||
ptr->unkB[10] = packet->unk1_0;
|
|
||||||
|
|
||||||
ptr->unk0[0] = packet->unk6_0;
|
|
||||||
ptr->unk0[1] = packet->unk6_1;
|
|
||||||
ptr->unk0[2] = packet->unk6_2;
|
|
||||||
ptr->unk0[3] = packet->unk6_3;
|
|
||||||
ptr->unk0[4] = packet->unk7_0;
|
|
||||||
ptr->unk0[5] = packet->unk7_1;
|
|
||||||
ptr->unk0[6] = packet->unk7_2;
|
|
||||||
ptr->unk0[7] = packet->unk7_3;
|
|
||||||
ptr->unk0[8] = packet->unk8_0;
|
|
||||||
ptr->unk0[9] = packet->unk8_1;
|
|
||||||
ptr->unk0[10] = packet->unk6_0;
|
|
||||||
|
|
||||||
arg1->unk0 = packet->unk8_2;
|
|
||||||
arg1->unk4 = packet->unk9_3;
|
|
||||||
arg1->unk8 = packet->unkB_2;
|
|
||||||
|
|
||||||
arg2->unk0 = packet->unk8_3;
|
|
||||||
arg2->unk4 = packet->unk9_4;
|
|
||||||
arg2->unk8 = packet->unkB_3;
|
|
||||||
|
|
||||||
arg3->unk0 = packet->unk9_0;
|
|
||||||
arg3->unk4 = packet->unkA_0;
|
|
||||||
arg3->unk8 = packet->unkB_4;
|
|
||||||
|
|
||||||
arg4->unk0 = packet->unk9_1;
|
|
||||||
arg4->unk4 = packet->unkA_1;
|
|
||||||
arg4->unk8 = packet->unkB_5;
|
|
||||||
|
|
||||||
arg5->unk0 = packet->unk9_2;
|
|
||||||
arg5->unk4 = packet->unkA_2;
|
|
||||||
arg5->unk8 = packet->unkB_6;
|
|
||||||
|
|
||||||
*arg6 = packet->unkA_3;
|
|
||||||
*arg7 = packet->unkB_1;
|
|
||||||
*arg8 = packet->unkB_0;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct UnkPacket3
|
|
||||||
{
|
|
||||||
u8 id;
|
|
||||||
u8 ALIGNED(4) unk4;
|
|
||||||
};
|
|
||||||
|
|
||||||
void sub_815AAD8(u8 arg0)
|
|
||||||
{
|
|
||||||
struct UnkPacket3 packet;
|
|
||||||
packet.id = 3;
|
|
||||||
packet.unk4 = arg0;
|
|
||||||
Rfu_SendPacket(&packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 sub_815AB04(u32 arg0, u8 *arg1)
|
|
||||||
{
|
|
||||||
struct UnkPacket3 * packet;
|
|
||||||
|
|
||||||
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
packet = (void *)&gRecvCmds[arg0][1];
|
|
||||||
if (packet->id == 3)
|
|
||||||
{
|
|
||||||
*arg1 = packet->unk4;
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
struct UnkPacket4
|
|
||||||
{
|
|
||||||
u8 id;
|
|
||||||
u32 unk4;
|
|
||||||
};
|
|
||||||
|
|
||||||
void sub_815AB3C(u32 arg0)
|
|
||||||
{
|
|
||||||
struct UnkPacket4 packet;
|
|
||||||
packet.id = 4;
|
|
||||||
packet.unk4 = arg0;
|
|
||||||
Rfu_SendPacket(&packet);
|
|
||||||
}
|
|
||||||
|
|
||||||
u32 sub_815AB60(u32 arg0)
|
|
||||||
{
|
|
||||||
struct UnkPacket4 * packet;
|
|
||||||
|
|
||||||
if ((gRecvCmds[0][0] & 0xFF00) != 0x2F00)
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
packet = (void *)&gRecvCmds[arg0][1];
|
|
||||||
if (packet->id == 4)
|
|
||||||
return packet->unk4;
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
@@ -0,0 +1,274 @@
|
|||||||
|
#include "global.h"
|
||||||
|
#include "dodrio_berry_picking.h"
|
||||||
|
#include "link.h"
|
||||||
|
#include "link_rfu.h"
|
||||||
|
|
||||||
|
enum {
|
||||||
|
PACKET_READY_START = 1,
|
||||||
|
PACKET_GAME_STATE,
|
||||||
|
PACKET_PICK_STATE,
|
||||||
|
PACKET_READY_END,
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ReadyToStartPacket
|
||||||
|
{
|
||||||
|
u8 id;
|
||||||
|
bool8 ALIGNED(4) ready;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct GameStatePacket
|
||||||
|
{
|
||||||
|
u8 id;
|
||||||
|
u8 fallDist_Col0:4;
|
||||||
|
u8 fallDist_Col1:4;
|
||||||
|
u16 fallDist_Col2:4;
|
||||||
|
u16 fallDist_Col3:4;
|
||||||
|
u16 fallDist_Col4:4;
|
||||||
|
u16 fallDist_Col5:4;
|
||||||
|
u16 fallDist_Col6:4;
|
||||||
|
u16 fallDist_Col7:4;
|
||||||
|
u16 fallDist_Col8:4;
|
||||||
|
u16 fallDist_Col9:4;
|
||||||
|
u16 berryId_Col0:2;
|
||||||
|
u16 berryId_Col1:2;
|
||||||
|
u16 berryId_Col2:2;
|
||||||
|
u16 berryId_Col3:2;
|
||||||
|
u16 berryId_Col4:2;
|
||||||
|
u16 berryId_Col5:2;
|
||||||
|
u16 berryId_Col6:2;
|
||||||
|
u16 berryId_Col7:2;
|
||||||
|
u8 berryId_Col8:2;
|
||||||
|
u8 berryId_Col9:2;
|
||||||
|
u8 pickState_Player1:2;
|
||||||
|
u8 pickState_Player2:2;
|
||||||
|
u8 pickState_Player3:2;
|
||||||
|
u8 pickState_Player4:2;
|
||||||
|
u8 pickState_Player5:2;
|
||||||
|
bool8 ateBerry_Player1:1;
|
||||||
|
bool8 ateBerry_Player2:1;
|
||||||
|
bool8 ateBerry_Player3:1;
|
||||||
|
bool8 ateBerry_Player4:1;
|
||||||
|
bool8 ateBerry_Player5:1;
|
||||||
|
u8 numGraySquares:5;
|
||||||
|
bool8 allReadyToEnd:1;
|
||||||
|
bool8 berriesFalling:1;
|
||||||
|
bool8 missedBerry_Player1:1;
|
||||||
|
bool8 missedBerry_Player2:1;
|
||||||
|
bool8 missedBerry_Player3:1;
|
||||||
|
bool8 missedBerry_Player4:1;
|
||||||
|
bool8 missedBerry_Player5:1;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct PickStatePacket
|
||||||
|
{
|
||||||
|
u8 id;
|
||||||
|
u8 ALIGNED(4) pickState;
|
||||||
|
};
|
||||||
|
|
||||||
|
struct ReadyToEndPacket
|
||||||
|
{
|
||||||
|
u8 id;
|
||||||
|
bool32 ready;
|
||||||
|
};
|
||||||
|
|
||||||
|
void SendPacket_ReadyToStart(bool32 ready)
|
||||||
|
{
|
||||||
|
struct ReadyToStartPacket packet;
|
||||||
|
packet.id = PACKET_READY_START;
|
||||||
|
packet.ready = ready;
|
||||||
|
Rfu_SendPacket(&packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool8 RecvPacket_ReadyToStart(s32 playerId)
|
||||||
|
{
|
||||||
|
struct ReadyToStartPacket *packet;
|
||||||
|
|
||||||
|
if ((gRecvCmds[0][0] & RFUCMD_MASK) != RFUCMD_SEND_PACKET)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
packet = (void *)&gRecvCmds[playerId][1];
|
||||||
|
if (packet->id == PACKET_READY_START)
|
||||||
|
return packet->ready;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendPacket_GameState(struct DodrioGame_Player *player,
|
||||||
|
struct DodrioGame_PlayerCommData *player1,
|
||||||
|
struct DodrioGame_PlayerCommData *player2,
|
||||||
|
struct DodrioGame_PlayerCommData *player3,
|
||||||
|
struct DodrioGame_PlayerCommData *player4,
|
||||||
|
struct DodrioGame_PlayerCommData *player5,
|
||||||
|
u8 numGraySquares,
|
||||||
|
bool32 berriesFalling,
|
||||||
|
bool32 allReadyToEnd)
|
||||||
|
{
|
||||||
|
struct GameStatePacket packet;
|
||||||
|
struct DodrioGame_Berries *berries = &player->berries;
|
||||||
|
|
||||||
|
packet.id = PACKET_GAME_STATE;
|
||||||
|
packet.fallDist_Col0 = berries->fallDist[0];
|
||||||
|
packet.fallDist_Col1 = berries->fallDist[1];
|
||||||
|
packet.fallDist_Col2 = berries->fallDist[2];
|
||||||
|
packet.fallDist_Col3 = berries->fallDist[3];
|
||||||
|
packet.fallDist_Col4 = berries->fallDist[4];
|
||||||
|
packet.fallDist_Col5 = berries->fallDist[5];
|
||||||
|
packet.fallDist_Col6 = berries->fallDist[6];
|
||||||
|
packet.fallDist_Col7 = berries->fallDist[7];
|
||||||
|
packet.fallDist_Col8 = berries->fallDist[8];
|
||||||
|
packet.fallDist_Col9 = berries->fallDist[9];
|
||||||
|
|
||||||
|
packet.berryId_Col0 = berries->ids[0];
|
||||||
|
packet.berryId_Col1 = berries->ids[1];
|
||||||
|
packet.berryId_Col2 = berries->ids[2];
|
||||||
|
packet.berryId_Col3 = berries->ids[3];
|
||||||
|
packet.berryId_Col4 = berries->ids[4];
|
||||||
|
packet.berryId_Col5 = berries->ids[5];
|
||||||
|
packet.berryId_Col6 = berries->ids[6];
|
||||||
|
packet.berryId_Col7 = berries->ids[7];
|
||||||
|
packet.berryId_Col8 = berries->ids[8];
|
||||||
|
packet.berryId_Col9 = berries->ids[9];
|
||||||
|
|
||||||
|
packet.pickState_Player1 = player1->pickState;
|
||||||
|
packet.pickState_Player2 = player2->pickState;
|
||||||
|
packet.pickState_Player3 = player3->pickState;
|
||||||
|
packet.pickState_Player4 = player4->pickState;
|
||||||
|
packet.pickState_Player5 = player5->pickState;
|
||||||
|
|
||||||
|
packet.ateBerry_Player1 = player1->ateBerry;
|
||||||
|
packet.ateBerry_Player2 = player2->ateBerry;
|
||||||
|
packet.ateBerry_Player3 = player3->ateBerry;
|
||||||
|
packet.ateBerry_Player4 = player4->ateBerry;
|
||||||
|
packet.ateBerry_Player5 = player5->ateBerry;
|
||||||
|
|
||||||
|
packet.missedBerry_Player1 = player1->missedBerry;
|
||||||
|
packet.missedBerry_Player2 = player2->missedBerry;
|
||||||
|
packet.missedBerry_Player3 = player3->missedBerry;
|
||||||
|
packet.missedBerry_Player4 = player4->missedBerry;
|
||||||
|
packet.missedBerry_Player5 = player5->missedBerry;
|
||||||
|
|
||||||
|
packet.numGraySquares = numGraySquares;
|
||||||
|
packet.berriesFalling = berriesFalling;
|
||||||
|
packet.allReadyToEnd = allReadyToEnd;
|
||||||
|
Rfu_SendPacket(&packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 RecvPacket_GameState(u32 playerId,
|
||||||
|
struct DodrioGame_Player *player,
|
||||||
|
struct DodrioGame_PlayerCommData *player1,
|
||||||
|
struct DodrioGame_PlayerCommData *player2,
|
||||||
|
struct DodrioGame_PlayerCommData *player3,
|
||||||
|
struct DodrioGame_PlayerCommData *player4,
|
||||||
|
struct DodrioGame_PlayerCommData *player5,
|
||||||
|
u8 *numGraySquares,
|
||||||
|
bool32 *berriesFalling,
|
||||||
|
bool32 *allReadyToEnd)
|
||||||
|
{
|
||||||
|
struct GameStatePacket *packet;
|
||||||
|
struct DodrioGame_Berries *berries = &player->berries;
|
||||||
|
|
||||||
|
if ((gRecvCmds[0][0] & RFUCMD_MASK) != RFUCMD_SEND_PACKET)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
packet = (void *)&gRecvCmds[0][1];
|
||||||
|
if (packet->id == PACKET_GAME_STATE)
|
||||||
|
{
|
||||||
|
berries->fallDist[0] = packet->fallDist_Col0;
|
||||||
|
berries->fallDist[1] = packet->fallDist_Col1;
|
||||||
|
berries->fallDist[2] = packet->fallDist_Col2;
|
||||||
|
berries->fallDist[3] = packet->fallDist_Col3;
|
||||||
|
berries->fallDist[4] = packet->fallDist_Col4;
|
||||||
|
berries->fallDist[5] = packet->fallDist_Col5;
|
||||||
|
berries->fallDist[6] = packet->fallDist_Col6;
|
||||||
|
berries->fallDist[7] = packet->fallDist_Col7;
|
||||||
|
berries->fallDist[8] = packet->fallDist_Col8;
|
||||||
|
berries->fallDist[9] = packet->fallDist_Col9;
|
||||||
|
berries->fallDist[10] = packet->fallDist_Col0;
|
||||||
|
|
||||||
|
berries->ids[0] = packet->berryId_Col0;
|
||||||
|
berries->ids[1] = packet->berryId_Col1;
|
||||||
|
berries->ids[2] = packet->berryId_Col2;
|
||||||
|
berries->ids[3] = packet->berryId_Col3;
|
||||||
|
berries->ids[4] = packet->berryId_Col4;
|
||||||
|
berries->ids[5] = packet->berryId_Col5;
|
||||||
|
berries->ids[6] = packet->berryId_Col6;
|
||||||
|
berries->ids[7] = packet->berryId_Col7;
|
||||||
|
berries->ids[8] = packet->berryId_Col8;
|
||||||
|
berries->ids[9] = packet->berryId_Col9;
|
||||||
|
berries->ids[10] = packet->berryId_Col0;
|
||||||
|
|
||||||
|
player1->pickState = packet->pickState_Player1;
|
||||||
|
player1->ateBerry = packet->ateBerry_Player1;
|
||||||
|
player1->missedBerry = packet->missedBerry_Player1;
|
||||||
|
|
||||||
|
player2->pickState = packet->pickState_Player2;
|
||||||
|
player2->ateBerry = packet->ateBerry_Player2;
|
||||||
|
player2->missedBerry = packet->missedBerry_Player2;
|
||||||
|
|
||||||
|
player3->pickState = packet->pickState_Player3;
|
||||||
|
player3->ateBerry = packet->ateBerry_Player3;
|
||||||
|
player3->missedBerry = packet->missedBerry_Player3;
|
||||||
|
|
||||||
|
player4->pickState = packet->pickState_Player4;
|
||||||
|
player4->ateBerry = packet->ateBerry_Player4;
|
||||||
|
player4->missedBerry = packet->missedBerry_Player4;
|
||||||
|
|
||||||
|
player5->pickState = packet->pickState_Player5;
|
||||||
|
player5->ateBerry = packet->ateBerry_Player5;
|
||||||
|
player5->missedBerry = packet->missedBerry_Player5;
|
||||||
|
|
||||||
|
*numGraySquares = packet->numGraySquares;
|
||||||
|
*berriesFalling = packet->berriesFalling;
|
||||||
|
*allReadyToEnd = packet->allReadyToEnd;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendPacket_PickState(u8 pickState)
|
||||||
|
{
|
||||||
|
struct PickStatePacket packet;
|
||||||
|
packet.id = PACKET_PICK_STATE;
|
||||||
|
packet.pickState = pickState;
|
||||||
|
Rfu_SendPacket(&packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 RecvPacket_PickState(u32 playerId, u8 *pickState)
|
||||||
|
{
|
||||||
|
struct PickStatePacket * packet;
|
||||||
|
|
||||||
|
if ((gRecvCmds[0][0] & RFUCMD_MASK) != RFUCMD_SEND_PACKET)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
packet = (void *)&gRecvCmds[playerId][1];
|
||||||
|
if (packet->id == PACKET_PICK_STATE)
|
||||||
|
{
|
||||||
|
*pickState = packet->pickState;
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SendPacket_ReadyToEnd(bool32 ready)
|
||||||
|
{
|
||||||
|
struct ReadyToEndPacket packet;
|
||||||
|
packet.id = PACKET_READY_END;
|
||||||
|
packet.ready = ready;
|
||||||
|
Rfu_SendPacket(&packet);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool32 RecvPacket_ReadyToEnd(u32 playerId)
|
||||||
|
{
|
||||||
|
struct ReadyToEndPacket * packet;
|
||||||
|
|
||||||
|
if ((gRecvCmds[0][0] & RFUCMD_MASK) != RFUCMD_SEND_PACKET)
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
packet = (void *)&gRecvCmds[playerId][1];
|
||||||
|
if (packet->id == PACKET_READY_END)
|
||||||
|
return packet->ready;
|
||||||
|
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
@@ -132,7 +132,6 @@
|
|||||||
.include "src/pokemon_jump.o"
|
.include "src/pokemon_jump.o"
|
||||||
.include "src/berry_crush.o"
|
.include "src/berry_crush.o"
|
||||||
.include "src/dodrio_berry_picking.o"
|
.include "src/dodrio_berry_picking.o"
|
||||||
.include "src/dodrio_berry_picking_2.o"
|
|
||||||
.include "src/teachy_tv.o"
|
.include "src/teachy_tv.o"
|
||||||
.include "src/digit_obj_util.o"
|
.include "src/digit_obj_util.o"
|
||||||
.include "src/trainer_tower.o"
|
.include "src/trainer_tower.o"
|
||||||
|
|||||||
Reference in new issue
Block a user