Made (most) field effects use dynamic palettes.
This commit is contained in:
parent
4ba4fa2172
commit
66dd1aecf9
7 changed files with 58 additions and 149 deletions
|
@ -607,7 +607,7 @@ u8 CreateSpriteAt(u8 index, const struct SpriteTemplate *template, s16 x, s16 y,
|
|||
if (sprite->oam.affineMode & ST_OAM_AFFINE_ON_MASK)
|
||||
InitSpriteAffineAnim(sprite);
|
||||
|
||||
if (template->paletteTag != 0xFFFF)
|
||||
if (template->paletteTag != 0xFFFF) // TODO: Load sprite palette if tag not present
|
||||
sprite->oam.paletteNum = IndexOfSpritePaletteTag(template->paletteTag);
|
||||
|
||||
return index;
|
||||
|
|
|
@ -106,7 +106,7 @@ u8 SpawnSpecialObjectEventParameterized(u8 graphicsId, u8 movementBehavior, u8 l
|
|||
u8 SpawnSpecialObjectEvent(struct ObjectEventTemplate *);
|
||||
void SetSpritePosToMapCoords(s16, s16, s16 *, s16 *);
|
||||
void CameraObjectReset1(void);
|
||||
u8 UpdateSpritePalette(struct SpritePalette *, struct Sprite *);
|
||||
u8 UpdateSpritePalette(const struct SpritePalette *, struct Sprite *);
|
||||
void ObjectEventSetGraphicsId(struct ObjectEvent *, u8 graphicsId);
|
||||
void ObjectEventTurn(struct ObjectEvent *, u8);
|
||||
void ObjectEventTurnByLocalIdAndMap(u8, u8, u8, u8);
|
||||
|
|
|
@ -28,45 +28,13 @@ static const struct SpriteFrameImage sPicTable_ShadowExtraLarge[] = {
|
|||
obj_frame_tiles(gFieldEffectObjectPic_ShadowExtraLarge),
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_8x8,
|
||||
.anims = sAnimTable_Shadow,
|
||||
.images = sPicTable_ShadowSmall,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateShadowFieldEffect,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowSmall = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_8x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowSmall, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_16x8,
|
||||
.anims = sAnimTable_Shadow,
|
||||
.images = sPicTable_ShadowMedium,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateShadowFieldEffect,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowMedium = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_16x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowMedium, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_32x8,
|
||||
.anims = sAnimTable_Shadow,
|
||||
.images = sPicTable_ShadowLarge,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateShadowFieldEffect,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowLarge = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_32x8, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_64x32,
|
||||
.anims = sAnimTable_Shadow,
|
||||
.images = sPicTable_ShadowExtraLarge,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateShadowFieldEffect,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_ShadowExtraLarge = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_64x32, gFieldEffectObjectImageAnimTable_Shadow, gFieldEffectObjectPicTable_ShadowExtraLarge, gDummySpriteAffineAnimTable, UpdateShadowFieldEffect};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_TallGrass[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_TallGrass, 2, 2, 0),
|
||||
|
@ -208,15 +176,7 @@ static const union AnimCmd *const sAnimTable_SurfBlob[] =
|
|||
sSurfBlobAnim_FaceEast,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_32x32,
|
||||
.anims = sAnimTable_SurfBlob,
|
||||
.images = sPicTable_SurfBlob,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = UpdateSurfBlobFieldEffect,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_SurfBlob = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_32x32, gFieldEffectObjectImageAnimTable_SurfBlob, gFieldEffectObjectPicTable_SurfBlob, gDummySpriteAffineAnimTable, UpdateSurfBlobFieldEffect};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_Arrow[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_Arrow, 2, 2, 0),
|
||||
|
@ -265,15 +225,7 @@ static const union AnimCmd *const sAnimTable_Arrow[] =
|
|||
sArrowAnim_East,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.anims = sAnimTable_Arrow,
|
||||
.images = sPicTable_Arrow,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Arrow = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_16x16, gFieldEffectObjectImageAnimTable_Arrow, gFieldEffectObjectPicTable_Arrow, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_GroundImpactDust[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_GroundImpactDust, 2, 1, 0),
|
||||
|
@ -1062,15 +1014,7 @@ static const union AnimCmd *const sAnimTable_Bird[] =
|
|||
sAnim_Bird,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = 0xFFFF,
|
||||
.oam = &gObjectEventBaseOam_32x32,
|
||||
.anims = sAnimTable_Bird,
|
||||
.images = sPicTable_Bird,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCallbackDummy,
|
||||
};
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_Bird = {0xFFFF, OBJ_EVENT_PAL_TAG_MAY, &gObjectEventBaseOam_32x32, gFieldEffectObjectImageAnimTable_Bird, gFieldEffectObjectPicTable_Bird, gDummySpriteAffineAnimTable, SpriteCallbackDummy};
|
||||
|
||||
static const struct SpriteFrameImage sPicTable_ShortGrass[] = {
|
||||
overworld_frame(gFieldEffectObjectPic_ShortGrass, 2, 2, 0),
|
||||
|
@ -1147,14 +1091,14 @@ static const union AnimCmd *const sAnimTable_AshPuff[] =
|
|||
sAnim_AshPuff,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff =
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_AshPuff =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = FLDEFF_PAL_TAG_ASH,
|
||||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.anims = sAnimTable_AshPuff,
|
||||
.images = sPicTable_AshPuff,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = FLDEFF_PAL_TAG_ASH,
|
||||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.anims = sAnimTable_AshPuff,
|
||||
.images = sPicTable_AshPuff,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_AshPuff
|
||||
};
|
||||
|
||||
|
@ -1183,14 +1127,14 @@ static const union AnimCmd *const sAnimTable_AshLaunch[] =
|
|||
sAnim_AshLaunch,
|
||||
};
|
||||
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch =
|
||||
const struct SpriteTemplate gFieldEffectObjectTemplate_AshLaunch =
|
||||
{
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = FLDEFF_PAL_TAG_ASH,
|
||||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.anims = sAnimTable_AshLaunch,
|
||||
.images = sPicTable_AshLaunch,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.tileTag = 0xFFFF,
|
||||
.paletteTag = FLDEFF_PAL_TAG_ASH,
|
||||
.oam = &gObjectEventBaseOam_16x16,
|
||||
.anims = sAnimTable_AshLaunch,
|
||||
.images = sPicTable_AshLaunch,
|
||||
.affineAnims = gDummySpriteAffineAnimTable,
|
||||
.callback = SpriteCB_AshLaunch
|
||||
};
|
||||
|
||||
|
|
|
@ -140,6 +140,7 @@ static bool8 AnimateSpriteInFigure8(struct Sprite *sprite);
|
|||
static void UpdateObjectEventSprite(struct Sprite *);
|
||||
static void UpdateObjectEventSpriteSubpriorityAndVisibility(struct Sprite *);
|
||||
u8 GetDirectionToFace(s16 x1, s16 y1, s16 x2, s16 y2);
|
||||
static void ObjectEventSetGraphics(struct ObjectEvent *, const struct ObjectEventGraphicsInfo *);
|
||||
|
||||
const u8 gReflectionEffectPaletteMap[] = {1, 1, 6, 7, 8, 9, 6, 7, 8, 9, 11, 11, 0, 0, 0, 0};
|
||||
|
||||
|
@ -1642,27 +1643,9 @@ static const struct ObjectEventGraphicsInfo * SpeciesToGraphicsInfo(u16 species)
|
|||
|
||||
// Set graphics & sprite for a follower object event by species TODO: Refactoring
|
||||
static void FollowerSetGraphics(struct ObjectEvent *objectEvent, u16 species) {
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = SpeciesToGraphicsInfo(species);
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
u16 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag1);
|
||||
u8 paletteNum = UpdateSpritePalette((struct SpritePalette *)&sObjectEventSpritePalettes[i], sprite);
|
||||
sprite->oam.paletteNum = paletteNum;
|
||||
sprite->oam.shape = graphicsInfo->oam->shape;
|
||||
sprite->oam.size = graphicsInfo->oam->size;
|
||||
sprite->images = graphicsInfo->images;
|
||||
sprite->anims = graphicsInfo->anims;
|
||||
sprite->subspriteTables = graphicsInfo->subspriteTables;
|
||||
objectEvent->inanimate = graphicsInfo->inanimate;
|
||||
objectEvent->graphicsId = OBJ_EVENT_GFX_FOLLOWER;
|
||||
SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
|
||||
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
|
||||
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
|
||||
sprite->pos1.x += 8;
|
||||
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
|
||||
if (objectEvent->trackedByCamera)
|
||||
{
|
||||
CameraObjectReset1();
|
||||
}
|
||||
ObjectEventSetGraphics(objectEvent, SpeciesToGraphicsInfo(species));
|
||||
objectEvent->graphicsId = OBJ_EVENT_GFX_FOLLOWER;
|
||||
}
|
||||
|
||||
void UpdateFollowingPokemon(void) { // Update following pokemon if any
|
||||
|
@ -1699,7 +1682,7 @@ static bool8 IsFollowerVisible(void) { // Determine whether follower *should* be
|
|||
return !TestPlayerAvatarFlags(PLAYER_AVATAR_FLAG_SURFING | PLAYER_AVATAR_FLAG_ACRO_BIKE | PLAYER_AVATAR_FLAG_MACH_BIKE);
|
||||
}
|
||||
|
||||
bool8 ScrFunc_getfolloweraction(struct ScriptContext *ctx)
|
||||
bool8 ScrFunc_getfolloweraction(struct ScriptContext *ctx) // Essentially a big switch for follower messages
|
||||
{
|
||||
u16 value;
|
||||
u16 species;
|
||||
|
@ -1900,7 +1883,8 @@ static void SetPlayerAvatarObjectEventIdAndObjectId(u8 objectEventId, u8 spriteI
|
|||
}
|
||||
|
||||
// Update sprite's palette, freeing old palette if necessary
|
||||
u8 UpdateSpritePalette(struct SpritePalette * spritePalette, struct Sprite * sprite) {
|
||||
// TODO: Should this be in sprite.c?
|
||||
u8 UpdateSpritePalette(const struct SpritePalette * spritePalette, struct Sprite * sprite) {
|
||||
u8 paletteNum = sprite->oam.paletteNum;
|
||||
// Free palette if otherwise unused
|
||||
sprite->inUse = FALSE;
|
||||
|
@ -1914,37 +1898,33 @@ u8 UpdateSpritePalette(struct SpritePalette * spritePalette, struct Sprite * spr
|
|||
return paletteNum;
|
||||
}
|
||||
|
||||
// Set graphics *by info*
|
||||
static void ObjectEventSetGraphics(struct ObjectEvent *objectEvent, const struct ObjectEventGraphicsInfo *graphicsInfo) {
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
u16 i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag1); // TODO: What if this fails?
|
||||
UpdateSpritePalette(&sObjectEventSpritePalettes[i], sprite);
|
||||
sprite->oam.shape = graphicsInfo->oam->shape;
|
||||
sprite->oam.size = graphicsInfo->oam->size;
|
||||
sprite->images = graphicsInfo->images;
|
||||
sprite->anims = graphicsInfo->anims;
|
||||
sprite->subspriteTables = graphicsInfo->subspriteTables;
|
||||
objectEvent->inanimate = graphicsInfo->inanimate;
|
||||
SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
|
||||
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
|
||||
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
|
||||
sprite->pos1.x += 8;
|
||||
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
|
||||
if (objectEvent->trackedByCamera)
|
||||
{
|
||||
CameraObjectReset1();
|
||||
}
|
||||
}
|
||||
|
||||
void ObjectEventSetGraphicsId(struct ObjectEvent *objectEvent, u8 graphicsId)
|
||||
{
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
u16 i;
|
||||
u8 paletteNum;
|
||||
|
||||
if (graphicsInfo->paletteSlot == 0 && FALSE) { // Hack until I can fix this
|
||||
PatchObjectPalette(graphicsInfo->paletteTag1, graphicsInfo->paletteSlot);
|
||||
paletteNum = 0;
|
||||
} else {
|
||||
i = FindObjectEventPaletteIndexByTag(graphicsInfo->paletteTag1);
|
||||
paletteNum = UpdateSpritePalette((struct SpritePalette *)&sObjectEventSpritePalettes[i], sprite);
|
||||
}
|
||||
sprite->oam.paletteNum = paletteNum;
|
||||
sprite->oam.shape = graphicsInfo->oam->shape;
|
||||
sprite->oam.size = graphicsInfo->oam->size;
|
||||
sprite->images = graphicsInfo->images;
|
||||
sprite->anims = graphicsInfo->anims;
|
||||
sprite->subspriteTables = graphicsInfo->subspriteTables;
|
||||
objectEvent->inanimate = graphicsInfo->inanimate;
|
||||
objectEvent->graphicsId = graphicsId;
|
||||
SetSpritePosToMapCoords(objectEvent->currentCoords.x, objectEvent->currentCoords.y, &sprite->pos1.x, &sprite->pos1.y);
|
||||
sprite->centerToCornerVecX = -(graphicsInfo->width >> 1);
|
||||
sprite->centerToCornerVecY = -(graphicsInfo->height >> 1);
|
||||
sprite->pos1.x += 8;
|
||||
sprite->pos1.y += 16 + sprite->centerToCornerVecY;
|
||||
if (objectEvent->trackedByCamera)
|
||||
{
|
||||
CameraObjectReset1();
|
||||
}
|
||||
ObjectEventSetGraphics(objectEvent, GetObjectEventGraphicsInfo(graphicsId));
|
||||
objectEvent->graphicsId = graphicsId;
|
||||
}
|
||||
|
||||
void ObjectEventSetGraphicsIdByLocalIdAndMap(u8 localId, u8 mapNum, u8 mapGroup, u8 graphicsId)
|
||||
|
@ -1986,19 +1966,7 @@ static void SetBerryTreeGraphics(struct ObjectEvent *objectEvent, u8 berryId, u8
|
|||
const u8 graphicsId = gBerryTreeObjectEventGraphicsIdTablePointers[berryId][berryStage];
|
||||
const struct ObjectEventGraphicsInfo *graphicsInfo = GetObjectEventGraphicsInfo(graphicsId);
|
||||
struct Sprite *sprite = &gSprites[objectEvent->spriteId];
|
||||
u8 paletteNum = sprite->oam.paletteNum;
|
||||
u16 paletteTag = sObjectEventSpritePalettes[gBerryTreePaletteSlotTablePointers[berryId][berryStage]-2].tag;
|
||||
u16 i;
|
||||
// Free old palette if otherwise unused
|
||||
sprite->inUse = FALSE;
|
||||
FieldEffectFreePaletteIfUnused(paletteNum);
|
||||
sprite->inUse = TRUE;
|
||||
i = FindObjectEventPaletteIndexByTag(paletteTag);
|
||||
paletteNum = IndexOfSpritePaletteTag(sObjectEventSpritePalettes[i].tag);
|
||||
if (paletteNum == 0xFF) { // Load palette
|
||||
paletteNum = LoadSpritePalette(&sObjectEventSpritePalettes[i]);
|
||||
}
|
||||
sprite->oam.paletteNum = paletteNum;
|
||||
UpdateSpritePalette(&sObjectEventSpritePalettes[gBerryTreePaletteSlotTablePointers[berryId][berryStage]-2], sprite);
|
||||
sprite->oam.shape = graphicsInfo->oam->shape;
|
||||
sprite->oam.size = graphicsInfo->oam->size;
|
||||
sprite->images = gBerryTreePicTablePointers[berryId];
|
||||
|
|
|
@ -3071,7 +3071,7 @@ u8 FldEff_RayquazaSpotlight(void)
|
|||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
|
||||
sprite->oam.priority = 1;
|
||||
sprite->oam.paletteNum = 4;
|
||||
sprite->oam.paletteNum = 4; // TODO: What palette should this Raquaza use?
|
||||
sprite->data[0] = 0;
|
||||
sprite->data[1] = 0;
|
||||
sprite->data[2] = 0;
|
||||
|
@ -3106,7 +3106,6 @@ u8 FldEff_NPCFlyOut(void)
|
|||
u8 spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0x78, 0, 1);
|
||||
struct Sprite *sprite = &gSprites[spriteId];
|
||||
|
||||
sprite->oam.paletteNum = 0;
|
||||
sprite->oam.priority = 1;
|
||||
sprite->callback = SpriteCB_NPCFlyOut;
|
||||
sprite->data[1] = gFieldEffectArguments[0];
|
||||
|
@ -3288,7 +3287,6 @@ static u8 CreateFlyBirdSprite(void)
|
|||
struct Sprite *sprite;
|
||||
spriteId = CreateSprite(gFieldEffectObjectTemplatePointers[FLDEFFOBJ_BIRD], 0xff, 0xb4, 0x1);
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->oam.paletteNum = 0;
|
||||
sprite->oam.priority = 1;
|
||||
sprite->callback = SpriteCB_FlyBirdLeaveBall;
|
||||
return spriteId;
|
||||
|
|
|
@ -994,7 +994,6 @@ u32 FldEff_SurfBlob(void)
|
|||
{
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->coordOffsetEnabled = TRUE;
|
||||
sprite->oam.paletteNum = 0;
|
||||
sprite->data[2] = gFieldEffectArguments[2];
|
||||
sprite->data[3] = -1;
|
||||
sprite->data[6] = -1;
|
||||
|
@ -1262,7 +1261,7 @@ u32 FldEff_BerryTreeGrowthSparkle(void)
|
|||
sprite = &gSprites[spriteId];
|
||||
sprite->coordOffsetEnabled = TRUE;
|
||||
sprite->oam.priority = gFieldEffectArguments[3];
|
||||
sprite->oam.paletteNum = 5;
|
||||
sprite->oam.paletteNum = 5; // TODO: What paletteTag does this use?
|
||||
sprite->data[0] = FLDEFF_BERRY_TREE_GROWTH_SPARKLE;
|
||||
}
|
||||
return 0;
|
||||
|
@ -1298,7 +1297,7 @@ static u32 ShowDisguiseFieldEffect(u8 fldEff, u8 fldEffObj, u8 paletteNum)
|
|||
{
|
||||
sprite = &gSprites[spriteId];
|
||||
sprite->coordOffsetEnabled ++;
|
||||
sprite->oam.paletteNum = paletteNum;
|
||||
sprite->oam.paletteNum = paletteNum; // TODO: Fix paletteNum
|
||||
sprite->data[1] = fldEff;
|
||||
sprite->data[2] = gFieldEffectArguments[0];
|
||||
sprite->data[3] = gFieldEffectArguments[1];
|
||||
|
|
|
@ -1025,7 +1025,7 @@ void DoSecretBaseGlitterMatSparkle(void)
|
|||
{
|
||||
gSprites[spriteId].coordOffsetEnabled = TRUE;
|
||||
gSprites[spriteId].oam.priority = 1;
|
||||
gSprites[spriteId].oam.paletteNum = 5;
|
||||
gSprites[spriteId].oam.paletteNum = 5; // TODO: What palette should this use?
|
||||
gSprites[spriteId].callback = SpriteCB_GlitterMatSparkle;
|
||||
gSprites[spriteId].data[0] = 0;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue