mirror of
https://github.com/pret/pokefirered.git
synced 2026-10-01 05:20:00 -05:00
refactoring: prep for removing gActiveBattler
This commit is contained in:
@@ -982,7 +982,7 @@ extern u8 gBattlerPositions[MAX_BATTLERS_COUNT];
|
||||
extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
|
||||
extern u8 gBattleOutcome;
|
||||
extern u8 gBattleMonForms[MAX_BATTLERS_COUNT];
|
||||
extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
|
||||
extern void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler);
|
||||
extern u32 gBattleControllerExecFlags;
|
||||
extern u8 gBattleBufferA[MAX_BATTLERS_COUNT][0x200];
|
||||
extern u8 gBattleBufferB[MAX_BATTLERS_COUNT][0x200];
|
||||
|
||||
@@ -252,8 +252,8 @@ void BtlController_EmitResetActionMoveSelection(u32 bufferId, u8 caseId);
|
||||
void BtlController_EmitEndLinkBattle(u32 bufferId, u8 battleOutcome);
|
||||
|
||||
// player controller
|
||||
void BattleControllerDummy(void);
|
||||
void SetControllerToPlayer(void);
|
||||
void BattleControllerDummy(u32 battler);
|
||||
void SetControllerToPlayer(u32 battler);
|
||||
void PlayerHandleGetRawMonData(u32 battler);
|
||||
void SpriteCB_FreePlayerSpriteLoadMonSprite(struct Sprite *sprite);
|
||||
void SetCB2ToReshowScreenAfterMenu(void);
|
||||
@@ -261,25 +261,25 @@ void SetCB2ToReshowScreenAfterMenu2(void);
|
||||
void Task_PlayerController_RestoreBgmAfterCry(u8 taskId);
|
||||
void ActionSelectionCreateCursorAt(u8 cursorPos, u8 unused);
|
||||
void ActionSelectionDestroyCursorAt(u8 cursorPos);
|
||||
void InitMoveSelectionsVarsAndStrings(void);
|
||||
void SetBattleEndCallbacks(void);
|
||||
void InitMoveSelectionsVarsAndStrings(u32 battler);
|
||||
void SetBattleEndCallbacks(u32 battler);
|
||||
void MoveSelectionCreateCursorAt(u8 cursorPos, u8 arg1);
|
||||
void MoveSelectionDestroyCursorAt(u8 cursorPos);
|
||||
void HandleInputChooseMove(void);
|
||||
void HandleInputChooseMove(u32 battler);
|
||||
|
||||
// opponent controller
|
||||
void SetControllerToOpponent(void);
|
||||
void OpponentBufferExecCompleted(void);
|
||||
void SetControllerToOpponent(u32 battler);
|
||||
void OpponentBufferExecCompleted(u32 battler);
|
||||
|
||||
// safari controller
|
||||
void SetControllerToSafari(void);
|
||||
void SetControllerToSafari(u32 battler);
|
||||
|
||||
// pokedude controller
|
||||
void SetControllerToPokedude(void);
|
||||
void SetControllerToPokedude(u32 battler);
|
||||
void InitPokedudePartyAndOpponent(void);
|
||||
|
||||
// oak and old man controller
|
||||
void SetControllerToOakOrOldMan(void);
|
||||
void SetControllerToOakOrOldMan(u32 battler);
|
||||
|
||||
// These flags are set to signal that the indicated message
|
||||
// was already emitted
|
||||
@@ -295,17 +295,17 @@ void SetControllerToOakOrOldMan(void);
|
||||
|
||||
bool8 BtlCtrl_OakOldMan_TestState2Flag(u8 mask);
|
||||
void BtlCtrl_OakOldMan_SetState2Flag(u8 mask);
|
||||
void PrintOakText_InflictingDamageIsKey(void);
|
||||
void PrintOakText_HowDisappointing(void);
|
||||
void PrintOakText_OakNoRunningFromATrainer(void);
|
||||
void OakOldManHandleInputChooseMove(void);
|
||||
void PrintOakText_InflictingDamageIsKey(u32 battler);
|
||||
void PrintOakText_HowDisappointing(u32 battler);
|
||||
void PrintOakText_OakNoRunningFromATrainer(u32 battler);
|
||||
void OakOldManHandleInputChooseMove(u32 battler);
|
||||
void BtlCtrl_DrawVoiceoverMessageFrame(void);
|
||||
void BtlCtrl_RemoveVoiceoverMessageFrame(void);
|
||||
|
||||
// link opponent controller
|
||||
void SetControllerToLinkOpponent(void);
|
||||
void SetControllerToLinkOpponent(u32 battler);
|
||||
|
||||
// link partner controller
|
||||
void SetControllerToLinkPartner(void);
|
||||
void SetControllerToLinkPartner(u32 battler);
|
||||
|
||||
#endif // GUARD_BATTLE_CONTROLLERS_H
|
||||
|
||||
@@ -16,77 +16,77 @@
|
||||
#include "constants/sound.h"
|
||||
#include "constants/trainers.h"
|
||||
|
||||
static void LinkOpponentHandleGetMonData(void);
|
||||
static void LinkOpponentHandleGetRawMonData(void);
|
||||
static void LinkOpponentHandleSetMonData(void);
|
||||
static void LinkOpponentHandleSetRawMonData(void);
|
||||
static void LinkOpponentHandleLoadMonSprite(void);
|
||||
static void LinkOpponentHandleSwitchInAnim(void);
|
||||
static void LinkOpponentHandleReturnMonToBall(void);
|
||||
static void LinkOpponentHandleDrawTrainerPic(void);
|
||||
static void LinkOpponentHandleTrainerSlide(void);
|
||||
static void LinkOpponentHandleTrainerSlideBack(void);
|
||||
static void LinkOpponentHandleFaintAnimation(void);
|
||||
static void LinkOpponentHandlePaletteFade(void);
|
||||
static void LinkOpponentHandleSuccessBallThrowAnim(void);
|
||||
static void LinkOpponentHandleBallThrowAnim(void);
|
||||
static void LinkOpponentHandlePause(void);
|
||||
static void LinkOpponentHandleMoveAnimation(void);
|
||||
static void LinkOpponentHandlePrintString(void);
|
||||
static void LinkOpponentHandlePrintSelectionString(void);
|
||||
static void LinkOpponentHandleChooseAction(void);
|
||||
static void LinkOpponentHandleUnknownYesNoBox(void);
|
||||
static void LinkOpponentHandleChooseMove(void);
|
||||
static void LinkOpponentHandleChooseItem(void);
|
||||
static void LinkOpponentHandleChoosePokemon(void);
|
||||
static void LinkOpponentHandleCmd23(void);
|
||||
static void LinkOpponentHandleHealthBarUpdate(void);
|
||||
static void LinkOpponentHandleExpUpdate(void);
|
||||
static void LinkOpponentHandleStatusIconUpdate(void);
|
||||
static void LinkOpponentHandleStatusAnimation(void);
|
||||
static void LinkOpponentHandleStatusXor(void);
|
||||
static void LinkOpponentHandleDataTransfer(void);
|
||||
static void LinkOpponentHandleDMA3Transfer(void);
|
||||
static void LinkOpponentHandlePlayBGM(void);
|
||||
static void LinkOpponentHandleCmd32(void);
|
||||
static void LinkOpponentHandleTwoReturnValues(void);
|
||||
static void LinkOpponentHandleChosenMonReturnValue(void);
|
||||
static void LinkOpponentHandleOneReturnValue(void);
|
||||
static void LinkOpponentHandleOneReturnValue_Duplicate(void);
|
||||
static void LinkOpponentHandleClearUnkVar(void);
|
||||
static void LinkOpponentHandleSetUnkVar(void);
|
||||
static void LinkOpponentHandleClearUnkFlag(void);
|
||||
static void LinkOpponentHandleToggleUnkFlag(void);
|
||||
static void LinkOpponentHandleHitAnimation(void);
|
||||
static void LinkOpponentHandleCantSwitch(void);
|
||||
static void LinkOpponentHandlePlaySE(void);
|
||||
static void LinkOpponentHandlePlayFanfare(void);
|
||||
static void LinkOpponentHandleFaintingCry(void);
|
||||
static void LinkOpponentHandleIntroSlide(void);
|
||||
static void LinkOpponentHandleIntroTrainerBallThrow(void);
|
||||
static void LinkOpponentHandleDrawPartyStatusSummary(void);
|
||||
static void LinkOpponentHandleHidePartyStatusSummary(void);
|
||||
static void LinkOpponentHandleEndBounceEffect(void);
|
||||
static void LinkOpponentHandleSpriteInvisibility(void);
|
||||
static void LinkOpponentHandleBattleAnimation(void);
|
||||
static void LinkOpponentHandleLinkStandbyMsg(void);
|
||||
static void LinkOpponentHandleResetActionMoveSelection(void);
|
||||
static void LinkOpponentHandleEndLinkBattle(void);
|
||||
static void LinkOpponentCmdEnd(void);
|
||||
static void LinkOpponentHandleGetMonData(u32 battler);
|
||||
static void LinkOpponentHandleGetRawMonData(u32 battler);
|
||||
static void LinkOpponentHandleSetMonData(u32 battler);
|
||||
static void LinkOpponentHandleSetRawMonData(u32 battler);
|
||||
static void LinkOpponentHandleLoadMonSprite(u32 battler);
|
||||
static void LinkOpponentHandleSwitchInAnim(u32 battler);
|
||||
static void LinkOpponentHandleReturnMonToBall(u32 battler);
|
||||
static void LinkOpponentHandleDrawTrainerPic(u32 battler);
|
||||
static void LinkOpponentHandleTrainerSlide(u32 battler);
|
||||
static void LinkOpponentHandleTrainerSlideBack(u32 battler);
|
||||
static void LinkOpponentHandleFaintAnimation(u32 battler);
|
||||
static void LinkOpponentHandlePaletteFade(u32 battler);
|
||||
static void LinkOpponentHandleSuccessBallThrowAnim(u32 battler);
|
||||
static void LinkOpponentHandleBallThrowAnim(u32 battler);
|
||||
static void LinkOpponentHandlePause(u32 battler);
|
||||
static void LinkOpponentHandleMoveAnimation(u32 battler);
|
||||
static void LinkOpponentHandlePrintString(u32 battler);
|
||||
static void LinkOpponentHandlePrintSelectionString(u32 battler);
|
||||
static void LinkOpponentHandleChooseAction(u32 battler);
|
||||
static void LinkOpponentHandleUnknownYesNoBox(u32 battler);
|
||||
static void LinkOpponentHandleChooseMove(u32 battler);
|
||||
static void LinkOpponentHandleChooseItem(u32 battler);
|
||||
static void LinkOpponentHandleChoosePokemon(u32 battler);
|
||||
static void LinkOpponentHandleCmd23(u32 battler);
|
||||
static void LinkOpponentHandleHealthBarUpdate(u32 battler);
|
||||
static void LinkOpponentHandleExpUpdate(u32 battler);
|
||||
static void LinkOpponentHandleStatusIconUpdate(u32 battler);
|
||||
static void LinkOpponentHandleStatusAnimation(u32 battler);
|
||||
static void LinkOpponentHandleStatusXor(u32 battler);
|
||||
static void LinkOpponentHandleDataTransfer(u32 battler);
|
||||
static void LinkOpponentHandleDMA3Transfer(u32 battler);
|
||||
static void LinkOpponentHandlePlayBGM(u32 battler);
|
||||
static void LinkOpponentHandleCmd32(u32 battler);
|
||||
static void LinkOpponentHandleTwoReturnValues(u32 battler);
|
||||
static void LinkOpponentHandleChosenMonReturnValue(u32 battler);
|
||||
static void LinkOpponentHandleOneReturnValue(u32 battler);
|
||||
static void LinkOpponentHandleOneReturnValue_Duplicate(u32 battler);
|
||||
static void LinkOpponentHandleClearUnkVar(u32 battler);
|
||||
static void LinkOpponentHandleSetUnkVar(u32 battler);
|
||||
static void LinkOpponentHandleClearUnkFlag(u32 battler);
|
||||
static void LinkOpponentHandleToggleUnkFlag(u32 battler);
|
||||
static void LinkOpponentHandleHitAnimation(u32 battler);
|
||||
static void LinkOpponentHandleCantSwitch(u32 battler);
|
||||
static void LinkOpponentHandlePlaySE(u32 battler);
|
||||
static void LinkOpponentHandlePlayFanfare(u32 battler);
|
||||
static void LinkOpponentHandleFaintingCry(u32 battler);
|
||||
static void LinkOpponentHandleIntroSlide(u32 battler);
|
||||
static void LinkOpponentHandleIntroTrainerBallThrow(u32 battler);
|
||||
static void LinkOpponentHandleDrawPartyStatusSummary(u32 battler);
|
||||
static void LinkOpponentHandleHidePartyStatusSummary(u32 battler);
|
||||
static void LinkOpponentHandleEndBounceEffect(u32 battler);
|
||||
static void LinkOpponentHandleSpriteInvisibility(u32 battler);
|
||||
static void LinkOpponentHandleBattleAnimation(u32 battler);
|
||||
static void LinkOpponentHandleLinkStandbyMsg(u32 battler);
|
||||
static void LinkOpponentHandleResetActionMoveSelection(u32 battler);
|
||||
static void LinkOpponentHandleEndLinkBattle(u32 battler);
|
||||
static void LinkOpponentCmdEnd(u32 battler);
|
||||
|
||||
static void LinkOpponentBufferRunCommand(void);
|
||||
static void LinkOpponentBufferExecCompleted(void);
|
||||
static void SwitchIn_HandleSoundAndEnd(void);
|
||||
static void LinkOpponentBufferRunCommand(u32 battler);
|
||||
static void LinkOpponentBufferExecCompleted(u32 battler);
|
||||
static void SwitchIn_HandleSoundAndEnd(u32 battler);
|
||||
static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst);
|
||||
static void SetLinkOpponentMonData(u8 monId);
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static void DoSwitchOutAnimation(void);
|
||||
static void LinkOpponentDoMoveAnimation(void);
|
||||
static void DoSwitchOutAnimation(u32 battler);
|
||||
static void LinkOpponentDoMoveAnimation(u32 battler);
|
||||
static void Task_StartSendOutAnim(u8 taskId);
|
||||
static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite);
|
||||
static void EndDrawPartyStatusSummary(void);
|
||||
static void EndDrawPartyStatusSummary(u32 battler);
|
||||
|
||||
static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) =
|
||||
{
|
||||
[CONTROLLER_GETMONDATA] = LinkOpponentHandleGetMonData,
|
||||
[CONTROLLER_GETRAWMONDATA] = LinkOpponentHandleGetRawMonData,
|
||||
@@ -147,33 +147,33 @@ static void (*const sLinkOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
[CONTROLLER_TERMINATOR_NOP] = LinkOpponentCmdEnd
|
||||
};
|
||||
|
||||
static void LinkOpponentDummy(void)
|
||||
static void LinkOpponentDummy(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
void SetControllerToLinkOpponent(void)
|
||||
void SetControllerToLinkOpponent(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand;
|
||||
}
|
||||
|
||||
static void LinkOpponentBufferRunCommand(void)
|
||||
static void LinkOpponentBufferRunCommand(u32 battler)
|
||||
{
|
||||
if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkOpponentBufferCommands))
|
||||
sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]]();
|
||||
sLinkOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](battler);
|
||||
else
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(void)
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void FreeTrainerSpriteAfterSlide(void)
|
||||
static void FreeTrainerSpriteAfterSlide(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -181,20 +181,20 @@ static void FreeTrainerSpriteAfterSlide(void)
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBattlerSpriteIds[gActiveBattler]].data[5];
|
||||
FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_DelayAndEnd(void)
|
||||
static void Intro_DelayAndEnd(u32 battler)
|
||||
{
|
||||
if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
static void Intro_WaitForShinyAnimAndHealthbox(u32 battler)
|
||||
{
|
||||
bool32 healthboxAnimDone = FALSE;
|
||||
|
||||
@@ -241,7 +241,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive)
|
||||
@@ -278,7 +278,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void TryShinyAnimAfterMonAnim(void)
|
||||
static void TryShinyAnimAfterMonAnim(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded == TRUE
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0)
|
||||
@@ -293,12 +293,12 @@ static void TryShinyAnimAfterMonAnim(void)
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnHealthbarDone(void)
|
||||
static void CompleteOnHealthbarDone(u32 battler)
|
||||
{
|
||||
s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
|
||||
|
||||
@@ -307,19 +307,19 @@ static void CompleteOnHealthbarDone(void)
|
||||
if (hpValue != -1)
|
||||
UpdateHpTextInHealthbox(gHealthboxSpriteIds[gActiveBattler], hpValue, HP_CURRENT);
|
||||
else
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void HideHealthboxAfterMonFaint(void)
|
||||
static void HideHealthboxAfterMonFaint(u32 battler)
|
||||
{
|
||||
if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
|
||||
{
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
{
|
||||
@@ -327,17 +327,17 @@ static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
HideBattlerShadowSprite(gActiveBattler);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnInactiveTextPrinter(void)
|
||||
static void CompleteOnInactiveTextPrinter(u32 battler)
|
||||
{
|
||||
if (!IsTextPrinterActive(B_WIN_MSG))
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void DoHitAnimBlinkSpriteEffect(void)
|
||||
static void DoHitAnimBlinkSpriteEffect(u32 battler)
|
||||
{
|
||||
u8 spriteId = gBattlerSpriteIds[gActiveBattler];
|
||||
|
||||
@@ -346,7 +346,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
gSprites[spriteId].data[1] = 0;
|
||||
gSprites[spriteId].invisible = FALSE;
|
||||
gDoingBattleAnim = FALSE;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -356,7 +356,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowSubstitute(void)
|
||||
static void SwitchIn_ShowSubstitute(u32 battler)
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -367,16 +367,16 @@ static void SwitchIn_ShowSubstitute(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_HandleSoundAndEnd(void)
|
||||
static void SwitchIn_HandleSoundAndEnd(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowHealthbox(void)
|
||||
static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
@@ -396,7 +396,7 @@ static void SwitchIn_ShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_TryShinyAnim(void)
|
||||
static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim)
|
||||
@@ -413,19 +413,19 @@ static void SwitchIn_TryShinyAnim(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedStatusAnimation(void)
|
||||
static void CompleteOnFinishedStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedBattleAnimation(void)
|
||||
static void CompleteOnFinishedBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentBufferExecCompleted(void)
|
||||
static void LinkOpponentBufferExecCompleted(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = LinkOpponentBufferRunCommand;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
@@ -441,7 +441,7 @@ static void LinkOpponentBufferExecCompleted(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleGetMonData(void)
|
||||
static void LinkOpponentHandleGetMonData(u32 battler)
|
||||
{
|
||||
u8 monData[sizeof(struct Pokemon) * 2 + 56]; // this allows to get full data of two pokemon, trying to get more will result in overwriting data
|
||||
u32 size = 0;
|
||||
@@ -463,7 +463,7 @@ static void LinkOpponentHandleGetMonData(void)
|
||||
}
|
||||
}
|
||||
BtlController_EmitDataTransfer(BUFFER_B, size, monData);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
|
||||
@@ -771,12 +771,12 @@ static u32 CopyLinkOpponentMonData(u8 monId, u8 *dst)
|
||||
return size;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleGetRawMonData(void)
|
||||
static void LinkOpponentHandleGetRawMonData(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSetMonData(void)
|
||||
static void LinkOpponentHandleSetMonData(u32 battler)
|
||||
{
|
||||
u8 monToCheck;
|
||||
u8 i;
|
||||
@@ -795,7 +795,7 @@ static void LinkOpponentHandleSetMonData(void)
|
||||
monToCheck >>= 1;
|
||||
}
|
||||
}
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SetLinkOpponentMonData(u8 monId)
|
||||
@@ -1014,7 +1014,7 @@ static void SetLinkOpponentMonData(u8 monId)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSetRawMonData(void)
|
||||
static void LinkOpponentHandleSetRawMonData(u32 battler)
|
||||
{
|
||||
u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
|
||||
u8 i;
|
||||
@@ -1022,10 +1022,10 @@ static void LinkOpponentHandleSetRawMonData(void)
|
||||
for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
|
||||
dst[i] = gBattleBufferA[gActiveBattler][3 + i];
|
||||
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleLoadMonSprite(void)
|
||||
static void LinkOpponentHandleLoadMonSprite(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
|
||||
@@ -1047,7 +1047,7 @@ static void LinkOpponentHandleLoadMonSprite(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSwitchInAnim(void)
|
||||
static void LinkOpponentHandleSwitchInAnim(u32 battler)
|
||||
{
|
||||
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
|
||||
StartSendOutAnim(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
|
||||
@@ -1083,7 +1083,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleReturnMonToBall(void)
|
||||
static void LinkOpponentHandleReturnMonToBall(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] == 0)
|
||||
{
|
||||
@@ -1096,11 +1096,11 @@ static void LinkOpponentHandleReturnMonToBall(void)
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
HideBattlerShadowSprite(gActiveBattler);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void DoSwitchOutAnimation(void)
|
||||
static void DoSwitchOutAnimation(u32 battler)
|
||||
{
|
||||
switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
|
||||
{
|
||||
@@ -1123,7 +1123,7 @@ static void DoSwitchOutAnimation(void)
|
||||
|
||||
#define sSpeedX data[0]
|
||||
|
||||
static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
static void LinkOpponentHandleDrawTrainerPic(u32 battler)
|
||||
{
|
||||
s16 xPos;
|
||||
u32 trainerPicId;
|
||||
@@ -1195,14 +1195,14 @@ static void LinkOpponentHandleDrawTrainerPic(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleTrainerSlide(void)
|
||||
static void LinkOpponentHandleTrainerSlide(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
#undef sSpeedX
|
||||
|
||||
static void LinkOpponentHandleTrainerSlideBack(void)
|
||||
static void LinkOpponentHandleTrainerSlideBack(u32 battler)
|
||||
{
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
@@ -1213,7 +1213,7 @@ static void LinkOpponentHandleTrainerSlideBack(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleFaintAnimation(void)
|
||||
static void LinkOpponentHandleFaintAnimation(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
|
||||
{
|
||||
@@ -1233,27 +1233,27 @@ static void LinkOpponentHandleFaintAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePaletteFade(void)
|
||||
static void LinkOpponentHandlePaletteFade(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSuccessBallThrowAnim(void)
|
||||
static void LinkOpponentHandleSuccessBallThrowAnim(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleBallThrowAnim(void)
|
||||
static void LinkOpponentHandleBallThrowAnim(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePause(void)
|
||||
static void LinkOpponentHandlePause(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleMoveAnimation(void)
|
||||
static void LinkOpponentHandleMoveAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1268,7 +1268,7 @@ static void LinkOpponentHandleMoveAnimation(void)
|
||||
gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
|
||||
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1278,7 +1278,7 @@ static void LinkOpponentHandleMoveAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentDoMoveAnimation(void)
|
||||
static void LinkOpponentDoMoveAnimation(u32 battler)
|
||||
{
|
||||
u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
|
||||
u8 multihit = gBattleBufferA[gActiveBattler][11];
|
||||
@@ -1321,13 +1321,13 @@ static void LinkOpponentDoMoveAnimation(void)
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePrintString(void)
|
||||
static void LinkOpponentHandlePrintString(u32 battler)
|
||||
{
|
||||
u16 *stringId;
|
||||
|
||||
@@ -1342,42 +1342,42 @@ static void LinkOpponentHandlePrintString(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePrintSelectionString(void)
|
||||
static void LinkOpponentHandlePrintSelectionString(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleChooseAction(void)
|
||||
static void LinkOpponentHandleChooseAction(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleUnknownYesNoBox(void)
|
||||
static void LinkOpponentHandleUnknownYesNoBox(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleChooseMove(void)
|
||||
static void LinkOpponentHandleChooseMove(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleChooseItem(void)
|
||||
static void LinkOpponentHandleChooseItem(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleChoosePokemon(void)
|
||||
static void LinkOpponentHandleChoosePokemon(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleCmd23(void)
|
||||
static void LinkOpponentHandleCmd23(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleHealthBarUpdate(void)
|
||||
static void LinkOpponentHandleHealthBarUpdate(u32 battler)
|
||||
{
|
||||
s16 hpVal;
|
||||
|
||||
@@ -1401,12 +1401,12 @@ static void LinkOpponentHandleHealthBarUpdate(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleExpUpdate(void)
|
||||
static void LinkOpponentHandleExpUpdate(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleStatusIconUpdate(void)
|
||||
static void LinkOpponentHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1419,7 +1419,7 @@ static void LinkOpponentHandleStatusIconUpdate(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleStatusAnimation(void)
|
||||
static void LinkOpponentHandleStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1429,80 +1429,80 @@ static void LinkOpponentHandleStatusAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleStatusXor(void)
|
||||
static void LinkOpponentHandleStatusXor(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleDataTransfer(void)
|
||||
static void LinkOpponentHandleDataTransfer(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleDMA3Transfer(void)
|
||||
static void LinkOpponentHandleDMA3Transfer(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePlayBGM(void)
|
||||
static void LinkOpponentHandlePlayBGM(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleCmd32(void)
|
||||
static void LinkOpponentHandleCmd32(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleTwoReturnValues(void)
|
||||
static void LinkOpponentHandleTwoReturnValues(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleChosenMonReturnValue(void)
|
||||
static void LinkOpponentHandleChosenMonReturnValue(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleOneReturnValue(void)
|
||||
static void LinkOpponentHandleOneReturnValue(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleOneReturnValue_Duplicate(void)
|
||||
static void LinkOpponentHandleOneReturnValue_Duplicate(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleClearUnkVar(void)
|
||||
static void LinkOpponentHandleClearUnkVar(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSetUnkVar(void)
|
||||
static void LinkOpponentHandleSetUnkVar(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1];
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleClearUnkFlag(void)
|
||||
static void LinkOpponentHandleClearUnkFlag(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleToggleUnkFlag(void)
|
||||
static void LinkOpponentHandleToggleUnkFlag(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag ^= 1;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleHitAnimation(void)
|
||||
static void LinkOpponentHandleHitAnimation(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1513,12 +1513,12 @@ static void LinkOpponentHandleHitAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleCantSwitch(void)
|
||||
static void LinkOpponentHandleCantSwitch(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePlaySE(void)
|
||||
static void LinkOpponentHandlePlaySE(u32 battler)
|
||||
{
|
||||
s8 pan;
|
||||
|
||||
@@ -1528,31 +1528,31 @@ static void LinkOpponentHandlePlaySE(void)
|
||||
pan = SOUND_PAN_TARGET;
|
||||
|
||||
PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandlePlayFanfare(void)
|
||||
static void LinkOpponentHandlePlayFanfare(u32 battler)
|
||||
{
|
||||
PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleFaintingCry(void)
|
||||
static void LinkOpponentHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_ByMode(species, 25, CRY_MODE_FAINT);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleIntroSlide(void)
|
||||
static void LinkOpponentHandleIntroSlide(u32 battler)
|
||||
{
|
||||
HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
|
||||
gIntroSlideFlags |= 1;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleIntroTrainerBallThrow(void)
|
||||
static void LinkOpponentHandleIntroTrainerBallThrow(u32 battler)
|
||||
{
|
||||
u8 taskId;
|
||||
|
||||
@@ -1607,11 +1607,11 @@ static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite)
|
||||
DestroySprite(sprite);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleDrawPartyStatusSummary(void)
|
||||
static void LinkOpponentHandleDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1640,38 +1640,38 @@ static void LinkOpponentHandleDrawPartyStatusSummary(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void EndDrawPartyStatusSummary(void)
|
||||
static void EndDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleHidePartyStatusSummary(void)
|
||||
static void LinkOpponentHandleHidePartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
|
||||
gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleEndBounceEffect(void)
|
||||
static void LinkOpponentHandleEndBounceEffect(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleSpriteInvisibility(void)
|
||||
static void LinkOpponentHandleSpriteInvisibility(u32 battler)
|
||||
{
|
||||
if (IsBattlerSpritePresent(gActiveBattler))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
|
||||
CopyBattleSpriteInvisibility(gActiveBattler);
|
||||
}
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleBattleAnimation(void)
|
||||
static void LinkOpponentHandleBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1679,23 +1679,23 @@ static void LinkOpponentHandleBattleAnimation(void)
|
||||
u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
|
||||
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
else
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleLinkStandbyMsg(void)
|
||||
static void LinkOpponentHandleLinkStandbyMsg(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleResetActionMoveSelection(void)
|
||||
static void LinkOpponentHandleResetActionMoveSelection(u32 battler)
|
||||
{
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkOpponentHandleEndLinkBattle(void)
|
||||
static void LinkOpponentHandleEndLinkBattle(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] == B_OUTCOME_DREW)
|
||||
gBattleOutcome = gBattleBufferA[gActiveBattler][1];
|
||||
@@ -1704,10 +1704,10 @@ static void LinkOpponentHandleEndLinkBattle(void)
|
||||
|
||||
FadeOutMapMusic(5);
|
||||
BeginFastPaletteFade(3);
|
||||
LinkOpponentBufferExecCompleted();
|
||||
LinkOpponentBufferExecCompleted(battler);
|
||||
gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks;
|
||||
}
|
||||
|
||||
static void LinkOpponentCmdEnd(void)
|
||||
static void LinkOpponentCmdEnd(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -14,76 +14,76 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/sound.h"
|
||||
|
||||
static void LinkPartnerHandleGetMonData(void);
|
||||
static void LinkPartnerHandleGetRawMonData(void);
|
||||
static void LinkPartnerHandleSetMonData(void);
|
||||
static void LinkPartnerHandleSetRawMonData(void);
|
||||
static void LinkPartnerHandleLoadMonSprite(void);
|
||||
static void LinkPartnerHandleSwitchInAnim(void);
|
||||
static void LinkPartnerHandleReturnMonToBall(void);
|
||||
static void LinkPartnerHandleDrawTrainerPic(void);
|
||||
static void LinkPartnerHandleTrainerSlide(void);
|
||||
static void LinkPartnerHandleTrainerSlideBack(void);
|
||||
static void LinkPartnerHandleFaintAnimation(void);
|
||||
static void LinkPartnerHandlePaletteFade(void);
|
||||
static void LinkPartnerHandleSuccessBallThrowAnim(void);
|
||||
static void LinkPartnerHandleBallThrowAnim(void);
|
||||
static void LinkPartnerHandlePause(void);
|
||||
static void LinkPartnerHandleMoveAnimation(void);
|
||||
static void LinkPartnerHandlePrintString(void);
|
||||
static void LinkPartnerHandlePrintSelectionString(void);
|
||||
static void LinkPartnerHandleChooseAction(void);
|
||||
static void LinkPartnerHandleUnknownYesNoBox(void);
|
||||
static void LinkPartnerHandleChooseMove(void);
|
||||
static void LinkPartnerHandleChooseItem(void);
|
||||
static void LinkPartnerHandleChoosePokemon(void);
|
||||
static void LinkPartnerHandleCmd23(void);
|
||||
static void LinkPartnerHandleHealthBarUpdate(void);
|
||||
static void LinkPartnerHandleExpUpdate(void);
|
||||
static void LinkPartnerHandleStatusIconUpdate(void);
|
||||
static void LinkPartnerHandleStatusAnimation(void);
|
||||
static void LinkPartnerHandleStatusXor(void);
|
||||
static void LinkPartnerHandleDataTransfer(void);
|
||||
static void LinkPartnerHandleDMA3Transfer(void);
|
||||
static void LinkPartnerHandlePlayBGM(void);
|
||||
static void LinkPartnerHandleCmd32(void);
|
||||
static void LinkPartnerHandleTwoReturnValues(void);
|
||||
static void LinkPartnerHandleChosenMonReturnValue(void);
|
||||
static void LinkPartnerHandleOneReturnValue(void);
|
||||
static void LinkPartnerHandleOneReturnValue_Duplicate(void);
|
||||
static void LinkPartnerHandleClearUnkVar(void);
|
||||
static void LinkPartnerHandleSetUnkVar(void);
|
||||
static void LinkPartnerHandleClearUnkFlag(void);
|
||||
static void LinkPartnerHandleToggleUnkFlag(void);
|
||||
static void LinkPartnerHandleHitAnimation(void);
|
||||
static void LinkPartnerHandleCantSwitch(void);
|
||||
static void LinkPartnerHandlePlaySE(void);
|
||||
static void LinkPartnerHandlePlayFanfare(void);
|
||||
static void LinkPartnerHandleFaintingCry(void);
|
||||
static void LinkPartnerHandleIntroSlide(void);
|
||||
static void LinkPartnerHandleIntroTrainerBallThrow(void);
|
||||
static void LinkPartnerHandleDrawPartyStatusSummary(void);
|
||||
static void LinkPartnerHandleHidePartyStatusSummary(void);
|
||||
static void LinkPartnerHandleEndBounceEffect(void);
|
||||
static void LinkPartnerHandleSpriteInvisibility(void);
|
||||
static void LinkPartnerHandleBattleAnimation(void);
|
||||
static void LinkPartnerHandleLinkStandbyMsg(void);
|
||||
static void LinkPartnerHandleResetActionMoveSelection(void);
|
||||
static void LinkPartnerHandleEndLinkBattle(void);
|
||||
static void LinkPartnerCmdEnd(void);
|
||||
static void LinkPartnerHandleGetMonData(u32 battler);
|
||||
static void LinkPartnerHandleGetRawMonData(u32 battler);
|
||||
static void LinkPartnerHandleSetMonData(u32 battler);
|
||||
static void LinkPartnerHandleSetRawMonData(u32 battler);
|
||||
static void LinkPartnerHandleLoadMonSprite(u32 battler);
|
||||
static void LinkPartnerHandleSwitchInAnim(u32 battler);
|
||||
static void LinkPartnerHandleReturnMonToBall(u32 battler);
|
||||
static void LinkPartnerHandleDrawTrainerPic(u32 battler);
|
||||
static void LinkPartnerHandleTrainerSlide(u32 battler);
|
||||
static void LinkPartnerHandleTrainerSlideBack(u32 battler);
|
||||
static void LinkPartnerHandleFaintAnimation(u32 battler);
|
||||
static void LinkPartnerHandlePaletteFade(u32 battler);
|
||||
static void LinkPartnerHandleSuccessBallThrowAnim(u32 battler);
|
||||
static void LinkPartnerHandleBallThrowAnim(u32 battler);
|
||||
static void LinkPartnerHandlePause(u32 battler);
|
||||
static void LinkPartnerHandleMoveAnimation(u32 battler);
|
||||
static void LinkPartnerHandlePrintString(u32 battler);
|
||||
static void LinkPartnerHandlePrintSelectionString(u32 battler);
|
||||
static void LinkPartnerHandleChooseAction(u32 battler);
|
||||
static void LinkPartnerHandleUnknownYesNoBox(u32 battler);
|
||||
static void LinkPartnerHandleChooseMove(u32 battler);
|
||||
static void LinkPartnerHandleChooseItem(u32 battler);
|
||||
static void LinkPartnerHandleChoosePokemon(u32 battler);
|
||||
static void LinkPartnerHandleCmd23(u32 battler);
|
||||
static void LinkPartnerHandleHealthBarUpdate(u32 battler);
|
||||
static void LinkPartnerHandleExpUpdate(u32 battler);
|
||||
static void LinkPartnerHandleStatusIconUpdate(u32 battler);
|
||||
static void LinkPartnerHandleStatusAnimation(u32 battler);
|
||||
static void LinkPartnerHandleStatusXor(u32 battler);
|
||||
static void LinkPartnerHandleDataTransfer(u32 battler);
|
||||
static void LinkPartnerHandleDMA3Transfer(u32 battler);
|
||||
static void LinkPartnerHandlePlayBGM(u32 battler);
|
||||
static void LinkPartnerHandleCmd32(u32 battler);
|
||||
static void LinkPartnerHandleTwoReturnValues(u32 battler);
|
||||
static void LinkPartnerHandleChosenMonReturnValue(u32 battler);
|
||||
static void LinkPartnerHandleOneReturnValue(u32 battler);
|
||||
static void LinkPartnerHandleOneReturnValue_Duplicate(u32 battler);
|
||||
static void LinkPartnerHandleClearUnkVar(u32 battler);
|
||||
static void LinkPartnerHandleSetUnkVar(u32 battler);
|
||||
static void LinkPartnerHandleClearUnkFlag(u32 battler);
|
||||
static void LinkPartnerHandleToggleUnkFlag(u32 battler);
|
||||
static void LinkPartnerHandleHitAnimation(u32 battler);
|
||||
static void LinkPartnerHandleCantSwitch(u32 battler);
|
||||
static void LinkPartnerHandlePlaySE(u32 battler);
|
||||
static void LinkPartnerHandlePlayFanfare(u32 battler);
|
||||
static void LinkPartnerHandleFaintingCry(u32 battler);
|
||||
static void LinkPartnerHandleIntroSlide(u32 battler);
|
||||
static void LinkPartnerHandleIntroTrainerBallThrow(u32 battler);
|
||||
static void LinkPartnerHandleDrawPartyStatusSummary(u32 battler);
|
||||
static void LinkPartnerHandleHidePartyStatusSummary(u32 battler);
|
||||
static void LinkPartnerHandleEndBounceEffect(u32 battler);
|
||||
static void LinkPartnerHandleSpriteInvisibility(u32 battler);
|
||||
static void LinkPartnerHandleBattleAnimation(u32 battler);
|
||||
static void LinkPartnerHandleLinkStandbyMsg(u32 battler);
|
||||
static void LinkPartnerHandleResetActionMoveSelection(u32 battler);
|
||||
static void LinkPartnerHandleEndLinkBattle(u32 battler);
|
||||
static void LinkPartnerCmdEnd(u32 battler);
|
||||
|
||||
static void LinkPartnerBufferRunCommand(void);
|
||||
static void LinkPartnerBufferExecCompleted(void);
|
||||
static void SwitchIn_WaitAndEnd(void);
|
||||
static void LinkPartnerBufferRunCommand(u32 battler);
|
||||
static void LinkPartnerBufferExecCompleted(u32 battler);
|
||||
static void SwitchIn_WaitAndEnd(u32 battler);
|
||||
static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst);
|
||||
static void SetLinkPartnerMonData(u8 monId);
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static void DoSwitchOutAnimation(void);
|
||||
static void LinkPartnerDoMoveAnimation(void);
|
||||
static void DoSwitchOutAnimation(u32 battler);
|
||||
static void LinkPartnerDoMoveAnimation(u32 battler);
|
||||
static void Task_StartSendOutAnim(u8 taskId);
|
||||
static void EndDrawPartyStatusSummary(void);
|
||||
static void EndDrawPartyStatusSummary(u32 battler);
|
||||
|
||||
static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) =
|
||||
{
|
||||
[CONTROLLER_GETMONDATA] = LinkPartnerHandleGetMonData,
|
||||
[CONTROLLER_GETRAWMONDATA] = LinkPartnerHandleGetRawMonData,
|
||||
@@ -144,53 +144,53 @@ static void (*const sLinkPartnerBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
[CONTROLLER_TERMINATOR_NOP] = LinkPartnerCmdEnd
|
||||
};
|
||||
|
||||
static void LinkPartnerDummy(void)
|
||||
static void LinkPartnerDummy(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
void SetControllerToLinkPartner(void)
|
||||
void SetControllerToLinkPartner(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand;
|
||||
}
|
||||
|
||||
static void LinkPartnerBufferRunCommand(void)
|
||||
static void LinkPartnerBufferRunCommand(u32 battler)
|
||||
{
|
||||
if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][0] < ARRAY_COUNT(sLinkPartnerBufferCommands))
|
||||
sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]]();
|
||||
sLinkPartnerBufferCommands[gBattleBufferA[gActiveBattler][0]](battler);
|
||||
else
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(void)
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void FreeTrainerSpriteAfterSlide(void)
|
||||
static void FreeTrainerSpriteAfterSlide(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
BattleGfxSfxDummy3(MALE);
|
||||
FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_DelayAndEnd(void)
|
||||
static void Intro_DelayAndEnd(u32 battler)
|
||||
{
|
||||
if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_WaitForHealthbox(void)
|
||||
static void Intro_WaitForHealthbox(u32 battler)
|
||||
{
|
||||
bool32 finished = FALSE;
|
||||
|
||||
@@ -215,7 +215,7 @@ static void Intro_WaitForHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_ShowHealthbox(void)
|
||||
static void Intro_ShowHealthbox(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler ^ BIT_FLANK].ballAnimActive
|
||||
@@ -248,13 +248,13 @@ static void Intro_ShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void WaitForMonAnimAfterLoad(void)
|
||||
static void WaitForMonAnimAfterLoad(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded && gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0)
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnHealthbarDone(void)
|
||||
static void CompleteOnHealthbarDone(u32 battler)
|
||||
{
|
||||
s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
|
||||
|
||||
@@ -267,39 +267,39 @@ static void CompleteOnHealthbarDone(void)
|
||||
else
|
||||
{
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void FreeMonSpriteAfterFaintAnim(void)
|
||||
static void FreeMonSpriteAfterFaintAnim(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].y + gSprites[gBattlerSpriteIds[gActiveBattler]].y2 > DISPLAY_HEIGHT)
|
||||
{
|
||||
FreeOamMatrix(gSprites[gBattlerSpriteIds[gActiveBattler]].oam.matrixNum);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
{
|
||||
FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnInactiveTextPrinter(void)
|
||||
static void CompleteOnInactiveTextPrinter(u32 battler)
|
||||
{
|
||||
if (!IsTextPrinterActive(B_WIN_MSG))
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void DoHitAnimBlinkSpriteEffect(void)
|
||||
static void DoHitAnimBlinkSpriteEffect(u32 battler)
|
||||
{
|
||||
u8 spriteId = gBattlerSpriteIds[gActiveBattler];
|
||||
|
||||
@@ -308,7 +308,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
gSprites[spriteId].data[1] = 0;
|
||||
gSprites[spriteId].invisible = FALSE;
|
||||
gDoingBattleAnim = FALSE;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -318,7 +318,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowSubstitute(void)
|
||||
static void SwitchIn_ShowSubstitute(u32 battler)
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -329,15 +329,15 @@ static void SwitchIn_ShowSubstitute(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_WaitAndEnd(void)
|
||||
static void SwitchIn_WaitAndEnd(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowHealthbox(void)
|
||||
static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
@@ -358,7 +358,7 @@ static void SwitchIn_ShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_TryShinyAnim(void)
|
||||
static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim
|
||||
&& !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
@@ -374,7 +374,7 @@ static void SwitchIn_TryShinyAnim(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerBufferExecCompleted(void)
|
||||
static void LinkPartnerBufferExecCompleted(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = LinkPartnerBufferRunCommand;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
@@ -390,19 +390,19 @@ static void LinkPartnerBufferExecCompleted(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedStatusAnimation(void)
|
||||
static void CompleteOnFinishedStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedBattleAnimation(void)
|
||||
static void CompleteOnFinishedBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleGetMonData(void)
|
||||
static void LinkPartnerHandleGetMonData(u32 battler)
|
||||
{
|
||||
u8 monData[sizeof(struct Pokemon) * 2 + 56]; // this allows to get full data of two pokemon, trying to get more will result in overwriting data
|
||||
u32 size = 0;
|
||||
@@ -424,7 +424,7 @@ static void LinkPartnerHandleGetMonData(void)
|
||||
}
|
||||
}
|
||||
BtlController_EmitDataTransfer(BUFFER_B, size, monData);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
|
||||
@@ -733,12 +733,12 @@ static u32 CopyLinkPartnerMonData(u8 monId, u8 *dst)
|
||||
return size;
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleGetRawMonData(void)
|
||||
static void LinkPartnerHandleGetRawMonData(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSetMonData(void)
|
||||
static void LinkPartnerHandleSetMonData(u32 battler)
|
||||
{
|
||||
u8 monToCheck;
|
||||
u8 i;
|
||||
@@ -757,7 +757,7 @@ static void LinkPartnerHandleSetMonData(void)
|
||||
monToCheck >>= 1;
|
||||
}
|
||||
}
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SetLinkPartnerMonData(u8 monId)
|
||||
@@ -978,7 +978,7 @@ static void SetLinkPartnerMonData(u8 monId)
|
||||
HandleLowHpMusicChange(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], gActiveBattler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSetRawMonData(void)
|
||||
static void LinkPartnerHandleSetRawMonData(u32 battler)
|
||||
{
|
||||
u8 *dst = (u8 *)&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
|
||||
u8 i;
|
||||
@@ -986,10 +986,10 @@ static void LinkPartnerHandleSetRawMonData(void)
|
||||
for (i = 0; i < gBattleBufferA[gActiveBattler][2]; i++)
|
||||
dst[i] = gBattleBufferA[gActiveBattler][3 + i];
|
||||
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleLoadMonSprite(void)
|
||||
static void LinkPartnerHandleLoadMonSprite(u32 battler)
|
||||
{
|
||||
u16 species;
|
||||
|
||||
@@ -1008,7 +1008,7 @@ static void LinkPartnerHandleLoadMonSprite(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = WaitForMonAnimAfterLoad;
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSwitchInAnim(void)
|
||||
static void LinkPartnerHandleSwitchInAnim(u32 battler)
|
||||
{
|
||||
ClearTemporarySpeciesSpriteData(gActiveBattler, gBattleBufferA[gActiveBattler][2]);
|
||||
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
|
||||
@@ -1046,7 +1046,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_PLAYER_SENDOUT);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleReturnMonToBall(void)
|
||||
static void LinkPartnerHandleReturnMonToBall(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] == 0)
|
||||
{
|
||||
@@ -1058,11 +1058,11 @@ static void LinkPartnerHandleReturnMonToBall(void)
|
||||
FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void DoSwitchOutAnimation(void)
|
||||
static void DoSwitchOutAnimation(u32 battler)
|
||||
{
|
||||
switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
|
||||
{
|
||||
@@ -1085,7 +1085,7 @@ static void DoSwitchOutAnimation(void)
|
||||
|
||||
#define sSpeedX data[0]
|
||||
|
||||
static void LinkPartnerHandleDrawTrainerPic(void)
|
||||
static void LinkPartnerHandleDrawTrainerPic(u32 battler)
|
||||
{
|
||||
s16 xPos;
|
||||
u32 trainerPicId;
|
||||
@@ -1120,12 +1120,12 @@ static void LinkPartnerHandleDrawTrainerPic(void)
|
||||
|
||||
#undef sSpeedX
|
||||
|
||||
static void LinkPartnerHandleTrainerSlide(void)
|
||||
static void LinkPartnerHandleTrainerSlide(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleTrainerSlideBack(void)
|
||||
static void LinkPartnerHandleTrainerSlideBack(u32 battler)
|
||||
{
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
@@ -1139,7 +1139,7 @@ static void LinkPartnerHandleTrainerSlideBack(void)
|
||||
#define sSpeedX data[1]
|
||||
#define sSpeedY data[2]
|
||||
|
||||
static void LinkPartnerHandleFaintAnimation(void)
|
||||
static void LinkPartnerHandleFaintAnimation(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState == 0)
|
||||
{
|
||||
@@ -1165,27 +1165,27 @@ static void LinkPartnerHandleFaintAnimation(void)
|
||||
#undef sSpeedX
|
||||
#undef sSpeedY
|
||||
|
||||
static void LinkPartnerHandlePaletteFade(void)
|
||||
static void LinkPartnerHandlePaletteFade(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSuccessBallThrowAnim(void)
|
||||
static void LinkPartnerHandleSuccessBallThrowAnim(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleBallThrowAnim(void)
|
||||
static void LinkPartnerHandleBallThrowAnim(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePause(void)
|
||||
static void LinkPartnerHandlePause(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleMoveAnimation(void)
|
||||
static void LinkPartnerHandleMoveAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1200,7 +1200,7 @@ static void LinkPartnerHandleMoveAnimation(void)
|
||||
gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
|
||||
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1210,7 +1210,7 @@ static void LinkPartnerHandleMoveAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerDoMoveAnimation(void)
|
||||
static void LinkPartnerDoMoveAnimation(u32 battler)
|
||||
{
|
||||
u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
|
||||
u8 multihit = gBattleBufferA[gActiveBattler][11];
|
||||
@@ -1253,13 +1253,13 @@ static void LinkPartnerDoMoveAnimation(void)
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePrintString(void)
|
||||
static void LinkPartnerHandlePrintString(u32 battler)
|
||||
{
|
||||
u16 *stringId;
|
||||
|
||||
@@ -1274,42 +1274,42 @@ static void LinkPartnerHandlePrintString(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePrintSelectionString(void)
|
||||
static void LinkPartnerHandlePrintSelectionString(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleChooseAction(void)
|
||||
static void LinkPartnerHandleChooseAction(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleUnknownYesNoBox(void)
|
||||
static void LinkPartnerHandleUnknownYesNoBox(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleChooseMove(void)
|
||||
static void LinkPartnerHandleChooseMove(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleChooseItem(void)
|
||||
static void LinkPartnerHandleChooseItem(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleChoosePokemon(void)
|
||||
static void LinkPartnerHandleChoosePokemon(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleCmd23(void)
|
||||
static void LinkPartnerHandleCmd23(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleHealthBarUpdate(void)
|
||||
static void LinkPartnerHandleHealthBarUpdate(u32 battler)
|
||||
{
|
||||
s16 hpVal;
|
||||
|
||||
@@ -1333,12 +1333,12 @@ static void LinkPartnerHandleHealthBarUpdate(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleExpUpdate(void)
|
||||
static void LinkPartnerHandleExpUpdate(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleStatusIconUpdate(void)
|
||||
static void LinkPartnerHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1351,7 +1351,7 @@ static void LinkPartnerHandleStatusIconUpdate(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleStatusAnimation(void)
|
||||
static void LinkPartnerHandleStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1361,80 +1361,80 @@ static void LinkPartnerHandleStatusAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleStatusXor(void)
|
||||
static void LinkPartnerHandleStatusXor(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleDataTransfer(void)
|
||||
static void LinkPartnerHandleDataTransfer(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleDMA3Transfer(void)
|
||||
static void LinkPartnerHandleDMA3Transfer(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePlayBGM(void)
|
||||
static void LinkPartnerHandlePlayBGM(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleCmd32(void)
|
||||
static void LinkPartnerHandleCmd32(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleTwoReturnValues(void)
|
||||
static void LinkPartnerHandleTwoReturnValues(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleChosenMonReturnValue(void)
|
||||
static void LinkPartnerHandleChosenMonReturnValue(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleOneReturnValue(void)
|
||||
static void LinkPartnerHandleOneReturnValue(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleOneReturnValue_Duplicate(void)
|
||||
static void LinkPartnerHandleOneReturnValue_Duplicate(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleClearUnkVar(void)
|
||||
static void LinkPartnerHandleClearUnkVar(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSetUnkVar(void)
|
||||
static void LinkPartnerHandleSetUnkVar(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1];
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleClearUnkFlag(void)
|
||||
static void LinkPartnerHandleClearUnkFlag(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleToggleUnkFlag(void)
|
||||
static void LinkPartnerHandleToggleUnkFlag(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag ^= 1;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleHitAnimation(void)
|
||||
static void LinkPartnerHandleHitAnimation(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1445,12 +1445,12 @@ static void LinkPartnerHandleHitAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleCantSwitch(void)
|
||||
static void LinkPartnerHandleCantSwitch(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePlaySE(void)
|
||||
static void LinkPartnerHandlePlaySE(u32 battler)
|
||||
{
|
||||
s8 pan;
|
||||
|
||||
@@ -1460,31 +1460,31 @@ static void LinkPartnerHandlePlaySE(void)
|
||||
pan = SOUND_PAN_TARGET;
|
||||
|
||||
PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandlePlayFanfare(void)
|
||||
static void LinkPartnerHandlePlayFanfare(u32 battler)
|
||||
{
|
||||
PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleFaintingCry(void)
|
||||
static void LinkPartnerHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_ByMode(species, -25, CRY_MODE_FAINT);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleIntroSlide(void)
|
||||
static void LinkPartnerHandleIntroSlide(u32 battler)
|
||||
{
|
||||
HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
|
||||
gIntroSlideFlags |= 1;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleIntroTrainerBallThrow(void)
|
||||
static void LinkPartnerHandleIntroTrainerBallThrow(u32 battler)
|
||||
{
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
@@ -1559,11 +1559,11 @@ static void Task_StartSendOutAnim(u8 taskId)
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleDrawPartyStatusSummary(void)
|
||||
static void LinkPartnerHandleDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] != 0 && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1578,38 +1578,38 @@ static void LinkPartnerHandleDrawPartyStatusSummary(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void EndDrawPartyStatusSummary(void)
|
||||
static void EndDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 92)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleHidePartyStatusSummary(void)
|
||||
static void LinkPartnerHandleHidePartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
|
||||
gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleEndBounceEffect(void)
|
||||
static void LinkPartnerHandleEndBounceEffect(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleSpriteInvisibility(void)
|
||||
static void LinkPartnerHandleSpriteInvisibility(u32 battler)
|
||||
{
|
||||
if (IsBattlerSpritePresent(gActiveBattler))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
|
||||
CopyBattleSpriteInvisibility(gActiveBattler);
|
||||
}
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleBattleAnimation(void)
|
||||
static void LinkPartnerHandleBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1617,31 +1617,31 @@ static void LinkPartnerHandleBattleAnimation(void)
|
||||
u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
|
||||
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
else
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
|
||||
}
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleLinkStandbyMsg(void)
|
||||
static void LinkPartnerHandleLinkStandbyMsg(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleResetActionMoveSelection(void)
|
||||
static void LinkPartnerHandleResetActionMoveSelection(u32 battler)
|
||||
{
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void LinkPartnerHandleEndLinkBattle(void)
|
||||
static void LinkPartnerHandleEndLinkBattle(u32 battler)
|
||||
{
|
||||
gBattleOutcome = gBattleBufferA[gActiveBattler][1];
|
||||
FadeOutMapMusic(5);
|
||||
BeginFastPaletteFade(3);
|
||||
LinkPartnerBufferExecCompleted();
|
||||
LinkPartnerBufferExecCompleted(battler);
|
||||
gBattlerControllerFuncs[gActiveBattler] = SetBattleEndCallbacks;
|
||||
}
|
||||
|
||||
static void LinkPartnerCmdEnd(void)
|
||||
static void LinkPartnerCmdEnd(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -21,76 +21,76 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/sound.h"
|
||||
|
||||
static void OpponentHandleGetMonData(void);
|
||||
static void OpponentHandleGetRawMonData(void);
|
||||
static void OpponentHandleSetMonData(void);
|
||||
static void OpponentHandleSetRawMonData(void);
|
||||
static void OpponentHandleLoadMonSprite(void);
|
||||
static void OpponentHandleSwitchInAnim(void);
|
||||
static void OpponentHandleReturnMonToBall(void);
|
||||
static void OpponentHandleDrawTrainerPic(void);
|
||||
static void OpponentHandleTrainerSlide(void);
|
||||
static void OpponentHandleTrainerSlideBack(void);
|
||||
static void OpponentHandleFaintAnimation(void);
|
||||
static void OpponentHandlePaletteFade(void);
|
||||
static void OpponentHandleSuccessBallThrowAnim(void);
|
||||
static void OpponentHandleBallThrowAnim(void);
|
||||
static void OpponentHandlePause(void);
|
||||
static void OpponentHandleMoveAnimation(void);
|
||||
static void OpponentHandlePrintString(void);
|
||||
static void OpponentHandlePrintSelectionString(void);
|
||||
static void OpponentHandleChooseAction(void);
|
||||
static void OpponentHandleUnknownYesNoBox(void);
|
||||
static void OpponentHandleChooseMove(void);
|
||||
static void OpponentHandleChooseItem(void);
|
||||
static void OpponentHandleChoosePokemon(void);
|
||||
static void OpponentHandleCmd23(void);
|
||||
static void OpponentHandleHealthBarUpdate(void);
|
||||
static void OpponentHandleExpUpdate(void);
|
||||
static void OpponentHandleStatusIconUpdate(void);
|
||||
static void OpponentHandleStatusAnimation(void);
|
||||
static void OpponentHandleStatusXor(void);
|
||||
static void OpponentHandleDataTransfer(void);
|
||||
static void OpponentHandleDMA3Transfer(void);
|
||||
static void OpponentHandlePlayBGM(void);
|
||||
static void OpponentHandleCmd32(void);
|
||||
static void OpponentHandleTwoReturnValues(void);
|
||||
static void OpponentHandleChosenMonReturnValue(void);
|
||||
static void OpponentHandleOneReturnValue(void);
|
||||
static void OpponentHandleOneReturnValue_Duplicate(void);
|
||||
static void OpponentHandleCmd37(void);
|
||||
static void OpponentHandleCmd38(void);
|
||||
static void OpponentHandleCmd39(void);
|
||||
static void OpponentHandleCmd40(void);
|
||||
static void OpponentHandleHitAnimation(void);
|
||||
static void OpponentHandleCmd42(void);
|
||||
static void OpponentHandlePlaySE(void);
|
||||
static void OpponentHandlePlayFanfare(void);
|
||||
static void OpponentHandleFaintingCry(void);
|
||||
static void OpponentHandleIntroSlide(void);
|
||||
static void OpponentHandleIntroTrainerBallThrow(void);
|
||||
static void OpponentHandleDrawPartyStatusSummary(void);
|
||||
static void OpponentHandleHidePartyStatusSummary(void);
|
||||
static void OpponentHandleEndBounceEffect(void);
|
||||
static void OpponentHandleSpriteInvisibility(void);
|
||||
static void OpponentHandleBattleAnimation(void);
|
||||
static void OpponentHandleLinkStandbyMsg(void);
|
||||
static void OpponentHandleResetActionMoveSelection(void);
|
||||
static void OpponentHandleCmd55(void);
|
||||
static void OpponentCmdEnd(void);
|
||||
static void OpponentHandleGetMonData(u32 battler);
|
||||
static void OpponentHandleGetRawMonData(u32 battler);
|
||||
static void OpponentHandleSetMonData(u32 battler);
|
||||
static void OpponentHandleSetRawMonData(u32 battler);
|
||||
static void OpponentHandleLoadMonSprite(u32 battler);
|
||||
static void OpponentHandleSwitchInAnim(u32 battler);
|
||||
static void OpponentHandleReturnMonToBall(u32 battler);
|
||||
static void OpponentHandleDrawTrainerPic(u32 battler);
|
||||
static void OpponentHandleTrainerSlide(u32 battler);
|
||||
static void OpponentHandleTrainerSlideBack(u32 battler);
|
||||
static void OpponentHandleFaintAnimation(u32 battler);
|
||||
static void OpponentHandlePaletteFade(u32 battler);
|
||||
static void OpponentHandleSuccessBallThrowAnim(u32 battler);
|
||||
static void OpponentHandleBallThrowAnim(u32 battler);
|
||||
static void OpponentHandlePause(u32 battler);
|
||||
static void OpponentHandleMoveAnimation(u32 battler);
|
||||
static void OpponentHandlePrintString(u32 battler);
|
||||
static void OpponentHandlePrintSelectionString(u32 battler);
|
||||
static void OpponentHandleChooseAction(u32 battler);
|
||||
static void OpponentHandleUnknownYesNoBox(u32 battler);
|
||||
static void OpponentHandleChooseMove(u32 battler);
|
||||
static void OpponentHandleChooseItem(u32 battler);
|
||||
static void OpponentHandleChoosePokemon(u32 battler);
|
||||
static void OpponentHandleCmd23(u32 battler);
|
||||
static void OpponentHandleHealthBarUpdate(u32 battler);
|
||||
static void OpponentHandleExpUpdate(u32 battler);
|
||||
static void OpponentHandleStatusIconUpdate(u32 battler);
|
||||
static void OpponentHandleStatusAnimation(u32 battler);
|
||||
static void OpponentHandleStatusXor(u32 battler);
|
||||
static void OpponentHandleDataTransfer(u32 battler);
|
||||
static void OpponentHandleDMA3Transfer(u32 battler);
|
||||
static void OpponentHandlePlayBGM(u32 battler);
|
||||
static void OpponentHandleCmd32(u32 battler);
|
||||
static void OpponentHandleTwoReturnValues(u32 battler);
|
||||
static void OpponentHandleChosenMonReturnValue(u32 battler);
|
||||
static void OpponentHandleOneReturnValue(u32 battler);
|
||||
static void OpponentHandleOneReturnValue_Duplicate(u32 battler);
|
||||
static void OpponentHandleCmd37(u32 battler);
|
||||
static void OpponentHandleCmd38(u32 battler);
|
||||
static void OpponentHandleCmd39(u32 battler);
|
||||
static void OpponentHandleCmd40(u32 battler);
|
||||
static void OpponentHandleHitAnimation(u32 battler);
|
||||
static void OpponentHandleCmd42(u32 battler);
|
||||
static void OpponentHandlePlaySE(u32 battler);
|
||||
static void OpponentHandlePlayFanfare(u32 battler);
|
||||
static void OpponentHandleFaintingCry(u32 battler);
|
||||
static void OpponentHandleIntroSlide(u32 battler);
|
||||
static void OpponentHandleIntroTrainerBallThrow(u32 battler);
|
||||
static void OpponentHandleDrawPartyStatusSummary(u32 battler);
|
||||
static void OpponentHandleHidePartyStatusSummary(u32 battler);
|
||||
static void OpponentHandleEndBounceEffect(u32 battler);
|
||||
static void OpponentHandleSpriteInvisibility(u32 battler);
|
||||
static void OpponentHandleBattleAnimation(u32 battler);
|
||||
static void OpponentHandleLinkStandbyMsg(u32 battler);
|
||||
static void OpponentHandleResetActionMoveSelection(u32 battler);
|
||||
static void OpponentHandleCmd55(u32 battler);
|
||||
static void OpponentCmdEnd(u32 battler);
|
||||
|
||||
static void OpponentBufferRunCommand(void);
|
||||
static void OpponentBufferRunCommand(u32 battler);
|
||||
static u32 GetOpponentMonData(u8 monId, u8 *dst);
|
||||
static void SetOpponentMonData(u8 monId);
|
||||
static void DoSwitchOutAnimation(void);
|
||||
static void OpponentDoMoveAnimation(void);
|
||||
static void SwitchIn_HandleSoundAndEnd(void);
|
||||
static void DoSwitchOutAnimation(u32 battler);
|
||||
static void OpponentDoMoveAnimation(u32 battler);
|
||||
static void SwitchIn_HandleSoundAndEnd(u32 battler);
|
||||
static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit);
|
||||
static void Task_StartSendOutAnim(u8 taskId);
|
||||
static void SpriteCB_FreeOpponentSprite(struct Sprite *sprite);
|
||||
static void EndDrawPartyStatusSummary(void);
|
||||
static void EndDrawPartyStatusSummary(u32 battler);
|
||||
|
||||
static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) =
|
||||
{
|
||||
[CONTROLLER_GETMONDATA] = OpponentHandleGetMonData,
|
||||
[CONTROLLER_GETRAWMONDATA] = OpponentHandleGetRawMonData,
|
||||
@@ -154,39 +154,39 @@ static void (*const sOpponentBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
// unknown unused data
|
||||
static const u8 sUnused[] = { 0xB0, 0xB0, 0xC8, 0x98, 0x28, 0x28, 0x28, 0x20 };
|
||||
|
||||
static void OpponentDummy(void)
|
||||
static void OpponentDummy(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
void SetControllerToOpponent(void)
|
||||
void SetControllerToOpponent(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand;
|
||||
}
|
||||
|
||||
static void OpponentBufferRunCommand(void)
|
||||
static void OpponentBufferRunCommand(u32 battler)
|
||||
{
|
||||
if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][0] < NELEMS(sOpponentBufferCommands))
|
||||
sOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]]();
|
||||
sOpponentBufferCommands[gBattleBufferA[gActiveBattler][0]](battler);
|
||||
else
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(void)
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnBattlerSpriteCallbackDummy2(void)
|
||||
static void CompleteOnBattlerSpriteCallbackDummy2(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void FreeTrainerSpriteAfterSlide(void)
|
||||
static void FreeTrainerSpriteAfterSlide(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -194,20 +194,20 @@ static void FreeTrainerSpriteAfterSlide(void)
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].oam.tileNum = gSprites[gBattlerSpriteIds[gActiveBattler]].data[5];
|
||||
FreeSpriteOamMatrix(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_DelayAndEnd(void)
|
||||
static void Intro_DelayAndEnd(u32 battler)
|
||||
{
|
||||
if (--gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay == (u8)-1)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].introEndDelay = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
static void Intro_WaitForShinyAnimAndHealthbox(u32 battler)
|
||||
{
|
||||
bool8 var = FALSE;
|
||||
|
||||
@@ -240,7 +240,7 @@ static void Intro_WaitForShinyAnimAndHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
static void Intro_TryShinyAnimShowHealthbox(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
@@ -270,7 +270,7 @@ static void Intro_TryShinyAnimShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void TryShinyAnimAfterMonAnim(void)
|
||||
static void TryShinyAnimAfterMonAnim(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].animEnded == TRUE
|
||||
&& gSprites[gBattlerSpriteIds[gActiveBattler]].x2 == 0)
|
||||
@@ -285,12 +285,12 @@ static void TryShinyAnimAfterMonAnim(void)
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim = FALSE;
|
||||
FreeSpriteTilesByTag(ANIM_TAG_GOLD_STARS);
|
||||
FreeSpritePaletteByTag(ANIM_TAG_GOLD_STARS);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnHealthbarDone(void)
|
||||
static void CompleteOnHealthbarDone(u32 battler)
|
||||
{
|
||||
s16 hpValue = MoveBattleBar(gActiveBattler, gHealthboxSpriteIds[gActiveBattler], HEALTH_BAR, 0);
|
||||
|
||||
@@ -308,21 +308,21 @@ static void CompleteOnHealthbarDone(void)
|
||||
}
|
||||
else
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void HideHealthboxAfterMonFaint(void)
|
||||
static void HideHealthboxAfterMonFaint(u32 battler)
|
||||
{
|
||||
if (!gSprites[gBattlerSpriteIds[gActiveBattler]].inUse)
|
||||
{
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
static void FreeMonSpriteAfterSwitchOutAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
{
|
||||
@@ -330,17 +330,17 @@ static void FreeMonSpriteAfterSwitchOutAnim(void)
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
HideBattlerShadowSprite(gActiveBattler);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnInactiveTextPrinter(void)
|
||||
static void CompleteOnInactiveTextPrinter(u32 battler)
|
||||
{
|
||||
if (!IsTextPrinterActive(0))
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void DoHitAnimBlinkSpriteEffect(void)
|
||||
static void DoHitAnimBlinkSpriteEffect(u32 battler)
|
||||
{
|
||||
u8 spriteId = gBattlerSpriteIds[gActiveBattler];
|
||||
|
||||
@@ -349,7 +349,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
gSprites[spriteId].data[1] = 0;
|
||||
gSprites[spriteId].invisible = FALSE;
|
||||
gDoingBattleAnim = FALSE;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -359,7 +359,7 @@ static void DoHitAnimBlinkSpriteEffect(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowSubstitute(void)
|
||||
static void SwitchIn_ShowSubstitute(u32 battler)
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
{
|
||||
@@ -369,16 +369,16 @@ static void SwitchIn_ShowSubstitute(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_HandleSoundAndEnd(void)
|
||||
static void SwitchIn_HandleSoundAndEnd(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive && !IsCryPlayingOrClearCrySongs())
|
||||
{
|
||||
m4aMPlayVolumeControl(&gMPlayInfo_BGM, TRACKS_ALL, 0x100);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_ShowHealthbox(void)
|
||||
static void SwitchIn_ShowHealthbox(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].finishedShinyMonAnim)
|
||||
{
|
||||
@@ -395,7 +395,7 @@ static void SwitchIn_ShowHealthbox(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SwitchIn_TryShinyAnim(void)
|
||||
static void SwitchIn_TryShinyAnim(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].triedShinyMonAnim && !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].ballAnimActive)
|
||||
TryShinyAnimation(gActiveBattler, &gEnemyParty[gBattlerPartyIndexes[gActiveBattler]]);
|
||||
@@ -408,25 +408,25 @@ static void SwitchIn_TryShinyAnim(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedStatusAnimation(void)
|
||||
static void CompleteOnFinishedStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedBattleAnimation(void)
|
||||
static void CompleteOnFinishedBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
void OpponentBufferExecCompleted(void)
|
||||
void OpponentBufferExecCompleted(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = OpponentBufferRunCommand;
|
||||
gBattleControllerExecFlags &= ~gBitTable[gActiveBattler];
|
||||
}
|
||||
|
||||
static void OpponentHandleGetMonData(void)
|
||||
static void OpponentHandleGetMonData(u32 battler)
|
||||
{
|
||||
u8 monData[sizeof(struct Pokemon) * 2 + 56]; // this allows to get full data of two pokemon, trying to get more will result in overwriting data
|
||||
u32 size = 0;
|
||||
@@ -448,7 +448,7 @@ static void OpponentHandleGetMonData(void)
|
||||
}
|
||||
}
|
||||
BtlController_EmitDataTransfer(BUFFER_B, size, monData);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static u32 GetOpponentMonData(u8 monId, u8 *dst)
|
||||
@@ -756,7 +756,7 @@ static u32 GetOpponentMonData(u8 monId, u8 *dst)
|
||||
return size;
|
||||
}
|
||||
|
||||
static void OpponentHandleGetRawMonData(void)
|
||||
static void OpponentHandleGetRawMonData(u32 battler)
|
||||
{
|
||||
struct BattlePokemon battleMon;
|
||||
u8 *src = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
|
||||
@@ -766,10 +766,10 @@ static void OpponentHandleGetRawMonData(void)
|
||||
for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i)
|
||||
dst[i] = src[i];
|
||||
BtlController_EmitDataTransfer(BUFFER_B, gBattleBufferA[gActiveBattler][2], dst);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleSetMonData(void)
|
||||
static void OpponentHandleSetMonData(u32 battler)
|
||||
{
|
||||
u8 monToCheck;
|
||||
u8 i;
|
||||
@@ -788,7 +788,7 @@ static void OpponentHandleSetMonData(void)
|
||||
monToCheck >>= 1;
|
||||
}
|
||||
}
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SetOpponentMonData(u8 monId)
|
||||
@@ -1007,17 +1007,17 @@ static void SetOpponentMonData(u8 monId)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleSetRawMonData(void)
|
||||
static void OpponentHandleSetRawMonData(u32 battler)
|
||||
{
|
||||
u8 *dst = (u8 *)&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]] + gBattleBufferA[gActiveBattler][1];
|
||||
u8 i;
|
||||
|
||||
for (i = 0; i < gBattleBufferA[gActiveBattler][2]; ++i)
|
||||
dst[i] = gBattleBufferA[gActiveBattler][3 + i];
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleLoadMonSprite(void)
|
||||
static void OpponentHandleLoadMonSprite(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
u32 y;
|
||||
@@ -1049,7 +1049,7 @@ static void OpponentHandleLoadMonSprite(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = TryShinyAnimAfterMonAnim;
|
||||
}
|
||||
|
||||
static void OpponentHandleSwitchInAnim(void)
|
||||
static void OpponentHandleSwitchInAnim(u32 battler)
|
||||
{
|
||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = 6;
|
||||
gBattlerPartyIndexes[gActiveBattler] = gBattleBufferA[gActiveBattler][1];
|
||||
@@ -1081,7 +1081,7 @@ static void StartSendOutAnim(u8 battlerId, bool8 dontClearSubstituteBit)
|
||||
gSprites[gBattleControllerData[battlerId]].data[0] = DoPokeballSendOutAnimation(0, POKEBALL_OPPONENT_SENDOUT);
|
||||
}
|
||||
|
||||
static void OpponentHandleReturnMonToBall(void)
|
||||
static void OpponentHandleReturnMonToBall(u32 battler)
|
||||
{
|
||||
if (!gBattleBufferA[gActiveBattler][1])
|
||||
{
|
||||
@@ -1094,11 +1094,11 @@ static void OpponentHandleReturnMonToBall(void)
|
||||
DestroySprite(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
HideBattlerShadowSprite(gActiveBattler);
|
||||
SetHealthboxSpriteInvisible(gHealthboxSpriteIds[gActiveBattler]);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void DoSwitchOutAnimation(void)
|
||||
static void DoSwitchOutAnimation(u32 battler)
|
||||
{
|
||||
switch (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
|
||||
{
|
||||
@@ -1118,7 +1118,7 @@ static void DoSwitchOutAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleDrawTrainerPic(void)
|
||||
static void OpponentHandleDrawTrainerPic(u32 battler)
|
||||
{
|
||||
u32 trainerPicId;
|
||||
|
||||
@@ -1148,7 +1148,7 @@ static void OpponentHandleDrawTrainerPic(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void OpponentHandleTrainerSlide(void)
|
||||
static void OpponentHandleTrainerSlide(u32 battler)
|
||||
{
|
||||
u32 trainerPicId;
|
||||
|
||||
@@ -1179,7 +1179,7 @@ static void OpponentHandleTrainerSlide(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy2;
|
||||
}
|
||||
|
||||
static void OpponentHandleTrainerSlideBack(void)
|
||||
static void OpponentHandleTrainerSlideBack(u32 battler)
|
||||
{
|
||||
SetSpritePrimaryCoordsFromSecondaryCoords(&gSprites[gBattlerSpriteIds[gActiveBattler]]);
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].data[0] = 35;
|
||||
@@ -1190,7 +1190,7 @@ static void OpponentHandleTrainerSlideBack(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = FreeTrainerSpriteAfterSlide;
|
||||
}
|
||||
|
||||
static void OpponentHandleFaintAnimation(void)
|
||||
static void OpponentHandleFaintAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState)
|
||||
{
|
||||
@@ -1210,27 +1210,27 @@ static void OpponentHandleFaintAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandlePaletteFade(void)
|
||||
static void OpponentHandlePaletteFade(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleSuccessBallThrowAnim(void)
|
||||
static void OpponentHandleSuccessBallThrowAnim(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleBallThrowAnim(void)
|
||||
static void OpponentHandleBallThrowAnim(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandlePause(void)
|
||||
static void OpponentHandlePause(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleMoveAnimation(void)
|
||||
static void OpponentHandleMoveAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1245,7 +1245,7 @@ static void OpponentHandleMoveAnimation(void)
|
||||
gTransformedPersonalities[gActiveBattler] = gAnimDisableStructPtr->transformedMonPersonality;
|
||||
if (IsMoveWithoutAnimation(move, gAnimMoveTurn)) // always returns FALSE
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1255,7 +1255,7 @@ static void OpponentHandleMoveAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentDoMoveAnimation(void)
|
||||
static void OpponentDoMoveAnimation(u32 battler)
|
||||
{
|
||||
u16 move = gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8);
|
||||
u8 multihit = gBattleBufferA[gActiveBattler][11];
|
||||
@@ -1298,13 +1298,13 @@ static void OpponentDoMoveAnimation(void)
|
||||
CopyAllBattleSpritesInvisibilities();
|
||||
TrySetBehindSubstituteSpriteBit(gActiveBattler, gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animationState = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandlePrintString(void)
|
||||
static void OpponentHandlePrintString(u32 battler)
|
||||
{
|
||||
u16 *stringId;
|
||||
|
||||
@@ -1331,23 +1331,23 @@ static void OpponentHandlePrintString(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
}
|
||||
|
||||
static void OpponentHandlePrintSelectionString(void)
|
||||
static void OpponentHandlePrintSelectionString(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleChooseAction(void)
|
||||
static void OpponentHandleChooseAction(u32 battler)
|
||||
{
|
||||
AI_TrySwitchOrUseItem();
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleUnknownYesNoBox(void)
|
||||
static void OpponentHandleUnknownYesNoBox(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleChooseMove(void)
|
||||
static void OpponentHandleChooseMove(u32 battler)
|
||||
{
|
||||
u8 chosenMoveId;
|
||||
struct ChooseMoveStruct *moveInfo = (struct ChooseMoveStruct *)(&gBattleBufferA[gActiveBattler][4]);
|
||||
@@ -1378,7 +1378,7 @@ static void OpponentHandleChooseMove(void)
|
||||
BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (gBattlerTarget << 8));
|
||||
break;
|
||||
}
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1397,17 +1397,17 @@ static void OpponentHandleChooseMove(void)
|
||||
else
|
||||
BtlController_EmitTwoReturnValues(1, 10, (chosenMoveId) | (GetBattlerAtPosition(B_POSITION_PLAYER_LEFT) << 8));
|
||||
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleChooseItem(void)
|
||||
static void OpponentHandleChooseItem(u32 battler)
|
||||
{
|
||||
BtlController_EmitOneReturnValue(1, *(gBattleStruct->chosenItem + (gActiveBattler / 2) * 2));
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleChoosePokemon(void)
|
||||
static void OpponentHandleChoosePokemon(u32 battler)
|
||||
{
|
||||
s32 chosenMonId;
|
||||
|
||||
@@ -1442,15 +1442,15 @@ static void OpponentHandleChoosePokemon(void)
|
||||
}
|
||||
*(gBattleStruct->monToSwitchIntoId + gActiveBattler) = chosenMonId;
|
||||
BtlController_EmitChosenMonReturnValue(1, chosenMonId, NULL);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd23(void)
|
||||
static void OpponentHandleCmd23(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleHealthBarUpdate(void)
|
||||
static void OpponentHandleHealthBarUpdate(u32 battler)
|
||||
{
|
||||
s16 hpVal;
|
||||
|
||||
@@ -1473,12 +1473,12 @@ static void OpponentHandleHealthBarUpdate(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthbarDone;
|
||||
}
|
||||
|
||||
static void OpponentHandleExpUpdate(void)
|
||||
static void OpponentHandleExpUpdate(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleStatusIconUpdate(void)
|
||||
static void OpponentHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1491,7 +1491,7 @@ static void OpponentHandleStatusIconUpdate(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleStatusAnimation(void)
|
||||
static void OpponentHandleStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1501,80 +1501,80 @@ static void OpponentHandleStatusAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleStatusXor(void)
|
||||
static void OpponentHandleStatusXor(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleDataTransfer(void)
|
||||
static void OpponentHandleDataTransfer(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleDMA3Transfer(void)
|
||||
static void OpponentHandleDMA3Transfer(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandlePlayBGM(void)
|
||||
static void OpponentHandlePlayBGM(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd32(void)
|
||||
static void OpponentHandleCmd32(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleTwoReturnValues(void)
|
||||
static void OpponentHandleTwoReturnValues(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleChosenMonReturnValue(void)
|
||||
static void OpponentHandleChosenMonReturnValue(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleOneReturnValue(void)
|
||||
static void OpponentHandleOneReturnValue(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleOneReturnValue_Duplicate(void)
|
||||
static void OpponentHandleOneReturnValue_Duplicate(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd37(void)
|
||||
static void OpponentHandleCmd37(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd38(void)
|
||||
static void OpponentHandleCmd38(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.unk = gBattleBufferA[gActiveBattler][1];
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd39(void)
|
||||
static void OpponentHandleCmd39(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd40(void)
|
||||
static void OpponentHandleCmd40(u32 battler)
|
||||
{
|
||||
gUnusedControllerStruct.flag ^= 1;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleHitAnimation(void)
|
||||
static void OpponentHandleHitAnimation(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].invisible == TRUE)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1585,12 +1585,12 @@ static void OpponentHandleHitAnimation(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd42(void)
|
||||
static void OpponentHandleCmd42(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandlePlaySE(void)
|
||||
static void OpponentHandlePlaySE(u32 battler)
|
||||
{
|
||||
s8 pan;
|
||||
|
||||
@@ -1599,31 +1599,31 @@ static void OpponentHandlePlaySE(void)
|
||||
else
|
||||
pan = SOUND_PAN_TARGET;
|
||||
PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandlePlayFanfare(void)
|
||||
static void OpponentHandlePlayFanfare(u32 battler)
|
||||
{
|
||||
PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleFaintingCry(void)
|
||||
static void OpponentHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gEnemyParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_ByMode(species, 25, CRY_MODE_FAINT);
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleIntroSlide(void)
|
||||
static void OpponentHandleIntroSlide(u32 battler)
|
||||
{
|
||||
HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
|
||||
gIntroSlideFlags |= 1;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleIntroTrainerBallThrow(void)
|
||||
static void OpponentHandleIntroTrainerBallThrow(u32 battler)
|
||||
{
|
||||
u8 paletteNum;
|
||||
u8 taskId;
|
||||
@@ -1674,11 +1674,11 @@ static void Task_StartSendOutAnim(u8 taskId)
|
||||
DestroyTask(taskId);
|
||||
}
|
||||
|
||||
static void OpponentHandleDrawPartyStatusSummary(void)
|
||||
static void OpponentHandleDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][1] && GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1706,38 +1706,38 @@ static void OpponentHandleDrawPartyStatusSummary(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void EndDrawPartyStatusSummary(void)
|
||||
static void EndDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer++ > 0x5C)
|
||||
{
|
||||
gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusDelayTimer = 0;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleHidePartyStatusSummary(void)
|
||||
static void OpponentHandleHidePartyStatusSummary(u32 battler)
|
||||
{
|
||||
if (gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].partyStatusSummaryShown)
|
||||
gTasks[gBattlerStatusSummaryTaskId[gActiveBattler]].func = Task_HidePartyStatusSummary;
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleEndBounceEffect(void)
|
||||
static void OpponentHandleEndBounceEffect(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleSpriteInvisibility(void)
|
||||
static void OpponentHandleSpriteInvisibility(u32 battler)
|
||||
{
|
||||
if (IsBattlerSpritePresent(gActiveBattler))
|
||||
{
|
||||
gSprites[gBattlerSpriteIds[gActiveBattler]].invisible = gBattleBufferA[gActiveBattler][1];
|
||||
CopyBattleSpriteInvisibility(gActiveBattler);
|
||||
}
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleBattleAnimation(void)
|
||||
static void OpponentHandleBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!IsBattleSEPlaying(gActiveBattler))
|
||||
{
|
||||
@@ -1745,23 +1745,23 @@ static void OpponentHandleBattleAnimation(void)
|
||||
u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
|
||||
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
else
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
|
||||
}
|
||||
}
|
||||
|
||||
static void OpponentHandleLinkStandbyMsg(void)
|
||||
static void OpponentHandleLinkStandbyMsg(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleResetActionMoveSelection(void)
|
||||
static void OpponentHandleResetActionMoveSelection(u32 battler)
|
||||
{
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentHandleCmd55(void)
|
||||
static void OpponentHandleCmd55(u32 battler)
|
||||
{
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER))
|
||||
{
|
||||
@@ -1769,9 +1769,9 @@ static void OpponentHandleCmd55(void)
|
||||
gMain.callback1 = gPreBattleCallback1;
|
||||
SetMainCallback2(gMain.savedCallback);
|
||||
}
|
||||
OpponentBufferExecCompleted();
|
||||
OpponentBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void OpponentCmdEnd(void)
|
||||
static void OpponentCmdEnd(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -15,69 +15,69 @@
|
||||
#include "constants/songs.h"
|
||||
#include "constants/battle_anim.h"
|
||||
|
||||
static void SafariHandleGetMonData(void);
|
||||
static void SafariHandleGetRawMonData(void);
|
||||
static void SafariHandleSetMonData(void);
|
||||
static void SafariHandleSetRawMonData(void);
|
||||
static void SafariHandleLoadMonSprite(void);
|
||||
static void SafariHandleSwitchInAnim(void);
|
||||
static void SafariHandleReturnMonToBall(void);
|
||||
static void SafariHandleDrawTrainerPic(void);
|
||||
static void SafariHandleTrainerSlide(void);
|
||||
static void SafariHandleTrainerSlideBack(void);
|
||||
static void SafariHandleFaintAnimation(void);
|
||||
static void SafariHandlePaletteFade(void);
|
||||
static void SafariHandleSuccessBallThrowAnim(void);
|
||||
static void SafariHandleBallThrowAnim(void);
|
||||
static void SafariHandlePause(void);
|
||||
static void SafariHandleMoveAnimation(void);
|
||||
static void SafariHandlePrintString(void);
|
||||
static void SafariHandlePrintSelectionString(void);
|
||||
static void SafariHandleChooseAction(void);
|
||||
static void SafariHandleUnknownYesNoBox(void);
|
||||
static void SafariHandleChooseMove(void);
|
||||
static void SafariHandleChooseItem(void);
|
||||
static void SafariHandleChoosePokemon(void);
|
||||
static void SafariHandleCmd23(void);
|
||||
static void SafariHandleHealthBarUpdate(void);
|
||||
static void SafariHandleExpUpdate(void);
|
||||
static void SafariHandleStatusIconUpdate(void);
|
||||
static void SafariHandleStatusAnimation(void);
|
||||
static void SafariHandleStatusXor(void);
|
||||
static void SafariHandleDataTransfer(void);
|
||||
static void SafariHandleDMA3Transfer(void);
|
||||
static void SafariHandlePlayBGM(void);
|
||||
static void SafariHandleCmd32(void);
|
||||
static void SafariHandleTwoReturnValues(void);
|
||||
static void SafariHandleChosenMonReturnValue(void);
|
||||
static void SafariHandleOneReturnValue(void);
|
||||
static void SafariHandleOneReturnValue_Duplicate(void);
|
||||
static void SafariHandleCmd37(void);
|
||||
static void SafariHandleCmd38(void);
|
||||
static void SafariHandleCmd39(void);
|
||||
static void SafariHandleCmd40(void);
|
||||
static void SafariHandleHitAnimation(void);
|
||||
static void SafariHandleCmd42(void);
|
||||
static void SafariHandlePlaySE(void);
|
||||
static void SafariHandlePlayFanfareOrBGM(void);
|
||||
static void SafariHandleFaintingCry(void);
|
||||
static void SafariHandleIntroSlide(void);
|
||||
static void SafariHandleIntroTrainerBallThrow(void);
|
||||
static void SafariHandleDrawPartyStatusSummary(void);
|
||||
static void SafariHandleHidePartyStatusSummary(void);
|
||||
static void SafariHandleEndBounceEffect(void);
|
||||
static void SafariHandleSpriteInvisibility(void);
|
||||
static void SafariHandleBattleAnimation(void);
|
||||
static void SafariHandleLinkStandbyMsg(void);
|
||||
static void SafariHandleResetActionMoveSelection(void);
|
||||
static void SafariHandleCmd55(void);
|
||||
static void SafariCmdEnd(void);
|
||||
static void SafariHandleGetMonData(u32 battler);
|
||||
static void SafariHandleGetRawMonData(u32 battler);
|
||||
static void SafariHandleSetMonData(u32 battler);
|
||||
static void SafariHandleSetRawMonData(u32 battler);
|
||||
static void SafariHandleLoadMonSprite(u32 battler);
|
||||
static void SafariHandleSwitchInAnim(u32 battler);
|
||||
static void SafariHandleReturnMonToBall(u32 battler);
|
||||
static void SafariHandleDrawTrainerPic(u32 battler);
|
||||
static void SafariHandleTrainerSlide(u32 battler);
|
||||
static void SafariHandleTrainerSlideBack(u32 battler);
|
||||
static void SafariHandleFaintAnimation(u32 battler);
|
||||
static void SafariHandlePaletteFade(u32 battler);
|
||||
static void SafariHandleSuccessBallThrowAnim(u32 battler);
|
||||
static void SafariHandleBallThrowAnim(u32 battler);
|
||||
static void SafariHandlePause(u32 battler);
|
||||
static void SafariHandleMoveAnimation(u32 battler);
|
||||
static void SafariHandlePrintString(u32 battler);
|
||||
static void SafariHandlePrintSelectionString(u32 battler);
|
||||
static void SafariHandleChooseAction(u32 battler);
|
||||
static void SafariHandleUnknownYesNoBox(u32 battler);
|
||||
static void SafariHandleChooseMove(u32 battler);
|
||||
static void SafariHandleChooseItem(u32 battler);
|
||||
static void SafariHandleChoosePokemon(u32 battler);
|
||||
static void SafariHandleCmd23(u32 battler);
|
||||
static void SafariHandleHealthBarUpdate(u32 battler);
|
||||
static void SafariHandleExpUpdate(u32 battler);
|
||||
static void SafariHandleStatusIconUpdate(u32 battler);
|
||||
static void SafariHandleStatusAnimation(u32 battler);
|
||||
static void SafariHandleStatusXor(u32 battler);
|
||||
static void SafariHandleDataTransfer(u32 battler);
|
||||
static void SafariHandleDMA3Transfer(u32 battler);
|
||||
static void SafariHandlePlayBGM(u32 battler);
|
||||
static void SafariHandleCmd32(u32 battler);
|
||||
static void SafariHandleTwoReturnValues(u32 battler);
|
||||
static void SafariHandleChosenMonReturnValue(u32 battler);
|
||||
static void SafariHandleOneReturnValue(u32 battler);
|
||||
static void SafariHandleOneReturnValue_Duplicate(u32 battler);
|
||||
static void SafariHandleCmd37(u32 battler);
|
||||
static void SafariHandleCmd38(u32 battler);
|
||||
static void SafariHandleCmd39(u32 battler);
|
||||
static void SafariHandleCmd40(u32 battler);
|
||||
static void SafariHandleHitAnimation(u32 battler);
|
||||
static void SafariHandleCmd42(u32 battler);
|
||||
static void SafariHandlePlaySE(u32 battler);
|
||||
static void SafariHandlePlayFanfareOrBGM(u32 battler);
|
||||
static void SafariHandleFaintingCry(u32 battler);
|
||||
static void SafariHandleIntroSlide(u32 battler);
|
||||
static void SafariHandleIntroTrainerBallThrow(u32 battler);
|
||||
static void SafariHandleDrawPartyStatusSummary(u32 battler);
|
||||
static void SafariHandleHidePartyStatusSummary(u32 battler);
|
||||
static void SafariHandleEndBounceEffect(u32 battler);
|
||||
static void SafariHandleSpriteInvisibility(u32 battler);
|
||||
static void SafariHandleBattleAnimation(u32 battler);
|
||||
static void SafariHandleLinkStandbyMsg(u32 battler);
|
||||
static void SafariHandleResetActionMoveSelection(u32 battler);
|
||||
static void SafariHandleCmd55(u32 battler);
|
||||
static void SafariCmdEnd(u32 battler);
|
||||
|
||||
static void SafariBufferRunCommand(void);
|
||||
static void SafariBufferExecCompleted(void);
|
||||
static void CompleteWhenChosePokeblock(void);
|
||||
static void SafariBufferRunCommand(u32 battler);
|
||||
static void SafariBufferExecCompleted(u32 battler);
|
||||
static void CompleteWhenChosePokeblock(u32 battler);
|
||||
|
||||
static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(u32 battler) =
|
||||
{
|
||||
[CONTROLLER_GETMONDATA] = SafariHandleGetMonData,
|
||||
[CONTROLLER_GETRAWMONDATA] = SafariHandleGetRawMonData,
|
||||
@@ -123,7 +123,7 @@ static void (*const sSafariBufferCommands[CONTROLLER_CMDS_COUNT])(void) =
|
||||
[CONTROLLER_HITANIMATION] = SafariHandleHitAnimation,
|
||||
[CONTROLLER_CANTSWITCH] = SafariHandleCmd42,
|
||||
[CONTROLLER_PLAYSE] = SafariHandlePlaySE,
|
||||
[CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM,
|
||||
[CONTROLLER_PLAYFANFAREORBGM] = SafariHandlePlayFanfareOrBGM,
|
||||
[CONTROLLER_FAINTINGCRY] = SafariHandleFaintingCry,
|
||||
[CONTROLLER_INTROSLIDE] = SafariHandleIntroSlide,
|
||||
[CONTROLLER_INTROTRAINERBALLTHROW] = SafariHandleIntroTrainerBallThrow,
|
||||
@@ -143,23 +143,23 @@ static void SafariDummy(void)
|
||||
{
|
||||
}
|
||||
|
||||
void SetControllerToSafari(void)
|
||||
void SetControllerToSafari(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand;
|
||||
}
|
||||
|
||||
static void SafariBufferRunCommand(void)
|
||||
static void SafariBufferRunCommand(u32 battler)
|
||||
{
|
||||
if (gBattleControllerExecFlags & gBitTable[gActiveBattler])
|
||||
{
|
||||
if (gBattleBufferA[gActiveBattler][0] < NELEMS(sSafariBufferCommands))
|
||||
sSafariBufferCommands[gBattleBufferA[gActiveBattler][0]]();
|
||||
sSafariBufferCommands[gBattleBufferA[gActiveBattler][0]](battler);
|
||||
else
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void HandleInputChooseAction(void)
|
||||
static void HandleInputChooseAction(u32 battler)
|
||||
{
|
||||
if (JOY_NEW(A_BUTTON))
|
||||
{
|
||||
@@ -180,7 +180,7 @@ static void HandleInputChooseAction(void)
|
||||
BtlController_EmitTwoReturnValues(1, B_ACTION_SAFARI_RUN, 0);
|
||||
break;
|
||||
}
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
else if (JOY_NEW(DPAD_LEFT))
|
||||
{
|
||||
@@ -224,25 +224,25 @@ static void HandleInputChooseAction(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(void)
|
||||
static void CompleteOnBattlerSpriteCallbackDummy(u32 battler)
|
||||
{
|
||||
if (gSprites[gBattlerSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnInactiveTextPrinter(void)
|
||||
static void CompleteOnInactiveTextPrinter(u32 battler)
|
||||
{
|
||||
if (!IsTextPrinterActive(0))
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void CompleteOnHealthboxSpriteCallbackDummy(void)
|
||||
static void CompleteOnHealthboxSpriteCallbackDummy(u32 battler)
|
||||
{
|
||||
if (gSprites[gHealthboxSpriteIds[gActiveBattler]].callback == SpriteCallbackDummy)
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void Safari_SetBattleEndCallbacks(void)
|
||||
static void Safari_SetBattleEndCallbacks(u32 battler)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
{
|
||||
@@ -252,34 +252,34 @@ static void Safari_SetBattleEndCallbacks(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnSpecialAnimDone(void)
|
||||
static void CompleteOnSpecialAnimDone(u32 battler)
|
||||
{
|
||||
if (!gDoingBattleAnim || !gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].specialAnimActive)
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariOpenPokeblockCase(void)
|
||||
static void SafariOpenPokeblockCase(u32 battler)
|
||||
{
|
||||
if (!gPaletteFade.active)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteWhenChosePokeblock;
|
||||
}
|
||||
|
||||
static void CompleteWhenChosePokeblock(void)
|
||||
static void CompleteWhenChosePokeblock(u32 battler)
|
||||
{
|
||||
if (gMain.callback2 == BattleMainCB2 && !gPaletteFade.active)
|
||||
{
|
||||
BtlController_EmitOneReturnValue(1, gSpecialVar_ItemId);
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
}
|
||||
|
||||
static void CompleteOnFinishedBattleAnimation(void)
|
||||
static void CompleteOnFinishedBattleAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].animFromTableActive)
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariBufferExecCompleted(void)
|
||||
static void SafariBufferExecCompleted(u32 battler)
|
||||
{
|
||||
gBattlerControllerFuncs[gActiveBattler] = SafariBufferRunCommand;
|
||||
if (gBattleTypeFlags & BATTLE_TYPE_LINK)
|
||||
@@ -296,48 +296,48 @@ static void SafariBufferExecCompleted(void)
|
||||
}
|
||||
|
||||
// not used
|
||||
static void CompleteOnFinishedStatusAnimation(void)
|
||||
static void CompleteOnFinishedStatusAnimation(u32 battler)
|
||||
{
|
||||
if (!gBattleSpritesDataPtr->healthBoxesData[gActiveBattler].statusAnimActive)
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleGetMonData(void)
|
||||
static void SafariHandleGetMonData(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleGetRawMonData(void)
|
||||
static void SafariHandleGetRawMonData(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleSetMonData(void)
|
||||
static void SafariHandleSetMonData(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleSetRawMonData(void)
|
||||
static void SafariHandleSetRawMonData(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleLoadMonSprite(void)
|
||||
static void SafariHandleLoadMonSprite(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleSwitchInAnim(void)
|
||||
static void SafariHandleSwitchInAnim(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleReturnMonToBall(void)
|
||||
static void SafariHandleReturnMonToBall(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleDrawTrainerPic(void)
|
||||
static void SafariHandleDrawTrainerPic(u32 battler)
|
||||
{
|
||||
DecompressTrainerBackPalette(gSaveBlock2Ptr->playerGender, gActiveBattler);
|
||||
SetMultiuseSpriteTemplateToTrainerBack(gSaveBlock2Ptr->playerGender, GetBattlerPosition(gActiveBattler));
|
||||
@@ -352,27 +352,27 @@ static void SafariHandleDrawTrainerPic(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnBattlerSpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void SafariHandleTrainerSlide(void)
|
||||
static void SafariHandleTrainerSlide(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleTrainerSlideBack(void)
|
||||
static void SafariHandleTrainerSlideBack(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleFaintAnimation(void)
|
||||
static void SafariHandleFaintAnimation(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandlePaletteFade(void)
|
||||
static void SafariHandlePaletteFade(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleSuccessBallThrowAnim(void)
|
||||
static void SafariHandleSuccessBallThrowAnim(u32 battler)
|
||||
{
|
||||
gBattleSpritesDataPtr->animationData->ballThrowCaseId = BALL_3_SHAKES_SUCCESS;
|
||||
gDoingBattleAnim = TRUE;
|
||||
@@ -380,7 +380,7 @@ static void SafariHandleSuccessBallThrowAnim(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
static void SafariHandleBallThrowAnim(void)
|
||||
static void SafariHandleBallThrowAnim(u32 battler)
|
||||
{
|
||||
u8 ballThrowCaseId = gBattleBufferA[gActiveBattler][1];
|
||||
|
||||
@@ -390,17 +390,17 @@ static void SafariHandleBallThrowAnim(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnSpecialAnimDone;
|
||||
}
|
||||
|
||||
static void SafariHandlePause(void)
|
||||
static void SafariHandlePause(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleMoveAnimation(void)
|
||||
static void SafariHandleMoveAnimation(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandlePrintString(void)
|
||||
static void SafariHandlePrintString(u32 battler)
|
||||
{
|
||||
u16 *stringId;
|
||||
|
||||
@@ -415,15 +415,15 @@ static void SafariHandlePrintString(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnInactiveTextPrinter;
|
||||
}
|
||||
|
||||
static void SafariHandlePrintSelectionString(void)
|
||||
static void SafariHandlePrintSelectionString(u32 battler)
|
||||
{
|
||||
if (GetBattlerSide(gActiveBattler) == B_SIDE_PLAYER)
|
||||
SafariHandlePrintString();
|
||||
SafariHandlePrintString(battler);
|
||||
else
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void HandleChooseActionAfterDma3(void)
|
||||
static void HandleChooseActionAfterDma3(u32 battler)
|
||||
{
|
||||
if (!IsDma3ManagerBusyWithBgCopy())
|
||||
{
|
||||
@@ -433,7 +433,7 @@ static void HandleChooseActionAfterDma3(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void SafariHandleChooseAction(void)
|
||||
static void SafariHandleChooseAction(u32 battler)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -447,17 +447,17 @@ static void SafariHandleChooseAction(void)
|
||||
BattlePutTextOnWindow(gDisplayedStringBattle, B_WIN_ACTION_PROMPT);
|
||||
}
|
||||
|
||||
static void SafariHandleUnknownYesNoBox(void)
|
||||
static void SafariHandleUnknownYesNoBox(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleChooseMove(void)
|
||||
static void SafariHandleChooseMove(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleChooseItem(void)
|
||||
static void SafariHandleChooseItem(u32 battler)
|
||||
{
|
||||
s32 i;
|
||||
|
||||
@@ -466,113 +466,113 @@ static void SafariHandleChooseItem(void)
|
||||
gBattlerInMenuId = gActiveBattler;
|
||||
}
|
||||
|
||||
static void SafariHandleChoosePokemon(void)
|
||||
static void SafariHandleChoosePokemon(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd23(void)
|
||||
static void SafariHandleCmd23(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleHealthBarUpdate(void)
|
||||
static void SafariHandleHealthBarUpdate(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleExpUpdate(void)
|
||||
static void SafariHandleExpUpdate(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleStatusIconUpdate(void)
|
||||
static void SafariHandleStatusIconUpdate(u32 battler)
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_BALLS_TEXT);
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleStatusAnimation(void)
|
||||
static void SafariHandleStatusAnimation(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleStatusXor(void)
|
||||
static void SafariHandleStatusXor(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleDataTransfer(void)
|
||||
static void SafariHandleDataTransfer(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleDMA3Transfer(void)
|
||||
static void SafariHandleDMA3Transfer(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandlePlayBGM(void)
|
||||
static void SafariHandlePlayBGM(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd32(void)
|
||||
static void SafariHandleCmd32(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleTwoReturnValues(void)
|
||||
static void SafariHandleTwoReturnValues(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleChosenMonReturnValue(void)
|
||||
static void SafariHandleChosenMonReturnValue(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleOneReturnValue(void)
|
||||
static void SafariHandleOneReturnValue(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleOneReturnValue_Duplicate(void)
|
||||
static void SafariHandleOneReturnValue_Duplicate(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd37(void)
|
||||
static void SafariHandleCmd37(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd38(void)
|
||||
static void SafariHandleCmd38(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd39(void)
|
||||
static void SafariHandleCmd39(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd40(void)
|
||||
static void SafariHandleCmd40(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleHitAnimation(void)
|
||||
static void SafariHandleHitAnimation(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd42(void)
|
||||
static void SafariHandleCmd42(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandlePlaySE(void)
|
||||
static void SafariHandlePlaySE(u32 battler)
|
||||
{
|
||||
s8 pan;
|
||||
|
||||
@@ -581,31 +581,31 @@ static void SafariHandlePlaySE(void)
|
||||
else
|
||||
pan = SOUND_PAN_TARGET;
|
||||
PlaySE12WithPanning(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8), pan);
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandlePlayFanfareOrBGM(void)
|
||||
static void SafariHandlePlayFanfareOrBGM(u32 battler)
|
||||
{
|
||||
PlayFanfare(gBattleBufferA[gActiveBattler][1] | (gBattleBufferA[gActiveBattler][2] << 8));
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleFaintingCry(void)
|
||||
static void SafariHandleFaintingCry(u32 battler)
|
||||
{
|
||||
u16 species = GetMonData(&gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], MON_DATA_SPECIES);
|
||||
|
||||
PlayCry_Normal(species, 25);
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleIntroSlide(void)
|
||||
static void SafariHandleIntroSlide(u32 battler)
|
||||
{
|
||||
HandleIntroSlide(gBattleBufferA[gActiveBattler][1]);
|
||||
gIntroSlideFlags |= 1;
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleIntroTrainerBallThrow(void)
|
||||
static void SafariHandleIntroTrainerBallThrow(u32 battler)
|
||||
{
|
||||
UpdateHealthboxAttribute(gHealthboxSpriteIds[gActiveBattler], &gPlayerParty[gBattlerPartyIndexes[gActiveBattler]], HEALTHBOX_SAFARI_ALL_TEXT);
|
||||
StartHealthboxSlideIn(gActiveBattler);
|
||||
@@ -613,57 +613,57 @@ static void SafariHandleIntroTrainerBallThrow(void)
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnHealthboxSpriteCallbackDummy;
|
||||
}
|
||||
|
||||
static void SafariHandleDrawPartyStatusSummary(void)
|
||||
static void SafariHandleDrawPartyStatusSummary(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleHidePartyStatusSummary(void)
|
||||
static void SafariHandleHidePartyStatusSummary(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleEndBounceEffect(void)
|
||||
static void SafariHandleEndBounceEffect(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleSpriteInvisibility(void)
|
||||
static void SafariHandleSpriteInvisibility(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleBattleAnimation(void)
|
||||
static void SafariHandleBattleAnimation(u32 battler)
|
||||
{
|
||||
u8 animationId = gBattleBufferA[gActiveBattler][1];
|
||||
u16 argument = gBattleBufferA[gActiveBattler][2] | (gBattleBufferA[gActiveBattler][3] << 8);
|
||||
|
||||
if (TryHandleLaunchBattleTableAnimation(gActiveBattler, gActiveBattler, gActiveBattler, animationId, argument))
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
else
|
||||
gBattlerControllerFuncs[gActiveBattler] = CompleteOnFinishedBattleAnimation;
|
||||
}
|
||||
|
||||
static void SafariHandleLinkStandbyMsg(void)
|
||||
static void SafariHandleLinkStandbyMsg(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleResetActionMoveSelection(void)
|
||||
static void SafariHandleResetActionMoveSelection(u32 battler)
|
||||
{
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
}
|
||||
|
||||
static void SafariHandleCmd55(void)
|
||||
static void SafariHandleCmd55(u32 battler)
|
||||
{
|
||||
gBattleOutcome = gBattleBufferA[gActiveBattler][1];
|
||||
FadeOutMapMusic(5);
|
||||
BeginFastPaletteFade(3);
|
||||
SafariBufferExecCompleted();
|
||||
SafariBufferExecCompleted(battler);
|
||||
if ((gBattleTypeFlags & BATTLE_TYPE_LINK) && !(gBattleTypeFlags & BATTLE_TYPE_IS_MASTER))
|
||||
gBattlerControllerFuncs[gActiveBattler] = Safari_SetBattleEndCallbacks;
|
||||
}
|
||||
|
||||
static void SafariCmdEnd(void)
|
||||
static void SafariCmdEnd(u32 battler)
|
||||
{
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ void (*gPreBattleCallback1)(void);
|
||||
void (*gBattleMainFunc)(void);
|
||||
struct BattleResults gBattleResults;
|
||||
u8 gLeveledUpInBattle;
|
||||
void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(void);
|
||||
void (*gBattlerControllerFuncs[MAX_BATTLERS_COUNT])(u32 battler);
|
||||
u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
|
||||
u8 gMultiUsePlayerCursor;
|
||||
u8 gNumberOfMovesToChoose;
|
||||
@@ -2523,7 +2523,7 @@ static void BattleMainCB1(void)
|
||||
gBattleMainFunc();
|
||||
|
||||
for (gActiveBattler = 0; gActiveBattler < gBattlersCount; gActiveBattler++)
|
||||
gBattlerControllerFuncs[gActiveBattler]();
|
||||
gBattlerControllerFuncs[gActiveBattler](gActiveBattler);
|
||||
}
|
||||
|
||||
static void ClearSetBScriptingStruct(void)
|
||||
|
||||
Reference in New Issue
Block a user