Slightly increase headless test speed by modifying animations (#8299)
This commit is contained in:
parent
867b45a6f3
commit
e5e99317d0
@ -14,6 +14,7 @@
|
||||
#include "sound.h"
|
||||
#include "sprite.h"
|
||||
#include "task.h"
|
||||
#include "test_runner.h"
|
||||
#include "trig.h"
|
||||
#include "util.h"
|
||||
#include "data.h"
|
||||
@ -2435,7 +2436,7 @@ void TryShinyAnimation(u8 battler, struct Pokemon *mon)
|
||||
if (illusionMon != NULL)
|
||||
mon = illusionMon;
|
||||
|
||||
if (IsBattlerSpriteVisible(battler) && IsValidForBattle(mon))
|
||||
if (IsBattlerSpriteVisible(battler) && IsValidForBattle(mon) && !gTestRunnerHeadless)
|
||||
{
|
||||
if (isShiny)
|
||||
{
|
||||
@ -2768,4 +2769,3 @@ static void CB_CriticalCaptureThrownBallMovement(struct Sprite *sprite)
|
||||
sprite->callback = SpriteCB_Ball_Bounce_Step;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -2578,7 +2578,7 @@ void BtlController_HandleStatusAnimation(u32 battler)
|
||||
|
||||
void BtlController_HandleHitAnimation(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[battler]].invisible == TRUE)
|
||||
if (gSprites[gBattlerSpriteIds[battler]].invisible == TRUE || gTestRunnerHeadless)
|
||||
{
|
||||
BtlController_Complete(battler);
|
||||
}
|
||||
@ -2593,6 +2593,11 @@ void BtlController_HandleHitAnimation(u32 battler)
|
||||
|
||||
void BtlController_HandlePlaySE(u32 battler)
|
||||
{
|
||||
if (gTestRunnerHeadless)
|
||||
{
|
||||
BtlController_Complete(battler);
|
||||
return;
|
||||
}
|
||||
s32 pan = IsOnPlayerSide(battler) ? SOUND_PAN_ATTACKER : SOUND_PAN_TARGET;
|
||||
|
||||
PlaySE12WithPanning(gBattleResources->bufferA[battler][1] | (gBattleResources->bufferA[battler][2] << 8), pan);
|
||||
@ -2601,6 +2606,11 @@ void BtlController_HandlePlaySE(u32 battler)
|
||||
|
||||
void BtlController_HandlePlayFanfareOrBGM(u32 battler)
|
||||
{
|
||||
if (gTestRunnerHeadless)
|
||||
{
|
||||
BtlController_Complete(battler);
|
||||
return;
|
||||
}
|
||||
if (gBattleResources->bufferA[battler][3])
|
||||
{
|
||||
BattleStopLowHpSound();
|
||||
@ -2867,7 +2877,7 @@ void AnimateMonAfterPokeBallFail(u32 battler)
|
||||
{
|
||||
if (B_ANIMATE_MON_AFTER_FAILED_POKEBALL == FALSE)
|
||||
return;
|
||||
|
||||
|
||||
LaunchKOAnimation(battler, ReturnAnimIdForBattler(TRUE, battler), TRUE);
|
||||
TryShinyAnimation(gBattlerTarget, GetBattlerMon(gBattlerTarget));
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@
|
||||
#include "sprite.h"
|
||||
#include "task.h"
|
||||
#include "trig.h"
|
||||
#include "test_runner.h"
|
||||
#include "util.h"
|
||||
#include "data.h"
|
||||
#include "item.h"
|
||||
@ -597,8 +598,8 @@ static void Task_DoPokeballSendOutAnim(u8 taskId)
|
||||
{
|
||||
u32 throwCaseId, ballId, battler, ballSpriteId;
|
||||
bool32 notSendOut = FALSE;
|
||||
u32 throwXoffset = (B_ENEMY_THROW_BALLS >= GEN_6) ? 24 : 0;
|
||||
s32 throwYoffset = (B_ENEMY_THROW_BALLS >= GEN_6) ? -16 : 24;
|
||||
u32 throwXoffset = (B_ENEMY_THROW_BALLS >= GEN_6 && !gTestRunnerHeadless) ? 24 : 0;
|
||||
s32 throwYoffset = (B_ENEMY_THROW_BALLS >= GEN_6 && !gTestRunnerHeadless) ? -16 : 24;
|
||||
|
||||
if (gTasks[taskId].tFrames == 0)
|
||||
{
|
||||
@ -675,7 +676,7 @@ static inline void DoPokeballSendOutSoundEffect(u32 battler)
|
||||
|
||||
static inline void *GetOpponentMonSendOutCallback(void)
|
||||
{
|
||||
return (B_ENEMY_THROW_BALLS >= GEN_6) ? SpriteCB_MonSendOut_1 : SpriteCB_OpponentMonSendOut;
|
||||
return (B_ENEMY_THROW_BALLS >= GEN_6 && !gTestRunnerHeadless) ? SpriteCB_MonSendOut_1 : SpriteCB_OpponentMonSendOut;
|
||||
}
|
||||
|
||||
// This sequence of functions is very similar to those that get run when
|
||||
@ -1205,7 +1206,7 @@ static void SpriteCB_MonSendOut_2(struct Sprite *sprite)
|
||||
u32 r7;
|
||||
bool32 rightPosition = (IsBattlerPlayer(sprite->sBattler)) ? B_POSITION_PLAYER_RIGHT : B_POSITION_OPPONENT_RIGHT;
|
||||
|
||||
if (HIBYTE(sprite->data[7]) >= 35 && HIBYTE(sprite->data[7]) < 80)
|
||||
if (HIBYTE(sprite->data[7]) >= 35 && HIBYTE(sprite->data[7]) < 80 && !gTestRunnerHeadless)
|
||||
{
|
||||
s16 r4;
|
||||
|
||||
@ -1246,7 +1247,8 @@ static void SpriteCB_MonSendOut_2(struct Sprite *sprite)
|
||||
sprite->data[0] = 0;
|
||||
|
||||
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive
|
||||
&& sprite->sBattler == GetBattlerAtPosition(rightPosition))
|
||||
&& sprite->sBattler == GetBattlerAtPosition(rightPosition)
|
||||
&& !gTestRunnerHeadless)
|
||||
sprite->callback = SpriteCB_ReleaseMon2FromBall;
|
||||
else
|
||||
sprite->callback = SpriteCB_ReleaseMonFromBall;
|
||||
@ -1269,12 +1271,15 @@ static void SpriteCB_ReleaseMon2FromBall(struct Sprite *sprite)
|
||||
|
||||
static void SpriteCB_OpponentMonSendOut(struct Sprite *sprite)
|
||||
{
|
||||
if (gTestRunnerHeadless)
|
||||
sprite->data[0] = 15;
|
||||
sprite->data[0]++;
|
||||
if (sprite->data[0] > 15)
|
||||
{
|
||||
sprite->data[0] = 0;
|
||||
if (IsDoubleBattle() && gBattleSpritesDataPtr->animationData->introAnimActive
|
||||
&& sprite->sBattler == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT))
|
||||
&& sprite->sBattler == GetBattlerAtPosition(B_POSITION_OPPONENT_RIGHT)
|
||||
&& !gTestRunnerHeadless)
|
||||
sprite->callback = SpriteCB_ReleaseMon2FromBall;
|
||||
else
|
||||
sprite->callback = SpriteCB_ReleaseMonFromBall;
|
||||
@ -1534,7 +1539,7 @@ void StartHealthboxSlideIn(u8 battler)
|
||||
healthboxSprite->y2 = -healthboxSprite->y2;
|
||||
}
|
||||
gSprites[healthboxSprite->data[5]].callback(&gSprites[healthboxSprite->data[5]]);
|
||||
if (GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT)
|
||||
if (GetBattlerPosition(battler) == B_POSITION_PLAYER_RIGHT && !gTestRunnerHeadless)
|
||||
healthboxSprite->callback = SpriteCB_HealthboxSlideInDelayed;
|
||||
}
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user