Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add Category Icon Sprites #2

Merged
merged 2 commits into from
Apr 5, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions include/battle.h
Original file line number Diff line number Diff line change
Expand Up @@ -1107,6 +1107,7 @@ extern u16 gLastThrownBall;
extern u16 gBallToDisplay;
extern bool8 gLastUsedBallMenuPresent;
extern u8 gPartyCriticalHits[PARTY_SIZE];
extern u8 gCategoryIconSpriteId;

static inline u32 GetBattlerPosition(u32 battler)
{
Expand Down
1 change: 1 addition & 0 deletions include/battle_interface.h
Original file line number Diff line number Diff line change
Expand Up @@ -120,5 +120,6 @@ void TryAddLastUsedBallItemSprites(void);
void SwapBallToDisplay(bool32 sameBall);
void ArrowsChangeColorLastBallCycle(bool32 showArrows);
void UpdateAbilityPopup(u8 battlerId);
void CategoryIcons_LoadSpritesGfx(void);

#endif // GUARD_BATTLE_INTERFACE_H
2 changes: 2 additions & 0 deletions include/graphics.h
Original file line number Diff line number Diff line change
Expand Up @@ -1974,6 +1974,8 @@ extern const u32 gSummaryMoveSelect_Gfx[];
extern const u32 gSummaryMoveSelect_Pal[];
extern const u32 gStatusGfx_Icons[];
extern const u32 gStatusPal_Icons[];
extern const u16 gCategoryIcons_Pal[];
extern const u32 gCategoryIcons_Gfx[];

extern const u32 gShopMenu_Gfx[];
extern const u32 gShopMenu_Tilemap[];
Expand Down
3 changes: 3 additions & 0 deletions include/pokemon_summary_screen.h
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,9 @@ extern const u8 gNotDoneYetDescription[];
extern const u8 *const gNatureNamePointers[];
extern const struct SpriteTemplate gSpriteTemplate_MoveTypes;
extern const struct CompressedSpriteSheet gSpriteSheet_MoveTypes;
extern const struct CompressedSpriteSheet gSpriteSheet_CategoryIcons;
extern const struct SpritePalette gSpritePal_CategoryIcons;
extern const struct SpriteTemplate gSpriteTemplate_CategoryIcons;

void ShowPokemonSummaryScreen(u8 mode, void *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void));
void ShowSelectMovePokemonSummaryScreen(struct Pokemon *mons, u8 monIndex, u8 maxMonIndex, void (*callback)(void), u16 newMove);
Expand Down
14 changes: 14 additions & 0 deletions src/battle_controller_player.c
Original file line number Diff line number Diff line change
Expand Up @@ -906,6 +906,12 @@ static void HandleInputChooseMove(u32 battler)
if (JOY_NEW(L_BUTTON) || JOY_NEW(A_BUTTON) || JOY_NEW(B_BUTTON))
{
sDescriptionSubmenu = FALSE;
if (gCategoryIconSpriteId != 0xFF)
{
DestroySprite(&gSprites[gCategoryIconSpriteId]);
gCategoryIconSpriteId = 0xFF;
}

FillWindowPixelBuffer(B_WIN_MOVE_DESCRIPTION, PIXEL_FILL(0));
ClearStdWindowAndFrame(B_WIN_MOVE_DESCRIPTION, FALSE);
CopyWindowToVram(B_WIN_MOVE_DESCRIPTION, COPYWIN_GFX);
Expand Down Expand Up @@ -1798,6 +1804,8 @@ static void MoveSelectionDisplayMoveDescription(u32 battler)
u16 move = moveInfo->moves[gMoveSelectionCursor[battler]];
u16 pwr = gMovesInfo[move].power;
u16 acc = gMovesInfo[move].accuracy;
u8 cat = gMovesInfo[move].category;

u8 pwr_num[3], acc_num[3];
u8 cat_desc[7] = _("CAT: ");
u8 pwr_desc[7] = _("PWR: ");
Expand Down Expand Up @@ -1829,6 +1837,12 @@ static void MoveSelectionDisplayMoveDescription(u32 battler)
else
StringAppend(gDisplayedStringBattle, gMovesInfo[move - 1].description);
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_MOVE_DESCRIPTION);

if (gCategoryIconSpriteId == 0xFF)
gCategoryIconSpriteId = CreateSprite(&gSpriteTemplate_CategoryIcons, 38, 64, 1);

StartSpriteAnim(&gSprites[gCategoryIconSpriteId], cat);

CopyWindowToVram(B_WIN_MOVE_DESCRIPTION, COPYWIN_FULL);
}

