Fix assert failure on disabled species in Sprite Visualizer (#9422)
Some checks are pending
CI / build-emerald (push) Waiting to run
CI / build-firered (push) Waiting to run
CI / build-leafgreen (push) Waiting to run
CI / release (push) Waiting to run
CI / test (push) Waiting to run
CI / build (push) Blocked by required conditions
CI / docs_validate (push) Waiting to run
CI / allcontributors (push) Waiting to run
Docs / deploy (push) Waiting to run

Co-authored-by: Hedara <hedara90@gmail.com>
Co-authored-by: Alex <93446519+AlexOn1ine@users.noreply.github.com>
This commit is contained in:
hedara90 2026-03-19 13:14:14 +01:00 committed by GitHub
parent 4af2bd3207
commit e8c5db4943
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -519,7 +519,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data)
{
u8 fontId = FONT_SMALL;
u8 x = 2;
u16 species = data->modifyArrows.currValue;
u16 species = IsSpeciesEnabled(data->modifyArrows.currValue) ? SanitizeSpeciesId(data->modifyArrows.currValue) : SPECIES_NONE;
u8 textBottom[] = _("BACK:\nFRONT:\nBG:$");
u8 textBottomForms[] = _("BACK:\nFRONT:\nBG:\nFORMS:$");
@ -575,7 +575,8 @@ static void SetStructPtr(u8 taskId, void *ptr)
static void PrintDigitChars(struct PokemonSpriteVisualizer *data)
{
s32 i;
u16 species = data->modifyArrows.currValue;
u16 species = IsSpeciesEnabled(data->modifyArrows.currValue) ? data->modifyArrows.currValue : SPECIES_NONE;
u8 text[MODIFY_DIGITS_MAX + POKEMON_NAME_LENGTH + 8];
for (i = 0; i < data->modifyArrows.maxDigits; i++)
@ -793,7 +794,7 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo
static void SetConstSpriteValues(struct PokemonSpriteVisualizer *data)
{
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset;
data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation;
data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset;
@ -810,7 +811,7 @@ static void ResetShadowSettings(struct PokemonSpriteVisualizer *data)
{
if (B_ENEMY_MON_SHADOW_STYLE <= GEN_3 || P_GBA_STYLE_SPECIES_GFX == TRUE)
return;
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset;
data->shadowSettings.definedY = gSpeciesInfo[species].enemyShadowYOffset;
data->shadowSettings.definedSize = gSpeciesInfo[species].enemyShadowSize;
@ -910,7 +911,7 @@ static void SpriteCB_Follower(struct Sprite *sprite)
static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data)
{
bool8 invisible = FALSE;
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
{
@ -1040,7 +1041,7 @@ static void DrawFollowerSprite(struct PokemonSpriteVisualizer *data)
if (!OW_POKEMON_OBJECT_EVENTS)
return;
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
u16 graphicsId = species + OBJ_EVENT_MON;
if (data->isShiny)
graphicsId += OBJ_EVENT_MON_SHINY;
@ -1268,7 +1269,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
SetStructPtr(taskId, data);
data->currentmonId = SPECIES_BULBASAUR;
species = SanitizeSpeciesId(data->currentmonId);
species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
//Print instructions
PrintInstructionsOnWindow(data);
@ -1385,7 +1386,7 @@ static void ResetBGs_PokemonSpriteVisualizer(u16 a)
static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
{
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
//Back
gSprites[data->backspriteId].y = VISUALIZER_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords;
//Front
@ -1398,7 +1399,7 @@ static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
u8 option = data->submenuYpos[1];
switch (option)
@ -1483,7 +1484,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
u8 option = data->submenuYpos[2];
s8 offset;
u8 y;
@ -1703,7 +1704,7 @@ static void OpenSubmenu(u32 submenu, u8 taskId)
static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
{
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
struct Sprite *Frontsprite = &gSprites[data->frontspriteId];
struct Sprite *Backsprite = &gSprites[data->backspriteId];
@ -1987,7 +1988,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
{
const u16 *palette;
u16 species = SanitizeSpeciesId(data->currentmonId);
u16 species = IsSpeciesEnabled(data->currentmonId) ? SanitizeSpeciesId(data->currentmonId) : SPECIES_NONE;
s16 offset_y;
u8 front_x = sBattlerCoords[0][1].x;
u8 front_y;