749 lines
20 KiB
C
749 lines
20 KiB
C
#include "global.h"
|
|
#include "bg.h"
|
|
#include "strings.h"
|
|
#include "window.h"
|
|
|
|
/*static*/ void sub_8150C78(void);
|
|
/*static*/ void sub_8150CBC(void);
|
|
/*static*/ void sub_8150CF4(void);
|
|
/*static*/ void sub_8150D7C(void);
|
|
/*static*/ void sub_8150DA4(void);
|
|
/*static*/ void sub_8150FDC(void);
|
|
/*static*/ void sub_8151198(void);
|
|
/*static*/ void sub_81512B4(void);
|
|
/*static*/ void sub_8151488(void);
|
|
/*static*/ void sub_81514F0(void);
|
|
/*static*/ void sub_815159C(void);
|
|
/*static*/ void sub_8150F40(void);
|
|
/*static*/ void sub_8150E68(void);
|
|
/*static*/ void sub_815109C(void);
|
|
/*static*/ void sub_8150FC4(void);
|
|
/*static*/ void nullsub_97(struct Sprite *sprite);
|
|
/*static*/ void sub_81543E8(struct Sprite *sprite);
|
|
/*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);
|
|
|
|
// const rom data
|
|
/*static*/ const u8 gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_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 gUnknown_8472133[5][5] =
|
|
{
|
|
{5},
|
|
{4, 6},
|
|
{3, 5, 7},
|
|
{2, 4, 6, 8},
|
|
{1, 3, 5, 6, 9},
|
|
};
|
|
|
|
// Duplicate and unused gfx. Feel free to remove.
|
|
/*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 u8 gUnknown_847553C[][3] =
|
|
{
|
|
{40, 24, 13},
|
|
{32, 19, 10},
|
|
{22, 13, 7},
|
|
};
|
|
|
|
ALIGNED(4)
|
|
/*static*/ const u8 gUnknown_8475548[] = {8, 5, 8, 11, 15};
|
|
|
|
ALIGNED(4)
|
|
/*static*/ const u8 gUnknown_8475550[] = {5, 10, 20, 30, 50, 70, 100};
|
|
|
|
ALIGNED(4)
|
|
/*static*/ const u8 gUnknown_8475558[][10] =
|
|
{
|
|
{15, 16, 17, 18, 19, 19, 18, 17, 16, 15},
|
|
{20, 21, 22, 23, 24, 25, 26, 27, 28, 29},
|
|
{30, 31, 32, 33, 34, 34, 33, 32, 31, 30},
|
|
};
|
|
|
|
/*static*/ void (*const gUnknown_8475578[])(void) =
|
|
{
|
|
sub_8150C78,
|
|
sub_8150CBC,
|
|
sub_8150CF4,
|
|
sub_8150D7C,
|
|
sub_8150DA4,
|
|
sub_8150FDC,
|
|
sub_8151198,
|
|
sub_81512B4,
|
|
sub_8151488,
|
|
sub_81514F0,
|
|
sub_815159C,
|
|
sub_8150F40
|
|
};
|
|
|
|
/*static*/ void (*const gUnknown_84755A8[])(void) =
|
|
{
|
|
sub_8150C78,
|
|
sub_8150CBC,
|
|
sub_8150CF4,
|
|
sub_8150D7C,
|
|
sub_8150E68,
|
|
sub_815109C,
|
|
sub_8151198,
|
|
sub_81512B4,
|
|
sub_8151488,
|
|
sub_81514F0,
|
|
sub_815159C,
|
|
sub_8150FC4
|
|
};
|
|
|
|
/*static*/ const s16 gUnknown_84755D8[] = {10, 30, 50, 50};
|
|
|
|
// Data related to printing saved results.
|
|
/*static*/ const struct WindowTemplate gUnknown_84755E0 =
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 1,
|
|
.tilemapTop = 1,
|
|
.width = 28,
|
|
.height = 11,
|
|
.paletteNum = 15,
|
|
.baseBlock = 1,
|
|
};
|
|
|
|
/*static*/ const u8 *const gUnknown_84755E8[] = {gText_BerryPickingRecords, gText_BerriesPicked, gText_BestScore, gText_BerriesInRowFivePlayers};
|
|
/*static*/ const u8 gUnknown_84755F8[] = {4, 7, 4};
|
|
|
|
ALIGNED(4)
|
|
/*static*/ const u8 gUnknown_84755FC[][2] = {{24}, {40}, {56}};
|
|
/*static*/ const u8 gUnknown_8475602[][2] = {{24}, {40}, {70}};
|
|
|
|
// Debug functions?
|
|
/*static*/ const u16 gUnknown_8475608[][4] =
|
|
{
|
|
{9999, 0, 90, 9999},
|
|
{9999, 9999, 70, 9999},
|
|
{9999, 0, 9999, 0},
|
|
{9999, 9999, 60, 0},
|
|
{9999, 9999, 9999, 0},
|
|
};
|
|
|
|
/*static*/ const u8 gUnknown_8475630[] = _("あいうえおかき");
|
|
/*static*/ const u8 gUnknown_8475638[] = _("ABCDEFG");
|
|
/*static*/ const u8 gUnknown_8475640[] = _("0123456");
|
|
|
|
/*static*/ const u8 *const gUnknown_8475648[] =
|
|
{
|
|
gUnknown_8475630,
|
|
gUnknown_8475630,
|
|
gUnknown_8475630,
|
|
gUnknown_8475638,
|
|
gUnknown_8475640
|
|
};
|
|
|
|
// Large chunk of data
|
|
/*static*/ const struct BgTemplate gUnknown_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 gUnknown_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 gUnknown_8475684 =
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 1,
|
|
.tilemapTop = 6,
|
|
.width = 28,
|
|
.height = 7,
|
|
.paletteNum = 13,
|
|
.baseBlock = 0x67,
|
|
};
|
|
|
|
/*static*/ const struct WindowTemplate gUnknown_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 gUnknown_847569C =
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 4,
|
|
.tilemapTop = 6,
|
|
.width = 22,
|
|
.height = 5,
|
|
.paletteNum = 13,
|
|
.baseBlock = 0x13,
|
|
};
|
|
|
|
/*static*/ const struct WindowTemplate gUnknown_84756A4 =
|
|
{
|
|
.bg = 0,
|
|
.tilemapLeft = 5,
|
|
.tilemapTop = 8,
|
|
.width = 19,
|
|
.height = 3,
|
|
.paletteNum = 13,
|
|
.baseBlock = 0x13,
|
|
};
|
|
|
|
// This is an unused copy of the tables from the top of the file. Feel free to remove.
|
|
/*static*/ const u8 sDuplicateArray[] =
|
|
{
|
|
0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 2, 3, 4, 5, 6, 3, 8, 9, 0, 0, 1, 2, 5, 6, 3, 4, 5, 8, 9, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 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, 4, 5, 6, 0, 0,
|
|
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 4, 5, 5, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 5, 6, 6, 7, 2, 2, 3, 4, 0, 0, 0, 0, 0, 0,
|
|
3, 4, 5, 5, 6, 7, 7, 8, 1, 1, 2, 3, 0, 0, 0, 4, 5, 6, 6, 7, 8, 8, 9, 0, 0, 1, 2, 2, 3, 4, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0,
|
|
0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 1, 0, 1, 2, 1, 2, 0, 0, 0, 0, 0, 0, 0, 3, 0, 1, 0, 1,
|
|
2, 1, 2, 3, 2, 3, 0, 0, 0, 0, 4, 0, 1, 0, 1, 2, 1, 2, 3, 2, 3, 4, 3, 4, 0, 0, 0, 0, 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, 5, 0, 0, 0, 0, 4, 6, 0, 0, 0, 3, 5, 7, 0, 0, 2, 4, 6, 8, 0, 1, 3, 5, 6, 9
|
|
};
|
|
|
|
/*static*/ const u16 gDodrioBerryBgPal1[] = INCBIN_U16("graphics/link_games/dodrioberry_bg1.gbapal",
|
|
"graphics/link_games/dodrioberry_bg2.gbapal");
|
|
/*static*/ const u16 gDodrioBerryPkmnPal[] = INCBIN_U16("graphics/link_games/dodrioberry_pkmn.gbapal");
|
|
/*static*/ const u16 gDodrioBerryShinyPal[] = INCBIN_U16("graphics/link_games/dodrioberry_shiny.gbapal");
|
|
/*static*/ const u16 gDodrioBerryStatusPal[] = INCBIN_U16("graphics/link_games/dodrioberry_status.gbapal");
|
|
/*static*/ const u16 gDodrioBerrySpritesPal[] = INCBIN_U16("graphics/link_games/dodrioberry_berrysprites.gbapal");
|
|
/*static*/ const u32 gDodrioBerrySpritesGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_berrysprites.4bpp.lz");
|
|
/*static*/ const u16 gDodrioBerryPlatformPal[] = INCBIN_U16("graphics/link_games/dodrioberry_platform.gbapal");
|
|
/*static*/ const u32 gDodrioBerryBgGfx1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.4bpp.lz");
|
|
/*static*/ const u32 gDodrioBerryBgGfx2[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2.4bpp.lz");
|
|
/*static*/ const u32 gDodrioBerryStatusGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_status.4bpp.lz");
|
|
/*static*/ const u32 gDodrioBerryPlatformGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_platform.4bpp.lz");
|
|
/*static*/ const u32 gDodrioBerryPkmnGfx[] = INCBIN_U32("graphics/link_games/dodrioberry_pkmn.4bpp.lz");
|
|
/*static*/ const u32 gDodrioBerryBgTilemap1[] = INCBIN_U32("graphics/link_games/dodrioberry_bg1.bin.lz");
|
|
/*static*/ const u32 gDodrioBerryBgTilemap2Right[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2right.bin.lz");
|
|
/*static*/ const u32 gDodrioBerryBgTilemap2Left[] = INCBIN_U32("graphics/link_games/dodrioberry_bg2left.bin.lz");
|
|
|
|
/*static*/ const struct OamData sOamData_8478C98 =
|
|
{
|
|
.y = 0,
|
|
.affineMode = 0,
|
|
.objMode = 0,
|
|
.mosaic = 0,
|
|
.bpp = 0,
|
|
.shape = 0,
|
|
.x = 0,
|
|
.matrixNum = 0,
|
|
.size = 3,
|
|
.tileNum = 0,
|
|
.priority = 2,
|
|
.paletteNum = 0,
|
|
.affineParam = 0
|
|
};
|
|
|
|
/*static*/ const struct OamData sOamData_8478CA0 =
|
|
{
|
|
.y = 0,
|
|
.affineMode = 0,
|
|
.objMode = 0,
|
|
.mosaic = 0,
|
|
.bpp = 0,
|
|
.shape = 0,
|
|
.x = 0,
|
|
.matrixNum = 0,
|
|
.size = 1,
|
|
.tileNum = 0,
|
|
.priority = 0,
|
|
.paletteNum = 0,
|
|
.affineParam = 0
|
|
};
|
|
|
|
/*static*/ const struct OamData sOamData_8478CA8 =
|
|
{
|
|
.y = 0,
|
|
.affineMode = 0,
|
|
.objMode = 0,
|
|
.mosaic = 0,
|
|
.bpp = 0,
|
|
.shape = 0,
|
|
.x = 0,
|
|
.matrixNum = 0,
|
|
.size = 1,
|
|
.tileNum = 0,
|
|
.priority = 2,
|
|
.paletteNum = 0,
|
|
.affineParam = 0
|
|
};
|
|
|
|
/*static*/ const struct OamData sOamData_8478CB0 =
|
|
{
|
|
.y = 0,
|
|
.affineMode = 0,
|
|
.objMode = 0,
|
|
.mosaic = 0,
|
|
.bpp = 0,
|
|
.shape = 1,
|
|
.x = 0,
|
|
.matrixNum = 0,
|
|
.size = 3,
|
|
.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
|
|
};
|
|
|
|
// These are declared inside pokeemerald's sub_80283A8
|
|
const struct SpritePalette gUnknown_8478D90 = {gDodrioBerryPkmnPal, 0};
|
|
const struct SpritePalette gUnknown_8478D98 = {gDodrioBerryShinyPal, 1};
|
|
|
|
// These are declared inside pokeemerald's sub_8028734
|
|
const struct SpritePalette gUnknown_8478DA0 = {gDodrioBerryStatusPal, 2};
|
|
const struct SpriteTemplate gUnknown_8478DA8 =
|
|
{
|
|
.tileTag = 1,
|
|
.paletteTag = 2,
|
|
.oam = &sOamData_8478CA0,
|
|
.anims = sSpriteAnimTable_8478D0C,
|
|
.images = NULL,
|
|
.affineAnims = gDummySpriteAffineAnimTable,
|
|
.callback = nullsub_97,
|
|
};
|
|
|
|
// Unknown unused data, feel free to remove.
|
|
/*static*/ const u8 sUnused2[] = {0xCD, 0x37, 0x38, 0x39, 0x3A, 0x3B, 0x3C, 0x3D, 0x3E, 0xF4, 0x0, 0x0};
|
|
|
|
// This is declared inside pokeemerald's sub_8028A34
|
|
const struct SpritePalette gUnknown_8478DCC = {gDodrioBerrySpritesPal, 3};
|
|
|
|
/*static*/ const s16 gUnknown_8478DD4[] = {88, 128, 168, 208};
|
|
|
|
// These are declared inside pokeemerald's sub_8028A88
|
|
const struct SpriteTemplate gUnknown_8478DDC =
|
|
{
|
|
.tileTag = 2,
|
|
.paletteTag = 3,
|
|
.oam = &sOamData_8478CA8,
|
|
.anims = sSpriteAnimTable_8478D60,
|
|
.images = NULL,
|
|
.affineAnims = gDummySpriteAffineAnimTable,
|
|
.callback = SpriteCallbackDummy,
|
|
};
|
|
const struct SpriteTemplate gUnknown_8478DF4 =
|
|
{
|
|
.tileTag = 2,
|
|
.paletteTag = 3,
|
|
.oam = &sOamData_8478CA0,
|
|
.anims = sSpriteAnimTable_8478D60,
|
|
.images = NULL,
|
|
.affineAnims = gDummySpriteAffineAnimTable,
|
|
.callback = SpriteCallbackDummy,
|
|
};
|
|
|
|
// This is declared inside pokeemerald's sub_8028CF4
|
|
/*static*/ const u8 gUnknown_8478E0C[] = {30, 20};
|
|
|
|
/*static*/ const s16 gUnknown_8478E0E[][2] = {{230, 55}, {30, 74}};
|
|
|
|
// These are declared inside pokeemerald's sub_8028D44
|
|
const struct SpritePalette gUnknown_8478E18 = {gDodrioBerryPlatformPal, 6};
|
|
const struct SpriteTemplate gUnknown_8478E20 =
|
|
{
|
|
.tileTag = 5,
|
|
.paletteTag = 6,
|
|
.oam = &sOamData_8478CB0,
|
|
.anims = sSpriteAnimTable_8478D8C,
|
|
.images = NULL,
|
|
.affineAnims = gDummySpriteAffineAnimTable,
|
|
.callback = sub_81543E8,
|
|
};
|
|
|
|
struct WinCoords
|
|
{
|
|
u8 left;
|
|
u8 top;
|
|
};
|
|
|
|
/*static*/ const u8 gUnknown_8478E38[][3] =
|
|
{
|
|
{1, 2, 3},
|
|
{1, 4, 5},
|
|
{1, 8, 9},
|
|
{1, 6, 7},
|
|
};
|
|
|
|
/*static*/ const struct WinCoords gUnknown_8478E44[] = {{12, 6}};
|
|
/*static*/ const struct WinCoords gUnknown_8478E48[] = {{9, 10}, {15, 6}};
|
|
/*static*/ const struct WinCoords gUnknown_8478E50[] = {{12, 6}, {18, 10}, {6, 10}};
|
|
/*static*/ const struct WinCoords gUnknown_8478E5C[] = {{9, 10}, {15, 6}, {21, 10}, {3, 6}};
|
|
/*static*/ const struct WinCoords gUnknown_8478E6C[] = {{12, 6}, {18, 10}, {23, 6}, {1, 6}, {6, 10}};
|
|
|
|
/*static*/ const struct WinCoords *const gUnknown_8478E80[] =
|
|
{
|
|
gUnknown_8478E44,
|
|
gUnknown_8478E48,
|
|
gUnknown_8478E50,
|
|
gUnknown_8478E5C,
|
|
gUnknown_8478E6C,
|
|
};
|
|
|
|
/*static*/ const u8 *const gUnknown_8478E94[] =
|
|
{
|
|
gText_1Colon,
|
|
gText_2Colon,
|
|
gText_3Colon,
|
|
gText_4Colon,
|
|
gText_5Colon,
|
|
};
|
|
|
|
/*static*/ const u16 gUnknown_8478EA8[] = {92, 132, 172, 212};
|
|
/*static*/ const u16 gUnknown_8478EB0[] = {30, 45, 60, 75, 90};
|
|
/*static*/ const u16 gUnknown_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},
|
|
};
|
|
|
|
// This is declared inside pokeemerald's sub_80296A8
|
|
const u8 gUnknown_8478F14[5] = {0, 1, 2, 3, 4};
|