Expand Down
1 change: 1 addition & 0 deletions src/battle_gfx_sfx_util.c
Original file line number Diff line number Diff line change
Expand Up @@ -709,6 +709,7 @@ bool8 BattleLoadAllHealthBoxesGfx(u8 state)
LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[0]);
LoadSpritePalette(&sSpritePalettes_HealthBoxHealthBar[1]);
MegaIndicator_LoadSpritesGfx();
CategoryIcons_LoadSpritesGfx();
}
else if (!IsDoubleBattle())
{
Expand Down
6 changes: 6 additions & 0 deletions src/battle_interface.c
Original file line number Diff line number Diff line change
Expand Up @@ -3718,3 +3718,9 @@ void ArrowsChangeColorLastBallCycle(bool32 showArrows)
}
#endif
}

void CategoryIcons_LoadSpritesGfx(void)
{
LoadCompressedSpriteSheet(&gSpriteSheet_CategoryIcons);
LoadSpritePalette(&gSpritePal_CategoryIcons);
}
2 changes: 2 additions & 0 deletions src/battle_main.c
Original file line number Diff line number Diff line change
Expand Up @@ -234,6 +234,7 @@ EWRAM_DATA u16 gBallToDisplay = 0;
EWRAM_DATA bool8 gLastUsedBallMenuPresent = FALSE;
EWRAM_DATA u8 gPartyCriticalHits[PARTY_SIZE] = {0};
EWRAM_DATA static u8 sTriedEvolving = 0;
EWRAM_DATA u8 gCategoryIconSpriteId = 0;

void (*gPreBattleCallback1)(void);
void (*gBattleMainFunc)(void);
Expand Down Expand Up @@ -3079,6 +3080,7 @@ static void BattleStartClearSetData(void)

gBattleStruct->swapDamageCategory = FALSE; // Photon Geyser, Shell Side Arm, Light That Burns the Sky
gSelectedMonPartyId = PARTY_SIZE; // Revival Blessing
gCategoryIconSpriteId = 0xFF;
}

