From 0e8b639fae1c324424c782b713685681e0dfdcb4 Mon Sep 17 00:00:00 2001 From: GriffinR Date: Sun, 7 Aug 2022 13:55:50 -0400 Subject: [PATCH] Sync dbp - rename files --- .../berries.png} | Bin .../bg.bin} | Bin .../bg.pal} | 0 .../bg.png} | Bin .../cloud.png} | Bin .../dodrio.png} | Bin .../shiny.pal} | 0 .../status.png} | Bin .../tree_border.pal} | 0 .../tree_border.png} | Bin .../tree_border_left.bin} | Bin .../tree_border_right.bin} | Bin include/dodrio_berry_picking.h | 3 + ld_script.txt | 2 +- src/data/dodrio_berry_picking.h | 242 --- src/dodrio_berry_picking.c | 64 +- src/dodrio_berry_picking_2.c | 1617 ----------------- ...icking_3.c => dodrio_berry_picking_comm.c} | 0 18 files changed, 36 insertions(+), 1892 deletions(-) rename graphics/{link_games/dodrioberry_berrysprites.png => dodrio_berry_picking/berries.png} (100%) rename graphics/{link_games/dodrioberry_bg1.bin => dodrio_berry_picking/bg.bin} (100%) rename graphics/{link_games/dodrioberry_bg1.pal => dodrio_berry_picking/bg.pal} (100%) rename graphics/{link_games/dodrioberry_bg1.png => dodrio_berry_picking/bg.png} (100%) rename graphics/{link_games/dodrioberry_platform.png => dodrio_berry_picking/cloud.png} (100%) rename graphics/{link_games/dodrioberry_pkmn.png => dodrio_berry_picking/dodrio.png} (100%) rename graphics/{link_games/dodrioberry_shiny.pal => dodrio_berry_picking/shiny.pal} (100%) rename graphics/{link_games/dodrioberry_status.png => dodrio_berry_picking/status.png} (100%) rename graphics/{link_games/dodrioberry_bg2.pal => dodrio_berry_picking/tree_border.pal} (100%) rename graphics/{link_games/dodrioberry_bg2.png => dodrio_berry_picking/tree_border.png} (100%) rename graphics/{link_games/dodrioberry_bg2left.bin => dodrio_berry_picking/tree_border_left.bin} (100%) rename graphics/{link_games/dodrioberry_bg2right.bin => dodrio_berry_picking/tree_border_right.bin} (100%) delete mode 100644 src/data/dodrio_berry_picking.h delete mode 100644 src/dodrio_berry_picking_2.c rename src/{dodrio_berry_picking_3.c => dodrio_berry_picking_comm.c} (100%) diff --git a/graphics/link_games/dodrioberry_berrysprites.png b/graphics/dodrio_berry_picking/berries.png similarity index 100% rename from graphics/link_games/dodrioberry_berrysprites.png rename to graphics/dodrio_berry_picking/berries.png diff --git a/graphics/link_games/dodrioberry_bg1.bin b/graphics/dodrio_berry_picking/bg.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg1.bin rename to graphics/dodrio_berry_picking/bg.bin diff --git a/graphics/link_games/dodrioberry_bg1.pal b/graphics/dodrio_berry_picking/bg.pal similarity index 100% rename from graphics/link_games/dodrioberry_bg1.pal rename to graphics/dodrio_berry_picking/bg.pal diff --git a/graphics/link_games/dodrioberry_bg1.png b/graphics/dodrio_berry_picking/bg.png similarity index 100% rename from graphics/link_games/dodrioberry_bg1.png rename to graphics/dodrio_berry_picking/bg.png diff --git a/graphics/link_games/dodrioberry_platform.png b/graphics/dodrio_berry_picking/cloud.png similarity index 100% rename from graphics/link_games/dodrioberry_platform.png rename to graphics/dodrio_berry_picking/cloud.png diff --git a/graphics/link_games/dodrioberry_pkmn.png b/graphics/dodrio_berry_picking/dodrio.png similarity index 100% rename from graphics/link_games/dodrioberry_pkmn.png rename to graphics/dodrio_berry_picking/dodrio.png diff --git a/graphics/link_games/dodrioberry_shiny.pal b/graphics/dodrio_berry_picking/shiny.pal similarity index 100% rename from graphics/link_games/dodrioberry_shiny.pal rename to graphics/dodrio_berry_picking/shiny.pal diff --git a/graphics/link_games/dodrioberry_status.png b/graphics/dodrio_berry_picking/status.png similarity index 100% rename from graphics/link_games/dodrioberry_status.png rename to graphics/dodrio_berry_picking/status.png diff --git a/graphics/link_games/dodrioberry_bg2.pal b/graphics/dodrio_berry_picking/tree_border.pal similarity index 100% rename from graphics/link_games/dodrioberry_bg2.pal rename to graphics/dodrio_berry_picking/tree_border.pal diff --git a/graphics/link_games/dodrioberry_bg2.png b/graphics/dodrio_berry_picking/tree_border.png similarity index 100% rename from graphics/link_games/dodrioberry_bg2.png rename to graphics/dodrio_berry_picking/tree_border.png diff --git a/graphics/link_games/dodrioberry_bg2left.bin b/graphics/dodrio_berry_picking/tree_border_left.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg2left.bin rename to graphics/dodrio_berry_picking/tree_border_left.bin diff --git a/graphics/link_games/dodrioberry_bg2right.bin b/graphics/dodrio_berry_picking/tree_border_right.bin similarity index 100% rename from graphics/link_games/dodrioberry_bg2right.bin rename to graphics/dodrio_berry_picking/tree_border_right.bin diff --git a/include/dodrio_berry_picking.h b/include/dodrio_berry_picking.h index 6ddb972b1..b075910c1 100644 --- a/include/dodrio_berry_picking.h +++ b/include/dodrio_berry_picking.h @@ -29,9 +29,12 @@ struct DodrioGame_Player u32 unused; }; // size = 0x3C +// dodrio_berry_picking.c void StartDodrioBerryPicking(u16 partyId, MainCallback exitCallback); void ShowDodrioBerryPickingRecords(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, diff --git a/ld_script.txt b/ld_script.txt index d6a10b16a..09e230ed6 100644 --- a/ld_script.txt +++ b/ld_script.txt @@ -294,7 +294,7 @@ SECTIONS { src/dodrio_berry_picking.o(.text); src/battle_controller_pokedude.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/ereader_helpers.o(.text); src/digit_obj_util.o(.text); diff --git a/src/data/dodrio_berry_picking.h b/src/data/dodrio_berry_picking.h deleted file mode 100644 index 9128495b1..000000000 --- a/src/data/dodrio_berry_picking.h +++ /dev/null @@ -1,242 +0,0 @@ -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"); diff --git a/src/dodrio_berry_picking.c b/src/dodrio_berry_picking.c index 71b64b811..24f5bc8e6 100644 --- a/src/dodrio_berry_picking.c +++ b/src/dodrio_berry_picking.c @@ -612,22 +612,22 @@ static const u8 sUnsharedColumns[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS] = }; // Duplicate and unused gfx. -static const u32 sDuplicateGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.gbapal", - "graphics/link_games/dodrioberry_bg2.gbapal", - "graphics/link_games/dodrioberry_pkmn.gbapal", - "graphics/link_games/dodrioberry_shiny.gbapal", - "graphics/link_games/dodrioberry_status.gbapal", - "graphics/link_games/dodrioberry_berrysprites.gbapal", - "graphics/link_games/dodrioberry_berrysprites.4bpp.lz", - "graphics/link_games/dodrioberry_platform.gbapal", - "graphics/link_games/dodrioberry_bg1.4bpp.lz", - "graphics/link_games/dodrioberry_bg2.4bpp.lz", - "graphics/link_games/dodrioberry_status.4bpp.lz", - "graphics/link_games/dodrioberry_platform.4bpp.lz", - "graphics/link_games/dodrioberry_pkmn.4bpp.lz", - "graphics/link_games/dodrioberry_bg1.bin.lz", - "graphics/link_games/dodrioberry_bg2right.bin.lz", - "graphics/link_games/dodrioberry_bg2left.bin.lz"); +static const u32 sDuplicateGfx[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.gbapal", + "graphics/dodrio_berry_picking/tree_border.gbapal", + "graphics/dodrio_berry_picking/dodrio.gbapal", + "graphics/dodrio_berry_picking/shiny.gbapal", + "graphics/dodrio_berry_picking/status.gbapal", + "graphics/dodrio_berry_picking/berries.gbapal", + "graphics/dodrio_berry_picking/berries.4bpp.lz", + "graphics/dodrio_berry_picking/cloud.gbapal", + "graphics/dodrio_berry_picking/bg.4bpp.lz", + "graphics/dodrio_berry_picking/tree_border.4bpp.lz", + "graphics/dodrio_berry_picking/status.4bpp.lz", + "graphics/dodrio_berry_picking/cloud.4bpp.lz", + "graphics/dodrio_berry_picking/dodrio.4bpp.lz", + "graphics/dodrio_berry_picking/bg.bin.lz", + "graphics/dodrio_berry_picking/tree_border_right.bin.lz", + "graphics/dodrio_berry_picking/tree_border_left.bin.lz"); static const u8 sBerryFallDelays[][3] = { @@ -3320,22 +3320,22 @@ static const u8 sUnsharedColumns_Duplicate[MAX_RFU_PLAYERS][MAX_RFU_PLAYERS] = {1, 3, 5, 6, 9}, }; -static const u16 sBg_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal", - "graphics/link_games/dodrioberry_bg2.gbapal"); -static const u16 sDodrioNormal_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal"); -static const u16 sDodrioShiny_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal"); -static const u16 sStatus_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal"); -static const u16 sBerries_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal"); -static const u32 sBerries_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz"); -static const u16 sCloud_Pal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal"); -static const u32 sBg_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz"); -static const u32 sTreeBorder_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz"); -static const u32 sStatus_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz"); -static const u32 sCloud_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz"); -static const u32 sDodrio_Gfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz"); -static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz"); -static const u32 sTreeBorderRight_Tilemap[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz"); -static const u32 sTreeBorderLeft_Tilemap[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz"); +static const u16 sBg_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/bg.gbapal", + "graphics/dodrio_berry_picking/tree_border.gbapal"); +static const u16 sDodrioNormal_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/dodrio.gbapal"); +static const u16 sDodrioShiny_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/shiny.gbapal"); +static const u16 sStatus_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/status.gbapal"); +static const u16 sBerries_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/berries.gbapal"); +static const u32 sBerries_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/berries.4bpp.lz"); +static const u16 sCloud_Pal[] = INCBIN_U16("graphics/dodrio_berry_picking/cloud.gbapal"); +static const u32 sBg_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.4bpp.lz"); +static const u32 sTreeBorder_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border.4bpp.lz"); +static const u32 sStatus_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/status.4bpp.lz"); +static const u32 sCloud_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/cloud.4bpp.lz"); +static const u32 sDodrio_Gfx[] = INCBIN_U32("graphics/dodrio_berry_picking/dodrio.4bpp.lz"); +static const u32 sBg_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/bg.bin.lz"); +static const u32 sTreeBorderRight_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border_right.bin.lz"); +static const u32 sTreeBorderLeft_Tilemap[] = INCBIN_U32("graphics/dodrio_berry_picking/tree_border_left.bin.lz"); static const struct OamData sOamData_Dodrio = { diff --git a/src/dodrio_berry_picking_2.c b/src/dodrio_berry_picking_2.c deleted file mode 100644 index 3888b1895..000000000 --- a/src/dodrio_berry_picking_2.c +++ /dev/null @@ -1,1617 +0,0 @@ -#include "global.h" -#include "gflib.h" -#include "dodrio_berry_picking.h" -#include "dynamic_placeholder_text_util.h" -#include "item.h" -#include "link.h" -#include "menu.h" -#include "new_menu_helpers.h" -#include "save.h" -#include "strings.h" -#include "task.h" -#include "text_window.h" -#include "text_window_graphics.h" -#include "constants/songs.h" -/* -struct DodrioStruct_2022CF4 -{ - u8 filler_00[0xc]; - u8 unkC[10]; - s16 unk16[10]; - u16 unk2A[10]; - u16 unk3E; -}; // size = 0x40 - -static EWRAM_DATA u16 *gUnknown_203F3E4[5] = {NULL}; -static EWRAM_DATA u16 *gUnknown_203F3F8[2] = {NULL}; -static EWRAM_DATA u16 *gUnknown_203F400[11] = {NULL}; -static EWRAM_DATA u16 *gUnknown_203F42C[4] = {NULL}; -static EWRAM_DATA struct DodrioStruct_2022CF4 * gUnknown_203F43C = NULL; -static EWRAM_DATA struct DodrioSubstruct_0160 * gUnknown_203F440 = NULL; - -static void sub_8153B9C(struct Sprite *sprite); -static u32 sub_8153C30(struct Sprite *sprite); -static u32 sub_8153CA0(struct Sprite *sprite); -static void sub_8153D48(bool8 a0, u8 a1); -static void nullsub_97(struct Sprite *sprite); -static void sub_8154324(bool8 a0); -static void sub_81543E8(struct Sprite *sprite); -static s16 sub_8154608(u8 a0, u8 a1); -static void sub_8154A08(u8 taskId); -static void sub_8154A2C(void); -static void sub_8154B34(void); -static void sub_8154F80(void); -static void sub_81556E0(void); -static void sub_8155A78(void); -static void sub_8155B4C(void); -static void sub_8155C2C(void); -static void sub_8155C80(void); -static void unused_0(void); -static void nullsub_98(void); -static void sub_8155E24(MainCallback cb); -MainCallback sub_8155E54(void); -static void sub_8155EA0(void); -static bool32 sub_8155FE0(void); - -// Assets in this header are duplicated -#include "data/dodrio_berry_picking.h" - -static const struct OamData sOamData_8478C98 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x64), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(64x64), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, - .affineParam = 0 -}; - -static const struct OamData sOamData_8478CA0 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 0, - .paletteNum = 0, - .affineParam = 0 -}; - -static const struct OamData sOamData_8478CA8 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(16x16), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(16x16), - .tileNum = 0, - .priority = 2, - .paletteNum = 0, - .affineParam = 0 -}; - -static const struct OamData sOamData_8478CB0 = -{ - .y = 0, - .affineMode = ST_OAM_AFFINE_OFF, - .objMode = ST_OAM_OBJ_NORMAL, - .mosaic = FALSE, - .bpp = ST_OAM_4BPP, - .shape = SPRITE_SHAPE(64x32), - .x = 0, - .matrixNum = 0, - .size = SPRITE_SIZE(64x32), - .tileNum = 0, - .priority = 3, - .paletteNum = 0, - .affineParam = 0 -}; - -static const union AnimCmd sSpriteAnim_8478CB8[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478CC0[] = -{ - ANIMCMD_FRAME(64, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478CC8[] = -{ - ANIMCMD_FRAME(128, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478CD0[] = -{ - ANIMCMD_FRAME(192, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478CD8[] = -{ - ANIMCMD_FRAME(256, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_8478CE0[] = -{ - sSpriteAnim_8478CB8, - sSpriteAnim_8478CC0, - sSpriteAnim_8478CC8, - sSpriteAnim_8478CD0, - sSpriteAnim_8478CD8 -}; - -static const union AnimCmd sSpriteAnim_8478CF4[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478CFC[] = -{ - ANIMCMD_FRAME(4, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D04[] = -{ - ANIMCMD_FRAME(8, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_8478D0C[] = -{ - sSpriteAnim_8478CF4, - sSpriteAnim_8478CFC, - sSpriteAnim_8478D04 -}; - -static const union AnimCmd sSpriteAnim_8478D18[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D20[] = -{ - ANIMCMD_FRAME(4, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D28[] = -{ - ANIMCMD_FRAME(8, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D30[] = -{ - ANIMCMD_FRAME(12, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D38[] = -{ - ANIMCMD_FRAME(16, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D40[] = -{ - ANIMCMD_FRAME(20, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D48[] = -{ - ANIMCMD_FRAME(24, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D50[] = -{ - ANIMCMD_FRAME(28, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd sSpriteAnim_8478D58[] = -{ - ANIMCMD_FRAME(32, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_8478D60[] = -{ - sSpriteAnim_8478D18, - sSpriteAnim_8478D20, - sSpriteAnim_8478D28, - sSpriteAnim_8478D30, - sSpriteAnim_8478D38, - sSpriteAnim_8478D40, - sSpriteAnim_8478D48, - sSpriteAnim_8478D50, - sSpriteAnim_8478D58 -}; - -static const union AnimCmd sSpriteAnim_8478D84[] = -{ - ANIMCMD_FRAME(0, 20), - ANIMCMD_JUMP(0) -}; - -static const union AnimCmd *const sSpriteAnimTable_8478D8C[] = -{ - sSpriteAnim_8478D84 -}; - -// Code - -void sub_8153A9C(void) -{ - void *ptr = AllocZeroed(0x3000); - struct SpritePalette pal1 = {sDodrioBerryPkmnPal, 0}; - struct SpritePalette pal2 = {sDodrioBerryShinyPal, 1}; - - LZ77UnCompWram(sDodrioBerryPkmnGfx, ptr); - // This check should be one line up. - if (ptr != NULL) - { - struct SpriteSheet sheet = {ptr, 0x3000, 0}; - LoadSpriteSheet(&sheet); - Free(ptr); - } - LoadSpritePalette(&pal1); - LoadSpritePalette(&pal2); -} - -void sub_8153AFC(struct DodrioSubstruct_318C * arg0, u8 arg1, u8 id, u8 arg3) -{ - struct SpriteTemplate sprTemplate = - { - .tileTag = 0, - .paletteTag = arg0->isShiny, - .oam = &sOamData_8478C98, - .anims = sSpriteAnimTable_8478CE0, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_8153B9C, - }; - - gUnknown_203F3E4[id] = AllocZeroed(4); - *gUnknown_203F3E4[id] = CreateSprite(&sprTemplate, sub_8154608(arg1, arg3), 136, 3); - sub_8153D48(TRUE, id); -} - -static void sub_8153B9C(struct Sprite *sprite) -{ - switch (sprite->data[0]) - { - case 0: - break; - case 1: - sub_8153C30(sprite); - break; - case 2: - sub_8153CA0(sprite); - break; - } -} - -void sub_8153BC0(u8 unused) -{ - struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]]; - sprite->data[0] = 1; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[3] = 0; - sprite->data[4] = 0; -} - -void sub_8153BF8(u8 unused) -{ - struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[GetMultiplayerId()]]; - sprite->data[0] = 2; - sprite->data[1] = 0; - sprite->data[2] = 0; - sprite->data[3] = 0; - sprite->data[4] = 0; -} - -static u32 sub_8153C30(struct Sprite *sprite) -{ - s8 var; - u8 mod = (++sprite->data[1] / 2) % 4; - - if (sprite->data[1] >= 3) - { - switch (mod) - { - default: - var = 1; - break; - case 1: - case 2: - var = -1; - break; - } - - sprite->x += var; - if (++sprite->data[1] >= 40) - { - sprite->data[0] = 0; - sprite->x = sub_8154608(0, sub_81533B4()); - } - } - - return 0; -} - -static u32 sub_8153CA0(struct Sprite *sprite) -{ - u8 mod = (++sprite->data[1] / 13) % 4; - - if (sprite->data[1] % 13 == 0 && mod != 0) - PlaySE(SE_M_CHARM); - if (sprite->data[1] >= 104) - { - sprite->data[0] = 0; - mod = 0; - } - sub_8153DA8(GetMultiplayerId(), mod); - return 0; -} - -void sub_8153D08(u8 count) -{ - u8 i; - for (i = 0; i < count; i++) - { - struct Sprite *sprite = &gSprites[*gUnknown_203F3E4[i]]; - if (sprite != NULL) - DestroySpriteAndFreeResources(sprite); - // Memory should be freed here but is not. - } -} - -static void sub_8153D48(bool8 invisible, u8 id) -{ - gSprites[*gUnknown_203F3E4[id]].invisible = invisible; -} - -void sub_8153D80(bool8 invisible, u8 count) -{ - u8 i; - for (i = 0; i < count; i++) - sub_8153D48(invisible, i); -} - -void sub_8153DA8(u8 id, u8 frameNum) -{ - StartSpriteAnim(&gSprites[*gUnknown_203F3E4[id]], frameNum); -} - -static void nullsub_97(struct Sprite *sprite) -{ - -} - -void sub_8153DD8(void) -{ - u8 i; - for (i = 0; i < 10; i++) - { - struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]]; - sprite->x = (i * 16) + 48; - sprite->y = -8 - (i * 8); - gUnknown_203F43C->unkC[i] = 0; - } -} - -void sub_8153E28(void) -{ - u8 i; - void *ptr = AllocZeroed(0x180); - struct SpritePalette spPal = {sDodrioBerryStatusPal, 2}; - - LZ77UnCompWram(sDodrioBerryStatusGfx, ptr); - // This check should be one line up. - if (ptr != NULL) - { - struct SpriteSheet spSheet = {ptr, 0x180, 1}; - struct SpriteTemplate spTemplate = - { - .tileTag = 1, - .paletteTag = 2, - .oam = &sOamData_8478CA0, - .anims = sSpriteAnimTable_8478D0C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = nullsub_97, - }; - - gUnknown_203F43C = AllocZeroed(sizeof(*gUnknown_203F43C)); - LoadSpriteSheet(&spSheet); - LoadSpritePalette(&spPal); - for (i = 0; i < 10; i++) - gUnknown_203F43C->unk2A[i] = CreateSprite(&spTemplate, (i * 16) + 48, -8 - (i * 8), 0); - } - - Free(ptr); -} - -void sub_8153ED8(void) -{ - u8 i; - for (i = 0; i < 10; i++) - { - struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]]; - if (sprite != NULL) - DestroySpriteAndFreeResources(sprite); - } - FREE_AND_SET_NULL(gUnknown_203F43C); -} - -bool32 sub_8153F1C(void) -{ - u8 i; - bool32 r3 = FALSE; - for (i = 0; i < 10; i++) - { - struct Sprite *sprite = &gSprites[gUnknown_203F43C->unk2A[i]]; - gUnknown_203F43C->unk16[i] = 2; - if (gUnknown_203F43C->unkC[i] != 0 && sprite->y == 8) - continue; - r3 = TRUE; - if (sprite->y == 8) - { - if (gUnknown_203F43C->unkC[i] != 0) - continue; - gUnknown_203F43C->unkC[i] = 1; - gUnknown_203F43C->unk16[i] = -16; - PlaySE(SE_CLICK); - } - sprite->y += gUnknown_203F43C->unk16[i]; - } - - if (r3) - return FALSE; - else - return TRUE; -} - -void sub_8153FC8(u8 arg0) -{ - u8 i; - - if (arg0 > 10) - { - for (i = 0; i < 10; i++) - StartSpriteAnim(&gSprites[gUnknown_203F43C->unk2A[i]], 1); - } - else - { - for (i = 0; i < 10 - arg0; i++) - { - if (arg0 > 6) - { - gUnknown_203F43C->unk3E += arg0 - 6; - if (gUnknown_203F43C->unk3E > 30) - gUnknown_203F43C->unk3E = 0; - else if (gUnknown_203F43C->unk3E > 10) - StartSpriteAnim(&gSprites[gUnknown_203F43C->unk2A[i]], 2); - else - StartSpriteAnim(&gSprites[gUnknown_203F43C->unk2A[i]], 0); - } - else - { - StartSpriteAnim(&gSprites[gUnknown_203F43C->unk2A[i]], 0); - } - } - for (; i < 10; i++) - StartSpriteAnim(&gSprites[gUnknown_203F43C->unk2A[i]], 1); - } -} - -void sub_81540DC(bool8 invisible) -{ - u8 i; - for (i = 0; i < 10; i++) - gSprites[gUnknown_203F43C->unk2A[i]].invisible = invisible; -} - -// Unknown unused data, feel free to remove. -static const u8 sUnused2[] = { - SE_M_CHARM, - SE_NOTE_C, - SE_NOTE_D, - SE_NOTE_E, - SE_NOTE_F, - SE_NOTE_G, - SE_NOTE_A, - SE_NOTE_B, - SE_NOTE_C_HIGH, - SE_CARD_OPEN -}; - -void sub_8154128(void) -{ - void *ptr = AllocZeroed(0x480); - struct SpritePalette sprPal = {sDodrioBerrySpritesPal, 3}; - - LZ77UnCompWram(sDodrioBerrySpritesGfx, ptr); - if (ptr != NULL) // This should be one line up - { - struct SpriteSheet sprSheet = {ptr, 0x480, 2}; - LoadSpriteSheet(&sprSheet); - } - - LoadSpritePalette(&sprPal); - Free(ptr); -} - -static const s16 sUnknown_8478DD4[] = {88, 128, 168, 208}; - -void sub_815417C(void) -{ - u8 i; - s16 x; - - struct SpriteTemplate sprTemplate1 = - { - .tileTag = 2, - .paletteTag = 3, - .oam = &sOamData_8478CA8, - .anims = sSpriteAnimTable_8478D60, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }; - struct SpriteTemplate sprTemplate2 = - { - .tileTag = 2, - .paletteTag = 3, - .oam = &sOamData_8478CA0, - .anims = sSpriteAnimTable_8478D60, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = SpriteCallbackDummy, - }; - - for (i = 0; i < 11; i++) - { - gUnknown_203F400[i] = AllocZeroed(4); - x = i * 16; - *gUnknown_203F400[i] = CreateSprite(&sprTemplate1, x + (i * 8), 8, 1); - sub_81542EC(i, TRUE); - } - for (i = 0; i < 4; i++) - { - gUnknown_203F42C[i] = AllocZeroed(4); - if (i == 3) - *gUnknown_203F42C[i] = CreateSprite(&sprTemplate2, sUnknown_8478DD4[i], 57, 0); - else - *gUnknown_203F42C[i] = CreateSprite(&sprTemplate2, sUnknown_8478DD4[i], 60, 0); - StartSpriteAnim(&gSprites[*gUnknown_203F42C[i]], i); - } - - sub_8154324(TRUE); -} - -void sub_8154274(void) -{ - struct Sprite *sprite; - u8 i; - - for (i = 0; i < 11; i++) - { - sprite = &gSprites[*gUnknown_203F400[i]]; - if (sprite != NULL) - DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_203F400[i]); - } - for (i = 0; i < 4; i++) - { - sprite = &gSprites[*gUnknown_203F42C[i]]; - if (sprite != NULL) - DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_203F42C[i]); - } -} - -void sub_81542EC(u8 id, bool8 invisible) -{ - gSprites[*gUnknown_203F400[id]].invisible = invisible; -} - -static void sub_8154324(bool8 invisible) -{ - u8 i; - for (i = 0; i < 4; i++) - gSprites[*gUnknown_203F42C[i]].invisible = invisible; -} - -void sub_8154370(u8 id, u8 y) -{ - gSprites[*gUnknown_203F400[id]].y = y * 8; -} - -void sub_8154398(u16 id, u8 frameNum) -{ - StartSpriteAnim(&gSprites[*gUnknown_203F400[id]], frameNum); -} - -// Unused -static void sub_81543C4(u8 spriteId) -{ - gSprites[spriteId].x = 20 * spriteId + 50; - gSprites[spriteId].y = 50; -} - -// Gamefreak made a mistake there and goes out of bounds for the data array as it holds 8 elements -// in turn overwriting sprite's subpriority and subsprites fields. -#if defined(BUGFIX) -#define sKeepPosX data[1] -#else -#define sKeepPosX data[10] -#endif // BUGFIX - -static void sub_81543E8(struct Sprite *sprite) -{ - u8 i; - static const u8 array[] = {30, 20}; - - if (sprite->sKeepPosX != TRUE) - { - for (i = 0; i < 2; i++) - { - if (++gUnknown_203F3F8[i][1] > array[i]) - { - sprite->x--; - gUnknown_203F3F8[i][1] = 0; - } - } - } -} - -static const s16 gUnknown_8478E0E[][2] = {{230, 55}, {30, 74}}; - -void sub_8154438(void) -{ - u8 i; - void *ptr = AllocZeroed(0x400); - struct SpritePalette sprPal = {sDodrioBerryPlatformPal, 6}; - - LZ77UnCompWram(sDodrioBerryPlatformGfx, ptr); - if (ptr != NULL) // This should be one line up - { - struct SpriteSheet sprSheet = {ptr, 0x400, 5}; - struct SpriteTemplate sprTemplate = - { - .tileTag = 5, - .paletteTag = 6, - .oam = &sOamData_8478CB0, - .anims = sSpriteAnimTable_8478D8C, - .images = NULL, - .affineAnims = gDummySpriteAffineAnimTable, - .callback = sub_81543E8, - }; - - LoadSpriteSheet(&sprSheet); - LoadSpritePalette(&sprPal); - for (i = 0; i < 2; i++) - { - gUnknown_203F3F8[i] = AllocZeroed(4); - *gUnknown_203F3F8[i] = CreateSprite(&sprTemplate, gUnknown_8478E0E[i][0], gUnknown_8478E0E[i][1], 4); - } - } - - Free(ptr); -} - -void sub_81544F0(void) -{ - u8 i; - for (i = 0; i < 2; i++) - { - struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]]; - sprite->sKeepPosX = TRUE; - sprite->x = gUnknown_8478E0E[i][0]; - sprite->y = gUnknown_8478E0E[i][1]; - } -} - -void sub_8154540(void) -{ - u8 i; - for (i = 0; i < 2; i++) - { - struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]]; - sprite->sKeepPosX = FALSE; - } -} - -void sub_8154578(void) -{ - u8 i; - for (i = 0; i < 2; i++) - { - struct Sprite *sprite = &gSprites[*gUnknown_203F3F8[i]]; - if (sprite) - DestroySprite(sprite); - FREE_AND_SET_NULL(gUnknown_203F3F8[i]); - } -} - -void sub_81545BC(bool8 invisible) -{ - u8 i; - for (i = 0; i < 2; i++) - gSprites[*gUnknown_203F3F8[i]].invisible = invisible; -} - -#undef sKeepPosX - -static s16 sub_8154608(u8 arg0, u8 arg1) -{ - s16 x = 0; - switch (arg1) - { - case 1: - x = 15; - break; - case 2: - switch (arg0) - { - case 0: x = 12; break; - case 1: x = 18; break; - } - break; - case 3: - switch (arg0) - { - case 0: x = 15; break; - case 1: x = 21; break; - case 2: x = 9; break; - } - break; - case 4: - switch (arg0) - { - case 0: x = 12; break; - case 1: x = 18; break; - case 2: x = 24; break; - case 3: x = 6; break; - } - break; - case 5: - switch (arg0) - { - case 0: x = 15; break; - case 1: x = 21; break; - case 2: x = 27; break; - case 3: x = 3; break; - case 4: x = 9; break; - } - break; - } - - return x * 8; -} - -void sub_81546C0(void) -{ - u8 i; - for (i = 0; i < 11; i++) - { - sub_81542EC(i, TRUE); - sub_8154370(i, 1); - } - sub_81540DC(FALSE); -} - -static void sub_81546EC(u8 frameId) -{ - LoadBgTiles(0, GetWindowFrameTilesPal(frameId)->tiles, 0x120, 1); - LoadPalette(GetWindowFrameTilesPal(frameId)->palette, 0xA0, 0x20); -} - -static void sub_8154720(void) -{ - TextWindow_SetStdFrame0_WithPal(0, 0xA, 0xB0); -} - -void sub_8154730(void) -{ - gUnknown_203F440->finished = FALSE; - gUnknown_203F440->state = 0; - gUnknown_203F440->unk3018 = 0; - gUnknown_203F440->unk3020 = 0; - gUnknown_203F440->unk3024 = 0; -} - -static void sub_8154768(const struct WindowTemplate * winTempl) -{ - u8 pal = 0xA; - - FillBgTilemapBufferRect(0, 1, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 2, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 3, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 4, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 6, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 7, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); - FillBgTilemapBufferRect(0, 8, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 9, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); -} - -static void sub_8154868(const struct WindowTemplate * winTempl) -{ - u8 pal = 0xB; - - FillBgTilemapBufferRect(0, 10, winTempl->tilemapLeft - 1, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 11, winTempl->tilemapLeft, winTempl->tilemapTop - 1, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 12, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop - 1, 1, 1, pal); - FillBgTilemapBufferRect(0, 13, winTempl->tilemapLeft - 1, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 15, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop, 1, winTempl->height, pal); - FillBgTilemapBufferRect(0, 16, winTempl->tilemapLeft - 1, winTempl->tilemapTop + winTempl->height, 1, 1, pal); - FillBgTilemapBufferRect(0, 17, winTempl->tilemapLeft, winTempl->tilemapTop + winTempl->height, winTempl->width, 1, pal); - FillBgTilemapBufferRect(0, 18, winTempl->tilemapLeft + winTempl->width, winTempl->tilemapTop + winTempl->height, 1, 1, pal); -} - -void sub_8154968(struct DodrioSubstruct_0160 * ptr) -{ - gUnknown_203F440 = ptr; - gUnknown_203F440->finished = FALSE; - gUnknown_203F440->state = 0; - gUnknown_203F440->unk3018 = 0; - gUnknown_203F440->unk3020 = 0; - gUnknown_203F440->unk3024 = 0; - gUnknown_203F440->unk3004 = CreateTask(sub_8154A08, 3); - sub_8155E24(sub_8154A2C); -} - -static void sub_81549C8(void) -{ - FreeAllWindowBuffers(); -} - -struct WinCoords -{ - u8 left; - u8 top; -}; - -static const u8 sTextColorTable[][3] = -{ - { - TEXT_COLOR_WHITE, - TEXT_COLOR_DARK_GRAY, - TEXT_COLOR_LIGHT_GRAY - }, { - TEXT_COLOR_WHITE, - TEXT_COLOR_RED, - TEXT_COLOR_LIGHT_RED - }, { - TEXT_COLOR_WHITE, - TEXT_COLOR_BLUE, - TEXT_COLOR_LIGHT_BLUE - }, { - TEXT_COLOR_WHITE, - TEXT_COLOR_GREEN, - TEXT_COLOR_LIGHT_GREEN - } -}; - -static const struct WinCoords sUnknown_8478E44[] = {{12, 6}}; -static const struct WinCoords sUnknown_8478E48[] = {{9, 10}, {15, 6}}; -static const struct WinCoords sUnknown_8478E50[] = {{12, 6}, {18, 10}, {6, 10}}; -static const struct WinCoords sUnknown_8478E5C[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}}; -static const struct WinCoords sUnknown_8478E6C[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}}; - -static const struct WinCoords * const sUnknown_8478E80[] = -{ - sUnknown_8478E44, - sUnknown_8478E48, - sUnknown_8478E50, - sUnknown_8478E5C, - sUnknown_8478E6C, -}; - -static const u8 *const sUnknown_8478E94[] = -{ - gText_1Colon, - gText_2Colon, - gText_3Colon, - gText_4Colon, - gText_5Colon, -}; - -static const u16 sUnknown_8478EA8[] = {92, 132, 172, 212}; -static const u16 sUnknown_8478EB0[] = {30, 45, 60, 75, 90}; -static const u16 sUnknown_8478EBA[] = {12, 28, 44, 60, 76}; - -struct -{ - u8 id; - void (*func)(void); -} const gUnknown_8478EC4[] = -{ - {0, sub_8154A2C}, - {1, sub_8154B34}, - {2, sub_8154F80}, - {3, sub_81556E0}, - {4, sub_8155A78}, - {5, sub_8155B4C}, - {6, sub_8155C2C}, - {7, sub_8155C80}, - {8, unused_0}, - {9, nullsub_98}, -}; - -void sub_81549D4(u8 arg0) -{ - u8 i; - for (i = 0; i < 10; i++) - { - if (gUnknown_8478EC4[i].id == arg0) - sub_8155E24(gUnknown_8478EC4[i].func); - } -} - -static void sub_8154A08(u8 taskId) -{ - if (!gUnknown_203F440->finished) - sub_8155E54()(); -} - -static void sub_8154A2C(void) -{ - switch (gUnknown_203F440->state) - { - case 0: - sub_8155EA0(); - gUnknown_203F440->state++; - break; - case 1: - if (sub_8155FE0() == TRUE) - gUnknown_203F440->state++; - break; - case 2: - CopyToBgTilemapBuffer(3, sDodrioBerryBgTilemap1, 0, 0); - CopyToBgTilemapBuffer(1, sDodrioBerryBgTilemap2Left, 0, 0); - CopyToBgTilemapBuffer(2, sDodrioBerryBgTilemap2Right, 0, 0); - CopyBgTilemapBufferToVram(3); - CopyBgTilemapBufferToVram(1); - CopyBgTilemapBufferToVram(2); - gUnknown_203F440->state++; - break; - case 3: - ShowBg(0); - ShowBg(3); - ShowBg(1); - ShowBg(2); - gUnknown_203F440->state++; - break; - case 4: - sub_81546EC(gSaveBlock2Ptr->optionsWindowFrameType); - sub_8154720(); - gUnknown_203F440->state++; - break; - default: - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void sub_8154B34(void) -{ - u8 i, playersCount, id, colorsId, *name; - u32 left; - struct WindowTemplate window; - const struct WinCoords * ptr; - - switch (gUnknown_203F440->state) - { - case 0: - playersCount = sub_81533B4(); - ptr = sUnknown_8478E80[playersCount - 1]; - window.bg = 0; - window.width = 7; - window.height = 2; - window.paletteNum = 0xD; - window.baseBlock = 0x13; - for (i = 0; i < playersCount; ptr++, i++) - { - colorsId = 0; - id = sub_81537AC(i); - left = (56 - GetStringWidth(FONT_0, sub_81533C4(id), -1)) / 2u; - window.tilemapLeft = ptr->left; - window.tilemapTop = ptr->top; - gUnknown_203F440->unk3008[i] = AddWindow(&window); - ClearWindowTilemap(gUnknown_203F440->unk3008[i]); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[i], PIXEL_FILL(1)); - if (id == GetMultiplayerId()) - colorsId = 2; - name = sub_81533C4(id); - AddTextPrinterParameterized3(gUnknown_203F440->unk3008[i], FONT_0, left, 1, sTextColorTable[colorsId], -1, name); - CopyWindowToVram(gUnknown_203F440->unk3008[i], COPYWIN_GFX); - window.baseBlock += 0xE; - sub_8154868(&window); - } - gUnknown_203F440->state++; - break; - case 1: - if (!IsDma3ManagerBusyWithBgCopy()) - { - playersCount = sub_81533B4(); - for (i = 0; i < playersCount; i++) - PutWindowTilemap(gUnknown_203F440->unk3008[i]); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->state++; - } - break; - default: - if (++gUnknown_203F440->state > 180) - { - playersCount = sub_81533B4(); - for (i = 0; i < playersCount; i++) - { - ClearWindowTilemap(gUnknown_203F440->unk3008[i]); - RemoveWindow(gUnknown_203F440->unk3008[i]); - } - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; - } - break; - } -} - -static void sub_8154D9C(u8 playersCount_) -{ - u8 i, r8 = 0, r6 = 0; - u8 playersCount = playersCount_; // Pointless variable, I know, but it's needed to match. - u8 *name; - u32 x, numWidth; - u8 numString[32]; - u8 array[5] = {0, 1, 2, 3, 4}; - struct DodrioSubstruct_3308 temp, structArray[5]; - - for (i = 0; i < playersCount; i++) - { - array[i] = i; - sub_81536A0(&temp, i); - structArray[i] = temp; - } - - if (sub_81534AC() != 0) - { - do - { - for (i = 0; i < playersCount; i++) - { - if (structArray[i].unk0 == r8) - { - array[r6] = i; - r6++; - } - } - r8 = r6; - } while (r6 < playersCount); - } - - for (i = 0; i < playersCount; i++) - { - if (structArray[i].unk4 == 0) - structArray[i].unk0 = playersCount - 1; - } - - x = 216 - GetStringWidth(FONT_0, gText_SpacePoints, 0); - for (i = 0; i < playersCount; i++) - { - u8 colorsId = 0; - u8 id = array[i]; - u32 points = structArray[id].unk4; - - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, sUnknown_8478E94[structArray[id].unk0], 8, sUnknown_8478EBA[i], -1, NULL); - if (id == GetMultiplayerId()) - colorsId = 2; - name = sub_81533C4(id); - AddTextPrinterParameterized3(gUnknown_203F440->unk3008[1], FONT_0, 28, sUnknown_8478EBA[i], sTextColorTable[colorsId], -1, name); - ConvertIntToDecimalStringN(numString, points, STR_CONV_MODE_RIGHT_ALIGN, 7); - numWidth = GetStringWidth(FONT_0, numString, -1); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, numString, x - 35, sUnknown_8478EBA[i], -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, gText_SpacePoints, x, sUnknown_8478EBA[i], -1, NULL); - } -} - -static void sub_8154F80(void) -{ - u8 i, j, itemGiveRet, playersCount = sub_81533B4(); - u8 *name; - u32 strWidth, x; - u8 sp0C[100]; - u8 sp70[20]; - - switch (gUnknown_203F440->state) - { - case 0: - sub_81535B0(); - gUnknown_203F440->unk301C = 0; - gUnknown_203F440->state++; - break; - case 1: - gUnknown_203F440->unk3008[0] = AddWindow(&sUnknown_8475674[0]); - gUnknown_203F440->unk3008[1] = AddWindow(&sUnknown_8475674[1]); - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - ClearWindowTilemap(gUnknown_203F440->unk3008[1]); - sub_8154868(&sUnknown_8475674[0]); - sub_8154868(&sUnknown_8475674[1]); - gUnknown_203F440->state++; - break; - case 2: - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[1], PIXEL_FILL(1)); - strWidth = GetStringWidth(FONT_0, gText_BerryPickingResults, -1); - x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_0, gText_BerryPickingResults, x, 2, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, gText_10P30P50P50P, 68, 16, -1, NULL); - for (i = 0; i < playersCount; i++) - { - u8 colorsId = 0; - if (i == GetMultiplayerId()) - colorsId = 2; - - name = sub_81533C4(i); - AddTextPrinterParameterized3(gUnknown_203F440->unk3008[1], FONT_0, 2, sUnknown_8478EB0[i], sTextColorTable[colorsId], -1, name); - for (j = 0; j < 4; j++) - { - u32 width; - u16 result1 = Min(sub_8153404(i, j), 9999); - u16 result2 = Min(sub_81534F0(j), 9999); - - ConvertIntToDecimalStringN(sp0C, result1, STR_CONV_MODE_LEFT_ALIGN, 4); - width = GetStringWidth(FONT_0, sp0C, -1); - if (result2 == result1 && result2 != 0) - AddTextPrinterParameterized3(gUnknown_203F440->unk3008[1], FONT_0, sUnknown_8478EA8[j] - width, sUnknown_8478EB0[i], sTextColorTable[1], -1, sp0C); - else - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, sp0C, sUnknown_8478EA8[j] - width, sUnknown_8478EB0[i], -1, NULL); - } - } - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 3: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - PutWindowTilemap(gUnknown_203F440->unk3008[1]); - } - CopyBgTilemapBufferToVram(0); - sub_8154324(FALSE); - gUnknown_203F440->state++; - break; - case 4: - if (++gUnknown_203F440->unk301C >= 30 && JOY_NEW(A_BUTTON)) - { - gUnknown_203F440->unk301C = 0; - PlaySE(SE_SELECT); - sub_8154324(TRUE); - gUnknown_203F440->state++; - } - break; - case 5: - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[1], PIXEL_FILL(1)); - strWidth = GetStringWidth(FONT_0, gText_AnnouncingRankings, -1); - x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_0, gText_AnnouncingRankings, x, 2, -1, NULL); - gUnknown_203F440->state++; - break; - case 6: - sub_8154D9C(playersCount); - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 7: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - PutWindowTilemap(gUnknown_203F440->unk3008[1]); - } - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->state++; - break; - case 8: - if (++gUnknown_203F440->unk301C >= 30 && JOY_NEW(A_BUTTON)) - { - gUnknown_203F440->unk301C = 0; - PlaySE(SE_SELECT); - if (sub_81534AC() < 3000) - { - gUnknown_203F440->state = 127; - } - else - { - StopMapMusic(); - gUnknown_203F440->state++; - } - - FillBgTilemapBufferRect_Palette0(0, 0, 0, 5, 30, 15); - RemoveWindow(gUnknown_203F440->unk3008[1]); - gUnknown_203F440->unk3008[1] = AddWindow(&sUnknown_8475684); - ClearWindowTilemap(gUnknown_203F440->unk3008[1]); - sub_8154868(&sUnknown_8475684); - } - break; - case 9: - PlayNewMapMusic(MUS_LEVEL_UP); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[1], PIXEL_FILL(1)); - strWidth = GetStringWidth(FONT_0, gText_AnnouncingPrizes, -1); - x = (224 - strWidth) / 2; - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_0, gText_AnnouncingPrizes, x, 2, -1, NULL); - DynamicPlaceholderTextUtil_Reset(); - CopyItemName(sub_8153390(), sp70); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sp70); - DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_FirstPlacePrize); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, sp0C, 8, 2, -1, NULL); - itemGiveRet = sub_815372C(); - if (itemGiveRet != 0 && itemGiveRet != 3) - { - DynamicPlaceholderTextUtil_Reset(); - CopyItemName(sub_8153390(), sp70); - DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, sp70); - if (itemGiveRet == 2) - DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_CantHoldAnyMore); - else if (itemGiveRet == 1) - DynamicPlaceholderTextUtil_ExpandPlaceholders(sp0C, gText_FilledStorageSpace); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_0, sp0C, 8, 40, -1, NULL); - } - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 10: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - PutWindowTilemap(gUnknown_203F440->unk3008[1]); - } - CopyBgTilemapBufferToVram(0); - FadeOutAndFadeInNewMapMusic(MUS_VICTORY_WILD, 20, 10); - gUnknown_203F440->state++; - break; - case 11: - if (++gUnknown_203F440->unk301C >= 30 && JOY_NEW(A_BUTTON)) - { - gUnknown_203F440->unk301C = 0; - PlaySE(SE_SELECT); - gUnknown_203F440->state++; - } - break; - default: - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - ClearWindowTilemap(gUnknown_203F440->unk3008[1]); - RemoveWindow(gUnknown_203F440->unk3008[0]); - RemoveWindow(gUnknown_203F440->unk3008[1]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void sub_81556E0(void) -{ - u8 y; - - switch (gUnknown_203F440->state) - { - case 0: - gUnknown_203F440->unk3008[0] = AddWindow(&sUnknown_847568C[0]); - gUnknown_203F440->unk3008[1] = AddWindow(&sUnknown_847568C[1]); - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - ClearWindowTilemap(gUnknown_203F440->unk3008[1]); - sub_8154868(&sUnknown_847568C[0]); - sub_8154768(&sUnknown_847568C[1]); - gUnknown_203F440->state++; - gUnknown_203F440->unk3020 = 0; - gUnknown_203F440->unk3024 = 0; - break; - case 1: - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - FillWindowPixelBuffer(gUnknown_203F440->unk3008[1], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_2, gText_WantToPlayAgain, 0, 6, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_Yes, 8, 2, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_No, 8, 16, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_SelectorArrow2, 0, 2, -1, NULL); - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - PutWindowTilemap(gUnknown_203F440->unk3008[1]); - } - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->state++; - break; - case 3: - y = gUnknown_203F440->unk3020; - if (y == 0) - y = 1; - FillWindowPixelBuffer(gUnknown_203F440->unk3008[1], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_Yes, 8, 2, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_No, 8, 16, -1, NULL); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[1], FONT_2, gText_SelectorArrow2, 0, y == 1 ? 2 : 16, -1, NULL); - CopyWindowToVram(gUnknown_203F440->unk3008[1], COPYWIN_FULL); - // Increment state only if A or B button have been pressed. - if (JOY_NEW(A_BUTTON)) - { - PlaySE(SE_SELECT); - if (gUnknown_203F440->unk3020 == 0) - gUnknown_203F440->unk3020 = 1; - gUnknown_203F440->state++; - } - else if (JOY_NEW(DPAD_UP | DPAD_DOWN)) - { - PlaySE(SE_SELECT); - switch (gUnknown_203F440->unk3020) - { - case 0: - gUnknown_203F440->unk3020 = 2; - break; - case 1: - gUnknown_203F440->unk3020 = 2; - break; - case 2: - gUnknown_203F440->unk3020 = 1; - break; - } - } - else if (JOY_NEW(B_BUTTON)) - { - PlaySE(SE_SELECT); - gUnknown_203F440->unk3020 = 2; - gUnknown_203F440->state++; - } - break; - default: - gUnknown_203F440->unk3024 = gUnknown_203F440->unk3020; - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - ClearWindowTilemap(gUnknown_203F440->unk3008[1]); - RemoveWindow(gUnknown_203F440->unk3008[0]); - RemoveWindow(gUnknown_203F440->unk3008[1]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void sub_8155A78(void) -{ - switch (gUnknown_203F440->state) - { - case 0: - DrawDialogueFrame(0, FALSE); - AddTextPrinterParameterized2(0, FONT_2, gText_SavingDontTurnOffThePower2, 0, NULL, TEXT_COLOR_DARK_GRAY, TEXT_COLOR_WHITE, TEXT_COLOR_LIGHT_GRAY); - gUnknown_203F440->state++; - break; - case 1: - CopyWindowToVram(0, COPYWIN_FULL); - gUnknown_203F440->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - { - CreateTask(Task_LinkFullSave, 0); - gUnknown_203F440->state++; - } - break; - case 3: - if (!FuncIsActiveTask(Task_LinkFullSave)) - gUnknown_203F440->state++; - break; - default: - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void sub_8155B4C(void) -{ - switch (gUnknown_203F440->state) - { - case 0: - gUnknown_203F440->unk3008[0] = AddWindow(&sUnknown_84756A4); - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - sub_8154868(&sUnknown_84756A4); - gUnknown_203F440->state++; - break; - case 1: - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_2, gText_CommunicationStandby3, 0, 6, -1, NULL); - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->state++; - break; - default: - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void sub_8155C2C(void) -{ - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - RemoveWindow(gUnknown_203F440->unk3008[0]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; -} - -static void sub_8155C80(void) -{ - switch (gUnknown_203F440->state) - { - case 0: - gUnknown_203F440->unk3008[0] = AddWindow(&sUnknown_847569C); - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - sub_8154868(&sUnknown_847569C); - gUnknown_203F440->state++; - gUnknown_203F440->unk301C = 0; - gUnknown_203F440->unk3020 = 0; - gUnknown_203F440->unk3024 = 0; - break; - case 1: - FillWindowPixelBuffer(gUnknown_203F440->unk3008[0], PIXEL_FILL(1)); - AddTextPrinterParameterized(gUnknown_203F440->unk3008[0], FONT_2, gText_SomeoneDroppedOut, 0, 6, TEXT_SKIP_DRAW, NULL); - CopyWindowToVram(gUnknown_203F440->unk3008[0], COPYWIN_GFX); - gUnknown_203F440->state++; - break; - case 2: - if (!IsDma3ManagerBusyWithBgCopy()) - PutWindowTilemap(gUnknown_203F440->unk3008[0]); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->state++; - break; - case 3: - if (++gUnknown_203F440->unk301C >= 120) - gUnknown_203F440->state++; - break; - default: - gUnknown_203F440->unk3024 = 5; - ClearWindowTilemap(gUnknown_203F440->unk3008[0]); - RemoveWindow(gUnknown_203F440->unk3008[0]); - FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20); - CopyBgTilemapBufferToVram(0); - gUnknown_203F440->finished = TRUE; - break; - } -} - -static void unused_0(void) -{ - DestroyTask(gUnknown_203F440->unk3004); - gUnknown_203F440->finished = TRUE; -} - -static void nullsub_98(void) -{ - -} - -static void sub_8155E24(void (*func)(void)) -{ - gUnknown_203F440->state = 0; - gUnknown_203F440->finished = FALSE; - gUnknown_203F440->unk3028 = func; -} - -void (*sub_8155E54(void))(void) -{ - return gUnknown_203F440->unk3028; -} - -bool32 sub_8155E68(void) -{ - if (gUnknown_203F440->finished == TRUE) - return FALSE; - else - return TRUE; -} - -u8 sub_8155E8C(void) -{ - return gUnknown_203F440->unk3024; -} - -static void sub_8155EA0(void) -{ - DmaClearLarge16(3, (void *)VRAM, VRAM_SIZE, 0x1000); - DmaClear32(3,(void *)OAM, OAM_SIZE); - DmaClear16(3, (void *)PLTT, PLTT_SIZE); - SetGpuReg(REG_OFFSET_DISPCNT, 0); - ResetBgsAndClearDma3BusyFlags(FALSE); - InitBgsFromTemplates(0, sUnknown_847565C, NELEMS(sUnknown_847565C)); - ChangeBgX(0, 0, 0); - ChangeBgY(0, 0, 0); - ChangeBgX(1, 0, 0); - ChangeBgY(1, 0, 0); - ChangeBgX(2, 0, 0); - ChangeBgY(2, 0, 0); - ChangeBgX(3, 0, 0); - ChangeBgY(3, 0, 0); - InitStandardTextBoxWindows(); - InitTextBoxGfxAndPrinters(); - SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_OBJ_ON | DISPCNT_OBJ_1D_MAP); - SetBgTilemapBuffer(3, gUnknown_203F440->tilemapBuffers[0]); - SetBgTilemapBuffer(1, gUnknown_203F440->tilemapBuffers[1]); - SetBgTilemapBuffer(2, gUnknown_203F440->tilemapBuffers[2]); -} - -static bool32 sub_8155FE0(void) -{ - switch (gUnknown_203F440->unk3018) - { - case 0: - LoadPalette(sDodrioBerryBgPal1, 0, sizeof(sDodrioBerryBgPal1)); - break; - case 1: - ResetTempTileDataBuffers(); - break; - case 2: - DecompressAndCopyTileDataToVram(3, sDodrioBerryBgGfx1, 0, 0, 0); - break; - case 3: - DecompressAndCopyTileDataToVram(1, sDodrioBerryBgGfx2, 0, 0, 0); - break; - case 4: - if (FreeTempTileDataBuffersIfPossible() == TRUE) - return FALSE; - break; - case 5: - LoadPalette(stdpal_get(3), 0xD0, 0x20); - break; - default: - gUnknown_203F440->unk3018 = 0; - return TRUE; - } - - gUnknown_203F440->unk3018++; - return FALSE; -}*/ diff --git a/src/dodrio_berry_picking_3.c b/src/dodrio_berry_picking_comm.c similarity index 100% rename from src/dodrio_berry_picking_3.c rename to src/dodrio_berry_picking_comm.c