Sync battle anim - mons

This commit is contained in:
GriffinR
2022-08-17 13:14:34 -04:00
parent 1711490e16
commit efa422d6fa
14 changed files with 386 additions and 271 deletions
+13 -13
View File
@@ -365,11 +365,11 @@ void TranslateSpriteInCircle(struct Sprite *sprite);
void TranslateSpriteInGrowingCircle(struct Sprite *sprite); void TranslateSpriteInGrowingCircle(struct Sprite *sprite);
void TranslateSpriteInEllipse(struct Sprite *sprite); void TranslateSpriteInEllipse(struct Sprite *sprite);
void WaitAnimForDuration(struct Sprite *sprite); void WaitAnimForDuration(struct Sprite *sprite);
void SetupLinearTranslationWithFixedDuration(struct Sprite *sprite); void ConvertPosDataToTranslateLinearData(struct Sprite *sprite);
void TranslateSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinear(struct Sprite *sprite);
void TranslateSpriteLinearFixedPoint(struct Sprite *sprite); void TranslateSpriteLinearFixedPoint(struct Sprite *sprite);
void TranslateMonSpriteLinear(struct Sprite *sprite); void TranslateSpriteLinearById(struct Sprite *sprite);
void TranslateMonSpriteLinearFixedPoint(struct Sprite *sprite); void TranslateSpriteLinearByIdFixedPoint(struct Sprite *sprite);
void TranslateSpriteLinearAndFlicker(struct Sprite *sprite); void TranslateSpriteLinearAndFlicker(struct Sprite *sprite);
void DestroySpriteAndMatrix(struct Sprite *sprite); void DestroySpriteAndMatrix(struct Sprite *sprite);
void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite); void RunStoredCallbackWhenAffineAnimEnds(struct Sprite *sprite);
@@ -398,7 +398,7 @@ void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src); void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
u8 GetBattleBgPaletteNum(void); u8 GetBattleBgPaletteNum(void);
void ToggleBg3Mode(bool8 arg0); void ToggleBg3Mode(bool8 arg0);
void StartSpriteLinearTranslationFromCurrentPos(struct Sprite *sprite); void TradeMenuBouncePartySprites(struct Sprite *sprite);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite); void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite); void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite); void StartAnimLinearTranslation(struct Sprite *sprite);
@@ -406,11 +406,11 @@ void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite); bool8 AnimTranslateLinear(struct Sprite *sprite);
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite); void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite); void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite);
void BattleAnim_InitAndRunLinearTranslationWithDuration(struct Sprite *sprite); void InitAnimLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite); void InitAndRunAnimFastLinearTranslation(struct Sprite *sprite);
bool8 AnimFastTranslateLinear(struct Sprite *sprite); bool8 AnimFastTranslateLinear(struct Sprite *sprite);
void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeed(struct Sprite *sprite);
void InitAndStartAnimFastLinearTranslationWithSpeed(struct Sprite *sprite); void InitAnimFastLinearTranslationWithSpeedAndPos(struct Sprite *sprite);
void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation); void SetSpriteRotScale(u8 spriteId, s16 xScale, s16 yScale, u16 rotation);
void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode); void PrepareBattlerSpriteForRotScale(u8 spriteId, u8 objMode);
void ResetSpriteRotScale(u8 spriteId); void ResetSpriteRotScale(u8 spriteId);
@@ -420,7 +420,7 @@ void TryResetSpriteAffineState(struct Sprite *sprite);
u16 ArcTan2Neg(s16 a, s16 b); u16 ArcTan2Neg(s16 a, s16 b);
void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor); void SetGreyscaleOrOriginalPalette(u16 paletteNum, bool8 restoreOriginalColor);
u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7); u32 GetBattlePalettesMask(bool8 battleBackground, bool8 attacker, bool8 target, bool8 attackerPartner, bool8 targetPartner, bool8 a6, bool8 a7);
u32 SelectBattlerSpritePalettes(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight); u32 GetBattleMonSpritePalettesMask(bool8 playerLeft, bool8 playerRight, bool8 foeLeft, bool8 foeRight);
u8 GetSpritePalIdxByBattler(u8 a1); u8 GetSpritePalIdxByBattler(u8 a1);
void AnimSpriteOnMonPos(struct Sprite *sprite); void AnimSpriteOnMonPos(struct Sprite *sprite);
void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite); void TranslateAnimSpriteToTargetMonLocation(struct Sprite *sprite);
@@ -440,7 +440,7 @@ void *LoadPointerFromVars(s16 lo, s16 hi);
void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration); void BattleAnimHelper_SetSpriteSquashParams(struct Task *task, u8 spriteId, s16 xScale0, s16 yScale0, s16 xScale1, s16 yScale1, u16 duration);
u8 BattleAnimHelper_RunSpriteSquash(struct Task *task); u8 BattleAnimHelper_RunSpriteSquash(struct Task *task);
void AnimTask_GetFrustrationPowerLevel(u8 taskId); void AnimTask_GetFrustrationPowerLevel(u8 taskId);
void ResetSpritePriorityOfAllVisibleBattlers(void); void InitPrioritiesForVisibleBattlers(void);
u8 GetBattlerSpriteSubpriority(u8 battlerId); u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battlerId); u8 GetBattlerSpriteBGPriority(u8 battlerId);
@@ -451,12 +451,12 @@ u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templat
void DestroySpriteAndFreeResources_(struct Sprite *sprite); void DestroySpriteAndFreeResources_(struct Sprite *sprite);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr); s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y); void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
u8 CreateCloneOfSpriteInWindowMode(s32 battlerId, u8 spriteId, s32 species); u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species);
void SpriteCB_AnimTranslateSpriteLinearAndFlicker(struct Sprite *sprite); void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void SpriteCB_AnimTranslateSpriteLinearAndFlicker2(struct Sprite *sprite); void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
void SpriteCB_TrackOffsetFromAttackerAndWaitAnim(struct Sprite *sprite); void AnimSpinningSparkle(struct Sprite *sprite);
void AnimTask_AttackerPunchWithTrace(u8 taskId); void AnimTask_AttackerPunchWithTrace(u8 taskId);
void SpriteCB_WeatherBallUp(struct Sprite *sprite); void AnimWeatherBallUp(struct Sprite *sprite);
void AnimWeatherBallDown(struct Sprite *sprite); void AnimWeatherBallDown(struct Sprite *sprite);
// battle_anim_mon_movement.c // battle_anim_mon_movement.c
+4
View File
@@ -14,6 +14,10 @@ struct MonCoords
u8 y_offset; u8 y_offset;
}; };
#define MON_COORDS_SIZE(width, height)(DIV_ROUND_UP(width, 8) << 4 | DIV_ROUND_UP(height, 8))
#define GET_MON_COORDS_WIDTH(size)((size >> 4) * 8)
#define GET_MON_COORDS_HEIGHT(size)((size & 0xF) * 8)
extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1]; extern const u8 gSpeciesNames[][POKEMON_NAME_LENGTH + 1];
extern const u8 gMoveNames[][13]; extern const u8 gMoveNames[][13];
extern const u16 gUnknown_8251CB8[]; extern const u16 gUnknown_8251CB8[];
+1 -1
View File
@@ -78,7 +78,7 @@ void sub_80716F8(const u16 *src, u16 *dst, u16 count, u8 a4);
void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7); void sub_80717A8(u32 a1, s8 a2, u8 a3, u8 a4, u16 a5, u8 a6, u8 a7);
bool32 sub_807185C(u8 var); bool32 sub_807185C(u8 var);
void sub_8071898(void); void sub_8071898(void);
void ResetPaletteStructByUid(u16 a1); void PaletteStruct_ResetById(u16 a1);
void ResetPaletteStruct(u8 paletteNum); void ResetPaletteStruct(u8 paletteNum);
#endif // GUARD_PALETTE_H #endif // GUARD_PALETTE_H
+2 -2
View File
@@ -1823,7 +1823,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{ {
s32 i; s32 i;
ResetSpritePriorityOfAllVisibleBattlers(); InitPrioritiesForVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(0); UpdateOamPriorityInAllHealthboxes(0);
for (i = 0; i < MAX_BATTLERS_COUNT; i++) for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{ {
@@ -2128,7 +2128,7 @@ static void ScriptCmd_end(void)
if (!continuousAnim) if (!continuousAnim)
{ {
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256); m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
ResetSpritePriorityOfAllVisibleBattlers(); InitPrioritiesForVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(1); UpdateOamPriorityInAllHealthboxes(1);
gAnimScriptActive = FALSE; gAnimScriptActive = FALSE;
} }
+1 -1
View File
@@ -802,7 +802,7 @@ void AnimTask_MetallicShine(u8 taskId)
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBg); GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap); AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset); AnimLoadCompressedBgGfx(animBg.bgId, gMetalShineGfx, animBg.tilesOffset);
+3 -3
View File
@@ -4418,7 +4418,7 @@ static void AnimBowMon_Step1(struct Sprite* sprite)
sprite->data[2] = 0; sprite->data[2] = 0;
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback); StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback);
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
} }
static void AnimBowMon_Step1_Callback(struct Sprite* sprite) static void AnimBowMon_Step1_Callback(struct Sprite* sprite)
@@ -4448,7 +4448,7 @@ static void AnimBowMon_Step2(struct Sprite* sprite)
sprite->data[2] = 0; sprite->data[2] = 0;
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4); StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4);
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
} }
static void AnimBowMon_Step3(struct Sprite* sprite) static void AnimBowMon_Step3(struct Sprite* sprite)
@@ -4996,7 +4996,7 @@ void AnimTask_FadeScreenBlue(u8 taskId)
gTasks[taskId].data[7] = 13; gTasks[taskId].data[7] = 13;
gTasks[taskId].data[8] = 14; gTasks[taskId].data[8] = 14;
gTasks[taskId].data[9] = 15; gTasks[taskId].data[9] = 15;
b = SelectBattlerSpritePalettes(1, 1, 1, 1); b = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
c = a | b; c = a | b;
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c); StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c);
b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON)); b = b | (0x10000 << IndexOfSpritePaletteTag(ANIM_TAG_MOON));
+1 -1
View File
@@ -1747,7 +1747,7 @@ void AnimCoinThrow(struct Sprite *sprite)
sprite->data[0] = gBattleAnimArgs[4]; sprite->data[0] = gBattleAnimArgs[4];
sprite->data[2] = r6; sprite->data[2] = r6;
sprite->data[4] = r7; sprite->data[4] = r7;
sprite->callback = BattleAnim_InitAndRunLinearTranslationWithDuration; sprite->callback = InitAnimLinearTranslationWithSpeedAndPos;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
+3 -3
View File
@@ -531,7 +531,7 @@ static void AnimUnusedIceCrystalThrow(struct Sprite *sprite)
sprite->data[2] = gBattleAnimArgs[2] + targetX; sprite->data[2] = gBattleAnimArgs[2] + targetX;
sprite->data[3] = gBattleAnimArgs[1] + attackerY; sprite->data[3] = gBattleAnimArgs[1] + attackerY;
sprite->data[4] = gBattleAnimArgs[3] + targetY; sprite->data[4] = gBattleAnimArgs[3] + targetY;
SetupLinearTranslationWithFixedDuration(sprite); ConvertPosDataToTranslateLinearData(sprite);
// won't match with while loop // won't match with while loop
for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32); for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32);
targetX += sprite->data[1], targetY += sprite->data[2]) targetX += sprite->data[1], targetY += sprite->data[2])
@@ -548,7 +548,7 @@ static void AnimUnusedIceCrystalThrow(struct Sprite *sprite)
sprite->data[2] = targetX; sprite->data[2] = targetX;
sprite->data[3] = attackerY; sprite->data[3] = attackerY;
sprite->data[4] = targetY; sprite->data[4] = targetY;
SetupLinearTranslationWithFixedDuration(sprite); ConvertPosDataToTranslateLinearData(sprite);
sprite->data[3] = gBattleAnimArgs[5]; sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6]; sprite->data[4] = gBattleAnimArgs[6];
sprite->callback = AnimUnusedIceCrystalThrow_Step; sprite->callback = AnimUnusedIceCrystalThrow_Step;
@@ -686,7 +686,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
sprite->x2 = sprite->y2 = 0; sprite->x2 = sprite->y2 = 0;
for (i = 0; i < 8; ++i) for (i = 0; i < 8; ++i)
sprite->data[i] = tempDataHolder[i]; sprite->data[i] = tempDataHolder[i];
sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed; sprite->callback = InitAnimFastLinearTranslationWithSpeedAndPos;
StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1); StoreSpriteCallbackInData6(sprite, AnimSwirlingSnowball_Step1);
} }
+6 -6
View File
@@ -397,14 +397,14 @@ static void DoHorizontalLunge(struct Sprite *sprite)
sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker]; sprite->data[3] = gBattlerSpriteIds[gBattleAnimAttacker];
sprite->data[4] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[0];
StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection); StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection);
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
} }
static void ReverseHorizontalLungeDirection(struct Sprite *sprite) static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
{ {
sprite->data[0] = sprite->data[4]; sprite->data[0] = sprite->data[4];
sprite->data[1] = -sprite->data[1]; sprite->data[1] = -sprite->data[1];
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
@@ -424,14 +424,14 @@ static void DoVerticalDip(struct Sprite *sprite)
sprite->data[3] = spriteId; sprite->data[3] = spriteId;
sprite->data[4] = gBattleAnimArgs[0]; sprite->data[4] = gBattleAnimArgs[0];
StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection); StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection);
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
} }
static void ReverseVerticalDipDirection(struct Sprite *sprite) static void ReverseVerticalDipDirection(struct Sprite *sprite)
{ {
sprite->data[0] = sprite->data[4]; sprite->data[0] = sprite->data[4];
sprite->data[2] = -sprite->data[2]; sprite->data[2] = -sprite->data[2];
sprite->callback = TranslateMonSpriteLinear; sprite->callback = TranslateSpriteLinearById;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
} }
@@ -523,7 +523,7 @@ static void SlideMonToOffset(struct Sprite *sprite)
sprite->data[5] = monSpriteId; sprite->data[5] = monSpriteId;
sprite->invisible = TRUE; sprite->invisible = TRUE;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = TranslateMonSpriteLinearFixedPoint; sprite->callback = TranslateSpriteLinearByIdFixedPoint;
} }
static void SlideMonToOffsetAndBack(struct Sprite *sprite) static void SlideMonToOffsetAndBack(struct Sprite *sprite)
@@ -556,7 +556,7 @@ static void SlideMonToOffsetAndBack(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite); StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
else else
StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End); StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End);
sprite->callback = TranslateMonSpriteLinearFixedPoint; sprite->callback = TranslateSpriteLinearByIdFixedPoint;
} }
static void SlideMonToOffsetAndBack_End(struct Sprite *sprite) static void SlideMonToOffsetAndBack_End(struct Sprite *sprite)
+335 -224
View File
File diff suppressed because it is too large Load Diff
+7 -7
View File
@@ -43,7 +43,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF3F8 =
.anims = sSpriteAnimTable_83BF3F4, .anims = sSpriteAnimTable_83BF3F4,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, .callback = AnimTranslateLinearAndFlicker,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF410 = const struct SpriteTemplate gSpriteTemplate_83BF410 =
@@ -54,7 +54,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
.anims = sSpriteAnimTable_83BF3F4, .anims = sSpriteAnimTable_83BF3F4,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, .callback = AnimTranslateLinearAndFlicker_Flipped,
}; };
static const union AnimCmd sUnknown_83BF428[] = static const union AnimCmd sUnknown_83BF428[] =
@@ -76,7 +76,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
.anims = sSpriteAnimTable_83BF430, .anims = sSpriteAnimTable_83BF430,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_WeatherBallUp, .callback = AnimWeatherBallUp,
}; };
const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate = const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
@@ -113,7 +113,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
.anims = sSpriteAnimTable_83BF47C, .anims = sSpriteAnimTable_83BF47C,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim, .callback = AnimSpinningSparkle,
}; };
const struct SpriteTemplate gSpriteTemplate_83BF498 = const struct SpriteTemplate gSpriteTemplate_83BF498 =
@@ -124,7 +124,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.anims = gDummySpriteAnimTable, .anims = gDummySpriteAnimTable,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, .callback = AnimTranslateLinearAndFlicker,
}; };
static const union AnimCmd sUnknown_83BF4B0[] = static const union AnimCmd sUnknown_83BF4B0[] =
@@ -160,7 +160,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
.anims = sSpriteAniimTable_83BF4C8, .anims = sSpriteAniimTable_83BF4C8,
.images = NULL, .images = NULL,
.affineAnims = gDummySpriteAffineAnimTable, .affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2, .callback = AnimTranslateLinearAndFlicker,
}; };
static const union AnimCmd sUnknown_83BF4EC[] = static const union AnimCmd sUnknown_83BF4EC[] =
@@ -194,7 +194,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.anims = sSpriteAnimTable_83BF4F4, .anims = sSpriteAnimTable_83BF4F4,
.images = NULL, .images = NULL,
.affineAnims = sSpriteAffineAnimTable_83BF510, .affineAnims = sSpriteAffineAnimTable_83BF510,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker, .callback = AnimTranslateLinearAndFlicker_Flipped,
}; };
static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました"); static const u8 sUnknown_83BF52C[] = _("TASK OVER\nタスクがオ-バ-しました");
+7 -7
View File
@@ -54,7 +54,7 @@ void AnimTask_BlendSelected(u8 taskId)
{ {
u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]); u32 selectedPalettes = UnpackSelectedBattleAnimPalettes(gBattleAnimArgs[0]);
selectedPalettes |= SelectBattlerSpritePalettes( selectedPalettes |= GetBattleMonSpritePalettesMask(
(gBattleAnimArgs[0] >> 7) & 1, (gBattleAnimArgs[0] >> 7) & 1,
(gBattleAnimArgs[0] >> 8) & 1, (gBattleAnimArgs[0] >> 8) & 1,
(gBattleAnimArgs[0] >> 9) & 1, (gBattleAnimArgs[0] >> 9) & 1,
@@ -330,7 +330,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER); spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species); newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap); AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest()) if (IsContest())
@@ -446,11 +446,11 @@ static void StatsChangeAnimation_Step2(u8 taskId)
u8 battlerSpriteId; u8 battlerSpriteId;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1]; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species); spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3]) if (sAnimStatsChangeData->data[3])
{ {
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2]; battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species); newSpriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
} }
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0) if (sAnimStatsChangeData->data[0] == 0)
@@ -580,7 +580,7 @@ static void StatsChangeAnimation_Step3(u8 taskId)
void AnimTask_Flash(u8 taskId) void AnimTask_Flash(u8 taskId)
{ {
u32 selectedPalettes = SelectBattlerSpritePalettes(1, 1, 1, 1); u32 selectedPalettes = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
sub_80BB790(selectedPalettes, 0); sub_80BB790(selectedPalettes, 0);
gTasks[taskId].data[14] = selectedPalettes >> 16; gTasks[taskId].data[14] = selectedPalettes >> 16;
@@ -753,9 +753,9 @@ void StartMonScrollingBgMask(u8 taskId, s32 unused, u16 arg2, u8 battler1, u8 ar
species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
else else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES); species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species); spriteId = CreateInvisibleSpriteCopy(battler1, gBattlerSpriteIds[battler1], species);
if (arg4) if (arg4)
newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species); newSpriteId = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species);
GetBattleAnimBg1Data(&animBgData); GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap); AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest()) if (IsContest())
+2 -2
View File
@@ -319,7 +319,7 @@ static void sub_80709B4(struct PaletteStruct *a1)
return; return;
if (val > 2) if (val > 2)
return; return;
ResetPaletteStructByUid(a1->base->uid); PaletteStruct_ResetById(a1->base->uid);
} }
} }
else else
@@ -328,7 +328,7 @@ static void sub_80709B4(struct PaletteStruct *a1)
} }
} }
void ResetPaletteStructByUid(u16 a1) void PaletteStruct_ResetById(u16 a1)
{ {
u8 paletteNum = GetPaletteNumByUid(a1); u8 paletteNum = GetPaletteNumByUid(a1);
if (paletteNum != 16) if (paletteNum != 16)
+1 -1
View File
@@ -2140,7 +2140,7 @@ static void HandleRedrawTradeMenuOnSide(u8 side)
gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12; gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]].data[4] = (sTradeMonSpriteCoords[whichParty * PARTY_SIZE][1] * 8) - 12;
StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon); StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon);
sTradeMenuResourcesPtr->menuRedrawState[side]++; sTradeMenuResourcesPtr->menuRedrawState[side]++;
StartSpriteLinearTranslationFromCurrentPos(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]); TradeMenuBouncePartySprites(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]]);
CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, side * 15, 0, 15, 17, 0); CopyToBgTilemapBufferRect_ChangePalette(1, sTradePartyBoxTilemap, side * 15, 0, 15, 17, 0);
CopyBgTilemapBufferToVram(1); CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0); CopyBgTilemapBufferToVram(0);