expansion sync: battle_anim_mons

This commit is contained in:
cawtds
2025-01-20 23:18:09 +01:00
parent eff1a51333
commit 45964aa4fb
10 changed files with 642 additions and 402 deletions

View File

@@ -265,6 +265,8 @@ void AnimPsychoBoost(struct Sprite *sprite);
// battle_anim_smokescreen.c
u8 SmokescreenImpact(s16 x, s16 y, bool8 persist);
u8 GetBattlerSpriteFinal_Y(u8, u16, u8);
extern const struct OamData gOamData_AffineOff_ObjNormal_8x8;
extern const struct OamData gOamData_AffineOff_ObjNormal_16x16;
extern const struct OamData gOamData_AffineOff_ObjNormal_32x32;
@@ -530,17 +532,16 @@ bool8 IsBattlerSpritePresent(u8 battlerId);
void GetBattleAnimBg1Data(struct BattleAnimBgData *animBgData);
void GetBattleAnimBgData(struct BattleAnimBgData *animBgData, u32 bgId);
void GetBgDataForTransform(struct BattleAnimBgData *animBgData, u8 unused);
void InitBattleAnimBg(u32 bgId);
void ClearBattleAnimBg(u32 bgId);
void AnimLoadCompressedBgGfx(u32 bgId, const u32 *src, u32 tilesOffset);
void InitAnimBgTilemapBuffer(u32 bgId, const void *src);
void AnimLoadCompressedBgTilemap(u32 bgId, const u32 *src);
void AnimLoadCompressedBgTilemap(u32 bgId, const void *src);
u8 GetBattleBgPaletteNum(void);
void UpdateAnimBg3ScreenSize(bool8 arg0);
void Trade_MoveSelectedMonToTarget(struct Sprite *sprite);
void InitSpriteDataForLinearTranslation(struct Sprite *sprite);
void InitAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation(struct Sprite *sprite);
void PlayerThrowBall_StartAnimLinearTranslation(struct Sprite *sprite);
void StartAnimLinearTranslation_SetCornerVecX(struct Sprite *sprite);
bool8 AnimTranslateLinear(struct Sprite *sprite);
void AnimTranslateLinear_WithFollowup(struct Sprite *sprite);
void InitAnimLinearTranslationWithSpeed(struct Sprite *sprite);
@@ -578,11 +579,11 @@ void InitPrioritiesForVisibleBattlers(void);
u8 GetBattlerSpriteSubpriority(u8 battlerId);
u8 GetBattlerSpriteBGPriority(u8 battlerId);
u8 GetBattlerSpriteBGPriorityRank(u8 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 templateId, s16 x, s16 y, u8 subpriority, u32 personality, bool32 isShiny, u32 battlerId);
u8 CreateAdditionalMonSpriteForMoveAnim(u16 species, bool8 isBackpic, u8 id, s16 x, s16 y, u8 subpriority, u32 personality, bool8 isShiny, u32 battlerId);
void DestroySpriteAndFreeResources_(struct Sprite *sprite);
s16 GetBattlerSpriteCoordAttr(u8 battlerId, u8 attr);
void SetAverageBattlerPositions(u8 battlerId, bool8 respectMonPicOffsets, s16 *x, s16 *y);
u8 CreateInvisibleSpriteCopy(s32 battlerId, u8 spriteId, s32 species);
u8 CreateInvisibleSpriteCopy(int, u8, int);
void AnimTranslateLinearAndFlicker_Flipped(struct Sprite *sprite);
void AnimTranslateLinearAndFlicker(struct Sprite *sprite);
void AnimSpinningSparkle(struct Sprite *sprite);

View File

@@ -79,7 +79,7 @@ void EndBounceEffect(u8 battler, u8 which);
void SpriteCB_PlayerMonFromBall(struct Sprite *sprite);
void SpriteCB_PlayerMonSlideIn(struct Sprite *sprite);
void SpriteCB_PlayerThrowInit(struct Sprite *sprite);
void UpdatePlayerPosInThrowAnim(struct Sprite *sprite);
void AnimSetCenterToCornerVecX(struct Sprite *sprite);
void BeginBattleIntroDummy(void);
void BeginBattleIntro(void);
void SwitchInClearSetData(u32 battler);

