Merge pull request #575 from GriffinRichards/sync-ec-gfx

Sync easy chat data
This commit is contained in:
GriffinR
2022-11-08 15:24:49 -05:00
committed by GitHub
24 changed files with 223 additions and 226 deletions

Before

Width:  |  Height:  |  Size: 432 B

After

Width:  |  Height:  |  Size: 432 B

Before

Width:  |  Height:  |  Size: 205 B

After

Width:  |  Height:  |  Size: 205 B

Before

Width:  |  Height:  |  Size: 426 B

After

Width:  |  Height:  |  Size: 426 B

Before

Width:  |  Height:  |  Size: 212 B

After

Width:  |  Height:  |  Size: 212 B

Before

Width:  |  Height:  |  Size: 173 B

After

Width:  |  Height:  |  Size: 173 B

Before

Width:  |  Height:  |  Size: 226 B

After

Width:  |  Height:  |  Size: 226 B

+8
View File
@@ -0,0 +1,8 @@
JASC-PAL
0100
5
0 0 0
255 255 255
98 98 98
222 213 222
65 139 74

Before

Width:  |  Height:  |  Size: 221 B

After

Width:  |  Height:  |  Size: 221 B

+7
View File
@@ -0,0 +1,7 @@
JASC-PAL
0100
4
0 0 0
0 0 0
57 205 255
172 172 238

Before

Width:  |  Height:  |  Size: 160 B

After

Width:  |  Height:  |  Size: 160 B

Before

Width:  |  Height:  |  Size: 284 B

After

Width:  |  Height:  |  Size: 284 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 199 B

Before

Width:  |  Height:  |  Size: 450 B

After

Width:  |  Height:  |  Size: 450 B