void SwitchInClearSetData(u32 battler)
Expand Down
3 changes: 3 additions & 0 deletions src/graphics.c
Original file line number Diff line number Diff line change
Expand Up @@ -1621,6 +1621,9 @@ const u32 gPartyMenuPokeball_Pal[] = INCBIN_U32("graphics/party_menu/pokeball.gb
const u32 gStatusGfx_Icons[] = INCBIN_U32("graphics/interface/status_icons.4bpp.lz");
const u32 gStatusPal_Icons[] = INCBIN_U32("graphics/interface/status_icons.gbapal.lz");

const u16 gCategoryIcons_Pal[] = INCBIN_U16("graphics/interface/category_icons.gbapal");
const u32 gCategoryIcons_Gfx[] = INCBIN_U32("graphics/interface/category_icons.4bpp.lz");

const u32 gMoveTypes_Gfx[] = INCBIN_U32("graphics/types/move_types.4bpp.lz");
const u32 gMoveTypes_Pal[] = INCBIN_U32("graphics/types/move_types.gbapal.lz");

Expand Down
60 changes: 3 additions & 57 deletions src/pokedex_plus_hgss.c
Original file line number Diff line number Diff line change
Expand Up @@ -621,60 +621,6 @@ static void DestroyCategoryIcon(void);

static u16 NationalPokedexNumToSpeciesHGSS(u16 nationalNum);

#define TAG_CATEGORY_ICONS 30004

static const u16 sCategoryIcons_Pal[] = INCBIN_U16("graphics/interface/category_icons.gbapal");
static const u32 sCategoryIcons_Gfx[] = INCBIN_U32("graphics/interface/category_icons.4bpp.lz");

static const struct OamData sOamData_CategoryIcons =
{
.size = SPRITE_SIZE(16x16),
.shape = SPRITE_SHAPE(16x16),
.priority = 0,
};
static const struct CompressedSpriteSheet sSpriteSheet_CategoryIcons =
{
.data = sCategoryIcons_Gfx,
.size = 16*16*3/2,
.tag = TAG_CATEGORY_ICONS,
};
static const struct SpritePalette sSpritePal_CategoryIcons =
{
.data = sCategoryIcons_Pal,
.tag = TAG_CATEGORY_ICONS
};
static const union AnimCmd sSpriteAnim_CategoryIcon0[] =
{
ANIMCMD_FRAME(0, 0),
ANIMCMD_END
};
static const union AnimCmd sSpriteAnim_CategoryIcon1[] =
{
ANIMCMD_FRAME(4, 0),
ANIMCMD_END
};
static const union AnimCmd sSpriteAnim_CategoryIcon2[] =
{
ANIMCMD_FRAME(8, 0),
ANIMCMD_END
};
static const union AnimCmd *const sSpriteAnimTable_CategoryIcons[] =
{
sSpriteAnim_CategoryIcon0,
sSpriteAnim_CategoryIcon1,
sSpriteAnim_CategoryIcon2,
};
static const struct SpriteTemplate sSpriteTemplate_CategoryIcons =
{
.tileTag = TAG_CATEGORY_ICONS,
.paletteTag = TAG_CATEGORY_ICONS,
.oam = &sOamData_CategoryIcons,
.anims = sSpriteAnimTable_CategoryIcons,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCallbackDummy
};

//Stat bars by DizzyEgg
#define TAG_STAT_BAR 4097
#define TAG_STAT_BAR_BG 4098
Expand Down Expand Up @@ -4888,7 +4834,7 @@ static void LoadTilesetTilemapHGSS(u8 page)
static u8 ShowCategoryIcon(u32 category)
{
if (sPokedexView->categoryIconSpriteId == 0xFF)
sPokedexView->categoryIconSpriteId = CreateSprite(&sSpriteTemplate_CategoryIcons, 139, 90, 0);
sPokedexView->categoryIconSpriteId = CreateSprite(&gSpriteTemplate_CategoryIcons, 139, 90, 0);

gSprites[sPokedexView->categoryIconSpriteId].invisible = FALSE;
StartSpriteAnim(&gSprites[sPokedexView->categoryIconSpriteId], category);
Expand Down Expand Up @@ -5031,8 +4977,8 @@ static void Task_LoadStatsScreen(u8 taskId)
CreateTypeIconSprites();
sPokedexView->categoryIconSpriteId = 0xFF;
LoadCompressedPalette(gMoveTypes_Pal, 0x1D0, 0x60);
LoadCompressedSpriteSheet(&sSpriteSheet_CategoryIcons);
LoadSpritePalette(&sSpritePal_CategoryIcons);
LoadCompressedSpriteSheet(&gSpriteSheet_CategoryIcons);
LoadSpritePalette(&gSpritePal_CategoryIcons);
gMain.state++;
break;
case 4:
Expand Down
19 changes: 8 additions & 11 deletions src/pokemon_summary_screen.c
Original file line number Diff line number Diff line change
Expand Up @@ -740,26 +740,23 @@ static const u8 sMovesPPLayout[] = _("{PP}{DYNAMIC 0}/{DYNAMIC 1}");
#define TAG_MON_MARKINGS 30003
#define TAG_CATEGORY_ICONS 30004

static const u16 sCategoryIcons_Pal[] = INCBIN_U16("graphics/interface/category_icons.gbapal");
static const u32 sCategoryIcons_Gfx[] = INCBIN_U32("graphics/interface/category_icons.4bpp.lz");

static const struct OamData sOamData_CategoryIcons =
{
.size = SPRITE_SIZE(16x16),
.shape = SPRITE_SHAPE(16x16),
.priority = 0,
};

static const struct CompressedSpriteSheet sSpriteSheet_CategoryIcons =
const struct CompressedSpriteSheet gSpriteSheet_CategoryIcons =
{
.data = sCategoryIcons_Gfx,
.data = gCategoryIcons_Gfx,
.size = 16*16*3/2,
.tag = TAG_CATEGORY_ICONS,
};

static const struct SpritePalette sSpritePal_CategoryIcons =
const struct SpritePalette gSpritePal_CategoryIcons =
{
.data = sCategoryIcons_Pal,
.data = gCategoryIcons_Pal,
.tag = TAG_CATEGORY_ICONS
};

Expand Down Expand Up @@ -788,7 +785,7 @@ static const union AnimCmd *const sSpriteAnimTable_CategoryIcons[] =
sSpriteAnim_CategoryIcon2,
};

static const struct SpriteTemplate sSpriteTemplate_CategoryIcons =
const struct SpriteTemplate gSpriteTemplate_CategoryIcons =
{
.tileTag = TAG_CATEGORY_ICONS,
.paletteTag = TAG_CATEGORY_ICONS,
Expand Down Expand Up @@ -1156,7 +1153,7 @@ static const u16 sMarkings_Pal[] = INCBIN_U16("graphics/summary_screen/markings.
static u8 ShowCategoryIcon(u32 category)
{
if (sMonSummaryScreen->categoryIconSpriteId == 0xFF)
sMonSummaryScreen->categoryIconSpriteId = CreateSprite(&sSpriteTemplate_CategoryIcons, 48, 129, 0);
sMonSummaryScreen->categoryIconSpriteId = CreateSprite(&gSpriteTemplate_CategoryIcons, 48, 129, 0);

gSprites[sMonSummaryScreen->categoryIconSpriteId].invisible = FALSE;
StartSpriteAnim(&gSprites[sMonSummaryScreen->categoryIconSpriteId], category);
Expand Down Expand Up @@ -1451,8 +1448,8 @@ static bool8 DecompressGraphics(void)
break;
case 12:
LoadCompressedPalette(gMoveTypes_Pal, OBJ_PLTT_ID(13), 3 * PLTT_SIZE_4BPP);
LoadCompressedSpriteSheet(&sSpriteSheet_CategoryIcons);
LoadSpritePalette(&sSpritePal_CategoryIcons);
LoadCompressedSpriteSheet(&gSpriteSheet_CategoryIcons);
LoadSpritePalette(&gSpritePal_CategoryIcons);
sMonSummaryScreen->switchCounter = 0;
return TRUE;
}
Expand Down
Loading