Various sprite visualizer fixes if configs disabled (#8697)
Co-authored-by: Bassoonian <iasperbassoonian@gmail.com>
This commit is contained in:
parent
eba17e6860
commit
a15d51083a
@ -471,7 +471,7 @@ static void PrintInstructionsOnWindow(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textL, 30, 0, 0, NULL);
|
||||
AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textR, 30, 12, 0, NULL);
|
||||
if (GetSpeciesFormTable(data->currentmonId) != NULL)
|
||||
if (GetSpeciesFormTable(species) != NULL)
|
||||
AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottomForms, 0, 0, 0, NULL);
|
||||
else
|
||||
AddTextPrinterParameterized(WIN_BOTTOM_LEFT, fontId, textBottom, 0, 0, 0, NULL);
|
||||
@ -722,7 +722,7 @@ static void BattleLoadOpponentMonSpriteGfxCustom(u16 species, bool8 isFemale, bo
|
||||
|
||||
static void SetConstSpriteValues(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
u16 species = data->currentmonId;
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
data->constSpriteValues.frontPicCoords = gSpeciesInfo[species].frontPicYOffset;
|
||||
data->constSpriteValues.frontElevation = gSpeciesInfo[species].enemyMonElevation;
|
||||
data->constSpriteValues.backPicCoords = gSpeciesInfo[species].backPicYOffset;
|
||||
@ -735,11 +735,11 @@ static void ResetOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
|
||||
data->offsetsSpriteValues.offset_front_elevation = 0;
|
||||
}
|
||||
|
||||
static void ResetShadowSettings(struct PokemonSpriteVisualizer *data, u16 species)
|
||||
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);
|
||||
data->shadowSettings.definedX = gSpeciesInfo[species].enemyShadowXOffset;
|
||||
data->shadowSettings.definedY = gSpeciesInfo[species].enemyShadowYOffset;
|
||||
data->shadowSettings.definedSize = gSpeciesInfo[species].enemyShadowSize;
|
||||
@ -836,10 +836,10 @@ static void SpriteCB_Follower(struct Sprite *sprite)
|
||||
}
|
||||
}
|
||||
|
||||
static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data, u16 species)
|
||||
static void LoadAndCreateEnemyShadowSpriteCustom(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
bool8 invisible = FALSE;
|
||||
species = SanitizeSpeciesId(species);
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
|
||||
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
|
||||
{
|
||||
@ -1038,6 +1038,32 @@ static void UpdateBattleBg(u8 taskId, bool8 increment)
|
||||
LoadBattleBg(data->battleBgType, data->battleEnvironment);
|
||||
}
|
||||
|
||||
static void DrawFollowerSprite(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
if (!OW_POKEMON_OBJECT_EVENTS)
|
||||
return;
|
||||
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
u16 graphicsId = species + OBJ_EVENT_MON;
|
||||
if (data->isShiny)
|
||||
graphicsId += OBJ_EVENT_MON_SHINY;
|
||||
if (data->isFemale)
|
||||
graphicsId += OBJ_EVENT_MON_FEMALE;
|
||||
data->followerspriteId = CreateObjectGraphicsSprite(graphicsId,
|
||||
SpriteCB_Follower,
|
||||
VISUALIZER_FOLLOWER_X,
|
||||
VISUALIZER_FOLLOWER_Y,
|
||||
0);
|
||||
gSprites[data->followerspriteId].oam.priority = 0;
|
||||
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, data->isShiny, data->isFemale);
|
||||
gSprites[data->followerspriteId].oam.shape = graphicsInfo->oam->shape;
|
||||
gSprites[data->followerspriteId].oam.size = graphicsInfo->oam->size;
|
||||
gSprites[data->followerspriteId].images = graphicsInfo->images;
|
||||
gSprites[data->followerspriteId].anims = graphicsInfo->anims;
|
||||
gSprites[data->followerspriteId].subspriteTables = graphicsInfo->subspriteTables;
|
||||
}
|
||||
|
||||
// *******************************
|
||||
// Main functions
|
||||
static void UpdateMonAnimNames(u8 taskId)
|
||||
@ -1245,7 +1271,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
||||
SetStructPtr(taskId, data);
|
||||
|
||||
data->currentmonId = SPECIES_BULBASAUR;
|
||||
species = data->currentmonId;
|
||||
species = SanitizeSpeciesId(data->currentmonId);
|
||||
|
||||
//Print instructions
|
||||
PrintInstructionsOnWindow(data);
|
||||
@ -1255,8 +1281,6 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
||||
LoadSpritePaletteWithTag(palette, species);
|
||||
//Front
|
||||
HandleLoadSpecialPokePic(TRUE, gMonSpritesGfxPtr->spritesGfx[1], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY));
|
||||
data->isShiny = FALSE;
|
||||
data->isFemale = FALSE;
|
||||
BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 1);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, 1);
|
||||
gMultiuseSpriteTemplate.paletteTag = species;
|
||||
@ -1266,15 +1290,15 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
||||
gSprites[data->frontspriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[data->frontspriteId].oam.priority = 0;
|
||||
//Front Shadow
|
||||
LoadAndCreateEnemyShadowSpriteCustom(data, species);
|
||||
LoadAndCreateEnemyShadowSpriteCustom(data);
|
||||
|
||||
//Back
|
||||
HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->spritesGfx[2], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY));
|
||||
BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 4);
|
||||
BattleLoadOpponentMonSpriteGfxCustom(species, data->isFemale, data->isShiny, 5);
|
||||
SetMultiuseSpriteTemplateToPokemon(species, 2);
|
||||
offset_y = gSpeciesInfo[species].backPicYOffset;
|
||||
data->backspriteId = CreateSprite(&gMultiuseSpriteTemplate, VISUALIZER_MON_BACK_X, VISUALIZER_MON_BACK_Y + offset_y, 0);
|
||||
gSprites[data->backspriteId].oam.paletteNum = 4;
|
||||
gSprites[data->backspriteId].oam.paletteNum = 5;
|
||||
gSprites[data->backspriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[data->backspriteId].oam.priority = 0;
|
||||
|
||||
@ -1283,26 +1307,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
||||
gSprites[data->iconspriteId].oam.priority = 0;
|
||||
|
||||
//Follower Sprite
|
||||
u16 graphicsId = species + OBJ_EVENT_MON;
|
||||
if (data->isShiny)
|
||||
graphicsId += OBJ_EVENT_MON_SHINY;
|
||||
if (data->isFemale)
|
||||
graphicsId += OBJ_EVENT_MON_FEMALE;
|
||||
data->followerspriteId = CreateObjectGraphicsSprite(graphicsId,
|
||||
SpriteCB_Follower,
|
||||
VISUALIZER_FOLLOWER_X,
|
||||
VISUALIZER_FOLLOWER_Y,
|
||||
0);
|
||||
gSprites[data->followerspriteId].oam.priority = 0;
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, data->isShiny, data->isFemale);
|
||||
if (graphicsInfo != NULL)
|
||||
{
|
||||
gSprites[data->followerspriteId].oam.shape = graphicsInfo->oam->shape;
|
||||
gSprites[data->followerspriteId].oam.size = graphicsInfo->oam->size;
|
||||
gSprites[data->followerspriteId].images = graphicsInfo->images;
|
||||
gSprites[data->followerspriteId].anims = graphicsInfo->anims;
|
||||
gSprites[data->followerspriteId].subspriteTables = graphicsInfo->subspriteTables;
|
||||
}
|
||||
DrawFollowerSprite(data);
|
||||
|
||||
//Modify Arrows
|
||||
SetUpModifyArrows(data);
|
||||
@ -1316,7 +1321,7 @@ void CB2_Pokemon_Sprite_Visualizer(void)
|
||||
|
||||
//Anim names
|
||||
data->animIdBack = GetSpeciesBackAnimSet(species) + 1;
|
||||
data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId;
|
||||
data->animIdFront = gSpeciesInfo[species].frontAnimId;
|
||||
UpdateMonAnimNames(taskId);
|
||||
|
||||
//BattleNg Name
|
||||
@ -1386,7 +1391,7 @@ static void ResetBGs_PokemonSpriteVisualizer(u16 a)
|
||||
|
||||
static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
u16 species = data->currentmonId;
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
//Back
|
||||
gSprites[data->backspriteId].y = VISUALIZER_MON_BACK_Y + gSpeciesInfo[species].backPicYOffset + data->offsetsSpriteValues.offset_back_picCoords;
|
||||
//Front
|
||||
@ -1399,6 +1404,7 @@ static void ApplyOffsetSpriteValues(struct PokemonSpriteVisualizer *data)
|
||||
static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
|
||||
{
|
||||
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
u8 option = data->submenuYpos[1];
|
||||
|
||||
switch (option)
|
||||
@ -1441,15 +1447,15 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
|
||||
UpdateBattleBg(taskId, increment);
|
||||
break;
|
||||
case 3:
|
||||
if (GetSpeciesFormTable(data->currentmonId) != NULL)
|
||||
if (GetSpeciesFormTable(species) != NULL)
|
||||
{
|
||||
struct PokemonSpriteVisualizerModifyArrows *modArrows = &data->modifyArrows;
|
||||
u8 formId = GetFormIdFromFormSpeciesId(data->currentmonId);
|
||||
const u16 *formTable = GetSpeciesFormTable(data->currentmonId);
|
||||
u8 formId = GetFormIdFromFormSpeciesId(species);
|
||||
const u16 *formTable = GetSpeciesFormTable(species);
|
||||
if (increment)
|
||||
{
|
||||
if (formTable[formId + 1] != FORM_SPECIES_END)
|
||||
modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId + 1);
|
||||
modArrows->currValue = GetFormSpeciesId(species, formId + 1);
|
||||
else
|
||||
modArrows->currValue = formTable[0];
|
||||
}
|
||||
@ -1466,13 +1472,13 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
|
||||
modArrows->currValue = formTable[lastForm];
|
||||
}
|
||||
else
|
||||
modArrows->currValue = GetFormSpeciesId(data->currentmonId, formId - 1);
|
||||
modArrows->currValue = GetFormSpeciesId(species, formId - 1);
|
||||
}
|
||||
data->animIdBack = GetSpeciesBackAnimSet(modArrows->currValue) + 1;
|
||||
data->animIdFront = gSpeciesInfo[modArrows->currValue].frontAnimId;
|
||||
UpdateMonAnimNames(taskId);
|
||||
ResetOffsetSpriteValues(data);
|
||||
ResetShadowSettings(data, modArrows->currValue);
|
||||
ResetShadowSettings(data);
|
||||
|
||||
UpdateBattlerValue(data);
|
||||
ReloadPokemonSprites(data);
|
||||
@ -1488,7 +1494,7 @@ static void UpdateSubmenuOneOptionValue(u8 taskId, bool8 increment)
|
||||
static void UpdateSubmenuTwoOptionValue(u8 taskId, bool8 increment)
|
||||
{
|
||||
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
|
||||
u16 species = data->currentmonId;
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
u8 option = data->submenuYpos[2];
|
||||
s8 offset;
|
||||
u8 y;
|
||||
@ -1659,27 +1665,28 @@ static void Task_AnimateAfterDelay(u8 taskId)
|
||||
static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
{
|
||||
struct PokemonSpriteVisualizer *data = GetStructPtr(taskId);
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
struct Sprite *Frontsprite = &gSprites[data->frontspriteId];
|
||||
struct Sprite *Backsprite = &gSprites[data->backspriteId];
|
||||
|
||||
if (JOY_NEW(L_BUTTON) && (Backsprite->callback == SpriteCallbackDummy))
|
||||
{
|
||||
PlayCryInternal(data->currentmonId, 0, 120, 10, CRY_MODE_NORMAL);
|
||||
PlayCryInternal(species, 0, 120, 10, CRY_MODE_NORMAL);
|
||||
LaunchAnimationTaskForBackSprite(Backsprite, data->animIdBack-1);
|
||||
}
|
||||
if (JOY_NEW(R_BUTTON) && (Frontsprite->callback == SpriteCallbackDummy))
|
||||
{
|
||||
PlayCryInternal(data->currentmonId, 0, 120, 10, CRY_MODE_NORMAL);
|
||||
if (HasTwoFramesAnimation(data->currentmonId))
|
||||
PlayCryInternal(species, 0, 120, 10, CRY_MODE_NORMAL);
|
||||
if (HasTwoFramesAnimation(species))
|
||||
StartSpriteAnim(Frontsprite, 1);
|
||||
|
||||
if (gSpeciesInfo[data->currentmonId].frontAnimDelay != 0)
|
||||
if (gSpeciesInfo[species].frontAnimDelay != 0)
|
||||
{
|
||||
// Animation has delay, start delay task
|
||||
u8 taskId = CreateTask(Task_AnimateAfterDelay, 0);
|
||||
STORE_PTR_IN_TASK(Frontsprite, taskId, 0);
|
||||
gTasks[taskId].sAnimId = data->animIdFront;
|
||||
gTasks[taskId].sAnimDelay = gSpeciesInfo[data->currentmonId].frontAnimDelay;
|
||||
gTasks[taskId].sAnimDelay = gSpeciesInfo[species].frontAnimDelay;
|
||||
}
|
||||
else
|
||||
{
|
||||
@ -1698,7 +1705,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
ReloadPokemonSprites(data);
|
||||
ApplyOffsetSpriteValues(data);
|
||||
}
|
||||
if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifferences(data->currentmonId))
|
||||
if (JOY_NEW(SELECT_BUTTON) && SpeciesHasGenderDifferences(species))
|
||||
{
|
||||
data->isFemale = !data->isFemale;
|
||||
PrintDigitChars(data);
|
||||
@ -1729,10 +1736,10 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
data->isFemale = FALSE;
|
||||
PrintDigitChars(data);
|
||||
UpdateBattlerValue(data);
|
||||
ResetShadowSettings(data, data->currentmonId);
|
||||
ResetShadowSettings(data);
|
||||
ReloadPokemonSprites(data);
|
||||
data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1;
|
||||
data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId;
|
||||
data->animIdBack = GetSpeciesBackAnimSet(species) + 1;
|
||||
data->animIdFront = gSpeciesInfo[species].frontAnimId;
|
||||
UpdateMonAnimNames(taskId);
|
||||
ResetOffsetSpriteValues(data);
|
||||
}
|
||||
@ -1746,10 +1753,10 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
data->isFemale = FALSE;
|
||||
PrintDigitChars(data);
|
||||
UpdateBattlerValue(data);
|
||||
ResetShadowSettings(data, data->currentmonId);
|
||||
ResetShadowSettings(data);
|
||||
ReloadPokemonSprites(data);
|
||||
data->animIdBack = GetSpeciesBackAnimSet(data->currentmonId) + 1;
|
||||
data->animIdFront = gSpeciesInfo[data->currentmonId].frontAnimId;
|
||||
data->animIdBack = GetSpeciesBackAnimSet(species) + 1;
|
||||
data->animIdFront = gSpeciesInfo[species].frontAnimId;
|
||||
UpdateMonAnimNames(taskId);
|
||||
ResetOffsetSpriteValues(data);
|
||||
}
|
||||
@ -1786,7 +1793,8 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
SetConstSpriteValues(data);
|
||||
UpdateYPosOffsetText(data);
|
||||
|
||||
gSprites[data->followerspriteId].invisible = TRUE;
|
||||
if (data->followerspriteId != 0)
|
||||
gSprites[data->followerspriteId].invisible = TRUE;
|
||||
}
|
||||
else if (JOY_NEW(B_BUTTON))
|
||||
{
|
||||
@ -1805,7 +1813,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
data->submenuYpos[1] += 1;
|
||||
if (data->submenuYpos[1] >= 3)
|
||||
{
|
||||
if ((GetSpeciesFormTable(data->currentmonId) == NULL) || (data->submenuYpos[1] >= 4))
|
||||
if ((GetSpeciesFormTable(species) == NULL) || (data->submenuYpos[1] >= 4))
|
||||
data->submenuYpos[1] = 0;
|
||||
}
|
||||
data->optionArrows.currentDigit = data->submenuYpos[1];
|
||||
@ -1815,7 +1823,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
{
|
||||
if (data->submenuYpos[1] == 0)
|
||||
{
|
||||
if (GetSpeciesFormTable(data->currentmonId) != NULL)
|
||||
if (GetSpeciesFormTable(species) != NULL)
|
||||
data->submenuYpos[1] = 3;
|
||||
else
|
||||
data->submenuYpos[1] = 2;
|
||||
@ -1851,8 +1859,9 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
SetArrowInvisibility(data);
|
||||
PrintInstructionsOnWindow(data);
|
||||
UpdateMonAnimNames(taskId);
|
||||
|
||||
gSprites[data->followerspriteId].invisible = FALSE;
|
||||
|
||||
if (data->followerspriteId != 0)
|
||||
gSprites[data->followerspriteId].invisible = FALSE;
|
||||
}
|
||||
else if (JOY_NEW(DPAD_DOWN))
|
||||
{
|
||||
@ -1933,7 +1942,7 @@ static void HandleInput_PokemonSpriteVisualizer(u8 taskId)
|
||||
static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
|
||||
{
|
||||
const u16 *palette;
|
||||
u16 species = data->currentmonId;
|
||||
u16 species = SanitizeSpeciesId(data->currentmonId);
|
||||
s16 offset_y;
|
||||
u8 front_x = sBattlerCoords[0][1].x;
|
||||
u8 front_y;
|
||||
@ -1941,7 +1950,9 @@ static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
|
||||
DestroySprite(&gSprites[data->frontspriteId]);
|
||||
DestroySprite(&gSprites[data->backspriteId]);
|
||||
DestroySprite(&gSprites[data->iconspriteId]);
|
||||
DestroySprite(&gSprites[data->followerspriteId]);
|
||||
|
||||
if (data->followerspriteId != 0)
|
||||
DestroySprite(&gSprites[data->followerspriteId]);
|
||||
|
||||
DestroySprite(&gSprites[data->frontShadowSpriteIdPrimary]);
|
||||
if (B_ENEMY_MON_SHADOW_STYLE >= GEN_4 && P_GBA_STYLE_SPECIES_GFX == FALSE)
|
||||
@ -1974,7 +1985,7 @@ static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
|
||||
gSprites[data->frontspriteId].callback = SpriteCallbackDummy;
|
||||
gSprites[data->frontspriteId].oam.priority = 0;
|
||||
//Front Shadow
|
||||
LoadAndCreateEnemyShadowSpriteCustom(data, species);
|
||||
LoadAndCreateEnemyShadowSpriteCustom(data);
|
||||
|
||||
//Back
|
||||
HandleLoadSpecialPokePic(FALSE, gMonSpritesGfxPtr->spritesGfx[2], species, (data->isFemale ? FEMALE_PERSONALITY : MALE_PERSONALITY));
|
||||
@ -1991,26 +2002,7 @@ static void ReloadPokemonSprites(struct PokemonSpriteVisualizer *data)
|
||||
gSprites[data->iconspriteId].oam.priority = 0;
|
||||
|
||||
//Follower Sprite
|
||||
u16 graphicsId = species + OBJ_EVENT_MON;
|
||||
if (data->isShiny)
|
||||
graphicsId += OBJ_EVENT_MON_SHINY;
|
||||
if (data->isFemale)
|
||||
graphicsId += OBJ_EVENT_MON_FEMALE;
|
||||
data->followerspriteId = CreateObjectGraphicsSprite(graphicsId,
|
||||
SpriteCB_Follower,
|
||||
VISUALIZER_FOLLOWER_X,
|
||||
VISUALIZER_FOLLOWER_Y,
|
||||
0);
|
||||
gSprites[data->followerspriteId].oam.priority = 0;
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species, data->isShiny, data->isFemale);
|
||||
if (graphicsInfo != NULL)
|
||||
{
|
||||
gSprites[data->followerspriteId].oam.shape = graphicsInfo->oam->shape;
|
||||
gSprites[data->followerspriteId].oam.size = graphicsInfo->oam->size;
|
||||
gSprites[data->followerspriteId].images = graphicsInfo->images;
|
||||
gSprites[data->followerspriteId].anims = graphicsInfo->anims;
|
||||
gSprites[data->followerspriteId].subspriteTables = graphicsInfo->subspriteTables;
|
||||
}
|
||||
DrawFollowerSprite(data);
|
||||
|
||||
//Modify Arrows
|
||||
LoadSpritePalette(&gSpritePalette_Arrow);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user