-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
255 255 148
255 197 148
238 139 90
189 90 41
255 213 213
246 180 180
197 131 131
0 0 0
0 0 0
0 0 0
0 0 0
41 49 49
98 98 98
180 189 180
222 213 222
255 255 255
-19
View File
@@ -1,19 +0,0 @@
JASC-PAL
0100
16
115 164 0
255 0 0
255 32 32
255 74 74
255 106 106
255 148 148
255 180 180
255 222 222
255 255 255
255 255 255
255 255 205
255 255 205
0 0 0
0 0 0
0 0 0
0 0 0
+3
View File
@@ -4,6 +4,9 @@
#include "global.h" #include "global.h"
#include "constants/easy_chat.h" #include "constants/easy_chat.h"
#define NUM_ALPHABET_ROWS 4
#define NUM_ALPHABET_COLUMNS 7
struct EasyChatWordInfo struct EasyChatWordInfo
{ {
const u8 *text; const u8 *text;
+5 -5
View File
@@ -4899,11 +4899,11 @@ extern const u32 gBerryCrush_Crusher_Tilemap[];
// easy_chat_3 // easy_chat_3
extern const u32 gEasyChatWindow_Gfx[]; extern const u32 gEasyChatWindow_Gfx[];
extern const u32 gEasyChatWindow_Tilemap[]; extern const u32 gEasyChatWindow_Tilemap[];
extern const u32 gEasyChatMode_Pal[]; extern const u32 gEasyChatWindow_Pal[];
extern const u16 gUnknown_8E99F24[]; extern const u16 gEasyChatButtonWindow_Pal[];
extern const u32 gEasyChatRedRectangularCursor_Tiles[]; extern const u32 gEasyChatRectangleCursor_Gfx[];
extern const u32 gEasyChatSelectGroupHelp_Tiles[]; extern const u32 gEasyChatButtonWindow_Gfx[];
extern const u32 gEasyChatModeIcons_Tiles[]; extern const u32 gEasyChatMode_Gfx[];
// naming_screen // naming_screen
extern const u32 gNamingScreenBackground_Tilemap[]; extern const u32 gNamingScreenBackground_Tilemap[];
+2 -1
View File
@@ -532,7 +532,8 @@ u8 GetSelectedGroupByIndex(u8 index)
return sEasyChatSelectionData->groups[index]; return sEasyChatSelectionData->groups[index];
} }
static u8 *unref_sub_80BDF6C(u8 *dest, u8 groupId, u16 totalChars) // Unused
static u8 *BufferEasyChatWordGroupName(u8 *dest, u8 groupId, u16 totalChars)
{ {
u16 i; u16 i;
u8 *str = StringCopy(dest, sEasyChatGroupNamePointers[groupId]); u8 *str = StringCopy(dest, sEasyChatGroupNamePointers[groupId]);
+1 -1
View File
@@ -1284,7 +1284,7 @@ u8 GetECSelectWordNumRows(void)
return sEasyChatScreen->selectWordNumRows; return sEasyChatScreen->selectWordNumRows;
} }
u8 unref_sub_80FFE60(void) static u8 UnusedDummy(void)
{ {
return 0; return 0;
} }
+187 -171
View File
@@ -9,6 +9,23 @@
#include "strings.h" #include "strings.h"
#include "text_window.h" #include "text_window.h"
enum {
GFXTAG_TRIANGLE_CURSOR,
GFXTAG_RECTANGLE_CURSOR,
GFXTAG_SCROLL_INDICATOR,
GFXTAG_START_SELECT_BUTTONS,
GFXTAG_MODE_WINDOW,
GFXTAG_RS_INTERVIEW_FRAME,
GFXTAG_BUTTON_WINDOW,
};
enum {
PALTAG_TRIANGLE_CURSOR,
PALTAG_RECTANGLE_CURSOR,
PALTAG_MISC_UI,
PALTAG_RS_INTERVIEW_FRAME,
};
struct ECWork struct ECWork
{ {
u16 state; u16 state;
@@ -134,63 +151,53 @@ static void UpdateStartSelectButtonSpriteVisibility(void);
static void HideStartSelectButtonSprites(void); static void HideStartSelectButtonSprites(void);
static void CreateFooterWindow(void); static void CreateFooterWindow(void);
static const u16 gUnknown_843F3B8[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.gbapal"); static const u16 sTriangleCursor_Pal[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.gbapal");
static const u16 gUnknown_843F3D8[] = INCBIN_U16("graphics/link_rfu/unk_8E9BD28.gbapal"); static const u16 sRectangleCursor_Pal[] = INCBIN_U16("graphics/easy_chat/rectangle_cursor.gbapal");
static const u16 sRightTriangleCursor_Tiles[] = INCBIN_U16("graphics/link_rfu/unk_843F3F8.4bpp"); static const u16 sTriangleCursor_Gfx[] = INCBIN_U16("graphics/easy_chat/triangle_cursor.4bpp");
static const u16 sUpTriangleCursor_Tiles[] = INCBIN_U16("graphics/link_rfu/unk_843F418.4bpp"); static const u16 sScrollIndicator_Gfx[] = INCBIN_U16("graphics/easy_chat/scroll_indicator.4bpp");
static const u16 sStartSelectButtons_Tiles[] = INCBIN_U16("graphics/link_rfu/unk_843F518.4bpp"); static const u16 sStartSelectButtons_Gfx[] = INCBIN_U16("graphics/easy_chat/start_select_buttons.4bpp");
static const u16 gUnknown_843F618[] = INCBIN_U16("graphics/link_rfu/unk_843F638.gbapal"); // In Ruby/Sapphire Easy Chat screens had a black background, and when the player & interviewer were present
static const u32 gUnknown_843F638[] = INCBIN_U32("graphics/link_rfu/unk_843F638.4bpp.lz"); // on screen the interview_frame gfx was shown behind them.
static const u16 gUnknown_843F76C[] = INCBIN_U16("graphics/link_rfu/unk_843F76C.gbapal"); // In FRLG all Easy Chat screens have a filled background, so these gfx go unused
static const u16 gUnknown_843F78C[] = INCBIN_U16("graphics/link_rfu/unk_843F78C.gbapal"); static const u16 sRSInterviewFrame_Pal[] = INCBIN_U16("graphics/easy_chat/interview_frame.gbapal");
static const u32 gUnknown_843F7AC[] = INCBIN_U32("graphics/link_rfu/unk_843F7AC.4bpp.lz"); static const u32 sRSInterviewFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/interview_frame.4bpp.lz");
static const u16 sTextInputFrameOrange_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_orange.gbapal");
static const u16 gUnknown_843F874[] = { static const u16 sTextInputFrameGreen_Pal[] = INCBIN_U16("graphics/easy_chat/text_input_frame_green.gbapal");
RGB( 0, 0, 0), static const u32 sTextInputFrame_Gfx[] = INCBIN_U32("graphics/easy_chat/text_input_frame.4bpp.lz");
RGB( 0, 0, 0), static const u16 sTitleText_Pal[] = INCBIN_U16("graphics/easy_chat/title_text.gbapal");
RGB( 7, 25, 31), static const u16 sText_Pal[] = INCBIN_U16("graphics/easy_chat/text.gbapal");
RGB(21, 21, 29)
};
static const u16 gUnknown_843F87C[] = {
RGB( 0, 0, 0),
RGB(31, 31, 31),
RGB(12, 12, 12),
RGB(27, 26, 27),
RGB( 8, 17, 9)
};
static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = { static const struct EasyChatPhraseFrameDimensions sPhraseFrameDimensions[] = {
{ {
.left = 0x03, .left = 3,
.top = 0x04, .top = 4,
.width = 0x18, .width = 24,
.height = 0x04 .height = 4
}, { }, {
.left = 0x01, .left = 1,
.top = 0x04, .top = 4,
.width = 0x1b, .width = 27,
.height = 0x04 .height = 4
}, { }, {
.left = 0x03, .left = 3,
.top = 0x00, .top = 0,
.width = 0x18, .width = 24,
.height = 0x0a .height = 10
}, { }, {
.left = 0x06, .left = 6,
.top = 0x06, .top = 6,
.width = 0x12, .width = 18,
.height = 0x04 .height = 4
}, { }, {
.left = 0x10, .left = 16,
.top = 0x04, .top = 4,
.width = 0x09, .width = 9,
.height = 0x02 .height = 2
}, { }, {
.left = 0x0e, .left = 14,
.top = 0x04, .top = 4,
.width = 0x12, .width = 18,
.height = 0x04 .height = 4
} }
}; };
@@ -271,10 +278,10 @@ static const struct WindowTemplate sEasyChatYesNoWindowTemplate = {
.baseBlock = 0x062 .baseBlock = 0x062
}; };
static const u8 gUnknown_843F8D8[] = _("{UNDERSCORE}"); static const u8 sText_Underscore[] = _("{UNDERSCORE}");
static const u8 sText_Clear17[] = _("{CLEAR 17}"); static const u8 sText_Clear17[] = _("{CLEAR 17}");
static const u8 *const sEasyChatKeyboardText[] = { static const u8 *const sEasyChatKeyboardAlphabet[NUM_ALPHABET_ROWS] = {
gText_EasyChatKeyboard_ABCDEFothers, gText_EasyChatKeyboard_ABCDEFothers,
gText_EasyChatKeyboard_GHIJKL, gText_EasyChatKeyboard_GHIJKL,
gText_EasyChatKeyboard_MNOPQRS, gText_EasyChatKeyboard_MNOPQRS,
@@ -282,38 +289,30 @@ static const u8 *const sEasyChatKeyboardText[] = {
}; };
static const struct SpriteSheet sEasyChatSpriteSheets[] = { static const struct SpriteSheet sEasyChatSpriteSheets[] = {
{sRightTriangleCursor_Tiles, 0x0020, 0}, {.data = sTriangleCursor_Gfx, .size = 0x0020, .tag = GFXTAG_TRIANGLE_CURSOR},
{sUpTriangleCursor_Tiles, 0x0100, 2}, {.data = sScrollIndicator_Gfx, .size = 0x0100, .tag = GFXTAG_SCROLL_INDICATOR},
{sStartSelectButtons_Tiles, 0x0100, 3}, {.data = sStartSelectButtons_Gfx, .size = 0x0100, .tag = GFXTAG_START_SELECT_BUTTONS},
{} {}
}; };
static const struct SpritePalette sEasyChatSpritePalettes[] = { static const struct SpritePalette sEasyChatSpritePalettes[] = {
{gUnknown_843F3B8, 0}, {.data = sTriangleCursor_Pal, .tag = PALTAG_TRIANGLE_CURSOR},
{gUnknown_843F3D8, 1}, {.data = sRectangleCursor_Pal, .tag = PALTAG_RECTANGLE_CURSOR},
{gUnknown_8E99F24, 2}, {.data = gEasyChatButtonWindow_Pal, .tag = PALTAG_MISC_UI}, // The palette is generated from the button window but used for various parts of the UI
{gUnknown_843F618, 3}, {.data = sRSInterviewFrame_Pal, .tag = PALTAG_RS_INTERVIEW_FRAME},
{} {}
}; };
static const struct CompressedSpriteSheet sEasyChatCompressedSpriteSheets[] = { static const struct CompressedSpriteSheet sEasyChatCompressedSpriteSheets[] = {
{gUnknown_843F638, 0x0800, 5}, {.data = sRSInterviewFrame_Gfx, .size = 0x0800, .tag = GFXTAG_RS_INTERVIEW_FRAME},
{gEasyChatRedRectangularCursor_Tiles, 0x1000, 1}, {.data = gEasyChatRectangleCursor_Gfx, .size = 0x1000, .tag = GFXTAG_RECTANGLE_CURSOR},
{gEasyChatSelectGroupHelp_Tiles, 0x0800, 6}, {.data = gEasyChatButtonWindow_Gfx, .size = 0x0800, .tag = GFXTAG_BUTTON_WINDOW},
{gEasyChatModeIcons_Tiles, 0x1000, 4} {.data = gEasyChatMode_Gfx, .size = 0x1000, .tag = GFXTAG_MODE_WINDOW}
}; };
static const u8 sECDisplay_AlphaModeXCoords[] = { static const u8 sAlphabetKeyboardColumnOffsets[NUM_ALPHABET_COLUMNS] = {0, 12, 24, 56, 68, 80, 92};
0,
12,
24,
56,
68,
80,
92
};
static const struct OamData sOamData_RightTriangleCursor = { static const struct OamData sOamData_TriangleCursor = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -328,17 +327,17 @@ static const struct OamData sOamData_RightTriangleCursor = {
.paletteNum = 0 .paletteNum = 0
}; };
static const struct SpriteTemplate sSpriteTemplate_RightTriangleCursor = { static const struct SpriteTemplate sSpriteTemplate_TriangleCursor = {
.tileTag = 0, .tileTag = GFXTAG_TRIANGLE_CURSOR,
.paletteTag = 0, .paletteTag = PALTAG_TRIANGLE_CURSOR,
.oam = &sOamData_RightTriangleCursor, .oam = &sOamData_TriangleCursor,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_BounceCursor .callback = SpriteCB_BounceCursor
}; };
static const struct OamData sOamData_RedRectangularCursor = { static const struct OamData sOamData_RectangleCursor = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -353,44 +352,52 @@ static const struct OamData sOamData_RedRectangularCursor = {
.paletteNum = 0 .paletteNum = 0
}; };
static const union AnimCmd sAnimCmd_RectCursor_Wide[] = { static const union AnimCmd sAnim_RectangleCursor_OnGroup[] = {
ANIMCMD_FRAME(0x00, 0), ANIMCMD_FRAME(0x00, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnimCmd_RectCursor_Norm[] = { static const union AnimCmd sAnim_RectangleCursor_OnButton[] = {
ANIMCMD_FRAME(0x20, 0), ANIMCMD_FRAME(0x20, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnimCmd_RectCursor_NormTaller[] = { static const union AnimCmd sAnim_RectangleCursor_OnOthers[] = {
ANIMCMD_FRAME(0x40, 0), ANIMCMD_FRAME(0x40, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnimCmd_RectCursor_Narrow[] = { static const union AnimCmd sAnim_RectangleCursor_OnLetter[] = {
ANIMCMD_FRAME(0x60, 0), ANIMCMD_FRAME(0x60, 0),
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const sAnimTable_RedRectangularCursor[] = { // Each anim changes the dimensions of the rectangle cursor to fit what it should be selecting
sAnimCmd_RectCursor_Wide, enum {
sAnimCmd_RectCursor_Norm, RECTCURSOR_ANIM_ON_GROUP,
sAnimCmd_RectCursor_NormTaller, RECTCURSOR_ANIM_ON_BUTTON,
sAnimCmd_RectCursor_Narrow RECTCURSOR_ANIM_ON_OTHERS,
RECTCURSOR_ANIM_ON_LETTER,
}; };
static const struct SpriteTemplate sSpriteTemplate_RedRectangularCursor = { static const union AnimCmd *const sAnims_RectangleCursor[] = {
.tileTag = 1, [RECTCURSOR_ANIM_ON_GROUP] = sAnim_RectangleCursor_OnGroup,
.paletteTag = 1, [RECTCURSOR_ANIM_ON_BUTTON] = sAnim_RectangleCursor_OnButton,
.oam = &sOamData_RedRectangularCursor, [RECTCURSOR_ANIM_ON_OTHERS] = sAnim_RectangleCursor_OnOthers,
.anims = sAnimTable_RedRectangularCursor, [RECTCURSOR_ANIM_ON_LETTER] = sAnim_RectangleCursor_OnLetter,
};
static const struct SpriteTemplate sSpriteTemplate_RectangleCursor = {
.tileTag = GFXTAG_RECTANGLE_CURSOR,
.paletteTag = PALTAG_RECTANGLE_CURSOR,
.oam = &sOamData_RectangleCursor,
.anims = sAnims_RectangleCursor,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_BounceCursor .callback = SpriteCB_BounceCursor
}; };
static const struct OamData sOamData_EasyChatModeIcons = { static const struct OamData sOamData_ModeWindow = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -405,53 +412,61 @@ static const struct OamData sOamData_EasyChatModeIcons = {
.paletteNum = 0 .paletteNum = 0
}; };
static const union AnimCmd sAnim_EasyChatModeIcon_Hidden[] = { static const union AnimCmd sAnim_ModeWindow_Hidden[] = {
ANIMCMD_FRAME(0x60, 0), ANIMCMD_FRAME(0x60, 0), // Hidden frame
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnim_EasyChatModeIcon_ToGroupMode[] = { static const union AnimCmd sAnim_ModeWindow_ToGroup[] = {
ANIMCMD_FRAME(0x40, 4), ANIMCMD_FRAME(0x40, 4), // Transition frame
ANIMCMD_FRAME(0x20, 4), ANIMCMD_FRAME(0x20, 4), // 'Group' frame
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnim_EasyChatModeIcon_ToAlphaMode[] = { static const union AnimCmd sAnim_ModeWindow_ToAlphabet[] = {
ANIMCMD_FRAME(0x40, 4), ANIMCMD_FRAME(0x40, 4), // Transition frame
ANIMCMD_FRAME(0x00, 4), ANIMCMD_FRAME(0x00, 4), // 'A-Z' frame
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnim_EasyChatModeIcon_ToHidden[] = { static const union AnimCmd sAnim_ModeWindow_ToHidden[] = {
ANIMCMD_FRAME(0x40, 4), ANIMCMD_FRAME(0x40, 4), // Transition frame
ANIMCMD_FRAME(0x60, 0), ANIMCMD_FRAME(0x60, 0), // Hidden frame
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd sAnim_EasyChatModeIcon_HoldSmall[] = { static const union AnimCmd sAnim_ModeWindow_Transition[] = {
ANIMCMD_FRAME(0x40, 4), ANIMCMD_FRAME(0x40, 4), // Transition frame
ANIMCMD_END ANIMCMD_END
}; };
static const union AnimCmd *const sAnimTable_EasyChatModeIcons[] = { enum {
sAnim_EasyChatModeIcon_Hidden, MODEWINDOW_ANIM_HIDDEN,
sAnim_EasyChatModeIcon_ToGroupMode, MODEWINDOW_ANIM_TO_GROUP,
sAnim_EasyChatModeIcon_ToAlphaMode, MODEWINDOW_ANIM_TO_ALPHABET,
sAnim_EasyChatModeIcon_ToHidden, MODEWINDOW_ANIM_TO_HIDDEN,
sAnim_EasyChatModeIcon_HoldSmall MODEWINDOW_ANIM_TRANSITION,
}; };
static const struct SpriteTemplate sSpriteTemplate_EasyChatModeIcons = { static const union AnimCmd *const sAnims_ModeWindow[] = {
.tileTag = 4, [MODEWINDOW_ANIM_HIDDEN] = sAnim_ModeWindow_Hidden,
.paletteTag = 2, [MODEWINDOW_ANIM_TO_GROUP] = sAnim_ModeWindow_ToGroup,
.oam = &sOamData_EasyChatModeIcons, [MODEWINDOW_ANIM_TO_ALPHABET] = sAnim_ModeWindow_ToAlphabet,
.anims = sAnimTable_EasyChatModeIcons, [MODEWINDOW_ANIM_TO_HIDDEN] = sAnim_ModeWindow_ToHidden,
[MODEWINDOW_ANIM_TRANSITION] = sAnim_ModeWindow_Transition,
};
static const struct SpriteTemplate sSpriteTemplate_ModeWindow = {
.tileTag = GFXTAG_MODE_WINDOW,
.paletteTag = PALTAG_MISC_UI,
.oam = &sOamData_ModeWindow,
.anims = sAnims_ModeWindow,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy .callback = SpriteCallbackDummy
}; };
static const struct OamData sOamData_SelectGroupHelp = { static const struct OamData sOamData_ButtonWindow = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -466,17 +481,17 @@ static const struct OamData sOamData_SelectGroupHelp = {
.paletteNum = 0 .paletteNum = 0
}; };
static const struct SpriteTemplate sSpriteTemplate_SelectGroupHelp = { static const struct SpriteTemplate sSpriteTemplate_ButtonWindow = {
.tileTag = 6, .tileTag = GFXTAG_BUTTON_WINDOW,
.paletteTag = 2, .paletteTag = PALTAG_MISC_UI,
.oam = &sOamData_SelectGroupHelp, .oam = &sOamData_ButtonWindow,
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy .callback = SpriteCallbackDummy
}; };
static const struct OamData gUnknown_843FA58 = { static const struct OamData sOamData_StartSelectButton = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -491,7 +506,7 @@ static const struct OamData gUnknown_843FA58 = {
.paletteNum = 0 .paletteNum = 0
}; };
static const struct OamData sOamData_UpTriangleCursor = { static const struct OamData sOamData_ScrollIndicator = {
.y = 0, .y = 0,
.affineMode = ST_OAM_AFFINE_OFF, .affineMode = ST_OAM_AFFINE_OFF,
.objMode = ST_OAM_OBJ_NORMAL, .objMode = ST_OAM_OBJ_NORMAL,
@@ -506,36 +521,37 @@ static const struct OamData sOamData_UpTriangleCursor = {
.paletteNum = 0 .paletteNum = 0
}; };
static const union AnimCmd gUnknown_843FA68[] = { static const union AnimCmd sAnim_Frame0[] = {
ANIMCMD_FRAME(0, 0), ANIMCMD_FRAME(0, 0),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd gUnknown_843FA70[] = { static const union AnimCmd sAnim_Frame1[] = {
ANIMCMD_FRAME(4, 0), ANIMCMD_FRAME(4, 0),
ANIMCMD_END, ANIMCMD_END,
}; };
static const union AnimCmd *const gUnknown_843FA78[] = { // Frame0 is Start button, Frame1 is Select button, both are identical for the scroll indicators
gUnknown_843FA68, static const union AnimCmd *const sAnims_TwoFrame[] = {
gUnknown_843FA70, sAnim_Frame0,
sAnim_Frame1,
}; };
static const struct SpriteTemplate sSpriteTemplate_StartSelectButtons = { static const struct SpriteTemplate sSpriteTemplate_StartSelectButtons = {
.tileTag = 3, .tileTag = GFXTAG_START_SELECT_BUTTONS,
.paletteTag = 2, .paletteTag = PALTAG_MISC_UI,
.oam = &gUnknown_843FA58, .oam = &sOamData_StartSelectButton,
.anims = gUnknown_843FA78, .anims = sAnims_TwoFrame,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy, .callback = SpriteCallbackDummy,
}; };
static const struct SpriteTemplate sSpriteTemplate_UpTriangleCursor = { static const struct SpriteTemplate sSpriteTemplate_ScrollIndicator = {
.tileTag = 2, .tileTag = GFXTAG_SCROLL_INDICATOR,
.paletteTag = 2, .paletteTag = PALTAG_MISC_UI,
.oam = &sOamData_UpTriangleCursor, .oam = &sOamData_ScrollIndicator,
.anims = gUnknown_843FA78, .anims = sAnims_TwoFrame,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy, .callback = SpriteCallbackDummy,
@@ -573,7 +589,7 @@ bool8 LoadEasyChatGraphics(void)
break; break;
case 2: case 2:
DrawECFrameInTilemapBuffer(sEasyChatGraphicsResources->bg1TilemapBuffer); DrawECFrameInTilemapBuffer(sEasyChatGraphicsResources->bg1TilemapBuffer);
DecompressAndLoadBgGfxUsingHeap(1, gUnknown_843F7AC, 0, 0, 0); DecompressAndLoadBgGfxUsingHeap(1, sTextInputFrame_Gfx, 0, 0, 0);
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
break; break;
case 3: case 3:
@@ -695,7 +711,7 @@ static bool8 ECInterfaceCmd_02(void)
{ {
if (*ecWord == 0xFFFF) if (*ecWord == 0xFFFF)
{ {
stringWidth = GetStringWidth(FONT_1, gUnknown_843F8D8, 0) * 7; stringWidth = GetStringWidth(FONT_1, sText_Underscore, 0) * 7;
} }
else else
{ {
@@ -1303,13 +1319,13 @@ static void SetGpuRegsForEasyChatInit(void)
static void LoadEasyChatPals(void) static void LoadEasyChatPals(void)
{ {
ResetPaletteFade(); ResetPaletteFade();
LoadPalette(gEasyChatMode_Pal, 0, 32); LoadPalette(gEasyChatWindow_Pal, 0, 32);
LoadPalette(gUnknown_843F76C, 1 * 16, 32); LoadPalette(sTextInputFrameOrange_Pal, 1 * 16, 32);
LoadPalette(gUnknown_843F78C, 4 * 16, 32); LoadPalette(sTextInputFrameGreen_Pal, 4 * 16, 32);
LoadPalette(gUnknown_843F874, 10 * 16, 8); LoadPalette(sTitleText_Pal, 10 * 16, 8);
LoadPalette(gUnknown_843F87C, 11 * 16, 10); LoadPalette(sText_Pal, 11 * 16, 10);
LoadPalette(gUnknown_843F87C, 15 * 16, 10); LoadPalette(sText_Pal, 15 * 16, 10);
LoadPalette(gUnknown_843F87C, 3 * 16, 10); LoadPalette(sText_Pal, 3 * 16, 10);
} }
static void PrintTitleText(void) static void PrintTitleText(void)
@@ -1579,8 +1595,8 @@ static void PrintEasyChatKeyboardText(void)
{ {
u32 i; u32 i;
for (i = 0; i < NELEMS(sEasyChatKeyboardText); i++) for (i = 0; i < ARRAY_COUNT(sEasyChatKeyboardAlphabet); i++)
EC_AddTextPrinterParameterized(2, FONT_1, sEasyChatKeyboardText[i], 10, 96 + i * 16, TEXT_SKIP_DRAW, NULL); EC_AddTextPrinterParameterized(2, FONT_1, sEasyChatKeyboardAlphabet[i], 10, 96 + i * 16, TEXT_SKIP_DRAW, NULL);
} }
static void PrintECWordsMenu(void) static void PrintECWordsMenu(void)
@@ -1930,7 +1946,7 @@ static void CreateSelectDestFieldCursorSprite(void)
u8 frameId = GetEasyChatScreenFrameId(); u8 frameId = GetEasyChatScreenFrameId();
s16 x = sPhraseFrameDimensions[frameId].left * 8 + 13; s16 x = sPhraseFrameDimensions[frameId].left * 8 + 13;
s16 y = (sPhraseFrameDimensions[frameId].top + 1) * 8 + 1; s16 y = (sPhraseFrameDimensions[frameId].top + 1) * 8 + 1;
u8 spriteId = CreateSprite(&sSpriteTemplate_RightTriangleCursor, x, y, 2); u8 spriteId = CreateSprite(&sSpriteTemplate_TriangleCursor, x, y, 2);
sEasyChatGraphicsResources->selectDestFieldCursorSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->selectDestFieldCursorSprite = &gSprites[spriteId];
gSprites[spriteId].data[1] = 1; gSprites[spriteId].data[1] = 1;
} }
@@ -1970,11 +1986,11 @@ static void UnfreezeSelectDestFieldCursorSprite(void)
static void CreateRedRectangularCursorSpritePair(void) static void CreateRedRectangularCursorSpritePair(void)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_RedRectangularCursor, 0, 0, 3); u8 spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3);
sEasyChatGraphicsResources->rectCursorSpriteRight = &gSprites[spriteId]; sEasyChatGraphicsResources->rectCursorSpriteRight = &gSprites[spriteId];
sEasyChatGraphicsResources->rectCursorSpriteRight->x2 = 32; sEasyChatGraphicsResources->rectCursorSpriteRight->x2 = 32;
spriteId = CreateSprite(&sSpriteTemplate_RedRectangularCursor, 0, 0, 3); spriteId = CreateSprite(&sSpriteTemplate_RectangleCursor, 0, 0, 3);
sEasyChatGraphicsResources->rectCursorSpriteLeft = &gSprites[spriteId]; sEasyChatGraphicsResources->rectCursorSpriteLeft = &gSprites[spriteId];
sEasyChatGraphicsResources->rectCursorSpriteLeft->x2 = -32; sEasyChatGraphicsResources->rectCursorSpriteLeft->x2 = -32;
@@ -2009,21 +2025,21 @@ static void MoveCursor_Group(s8 x, s8 y)
{ {
if (x != -1) if (x != -1)
{ {
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, 0); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, RECTCURSOR_ANIM_ON_GROUP);
sEasyChatGraphicsResources->rectCursorSpriteRight->x = x * 84 + 58; sEasyChatGraphicsResources->rectCursorSpriteRight->x = x * 84 + 58;
sEasyChatGraphicsResources->rectCursorSpriteRight->y = y * 16 + 96; sEasyChatGraphicsResources->rectCursorSpriteRight->y = y * 16 + 96;
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, 0); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, RECTCURSOR_ANIM_ON_GROUP);
sEasyChatGraphicsResources->rectCursorSpriteLeft->x = x * 84 + 58; sEasyChatGraphicsResources->rectCursorSpriteLeft->x = x * 84 + 58;
sEasyChatGraphicsResources->rectCursorSpriteLeft->y = y * 16 + 96; sEasyChatGraphicsResources->rectCursorSpriteLeft->y = y * 16 + 96;
} }
else else
{ {
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, 1); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON);
sEasyChatGraphicsResources->rectCursorSpriteRight->x = 216; sEasyChatGraphicsResources->rectCursorSpriteRight->x = 216;
sEasyChatGraphicsResources->rectCursorSpriteRight->y = y * 16 + 112; sEasyChatGraphicsResources->rectCursorSpriteRight->y = y * 16 + 112;
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, 1); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON);
sEasyChatGraphicsResources->rectCursorSpriteLeft->x = 216; sEasyChatGraphicsResources->rectCursorSpriteLeft->x = 216;
sEasyChatGraphicsResources->rectCursorSpriteLeft->y = y * 16 + 112; sEasyChatGraphicsResources->rectCursorSpriteLeft->y = y * 16 + 112;
} }
@@ -2041,12 +2057,12 @@ static void MoveCursor_Alpha(s8 cursorX, s8 cursorY)
if (cursorX == 6 && cursorY == 0) if (cursorX == 6 && cursorY == 0)
{ {
x = 157; x = 157;
anim = 2; anim = RECTCURSOR_ANIM_ON_OTHERS;
} }
else else
{ {
x += sECDisplay_AlphaModeXCoords[cursorX < NELEMS(sECDisplay_AlphaModeXCoords) ? cursorX : 0]; x += sAlphabetKeyboardColumnOffsets[cursorX < ARRAY_COUNT(sAlphabetKeyboardColumnOffsets) ? cursorX : 0];
anim = 3; anim = RECTCURSOR_ANIM_ON_LETTER;
} }
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, anim); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, anim);
@@ -2059,11 +2075,11 @@ static void MoveCursor_Alpha(s8 cursorX, s8 cursorY)
} }
else else
{ {
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, 1); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteRight, RECTCURSOR_ANIM_ON_BUTTON);
sEasyChatGraphicsResources->rectCursorSpriteRight->x = 216; sEasyChatGraphicsResources->rectCursorSpriteRight->x = 216;
sEasyChatGraphicsResources->rectCursorSpriteRight->y = cursorY * 16 + 112; sEasyChatGraphicsResources->rectCursorSpriteRight->y = cursorY * 16 + 112;
StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, 1); StartSpriteAnim(sEasyChatGraphicsResources->rectCursorSpriteLeft, RECTCURSOR_ANIM_ON_BUTTON);
sEasyChatGraphicsResources->rectCursorSpriteLeft->x = 216; sEasyChatGraphicsResources->rectCursorSpriteLeft->x = 216;
sEasyChatGraphicsResources->rectCursorSpriteLeft->y = cursorY * 16 + 112; sEasyChatGraphicsResources->rectCursorSpriteLeft->y = cursorY * 16 + 112;
} }
@@ -2071,7 +2087,7 @@ static void MoveCursor_Alpha(s8 cursorX, s8 cursorY)
static void CreateSelectWordCursorSprite(void) static void CreateSelectWordCursorSprite(void)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_RightTriangleCursor, 0, 0, 4); u8 spriteId = CreateSprite(&sSpriteTemplate_TriangleCursor, 0, 0, 4);
sEasyChatGraphicsResources->selectWordCursorSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->selectWordCursorSprite = &gSprites[spriteId];
sEasyChatGraphicsResources->selectWordCursorSprite->callback = SpriteCB_SelectWordCursorSprite; sEasyChatGraphicsResources->selectWordCursorSprite->callback = SpriteCB_SelectWordCursorSprite;
sEasyChatGraphicsResources->selectWordCursorSprite->oam.priority = 2; sEasyChatGraphicsResources->selectWordCursorSprite->oam.priority = 2;
@@ -2121,11 +2137,11 @@ static void DestroySelectWordCursorSprite(void)
static void CreateSelectGroupHelpSprite(void) static void CreateSelectGroupHelpSprite(void)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_SelectGroupHelp, 208, 128, 6); u8 spriteId = CreateSprite(&sSpriteTemplate_ButtonWindow, 208, 128, 6);
sEasyChatGraphicsResources->selectGroupHelpSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->selectGroupHelpSprite = &gSprites[spriteId];
sEasyChatGraphicsResources->selectGroupHelpSprite->x2 = -64; sEasyChatGraphicsResources->selectGroupHelpSprite->x2 = -64;
spriteId = CreateSprite(&sSpriteTemplate_EasyChatModeIcons, 208, 80, 5); spriteId = CreateSprite(&sSpriteTemplate_ModeWindow, 208, 80, 5);
sEasyChatGraphicsResources->modeIconsSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->modeIconsSprite = &gSprites[spriteId];
sEasyChatGraphicsResources->modeIconState = 0; sEasyChatGraphicsResources->modeIconState = 0;
} }
@@ -2142,9 +2158,9 @@ static bool8 AnimateSeletGroupModeAndHelpSpriteEnter(void)
{ {
sEasyChatGraphicsResources->selectGroupHelpSprite->x2 = 0; sEasyChatGraphicsResources->selectGroupHelpSprite->x2 = 0;
if (!IsEasyChatAlphaMode()) if (!IsEasyChatAlphaMode())
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 1); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TO_GROUP);
else else
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 2); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TO_ALPHABET);
sEasyChatGraphicsResources->modeIconState++; sEasyChatGraphicsResources->modeIconState++;
} }
@@ -2163,7 +2179,7 @@ static bool8 AnimateSeletGroupModeAndHelpSpriteEnter(void)
static void StartModeIconHidingAnimation(void) static void StartModeIconHidingAnimation(void)
{ {
sEasyChatGraphicsResources->modeIconState = 0; sEasyChatGraphicsResources->modeIconState = 0;
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 3); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TO_HIDDEN);
} }
static bool8 RunModeIconHidingAnimation(void) static bool8 RunModeIconHidingAnimation(void)
@@ -2194,15 +2210,15 @@ static bool8 RunModeIconHidingAnimation(void)
static void ShrinkModeIconsSprite(void) static void ShrinkModeIconsSprite(void)
{ {
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 4); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TRANSITION);
} }
static void ShowModeIconsSprite(void) static void ShowModeIconsSprite(void)
{ {
if (!IsEasyChatAlphaMode()) if (!IsEasyChatAlphaMode())
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 1); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TO_GROUP);
else else
StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, 2); StartSpriteAnim(sEasyChatGraphicsResources->modeIconsSprite, MODEWINDOW_ANIM_TO_ALPHABET);
} }
static bool8 ModeIconsSpriteAnimIsEnded(void) static bool8 ModeIconsSpriteAnimIsEnded(void)
@@ -2212,11 +2228,11 @@ static bool8 ModeIconsSpriteAnimIsEnded(void)
static void CreateVerticalScrollArrowSprites(void) static void CreateVerticalScrollArrowSprites(void)
{ {
u8 spriteId = CreateSprite(&sSpriteTemplate_UpTriangleCursor, 96, 80, 0); u8 spriteId = CreateSprite(&sSpriteTemplate_ScrollIndicator, 96, 80, 0);
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
sEasyChatGraphicsResources->upTriangleCursorSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->upTriangleCursorSprite = &gSprites[spriteId];
spriteId = CreateSprite(&sSpriteTemplate_UpTriangleCursor, 96, 156, 0); spriteId = CreateSprite(&sSpriteTemplate_ScrollIndicator, 96, 156, 0);
if (spriteId != MAX_SPRITES) if (spriteId != MAX_SPRITES)
{ {
sEasyChatGraphicsResources->downTriangleCursorSprite = &gSprites[spriteId]; sEasyChatGraphicsResources->downTriangleCursorSprite = &gSprites[spriteId];
+10 -10
View File
@@ -1219,13 +1219,13 @@ const u32 gKantoTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card.4bpp.
const u16 gHoennTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.gbapal"); const u16 gHoennTrainerCard_Pal[] = INCBIN_U16("graphics/trainer_card/0star_em.gbapal");
const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz"); const u32 gHoennTrainerCard_Gfx[] = INCBIN_U32("graphics/trainer_card/card_em.4bpp.lz");
const u16 gEasyChatMode_Pal[] = INCBIN_U16("graphics/link_rfu/unk_8E99DAC.gbapal"); const u16 gEasyChatWindow_Pal[] = INCBIN_U16("graphics/easy_chat/window.gbapal");
const u32 gEasyChatWindow_Gfx[] = INCBIN_U32("graphics/link_rfu/unk_8E99DAC.4bpp.lz"); const u32 gEasyChatWindow_Gfx[] = INCBIN_U32("graphics/easy_chat/window.4bpp.lz");
const u32 gEasyChatWindow_Tilemap[] = INCBIN_U32("graphics/link_rfu/unk_8E99E74.bin.lz"); const u32 gEasyChatWindow_Tilemap[] = INCBIN_U32("graphics/easy_chat/window.bin.lz");
const u16 gUnknown_8E99F24[] = INCBIN_U16("graphics/link_rfu/unk_8E9A168.gbapal"); const u16 gEasyChatButtonWindow_Pal[] = INCBIN_U16("graphics/easy_chat/button_window.gbapal");
const u32 gEasyChatSelectGroupHelp_Tiles[] = INCBIN_U32("graphics/link_rfu/unk_8E99F44.4bpp.lz"); const u32 gEasyChatButtonWindow_Gfx[] = INCBIN_U32("graphics/easy_chat/button_window.4bpp.lz");
const u32 gEasyChatModeIcons_Tiles[] = INCBIN_U32("graphics/link_rfu/unk_8E9A168.4bpp.lz"); const u32 gEasyChatMode_Gfx[] = INCBIN_U32("graphics/easy_chat/mode.4bpp.lz");
const u32 gPokeSumBgTiles[] = INCBIN_U32("graphics/interface/trainer_memo.4bpp.lz"); const u32 gPokeSumBgTiles[] = INCBIN_U32("graphics/interface/trainer_memo.4bpp.lz");
const u32 gTrainerMemoPal1[] = INCBIN_U32("graphics/interface/trainer_memo_pal1.gbapal"); const u32 gTrainerMemoPal1[] = INCBIN_U32("graphics/interface/trainer_memo_pal1.gbapal");
@@ -1242,11 +1242,11 @@ const u32 gBgTilemap_PokeSum_MovesListForDelete[] = INCBIN_U32("graphics/interfa
const u32 gBgTilemap_PokeSum_MoveDetailsForDelete[] = INCBIN_U32("graphics/interface/trainer_memo_4.bin.lz"); const u32 gBgTilemap_PokeSum_MoveDetailsForDelete[] = INCBIN_U32("graphics/interface/trainer_memo_4.bin.lz");
const u32 gBgTilemap_TrainerMemo_Egg[] = INCBIN_U32("graphics/interface/trainer_memo_5.bin.lz"); const u32 gBgTilemap_TrainerMemo_Egg[] = INCBIN_U32("graphics/interface/trainer_memo_5.bin.lz");
const u16 gUnknown_8E9BD08[] = INCBIN_U16("graphics/unknown/unknown_E9BD08.gbapal"); // might be an alternate unused palette of the link_rfu gfx below. const u16 gUnknown_8E9BD08[] = INCBIN_U16("graphics/unknown/unknown_E9BD08.gbapal");
const u32 gEasyChatRedRectangularCursor_Tiles[] = INCBIN_U32("graphics/interface/link_rfu_frame.4bpp.lz"); const u32 gEasyChatRectangleCursor_Gfx[] = INCBIN_U32("graphics/easy_chat/rectangle_cursor.4bpp.lz");
const u16 gPokeSummary_StatusAilmentIconPals[] = INCBIN_U16("graphics/interface/link_rfu_frame.gbapal"); const u16 gPokeSummary_StatusAilmentIconPals[] = INCBIN_U16("graphics/interface/status_ailment_icons.gbapal");
const u32 gPokeSummary_StatusAilmentIconTiles[] = INCBIN_U32("graphics/interface/link_rfu_status.4bpp.lz"); const u32 gPokeSummary_StatusAilmentIconTiles[] = INCBIN_U32("graphics/interface/status_ailment_icons.4bpp.lz");
const u16 gDexScreen_TopMenuIconPals_AtoZ[] = INCBIN_U16("graphics/pokedex/cat_icon_abc.gbapal"); const u16 gDexScreen_TopMenuIconPals_AtoZ[] = INCBIN_U16("graphics/pokedex/cat_icon_abc.gbapal");
const u32 gDexScreen_TopMenuIconTiles_AtoZ[] = INCBIN_U32("graphics/pokedex/cat_icon_abc.4bpp.lz"); const u32 gDexScreen_TopMenuIconTiles_AtoZ[] = INCBIN_U32("graphics/pokedex/cat_icon_abc.4bpp.lz");