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
+2 -2
View File
@@ -1823,7 +1823,7 @@ void LaunchBattleAnimation(const u8 *const animsTable[], u16 tableId, bool8 isMo
{
s32 i;
ResetSpritePriorityOfAllVisibleBattlers();
InitPrioritiesForVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(0);
for (i = 0; i < MAX_BATTLERS_COUNT; i++)
{
@@ -2128,7 +2128,7 @@ static void ScriptCmd_end(void)
if (!continuousAnim)
{
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 256);
ResetSpritePriorityOfAllVisibleBattlers();
InitPrioritiesForVisibleBattlers();
UpdateOamPriorityInAllHealthboxes(1);
gAnimScriptActive = FALSE;
}
+1 -1
View File
@@ -802,7 +802,7 @@ void AnimTask_MetallicShine(u8 taskId)
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBg);
AnimLoadCompressedBgTilemap(animBg.bgId, gMetalShineTilemap);
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[3] = gBattlerSpriteIds[gBattleAnimAttacker];
StoreSpriteCallbackInData6(sprite, AnimBowMon_Step1_Callback);
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
}
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[3] = gBattlerSpriteIds[gBattleAnimAttacker];
StoreSpriteCallbackInData6(sprite, AnimBowMon_Step4);
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
}
static void AnimBowMon_Step3(struct Sprite* sprite)
@@ -4996,7 +4996,7 @@ void AnimTask_FadeScreenBlue(u8 taskId)
gTasks[taskId].data[7] = 13;
gTasks[taskId].data[8] = 14;
gTasks[taskId].data[9] = 15;
b = SelectBattlerSpritePalettes(1, 1, 1, 1);
b = GetBattleMonSpritePalettesMask(1, 1, 1, 1);
c = a | b;
StorePointerInVars(&gTasks[taskId].data[14], &gTasks[taskId].data[15], (void *)c);
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[2] = r6;
sprite->data[4] = r7;
sprite->callback = BattleAnim_InitAndRunLinearTranslationWithDuration;
sprite->callback = InitAnimLinearTranslationWithSpeedAndPos;
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[3] = gBattleAnimArgs[1] + attackerY;
sprite->data[4] = gBattleAnimArgs[3] + targetY;
SetupLinearTranslationWithFixedDuration(sprite);
ConvertPosDataToTranslateLinearData(sprite);
// won't match with while loop
for (; (targetX >= -32 && targetX <= DISPLAY_WIDTH + 32) && (targetY >= -32 && targetY <= DISPLAY_HEIGHT + 32);
targetX += sprite->data[1], targetY += sprite->data[2])
@@ -548,7 +548,7 @@ static void AnimUnusedIceCrystalThrow(struct Sprite *sprite)
sprite->data[2] = targetX;
sprite->data[3] = attackerY;
sprite->data[4] = targetY;
SetupLinearTranslationWithFixedDuration(sprite);
ConvertPosDataToTranslateLinearData(sprite);
sprite->data[3] = gBattleAnimArgs[5];
sprite->data[4] = gBattleAnimArgs[6];
sprite->callback = AnimUnusedIceCrystalThrow_Step;
@@ -686,7 +686,7 @@ static void AnimSwirlingSnowball(struct Sprite *sprite)
sprite->x2 = sprite->y2 = 0;
for (i = 0; i < 8; ++i)
sprite->data[i] = tempDataHolder[i];
sprite->callback = InitAndStartAnimFastLinearTranslationWithSpeed;
sprite->callback = InitAnimFastLinearTranslationWithSpeedAndPos;
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[4] = gBattleAnimArgs[0];
StoreSpriteCallbackInData6(sprite, ReverseHorizontalLungeDirection);
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
}
static void ReverseHorizontalLungeDirection(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[1] = -sprite->data[1];
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@@ -424,14 +424,14 @@ static void DoVerticalDip(struct Sprite *sprite)
sprite->data[3] = spriteId;
sprite->data[4] = gBattleAnimArgs[0];
StoreSpriteCallbackInData6(sprite, ReverseVerticalDipDirection);
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
}
static void ReverseVerticalDipDirection(struct Sprite *sprite)
{
sprite->data[0] = sprite->data[4];
sprite->data[2] = -sprite->data[2];
sprite->callback = TranslateMonSpriteLinear;
sprite->callback = TranslateSpriteLinearById;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
}
@@ -523,7 +523,7 @@ static void SlideMonToOffset(struct Sprite *sprite)
sprite->data[5] = monSpriteId;
sprite->invisible = TRUE;
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
sprite->callback = TranslateMonSpriteLinearFixedPoint;
sprite->callback = TranslateSpriteLinearByIdFixedPoint;
}
static void SlideMonToOffsetAndBack(struct Sprite *sprite)
@@ -556,7 +556,7 @@ static void SlideMonToOffsetAndBack(struct Sprite *sprite)
StoreSpriteCallbackInData6(sprite, DestroyAnimSprite);
else
StoreSpriteCallbackInData6(sprite, SlideMonToOffsetAndBack_End);
sprite->callback = TranslateMonSpriteLinearFixedPoint;
sprite->callback = TranslateSpriteLinearByIdFixedPoint;
}
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,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
.callback = AnimTranslateLinearAndFlicker,
};
const struct SpriteTemplate gSpriteTemplate_83BF410 =
@@ -54,7 +54,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF410 =
.anims = sSpriteAnimTable_83BF3F4,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
.callback = AnimTranslateLinearAndFlicker_Flipped,
};
static const union AnimCmd sUnknown_83BF428[] =
@@ -76,7 +76,7 @@ const struct SpriteTemplate gWeatherBallUpSpriteTemplate =
.anims = sSpriteAnimTable_83BF430,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_WeatherBallUp,
.callback = AnimWeatherBallUp,
};
const struct SpriteTemplate gWeatherBallNormalDownSpriteTemplate =
@@ -113,7 +113,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF480 =
.anims = sSpriteAnimTable_83BF47C,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_TrackOffsetFromAttackerAndWaitAnim,
.callback = AnimSpinningSparkle,
};
const struct SpriteTemplate gSpriteTemplate_83BF498 =
@@ -124,7 +124,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF498 =
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
.callback = AnimTranslateLinearAndFlicker,
};
static const union AnimCmd sUnknown_83BF4B0[] =
@@ -160,7 +160,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF4D4 =
.anims = sSpriteAniimTable_83BF4C8,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker2,
.callback = AnimTranslateLinearAndFlicker,
};
static const union AnimCmd sUnknown_83BF4EC[] =
@@ -194,7 +194,7 @@ const struct SpriteTemplate gSpriteTemplate_83BF514 =
.anims = sSpriteAnimTable_83BF4F4,
.images = NULL,
.affineAnims = sSpriteAffineAnimTable_83BF510,
.callback = SpriteCB_AnimTranslateSpriteLinearAndFlicker,
.callback = AnimTranslateLinearAndFlicker_Flipped,
};
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]);
selectedPalettes |= SelectBattlerSpritePalettes(
selectedPalettes |= GetBattleMonSpritePalettesMask(
(gBattleAnimArgs[0] >> 7) & 1,
(gBattleAnimArgs[0] >> 8) & 1,
(gBattleAnimArgs[0] >> 9) & 1,
@@ -330,7 +330,7 @@ void AnimTask_SetUpCurseBackground(u8 taskId)
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gBattleAnimAttacker]], MON_DATA_SPECIES);
spriteId = GetAnimBattlerSpriteId(ANIM_ATTACKER);
newSpriteId = CreateCloneOfSpriteInWindowMode(gBattleAnimAttacker, spriteId, species);
newSpriteId = CreateInvisibleSpriteCopy(gBattleAnimAttacker, spriteId, species);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, gFile_graphics_battle_anims_masks_curse_tilemap);
if (IsContest())
@@ -446,11 +446,11 @@ static void StatsChangeAnimation_Step2(u8 taskId)
u8 battlerSpriteId;
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler1];
spriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
spriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler1, battlerSpriteId, sAnimStatsChangeData->species);
if (sAnimStatsChangeData->data[3])
{
battlerSpriteId = gBattlerSpriteIds[sAnimStatsChangeData->battler2];
newSpriteId = CreateCloneOfSpriteInWindowMode(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
newSpriteId = CreateInvisibleSpriteCopy(sAnimStatsChangeData->battler2, battlerSpriteId, sAnimStatsChangeData->species);
}
GetBattleAnimBg1Data(&animBgData);
if (sAnimStatsChangeData->data[0] == 0)
@@ -580,7 +580,7 @@ static void StatsChangeAnimation_Step3(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);
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);
else
species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[battler1]], MON_DATA_SPECIES);
spriteId = CreateCloneOfSpriteInWindowMode(battler1, gBattlerSpriteIds[battler1], species);
spriteId = CreateInvisibleSpriteCopy(battler1, gBattlerSpriteIds[battler1], species);
if (arg4)
newSpriteId = CreateCloneOfSpriteInWindowMode(battler2, gBattlerSpriteIds[battler2], species);
newSpriteId = CreateInvisibleSpriteCopy(battler2, gBattlerSpriteIds[battler2], species);
GetBattleAnimBg1Data(&animBgData);
AnimLoadCompressedBgTilemap(animBgData.bgId, tilemap);
if (IsContest())
+2 -2
View File
@@ -319,7 +319,7 @@ static void sub_80709B4(struct PaletteStruct *a1)
return;
if (val > 2)
return;
ResetPaletteStructByUid(a1->base->uid);
PaletteStruct_ResetById(a1->base->uid);
}
}
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);
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;
StoreSpriteCallbackInData6(&gSprites[sTradeMenuResourcesPtr->partyIcons[0][partyIdx + (whichParty * PARTY_SIZE)]], SpriteCB_MonIcon);
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);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(0);