View File

@@ -1117,13 +1117,13 @@ void ResetBattleAnimBg(bool8 to_BG2)
if (!to_BG2)
{
InitBattleAnimBg(1);
ClearBattleAnimBg(1);
gBattle_BG1_X = 0;
gBattle_BG1_Y = 0;
}
else
{
InitBattleAnimBg(2);
ClearBattleAnimBg(2);
gBattle_BG2_X = 0;
gBattle_BG2_Y = 0;
}

View File

@@ -1541,7 +1541,7 @@ static void AnimTask_GhostGetOut_Step3(u8 taskId)
SetAnimBgAttribute(2, BG_ANIM_PRIORITY, 2);
break;
case 3:
InitBattleAnimBg(2);
ClearBattleAnimBg(2);
FillPalette(RGB_BLACK, BG_PLTT_ID(9), PLTT_SIZE_4BPP);
SetAnimBgAttribute(2, BG_ANIM_CHAR_BASE_BLOCK, 0);
task->data[1] = 12;

File diff suppressed because it is too large Load Diff

View File

@@ -582,7 +582,7 @@ static void AnimTask_LoadSandstormBackground_Step(u8 taskId)
break;
case 3:
GetBattleAnimBg1Data(&animBg);
InitBattleAnimBg(animBg.bgId);
ClearBattleAnimBg(animBg.bgId);
++gTasks[taskId].data[12];
break;
case 4:

View File

@@ -383,7 +383,7 @@ static void AnimTask_DrawFallingWhiteLinesOnAttacker_Step(u8 taskId)
sprite = &gSprites[gTasks[taskId].data[0]];
DestroySprite(sprite);
GetBattleAnimBg1Data(&animBgData);
InitBattleAnimBg(animBgData.bgId);
ClearBattleAnimBg(animBgData.bgId);
if (gTasks[taskId].data[6] == 1)
++gSprites[gBattlerSpriteIds[BATTLE_PARTNER(gBattleAnimAttacker)]].oam.priority;
gBattle_BG1_Y = 0;

View File

@@ -1139,8 +1139,8 @@ static void AnimTask_CreateSurfWave_Step2(u8 taskId)
u16 *BGptrY = &gBattle_BG1_Y;
if (gTasks[taskId].data[0] == 0)
{
InitBattleAnimBg(1);
InitBattleAnimBg(2);
ClearBattleAnimBg(1);
ClearBattleAnimBg(2);
gTasks[taskId].data[0]++;
}
else

View File

@@ -2390,7 +2390,7 @@ static void PlayerHandleOneReturnValue_Duplicate(u32 battler)
static void PlayerHandleIntroTrainerBallThrow(u32 battler)
{
const u32 *trainerPal = gTrainerBacksprites[gSaveBlock2Ptr->playerGender].palette.data;
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox, PlayerThrowBall_StartAnimLinearTranslation);
BtlController_HandleIntroTrainerBallThrow(battler, 0xD6F8, trainerPal, 31, Intro_TryShinyAnimShowHealthbox, StartAnimLinearTranslation_SetCornerVecX);
}
static void PlayerHandleDrawPartyStatusSummary(u32 battler)

View File

@@ -2538,7 +2538,7 @@ void SpriteCB_PlayerMonSlideIn(struct Sprite *sprite)
static void SpriteCB_TrainerThrowObject_Main(struct Sprite *sprite)
{
UpdatePlayerPosInThrowAnim(sprite);
AnimSetCenterToCornerVecX(sprite);
if (sprite->animEnded)
sprite->callback = SpriteCB_Idle;
}
@@ -2551,7 +2551,7 @@ void SpriteCB_PlayerThrowInit(struct Sprite *sprite)
sprite->callback = SpriteCB_TrainerThrowObject_Main;
}
void UpdatePlayerPosInThrowAnim(struct Sprite *sprite)
void AnimSetCenterToCornerVecX(struct Sprite *sprite)
{
if (sprite->animDelayCounter == 0)
sprite->centerToCornerVecX = sCenterToCornerVecXs[sprite->animCmdIndex];